slirp-0.95h.tar.gz, i skompiluj program slirp na
serwerze dostawcy (na komputerze, do którego będziesz
dzwonił). Plik docs/README.compiling zawarty w dystrybucji
SLiRP-a wyjaśnia wszystkie szczegóły dotyczące
kompilacji../bin/slirp czy ./slirp (w twoim katalogu
domowym)..slirprc
#### .slirprc file ####
add ptyexec /usr/bin/tcsh -l:10.0.2.1:23
compress
baudrate 38400
#### end
Polecenie compress zapewnia nas, że zostanie użyty protokół
CSLIP. Polecenie add ptyexec zostało użyte zamiast polecenia
shell (listę poleceń znajdziesz w pliku docs/CONFIG),
ponieważ lepiej jest użyć tcsh -l (w pliku .login), a
polecenie shell nie przyjmuje opcji (tak sądzę). Powinieneś
użyć dokładnej ścieżki do tcsh na serwerze dostawcy (albo użyj
jakiejś innej powłoki (shell-a) jeśli wolisz).
Polecenie baudrate powinno zostać użyte z wartością
odpowiednią dla twojego połączenia modemowego.
Zaloguj się na swoje konto u dostawcy i napisz bin/slirp (albo ./slirp, 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 slirp-a wpisz powoli (z ponad sekundowymi przerwami) pięć zer.
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 make config 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: make dep && make clean && make
zImage. 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
RFC1597.
Dla systemów tylko z urządzeniem loopback 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), ale możesz spróbować zrobić coś takiego:
/etc/HOSTNAME./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./etc/networks linię:
moja-siec 192.168.1.0
(albo loopback 127.0.0.1)
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 loopback, to upewnij się, że są tam:
/sbin/ifconfig lo localhost /sbin/route add -net loopback
/etc/resolv.conf w taki sposób:
domain linux.org
Teraz zrestartuj system.
Przede wszystkim obserwuj komunikaty pojawiające się podczas
startu, albo zajrzyj do pliku /usr/adm/messages jeśli
działa u ciebie proces syslogd(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:
Dobra, twój Linux jest gotowy do współpracy z CSLIP-em.
dip337n-uri.tar.gz i skompiluj program dip na swoim
lokalnym komputerze. Robi się to poprzez wydanie polecenia
make w katalogu dip-3.3.7n./usr/local/bin/ albo $HOME/bin/dip.slirp.dipSkrypt dip-a 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:
Polecenie dip -v slirp.dip spowoduje uruchomienie dip-a w trybie verbose - 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 dip "zmienia" się teraz w proces-demon, zwracając ci dostęp do prompt-a.
Przy okazji: teraz aby zakończyć działanie dip-a, wpisz po prostu dip -k a działanie dip-a zostanie zakończone i połączenie modemowe zamknięte.