Połączenie PPP przez minicom-a.
Autor: Winfried Trümper, winni@xpilot.org
v0.0, 9 Grudnia 1996
WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll
v1.01, 26 Lipca 1997
Chcesz mieć ładne narzędzie z menu do obsługi PPP? Łatwą w obsłudze i
zarazem bardzo zaawansowaną książkę telefoniczną z numerami telefonów
twoich dostawców Internet-u? Chcesz widzieć co się dzieje jak się
logujesz? Jeśli tak, to ten dokument jest dla ciebie! Dokument ten
został napisany w standarcie ISO-8859-2. Oryginał znajduje się pod
adresem ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO/mini.
______________________________________________________________________
Spis treści
1. Wprowadzenie.
1.1 Program emulujący terminal - "minicom".
1.2 Komentarze.
1.3 Znane błędy.
2. Dzwonienie przy pomocy minicom-a.
2.1 Konfiguracja minicom-a.
2.2 Ręczne startowanie PPP.
2.3 Analizowanie logów.
2.4 Skonfiguruj numer telefonu.
2.5 Skrypt logujący.
2.6 Zautomatyzowane dzwonienie przy starcie.
2.7 Przyszłe rozszerzenia.
2.8 Od tłumacza.
______________________________________________________________________
11.. WWpprroowwaaddzzeenniiee..
PPP stał się standardowym protokołem sieciowym jeśli chodzi o
połączenia z Internet-em realizowane poprzez telefon. Odpowiedni demon
"_p_p_p_d" dostarczany jest razem z bardzo prymitywnym narzędziem do
dzwonienia, które obsługuje dobrze tylko bardzo proste ustawienia.
Opiszę tutaj alternatywne rozwiązanie na podstawie "_m_i_n_i_c_o_m_-_a".
Dokument ten jest krótszą wersją niemieckiego "_I_n_t_e_r_n_e_t_a_n_b_i_n_d_u_n_g _m_i_t
_P_P_P" www.uni-koeln.de .
(Może kiedyś to przetłumaczę - tłumacz).
11..11.. PPrrooggrraamm eemmuulluujjąąccyy tteerrmmiinnaall -- ""mmiinniiccoomm""..
"_m_i_n_i_c_o_m" jest bardzo wyrafinownym narzędziem służącym do dzwonienia
do innych komputerów (dostawców internet-u lub BBS-ów). Ma fajne
kolorowe menu, książkę telefoniczną i bardzo rozwinięty język
skryptowy. Dlatego też idealnie nadaje się do użycia w połączeniu z
"_p_p_p_d".
Tak przy okazji: Jeśli użyjesz polecenia
/sbin/mgetty /dev/modem
to każdy, kto posiada konto na twoim komputerze może zadzwonić do
ciebie (np. używając "minicom-a"). Ale to już inna historia.
Przeczytaj dokumentację na temat "_m_g_e_t_t_y".
11..22.. KKoommeennttaarrzzee..
Jestem zainteresowany tylko tymi komentarzami, które wnoszą coś nowego
do tego dokumentu. Nie będę odpowiadał na pytania ogólne dotyczące
Linux-a, PPP, SLIP-a czy sieci.
11..33.. ZZnnaannee bbłłęęddyy..
W czasie pisania tego dokumentu, w programach "_m_i_n_i_c_o_m" i "_r_u_n_s_c_r_i_p_t"
oraz w podanej niżej metodzie były błędy.
ˇ "runscript" nie czeka na zakończenie programów zewnętrznych.
print "blah"
! sleep 10
print "blup"
Ten skrypt kończy się natychmiast (ale nie jeśli jest śledzony polece
niem "strace").
ˇ "pppd" odbiera urządzenie szeregowe "minicom-owi" (jeśli dane nie
są przekazywane przez stdin).
Wyglada na to, że Miquel van Smoorenburg (autor "minicom-a") jest zbyt
zajęty, żeby naprawić te błędy. Tak więc ochotnicy są mile widziani.
22.. DDzzwwoonniieenniiee pprrzzyy ppoommooccyy mmiinniiccoomm--aa..
Wiele podręczników dotyczących PPP zaleca wyjść z minicom-a po
dodzwonieniu się. Ale naprawdę nie ma potrzeby wychodzenia z tego
wygodnego programu.
22..11.. KKoonnffiigguurraaccjjaa mmiinniiccoomm--aa..
Wykonaj "minicom -s" i wybierz z menu "_S_e_r_i_a_l _p_o_r_t _s_e_t_u_p". Pierwszą
pozycją powinno być "_S_e_r_i_a_l _D_e_v_i_c_e" - jest to najważniejsze z
ustawień: urządzenie szeregowe, do którego podłączony jest twój modem.
(Czy są jacyś ochotnicy, do przeróbki minicom-a tak, żeby obsługiwał
kilka urządzeń szeregowych na raz?) Wciśnij , aby potwierdzić
i , aby wyjść do pierwszego menu. Wybierz "_E_x_i_t _t_o _m_i_n_i_c_o_m" i
wpisz "_a_t_d_t_9_9_9_9_9". Twój modem od razu powinien zacząć wybierać numer i
powinieneś usłyszeć "kliknięcie" kiedy modem się dodzwoni. Oczywiście
"_9_9_9_9_9" to nie jest prawidłowy numer telefonu.
22..22.. RRęęcczznnee ssttaarrttoowwaanniiee PPPPPP..
Może już próbowałeś zadzwonić do swojego dostawcy Internet-u.
Widziałeś takie dziwne znaczki na ekranie po zalogowaniu się (jeśli
nie, to wpisz "_p_p_p")? Są one wynikiem programu "_p_p_p" (albo jakiegoś
odpowiednika) uruchomionego na drugim końcu linii. Jeśli tak, to
możesz uruchomić u siebie demon "_p_p_p_d" i przeanalizować potem logi
systemowe.
Aby uruchomić "_p_p_p_d" w minicom-ie, możesz zdefiniować nową metodę
ładującą (zobacz samemu jak to się robi) albo przedefiniować
ustawienie "_k_e_r_m_i_t _p_r_o_g_r_a_m" z menu konfiguracyjnego "_F_i_l_e_n_a_m_e _a_n_d
_p_a_t_h_s":
A - Download directory :
B - Upload directory :
C - Script directory :
D - Script program : /usr/bin/runscript
E - Kermit program : /usr/sbin/pppd file /etc/ppp/mini_options
Teraz jak zobaczysz te dziwne znaczki możesz wcisnąć , aby
uruchomić "_p_p_p_d".
Reszta tego dokumentu zajmuje się automatyzacją logowania i
uruchamiania "_p_p_p_d".
22..33.. AAnnaalliizzoowwaanniiee llooggóóww..
Chociaż nie chcę wyjasniać jak ma być konfigurowane PPP, to pokażę
małą sztuczkę jak czytać logi. Aby wyciągnąć ważne dla nas informacje
z pliku "/var/log/debug" (albo alternatywnego "/var/log/daemon.log")
wykonaj polecenie:
tail -n 40 /var/log/debug |\
grep -E " pppd\[[0-9]*\]:" |\
sed -e "s/^.*pppd\[/[/"
Powinieneś zobaczyć coś takiego:
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfRej id=0x1 ]
co pokazuje, że wysłaliśmy prośbę o konfigurację, aby ustawić
maksymalną jednostę do otrzymania (mru) na 296. Druga strona odrzuciła
naszą prośbę ("_c_o_n_f_i_g_u_r_a_t_i_o_n _r_e_j_e_c_t_e_d"). W tym przypadku po prostu
usunąłem opcję "_m_r_u" z pliku "/etc/ppp/options".
22..44.. SSkkoonnffiigguurruujj nnuummeerr tteelleeffoonnuu..
Jeśli powyższe się udało, to może chcesz zapisać numer telefonu w
książce telefonicznej "minicom-a". Wciśnij , aby wybrać menu
dzwonienia i wybierz "_E_d_i_t":
A - Name : Xeno
B - Number : 022039697303
C - Dial string # : 1
D - Local echo : No
E - Script : /etc/ppp/login.script
F - Username : ppp-382
G - Password : top-secret
H - Terminal Emulation : VT102
I - Backspace key sends : Delete
J - Linewrap : Off
K - Line Settings : Curr 8N1
To jest przykładowa pozycja, której używam do dzwonienia do swojego
dostawcy Internet-u. Skrypt /etc/ppp/login.script jest pokazany niżej.
Dwie specjalne zmienne są przekazywane do tego skryptu: $(LOGIN) i
$(PASS), które są ustawione na identyfikator użytkownika (F) i hasło
(G). Ta cecha czyni minicom-a trochę bardziej elastycznym, ponieważ
potrzebujesz tylko jednego skryptu, żeby zautomatyzować logowanie się
do kilku dostawców.
22..55.. SSkkrryypptt lloogguujjąąccyy..
"minicom" uruchamia skrypt logujący, po tym jak otrzyma łańcuch
"_C_O_N_N_E_C_T". A dokładniej, "minicom" nie wykonuje tego skryptu samemu,
tylko woła do tego zadania narzędzie "_r_u_n_s_c_r_i_p_t" jako podproces.
Poniżej znajduje się przykład jakiego używam dla swojego dostawcy.
# v1.0, 20.08.96 Winfried Trümper
print ""
print "Automatic login via /etc/ppp/login.script"
## odkomentuj jeśli musisz wcisnąć , aby otrzymać prompt
#send ""
expect {
"ogin:"
"ogin>"
"sername:"
"sername>"
"NO CARRIER" exit 1
}
send "$(LOGIN)"
expect {
"assword:"
"assword>"
timeout 20
}
send "$(PASS)"
expect {
"port" send "ppp"
"Start your PPP now"
"}!}!}"
timeout 10
}
print ""
print "Now switching into ppp-mode ..."
print ""
! /usr/sbin/pppd file /etc/ppp/mini_options
print ""
print "the command killall -TERM pppd terminates pppd"
Możliwość wykonywania programów zewnętrznych przez "_r_u_n_s_c_r_i_p_t" używana
jest do uruchamiania "_p_p_p_d". Skopiuj swój oryginalny plik z opcjami
dla ppp do "/etc/ppp/options.ttyS1" (gdzie "ttyS1" musisz zamienić na
urządzenie, do którego dołączony jest twój modem) i skasuj wszystkie
linie, które są specyficzne dla twojego modemu (takie jak: "connect",
"crtscts" albo "modem") z /etc/ppp/options.
Umieść opcje, które powinny być specyficzne dla połączenia ppp przez
minicom-a w pliku "/etc/ppp/mini_options". Jedną z tych opcji powinno
być
disconnect "chat '' '\d\d+++\d\dATH\r\c'"
Ta opcja MUSI być ponieważ "_p_p_p_d" pobiera dane z "_s_t_d_i_n" i nie może
zawiesić modemu poleceniem "crtscts".
22..66.. ZZaauuttoommaattyyzzoowwaannee ddzzwwoonniieenniiee pprrzzyy ssttaarrcciiee..
Użyj opcji "_-_d", aby dzwownić pod wskazany numer od razu po
uruchomieniu minicom-a.
Możesz też spróbować
open -sl -- minicom -d 1
Aby wrzucić minicom-a na inną konsolę - zobacz mini-HOWTO Consoles-
Many.
22..77.. PPrrzzyysszzłłee rroozzsszzeerrzzeenniiaa..
Ponieważ "_p_p_p_d" jest demonem, więc nie jest on przeznaczony do
działania w interakcji czy obserwacji. I to jest w porządku. Przecież
używamy systemy "unixowego", nie ?
Standardowym rozwiązaniem jest jakiś "front-end". Są jacyś chętni, do
grzebania się z minicom-em?
Fajnymi rozszerzeniami byłyby:
ˇ automatyczne generowanie skryptu logującego przez obserwację
ręcznego podłączania się.
ˇ automatyczna analiza log-ów z korektą opcji.
ˇ wyciąganie wiadomości jak to pokazano w punkcie ``2.3''.
Koniec.
22..88.. 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. 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 sie na nią zapisać, to wyślij
list o treści subscribe jtz Imię Nazwisko na adres
listproc@ippt.gov.pl