· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Dip+SLiRP+CSLIP

Linux Dip+SLiRP+CSLIP mini-HOWTO

Linux Dip+SLiRP+CSLIP mini-HOWTO

Zenon Fortuna ( zenon@netcom.com)

Version: 1.0 October 15th '95 번역자: 김광찬 (nownuriID:깡통따게, can@nownuri.nowcom.co.kr) 번역일자: 1996년 12월 25일 크리스마스에..

1. "Dip+SLiRP+CSLIP mini-HOWTO" 만든이유

이 문서는 단지 계정에서 SLIP-인터넷 연결에 사용되는 유용한 쉘-을 인스톨 하고 싶지만 NET-2-HOWTO의 모든 내용과 Dip/SLiRP문서를 읽기 원치 않는 사용자를 위한 것이다.위에 언급했던 문서들은 좀더 자세하지만 여러분의 머리를 무척이나 아프게 할것이다.:)

dip337n-uri와 slirp-0.95h 패키지들이 본 테스트에 사용되었다.이 테스트는 슬렉 2.2.0이 인스톨된 상태에서,커널1.2.13의 안정된 리눅스에서 행해졌다.(확인됐다?)

2. 문서정보(History of changes)

1995년 10월 15일 현재 버젼:1.0 이 문서는 최초 작성된 문서임

3. 들어가기전에 (Short description)

  • 나는 당신의 리눅스박스(리눅스시스템)가 계정(shell-account)를 가지고 있는 ISP (인터넷 서비스 제공업체)의 서버에 전화접속이 가능하다는걸 전제한다.이 서버에 우리는 "SLiRP"유틸리티를 설치할 것이다.
  • 우리는 서버(remote-server)에 전화접속을 위해서 특별한 스크립트와 함께 리눅스 박스에서 "dip"유틸리티를 준비하고, 서버에서 "SLiRP"를 시작할 것이다.
  • "dip"은 시리얼 라인 변수 조건으로 실행될 것이며,서버의 "SLiRP"에 의해 설정되 어진 IP mapping을 리눅스박스에 알려줄 것이다.
  • as a result the TCP/IP packets sent over the serial-line/modem connection will be handled by the remote server as though being sent locally by this server.(역자:짧은 영어 실력덕으로 해석을 못한점 이해바람 :<)
* 우리는 인터넷 리소스들로부터 리눅스 시스템의 TCP/IP연결을 얻을수 있다. * Miracle happens: we will get a TCP/IP connection of the Linux system * * to the Internet resources. *

4. 설정단계

4.1 SLiRP 인스톨하기

  • slirp-0.95h.tar.gz 와 같이 배포되는 SLiRP프로그램을 구해서,리모트 호스트(전 화접속을 할 시스템)에서 "slirp"프로그램을 컴파일 한다. SLiRP의 docs/README.compiling 에 자세한 설명이 되있다.
  • 컴파일 대신에 ibc.wustl.edu/pub/slirp_bin/USE_AT_OWN_RISK/ 에서 미리 컴 파일된 바이너리 화일과,Alt.dcom.slip-emulators FAQ 설명및 문서들을 구할수 있다.(역자: 내가 알아본 결과 이곳에는 아무것도 들어있지 않았다.단지 HTML만 달랑있었을 뿐이였다.선사이트에 가는게 더 빠를듯)
  • "slirp"화일을 좀더 좋은 자리,"./bin/slirp" 나 "./slirp"($HOME 디렉토리에서) 에 옮긴다.
  • $HOME 디렉토리에 ".slirp"화일을 만든다.다음과 같은 간단한 명령어를 넣는다.

#### .slirprc file #### add ptyexec /usr/bin/tcsh -l:10.0.2.1:23 compress baudrate 38400 #### end

"compress"는 CSLIP 프로토콜을 사용할수 있도록 해준다. "add ptyexec"명령어는 "shell"명령어 대신에 사용된것이다. (명령어 리스트는 SLiRP의 dosc/CONFIG를 보라.)

