아이쎈의 리눅스 PPP 서버 연결방법
리눅스에서 01412 망으로 아이쎈(http://www.issan.net)의 PPP 서버(리눅스임)를 연결해 인터넷을 사용하는 방법이다. 아이쎈의 리눅스 PPP 서버는 리눅스랩에서 구축하였다.(X-Window 환경에서 연결하면 네트스케이프로 인터넷 항해가 가능함.)
1.환경 :
1.1배포본 : 모든 배포본에서 사용 가능
1.2사용 모뎀
무관함. 단 이 글의 예는 USRobotics sportster 내장모뎀이며 모뎀의 com 포트는 3번 irq는 5번인 경우이다..
2.시리얼포트 셋업
아래는 내장모뎀의 시리얼포트(com3)의 irq를 5번으로 변경하고 시리얼포트의 최고속도를 115200bps로 설정하는 명령이다. (모뎀이 28.8k 이상이어야 한다.) 부팅 때 마다 자동 실행되도록 레드햇의 경우는 rc.local 파일에 아래 줄을 추가하고 데비안은 /etc/rc.boot 디렉토리의 0setserial 파일을 수정한다. 모뎀이 com1 에 연결돼 있다면 ttyS0, com2라면 ttyS1을 지정해야 한다. 일반 모뎀은 보통 irq 부분은 별도로 지정할 필요가 없다.
2.1 레드햇
. /etc/rc.d/rc.local 에 아래 줄 넣음
/bin/setserial /dev/ttyS2 irq 5 spd_vhi
2.2 데비안
/etc/rc.boot/0setserial에서 아래 줄을 찾아 수정
${SETSERIAL} -b /dev/ttyS2 irq 5 port 0x3E8 skip_test autoconfig spd_vhi
3.확인
리부팅 해서 아래 명령을 줌.
setserial -a /dev/ttyS2
아래처럼 나와야 한다.
/dev/ttyS2, Line 2, UART: 16550A, Port: 0x03e8, IRQ: 5
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000, closing_wait2: infinte
Flags: spd_vhi skip_test
*. IRQ: 5, Baud_base: 115200, Flags: spd_vhi 가 나와야 한다.
모뎀 작동 여부 확인
3.1 minicom -s 명령으로 minicom 을 가동해서 아래처럼 환경 수정
1) serial port setup 에서
. serial device : /dev/ttyS2
. Bps : 115200
2) Save setup as dfl 로 저장 후 종료
*. minicom 이 설치가 안되어 있으면 레드햇의 경우 CD 1번을 마운트 후
RPM 디렉토리에서 아래 명령으로 설치
rpm -i minicom-1.83..
3.2 minicom을 가동해서 01412 를 연결한다.
minicom <enter> 해서 화면에 OK가 나와야 함.
atdt01412 <enter> 해서 01412에 연결돼는 지 확인. 연결되면 다음으로.
*. ISDN 전화의 경우는 01412에 전화가 걸리지 않는다. 이때는 01411을 사용할 것.
리눅스의 라우팅 테이블에 디폴트게이트웨이가 설정돼 있으면 지울 것..
PPP 로 인터넷을 연결시는 디폴트게이트웨이가 PPP 서버여야 한다.(여기서는 아이쎈 리눅스서버)
그래서 ppp 클라이언트(사용자 피시)에 이미 디폴트게이트웨이가 설정되어 있으면 연결이 안된다.
디폴트게이트웨이가 설정돼 있는지를 확인하는 방법은 아래와 같다.
netstat -nr 명령을 준다.
아래처럼 마지막 라인에 0.0.0.0 으로 시작하는 줄이 있으면 디폴트게이트웨이가 설정돼어 있다.
[root@jinnee/root]#netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSSWindow irtt Iface
192.168.1.5 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
3.3디폴트게이트웨이 제거
1) 일시적 제거
일시적으로 제거하는 방법이다. (리부팅하면 효력이 사라진다.)
route del default
2) 영구 제거
- 레드햇의 경우
/etc/sysconfig/network 파일에서 GATEWAY= 에 지정된 IP 어드레스를 지움.
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=jinnee
DOMAINNAME=urizip.com
GATEWAY=
GATEWAYDEV=eth0
- 데비안의 경우
/etc/init.d/network 파일의 아래 줄을 제거(맨 앞에 #를 넣음)
#[ "${GATEWAY}" ] && route add default gw ${GATEWAY} metric 1
4.ppp 옵션 설정
통신속도, 압축방법 등을 지정한다. /etc/ppp 디렉토리의 options 파일에 아래 내용을 넣는다. 다른 내용은 지움. (이 파일이 없으면 새로 만듬)
lock
modem
crtscts
bsdcomp 15
deflate 15
115200
5.pap-secrets 파일 만듬.
아이쎈의 PPP 서버에서는 사용자 인증(사용자가 정당한 사용자 인지 체크하는 것) 에 pap을 사용한다. 리눅스에서 pap 인증을 지정하는 파일은 /etc/ppp/pap-secrets 파일이다. 이 파일에 아이쎈에서 부여한 계정과 패스워드를 넣는다. 계정을 발급 받으려면 아이쎈의 홈페이지를 참고할 것.(시험 서비스 기간에는 사용자 인증을 하지 않으므로 이 파일이 필요없음.) 형식은 아래와 같다.
계정명 * 패스워드
이 파일은 다른 사용자가 볼 수 없도록 “chmod 600 “ 명령을 준다.
6.ppp 자동연결 스크립트 작성
이 스크립트는 01412 번으로 전화를 걸어 메뉴에서 “2”번을 선택 후 “issan”을 입력해 주고 아이쎈의 ppp 서버에서 pppd 데몬이 뜨면 자신의 pppd를 실행해주는 스크립트이다.(파일 이름을 issan 이라하자.)
#!/bin/bash
/usr/sbin/pppd connect \
'/usr/sbin/chat -t 60 "" atx1 OK atdt01412 X 2 X issan' \
/dev/ttyS2 noipdefault defaultroute
* \ 앞에 공백이 필요하다.
이 파일은 실행모드여야 한다
chmod 755 issan <enter>
6.1연결 실행
위의 스크립트(issan)가 저장된 디렉토리에서 ./issan <enter> 하면 연결된다.
6.2연결 확인
PPP 연결이 이루어 졌는지를 확인하는 방법이다.
6.2.1ifconfig 명령에서 아래처럼 나와야 한다.
eth0 Link encap:Ethernet HWaddr 00:00:21:E6:B0:45
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1238 errors:0 dropped:0 overruns:0 frame:0
TX packets:650 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:9 Base address:0x300
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
ppp0 Link encap:Point-to-Point Protocol
inet addr:210.115.4.12 P-t-P:210.115.4.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:576 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
(ppp0 … 이하의 줄이 추가된다.)
6.2.2ps ax 명령을 주면 아래 줄이 나온다.
664 ttyS2 S 0:00 /usr/sbin/pppd connect /usr/sbin/chat -t 60 "" atx1 OK atdt0141
6.2.3netstat -nr 명령을 주면 아래처럼 나와야 한다.(끝이 ppp인 라인이 두 개 나온다.)
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.5 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
210.115.4.2 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 210.115.4.2 0.0.0.0 UG 0 0 0 ppp0
연결 끊기
위의 "6.2" ps ax 명령 출력에서 맨 앞에 나오는 숫자(PID를 kill 명령 뒤에 넣는다.)
kill 664
아이쎈의 리눅스 PPP 서버 구축에 관한 자세한 내용은 리눅스월드 2000년 8월호에 있음.
작성자 : 배철수<bae@linuxlab.co.kr>