Trochę na wstęp
Wielu użytkowników linuksa (zwłaszcza tych bardzo początkujących) ma problem z połączeniem się do internetu przez modem (oczywiście sprawa rozchodzi się o numer dostępowy telekomunikacji - 0202122). Zdaję sobie sprawę równocześnie jak dużo jest dostępnych dokumentów na ten temat. Kiedyś sam jednak szukałem rozwiązania tego problemu, jednak dostępnych publikacji nie było ówczas tak dużo jak jest teraz, a te które były nie zawsze działały tak jak trzeba. Jedne straszyły kompilacją jądra, a inne opierały się o konkretne dystrybucje, i jako takie u mnie nie działały. Poświęcając trochę czasu oraz impulsów (za każde nieudane połączenie), problem został rozwiązany.
Czego potrzebuję?
Właściwie wymagań dużych nie ma. Jedyne co jest wymagane to komputer z zainstalowanym linuksem, modem zewnętrzny oraz linia telefoniczna. Komputer preferowany to co najmniej 486DX (na 386SX też się powinniśmy połączyć - ale po co ?). Linux - jakaś nowsza dystrybucja RedHata, Slackware, Debiana czy też Mandrake'a (Nowsza to znaczy powstała nie więcej niż np. 2-3 lata temu( w starszych może wystąpić problematyczna zwykle dla początkujących kompilacja jądra). Modem musi być zewnętrzny (o wewnętrznych kiedyś indziej - chyba ,że ktoś sam potrafi go skonfigurować tak aby był widoczny jako modem dla linuksa).
Ustawienia systemowe
Najważniejsze jest posiadanie programów
pppd oraz
chat. Sprawdzamy po prostu czy w katalogu /usr/sbin (ewentualnie /usr/bin) istnieją takowe pozycje. Są one dostępne nawet w Debianie Potato instalowanym z dyskietek (bodajże 14-tu) tak, że nie powinno być problemu.
Drugą sprawą jest wyedytowanie pliku
/etc/resolv.conf. Oto co powinien on zawierać:
search .
nameserver 194.204.159.1
nameserver 194.204.152.34
Główne skrypty
Teraz musimy stworzyć dwa pliki w katalogu
/etc/ppp:
onppp oraz
chatscript
Zawartość pliku
/etc/ppp/chatscript:
ECHO ON
TIMEOUT 5
"" ATZ
OK ATDT0202122
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT WAITING
TIMEOUT 45
CONNECT ""
TIMEOUT 5
name: ppp
word: ppp
Zawartość pliku
/etc/ppp/onppp:
/usr/sbin/pppd connect
'/usr/sbin/chat -v -f /etc/ppp/chatscript'
-detach crtscts modem defaultroute
/dev/ttyS0 115200
Teraz wszystko razem
Ustawiamy teraz plik
/etc/ppp/onppp jako wykonywalny a robimy to poleceniem:
chmod +x /etc/ppp/onppp Następnie uruchamiamy go - wpisujemy mianowicie:
/etc/ppp/onppp
Modem powinien się połączyć i po chwili powinniśmy mieć dostęp do internetu. A jak to sprawdzić? - Bardzo prosto - wpisujemy
lynx www.linuxpub.w.p i jeśli ukaże się strona oznacza to że jest ok. Prościej jednak chyba będzie "pingnąć" jakiegoś serwera np. ping www.interia.pl - pojawiające się odpowiedzi typu: "reply from ..." będą świadczyły, że nasze połączenie jest już ok, a więc nie traćmy czasu tylko sobie "posurfujmy"!
A teraz kilka słów wyjaśnień
Na początku zmodyfikowaliśmy plik /etc/resolv.conf - służy on do konfiguracji tzw. serwerów dns. Oznacza to dla nas, że nie będziemy wpisywać
102.78.45.32/~strona/ tylko
www.strona.pl/~strona/ - na pewno łatwiej zapamiętać. Pierwsza linia oznacza, że najpierw będzie przeszukiwać naszego linuxa w poszukiwaniu adresu IP dla podanego "URL'a"(czyli www.strona.pl/~strona) a dwa następne wpisy to adresy dwóch serwerów DNS telekomunikacji.
Plik
/etc/ppp/onppp jest po prostu poleceniem wykonania pppd z długą listą parametrów - jeśli ktoś sobie życzy może wpisywać je za każdym razem.
A teraz co one po kolei oznaczają:
connect '/usr/sbin/chat -v -f /etc/ppp/chatscript': użyj programu wykonywalnego chat do skonfigurowania lini szeregowej, wykrecenia numeru oraz rozpoczęcia zdalnej sesji ppp (man pppd)
-detach:opcja ta daje nam możliwość tego, że po podłączeniu wyświetlane są komunikaty o szybkości połączenia adresy ip: nasz i naszej bramy, poza tym blokowana jest konsola przez co aby zakończyć naciskamy po prostu Control-C i wtedy widzimy czas połączenia i liczbe odebranych i wysłanych bajtów
crtscts: używaj sprzętowego sterowania przepływem
modem: używaj linii sterowania modemem
defaultroute: dodaj domyślną trasę do systemowych linii trasowania - oznacza to, że po uzyskaniu połączenia komputer zdalny, z którym się połączyliśmy będzie traktowany jako nasza domyślna brama do internetu
/dev/ttyS0: modem jest przyłączony do "coma1"
115200: szybkosc lini szeregowej - najczęściej ustawia się ten parametr na podwójną szybkość modemu
Plik
/etc/ppp/chatcript jest skryptem, z którego korzysta program chat -- opcja
-f oznacza korzystaj ze skryptu). Opcja
-v włącza logowanie wszystich tekstów uzyskanych od modemu - co umożliwia wykrywanie przyczyn błędów w połączeniach Skrypt ten jest zestawem gotowych "zapytań i odpowiedzi". Jeśli jedna z nich się nie będzie zgadzać to skrypt przerwie wykonywanie. A to co oznaczają poszczególne opcje:
ECHO ON :pokazywane na ekranie będą wszystkie komunikaty - widzimy co ewentualnie może pójść nie tak. Później możemy (jeśli nie będzie żadnych problemów) przestawić na ECHO OFF
TIMEOUT : po prostu czekaj do 5 sekund
"" ATZ : inicjalizacja modemu (standardowo modem po tym zapytaniu wysyła sygnał OK)
OK ATDT0202122 :jesli modem odpowie OK (co oznacza nie mniej nie więcej jestem gotów) wykręć numer 0202122 - nawiasem mówiąc jeśli wstawimy pomiędzy AT i DT jeszcze opcję
M0 to modem będzie bezgłośnie wybierał numer
ABORT "NO CARRIER" : zakończ jeśli nie ma odpowiedzi
ABORT BUSY : zakończ jeśli zajęte
ABORT "NO DIALTONE" : zakończ jeśli nie ma sygnału wybierania
ABORT WAITING : zakończ jeśli brak odpowiedzi w czasie określonym przez TIMEOUT
TIMEOUT 45 : czekaj do 45 sekund
CONNECT "" : czekaj na sygnał CONNECT
TIMEOUT 5 : czekaj do 5 sekund
name: ppp : oczekuj ciągu "name" ( username, Username itd.) i po tym wyślij ppp
word: ppp : oczekuj ciągu "word" ( password, Password itd.) i po tym wyślij ppp
Co poza tym Według naszych ustawień zawsze jeśli coś pójdzie nie tak możemy przejrzeć plik
/var/log/messages, w którym powinniśmy zapisane szczegóły naszej sesji ppp. Jeśli coś dalej będzie nie tak sprawdźmy czy pod tego coma jest podpięty modem ( opcja /dev/ttyS0 - com1 i /dev/ttyS1 - com2 ) itd. Autorowi ta konfiguracja "ruszyła" pod linuksami: RedHat(5.2, 6.0), Mandrake (7.0) Debianem (2.1, 2.2), Suse 6.0, Slackware 3.6.0 oraz non-stop działa pod Slackware 7.1 - teoretycznie problemu nie powinno być tym bardziej, że skrypty były testowane na "domyślnych" instalacjach. Zawsze możemy uznać też, że jest to kolejny nieidealny opis połączenia linuxa z magicznym numerem 0202122. Albo też możemy się niepoddać i po prostu wysłać e-maila do
Autora, który z chęcią pomoże, a i przy okazji będzie miał szansę udoskonalenia tego dokumentu. Zdaję sobie sprawę jednocześnie z błędów jakie mogły się tu pojawić - jeśli coś zauważyłeś mail-me oczywiście całość materiału jest potraktowna ogólnikowo - ale szczegóły można znaleźć w dokumentach howto (szczególnie ISP-howto, PPP-howto) oraz w manie systemowym. Stronę stworzono przy pomocy cudownego narzędzia jakim jest mcedit.
Autor:
Lucjan Modzel
Strona domowa
Kopiowanie i rozpowszechnianie bardzo wskazane (przy uwzględnieniu praw autorskich, człowieka itd. itp.)