왜냐하면 "tcsh -l"(".login"에서) 을 사용하는것 보다 좋으며,"shell"명 령어는 flag들을 받아들이지 않기 때문이다.(난 그렇게 믿는다.) 당신은 리모트 시스템에서 "tcsh"프로그램에 의해 특화된 주소를 사용해야 한다.(또는 당신이 좋아하는 쉘이나..) "baudrate"는 당신의 모뎀 연결에 알맞은 속도를 사용해야한다.

4.2 SLiRP 테스팅하기

당신의 서버(remote system)에 로긴한후

% bin/slirp (또는 "./slirp"라고 입력한다.:화일 위치에 따라 다르다.)

당신은 마지막 줄에 다음과 같은 메시지를 얻어야한다.

[talking CSLIP, MTU 1500, MRU 1500, 38400 baud]

"slirp"를 끝내기 위해서는 "0"을 천천히 다섯번 누른다.(1초보다 작은 간격으로)

4.3 당신의 리눅스박스 셋팅하기 :)

근본적으로,당신은 커널에서 CSLIP과 네트웍 작동이 가능하도록 준비하는 행동을 해야 한다.그런후 당신은 네트웍 셋팅을 해야 한다."src/linux"에서 "make config" 를 한후 다음과 같은 곳에 "y"를 해준다.

                Networking support (CONFIG_NET) [y]
                TCP/IP networking (CONFIG_INET) [y]
                Assume subnets are local (CONFIG_INET_SNARL) [y]
                Network device support? (CONFIG_NETDEVICES) [y]
                Dummy net driver support (CONFIG_DUMMY) [y]
                SLIP (serial line) support (CONFIG_SLIP) [y]
                CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [y]
                PPP (point-to-point) support (CONFIG_PPP) [y]

나는 3c509 Ethernet card를 사용한다.따라서 다음과 같은 옵션을 첨가 했다.


                3COM cards (CONFIG_NET_VENDOR_3COM) [y]
                3c509/3c579 support (CONFIG_EL3) [y]
 
NFS 설치를 위해 당신은 다음과 같이 첨가할수 있다.

                NFS filesystem support (CONFIG_NFS_FS) [y]

"make config"를 성공적으로 마친후,"make dep;make clean;make zlilo"를 통해 커널 컴파일을 수행한다.

네트웍 설정에 있어서 가장 먼저 어떤 IP 주소를 사용할것인가 결정해야 한다. 만약 당신의 주소가 부족하다면,RFC1597(역자:이것이 뭔지 모름 ^^;)에 의해 로칼 네트웍에 허락된 192.168.1.100을 적어준다.

물론 당신은 NET-2-HOWTO 를 읽음으로써 더 정확한 정보를 얻을수 있으나,다음과 같이 하면 가능할 것이다.

A."yourhost.linux.org"와 같이 당신의 시스템에 네트웍 이름을 부여한다. 세개의 이름은 당신의 입맛에 맞게 골라라 :) "/etc/HOSTNAME"에 위에서 설정한 이름을 적어넣는다.

B."/etc/hosts"에 다음과 같이 적어넣기 바란다.

192.168.1.100 yourhost.linux.org yourhost

위에서 "yourhost.linux.org"는 A 번째에 적은 이름과 같아야 한다.

C.만약 로컬 이더넷을 실행한다면(If you run local Ethernet) 다음을 "/etc/networks"에 적기 바란다.

yournet 192.168.1.0

D./etc/rc.d 디렉토리에 있는 "rc.inet1" 에 다음을 설정한다.

IPADDR=yourhost NETMASK="255.255.255.0" NETWORK=yournet BROADCAST="192.168.1.255"

그런후,만약 실제 이더넷카드를 가지고 있다면 다음에 해당하는 행의 주석처 리된것을 지워라.

/sbin/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST} /sbin/route add -net ${NETWORK} netmask ${NETMASK}

E.당신의 두네임인 "linux.org"(A 참고)를 "/etc/resolv.conf"에 다음과 같이 적어 넣는다.

