Dip+SLiRP+CSLIP Autor: Zenon Fortuna, zenon@netcom.com v1.1, 29 Pa¼dziernika 1995 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll v1.0, 3 Wrze¶nia 1997 [Od t³umacza]T³umaczenie to jest zrobione z wersji 1.1, któr± znalaz³em na serwerze u autora, a której nie wiedzieæ czemu nie ma nigdzie na oficjalnych serwerach.[koniec] Dlaczego powsta³ ten doku ment? Jest on przeznaczony dla tych, którzy nie chc± czytaæ ca³ego NET-3-HOWTO z wszystkimi jego szczegó³ami, ani nie chc± czytaæ doku mentacji do Dip-a/SLiRP-a, ale chcieliby zainstalowaæ SLIP-owe po³±czenie do Internetu, u¿ywaj±c do tego celu konta z dostêpn± pow³ok± (shell-em). Wymieniona wcze¶niej dokumentacja powinna byæ rozwa¿ana jako bardziej wyczerpuj±ca (i to w obu tego s³owa znaczeni ach). Opisane przyk³ady zosta³y przetestowane na pakietach dip337n-uri i slirp-0.95h. Testy zosta³y przeprowadzone na stabilnej wersji j±dra (tm) Linux-a - 1.2.13, oprogramowanie zosta³o zainstalowane pod dys trybucj± Slackware 2.2.0. Dokument ten zosta³ napisany w standardzie ISO-8859-2. Orygina³ tego dokumentu znajduje siê pod adresem ftp.net com.com w katalogu /pub/ze/zenon/linux/DipSlirpCSLIP/. 11.. HHiissttoorriiaa zzmmiiaann.. 29 Pa¼dziernika '95 Wersja: 1.1 Doda³em informacjê dla systemów tylko z urz±dzeniem _l_o_o_p_b_a_c_k. 15 Pa¼dziernika Wersja: 1.0 Pierwotna wersja tego dokumentu. 22.. KKrróóttkkii ooppiiss.. · Zak³adam, ¿e twój serwer ma mo¿liwo¶æ dodzwonienia siê do serwera dostawcy Internet-u, gdzie posiadasz konto z pow³ok± (shell-em). Na tym serwerze zainstalujemy narzêdzie sslliirrpp. · Bêdziemy chcieli przygotowaæ narzêdzie ddiipp na Linux-ie, razem ze specjalnym skryptem do po³±czenia siê z serwerem dostawcy oraz do wystartowania sslliirrpp--aa na tym¿e serwerze. · Uruchomiony ddiipp skonfiguruje parametry linii szeregowej i poinformuje Linux-a o przyznanym numerze IP, któr± to informacje dostanie od sslliirrpp--aa na serwerze dostawcy. · W wyniku tych operacji pakiety TCP/IP wysy³ane poprzez liniê szeregow±/modem bêd± obs³ugiwane przez serwer dostawcy tak jakby by³y wys³ane przez nasz serwer. I stanie siê cud: bêdziemy mieli po³±czenie TCP/IP miêdzy Linux-em a zasobami Internet-u. 33.. KKrrookkii ppooddcczzaass kkoonnffiigguurraaccjjii.. 33..11.. IInnssttaallaaccjjaa SSLLiiRRPP--aa.. · zdob±d¼ plik dystrybucyjny ze SSLLiiRRPP--eemm, np. slirp-0.95h.tar.gz, i skompiluj program sslliirrpp na serwerze dostawcy (na komputerze, do którego bêdziesz dzwoni³). Plik docs/README.compiling zawarty w dystrybucji SSLLiiRRPP--aa wyja¶nia wszystkie szczegó³y dotycz±ce kompilacji. Mo¿esz te¿ wzi±æ ju¿ skompilowan± wersjê z ibc.wustl.edu <ftp://ibc.wustl.edu/pub/slirp_bin/USE_AT_OWN_RISK/>, któr± podaje FAQ z Alt.dcom.slip-emulators zawarte w dokumentacji. · przenie¶ program sslliirrpp do jakiego¶ lepszego katalogu, np. ./bin/slirp czy ./slirp (w twoim katalogu domowym). · stwórz w swoim katalogu domowym plik .slirprc ¿eby by³ prosty, to u¿yjemy tylko kilku poleceñ: #### .slirprc file #### add ptyexec /usr/bin/tcsh -l:10.0.2.1:23 compress baudrate 38400 #### end Polecenie ccoommpprreessss zapewnia nas, ¿e zostanie u¿yty protokó³ CSLIP. Polecenie aadddd ppttyyeexxeecc zosta³o u¿yte zamiast polecenia sshheellll (listê poleceñ znajdziesz w pliku docs/CONFIG), poniewa¿ lepiej jest u¿yæ ttccsshh --ll (w pliku .login), a polecenie sshheellll nie przyjmuje opcji (tak s±dzê). Powiniene¶ u¿yæ dok³adnej ¶cie¿ki do ttccsshh na serwerze dostawcy (albo u¿yj jakiej¶ innej pow³oki (shell-a) je¶li wolisz). Polecenie bbaauuddrraattee powinno zostaæ u¿yte z warto¶ci± odpowiedni± dla twojego po³±czenia modemowego. 33..22.. TTeessttoowwaanniiee SSLLiiRRPP--aa.. Zaloguj siê na swoje konto u dostawcy i napisz _b_i_n_/_s_l_i_r_p (albo _._/_s_l_i_r_p, w zale¿no¶ci od lokalizacji) Powiniene¶ zobaczyæ listê wiadomo¶ci z tak± lini± na koñcu: [talking CSLIP, MTU 1500, MRU 1500, 38400 baud] Aby wyj¶æ ze sslliirrpp--aa wpisz powoli (z ponad sekundowymi przerwami) piêæ zer. 33..33.. KKoonnffiigguurraaccjjaa ttwwoojjeeggoo LLiinnuuxx--aa.. W skrócie to co musisz zrobiæ, to przygotowaæ j±dro, ¿eby mog³o pracowaæ z sieci± i CSLIP-em. Potem powiniene¶ skonfigurowaæ sieæ. Napisz _m_a_k_e _c_o_n_f_i_g w katalogu /usr/src/linux i odpowiedz "y" na nastêpuj±ce pytania: 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] Ja u¿ywam karty Ethernet-owej 3c509, wiêc moje dodatkowe opcje to: 3COM cards (CONFIG_NET_VENDOR_3COM) [y] 3c509/3c579 support (CONFIG_EL3) [y] Przy instalacji poprzez NFS mo¿esz te¿ dodaæ: NFS filesystem support (CONFIG_NFS_FS) [y] Teraz, jak ju¿ poprawnie skonfigurowa³e¶ j±dro, skompiluj je wydaj±c polecenia: _m_a_k_e _d_e_p _&_& _m_a_k_e _c_l_e_a_n _&_& _m_a_k_e _z_I_m_a_g_e. Po kompilacji przenie¶ plik /usr/src/linux/arch/i386/boot/zImage do katalogu, w którym zwykle znajduje siê j±dro i uruchom lilo. Aby skonfigurowaæ sieæ, najpierw zdecyduj jaki bêdzie twój adres IP. Je¶li brakuje ci specjalnych adresów, to we¼ 192.168.1.100, który to jest dozwolony dla u¿ytku lokalnego przez RRFFCC11559977. Dla systemów tylko z urz±dzeniem _l_o_o_p_b_a_c_k bêdzie to adres 127.0.0.1. Je¶li chcesz dok³adnych i poprawnych informacji, to powiniene¶ raczej przeczytaæ NET-3-HOWTO (dostêpne tak¿e po polsku <http://www.jtz.org.pl/Html/NET-3-HOWTO.pl.html>), ale mo¿esz spróbowaæ zrobiæ co¶ takiego: · Nadaj swojemu systemowi nazwê sieciow±, np. mmoojj--hhoosstt..lliinnuuxx..oorrgg, gdzie wszystkie trzy cz³ony mog± byæ dowolne. Umie¶æ powy¿szy ³añcuch (bez znaków ") w pliku /etc/HOSTNAME. · Zmodyfikuj twój plik /etc/hosts, dodaj±c: 192.168.1.100 moj-host.linux.org moj-host 127.0.01 localhost (albo 127.0.0.1 moj-host.linux.org moj-host 127.0.0.1 localhost) £añcuch "moj-host.linux.org" powinien byæ identyczny z tym wybranym w pierwszym kroku. · Je¶li masz sieæ Ethernet, to dodaj do pliku /etc/networks liniê: moja-siec 192.168.1.0 (albo loopback 127.0.0.1) · Zmodyfikuj swój plik rc.inet1 z katalogu /etc/rc.d (zachowaj gdzie¶ oryginaln± wersjê) i wpisz do niego: IPADDR=moj-host NETWORK=moja-siec NETMASK="255.255.255.0" BROADCAST="192.168.1.255" (albo NETMASK="255.0.0.0" BROADCAST="127.255.255.255") Potem je¶li masz w komputerze kartê Ethernet-ow±, to odkomentuj poni¿sze linie: /sbin/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST} /sbin/route add -net ${NETWORK} netmask ${NETMASK} W innym razie, je¶li masz tylko _l_o_o_p_b_a_c_k, to upewnij siê, ¿e s± tam: /sbin/ifconfig lo localhost /sbin/route add -net loopback · Umie¶æ swoj± nazwê domeny lliinnuuxx..oorrgg (porównaj z krokiem pierwszym) w pliku /etc/resolv.conf w taki sposób: domain linux.org Teraz zrestartuj system. 33..44.. TTeessttoowwaanniiee ttwwoojjeeggoo LLiinnuuxx--aa.. Przede wszystkim obserwuj komunikaty pojawiaj±ce siê podczas startu, albo zajrzyj do pliku /usr/adm/messages je¶li dzia³a u ciebie proces _s_y_s_l_o_g_d_(_8_). Powiniene¶ zobaczyæ mniej wiêcej takie komunikaty: IP Protocols: ICMP, UDP, TCP PPP: version ... TCP compression ... PPP line discipline registered. SLIP: version ... CSLIP: code copyright ... Je¶li posiadasz te¿ interfejs Ethernet, to powinien on tak¿e zostaæ poprawnie rozpoznany: eth0: 3c509 at 0x280 ... Twoja sieæ powinna byæ ju¿ aktywna i mo¿esz trochê potestowaæ kilkoma poleceniami: · Uruchom _/_s_b_i_n_/_i_f_c_o_n_f_i_g bez parametrów. Powiniene¶ zobaczyæ aktywny interfejs _l_o (loopback) wraz z przypisanymi mu adresami. Je¶li masz tak¿e sieæ Ethernet, to zobaczysz dodatkowo informacje na temat interfejsu _e_t_h_0 i powiniene¶ zobaczyæ znany ci ju¿ adres _i_n_e_t _a_d_d_r_: _1_9_2_._1_6_8_._1_._1_0_0, itp. · Uruchom _/_s_b_i_n_/_r_o_u_t_e bez argumentów. Powiniene¶ zobaczyæ liniê dotycz±c± _l_o_o_p_b_a_c_k i ewentualnie nastêpn± dotycz±c± sieci "moja-sieæ". Dobra, twój Linux jest gotowy do wspó³pracy z CSLIP-em. 33..55.. IInnssttaallaaccjjaa DDIIPP--aa.. · mo¿liwe, ¿e na twoim Linux-ie jest ju¿ zainstalowany ten program. By³oby dobrze mieæ wersjê 33..33..77nn (jest tam uaktualniona dokumentacja). · je¶li tak nie jest, zdob±d¼ ten program, np. dip337n-uri.tar.gz i skompiluj program ddiipp na swoim lokalnym komputerze. Robi siê to poprzez wydanie polecenia _m_a_k_e w katalogu dip-3.3.7n. · przenie¶ program ddiipp do jakiego¶ odpowiedniejszego katalogu, który jest w twojej zmiennej _$_P_A_T_H, np. /usr/local/bin/ albo _$_H_O_M_E/bin/dip. · w jakim¶ odpowiednim katalogu, np. w _$_H_O_M_E, stwórz skrypt ddiipp--aa - slirp.dip Skrypt ddiipp--aa jest zwykle d³ugi i skomplikowany. W katalogu samples znajduje siê kilka przyk³adów (mo¿e to byæ np. /usr/doc/dip/samples) W ka¿dym razie ja podam tutaj swój skrypt jako przyk³ad: #### slirp.dip file #### # # slirp.dip Dialup IP script for use with SLiRP and netcom # main: # Ustaw maskê sieci na sl0 netmask 255.255.255.0 # Ustaw odpowiedni port szeregowy i jego prêdko¶æ. # Mo¿liwe, ¿e musisz zmieniæ ttyS2 na inn± warto¶æ dla twojego modemu. # Ja mam tak¿e uruchomione "mgetty" na tym porcie dlatego u¿ywam # "ttyS2" a nie "cua2" port ttyS2 speed 38400 # Zresetuj modem i liniê terminalow±. # Tutaj wystêpuj± u niektórych problemy. reset # Przygotuj siê do dzwonienia. # Zauwa¿, ¿e twój modem mo¿e mieæ inny ³añcuch inicjacyjny. # Mój to WordBlazer 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: # Wybierz numer. # U ciebie bêdzie raczej inny numer. send ATDT 274 2900\r wait CONNECT 50 if $errlvl != 0 goto dial_trouble # Po³±czyli¶my siê. Zaloguj ten fakt do systemu. login: sleep 2 send \n wait ogin: 20 if $errlvl != 0 goto login_trouble print got the login prompt, OK # zamieñ poni¿sze "zenon" na twój identyfikator u dostawcy sleep 2 send \n # Nie wiem dlaczego musia³em dodaæ jeszcze "\n" przed wys³aniem mojego # identyfikatora, ale inaczej nie dzia³a³o sleep 2 send zenon\n print sent 'zenon', waiting for 'password' ... wait ord: 30 if $errlvl != 0 goto password_trouble # poni¿sze "blablabla" zamieñ na swoje has³o. send blablabla\r # Teraz jeste¶my ju¿ zalogowani - przypuszczalnie. loggedin: # Zamieñ poni¿sze na TWÓJ prompt (mój to zenon@netcomNN n% ) wait zenon 15 if $errlvl != 0 goto prompt_error # SLiRP ustawia 10.0.2.2 jako adres odleg³ego komputera. get $remote 10.0.2.2 # Upewnij siê, ¿e "slirp" jest na ¶cie¿ce i ¿e jest wykonywalny. # W tym przyk³adzie zak³adam, ¿e slirp zosta³ zainstalowany w katalogu # $HOME/bin send exec bin/slirp\n # Ustaw parametry CSLIP-a get $mtu 1500 # Upewnij siê, ¿e polecenie "route add -net default $remote" jest wykonane # W pakiecie dip-3.3.7n wystarczy wpisaæ "default" default # Powiedz "Cze¶æ" i odpalaj. 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 KOMENTARZ: W powy¿szym przyk³adzie niektóre pozycje wymagaj± podania danych specyficznych dla ciebie: · numer portu (ja u¿ywam ttyS2) · szybko¶æ portu (ja u¿ywam 38400) · ³añcuch inicjacyjny modemu (ja mam WordBlazer) · numer telefonu do twojego dostawcy (mam nadziejê, ¿e twój jest inny) · twój identyfikator u dostawcy · twój prompt (aby potwierdziæ zalogowanie siê) · lokalizacja "slirp-a" (mój jest w $HOME/bin) 33..66.. TTeessttoowwaanniiee DDIIPP--aa.. Polecenie _d_i_p _-_v _s_l_i_r_p_._d_i_p spowoduje uruchomienie ddiipp--aa w trybie _v_e_r_b_o_s_e - czyli na ekranie bêd± pojawiaæ siê informacje co siê w danym momencie dzieje. Komunikaty pojawiaj±ce siê na ekranie mog± zasugerowaæ jakie¶ zmiany do skryptu slirp.dip. Je¶li wszystko posz³o dobrze, to powiniene¶ zobaczyæ taki komunikat na koñcu: CONNECTED local: 192.168.1.100 ---> remote: 10.0.2.2 (albo CONNECTED local: 127.0.0.1 ---> remote: 10.0.2.2) a ddiipp "zmienia" siê teraz w proces-demon, zwracaj±c ci dostêp do prompt-a. Przy okazji: teraz aby zakoñczyæ dzia³anie ddiipp--aa, wpisz po prostu _d_i_p _-_k a dzia³anie ddiipp--aa zostanie zakoñczone i po³±czenie modemowe zamkniête. 44.. NNoorrmmaallnnee ddzziiaa³³aanniiee.. · Uruchom swoje po³±czenie dip+slirp pisz±c _d_i_p _s_l_i_r_p_._d_i_p · Po udanym po³±czeniu siê i po komunikacie _C_O_N_N_E_C_T_E_D_._._. masz ju¿ dzia³aj±ce po³aczenie do Internet-u poprzez swojego dostawcê. Najpierw spróbuj siê po³±czyæ z serwerem dostawcy poprzez telnet: _t_e_l_n_e_t _1_0_._0_._2_._1 Dziêki konfiguracji z pliku .slirprc, po³±czenie to powinno wywo³aæ _t_c_s_h _-_l i powiniene¶ otrzymaæ login prompt. Pisz±c _p_s mo¿esz zobaczyæ co¶ takiego: 6019 s0 S 0:13 slirp 6075 sb IW 0:00 -/usr/bin/tcsh (tcsh) 16721 t6 R 0:00 ps · Mo¿esz zakoñczyæ to po³±czenie telnet-owe, albo z innego wirtualnego terminala czy okienka w X-ach spróbowaæ po³±czyæ siê przez ftp: _f_t_p _1_4_8_._8_1_._1_2_3_._1_0_0. Po udanym (?) po³±czeniu anonimowym, mo¿esz odkryæ, ¿e jeste¶... na ssuunnssiittee..iiccmm..eedduu..ppll - polskiej kopii archiwum Linux-a. Je¶li zaszed³e¶ ju¿ tak daleko, to mo¿esz zacz±æ podziwiaæ mo¿liwo¶ci po³±czenia dip+slirp: jeste¶ na SSIIEECCII. Roz³±cz siê z "sunsitem" tak szybko jak mo¿esz, powracaj±c do systemu "moj-host". Teraz pojawia siê pytanie: Czy mo¿emy po prostu napisaæ: _f_t_p _s_u_n_s_i_t_e_._i_c_m_._e_d_u_._p_l? Nie przed uaktywnieniem DNS-u (Domain Name Server). W tym momencie mo¿esz chcieæ siê roz³±czyæ. Wpisz w swoim lokalnym prompcie _d_i_p _-_k. 44..11.. DDooddaawwaanniiee DDNNSS--uu.. Najprzypuszczalniej twój dostawca Internet-u ma serwis DNS (w przeciwnym razie nie by³by¶ w stanie u¿ywaæ po³±czeñ Internet-owych w normalny sposób). Po³±cz siê raz jeszcze z serwerem dostawcy przy pomocy _d_i_p _s_l_i_r_p_._d_i_p i _t_e_l_n_e_t _1_0_._0_._2_._1. Zajrzyj do pliku /etc/resolv.conf. Powiniene¶ zobaczyæ tam kilka takich linijek: nameserver <adres-IP> gdzie <adres-IP> bêdzie mia³ konkretn± warto¶æ. Skopiuj przynajmniej jedn± z tych linijek do swojego pliku /etc/resol.conf. Teraz powróæ do swojego lokalnego komputera (bez zamykania po³±czenia) i sprawd¼ czy serwis DNS dzia³a. Wpisz: _d_n_s_q_u_e_r_y _s_u_n_s_i_t_e_._i_c_m_._e_d_u_._p_l. Je¶li na ekranie pojawi siê numer IP powy¿szego adresu, to oznacza, ¿e twój DNS dzia³a. Teraz mo¿esz u¿ywaæ takich narzêdzi jak llyynnxx, mmoossaaiicc czy nneettssccaappee bezpo¶rednio ze swojego Linux-a. 55.. KKoommeennttaarrzzee.. Ten uproszczony dokument zosta³ napisany raczej jako streszczenie podstawowej instalacji dip+slirp, ani¿eli podrêcznik. Zamys³em by³o pomóc potencjalnym u¿ytkownikom CSLIP-a przy starcie. Tekst ten jest wysy³any jako mini-HOWTO, dlatego, je¶li zobaczysz w nim jakie¶ oczywiste b³êdy, daj mi znaæ, proszê. Wszystkie wersjê s± dostêpne u mnie w katalogu na ftp: ftp.netcom.com <ftp://ftp.netcom.com:/pub/ze/zenon/linux/DipSlirpCSLIP/>. Chcê podziêkowaæ autorom narzêdzi ddiipp i sslliirrpp za cudowne programy. Jestem pod wra¿eniem i bardzo wdziêczny. Zenon Fortuna (zenon@netcom.com <mailto:zenon@netcom.com>) 55..11.. OOdd tt³³uummaacczzaa.. T³umaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny. Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne, sk³adniowe, techniczne to pisz do mnie: B.Maruszewski@jtz.org.pl Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem ftp.jtz.org.pl w katalogu /HOWTO/. Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej stronie WWW. <http://www.jtz.org.pl/bartek/tlumaczenie.html> S± tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej. Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz siê na ni± zapisaæ, to wy¶lij list o tre¶ci subscribe jtz Imiê Nazwisko na adres majordomo@ippt.gov.pl Zmiany w tym dokumencie wprowadzone przez t³umacza to: · zmiana NET-2-HOWTO na NET-3-HOWTO · zmiana poleceñ kompilacji j±dra z "make dep make zImage" na "make dep && make clean && make zImage" · info o polskim t³umaczeniu NET-3-HOWTO · zmiana wywo³añ ifconfig i route na /sbin/ifconfig i /sbin/route · zmiana adresu IP z sunsite.unc.edu na sunsite.icm.edu.pl (po co ³±czyæ siê z USA skoro mo¿na z Polsk±?)