[ CnUnix ] in KIDS 글 쓴 이(By): rohtw (태워니) 날 짜 (Date): 1994년08월08일(월) 15시32분59초 KDT 제 목(Title): [Re^2] Linux에서 PPP 리눅스로 부팅할때 PPP: version 0.2. ..... TCP compression code .......... PPP line dicipline regstered. 라는 세줄이 나오면 커널에 PPP가 있는 거구요.. 만일 이게 안보이면 ppp-2.1.2를 구해서 커널을 다시 컴파일해야합니다. 리눅스에 루트로 로그인해서 netconfig를 실행해서 loopback interface만 가지게 합니다. ( 저는 요걸 몰라서 첨에 PPP인스톨할때 엄청 고생했습니다.) 요까지 하면 반은 한겁니다. 저의 configuration에 대해서................................ SunOS4.1.1 cupid(155.230.23.13:PPP서버) 의 ttyb와 Slackware Linux 1.2.0 think (155.230.23.52:PPP client)의 ttyS1 ( com2에 해당)를 19200 bps로 연결했습니다. sun과 linux사이의 케이블이 18미터가 안되기 때문에 모뎀을 사용할필요가 없습니다. Sun의 커널에도 PPP가 깔렸습니다. 안깔렸으면 위에서 말한 ppp-2.1.2를 구해서 sun의 커널을 다시 컴파일해서 재부팅합니다. sun에서는 ppp라는 아이디를 만들고, ppp의 로그인쉘(/etc/ppp/ppplogin)을 서버 PPP daemon을 띄우는 걸로 만들고, linux에서는 클라이언트 PPP daemon을 띄우는 shell script(pppstart)를 만들어서 /rc/rc.d/rc.inet1안에 " su - guest -c /etc/ppp/pppstart "를 넣어둡니다. 그러면 linux로 부팅할때 마다 ppp interface가 자동으로 연결되게 해놓았습니다. 물론 모뎀으로 연결하면 전화비문제가 있으니까 조금 다르게 해야겠지요 ? PPP관련 화일들입니다: think: /etc/ppp/pppstart #!/bin/sh /usr/etc/pppd connect /etc/ppp/ppp-connect defaultroute \ netmask 255.255.252.0 /dev/ttyS1 19200 think: /etc/ppp/ppp-connect #!/bin/sh /usr/etc/chat -v -t60 "" \; "login: " ppp && sleep 5 cupid: /etc/ppp/ppplogin #!/bin/sh exec /usr/etc/pppd passive :155.230.23.52 차례대로 요 화일에 대해서 설명을 해야 되겠구만요.. think: /etc/ppp/pppstart는 think: /etc/rc.d/rc.inet1에 넣어서 부팅할때마다 실행합니다. connect는 바로 다음에 나오는 화일을 실행하라는 겁니다. think:/etc/ppp/ppp-connect는 서버쪽의 ppp daemon을 띄우는 겁니다. chat이란 프로그램이 재미있는데 .. 이프로그램이 인터랙티브하게 입력해야 하는걸 대신해주는겁니다. -v 는 verbose mode, -t60은 timeout 60초, "" \; 이거는 에터키를 치는거라네요.., "login: " 큰따옴표안에있는 문자가 나오기를 기대합니다. (SLIP에서 expect란 프로그램이 이런 기능을 하던가요?) sun에서 getty 떠있다면 login: 이란 프람프트가 있겠지요 ? login: 이란 문자가 나오면 ppp라는 아이디가 자동으로 입력됩니다. ppp의 로그인 쉘이 ppplogin이니까 cupid:/usr/etc/pppd passive :155.230.23.52가 자동으로 실행이되겠지요 ? 그러면 서버쪽에 ppp daemon이 뜨고..... 아까 think:/etc/ppp/pppstart의 뒷부분을 실행합니다. ifconfig해서 ppp0 라는 인터페이스가 있으면 다된거네요.. 쉘상에서 telnet cupid, telnet think 왔다갔다.. 다 됩니다.. 첨에 디버깅할때(?)는 chat이란 프로그램을 안쓰고 돌려봐야겠지요 ? think에서 kermit를 돌려 set linet ttyS1 , set baud 19200, connect하면 cupid에서 getty가 돌고있으니 login: 이란 프람프트가 나옵니다. 자기 계정으로 로그인해서 쉘프람프트에서 pppd passive :155.230.23.52라고 입력합니다. 이상한 문자가 몇개 나오고 문자입력이 더이상안됩니다.. 여기서 kermit의 escape 키를 눌러 ( ctrl-\ C ) , think의 kermit프람프트상에서 (꼭 kermit안에서 할필요야 없지만...) !/etc/ppp/pppclient를 실행합니다. /etc/ppp/pppclient안에는 #!/bin/sh /usr/etc/pppd defaultrote netmask 255.255.252.0 /dev/ttyS1 19200 이 있습니다. 막바로 !/usr/etc/pppd default.... 라고 입력해도 되겠지요 ? 실행이 끝나고 kermit프람프트가 돌아오면, think의 쉘프람프트에서 ifconfig해봅니다. ppp0가 있으면 성공한거네요.. 있습니까 ? 추카 추카... 없다구요 ? pppd 의 옵션에 kdebug 4라는 옵션을 주고 syslog.conf를 고쳐서 console로 아웃풋이 나오게 해서 뭐가 문젠지 한번...... 문제는 모뎀을 연결할때 인데........... /etc/ppp/pppstart를 #!/bin/sh /usr/etc/pppd connect ' chat -v "" ATDT5551212 CONNECT "" ogin: ppp ' \ /dev/cua1 19200 -detach debug crtscts modem defaultroute 155.230.23.52: 이런식으로 하면 될거 같네요....... ppp-2.1.2받아보시면 README에 제가 쓴글의 대부분이 나옵니다. 헤헤 괜히 타이핑하느라 헛구고 한건 아닐까 ....? 모뎀으로 연결하는 사람들의 local ip address는 어떻게 정해줄까요 ? 서버쪽의 ppplogin안에 case문을 쓰면 될란가...... 'tty'의 결과에 따라 case문이 갈라지게... case 'tty' in /dev/cua1) LOCAL=155......1 .... /dev/cua2) LOCAL=155......2 .... ............ esac pppd 어쩌구 저쩌구 $LOCAL: 이런식으로 하면 될까나....... leeh님뿐만 아니라 다른 분에게도 많은 도움이 됐기를 바랍니다.... 어떤학교인지는 몰라도 leeh님 학교는 대단하구만요.. slip 서버도 돌리주고... 울학교 전산소에서도 slip이나 ppp 돌리줬으면... 25개의 모뎀이 아깝구만요.. |