domain linux.org

마지막으로 당신의 시스템을 리부팅하면 된다.

4.4 리눅스 시스템 테스팅하기

syslogd(8) 이 실행된다면 가장먼저 부팅메시지를 보거나,"/usr/adm/messages" 화일을 살펴보라.당신은 다음과 같은 메시지를 볼수 있을것이다.

IP Protocols: ICMP, UDP, TCP PPP: version ... TCP compression ... PPP line discipline registered. SLIP: version ... CSLIP: code copyright ...

만약 당신이 이더넷 인터페이스를 가지고 있다면 마찬가지로 다음과 같이 인식될 것이다.

eth0: 3c509 at 0x280 ...

당신의 네트웍은 설정되었고 약간의 명령어를 통해 테스트할수 있다.

A.아무 옵션없이 "ifconfig"를 실행하면,당신은 "lo"(loopback)인터페이스가 활성화된것을 주소와 함께 확인할 수 있다.만약 당신이 실제 이더넷을 운용 중이라면,"eth0" 인터페이스 정보도 볼수 있을것이다. 그리고 "inet addr: 192.168.1.100"등과 같은 눈에 익은 주소를 확인할 수 있다.

B.아무런 옵션없이 "route"를 실행하면,"loopback"과 "yournet"에 해당하는 줄을 볼수 있다.

이제 당신의 리눅스 시스템은 CSLIP과 함께 일할 준비를 갖췄다.

4.5 DIP 인스톨하기

  • 어쩌면 (it may happen),여러분의 리눅스 시스템에는 "dip" 바이너리화일을 이미 가지고 있을 것이다.이것이 만약 3.3.7n버젼이라면 좋을 것이다.(이것은 최신 문서로 업데이트 되있다.)
  • 그렇지 않다면 dip337n-uri.tar.gz 와 같은(혹은 더 상위버젼)의 Dip 배포본을 구한후 여러분의 리눅스 박스에서 컴파일 한다.dip-3.3.7n 디렉토리에서 단지 "make"라고 타이핑하기만 하면 된다.
  • /usr/local/bin/dip 또는 $HOME/bin/dip 같은곳에 "dip"프로그램을 옮겨놓는다.
  • 홈디렉토리($HOME)에 "slirp.dip"과 같은 dip스크립트를 만든다.

dip 스크립트 화일은 보통 길며 복잡하다.dip의 "samples" 디렉토리에 약간의 예문이 있다.(아마도 /usr/doc/dip/samples에 깔려있을 것이다.)


 아래에 나의 "slirp.dip"를 예로 적어봤다.
#### slirp.dip #####
#
# slirp.dip     Dialup IP script for use with SLiRP and netcom
#


main:
  # netmask 를 sl0로 설정한다.
  netmask 255.255.255.0


  # serial port 와 속도를 설정한다. 
  # ttyS2 를 당신의 모뎀 디바이스에 맞게 고쳐야 할것이다.
  # 나는 이 포트에서 "mgetty"가 잘작동한다.따라서 나는 "cua2" 보다는 "ttyS2"를
  # 사용하길 바란다.
  port ttyS2
  speed 38400


  # 모뎀과 터미널라인을 다시 셋팅해 준다.
  # 이부분은 몇몇 사용자들에게서  문제가 생기는듯 하다.
  reset


  # 다이알링을 위한 준비단계.
  # 당신의 모뎀은 이것과 다른 초기화일지 모른다는걸 주의하라.
  # 내 모뎀은 WorldBlazer 이다.
  send AT S0=0 S11=70 S50=254 S58=2 Q0 V1 E1 X4\r
  wait OK 2
  if $errlvl != 0 goto modem_trouble


redial:
 # 당신의 POP#에 전화를 건다.
 # 다음 전화번호는 내가 접속하는 POP번호이다. 
 # your mileage may vary(<= 이거 무슨뜻이죠?)
  send ATDT 274 2900\r
  wait CONNECT 50
  if $errlvl != 0 goto dial_trouble


  # 연결이 됐다면 시스템에 로긴한다.
