|
Połączenie PPP przez minicom-a.
1. Wprowadzenie.
PPP stał się standardowym protokołem sieciowym jeśli chodzi
o połączenia z Internet-em realizowane poprzez telefon.
Odpowiedni demon "pppd" 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 "minicom-a".
Dokument ten jest krótszą wersją niemieckiego "Internetanbindung
mit PPP" www.uni-koeln.de.
(Może kiedyś to przetłumaczę - tłumacz).
1.1 Program emulujący
terminal - "minicom".
"minicom" jest bardzo wyrafinowanym 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 "pppd".
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
"mgetty".
1.2 Komentarze.
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.
1.3 Znane błędy.
W czasie pisania tego dokumentu, w programach "minicom"
i "runscript" oraz w podanej niżej metodzie były
błędy.
Wygląda 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.
2. Dzwonienie przy pomocy
minicom-a.
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.
2.1 Konfiguracja minicom-a.
Wykonaj "minicom -s" i wybierz z menu
"Serial port setup". Pierwszą pozycją powinno
być "Serial Device" - 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 <ENTER>, aby potwierdzić i <ESC>, aby wyjść
do pierwszego menu. Wybierz "Exit to minicom" i
wpisz "atdt99999". Twój modem od razu powinien zacząć
wybierać numer i powinieneś usłyszeć "kliknięcie"
kiedy modem się dodzwoni. Oczywiście "99999" to
nie jest prawidłowy numer telefonu.
2.2 Ręczne startowanie PPP.
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 "ppp")?
Są one wynikiem programu "ppp" (albo jakiegoś
odpowiednika) uruchomionego na drugim koñcu linii. Jeśli
tak, to możesz uruchomić u siebie demon "pppd"
i przeanalizować potem logi systemowe.
Aby uruchomić "pppd" w minicom-ie, możesz
zdefiniować nową metodę ładującą (zobacz samemu
jak to się robi) albo przedefiniować ustawienie "kermit
program" z menu konfiguracyjnego "Filename and
paths":
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ąć
<Alt-K>, aby uruchomić "pppd".
Reszta tego dokumentu zajmuje się automatyzacją
logowania i uruchamiania "pppd".
2.3 Analizowanie logów.
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 <mru 296>]
rcvd [LCP ConfRej id=0x1 <mru 296>]
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ę
("configuration rejected"). W tym przypadku po
prostu usunąłem opcję "mru" z pliku
"/etc/ppp/options".
2.4 Skonfiguruj numer
telefonu.
Jeśli powyższe się udało, to może chcesz
zapisać numer telefonu w książce telefonicznej "minicom-a".
Wciśnij <Alt-D>, aby wybrać menu dzwonienia i wybierz
"Edit":
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.
2.5 Skrypt logujący.
"minicom" uruchamia skrypt logujący, po tym jak
otrzyma łañcuch "CONNECT". A dokładniej,
"minicom" nie wykonuje tego skryptu samemu, tylko woła
do tego zadania narzędzie "runscript" jako
podproces.
Poniżej znajduje się przykład jakiego używam dla
swojego dostawcy.
# v1.0, 20.08.96 Winfried Trümper <winni@xpilot.org>
print ""
print "Automatic login via /etc/ppp/login.script"
## odkomentuj jeśli musisz wcisnąć <ENTER>, 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 "runscript" używana jest do uruchamiania
"pppd". 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ż "pppd"
pobiera dane z "stdin" i nie może zawiesić
modemu poleceniem "crtscts".
2.6 Zautomatyzowane
dzwonienie przy starcie.
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.
2.7 Przyszłe rozszerzenia.
Ponieważ "pppd" 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.
2.8 Od tłumacza.
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
|