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

15.2.2. PPP 서버로 작동

/etc/ppp/options:

crtscts				# 하드웨어 흐름 제어
netmask 255.255.255.0		# 네트마스크(netmask) ( 꼭 필요하지는 않습니다 )
192.114.208.20:192.114.208.165  # 지역 ip와 원격 ip
				# 지역 ip는 컴퓨터(machine)의 이더넷 ethernet
				# ( 또는 다른 유사의 ) 인터페이스에 
				# 배당한 것과 반드시 달라야 합니다.
				# 원격 IP는 원격의 컴퓨터에 배당할 
				# ip 주소입니다.
domain ppp.foo.com		# 본 컴퓨터의 도메인
passive				# LCP를 기다립니다
modem				# 모뎀 선을 이용

다음 /etc/ppp/pppserv 스크립트는 컴퓨터가 ppp 서버가 되도록 합니다

#!/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

# ppp 인터페이스 재설정
ifconfig ppp0 down
ifconfig ppp0 delete

# 자동응답 모드로 전환
kermit -y /etc/ppp/kermit.ans

# run ppp
pppd /dev/tty01 19200

ppp 서버로의 작동을 중지할 때 /etc/ppp/pppservdown를 사용하십시오:

#!/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.noans

다음의 kermit 스크립트는 모뎀의 자동응답 모드를 활성화/비활성화합니다 (/etc/ppp/kermit.ans):

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
inp 5 OK
echo \13
out ATS0=1\13	; 자동응답 모드를 비활성화하려면 여기를
		; out ATS0=0\13 으로 바꾸십시오
inp 5 OK
echo \13
exit

이 /etc/ppp/kermit.dial 스크립트는 원격 호스트에서 전화를 걸고 인증을 하는데 사용됩니다. 각자의 경우에 맞춰 고치는 것이 필요합니다. 스크립트에 로그인 네임과 암호를 고쳐넣고, 모뎀과 원격 호스트의 응답에 맞춰 입력 구문을 수정해야 합니다.

;
; 여기서 모뎀과 연결되어 있는 통신 라인(line)을 넣으십시오:
;
set line /dev/tty01
;
; 모뎀 속도를 넣으십시오:
;
set speed 19200
set file type binary		; 데이타 8비트 (full 8 bit file xfer)
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
set modem hayes
set dial hangup off
set carrier auto		; 필요하다면 SET CARRIER,
set dial display on		; 필요하다면 SET DIAL,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0			; login prompt counter
goto slhup

:slcmd				; 모뎀을 명령 입력 모드(command mode)로 만듬
echo Put the modem in command mode.
clear				; 입력 버퍼에서 안읽은 문자를 제거
pause 1
output +++			; hayes escape sequence
input 1 OK\13\10		; OK가 나오기를 기다림
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd		; OK가 나오지 않으면 반복

:slhup				; 전화를 끊음
clear				; 입력 버퍼에서 안읽은 문자를 제거
pause 1
echo Hanging up the phone.
output ath0\13			; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd		; OK가 나오지 않으면 명령 입력 모드로 전환

:sldial				; 번호를 입력
pause 1
echo Dialing.
output atdt9,550311\13\10		; 여기다가 전화번호를 입력
assign \%x 0			; 횟수 카운터(time counter)를 0으로 함

:look
clear				; 입력 버퍼에서 안읽은 문자를 제거
increment \%x			; 횟수을 센다
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup

:sllogin			; login
assign \%x 0			; 횟수 카운터를 0으로 함
pause 1
echo Looking for login prompt.

:slloop
increment \%x			; 횟수를 센다
clear				; 입력 버퍼에서 안읽은 문자를 제거
output \13
;
; 여기다가 나올 login prompt를 입력:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop		; login prompt를 얻기까지 10번을 반복
else goto slhup			; 10번에도 되지 않으면 전화를 끊고 다시 시도

:sluid
;
; 여기다 사용자 id를 입력:
;
output ppp-login\13
input 1 {Password: }
;
; 암호입력:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit

:slnodial
echo \7No dialtone.  Check the telephone line!\7
exit 1

; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:


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