FreeBSD 핸드북 : PPP와 SLIP : 커널 PPP 설정 : PPP 클라이언트로 작동
Previous: 커널 PPP 설정
Next: PPP 서버로 작동

15.2.1. PPP 클라이언트로 작동

CISCO 터미널 서버 PPP선에 연결하기 위한 이용된 /etc/ppp/options 파일 예제

crtscts		# 하드웨어 흐름제어를 이용
modem		# 모뎀 제어를 위한 구문
noipdefault	# 원격 PPP 서버가 IP 주소를 제공해야 합니다.
		# 제공하지 않는 경우 IPCP 소통 시 원격 호스트가 
		# IP를 제공하지 않으면, 이 옵션을 삭제하십시오.
passive		# LCP 패킷을 기다립니다
domain ppp.foo.com	# 여기다 해당 도메인 네임(domain name)을 써 넣으십시오

:<remote_ip>	# 원격 호스트의 IP를 여기다 써 넣으십시오.
		# 이는 PPP 링크를 통해 패킷을 전송하는데 사용됩니다.
		# noipdefault 옵션을 설정하지 않았으면
		# 이 부분을 <local_ip>:<remote_ip>로 바꾸십시오.

defaultroute	# PPP 서버를 기본 라우터(router)로 쓰려는 경우에 넣으십시오.

연결을 하려면:

  1. kermit으로 ( 또는 여타의 모뎀 프로그램으로 ) 원격 호스트에 전화를 걸고 사용자 이름과 암호를 입력합니다. ( 또는 원격 호스트에 연결하기 위해 필요한 모든 조치를 취합니다.)
  2. kermit을 종료합니다. ( 접속상태를 유지한 채로 )
  3. 다음을 입력합니다:
    /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200
    
    ( 적절한 속도와 장치명(device name)을 넣습니다 )

아마도 연결이 됐을 것입니다. 혹시나 몇가지 이유로 연결이 되지 않는다면 /etc/ppp/options 파일에 "debug"라는 옵션을 첨가하십시오. 그리고 콘솔(console)로 나오는 메세지를 검토하여 문제를 해결하십시오.

다음의 /etc/ppp/pppup 스크립트는 위의 3단계를 자동적으로 처리해 줍니다:

#!/bin/sh 
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

ifconfig ppp0 down
ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200

/etc/ppp/kernel.dial은 전화를 걸고 원격 호스트에서 모든 필요한 인증절차를 처리해 주는 kermit 스크립트입니다. ( 이러한 스크립트 예제는 이 문서 끝에 첨부했습니다 )

PPP 선(line)을 끊을려면 다음의 /etc/ppp/pppdown 스크립트를 사용하십시오:

#!/bin/sh
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill -TERM ${pid}
fi

ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup 
/etc/ppp/ppptest

PPP가 작동 중인지 검사 (/usr/etc/ppp/ppptest):

#!/bin/sh
pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
        echo 'pppd running: PID=' ${pid-NONE}
else
        echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0

접속 해제 (/etc/ppp/kermit.hup):

set line /dev/tty01	; 해당 장치명을 입력합니다
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none

pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exit

kermit 대신에 chat을 쓰는 방법.

Robert Huff <rhuff@cybercom.net>. 저

이성곤 <skon@stats.snu.ac.kr>. 역

다음 두 개의 파일로 pppd 연결하는데에 충분합니다.

/etc/ppp/options:

 /dev/cuaa1 115200
crtscts		# 하드웨어 흐름제어를 이용
modem		# 모뎀 제어를 위한 구문
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault	# 원격 PPP 서버가 IP 주소를 제공해야 합니다.
		# 제공하지 않는 경우 IPCP를 소통 시 원격 호스트가 
		# IP를 제공하지 않으면, 이 옵션을 제거하십시오
passive		# LCP 패킷을 기다립니다
domain ppp.foo.com	# 여기다 해당 도메인 네임을 써 넣으십시오

:	        # 원격 호스트의 IP를 여기다 써 넣으십시오.
		# 이는 PPP 링크를 통해 패킷을 전송하는데 사용됩니다.
		# noipdefault 옵션을 설정하지 않았으면
		# 이 부분을 <local_ip>:<remote_ip>로 바꾸십시오.

defaultroute	# PPP 서버를 기본 라우터로 쓰시는 경우 이 줄을 넣으십시오.

/etc/ppp/login.caht.script:

(이것은 실제로 하나의 선에서 작동합니다.)

ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number>
 CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id>
 TIMEOUT 5 sword: <password>

설치하고 제대로 설정을 했다면, 그다음 해야될 것은 오직

pppd를 실행시키는 것입니다.

이 예제는 Trev Roydhouse <Trev.Roydhouse@f401.n711.z3.fidonet.org>에서 제공한 자료를 바탕으로 하고있으며 (그에게서) 허가를 받아 본 글에 인용하고 있습니다.


FreeBSD 핸드북 : PPP와 SLIP : 커널 PPP 설정 : PPP 클라이언트로 작동
Previous: 커널 PPP 설정
Next: PPP 서버로 작동