login:
  sleep 2
  send \n 
  wait ogin: 20
  if $errlvl != 0 goto login_trouble
  print got the login prompt, OK
  # 밑의 'zenon' 을 당신의 로긴명으로 바꾸기 바란다.
  sleep 2
  send \n
# 로긴명을 넣기전에 "\n"을 적어주는 이유를 잘 모르겠다. 
# 이걸 안적어줬을 경우 작동을 하지 않는다.
  sleep 2
  send zenon\n
  print sent 'zenon', waiting for 'password' ...


  wait ord: 30
  if $errlvl != 0 goto password_trouble
  # 아래의 'blablabla'부분에 여러분의 패스워드를 넣어준다. 
  send blablabla\r


  # 아마도 로긴되었을 것이다.
loggedin:
  # 아래부분을 당신의 쉘 프롬프트로 바꾼다. (내것은 <url url="mailto:zenon@netcomNN" name="zenon@netcomNN" > n%이다.)
  wait zenon 15
  if $errlvl != 0 goto prompt_error


  # SLiRP가 리모트 machine 의 IP를 10.0.2.2로 가지도록 한다.
  get $remote 10.0.2.2


  # Make sure 'slirp' is found on netcom and is executable
  # 나는"slirp"가 리모트의 $HOME/bin 디렉토리에 인스톨 되었다구 가정한다.
  
  send exec bin/slirp\n


  # CSLIP 작업 변수를 설정한다.(operating parameters.)
  get $mtu 1500


  # Ensure "route add -net default $remote" will be done
  # With the dip-3.3.7n it is simple, just say "default"
  default


  # Say hello and fire up!  <= 이거 어떻게 해석하죠?? ^^;
done:
  print CONNECTED local: $locip ---> remote: $rmtip
  mode CSLIP
  goto exit


prompt_error:
  print TIME-OUT waiting for SLIPlogin to fire up...
  goto error


login_trouble:
  print Trouble waiting for the Login: prompt...
  goto error


password_trouble:
  print Trouble waiting for the Password: prompt...
  goto error


modem_trouble:
  print Trouble occurred with the modem...
  goto error


dial_trouble:
  print Trouble occurred while dialing...
error:
  print CONNECT FAILED to $remote
  quit
exit:
  exit
#### end

참고:위의 스크립트중에서 다음에 해당되는 사항은 여러분에게 알맞게 고치도록 한다.

- 포트 이름 (나는 ttyS2를 사용한다.) - 포트 속도 (나는 38400으로 사용한다.) - 모뎀 초기화 문자 (내가 사용하는 것은 WorldBlazer이다.) - POP's 전화번호 (내것과 다르길 바란다 :) - 로긴명 - 암호 - 프롬프트(확실히 로긴되었을때) - "slirp"의 위치 (내것은 $HOME/bin이다.)

4.6 DIP 테스팅하기

당신은 다음과 같이 verbose(어떻게 해석해야 하나? ^^;) 상태로 "dip"을 시작할수 있다.

% dip -v slirp.dip

The messages printed by the "dip" may suggest some modifications to the above "slirp.dip" script. ( "dip"에 의해 나타나는 메세지는 위의 "slirp.dip" 스크립트에 의해 변경된 사항을 제시할 것이다.?)

모든것이 잘된다면 당신은 다음과 같은 메시지를 마지막에서 볼수 있을 것이다.

CONNECTED local: 192.168.1.100 ---> remote: 10.0.2.2

"dip" 스위치들은 "daemon"과 같이 실행되며,당신의 프롬프트로 돌아온다.(??) 그런데 "dip"을 지금 바로 멈추려면,단지 "dip -k"라고 두드리기만 하면 "dip"은 취소될 것이고,모뎀연결도 취소될 것이다.

5. 일반적인 작업

ㄱ. 다음과 같이 dip+slirp연결을 한다. % dip slirp.dip

ㄴ. 연결이 성공한후 "CONNECTED..." 메시지가 나타나면 당신의 ISP를 통한 인터넷에 CSLIP 연결 된 것이다. "telnet"을 이용해 가장먼저 당신의 리모트서버에 접속해 보자. % telnet 10.0.2.1 Thanks to the ".slirprc" configuration file, this connection should activate the "tcsh -l" and you should get the remote login. (".slirprc" 화일에 감사한다. 이 연결은 "tcsh -l"를 활성화 시키고 당신은 리모트 로긴을 할수 있다. ??) <= 해석이 이상하죠 ^^; "ps"명령을 실행하면 다음과 같은 내용을 볼수 있다. 6019 s0 S 0:13 slirp 6075 sb IW 0:00 -/usr/bin/tcsh (tcsh) 16721 t6 R 0:00 ps

ㄷ. 당신은 텔넷접속을 종료하거나,아니면 다른 가상터미널(X shell-window) 에서 다음과 같이 FTP연결을 할 수 있다. % ftp 198.86.40.81

성공적인(?) 익명연결후 당신은 Linux-archive사이트인 "sunsite.unc.edu"라는것을 발견할 것이다. 만약 당신이 상당히 멀리 있다면 당신은 dip+slirp의 힘에 감탄할것이다. you are on the NET. <= ??

가능한 빨리 "sunsite"연결을 해제한후 "yourhost"로 돌아온다. 아마도 다음과 같은 의문이 생길것이다.

간단히 "ftp sunsite.unc.edu"에 접속할수 없을까? DNS (Domain Name Server) 등록을 하기전에는 불가능하다. 만약 지금 당장 CSLIP연결을 종료하고자 한다면 로컬프롬프트에서 다음과 같이 입력하면 된다. % dip -k

5.1 DNS 설치하기 (Adding a DNS capability)

분명히 당신의 리모트 ISP들은 DNS서비스를 제공한다.(그렇지 않다면 당신은 올바른 인터넷 연결을 할수 없을 것이다.) "dip slirp.dip" 과 "telnet 10.0.2.1"을 사용하여 다시한번 리모트서버에 접속한후 "/etc/resolv.conf" 화일을 읽는다. 당신은 다음과 같은 몇개의 줄들을 볼수있을 것이다.

nameserver <IP-address>

여기서 <IP-address>는 특별한 값이다.(서버마다 틀릴수 있다. 이러한 줄들중에 적어도 한개이상을 당신의 로칼 리눅스박스의 "/etc/resolv.conf" 에 적어준다. 이제 로컬 시스템으로 돌아와서 (dip+slirp 연결은 유지한채),DNS가 작동하는지 시 험해 본다. % dnsquery sunsite.unc.edu 위와 같이 입력했을경우 선사이트의 IP주소가 출력된다면 당신의 DNS서비스는 작동 중이다.이제 당신은 "lynx","mosaic","netscape"같은 유틸리티를 당신의 리눅스박스에 서 바로 실행시킬수 있다.

6. 소 견

이 문서는 지침서이라기 보다 기본적인 dip+slirp을 정리해놓은 간단한 문서이다. 목적은 앞으로 CSLIP을 사용하고자 하는 사용자들을 돕기 위해서이다.따라서 위의 글중에서 약간의 버그라도 발견된다면 나에게 알려주길 바란다.시간이 지나뒤 미니 하우투에 이글을 옮길 것이다.(??) 시간이 지난뒤 (?) 나의 다음의 ftp디렉토리에서 발견할수 있다. ftp.netcom.com:/pub/ze/zenon/linux/DipSlirpCSLIP/ 나는 훌륭한 유틸리티들인 "dip" 과 "slip" 제작자들한테 감사드린다.(want to??) I am impressed and grateful.(<= 감명받았으며 즐겁다?? ^^;)

제작자:Zenon Fortuna ( zenon@netcom.com) 번역자:김광찬 (nownuriID:깡통따게, can@nownuri.nowcom.co.kr)




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0046 sec