hartr@hedland.edu.au
Prawa autorskie
Prawa autorskie nale┐▒ do autora dokumentu. Udziela siΩ pozwolenia na dystrybycjΩ tego dokumnetu w formie elektronicznej, na p│ytkach CD, pod warunkiem, ┐e zostanie zachowana oryginalna forma dokumentu. Udziela siΩ r≤wnie┐ pozwolenia na na wydrukowanie niniejszego dokumentu do u┐ytku prywatnego.
Prawa autorskie do t│umaczenia (c)1997 pioptr.pogorzelski@ippt.gov.pl.
Zabrania siΩ publikowania fragment≤w lub ca│o╢ci tego dokumnetu bez zgody autora, za wyj▒tkiem przypadk≤w opisanych powy┐ej.
Dystrybucja
W miarΩ powstawania nowych wersji niniejszy dokument bΩdzie wysy│any do pl.comp.os.linux.odpowiedzi. W postaci HTML mo┐na go zawsze zobaczyµ pod adresem http://www.ippt.gov.pl/~ppogorze/Linux/JTZ/html/PPP-HOWTO.pl.html
W formie bardziej nadaj▒cej siΩ do druku, mo┐na go znale╝µ tutaj: ftp://www.ippt.gov.pl/pub/Linux/JTZ/.
Najnowsza wersja tego dokumentu w wersji angielskiej dostΩpna jest pod adresem http://sunsite.unc.edu/pub/Linux/docs/HOWTO/PPP-HOWTO. Lub w r≤znych innych formatach (SGML, ASCII, postscript, DVI) ftp://sunsite.icm.edu.pl/pub/Linux/sunsite/docs/HOWTO/other-formats.
PodziΩkowania
W przygotowaniu tego dokumentu pomaga│o mi wiele os≤b. Specjalne podziΩkowania dla Ala Longyeara, za pomoc w zrozumieniu samego PPP (je╢li znajdziecie jakie╢ b│Ωdy, to s▒ to moje b│Ωdy, nie jego), Gregowi Hankinsowi (opiekunowi Linux Howto) i Danielowi Berinsonowi za pomoc przy linuxdoc-sgml kiedy mialem z nim k│opoty(3dbu przed terminem publikacji), oraz Debi Trackett (MaximumAccess.com) za wiele pomocnych sugestii na temat stylu, zawarto╢ci, porz▒dku i prostoty i jasno╢ci obja╢nie±.
I na koniec dziΩkujΩ wielu ludziom, kt≤rzy kontaktuj▒c siΩ ze mn▒ poczt▒ elektroniczn▒ przesy│ali swoje uwagi. Jak w przypadku wszystkich autor≤w, nasz▒ jedyn▒ wystarczaj▒c▒ zap│at▒ jest satysfakcja, ┐e uda│o siΩ nam pom≤c wielu ludziom. Pisz▒c ten dokument sp│acam czΩ╢µ d│ugu, jaki ja - iwszyscy u┐ytkownicy Linuxa- zaci▒gn▒│em wobec ludzi, kt≤rzy napisali i opiekuj▒ siΩ systemem, kt≤ry wybra│em.
PPP (Point to Point Protocol) jest mechanizmem umo┐liwij▒cym tworzenie i utrzymowanie po│▒cze± w standardzie IP (Internet Protocol) i innych przez linie szeregowe - bezpo╢rednio miΩdzy komputerami za pomoc▒ kabla bezmodemowego, zestawione pol▒zcenie sesji telnet, po│▒czenie miΩdzy dwoma komputerami zestawione za pomoc▒ modem≤w i linii telefonicznych. Za pomoca PPP mo┐esz po│▒czyµ Linuxa z serwerem PPP i mieµ dostΩp d ozasob≤w sieci, do kt≤rych ma dostΩp sam serwer (no prawie wszystkich), tak jakby tw≤j komputer by│ bezpo╢rednio przy│▒czony do sieci.
Mo┐esz r≤wnie┐ ze swojego Linuxa zrobiµ serwer WWW, tak aby inni u┐ytkownicy mogli dzwoniµ do twojego komputera i korzystaµ z zasob≤w twojego komputera i sieci do kt≤rej jest przy│▒czony.
Poniewa┐ PPP jest protoko│em typu ka┐dy-z-ka┐dym, dlatego mo┐esz wykorzystaµ dwa komputery PC z Linuxem do po│▒czenia ze sob▒ dw≤ch sieci (lun np. sieci lokalnej do internetu).
Jedn┐ z zasadniczych r≤┐nic pomiΩdzy PPP i sieci▒ Ethernet jest przepustowo╢µ. Standardowa sieµ Ethernet pracuje z maksymaln▒ teoretyczn▒ przepustowo╢ci▒ 10 Mbs (milion≤w bit≤w na sekunde), podczas gdy modemy pracuj▒ z prΩdko╢ciami do 33.6 kbps (tsiecy bit≤w na sekunde). R≤wnie┐ w zale┐no╢ci od rodzaju po│▒czenia PPP mog▒ zaistnieµ ograniczenia w wykorzystaniu pewnych us│uch lub program≤w u┐ytkowych.
PPP jest protoko│em typu ka┐dy-z-ka┐dym; nie ma (technicznej) r≤┐nicy miΩdzy komputerme kt≤ry nawi▒zuje po│▒czenie i komputerem kt≤re na nie odpowiada. Jednak wygodnie jest my╢leµ o tym jako o systemie klient i serwer.
Kiedy dzwonisz aby bawiazµ po│▒czenie jeste╢ klientem. Komputer z kt≤rym chcesz siΩ po│▒czyµ jest serwerem.
Kiesdy konfigurujesz Linuxa, aby mog│ odpowiadaµ na przychodzace po│▒zcenia, wtedy konfigurujesz serwer.
Ka┐dy kompuer PC z Linuxem, mo┐e byµ zar≤wno klientem i serwerem - nawet r≤wnocze╢nie, je╢li masz tylko wiΩcej ni┐ jeden port szeregowy (i modem, jesli to jest konieczne). Tak jak stwierdzili╢my wcze╢niej, tak naprawdΩ nie ma r≤┐nicy pomiΩdzy klientem i serwerem, przynajmniej tak d│ugo, jak dotyczy to samego PPP od momentu zestawienia po│▒czenia.
W tym dokumencie komputery kt≤re inicjuj▒ po│▒czenie ("dzwoni▒ do") nazwyamy KLIENTAMI. Komputery, ktr≤re odbieraj▒ po│▒czenie, sprawdzaj▒ to┐szamo╢µ dzwoni▒cego (za pomoca hase│ lub innych mechanizm≤w) nazwyamy SERWERAMI.
Ludzi najbardziej interesuje korzystanie z PPP jako klient w celu nawiazaniu po│▒czenia z serwerem i po│▒czeniu ich komputera lub ca│ej sieci lokalnej z Internetem.
Procedura opisana w tym dokumencie pozwoli ci na zestawienie po│▒zcenia z Inernetem a nawet zautomatyzowanie ca│ej tej procedyry.
Pdamy r≤wnie┐ kilka wskaz≤wek w jaki spos≤b skonfigurowaµ Linuxa jako serwer PPP i jak po│▒czyµ ze sob▒ dwie sieci (z pe│nym routingiem) , co jest czΩsto nazywane zestawianiem po│▒czenia sieci WAN - Wide Area Network.
Istnieje wiele r≤┐nych dystrybucji Linuxa, i ka┐da posiada w│asne sposoby na wykonywanie pewnych standardowych zada±.
W szczeg≤lno╢ci istniej▒ dwa r≤┐ne sposoby jakich u┐ywa Linux (i Unix) do uruchomienia systemu, sonfigurowania interfejs≤w itp.
M≤wimy o stylu stylu BSD inicjowania systemu i stylu systemu V. Mo┐esz czΩsto spotkaµ za┐arte dyskusja nad wy┐szosci▒ jednego systemu nad drugim. Je╢li ciΩ to bawi mo┐esz siΩ przy│▒czyµ.
Prawdopodobnie najbardziej rozpowszechnionymi dystrybucjami s▒:
Styl BSD polega na przetrzymywaniu plik≤w inicjalizuj▒cych system w
katlogu /etc/...
, a mianowicie:
/etc/rc /etc/rc.local /etc/rc.serial
Pliki inicjalizacjne w wersji Systemu V s▒ przecowywane w licznych
podkatalogach katalogu /etc/rc.d/...
:
drwxr-xr-x 2 root root 1024 Jul 6 15:12 init.d -rwxr-xr-x 1 root root 1776 Feb 9 05:01 rc -rwxr-xr-x 1 root root 820 Jan 2 1996 rc.local -rwxr-xr-x 1 root root 2567 Jul 5 20:30 rc.sysinit drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc0.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc1.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc2.d drwxr-xr-x 2 root root 1024 Jul 18 18:07 rc3.d drwxr-xr-x 2 root root 1024 May 27 1995 rc4.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc5.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc6.d
Je╢li chcesz wiedzieµ, w kt≤rym z tych plik≤w jest inicjowana twoja karta sieciowa i tablice routingu, musisz poszukaµ w tych plikach odpowiednichj polece±, kt≤re to wykonuj▒.
Niekt≤re dystrybucje (RedHat i Caldera) posiadaj▒ progeam pod X s│u┐▒cy do konfiguracji systemu PPP. W tym dokumencie nie opisujemy tych specyficznych narzΩdzi. Je╢li masz z nimi k│opot skontaktuja siΩ bezpo╢rednio z dystrybutorami.
Ka┐de urz▒dzenie przy│▒czaj▒ce komputer do Internetu musi posiadaµ w│asny, niepowtarzalny numer IP. Jest on przydzielany w ka┐dym kraju centralnie przez odpowiednie instytucje.
Je╢li przy│▒czasz do Internetu sieµ lokaln▒ (LAN) musisz korzystaµ z numer≤w IP z w│asnej puli adres≤w IP (dla ka┐dego komputera, urz▒dzenia w sieci lokalnej). Nie mo┐esz braµ adres≤w z powietrza i korzystaµ z nich d o│▒czeia siΩ z inn▒ siecia, gdy┐ w najlepszym wypadku to nie bedzie dzia│aµ, a w najgorszym moze zk│≤ciµ pracΩ innych system≤w, kt≤rych numery pokrywaj▒ siΩ z wybranymi przez ciebie.
PamiΩtajm ┐e numery IP podawane w tym dokumencie (poza kilkoma wyj▒tkami) nale┐▒ do puli numer≤w dla sieni nie przy│▒czonych do internetu, zarezerwowane dla sieci, kt≤re nigdy nie bed▒ do niego przy│▒czone.
Klasy numr≤w IP, zarezerwowwane dla sieci, kt≤re nigdy nie bΩd▒ przy│aczone fo Interntu wygl▒daj▒ nastΩpuj▒co:
Je╢li posiadasz siec, krora nie otrzyma│a adres≤w od instytucji do tego celu przeznaczonej, powiniene╢ u┐ywac numer≤w z jendej z przedstawionej pozy┐ej grup.
Te numery nigdy nie powinny byµ u┐ywane w internecie. Mog▒ byµ z powodzeniem u┐ywane w lokalnych sieciach Ethernet na komputerach, kt≤re s▒ przy│aczone do internetu. JEst to mo┐liwe poniewa┐ numery IP s▒ przydzielane urz▒dzeniom a nie komputerom. Tak wiΩc podczas gdy karta sieciowa twojego komputera moze byµ skonfigurawana do uzywania numeru 10.0.0.1, mo┐esz byµ jednocze╢nie przy│▒czony do internetu za pomoc▒ protoko│u PPP i interfejs PPP na twoim komputerze otrzyma zupelnie inny (zarejestrowany do u┐ycia w Internecie) numer IP. Twoj serwer bΩdzie posiada│ po│▒czenie z internetem, lecz inne twoje komputery w sieci lokalnej nie bΩd▒.
Jednak wykorzaystuj▒c mo┐liwo╢ci linuxa o nazwie masqueradeing i narzΩdzie ipfwadm, mo┐esz dostΩpniµ pozosta│ym komputerom dostΩp do internetu (z pewnymi ograniczeniami).
Wiecej inforamcji na ten temat mo┐na znale╝µ w dokumencie IP Masquerade mini HOWTO pod adresem Linux IP Masquerade mini HOWTO
Wiekszo╢c u┐ytkwonik≤w, kt≤ra jest zinteresowana pod│▒czeniem przez PPP swojego komputera do internetu przy wykorzystaniu w tym celu serwera dostarczanego przez swojego dostawcΩ Internetu nie musi staraµ sieo przydzia│ w│asnego numeru IP.
Je╢li pragniesz przy│▒czyµ do internetu ma│▒ podsieµ, dostawcy Internetu (ISP) mog▒ zapewniµ dedykowan▒ podsieµ kilku numer≤w z puli w│asnych numer≤w IP.
W przypadku wiΩkszo╢ci u┐ytkownik≤w przy│▒czaj▒cych za pomoc▒ PPP w│asny komputer do Internetu, wiΩkszo╢µ dostawc≤w stosuje dynamicznie przydzielany numer IP. To znaczy, zΩ w fazie po│▒czenia, serwer PPP przeka┐e twojemu komputerowi, kt≤ry numer IP masz przydzielony na czas zestawionego po│▒czenia.
W przypadku dynamicznego rpzydzielania adres≤w IP, za ka┐dym razem kiedy siΩ │▒czysz mo┐em otrzymaµ inny numer IP. MA t oznaczenie dla program≤w pracuj▒cych na twoim komputerze w trybie serwera, np. sendmail , ftpd, httpd i inne. Ogranizcenia wynik│e z dysnamicznego przydzia│u adres≤w (i spsoby ich obej╢ciatam gdzie jest to mo┐liwe) s▒ om≤wione dalej.
Krok po kroku opisujemy w jaki spos≤b nawi▒zaµ po│▒czenie miΩdzy modemami i zestawiµ po│▒czenie IP za pomocaprotoko│u PPP. Zak│adamy, ┐e j▒dro ma wkompilowan▒ obs│ugΩ PPP (lub jest skompilowany odpowiedni modu│) oraz zosta│ zainstalwoane niezbΩdne oprogramowanie. (Nie podajemy w jaki spos≤b skonfigurowaµ/skompilowaµ j▒dro, dowiesz siΩ na ten temat z innych dokument≤w).
Choµ DIP (standardowe narzΩdzei do zestawiania po│▒czenia w trybie SLIP) mo┐e byµ r≤wnie┐ wykorzystane do zestawienia po│▒czenia PPP, jednak skrypty dio tego wymagane s▒ znacznie bardziej skomplikowane. Dlatego nie opisujemy jak korzystaµ z DIPa do tworzenia po│aczenia PPP.
Zamiast tego opisujemy standardowe oprogramowanie wykorzystywane w tym celu, praΩ program≤w chat/pppd.
Pdajemy wskaz≤wki w jaki spos≤b skonfigurowaµ serwer PPP (pozwalaj▒cy innym na nawi▒zywanie po│acze± modemowych i zestawianie po│▒cze± PPP).
PamiΩtaj, ┐e zrobiµ z Linuxa serwer PPP mo┐na na mn≤stwo sposob≤w. W tym dokumenci autor przedstawia w jaki spos≤b autor skonfigurowa│ kilkana╢cie takich serwer≤w, ka┐dy po 16 modem≤w.
Ta metoda zosta│a sprawdzona w dzia│aniu. Jednak nie musi byµ najlepsz▒. Je╢li kt≤s ma sprytniejsz▒,lepsza konfiguracjΩ swerwera PPP, nie wahajcie siΩ napisaµ na ten temat do autora niniejszego dokumentu.
Przedstawiamy podstawowe informacje na temat │▒czenia dw≤ch sieci LAN, lub sieci LAN z Internetem przy wykorzystaniu oritiko│u PPP.
Ten dokument zak│ada, zΩ korzystasz zjadra Linuxa w wersji 1.2.x i PPP w wersji 2.1.2 lub j▒dra w wersji 1.3.x/2.0.x u PPP 2.2
Mo┐liwe jest korzystanie PPP w wersji 2.2.0 z j▒drem 1.2.13 lecz wymagane s▒ odpwiednie │aty. Ten dokument NIE omawia tego przypadku.
Powiniene╢ r≤wnie┐ wiedizeµ, ┐e nie mo┐na u┐ywaµ PPP 2.1.2 z j▒drem 2.0.X.
PamiΩtajm ze ten dokument nie porusza problem≤w zwi▒zanych z
wykorzysatniem │adowalnych modu│≤w j▒dra w wersji 2.0.x. Przeczytaj
kerleld mini-HOWTO i dokumetacje kernel/module w dystrybucji j▒der
2.0.x ( w katalogu /usr/src/linux/Documentation
.
Poniewa┐ ten dokument jest rpzeznaczony dla pocz▒tkuj▒cych u┐ytkownik≤w, mocno zalecamy korzystanie z wersji linuxa i towarzysz▒cego oprogramowania, kt≤rych wspo│raca jest uwa┐ana za stabiln▒.
Radzimy zapoznaµ siΩ z :-
/usr/doc...
)man chat
i man pppd
)
Najlepszym punktem pocz▒tkowym dokumentacji Linuxa po polsku jest Strona macierzysta polskich t│umacze± dokumentacji Linuxa
Choµ do zestawienia po│▒czenia PPP wystarcz▒ informacje zawarte w tym dokumencie bez konieczno╢ci czytania innych, lecz radzimy to zrobiµ , przez co uzyskasz lepsze zrozumienie ca│ego zagadnienia. Bedziesz w stanie samemu wykrywaµ problemy (lub choµby zadawaµ m▒drzejsze pytania na pl.comp.os.linux).
Wspomniane dokumenty (jak zreszt▒ ca│a masa innych, w│▒czaj▒c odpowiednie RFC) dostarczaj▒ dodatkowej, szczeg≤│owej informacji od tej jak▒ mo┐na by│o przedstawiµ w niniejszym dokumencie.
Je╢li masz zamiar pod│▒czyµ do Internetu sieµ lokaln▒ LAN, powiniene╢
posiadaµ podstawowe informacje na temat sieci TCP/IP. Pr≤cz
wspomnianych wcze╢niej dokuent≤w na pewno bardzo warto╢ciowymi bΩd▒
dla ciebie pozycje wydawnictwa O'Reilly: "
TCP/IP
Network Administration"
i "
Building
Internet Firewalls"
.
Istnieje wiele list dyskusjnych na temat Linuxa, jako forum wymiany informacji miΩdzy u┐ytkownikami o r≤┐nym poziomie znajomo╢ci tematu. ZachΩcamy do korzystania z tych, kt≤re ciΩ interesuj▒ i w miarΩ mo┐liwo╢ci dostarczania tam w│asnego wk│adu.
CzΩ╢µ z list jest przeznaczowna dla bardzo zaawansowanych u┐ytkownik≤w lub specjalist≤w w danym temacie. Choµ nikt nie bΩdzie narzeka│ je╢li siΩ na tak▒ listΩ zapiszesz, lecz nie bΩdziesz wysy│a│ ┐adnych pyta±, lecz je╢li zadasz pocz▒tkuj▒ce pytania na takich listach, mo┐esz spodzieaµ siΩ goro▒cych odpowiedzi. Nie jest tak dlatego, ze guru nienawidz▒ pocz▒tkuj▒cych, lecz dlatego, ┐e przeznaczeniem tych list jest obs│uga konkretnych problem≤w ma odpowiednio wysokim poziomie trudno╢ci.
ZachΩcamy do do│▒czenia siΩ do list, kt≤re nie maj▒ szceg≤lnyc hwywmaga± c odo uczestnik≤w, lecz pamiΩtaj aby twoje wiadomo╢ci by│y ╢ci╢le zwi▒zane z tematem listy.
Dobrym punktem startowym na temat list i grup dyskusyjnych o Linuxe jest strona Linux Mailing List Directory
Aby╢ mog│ korzystaµ z PPP j▒dro Linuxa musi byµ skompilowane w taki
spos≤b aby wspomagaµ jego obs│ugΩ. Je╢li jeszcze nie posiadasz,
zaopatrz siΩ w kod ╝r≤d│owy j▒dra - je╢li jest zainstalowany
znajdziesz go w katalogu /usr/src/linux
.
Sprawd╝ zawarto╢µ tego katalogu, wiele dystrybucji podczas instalacji wgrywaj▒ r≤wnie┐ pliki ╝r≤d│owe j▒dra.
¼r≤d│a j▒dra mo┐ne r≤wnie┐ zfobyµ przez Internet z
sunsite.unc.edu
lub jego licznych kopii.
Kr≤tka instrukcja jak zdobyµ i zainstalowaµ ╝r≤d│a j▒dra Linuxa. Pe│n▒ inforamcjΩ na ten temat zawiera dokument Linux Kernel HOWTO.
Aby zainstalowaµ i skompilowaµ j▒dro Linuxa musisz byµ zalogowany jako administrator(root).
/usr/src
cd /usr/src
/usr/src/linux
czy s▒ ju┐tam zainstalowane
pliki ╝r≤d│owe j▒dra./usr/src
.rm -rf /usr/src/linux
tar xzf linux-2.0.29.tar.gz
cd /usr/src/linux
, przezcytaj plik
README. Zawiera doskona│e wyja╢nienie w jaki spos≤b skonfogurowaµ i
skompilowaµ nowe j▒dro. Przeczytaj ten plik (mozesz go wyderukowaµ,
gdy┐ papierowa kopia mo┐e byµ przydatna podczas konfiguracji i
kompilacji j▒dra).
MUSISZ wiedzieµ jakiego rodzaju karty posiadasz. W niekt≤rych przypadkach (karty d╝wiΩkowe) musisz r≤wnie┐ znaµ r≤┐ne inne ustawienia (np przerwanie IRQ, adrew We/Wy i podobne).
Aby rozpocz▒µ proces konfiguracji, wykonaj polecenia opisane w pliku README. Rozpozcynasz proces konfiguracji j▒dra poleceniem
make config
Aby korzystaµ z PPP, musisz skonfigurowaµ j▒dro tak, aby zosta│a do│▒czniea obs│uga PPP w j▒drze (PPP wymaga zar≤wno obs│ugi protoko│u przez j▒dro, jak i samego programu pppd).
PPP (point-to-point) support (CONFIG_PPP) [n] y
Odpowiedz na nastΩpne pyania zgodnie z posiadanycm sprzΩtem i po┐▒danyc hcech systemu. NastΩpnie wykonaj kolejne polecenie przedstawione w pliku README.
Jadro 1.2.13 tworzy jedynie 4 urz▒dzenia PPP. W przypadku korzystania z kart wieloportowych musisz poprawiµ pliki ╝r≤d│owe j▒dra. (Zobacz README.linux, czΩ╢µ dystrybucji palietu PPP-2.1.2.
Uwaga: dialog komfiguracyjny j▒dra w wersji 1.2.13 nie pozwala na
cofanie siΩ do pyta± na kt≤re ju┐ zosta│▒ podana odpowied╝. WiΩc je╢li
pomylisz siΩ musisz przerwaµ program (naciskaj▒c Ctrl-C i
powt≤rzenie polecenia make config
.
W przypadku j▒dra 2.0.x mo┐esz wykorzystaµ przedstawion▒ wcze╢±iej procedurΩ. W celu przwid│oweg ozinstalowania plik≤w ╝r≤d│owych wykonuj instrukcje z pliku README. NastΩpnie rozpocznij konfiguracjΩ wydaj▒c polecenie:
make config
Mo┐esz spr≤bowaµ innego sposobu, a mianiwicie
make menuconfig
Ta metoda przywo│uje program konfiguracyjny oparty o listΩ prostych w obs│udze menu, z osi▒galn▒ pomoc▒ on-line.
Jesnieje r≤wnie┐ bardzo rekomentowana wersja pod X
make xconfig
Obs│uga PPP mo┐e byµ wkompilowana bezpo╢rednio w j▒dro lub jako oddzielny modu│. Je╢li bΩdziesz korzyst▒│ z PPP tylko od czasu do czasu, wtedy polecamy skompilowanie PPP jako oddzielnego modu│u. Je╢li korzystasz zporgramu 'kerneld', modul PPP zostanie za│adowany automatycznie w momencie gdy j▒dro zostanie poproszone o obs│ugΩ protoko│u PPP. W ten spos≤b oszczedzasz cenna pamiΩc operacyjn▒ w systuacji kiedy nie korzystasz z PPP, poniewa┐ kod jadra musis w ca│o╢ci znajdowaµ sie w pamiΩci operacujnej komputera, lecz modu│y │wadowane przez kerneld saautomatyczne usuwane z pamiΩci jΩsli nikt z nich nie korzysta.
W tym celu musisz w│▒czyµ obs│ygΩ │adowania modu│ow:
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
Aby dodaµ obs│ugΩ PPP odpowiedz na nastΩpuj▒ce pytanie:
PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
Je╢li chcesz aby to by│ │adowalny modu│ odpowiedz M. Je╢li bma byµ wkompilowany bezpo╢rednio w j▒dro odpowiedz Y.
W przeciwie±stwie do j▒dra w wersji 1.2.13 j▒dro 2.0.x tworzy ur┐adzenie PPP w locie wtedy, kiedy s▒ potrzebne i nie trzeba zmieniaµ ╝r≤dΩ│ j▒dra aby dodaµ wiΩcej ni╝ 4 kana│y PPP.
/proc/net/dev
Jesli korzystasz z PPP-2.2 stwierdzisz, zΩ efektem ubocznym tworzenia kana│≤w PPP w locie jest fakt, ┐e nie s▒ one wykazywane w pliku /proc/net zanim nie zostanie utworzone przez uruchomiony program pppd.
[hartr@archenland hartr]$ cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 92792 0 0 0 0 92792 0 0 0 0 0 eth0: 621737 13 13 0 23 501621 0 0 0 1309 0
Je╢li ju┐ jakie╢ po│▒czenia zostan▒ nawi▒zane, na serwerze PPP bΩdziesz m≤g│ obej┐eµ listΩ urz▒dze± podobn▒ do tej poni┐ej:
[root@kepler contrib]# cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 428021 0 0 0 0 428021 0 0 0 0 0 eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5 ppp0: 2103 3 3 0 0 2017 0 0 0 0 0 ppp1: 10008 0 0 0 0 8782 0 0 0 0 0 ppp2: 305 0 0 0 0 297 0 0 0 0 0 ppp3: 6720 7 7 0 0 7498 0 0 0 0 0 ppp4: 118231 725 725 0 0 117791 0 0 0 0 0 ppp5: 38915 5 5 0 0 28309 0 0 0 0 0
Je╢li konfigurujesz swojego Linuxa jako serwer PPP, musisz wkompilowaµ w j▒dro obs│ugΩ forwardowania pakiet≤w (IP forwarding). Jest to r≤wnie┐ konieczne, je╢li twoj Linux ma │▒czyµ ze sob▒ dwie sieci LAN lub przy│▒czyµ lokaln▒ sieµ LAN do Internetu.
Je╢li przy│▒czasz sieµ LAN do Internetu (lub │▒czysz ze sob▒ dwie sieci LAN) powiniene╢ po╢wiΩciµ du┐o uwagi bezpiecze±stwu. Dlatego obowi▒zkowe wydaje siΩ w takim przypadku wkompilowanie obs│ugi firewalla (IP Firewalling).
BΩdziesz tego potrzebowa│ r≤wnie┐ w przypadku, gdy chcesz skorzystaµ z IP masquerade w celu pod│▒czenia do internetu sieci lokalnej pracuj▒cej na zastrze┐onych klasach numer≤w IP.
Jak ju┐ zainstalujesz nowe j▒dro i zrestartujesz komputer aby by│o aktywne, wtedy mo┐esz rozpocz▒µ konfigurowanie i testy po│▒czenia PPP.
Zanim bΩdziesz w stanie ustanowiµ po│▒czenie PPP z serwerem, musisz zdobyµ nastΩpuj▒ce informacje (od administratora opiekuj▒cego sie serwerem):
Zapisz dok│adnie wszystkie te informacje - bΩdziesz z nich korzystaµ.
Powiniene╢ siΩ upewniµ ┐e tw≤j modem jest poprawnie pod│▒czony i skonfigurowany, i wiesz do kt≤rego portu szeregowego jest pod│▒czony.
PamiΩtaj:-
Korzystaj▒c z programu komunikacyjnego (mp minicom), wybierz numer telefoniczny serwera PPP do kt≤rego chcesz siΩ przy│▒czyµ za pomoc▒ PPP.
(Uwaga: W tym stadium nie staramy siΩ nawi▒zaµ po│▒czenia PPP - jednynie chcemy siΩ upewniµ, ┐e posiadamy poprawny numer telefonu, chcemy sorawdziµ, ┐e nasz modem dzia│a poprawnie i chcemy dowiedzieµ siΩ jakie dokladnie komunikaty wysy│a w czasie logowania siΩ serwer PPP).
Podzcas cza│ego tego procesu powiniene╢ prowadziµ bardzo dok│adne notatki wszelkich zachΩt i komunikat≤w wysy│anych przez serwer lub najlepiej w│▒czyµ rejestrownianie wszystkiego do pliku (log file). Szczeg≤lnie nas interesuje ca│a procedura logowania siΩ do systemu, w jaki spos≤b serwer zachΩca ciΩ do wprowadzenia identyfikatora, a potem has│a i jakie komunikaty wy╢wietla podczas uruchamiania PPP.
Warto zadzwoniµ co najmniej dwukrionie. Niekt≤re serwery zmieniaj▒ spos≤b zachΩcania do wprowadzania informacji (np. z czasem). Dwie najwa┐niejsze zachΩty jakie potrzebujesz znaµ to:-
Je╢li w celu uruchomieania na serwerze PPP musisz wydaµ jakie╢ polecenie, musisz r≤wnie┐ zanotowaµ jak wygl▒da zacheta serwera do wywdawani polece±, po tym jak ju┐ siΩ zalogujesz do serwera.
Je╢li serwer automatycznie uruchamia PPP zaraz po tym jak siΩ zalogujesz, zobaczysz na ekranie serie smieci - to serwer PPP przesy│a inforamcje niezbΩdne do konfiguracji i zestawienia po│▒czenia PPP.
To powinno wygl▒daµ mniej wiΩcej tak:-
~y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .~~y}
(pojawia siΩ raz za razem)
W tym momencie mo┐esz przerwaµ po│▒czenuie (zwykle wpisz szybko +++, a gdy tw≤j modem odpowie OK wydaj polecenie ATHO).
W niekt≤rych systemach PPP musi zostaµ uruchomione przez u┐ytkownika. Zwykle jest tak dlatego, ze serwer zosta│ skonfigurowany w ten spos≤b aby umo┐liwiµ po│▒czenia PPP i zwyk│e sesje terminalowe przy wykorzystaniu tego samego konta. W takim przypadku, jak ju┐ siΩzalogujesz na serwerze musisz wydaµ to polecenie. Ponownie zobaczysz smiecie pojawiaj▒ce siΩ na ekranie - to serwer PPP pr≤buje nawi▒zaµ po│▒czenie z twoim komputerem. Mo┐esz od│ozyµ s│uwawkΩ.
Je╢li nie zobaczysz na ekranie wspomnianych wcze╢niej ╢mieci wszystko wskazuje (choµ nie na pewno), ┐e pope│ni│e╢ jaki╢ b│▒d.
Mo┐e siΩ zdarzyµ taki przypadek, ze trafi│e╢ na serwer pracuj▒cy w trybie pasywnym - to znaczy taki, kt≤ry nie wysy│a komunikat≤w zanim klient (tw≤j komputer) nie rozpocznie zestawiania po│▒czenia PPP.
Jednak┐e wiΩkszo╢µ serwer≤w jest w tym wzg│Ωdzie aktywna i powiniene╢ jednak zobaczyµ te ╢miecie.
Je╢li nie mo┐esz uruchomiµmodemu, przeczytaj dokumentacjΩ, kt≤ra mu towarzyszy, strony podrΩcznika dotycz▒ce oprogramowania komunikacyjnego z kt≤rego korzystasz (man minicom) i Serial-JTZ!. Kiedy siΩ z tym uporasz powt≤rz ca│▒ procedurΩ.
Je╢li korzystasz z szybkich (zewnΩtrznych) modem≤w (14400 Bod≤w i wiΩcej) tw≤j port szeregowy musi umo┐liwiaµ przesy│anie inforamcji z odpowiedni▒ prΩdko╢ci▒ jaka mo┐e wygenerowaµ modem, sczeg≤lnie gdy modem posiada kompresjΩ sprzΩtow▒.
To wymaga korzystania z port≤w z nowoczesnymi uk│▒dami UART (Universal Asynchronous Receiver Transmitter) takimi jak 16550A. Je╢li korzystasz ze starego komputera (lub star▒ kartΩ port≤w szeregowych) ca│kiem mo┐liwe, ┐e korzystasz z uk│ad≤w UART 8250, kt≤re mog▒ powodowaµ klopoty przy korzystaniu z modem≤w o du┐ej prΩdko╢ci.
Linux potrafi powiedzieµ jakiego rodzaju uk│adu u┐ywasz. Skorzystaj z polecenia
setserial -a /dev/ttySx
Je╢li nie posiadasz uk│ad≤w 16550A, kup now▒ kartΩ port≤w szeregowych zawieraj▒c▒ te uklady (cena poni┐Ωj $ 50).
Uwaga: pierwsze wersje uk│adu 16550 mia│y bl▒d. Zosta│ on szybko rozpoznany i powstala nowa poprawiona wersja tego uk│adu 16550A. Cze╢µ b│Ωdnych uk│ad≤w dosta│a siΩ jednak do obiegu. Prawdopodobie±stwo, ┐e natrafisz na takie uk│ady jest niezwykle ma│e, lecz sprawdzaj▒c uk│ady szukaj oznaczenia 16550A, sczeg≤lnie w starszych kartach.
Muszi poprawnie skonfigurowaµ modem, przeczytaj jego dokumentacjΩ. WiΩkszo╢µ modem≤w jes dotarczana z ustawieniami fabrycznymi, kt≤re w│▒czaj▒ opcje wymagane dla PPP. Minimalna konfiguracja powinna okre╢laµ:-
&
K3 w wielu modemach Hayes)Inne ustawienia (standardowe polecenia modem≤w Hayes), kt≤rym powiniene╢ siΩ przyj┐eµ to:
&
C1 Carrier Detect ON Tylko po po│▒czeniu&
S0 Data Set Ready (DSR) zawsze ONWarto r≤wnie┐ siΩ dowiedzieµ w jaki spos≤b pracuje po│▒czenie miΩdzy modemem i twoim komputerem. Wiekszo╢µ nowoczesnych modem≤w pozwala na pracΩ z USTALONí predko╢ci▒, pozwalaj▒c jednocze╢nie na zmianΩ prΩdko╢ci po│▒czenia przez liniΩ telefoniczn▒ na najwiΩksz▒ jak▒ potrafi przenie╢µ sama linia i obs│u┐yµ zdalny modem.
Jest to znany jako tryb pracy z dzielon▒ prΩdko╢cia. Je╢li twoj modem potrafi to obs│u┐yµ, zblokuj interfejs szeregowy modemu na najwieksz▒ prΩdko╢µ jak▒ porafi obs│u┐yµ (zwykle 115200 bps lub 38400 bps dla modem≤w 14400 bod≤w).
Skorzystaµ z oprogramowania komunikacyjnego (np minicom) aby
dowiedzieµ siΩ wiΩcej na temat konfiguracji modemu i skonfiguruj go do
pracy z PPP. Wiekszo╢µ modem≤w pokazuje aktualne ustawienia po wydaniu
polecenia AT&
V, lecz sprawd╝ to w dokumentacji modemu.
Je╢li przypadkiem naba│aganisz w ustawieniach, mo┐esz powr≤ciµ do
ustawie± fabrycznych wydaj▒c polecenie AT&
F. W wiΩkszo╢ci
modem≤w jakie spotka│em ustawienia fabryczne by│y wystarczajace do
poprawnej wsp≤│pracy z PPP, lecz powiniene╢ to sprawdziµ.
Zachowaµ konfiguracjΩ modemu w pamiΩci modemu (zwukle poleceniem
AT&
W - sprawdz w dokuentacji).
Zachowanie prawid│owej konfiguracji w modemie, w│▒czenie modemu, lub jego zerowanie j▒ uaktywnia. DziΩki temu w znaczny spos≤b uraszcza siΩ skrypty niezbΩdne do zestawienia po│▒czenia PPP.
Kiedy informacje podr≤┐uj▒ przez linie szeregowe, mo┐e siΩ zdarzyµ, ┐e dane przybywaj▒ szybciej, ni┐ komputer jest w stanie je obs│u┐yµ (komputer mo┐e byµ zajΩty czym╢ innym - pamiΩtaj Linux jest systemem wielozadaniowym i wielou┐ytkownikowym). Aby zapewniµ, ┐e informacja nie zostanie utracona konieczne jest odpowiednie sterowanie przep│ywem danych (dane nie miescz▒ siΩ w buforze i s▒ tracowne).
Istniej▒ dwie metody:-
Podczas, gdy ta ostatnia mo┐e byµ wystarczaj▒ca w przypadku termianli (danych tekstowych), po│▒czenia PPP korzystaj▒ z wszystkich 8-miu bit≤w i moze siΩ zdarzyµ, ┐e gdzie╢ w strumieniu danych znajdzie siΩ znak odpowiadaj▒cy sygna│owi Control Q lub Control S. WiΩc je╢li modem zostanie skonfigurowany do obs│ugi sysgna│≤w programowych, wszystko mo┐e gwa│townie przestaµ dzia│aµ.
Dal PPP korzystaj▒cego z danych 8-mio bitowych sprzetowe sterowanie przep│ywaem danych jest absolutnie niezbΩdne.
Poniewa┐ PPP musi skonfigurowaµ urz▒dzenia sieciowe, zmodyfikowaµ tabele routingu itp. musi wtedy posiadaµ uprawnienia administratora.
Je╢li po│▒czenie PPP zestawia u┐ytkownik inny ni┐ root, wtedy program pppd musi mieµ ustawiony bit setuid i nale┐eµ do aministratora (setuid root) :-
-r-sr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
Je╢li /usr/sbin/pppd nie ma takich atrybut≤w, musisz jako administrator (root) wydaµ polecenie :-
chmod u+s /usr/sbin/pppd
Powu┐sze polecenie umozliwia uruchomienie programu pppd z uprawnieniami administratora nawet przez zwyk│ego u┐ytkwonika. W ten spos≤b zwyk│y u┐ytkownik mo┐e zainicjowaµ po│▒czenie PPP, a sam program bΩdzie posiada│ odpowiednie uprawnienia do skonfigurowania urz▒dze± sieciowych i modyfikacji tabeli routingu.
Programy z ustawionym bite, suid s▒ potencjalnymi dziurami w systemie zabezpiecze± i powiniene╢ byµ nies│ychanie ostro┐ny w ustawianiu biru suid dla program≤w, kt≤rych w│a╢cicielem jest administrator (root). Cze╢µ program≤w (w│▒czaj▒c pppd) by│a napisana ze specjalnym uwzglednieniem minimalizowania niebezpiecze±stwa wykoklego z wykonywania tego programu jako administrator, wiΩc powiniene╢ tym razem czuµ siΩ bezoieczny (choµ nie dajemy ┐adnych gwarancji).
W zale┐no╢ci od sposobu pracy twojego systemu - sczego│nie je╢li chesz umo┐liwiµ KA»DEMU u┐ytkownikowi twojego systemu inicjowanie po│▒cze± PPP powiniene╢ zmieniµ atrybuty sktypt≤w do w│▒czania/wy│▒czania PPP tak, aby te pliki mog│y byc czytane i wykonywane przez wszystkich.
Jednak┐e je╢li NIE chcesz aby ka┐dy mog│ uruchomiµ PPP (np twoje dzieci posiadaj▒ konta na twoim komputerze i nie chesz aby pod│acza│y siΩ do internetu bez twojego nadzoru) musisz utworzyµ odzielna grupΩ PPP (zmie± plik /etc/group) a nastΩpnie:-
-rwxr-x--- 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp-on
-rwxr-x--- 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp-off
Nawet je╢li tak post▒pisz, zwykli u┐ytkownicy NADAL nie bΩd▒ w stanie zamkn▒µ po│▒czenia PPP!. PamiΩtaj, ┐e k▒zdy mo┐e wy│▒czyµ modem.
Na moim domowym PC NIE ustawiam bitu suid dla pppd. Abyuruchomiµ po│▒czenie muszΩ zalogowaµ sie jako administrator - czyli znaµ has│o. W ten spos≤b kontrolujΩ dostΩp mojego syna do Internetu.
Je╢li nawet chcesz aby PPP by│o dostΩpne dla wszystkich u┐ytkownik≤w, podczas wykonywania opisyuwanych poni┐ej modyfikacji plik≤w i katalog≤w musisz pracowaµ jako administrator.
PPP korzysta z kilku plik≤w podczas zestawiania po│▒czenia. Ich nazwy i po│o┐enie s▒inne dla PPP w wersji 2.1.2 i 2.2.
W przypadku PPP 2.1.2 s▒ to:-
/usr/sbin/pppd # plik binarny /usr/sbin/ppp-on # skrypt do nawi▒zywania po│aczenia /usr/sbin/ppp-off # skrypt kasuj▒cy po│▒czenie /etc/ppp/options # plik z opcjami totyczacymi wszystkich po│▒cze± /etc/ppp/options.ttyXX # opcje specyficzne dla po│▒cze± przez ten port
For PPP 2.2 the files are:-
/usr/sbin/pppd # plik binarny /etc/ppp/scripts/ppp-on # skrypt do nawi▒zywania po│aczenia /etc/ppp/scripts/ppp-on-dialer # skrypt do wybierania numeru serwera /etc/ppp/scripts/ppp-off # skrypt dla programu chat /etc/ppp/options # plik z opcjami totyczacymi wszystkich po│▒cze± /etc/ppp/options.ttyXX # opcje specyficzne dla po│▒cze± przez ten port
Jak widaµ w katalogu /etc powiniene╢ znale╝µ podkatalog ppp:-
drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp
Je╢li nie istnieje musisz go utworzyµ.
Je╢li ten katalog ju┐ istnieje, powinien zawieraµ plik wzrocowy o nazwie options.tpl. Poni┐ej przedstawiamy zawarto╢µ tego pliku.
Powiniene╢ go wydrukowaµ poniewa┐ zawiera wyja╢nienie wszystkich opcji
PPP (dobrze siΩ z nimi zapoznaµ w po│▒czeniu ze stronami podrΩcznika
dotycz▒cymi programu pppd (man pppd)). Choµ mog│byµ u┐yµ tego pliku
jako
podstawy d utworzenia pliku /etc/ppp/options
, prawdopodobnie
lepiej jest go utworzyµ od pocz▒tku, tak aby nie zawiera│ tych
wszyskich komentarzy - bΩdzie znacznie │atwiejszy w utrzymaniu.
Je╢li posiadasz wiele linii modemowych (przypadek serwera PPP),
powiniene╢ utworzyµ plik /etc/ppp/options
z opcjami wsp≤lnymi
dla wszystkich port≤w i je╢li jest to konieczne utworzyc indywidualne
pliki dla ka┐dej linii oddzielnie, kt≤re bΩd▒ zawiera│y indywidualne
ustawienia wymagane dla konkretnego portu.
S▒ to pliki o nazwach options.ttyx1<
, options.ttyx2
itd.
(x X oznacza odpowiedni▒ literΩ oznaczj▒ca port szeregowe twojego
komputera).
Jednak w przypadku pojedynczego po│▒czenia PPP ca│kowicie wystarczy
jeden plil /etc/ppp/options
. Ostatecznie mog│by╢ podaµ
wszystkie te parametry w wierszu polece± programu pppd.
úatwiej jest opiekowaµ siΩ konfiguracj▒, kt≤ra korzysta z plik≤w
/etc/ppp/options.ttySx
. Je╢li korzystasz z PPP aby │▒czyµ
siΩ z r≤┐nymi serwerami, mo┐esz utworzyµ dla ka┐dego serwera wlasny
plik konfiguracyjny i przekazywaµ jego nazwΩ jako argument polecenia
uruchamiaj▒cego po│▒czenie PPP.
CzΩsµ dystrybucji PPP wydaje siΩ byµ pozbawiona pliku options.tpl,
dlatego tutaj podajemy jego pe│n▒ tre╢µ. Zamiast zmieniaµ ten plik,
lepiej stworzyµ /etc/ppp/options
od nowa. Rownie┐ nie
wprowadzaj zmian bezpo╢rednio do tego pliku. Zrob wpierw jego kopiΩ i
j▒ modyfikuj. W razie klopot≤w mo┐esz wtedy rozpocz▒µ wszystko na nowo.
# /etc/ppp/options -*- sh -*- og≤lne opcje pppd # created 13-Jul-1995 jmk # autodate: 01-Aug-1995 # autotime: 19:45 # Do sestawienia po│▒czenia miΩdzy modemami wykorzystaj program lub # skrypt. Bedzie tozwyklΩ program "chat", kt≤ry wybierze numer # zaloguje siΩ i uruchomi ppp po drugiej stronie #connect "echo Musisz zainstalowaµ program do nawi▒zania po│▒czenia modemowego" # Wykonaj ten program, lub skrypt po tym, Jak pppd zerwie po│▒czenie. # ten skrypt mo┐e w przypadku braku sprzΩtowego sterowania modemem # wydaµ modemowi aby od│o┐y│ s│uchawkΩ. #disconnect "chat -- \d+++\d\c OK ath0 OK" # async character map -- 32-bit hex; ka┐dy bit oznacza znak, kt≤ry # musi byµ poprzedzony znakiem escape (escaped char), tak aby pppd mog│ # go odebraµ. 00000001 oznacza '\x01', a 0x80000000 oznacza '\x1f'. #asyncmap 0 # Wymaga potwierdzenia to┐szamoaµi przed zezwoleniem na # wysy│anie/odbi≤r pakiet≤w sieciowych #auth # Do sterowania przep│ywem inforamcji przez port szeregowy skorzystaj # ze sprzΩtowego sterowania modemem (tzn. RTS/CTS). #crtscts # Do sterowania przep│ywem inforamcji przez port szeregowy skorzystaj # ze programowego sterowania modemem (tzn/ XON/XOFF). #xonxoff # Po zako±czonych sukcesem negocjacjach IPCP dodaj to tabeli routingu # domy╢ln▒ trasΩ, u┐ywaj▒c jako bramΩ komputer po drugiej stronie # po│▒czenia ppp. Trasa ta jest usuwana z tabeli routingu w momencie # zerwania po│▒czenia PPP. #defaultroute # Okre╢la, kt≤re znaki musz▒ byµ przesy│▒ne specjalnie (escaped) - # niezale┐nie czy druga strona (za pomoc▒ opcji asyncmap) za┐▒da│a aby # by│y w taki spos≤b przesy│ane, czy nie. Znaki s▒ podane jako ci▒gi # liczb w notacji szesnastkowej, rozdzielone przecinkami. Zauwa┐, ┐e # mo┐esz tu wpisaµ niemal ka┐dy znak, w przeciwie±stwie do parametru # asyncmap, kt≤ry jako swoje argumenty przyjmuje jedynie znaki steruj▒ce # (control characters). Znaki, kt≤re nie mog▒ byµ przesy│ane w spos≤b # specjalny to znaki, kt≤rych kody zawieraj▒ siΩ w przedziale 0x20-0x3f # i znak 0x5e. #escape 11,13,ff # Nie korzystaj z sygna│≤w strowania modememe #local # Okre╢la, ┐e pppd w celu zapewnienia wy│▒czn╢ci w dostΩpie do port≤w # szeregowych powinno korzystaµ z plik≤w blokady w stylu UUCP. #lock # Krzystaj z sysgna│≤w sterownai modemem. Na Ultrixie, ta opcja # oznacza spzΩtowe sterownie przep│ywem danych, tak jak to w│▒cza opcja # crtscts. # (Ta pcja nie jest w pe│ni zaimplementowana) #modem # Nadaj zmienej MRU [Maximum Receive Unit - NajwiΩkszy blok # otrzymywany] warto╢µ <n>. Pppd poprosi drug▒ stronΩ o nie przysy│anie # wiΩkszych pakiet≤w ni┐ <n> bajt≤w. Minimalna warto╢µ MRU wynosi # 128. Warto╢ci▒ domy╢ln▒ jest 1500. W przypadku wolnych │▒czy zaleca # siΩ wartosµ 296 (40 bajt≤w na nag│≤wek TCP/IP i 256 bajt≤w danych) #mru 542 # Ustawienie netmaski interfejsu sieciowego. 32-wu bitowa w notacji # dajtowo-dziesiΩtnej (np. 255.255.255.0). #netmask 255.255.255.0 # Wy│▒czenie opcji negocjowania adresu IP z serwerem. Je╢li ta opcja bΩdzie # w│▒czona adres IP musi zostaµ podany jako parametr po│▒czenia (w pliku # opcji lub w wierszu polece±, lub przekazany przez serwer w czasie # negocjacji IPCP. #noipdefault # W│▒cza pasywne zachowanie LCP. PPP spr≤buje nawi▒zaµ po│▒czenie, # je╢li to siΩ nie uda, zamiast zako±czenia pracy (normalne zachowanie # gdy ta opcja jest wy│▒czona) bedzie oczekiwa│ na poprawny pakiet LCP # nades│any przez drugi komputer. #passive # PPP nie bΩdzie wysy│a│o ┐adnych pakiet≤w LCP, w celu nawi▒zania # po│▒czenia. BΩdzie jedynie nas│uchiwa│o na nadej╢cie takich pakiet≤w # z drugiej strony po│▒czenia (zachowanie opcji "passive" w starszych # wersjach pppd) #silent # Nie ┐▒daj i nie pozawalaj na ustalenie jakichkolwiek opcji w czasie # negocjacji LCP czy IPCP (wykorzystaj warto╢ci domy╢lne). #-all # Wy│▒czenia kompresji negocjacji adresu/sterowania (wykorzystaj # ustawienie domy╢lne, tzn pole adres/sterowanie wy│aczone). #-ac # Wy│▒cz negocjacje opcji asyncmap (skorzystaj z domy╢lnej warto╢ci # asyncmap, czyli przesy│aj w spos≤b specjalny jedynie znaki steruj▒ce. #-am # Nie tw≤rz procesu potomnego w tle ( w przeciwnym wypadku pppd # zachowa siΩ w ten spos≤b jesli podany port oznacza urz▒dzenie szeregowe) #-detach # Wy│▒cz negocjacjΩ adresu IP (pppd musi otrzymac jako parametr adres # IP komputera na drugim ko±cu po│▒czenia - w wierszu polece± lub # pliku opcji) #-ip # Wy│▒cz negocjacjΩ numeru magicznego/specjalnego/charakterystycznego # (magic number). W ten spos≤b pppd nie wykryje urz▒denia pΩtli zwrotnej. #-mn # Wy│▒cz negocjacjΩ parametru MRU [Maximal Receive unit]. Wykorzystaj # warto╢µdomy╢ln▒ 1500. #-mru # Wy│▒cz negocjacjΩ pola protoko│u (skorzystaj z opcji domyslnej: # kompresja wy│▒czona). #-pc # Za┐▒daj aby druga strona przedstawi│a siΩ za pomoc▒ protoko│u PAP. #+pap # Nie zgadzaj siΩ na przedstawianie siΩ za pomoc▒ PAP #-pap # Za┐▒daj aby druga strona przedstawi│a siΩ za pomoc▒ protok│u CHAP # [Cryptographic Handshake Authentication Protocol]. #+chap # Nie zagadzaj siΩ na przedstawienei siΩ za pomoc▒ CHAP. #-chap # Wy│▒cz negocjacjΩ kompresji nag│≤wk≤w IP w styly Van # Jacobsena. Skorzystaj z warto╢ci domy╢lnej: brak kompresji. #-vj # ZwiΩksz posiom odpluskwiania (to camo co opcja -d). Pppd bΩdzie # rejestrowa│o zawarto╢µ wszystkich wys│anych i otrzymanych pakiet≤w # kontrolnych w formie nadaj▒cej siΩ do interpretacji przez # cz│owieka. Rejestrowanie dokonuje siΩ za pomoc▒ dziennik≤w systemowych # (syslog) na poziomie `debug' z warto╢cia `daemon'. Informacje te mog▒ # byµ zapisywane w pliku. Przeczytaj o pliku konfiguracyjnym # /etc/syslog.conf (man syslog.conf). Je╢li pppd zosta│o skompilowane z # w│▒czeniem dodatkoweg oodpluskwiania, wiadomo╢ci bΩd▒ rejestrowane z # waro╢ci▒ `local2' zamiast `daemon'. #debug # W celach przedstawiania siΩ i weryfikacji to┐samo╢ci do nazwy # komputera dodaj domenΩ <d>. Np. je╢li funkcja gethostbyname() # przekazuje warto╢µ `porshe', lecz pe│na nazwa komputera jest # `porsche.Quotron.COM' musisz skorzystaµ z tej opcji i podaµ domenΩ # Quotron.COM. #domain <d> # W│▒cz kod udpluskwiania na poziomie drajwera j▒dra. Argument n jest # liczba sk│adaj▒c▒ siΩ z sumy poszczeg≤lnych element≤w: 1 w│▒czenie # og≤lnych komunikat≤w odpluskwiaj▒cych, 2 - wy╢wietlanie zawarto╢ci # przychodz▒cych pakiet≤w, 4 wy╢wietlanie zawarto╢ci pakiet≤w wysy│anych. #kdebug n # Nadaj parametrowi MTU [Maximum Transmit Unit] waro╢µ<n>. Je╢li druga # strona w czasie negocjacji nie zarz▒da mniejszej warto╢µMTU, pppd # poprosi aby kod j▒dra wywy│a│ przez interfejs ppp pakiety o wielko╢ci # nie przekraczaj▒cej n bajt≤w. #mtu <n> # Do cel≤w weryfikacji to┐samo╢ci przyjmij nazwΩ <n>. #name <n> # Do cel≤w weryfikacji to┐samo╢ci w protokole PAP przyjmij nazwΩ # uzytkownika r≤wn▒ <u>. #user <u> # Wymu╢ wykorzystywanie do cel≤w weryfikacji to┐samo╢ci przyjΩcie # nazwy komputera jako nazwy systemu pr≤buj▒cego nawi▒caµ po│▒czenie. #usehostname # Do cel≤w weryfikacji to┐samo╢ci przyjmij nazwΩ zdalnego systemu # r≤wn▒ <n>. #remotename <n> # Dodaj pozycjΩ do systemowej tabeli ARP [Address Resolution Protocol] # z adresem IP systemu po drugiej stronie po│▒czenia i twoim adresem # Ethernetowym. #proxyarp # Do cel≤w weryfikacji to┐samo╢ci w protokole PAP skorzystaj z # systemowej bazy hase│. #login # Pppd bΩdzie wysy│a│o do systemu po drugiej stronie ramki LCP # echo-request (┐▒danie echa) co n sekund. Pod Linuxe, echo-request jest # wysy│any wtedy, gdy z drugiej strony w ci▒gu ostanich n sekund nie # nadszed│ ┐aden pakiet. Zwykle druga sptrona powinna odpowiedzieµ na # echo-request wyw│aj▒c echo-reply (odpowied╝ na ┐▒danie echa). Wraz z # opcj▒ lcp-echo-failure mo┐e byµ wykorzystana do wykrywania przerwania # po│▒czenia przez drug▒ stronΩ. #lcp-echo-interval <n> # Je╢li po n ramkach echo-request nie nadejdzie ┐adna rama echo-reply # pppd potraktuje to jako zerwanie po│▒czenia przez drug▒ stronΩ. Je╢li # tak siΩ stanie pppd przerwie po│▒czenie. Korzystanie ztej opcji wymaga # podania niezerowego parametru w opcji lcp-echo-interval. Zwykle # korzysta siΩ z tej opcji w celu wykrycia fizycznego przerwania # po│▒zenia (np od│o┐enie s│uchawki przez modem) w systucajch, gdy nie # stosuje siΩ sprzΩtowych liniisterowania modemem. #lcp-echo-failure <n> # Przyjij przerwΩ miΩdzy w│aczaniem negocjacji LCP r≤wn▒ <n> sekund # (retransmission timeout). Domy╢lnie 3 #lcp-restart <n> # Przyjmij maksymaln▒ liczbΩ transmisjji polecenia przerwania ┐▒dania # (terminate-request) w protokole LCP. Domy╢│nie 3. #lcp-max-terminate <n> # Przyjmij maksymaln▒ liczbΩ transmisjji polecenia konfiguracyjnego # protoko│u LCP r≤wn▒ <n>. Domy╢│nie 10. #lcp-max-configure <n> # Ustaw maksymaln▒ liczbΩ zwr≤conych w protokole LPC ┐▒da± # configura-NAK, zanim rozpocznie siΩ transmisja polece± # configure-Reject. Domy╢lnie 10. #lcp-max-failure <n> # Ustaw przerwΩ w protokole IPCP (retransmission timeout) r≤wn▒ <n>. # Domy╢│nie 3. #ipcp-restart <n> # Ustaw maksymaln▒ liczbΩ transmisji polecenia terminate-request protoko│u # IPCP r≤wn▒ <n>. Domy╢lnie 3. #ipcp-max-terminate <n> # Ustaw maksymaln▒ liczbΩ transmisji polecenia configure-request protoko│u # IPCP r≤wn▒ <n>. Domy╢lnie 10. #ipcp-max-configure <n> # Ustaw maksymaln▒ lizcbΩ zwr≤conych polece± configure-NAK protoko│u # IPCP zanim rozpocznie siΩ wysy│anie polece± configure-Reject r≤wn▒ # <n>. Domy╢│nie 10. #ipcp-max-failure <n> # Ustaw przerwΩ miΩdzy uruchamianiem protoko│u PAP (retransmission # timeout) rown▒ <n> sekund. Domy╢│nie 3. #pap-restart <n> # Ustaw maksymaln▒ liczbΩ transmisji polecenia authenticate-request # protoko│u PAP r≤wn▒ <n>. Domy╢│nie 10. #pap-max-authreq <n> # Ustaw przerwΩ miΩdzy uruchamianiem protoko│u CHAP (retransmission # timeout) r≤wn▒ <n> sekunt. Domy╢lnie 3. #chap-restart <n> # Ustaw liczbΩ wys│anych ┐▒da± rozpoczΩcia protoko│u CHAP r≤wn▒ <n>. # Domy╢│nie 10. #chap-max-challenge # Pppd bΩdzie pr≤bowa│o nawi▒zaµ po│▒czenie z drug▒ stron▒ co <n> # sekund. #chap-interval <n> # Pppd zakceptuje podany przez drug▒ stronΩ nasz lokalny adres IP, # nawet je╢li zosta│ on podany r≤wnie┐ jako opcja dla programu pppd. #ipcp-accept-local # Pppd zakceptuje podany przez drug▒ stronΩ jej adres IP, # nawet je╢li zosta│ on podany r≤wnie┐ jako opcja dla programu pppd. #ipcp-accept-remote
Jak zwykle: to zale┐y.
Przedstawiay dwie podstawowowe wersje pliku options, kt≤re dotycz▒ wiΩkszo╢ci przypadk≤w.
Je╢li nasza propozycja nie zadzia│a, PRZECZYTAJ PLIK WZORCOWY
(/etc/ppp/options.tpl
) i strony podrΩcznika programu
pppd (man pppd) i porozmawiaj z administratorem/lud╝mi
zajmuj▒cymi siΩ obs│ug▒ u┐ytkownik≤w serwera, z kt≤rym starasz siΩ
nawi▒zaµ po│aczenie.
W przypadku po│▒cze±, kt≤re nie wymagaj▒ weryfikacji PAP/CHAP powinien wystarczyµ taki plik.
# /etc/ppp/options (bez PAP/CHAP) # # Zapobiegnij od│▒czaniu siΩ od terminala przez program pppd. -detach # Je╢li korzystasz ze statycnych numer≤w IP, wpisz tutaj sw≤j numer 0.0.0.0: # # Korzystaj z linii sterowania modemu modem # korzystaj z plik≤w blokady w stylu uucp, zapewniaj▒c sobie wy│▒czny # dostΩp do urz▒dze± szeregowych lock # korzystaj ze sprzΩtorwego sterowana przep│ywem danych crtscts # po nawi▒zaniu po│aczenia dodaj do tabli routingu domy╢ln▒ trasΩ dla # biegn▒c▒ w│a╢nie przez to po│▒czenie defaultroute # Znaki specjalne maj▒ byµ przesy│ane normalnie asyncmap 0 # maksymalny rozmiar pakietu wychodz▒cego 552 bajty mtu 552 # maksymalny rozmiar pakietu przychodz▒cego 552 bajty mru 552 # #-------KONIEC /etc/ppp/options (bez PAP/CHAP)
Je╢li serwer wymaga jednak weryfikacji PAP lub CHAP powiniene╢ spr≤bowaµ opcji pokazanyhc powy┐ej z dodatkowymi kilkoma wierszami jakie przedstawiamy poni┐ej
# # zmus pppd do korzystania do przedstawiania siΩ identyfikatorem # u┐ytkownika jakim pos│ugujesz sie uswojego dostawcy name <tw≤j identyfikator u dostwcy> # musisz zmieiµ ten wiersz # # Je╢li musisz korzystaµ z protoko│≤w PAP lub CHAP, usu± znaki # komentarza z kolejnych dw≤ch wierszy #+chap #+pap # # Je╢li korzystasz z ZAKODOWANYCH hase│ w pliku /etc/ppp/pap-secrets # to usu± znak komentarza z wiersza poni┐ej #+papcrypt
Podczas gdy my, Ludzie lubimy podawaµ adresu komputer≤w w postaci ich
nazw, komputery korzystaj▒ z liczb. W sieci TCP/IP (czym jest
Internet) nazwymay koputery ich nazwami, aka┐dy z komputer≤w ┐yje we
w│asnej dquot;
domeniedquot;
. Np. moj komputer nazywa
siΩ archenland i nale┐y do domeny
hedland.edu.au. Czyli adres mojego komputera w postaci │atwej
do pos│ugiwania siΩ przez cz│owieka jest
archenland.hedland.edu.au. Inne komputery w Internecie rozpoznaj▒ go
jednak przez przydzielony mu adres IP.
T│umaczenie (resolving) nazwy komputera i domeny na numerki, kt≤re s▒ niezbΩdne do nawiazania po│▒czenia jest wykonywane przez komputery oferuj▒ce us│ugΩ o nazwie DNS (Domain Name Service).
Podczas zestawiania po│▒czenia PPP musisz powiedzieµ swojemu komputerowi sk▒d mo┐e pobieraµ informacje na temat numeru IP przydzielonego do nazwy komputera, tak aby╢ ty m≤g│ u┐ywaµ nazw komputer≤w, lecz tw≤j komputer by│ w stanie zamieniµ je na odpowiednie numery IP.
Jednym ze sposob≤w jest umieszcenie nazwy i numeru ka┐dego komputra, kt≤rym bΩdziesz siΩchcia│ po│▒czyµ w pliku /etc/hosts ( w rzeczywisto╢cie jest to niemo┐liwe przy po│▒czeniach z Internetem), innym rozwi▒zaniem jest podawanie numer≤w komputerow zamiast ich nazw (mo┐liwe jedynie w przypadku ma│ych sieci)
Najlepiej w taki spos≤b skonfigurowaµ Linuxa, aby sam wiedzia│ sk▒d pobraµ niezbΩdne informacje - automatycznie. Tej us│ugi dostarzca system DNS. Wszystkiego c opotrzebujesz jest umiesczenie w pliku /etc/resolv.conf numeru IP serera udostΩpniaj▒cego us│ugΩ DNS.
Ludzie opiekujacy siΩ serwerem PPP powinni dostarczyµ ci dwa numery IP serwer≤w DNS (tylko jeden jest niezbΩdny, lecz drugi jest przydatny w przypadku, gdy nast▒pi awaria pierwszego)
Plik /etc/resolv.conf powinien wygl▒daµ mniej wieµej tak:-
domain domena.twojego.dostawcy.internetu nameserver 10.25.0.1 nameserver 10.25.1.2
Popraw ten plik (utw≤rz je╢li jest to konieczne) i wprowa╝ opdpowiednie inforamcje. Pownien mieµ nastΩpuj▒ce atrybuty:-
-rw-r--r-- 1 root root 73 Feb 19 01:46 /etc/resolv.conf
Je╢li posiadasz ju┐ dzia│aj▒cy plik /etc/resolv.conf, poniewa┐ jeste╢ przy│▒czony do sieci LAN, po prostu dodaj numery IP serwera DNS.
Je╢li korzystasz z weryfikacja to┐szamo╢µi pap lub chap, musisz r≤wnie┐ utworzyµ odpowiedni plik sekretny:
/etc/ppp/pap-secrets /etc/pp/chap-secrets
Podstawow▒ cech▒ tych plik≤w jest to, ┐e maj▒ uwiarygodniaµ to┐szamo╢µ komputera (systemu) a nie u┐ytkownika.
"Tak? A jaka to r≤znica ?" s│yszΩ jak zadajesz to pytanie.
Taka, ┐e po zestawieniu po│▒czenia PPP z serwerem KA»DY u┐ytkownik twojego komputera mo┐e korzyst▒c z tego po│▒czenia - nie tylko ty. To w│a╢nie dlatego mo┐esz za pomoc▒ PPP zestawiµ po│▒czenie WAN │▒cz▒ce ze sob▒ dwie sieci LAN.
Tw≤j dostawca poza podaniem ci identyfikatora u┐ytkownika i has│a wymaganego do przy│▒zenia siΩ do jego systemu prawdopodobnie nie bΩdzie zainteresowany jaki▒ nazwΩ nada│e╢ swojemu komputerowi, dlatego prawdopodobnie powienien╢ korzystaµ z identyfikatora u┐ytkownika jaki masz u dostawcy jako nazwy swojego koputera <@@formula>m≤wimy o PAP/CHAP.
Dokonuje sie tego za pomoc▒ opcji name username
programu
pppd. Je╢li muszisz wiΩc podawaµ sw≤j identyfikator w systemie
dostawcy dodaj do pliku /etc/ppp/options
wiersz
name twoj_identyfikator_obowi▒zuj▒cy_u_dostawcy
Technicznie rzecz bior▒c tak naprawdΩ powieniene╢ korzysztaµ z
usertwoj_identyfikator_obowi▒zuj▒cy_u_dostawcy
dla PAP, lecz pppd
jest na tyle inteligentny aby zinterpretowaµ name
jako
user
je╢li tylko serwer za┐▒da u┐ycia PAP. Zalet▒
korzystania z opcji name
jest, to, ┐e jest ona r≤wnie┐ poprawna
dla CHAP.
Poniewa┐ PAP/CHAP s│u┐y so sprawdzania to┐szamo╢ci komputer≤w, potrzebujesz r≤wnie┐ podaµ nazwΩ zdalnego komputera. Poniewa┐ jednak wiΩkszo╢µ korzysta tylkoz jednego dostawcy, mo┐e w pliku sekretnym w miejscu nazwy zdalnego komputera wstawiµ znak uniwersalny (*).
Wrto r≤wnie┐ pamiΩtaµ, ┐e wielu dostawc≤w korzysta z wielokrotnych farm modemowych pod│▒czonych do r≤┐nych serwer≤w, dostΩpnych pod WSP╙LNYM numerem telefonicznym. Dlatego nie mo┐na byµ pewnym, do kt≤rego komputera zostaniemy przy│▒czeni.
Plik /etc/ppp/pap-secrets
wygl▒da mniej wiΩcej tak
# Secrets for authentication using PAP # client server secret acceptable local IP addresses
µ┐tery pola rodzielaone odstΩpami.
Pwiedzmy, ┐e tw≤j dostawca nada│ ci nazwe fred
i has│o
flintstone
. Wrtedy w pliku /etc/ppp/options.ttySx
ustawi│ by╢ opcjΩ name fred
, a w pliku
/etc/ppp/pap-secrets
dopisa│
# Has│a do weryfikacji to┐samo╢ci za pomoc▒ protoko│u PAP # client server secret dopuszczalny lokalny adres IP fred * flintstone
To oznacza, ┐e w przypadku po│▒zcenia lokalnego komputera o nazwie
frd
(kt≤r▒ u┐ywa pppd choµ to nie musis byµ prawdziwa nazwa tego
komputera) z dowolnym serwerm PPP nale┐y u┐ywaµ has│a flintstone
.
Zauwa┐, ┐e nie musimy podawaµ lokalnego adresu IP, cgyba ┐e jeste╢my ZMUSZENI do korzystania zkonkretnego, STATYCZNEGO adresu IP.
Je╢li │▒czysz sie korzystaj▒c z PAP z kilkoma r≤┐nymi serwerami,
powiniene╢ albo zaran┐owaµ to w taki sps≤b aby na ka┐dym serwerze
posiadaµ inny identyfikator username lub poznaµ nazwy zdalnych
serwer≤w, z kt≤rymi siΩ │▒czysz. W ten spos≤b bΩdziesz m≤g│ dodaµ do
pliku pap-secrets
kolejne wiersze definiuj▒ce has│o po│▒czenia -
pod warunkiem, ┐e nadasz prawid│ow▒ warto╢µ
opci tt/name/ odpowiedni▒ dla ka┐dego serwera z kt≤rym nawi▒zujesz po│▒czenie,
Aktualna wersja porgramu pppd wymaga korzystania z wzajemnych metod potwierdzania to┐samo╢ci - to znaczy musisz pozwoliµ aby tw≤j komputer mog│ zweryfikowac odleg│y serwer i aby odleg│y serwer mog│ zweryfikowaµ tw≤j ompuer.
JΩsli tw≤j komputer nazywa siΩ fred
a zdalny serwer nazywa siΩ
barney
, to podpowiednie pliki /etc/ppp/options.ttySx
na
twoim komputerze powinny zawieraµ name fred remotename barney
, a
na zdalnym serwerze na odwr≤t name barney remote name fred
.
Plik /etc/chap-secrets
dla komputera fred wygl▒da tak
# Has│a do weryfiakcji tozsamo╢ci za pomoc▒ protoko│u CHAP # client server secret dopuszczalny lokalny adres IP fred barney flintstone
a dla komputera barney, tak
# Has│a do weryfiakcji tozsamo╢ci za pomoc▒ protoko│u CHAP # client server secret dopuszczalny lokalny adres IP barney fred flintstone
Teraz kiedy masz ju┐ utworzone pliki /etc/ppp/options
i
/etc/resolv.conf
( i je╢li jest to konieczne pliki
/etc/ppp/pap|chap-secrets
) mo┐esz sprawdziµ poprawno╢µ
konfiguracji przez rΩczne zestawienie po│▒czenia PPP. (Kiedy bΩdziemy
potrafili zestawiµ po│▒czenie PPP rΩcznie, zautomatyzowanie ca│ego
procesu bΩdzie bardzo proste).
W tym celu tw≤j program komunikacyjny musi mieµ mo┐liwo╢µ zko±czenia pracy BEZ zerowania modemu. Minicom to potrafi - ALT Q (lub w starszych wersjacj CTRL A Q).
PamiΩtaj aby byµ zlogowanym jako root.
Uruchom program komuniikacyjny (np minicom), wybierz numer do serwera PPP i zaloguj siΩ jak zwykle. Je╢li do uruchomienia PPP wymagane jest wydanie specjalnego polecenia zr≤b to. Zobaczysz teraz ╢miecie o kt≤rych pisali╢my wcze╢niej.
Je╢li korzystasz z pap/chap, wtedy tu┐ po nawi▒zaniu po│▒czenia ze zdalnym serwerem powiniene╢ od razy zobaczyµ wspomniane ╢miecie, bez potrzeby logowania siΩ (choµ w niekt≤rych przypadkach mo┐e to byµ rozwi▒zane inaczej).
Teraz zako±cz pracΩ programu komunikacyjnego, bez zerowania linii (przerywania po│▒czenia modemowego) - je╢li u┐ywasz minicomu wci╢cnij ALT Q lub CTRL A Q. Nastepnie w wierszu zachΩty (jako root) napisz
pppd -d -detach /dev/cuaX &
Opcja -d w│▒cza odpluskwianie - rozpoczyna siΩ rozmowa maj▒ca na celu zestawienie po│▒czenia PPP. Jest ona rejestrowana w dziennikach (log files) co jest przydatne w razie k│opot≤w.
Naturalnie powiniene╢ apisaµ cua0
lub cua1
itd. -
prawdziw▒ nazwΩ portu do kt≤rego przy│aczony jest modem, nie cuaX!.
Diody twojego modemu powinny migotaµ podczas zestawiania po│▒czenia PPP. Samo zestawienie po│▒czenia trwa kt≤tk▒ chwilΩ.
W tym momencie mo┐esz przyj┐eµ siΩ interfejsowi ppp0 wydaj▒c polecenie
ifconfig
Poza inforamcjami o karcie Ethernetu (jelsi tak▒ posiadasz) i urz▒dzeniu o pΩtli zwrotnej powiniene╢ zobaczyµ cos takiego :-
ppp0 Link encap:Point-Point Protocol inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0
Gdzie
(naturalnie ifconfig nie przedstawi podanych przeze mnie numer≤w, lecz numery wykorzystywane przez serwer twojego dostawcy).
Uwaga: polecenie ifocnfig iformuje ciΩ r≤wnie┐ o tym, ┐e po│▒czenie jest zestawione (UP) i dziala (RUNNING).
Je╢li otrzymasz taki komunikat
ppp0 Link encap:Point-Point Protocol inet addr:0.0.0.0 P-t-P:0.0.0.0 Mask:0.0.0.0 POINTOPOINT MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0
to znaczy, ┐e po│▒czenie PPP nie zosta│o poprawnie zestawione... przeczytaj rozdzia│ o odpluskwianiu!
Powniene╢ rownie┐ m≤c zobaczyµ tabelΩ routingu z wprowadzon▒ tras▒ do serwera PPP i dalej. W tym celu wydaj polecenie
route -n>
Powiniene╢ zobaczyµ co╢ w tym stylu:-
Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0 127.0.0.0 * 255.0.0.0 U 3584 0 11 lo 10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0 default 10.144.153.3 * UG 1500 0 5 ppp0
Szczeg≤lnie wa┐ne jest to, ┐e do interfejsu ppp0 odnosz▒ siΩ dwie r≤┐ne pozycje.
Pierwsza oznacza trasΩ do KOMPUTERA (flaga H) i pozwala nam "widzieµ" komputer, do kt≤rego siΩ przy│▒czyl╢my - lecz nie dalej.
Druga oznacza domy╢ln▒ (default)
trasΩ - to jest trasa jak▒ wΩdruj▒
pakiety, kt≤re nie s▒ przeznaczne dla naszej sieci lokalnej lub
bezpo╢rednio dla samego serwera PPP. Serwer PPP jesr odpowiedzialny za
przekazywanie naszych pakiet≤w dalej do Internetu i przekazywanie nam
pakiet≤w przychodz▒cych do nas z odleg│ych adres≤w.
Je╢li twoja tabela routingu nie zawiera tych dw≤ch pozycji, to znaczy, ┐e co╢ jest nie tak (patrz rozdzia│ o odpluskwianiu).
Teraz przetestuj po│▒czenie 'pinguj▒c' serwer (numer IP przekazany przez polecenie ifconfig) tzn.
ping 10.144.153.51
Pwieniene╢ otrzymaµ podobn▒ odpowied╝.
PING 10.144.153.51 (10.144.153.51): 56 data bytes
64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms
Kolejne wiersze bΩd▒ pojawiaµ siΩ w niesko±czono╢µ, a┐ do momentu kiedy wci╢niesz CTRL C, a wtedy otrzymasz dodatkowe informacje :-
--- 10.144.153.51 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 170.7/219.2/328.3 ms
Jak na razie wszystko w porz▒dku.
Teraz spr≤buj 'pingn▒µ' komputer podaj▒c jego nazwΩ (nie nazwΩ serwera PPP lecz zupelnie innego komputer, kt≤rego nazwΩ znasz i kt≤ry jest w tej chwili w│▒czony do interentu). Np.
ping sunsite.unc.edu
Tym razem najpier nast▒pi kr≤tka przerwa, kiedy Linux zamienia nazwΩ na odpowiadaj▒cy jej numer korzystaj▒c z serwera DNS, kt≤rego numer wpisa│e╢ do pliku /etc/resolv.conf - wiΩc siΩ nie martw (powiniene╢ wiedzie╢ migaj▒ce ╢wite│ka swojego modemu). Kr≤tko potem zobaczysz cos podobnego do
PING sunsite.unc.edu (152.2.254.81): 56 data bytes
64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
Pwt≤rnie przerwij wciskaj▒c CTRL C, a zobaczysz statystyki
--- sunsite.unc.edu ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 169.8/176.3/190.1 ms
Je╢li nie otrzyma│e╢ ┐adnej odpowiedzi, przeczytaj rozdzia│ o odpluskwianiu.
Je╢li wszystko dzia│a│o poprawnie, przerwij po│▒czenie wydaj▒c polecenie
ppp-off
Po krt≤tkiej chwili modem powienien "od│o┐yµ s│uchawkΩ".
Je╢li to nie zadzia│a, albo wy│▒cz zasialanie modemu modem, lub uruchom sw≤j program komunikacyjny i przerwij po│▒czenie wciskaj▒c szybko +++, a gdy modem odpowie OK wydaj▒c polecenie ATH0.
Byµ mo┐e bΩdziesz zmuszony usun▒µ r≤wnie┐ pliki blokady (lock files) utworzone przez program pppd
rm -f /var/lock/LCK..cua?
Skrypt o kt≤rym mowa automatyzuje procedurΩ logowania siΩ i uruchamiania po│▒czenia PPP, tak aby administrator lub cz│onek grupy PPP do zestawienia po│▒czenia musia│ jedynie eydaµ polecenie ppp-on.
Je╢li tw≤j dostawca nie korzysta z PAP/CHAP, te skrypty s▒ dla ciebie.
Je╢li pakiet PPP jest zainstalowany poprawnie powiniene╢ byµ w posiadaniu dw≤ch przyk│adowych plik≤w. W przypadku PPP 2.1.2 bΩd▒ to
/usr/sbin/ppp-on
/usr/sbin/ppp-off
a w przypadku PPP-2.2
/etc/ppp/scripts/ppp-off
/etc/ppp/scripts/ppp-on
/etc/ppp/scriptsppp-on-dialer
Je╢li korzystasz z PPP 2.1.2 mocno namawiam ciΩ do usuniΩcia tych plik≤w. S▒ ╝r≤d│em potencjalnych klopot≤w - nie m≤w mi ┐e dzia│aj▒ poprwnie - korzysta│em z nich przez d│ugi czas i rekomendowa│em w pierwszej wersji tego dokuemntu.
Dla u┐ytkownik≤w PPP 2.1.2 przedstawiam LEPSZE wersje wzorcowe tych plik≤w, pobrane z dystrybucjie PPP 2.2. SugerujΩ skopiowanie i korzystanie z tych skrypt≤w zamiast startych skrypt≤w z wersji 2.1.2.
Pierwszy z PARY skrypt≤w, uruchamiaj▒cy po│▒czenie.
#!/bin/sh # # Script to initiate a PPP connection. This is the first part of the # pair of scripts. This is not a secure pair of scripts as the codes # are visible with the 'ps' command. However, it is simple. # # These are the parameters. Change as needed. TELEPHONE=555-1212 # The telephone number for the connection ACCOUNT=george # The account name for logon (as in 'George Burns') PASSWORD=gracie # The password for this account (and 'Gracie Allen') LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0 REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0 NETMASK=255.255.255.0 # The proper netmask if needed # # Export them so that they will be available to 'ppp-on-dialer' export TELEPHONE ACCOUNT PASSWORD # # This is the location of the script which dials the phone and logs # in. Please use the absolute file name as the $PATH variable is not # used on the connect option. (To do so on a 'root' account would be # a security hole so don't ask.) # DIALER_SCRIPT=/etc/ppp/ppp-on-dialer # # Initiate the connection # # exec /usr/sbin/pppd debug /dev/ttySx 38400 \ $LOCAL_IP:$REMOTE_IP \ connect $DIALER_SCRIPT
A oto skrypt ppp-on-dialer:-
#!/bin/sh # # This is part 2 of the ppp-on script. It will perform the connection # protocol for the desired connection. # chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDT$TELEPHONE \ CONNECT '' \ ogin:--ogin: $ACCOUNT \ assword: $PASSWORD
Poniewa┐ nowe skrtypty s▒ podzielone na dwie czΩ╢cie, bedziemy je zmieniaµ po kolei.
Muszisz zmieniµ ten skrypt podaj▒c TW╙J identyfikator u teojego prowajdera, TWOJE haslo dla tego konta i numer telefonu TWOJEGO prowajdera.
Ka┐dy z wierszy postaci TELEPHONE=
tworzy zmienne kt≤rcy waro╢µ
to tekst wystΩpuj▒cy po prawej stronie znaku '='. (oczywi╢cie poza
wierszami komentarza). Popraw wszystkei te wiersze, aby zawiera│y
poprawn▒ inforamcje na temat twojego konta u dostawcy internetu.
Je╢li w pliku /etc/ppp/options
podajesz numery IP (je╢li
potrzebujesz to robiµ) to USU╤ ze skrypt≤w odpowiednie wiersze
zawieraj▒ce
$LOCAL_IP:$REMOTE_IP \
Upewnij siΩ r≤wnie┐, ┐e zmienna DIALER_SCRIPT wskazuje na pe│n▒
╢cie┐kΩ dostΩpu do skryptu, kt≤rego chcesz ostatecznie u┐ywaµ. WiΩc
je╢li przenios│e╢ ten skrypt w inne miejsce, lub zmieni│e╢ jego nazwΩ
pamiΩtaj o poprawieniu informacji w pliku ppp-on
.
Je╢li skonfigurowa│e╢ pp-on
poprawnie i tw≤j serwer PPP korzysta
z weryfikacj to┐szamo╢ci za pomoc▒ pary identyfikator/has│o, nie
musisz ju┐ modyfikowaµ skryptu ppp-on-dialer
!!!
Pomimo, ┐e port szeregowy mo┐e byµ konfigurowany w plikach startowych systemu (/etc/rc.serial), stwierdzi│em, ┐e dobrym pomys│em jest ponowne skonfigurowanie portu szeregowego w skrypcie ppp-on. W ten spos≤b moge wykorzystywaµ modem do innych cel≤w, i nie muszΩ pamiΩtaµ o konieczno╢ci sprawdzania aktualnej konfiguracji portu szeregowego.
Tu┐ przed wierszem uruchamiaj▒cym pppd dodaj
/bin/setserial /dev/cuaX spd_vhi
W ten spos≤b port szeregowy jest ostatecznie ustawiany za prΩdsko╢µ 115200 bps, zamiast 38400. Jest to poprawna prΩdko╢µ dla modem≤w 28.8k (i szybszych). Jednak┐e wiele modem≤w 14.4k nie potrafi skonfigurowaµ swojego interfejsu modem-kompueter na tak▒ prΩdko╢µ.
Sprawd╝ w dokumentacji modemu, je╢li maksymalna prΩdko╢µ modemu wynosi 38400, korzystaj z polecenia
/bin/setserial /dev/cuaX spd_normal
Podczas gdy skrypt ppp-on-dialer jest dobry dla serwera, kt≤ry automatycznie uruchamia pppd jak tylko zalogujesz siΩ na serwerze, niekt≤re systemy wymagaj▒ jawnego uruchomienia PPP.
Je╢li w celu uruchomienia PPP na serwerze musisz wydaµ okre╢lone
polecenie, MUSISZ poprawiµ skrypt ppp-on-dialer
.
Na KO╤CU skryptu (po wierszu z has│em) dodaj wiersz zawieraj▒cy parΩ expect send - tak▒ , kt≤ra bΩdzie oczekiwa│a na zachΩtΩ (uwaga na znaki o specjalnym znaczeniu w pow│oce Bournea - np $ , <@@formula> lub (otwieraj▒cy i zamykaj▒cy nawais kwadratowy).
Kiedy chat rozpozna zachΩte pow│oki, musi wydaµ polecenie, kt≤re uruchamia PPP na serwerze twojego dostawcy.
W moim przypadku serwer PPP korzysta ze standardowego wiersza zachety pow│aoki Bash
[hartr@kepler hartr]$
i wymaga aby w celu uruchomienia PPP na serwerze wyda│ polecenie
ppp
Zawsze dobrze jest przewidzieµ mo┐liwo╢ci pewnych pomy│ek. Dlatego w moim przypadku u┐ywam
hartr--hartr ppp
To znaczy - je╢li nie doczekamy siΩ zachΩty w okre╢lonym czasie wy╢lij znak enter i czekaj na zachΩte raz jeszcze.
Kiedy jeste╢ pewien, ze otrzyma│e╢ zachΩtΩ , wy╢lij ciag 'ppp'.
Uwaga: pamiΩtaj o doadniu znaku \ na ko±cu wiersza, tak aby chat nadal my╢la│, ┐e ca│y skrypt znajduje siΩ w jednym wierszu!
Niestety czΩ╢µ serwer≤w generuje bardzo zmienne zachΩty! Byµ mo┐e bΩdzisz musia│ zalogowaµ siΩ kilkakrotnie za pomoc▒ programu komunikacyjnego, zanim dokladnie zrozumiesz jak to jest i co mo┐na przyj▒µ za zachΩtΩ do wydania polecenia.
To jest drugi ze skrypt≤w, kt≤ry ostatecznie zestawia po│▒czenie PPP.
Uwaga: skrypt chat zawiera siΩ zwykle w jednym wierszu. Znaki '\' pozwalaj▒ na kontynuwanie jednego logicznego wiersza skryptu przez wiele fizycznych wierszy pliku (aby cz│owiek mog│ siΩ w tym lepiej po│apaµ) i nie tworz▒ same z siebie czΩ╢ci skryptu.
Dobrze jest siΩ temu przypatrzeµ z bliska, aby╢my dobrze rozumieli co tu siΩ dzieje.
Skrypt chat to sekwencja par "
oczekiwany ci▒g znak≤w
"
"
ci▒g znak≤w do
wys│ania"
. W szczeg≤lno╢ci zanim cokolwiek wy╢lemy
ZAWSZE czego╢ oczekujemy.
Je╢li mamy co╢ wys│aµ, BEZ wstΩpnego oczekiwania na cokolwiek,
musimy u┐yµ putsego napisu oczekiwanego (oznaczanego w skryptach
tak: "
"
) i podobnie je╢li czekamy na
cos, lecz nie mamy zamiaru w odpowiedzi niczego wysy│aµ! R≤wnie┐ w
przypadku, napis sk│ada siΩ z kilku s│≤w (np. NO CARRIER), musimy
otoczyµ napis apostrofami tak aby char rozpozna│ go jako pojedynczy
element.
Wiersz chat w naszym wzorcu wygl▒da nastΩpuj▒co:-
exec chat -v
TIMEOUT 3
ABORT '\nBUSY\r'
ABORT '\nNO ANSWER\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
\\ \rAT
\OK-+++\c-OK\ ATH0
TIMEOUT 30
OK ATDT$TELEPHONE
CONNECT ''
ogin:--ogin: $ACCOUNT
assword: $PASSWORD
Pwy┐szy skrypt ma sensowne mo┐liwo╢ci radzenia sobie z niekturymi
sytuacjami wyj▒tkowymi. Sam program chat ma znacznie wiΩksze
mo┐liwo╢ci, zapoznaj siΩ ze stron▒ podrΩcznika, kt≤ra go dotyczy (man 8 chat
).
Je╢li tw≤j dostawca korzysta z mo┐liwo╢ci PAP/CHAP, wtedy tw≤j skrypt jest znacznie prostszy. Wszystko co muszisz zrobiµ to wybraµ numer, poczekaµ na po│▒czenie i pozwoliµ pppd na wej╢cie do systemu i zestawienie po│▒czenia PPP.
#!/bin/sh # # This is part 2 of the ppp-on script. It will perform the connection # protocol for the desired connection. # exec chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDT$TELEPHONE \ CONNECT '' \
Jak ju┐ to pokazali╢my, w programie pppd istnieje mo┐liwo╢µ w│▒czenia wyprowadzania i rejestracji komunikat≤w odpluskiwaj▒cych. S│u┐y do tego opcja -d lub debug.
Podczas uruchamiania nowego po│▒czenia PPP pozostaw w skrupcie opcjΩ -d. (Ostrze┐enie: jesli masz ma│o wolnej przestrzeni dyskowej w│▒czenie rejestracji odpluskwiaj▒cych pppd mo┐e bardzo szybko zape│niµ wolne miejsce i mo┐esz mieµ z tego powodu k│opoty - wystarczy aby nie uda│o ci siΩ po│▒czyµ, a bΩdziesz pr≤bowa│ nawi▒zaµ po│▒czenie jescze przez kila minut).
Kiedy bΩdziesz pewien, ┐e wszystko dzia│a poprawnie, mo┐esz j▒ wtedy usun▒c.
Je╢li swoj plik z opcjami ppp nazwa│e╢ incaczej ni┐
/etc/ppp/options
lub /etc/ppp/options.ttySx
mo┐esz
go uaktywniµ podaj▒c jego nazwΩ w wierszu polece± jako warto╢µ opcji
-f programu pppd - np.
exec /usr/sbin/pppd debug -f options.myserver /dev/ttySx 38400 \
Otw≤rz nowy xterm (jesli pracujesz pod X) lub now▒ konsole tekstow▒ i zaloguj siΩ jako root.
W tej nowej sesji wydaj poleceni
tail -f /var/log/messages
(lub jaki tam jest tw≤j plik zawieraj▒cy komunikaty systemy)
W poprzednim oknie (konsoli wirtualne) wydaj polecenie
ppp-on &
(lub jak nazwa│e╢ zmienion▒ wersjΩ skryptu /usr/sbin/ppp-on). Je╢li nie uruchomi│e╢ skryptu w tle przez ako±czenie wiersza polece± znakiem & nie odzyskasz wiersza zachety do momentu zamkniΩcia po│▒czenia PPP.
Teraz prze│▒cz siΩ do konsolu, gdzie s▒ wy╢wietlane komunikaty systemu.
Zobaczysz cos podobnego (pod warunkiem, ┐e oprogram chat zosta│ uruchomiony z opcj▒ -v, a pppd z -d) ... s▒ to sekwencje rejestrowane przez program chat, po kt≤rych nastΩpuj▒ komunikaty wys│ane przez rozpoczynaj▒cy po│▒czenie PPP program pppd :-
Oct 21 16:09:58 hwin chat[19868]: abort on (NO CARRIER) Oct 21 16:09:59 hwin chat[19868]: abort on (BUSY) Oct 21 16:09:59 hwin chat[19868]: send (ATZ^M) Oct 21 16:09:59 hwin chat[19868]: expect (OK) Oct 21 16:10:00 hwin chat[19868]: ATZ^M^M Oct 21 16:10:00 hwin chat[19868]: OK -- got it Oct 21 16:10:00 hwin chat[19868]: send (ATDT722298^M) Oct 21 16:10:00 hwin chat[19868]: expect (CONNECT) Oct 21 16:10:00 hwin chat[19868]: ^M Oct 21 16:10:22 hwin chat[19868]: ATDT722298^M^M Oct 21 16:10:22 hwin chat[19868]: CONNECT -- got it Oct 21 16:10:22 hwin chat[19868]: send (^M) Oct 21 16:10:22 hwin chat[19868]: expect (ogin:) Oct 21 16:10:22 hwin chat[19868]: 57600^M Oct 21 16:10:23 hwin chat[19868]: ^[[;H^[[2J^M^M Oct 21 16:10:23 hwin chat[19868]: ^M Oct 21 16:10:23 hwin chat[19868]: ^M Oct 21 16:10:23 hwin chat[19868]: ^I^I This is node kepler.hedland.edu.au^M Oct 21 16:10:23 hwin chat[19868]: ^I^I^I at Hedland Campus^M Oct 21 16:10:23 hwin chat[19868]: ^I^I^I Hedland College^M Oct 21 16:10:23 hwin chat[19868]: ^M Oct 21 16:10:23 hwin chat[19868]: ^I^I Authorised user ONLY are to use this system^M Oct 21 16:10:23 hwin chat[19868]: ^M Oct 21 16:10:23 hwin chat[19868]: ^M Oct 21 16:10:23 hwin chat[19868]: ^I^I For more information, contact ComputerSystems^M Oct 21 16:10:23 hwin chat[19868]: ^I^I^I on +61 (0)91 72 0400^M Oct 21 16:10:23 hwin chat[19868]: ^I^I^I^I or^M Oct 21 16:10:23 hwin chat[19868]: ^I^I email: help@hedunx.hedland.edu.au^M Oct 21 16:10:23 hwin chat[19868]: ^M Oct 21 16:10:23 hwin last message repeated 3 times Oct 21 16:10:23 hwin chat[19868]: kepler login: -- got it Oct 21 16:10:23 hwin chat[19868]: send (hartr^M) Oct 21 16:10:23 hwin chat[19868]: expect (ssword:) Oct 21 16:10:23 hwin chat[19868]: hartr^M Oct 21 16:10:23 hwin chat[19868]: Password: -- got it Oct 21 16:10:23 hwin chat[19868]: send (??????^M) Oct 21 16:10:23 hwin chat[19868]: expect (hartr) Oct 21 16:10:23 hwin chat[19868]: ^M^M Oct 21 16:10:24 hwin chat[19868]: Last login: Sat Oct 21 14:55:53 on ttyC0^M Oct 21 16:10:24 hwin chat[19868]: ^M Oct 21 16:10:24 hwin last message repeated 9 times Oct 21 16:10:24 hwin chat[19868]: ^I^IYou have logged into node kepler.hedland.edu.au^M Oct 21 16:10:24 hwin chat[19868]: ^M Oct 21 16:10:24 hwin chat[19868]: This is a Compaq Prolinea 486DX2/50 running Linux 1.1.54^M Oct 21 16:10:24 hwin chat[19868]: ^M Oct 21 16:10:24 hwin chat[19868]: This computer operates as the main Hedland Campus communications^M Oct 21 16:10:24 hwin chat[19868]: ^I node, providing dial-in terminal and SLIP access,^M Oct 21 16:10:24 hwin chat[19868]: ^I^I Kepler also runs the Hedland end of^M Oct 21 16:10:24 hwin chat[19868]: ^I^I the Hedland/Newman inter-Campus WAN link^M Oct 21 16:10:24 hwin chat[19868]: ^M Oct 21 16:10:24 hwin chat[19868]: ^M Oct 21 16:10:24 hwin chat[19868]: [hartr -- got it Oct 21 16:10:24 hwin chat[19868]: send (ppp^M) Oct 21 16:10:27 hwin pppd[19872]: pppd 2.1.2 started by root, uid 0 Oct 21 16:10:27 hwin pppd[19873]: Using interface ppp0 Oct 21 16:10:27 hwin pppd[19873]: Connect: ppp0 <--> /dev/cua1 Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 1, id 1. Oct 21 16:10:27 hwin pppd[19873]: LCP: sending Configure-Request, id 1 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(LCP): Rcvd id 1. Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MRU Oct 21 16:10:27 hwin pppd[19873]: (1500) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ASYNCMAP Oct 21 16:10:27 hwin pppd[19873]: (0) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MAGICNUMBER Oct 21 16:10:27 hwin pppd[19873]: (a098b898) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd PCOMPRESSION Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ACCOMPRESSION Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: returning CONFACK. Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 2, id 1. Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfack(LCP): Rcvd id 1. Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1. Oct 21 16:10:27 hwin pppd[19873]: IPCP: sending Configure-Request, id 1 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 1. Oct 21 16:10:27 hwin pppd[19873]: ipcp: received ADDR Oct 21 16:10:27 hwin pppd[19873]: (10.144.153.51) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: ipcp: received COMPRESSTYPE Oct 21 16:10:27 hwin pppd[19873]: (45) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: ipcp: returning Configure-ACK Oct 21 16:10:28 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 1. Oct 21 16:10:30 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1. Oct 21 16:10:30 hwin pppd[19873]: IPCP: sending Configure-Request, id 1 Oct 21 16:10:30 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 255. Oct 21 16:10:31 hwin pppd[19873]: ipcp: received ADDR Oct 21 16:10:31 hwin pppd[19873]: (10.144.153.51) Oct 21 16:10:31 hwin pppd[19873]: (ACK) Oct 21 16:10:31 hwin pppd[19873]: ipcp: received COMPRESSTYPE Oct 21 16:10:31 hwin pppd[19873]: (45) Oct 21 16:10:31 hwin pppd[19873]: (ACK) Oct 21 16:10:31 hwin pppd[19873]: ipcp: returning Configure-ACK Oct 21 16:10:31 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 255. Oct 21 16:10:31 hwin pppd[19873]: fsm_rconfack(IPCP): Rcvd id 1. Oct 21 16:10:31 hwin pppd[19873]: ipcp: up Oct 21 16:10:31 hwin pppd[19873]: local IP address 10.144.153.104 Oct 21 16:10:31 hwin pppd[19873]: remote IP address 10.144.153.51
(Zauwa┐, ┐e ja korzystam ze STATYCZNYCH numer≤w IP - dlatego m≤j komputer wys│a│ je do serwera - nie zobaczysz tego, je╢li korzystasz z dynamicznych numer≤w IP.)
To wygl▒da na poprawne po│aczenie, przyj┐yj siΩ temu dok│adnie ,zanim zaczniesz testowaµ po│▒czenie przez 'pingowanie' numer≤w ip i komputer≤w.
Uruchom swoj▒ przegl▒darkΩ www lub cokolwiek - jeste╢ pod│▒czony do Internetu!
Kiedy po│▒czenie PPP nie jest ju┐ ci potrzebne, zamykasz je wydaj▒c ztandardowe polecenie ppp-off (pamiΩtaj musisz byµ administratorem lub nale┐eµ do grupy PPP).
W pliku dziennika powinno znale╝µ siΩ co╢ takiego:-
Oct 21 16:10:45 hwin pppd[19873]: Interrupt received: terminating link Oct 21 16:10:45 hwin pppd[19873]: ipcp: down Oct 21 16:10:45 hwin pppd[19873]: default route ioctl(SIOCDELRT): Bad address Oct 21 16:10:45 hwin pppd[19873]: fsm_sdata(LCP): Sent code 5, id 2. Oct 21 16:10:46 hwin pppd[19873]: fsm_rtermack(LCP). Oct 21 16:10:46 hwin pppd[19873]: Connection terminated. Oct 21 16:10:46 hwin pppd[19873]: Exit.
Nie mart siΩ komunikatem SIOCDELRT
- to tylko pppd informuje, ┐e
ko±czy pracΩ, nie ma siΩ czym martwiµ.
Istnieje wiele przyczyn, dlaczego twoje po│▒czenie nie mo┐e zostaµ nawi▒zane - program chat nie potrafi poprawanie wej╢µ do sysytemu, masz liniΩ telefoniczn▒ o bardzo z│ej jako╢ci itp. Przegl▒daj pliki dziennik≤w, tam znajdziesz wskaz≤wki.
BARDZO czΩstym b│Ωdem jest zwyk│a liter≤wka w skryptach lub plikach konfiguracyjnych. Muszisz je sprawdziµ bardzo dok│adnie - pamiΩtaj, ┐e ludzie maj▒ tendencjΩ do odczytywania tego, o czym MYªLIMY, ┐e jest napisane - a nie tego co w rzeczywisto╢ci siΩ tam znajduje!
Mo┐e chcesz u┐ywaµ PPP 2.2 z j▒drem 1.2.x lub PPP-2.1.2 z j▒drem 1.3.X/2.0.X. - u┐ywaj odpowiedniej wersji PPP.
Przeczytaj PPP FAQ (dokument, kt≤ry jest seri▒ pyta± i odpowiedzi). To jest bardzo obszerny dokumen i mo┐na tam znale╝µ mn≤stwo odpowiedzi. Z mojego (smutnego) do╢wiadczenia wiem, ┐e je╢li nie znajdΩ tam odpowiedzi na moj problem, to nie jest to problem zwi▒zany z PPP. W moim przypadku by│o to korzystanie z j▒dra w wersji ELF lecz ze starymi wersjami modu│ow. Straci│em jedynie 2 dni (i wiΩksz▒ czΩ╢µ jednej nocy)
Je╢li korzystasz z j▒dra 1.3.x/2.0.x to skompilowa│e╢ wpierw obs│ugΩ modu│≤w, potem modu│ PPP i zainstalowa│e╢ modu│y - prawda ?
Je╢li nie korzystasz z programu kerneld do automatycznego │adowania modu│ow, wtedy zanim zaczniesz uruchamiaµ PPP musisz samemu za│adowaµ modu│ j▒dra (i prawdopodobnie r≤wnie┐ modu│ obs│ugi port≤w szeregowych).
Mo┐esz t ozrobic rΩcznie - jako root, napisz
insmod ppp
Mo┐e siΩ zdarzyµ, ┐e wpierw musisz za│adowaµ modu│ obs│ugi port≤w szeregowych...
insmod slhc
Najlepije jednak korzystaµ z automatycznego │adowania modu│≤w, przeczytaj kerneld mini-howto!
Mog│o siΩ jescze tak zdarzyµ, ┐e korzystasz z ppp-2.1.2 z j▒drem w wersji 2.0.x (lub uzywasz ppp-2.2 z j▒drem 1.2.x bez na│o┐onych odpowienich │atek).
Sprawd╝ wersjΩ j▒dra i PPP! Powt≤rzΩ raz jescze:-
J▒dro Linuxa w wersji 2.0.x WYMAGA ppp-2.2.
J▒dro Linuxa w wersji 1.2.x dzia│a z ppp-2.1.2 lecz po na│o┐eniu odpowiednich │at mo┐e wsp≤│pracowac r≤wnie┐ z ppp-2.2.
Posiadasz sieµ lokaln▒ Ethernet (lub inn▒) z ju┐ wprowadzon▒ pozycj▒ domy╢lnej trasy.
Rozdzia│ na temat 'ú▒czenie dw≤ch sieci za pomoca PPP' omawia w skr≤cie poprawne rozwi▒zanie tego problemu.
Problem polega na tym, ┐e nie mo┐esz mieµ wiecej ni┐ jedn▒ pozycjΩ dotycz▒c▒ domy╢lnej trasy. Domy╢lna trasa oznacza trasΩ kt≤r▒ s▒ wysy│ane wszystkie pakiety, kt≤re nie zosta│y zakwalifikowane na konkretn▒ trasΩ. Og≤lnie rzecz bior▒c domy╢lna trasa wskazuje na trasΩ prowadz▒ca od twojego komputera do Internetu.
Niestety niekt≤re dystrybucje Linuxa ustawiaj▒ domy╢ln▒ trasΩ w ten spos≤b, ┐e wskazujΩ ona na lokaln▒ sieµ Ethernetu. W takim przypadku bΩdziesz musia│ zmieniµ spos≤b w jaki jest inicjowany system w czΩ╢ci dotycz▒cej konfuguracji urz▒dze± sieciowych i definiowania tabelei routingu tak, aby by│y dodawane tylko specyficzne trasy do konkretnych komputer≤w lub podsieci.
Informacje na ten temat mo┐na znale╝µ w dokumentach NET2-HPWTP, NET-3_HOWTO (po polsku) i Linux Network Administration Guide.
Zasadniczo nie ma ┐adnej r≤┐nicy pomiΩdzy │▒czeniem pojedynczego komputera PC z Linuxem z serwerem PPP, a │▒czeniem dw≤ch sieci LAN za pomoc▒ PPP na dw≤ch komputerach nale┐▒cych do tych sieci. PamiΩtaj, PPP to protok≤│ ka┐dy-z-ka┐dym.
Jednak┐e ABSOLUTNIE musisz rozumieµ w jaki spos≤b konfigurowane s▒ tablice routingu. Przeczytaj NET2-HOWTO (NET-3-HOWTO) i Linux Netwoek Administrator Guide (NAG). Nieocenion▒ pomoc mo┐e r≤wnie┐ dostarczyµ ksi▒┐ka " TCP/IP Network Administration" (wydana przez O'Reilly and Assoc - ISBN 0-937175-82-X).
W celu po│▒czenia dw≤ch sieci LAN musisz u┐ywaµ dw≤ch r≤┐nych adres≤w sieci IP (lub dw≤ch r≤┐nych podsieci tej samej sieci) oraz bΩdziesz musia│ u┐ywaµ statycznych numer≤w IP - lub korzystaµ z IP masquerade. Je╢li chcesz korzystaµ z IP masquerade instrukcje na temat korzystania z tej funkcji znajdziesz w IP masquerade howto.
Musisz uzgodniµ z administratorem drugiej sieci LAN, kt≤rych adres≤w IP bΩdziecie u┐ywaµ do zestawienia po│▒czenia PPP. Je╢li korzystacie ze statycznych numer≤w IP, bΩdziez prawdopodobnie zmuszony do dzwonienia pod okre╢lony numer.
NastΩpnie popraw odpowiedni plik /etc/ppp/options[.ttyXX]
-
dobrym pomys│em jest posiadanie modemu i portu konkretnie dla tego
po│▒czenia. To mo┐e r≤wnie┐ wymagaµ poprawienia pliku
/etc/ppp/options
, a byµ mo┐e r≤wnie┐ utworzenia plik≤w
options.ttyXX dla innych po│▒cze± PPP.
Zapisz w odpowiednim pliku opcji adres IP twojego ko±ca po│▒czenia, zgodnie z przedstawionym wcze╢niej przyk│adem zestawiania po│▒czenia PPP ze statycznymi adresami IP.
Muszisz sprawiµ aby pakiety z twojej lokalnej sieci by│y przesy│ane przez zestawione po│▒czenie PPP. Jest to proces dwuetapowy.
Na pocz▒tku musisz trasΩ od komputera zestawiaj▒cego po│▒czenie PPP do sieci znajduj▒cej siΩ na drugim ko±cy tegto po│▒czenia. Je╢li jest to po│▒czenie z internetem, mo┐e byµ obs│u┐one przez domy╢ln▒ trasΩ wprowadzon▒ do tabeli routingu przez program pppd na twoim ko±cu po│▒czenia jako realizacja opcji 'defaultroute'.
Je╢li ma to byµ jedynie po│▒czenie dw≤ch sieci LAN, wtedy nale┐y dla konkretnej sieci dodaµ pozycjΩ w tabeli trasowania. S│u┐y do tego polecenie 'route' umiesczone w skrypcie /etc/ppp/ip-up (patrz Po zestawieniu po│▒czenia... , tam znajdziesz instrukcje, jak to zrobiµ).
Drug▒ rzecz▒ jak▒ musisz zrobiµ jest powiadomienie innych komputer≤w nale┐▒cych do twojej sieci lokalnej, ┐e tw≤j komputer sta│ siΩ 'bram▒' do odleg│ej sieci le┐▒cej po drugiej stronie po│▒czenia PPP.
Oczywi╢cie administrator sieci po drugiej stronie po│▒czenia musis zrobiµ to samo. Poniewa┐ bΩdzie on przesy│a│ pakiety do konkretnej sieci, wymagana bΩdzie pozycja tabeli routingu do konkretnej sieci, a nie pozycja domu╢lnej trasy (chyba, ┐e sieµ podrugiej stronie po│▒czenia │▒czy siΩ z Internetem w│a╢nie przez wasza sieµ).
Je╢li │▒czysz siΩ za pomoc▒ PPP z Internetem, lub cjo╢cby z drug▒ sieci▒ LAN, powiniene╢ pomy╢│eµ o bezpiecze±stwie. Mocno zalecam w│▒czenie firewalla.
Po zestawieniu po│▒czenia program pppd szuka skryptu
/etc/ppp/ip-up
. Je╢li istneije i jest wykonywalny, to zostaje
uruchomiony. W ten spos≤b mo┐esz zautomatyzowaµ wszelkie specjalne
polecenia ustawiania tabeli routingu, kt≤re mog▒ byµ niezbΩdne oraz
wszelki inne dzia│ania, kt≤re chcesz aby by│y wykonywane za ka┐dym
razem, gdy pol▒czenie PPP
To jest po prostu skrypt i mo┐esz w nim robiµ wszystko, co tylko skrypt poptrafi (tzn. mniej wiΩcej wszystko).
Na przyk│ad mo┐esz zmusiµ sendmail do opr≤┐nieia kolejki.
W podobny spos≤b mo┐esz umie╢ciµ polecenia, kt≤re za pomoc▒ protoko│u POP ponior▒ twoj▒ pocztΩ oczekuj▒c▒ na ciebie u dostawcy.
ú▒czenie za pomoc▒ PPP dw≤ch sieci LAN wymaga dodania do tbeli
routingu pozycji dla konkretnej podsieci. Mo┐na to │atwo zrealizowaµ w
pliku /etc/ppp/ip-up
. Trudno╢µ powstaje wtedy, gdy tw≤j
komputer obs│uguje wiele po│▒cze± PPP jednocze╢nie.
Dzieje siΩ tak, dlatego, ┐Ω skrypt /etc/ppp/ip-up
jest
wykonywany dla ka┐dego zestawionego po│▒czenia ppp, datego musisz
szczeg≤lnie ostro┐nie uruchamiaµ polecenia modyfikuj▒ce tabele
trasowania dla konkretnego po│▒czenia ppp.
Mo┐na to │atwo wykonaµ korzystaj▒c z mo┐liwo╢ci samej
pow│oki. Zwykle przez wykorzystanie polecenia 'case' na odpowiednim
parametrze przekazanym do skryptu przez program pppd. Poni┐esj skrypt
/etc/ppp/ip-up
/etc/ppp/ip-up
, kt≤rego u┐ywam do
obs│ugi po│▒cze± WAN i po│▒czenia z moj▒ domow▒ sieci▒ Ethernet
(obs│ugiwanego przez ten sam serwer).
#!/bin/bash # # Script which handles the routing issues as necessary for pppd # Only the link to Newman requires this handling. # # When the ppp link comes up, this script is called with the following # parameters # $1 the interface name used by pppd (e.g. ppp3) # $2 the tty device name # $3 the tty device speed # $4 the local IP address for the interface # $5 the remote IP address # $6 the parameter specified by the 'ipparam' option to pppd # case "$5" in # Handle the routing to the Newman Campus server 202.12.126.1) /sbin/route add -net 202.12.126.0 gw 202.12.126.1 # and flush the mail queue to get their email there asap! /usr/sbin/sendmail -q & ;; 139.130.177.2) # Our Internet link # When the link comes up, start the time server and synchronise to the world # provided it is not already running if [ ! -f /var/lock/subsys/xntpd ]; then /etc/rc.d/init.d/xntpd.init start & fi # Start the news server (if not already running) if [ ! -f /var/lock/subsys/news ]; then /etc/rc.d/init.d/news start & fi ;; 203.18.8.104) # Get the email down to my home machine as soon as the link comes up # No routing is required as my home Ethernet is handled by IP # masquerade and proxyarp routing. /usr/sbin/sendmail -q & ;; *) esac exit 0
W rezultacie podniesienia po│▒czenia PPP do naszego kampusu Newman i wykonania tego skryptu, otrzymujemy nastΩpuj▒c▒ tabelΩ trasowania (ten komputer jest r≤wnie┐ naszym serwerem dla przychodz▒cych po│acze± modemowych oraz obs│uguje nasze po│▒czenie z Internetem). Wstawi│em komentarze pomiΩdzy wiersze wydruku aby mo┐na by│o │atwiej wyja╢nik ka┐d▒ pozycjΩ :-
[root@kepler /root]# route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface # trasa do odleg│ego komputera-bramy do iternetu 139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4 # trasa do kampusowego komputer Newman 202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5 # trasa do mojego domogego komputera-bramy 203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3 # dwa zwykle po│▒czaenia PPP (ludzi , t≤rzy zadzwonili do serwera) 203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp2 203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp1 # trasa do sieci kampusowaej (za momputerem Newman) 202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5 # trasa do naszej lokalne sieci Ethernet (obejmuje dwie kolejne klasy C) 203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0 # trasa do urz▒dzenie pΩtli zwrotnej 127.0.0.0 * 255.0.0.0 U 3584 0 483 lo # domy╢lna trasa do interentu default 139.130.177.2 * UG 1500 0 3633 ppp4
W poprzedniej sesji powiedzieli╢my jak sobie radziµ z poczt▒ wychodz▒c▒ - po prostu opr≤┐niaµ kolejkΩ tu┐ po nawi▒zaniu po│▒czenia.
Je╢li posiadasz po│▒czenia WAN, mo┐esz uzgodniµ z administratorrem
zdalnej sieci LAN, aby robi│ dok│adnie to samo. Np. skrypt
/etc/ppp/ip-up
na komputerze Newman wygl▒da nastΩpuj▒co:-
#!/bin/bash # # Script which handles the routing issues as necessary for pppd # Only the link to Hedland requires this handling. # # When the ppp link comes up, this script is called with the following # parameters # $1 the interface name used by pppd (e.g. ppp3) # $2 the tty device name # $3 the tty device speed # $4 the local IP address for the interface # $5 the remote IP address # $6 the parameter specified by the 'ipparam' option to pppd # case "$5" in 203.18.8.4) /usr/sbin/sendmail -q ;; *) esac exit 0
Kiedy posiadasz jedynie │▒cze PPP z dynamicznym adresem IP, musisz wtedy pobieraµ pocztΩ ze swojego konta na komputerze distawcy ISP. Zwykle robi siΩ to za pomoc▒ protoko│u POP (Post Office Protocol). DostΩpny jset program o nazwie 'popclient', kt≤ry potrafi zautomatyzowaµ ca│▒ procedurΩ.
Po prostu zmodyfikuj odpowiednio skrypt /etc/ppp/ip-up
, tak
aby zawiera│ wywo│anie programu popclient. M≤j laptom, na kt≤ym dzia│a
RedHat Linux robi to tak:
popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail
Do pobierania nowinek (news≤w) mo┐esz wykorzystaµ slurp. Pamietaj, ┐e
ip-up
jest zwyk│ym skryptem pow│oki Bournea i mo┐e byµ
wykorzystany do KA»DEGO zadania, kt≤re musi byµ wykonane za k▒zdym
razem, gdy zestwimy po│▒czenie PPP.
Istniej▒cy skrypt /usr/sbin/ppp-off
powinien dzia│aµ
prawid│owo, kied jest u┐ywany przez administratora. Jednyn▒ zmianΩ
jak▒ mo┐esz chcieµ wprowadziµ jest opr≤┐nienie kolejki pocztowej, tu┐
przed zamkniΩceim │▒cza.
Pozostawiamy to jako µwiczenie domowe!
Co wiΩcej mo┐esz stworzyµ skrypt, kt≤ry bΩdzie uruchamianyza ka┐dym
razem, gdy zostanie zamkniΩte po│▒czenie PPP. Nale┐y go nazwav
/etc/ppp/ip-down
. Mo┐e byµ wykorzystany d oodwr≤cenia dzia│a±
jakie wykona│es w skrypcie /etc/ppp/ip-up
.
Je╢li masz po│▒czenie z sieci▒ LAN, lecz nadal chcesz korzystaµ na swio komputerze z PPP, musisz pamiΩtaµ aby prawid│owo ustawiµ tabele routingu, tak aby pakiety doceira│y zar≤wno do komputera na drugim ko±cu po│▒czenia PPP i dalej, ale r≤wnie┐ do komputer≤w w lokalnej sieci LAN.
NIE chcemy ciΩ uczyµ zasad trasowania - m≤wimy jedynie o prostym, specyficznym przypadku trasowania statycznego.
Je╢li NIE wiesz co to jest trasowanie mocno zlecam przeczytanie Linux Network Administrator Guide (NAG). W brdzo przystΩpny spos≤b porusza te problemy ksi▒┐ka "TCP/IP Network Administration" wydawnictwa O'Reilly.
Podstawow▒ zasad▒ trasowania statycznego jest to, aby trasa domy╢lna (default) prowadzi│a do NAJWIEKSZEJ liczby adres≤w komputerowych. W przpadku innych sieci nale┐y dodawaµ do tabeli trasowania konkretne pozycje.
JEDYNYM przypadkiem, kt≤ry chcia│bym om≤wiµ jest sytuacja, gdy tw≤j Linux jest przy│▒czony do sieci LAN, kt≤ra nie jest prz│▒czona do Internetu - a ty chcesz │▒czyµ siΩ ze swoim dostawc▒ Internetu bΩd▒c ca│y czas przy│▒czony do sieci LAN.
Po pierwsze upewnij siΩ, ┐e trasa do wojej sieci Ethernetowej jest tras▒ do konkretnej sieci, a nie tras▒ domy╢ln▒!.
Sprawd╝ to wydaj▒c polecenie route, powiniene╢ zobazcyµ co╢ takiego:
[root@hwin /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
loopback * 255.255.255.0 U 1936 0 50 lo
10.0.0.0 * 255.255.255.0 U 1436 0 565 eth0
Je╢li twoja karta sieciowa (urz▒dzenie eth0) jest wykorzystywane przez pozycjΩ domy╢│nej trasy (w pierwszej kolumnie bΩdzie s│owo "default", a w ostatniwej eth0) musisz zmodyfikowaµ skrypty inicjuj▒ce tw≤j system, w czΩ╢ci kt≤ra zajmuje siΩ inicjowaniem kart sieciowych i ustawianiem tabeli trasowania, tak aby ustawia│y trasΩ do konkretnej sieci, jak▒ jest rpzecie┐ twoja sieµ lokalna i nie wykorzystywa│y w tym celu trasy domy╢│nej (zobacz NET2-HOWTO, NET-3-HOWTO i NAG).
Powy┐sze zmiany pozwol▒ programowi pppd na dodawania domy╢lnej trasy prowadz▒cej do twojego dostawcy Internetu i dalej:-
[root@hwin /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
10.144.153.51 * 255.255.255.255 UH 488 0 0 ppp0
127.0.0.0 * 255.255.255.0 U 1936 0 50 lo
10.1.0.0 * 255.255.255.0 U 1436 0 569 eth0
default 10.144.153.51 * UG 488 0 3 ppp0
Zauwa┐y│e╢, ┐e dodawane s▒ dwie pozycje do tabeli, trasa bezpo╢rednio do samogo komputera ( 10.144.153.51), serwera PPP z kt≤rym siΩ pol▒czy│╢ i trasa domy╢│na przez interfejs ppp0 i serwer PPP jako bramΩ do internetu.
Je╢li twoja konfiguracja jest bardziej z│o┐ona - zapoznaj siΩ dokumentami, o kt≤rych wcze╢niej wspomina│em i skonsultuj siΩ ze swoim lokalnym ekspertem w wych sprawach.
Je╢li w twojej sieci s▒ ju┐ routery, masz ju┐ zapewne utworzone po│▒czenia do wiΩkszych sieci. Jednak NADAL powiniene╢ wykorzystywaµ trasΩ domy╢│na do po│▒cze± z internetem, a ewentualnie dodaµ nowe pozycje, dla tras do tych dalszych sieci, z kt≤ymi siΩ │▒czysz przez swoj▒ kartΩ sieciow▒.
Je╢li skonfigurujesz Linuxa w│▒czonego do lokalnej sieci LAN jako komputer │▒cz▒cy sie ┐ Internetem , otwierasz w ten spos≤b ca│▒ swoj▒ sieµ lokaln▒ na pr≤by penetracji z internetu. Zanim to zrobisz zalecamy konsultacje ze swoim administratorem sieci i zapoznanie siΩ z obowi▒zuj▒c▒ polityk▒ bezpiecze±stwa sieci. Je╢li tw≤j komputer zostanie wykorzsytany do zaatakowania sieci lokalnej, mo┐e ciΩ spotkac wiΩcej ni┐ z│o╢µ koleg≤w czy administrator≤w sieci. Mo┐esz popa╢µ w naprawdΩ powa┐ne k│opoty.
Zanim przy│▒czysz sieµ LAN do Internetu, zastan≤w siΩ czy nie wykorzystaµ pownej ochrony jaka daj▒ po│▒czenia z DYNAMICZNYM przydzia│em numer≤w IP - mo┐e warto zapoznaµ siΩ z ksi▒┐k▒ "Building Internet Firewalls" wydawnictwa O'Reilly.
Je╢li po│▒czenie PPP nadal nie dzia│a, przeczytaj ten dokument raz jeszcze, sprawd╝ wszystko dok│▒dnie, przyj┐yj siΩ komuniokatom w dziennikach generowanych przez program "chat -v" i "pppd -d".
Przeczytaj dokumentacje do PPP , FAQ na ten temat i inne dokumentu, o kt≤rych wspomina│em.
Je╢li nadal stoisz w miejscu, spr≤buj zadaµ pytanie na pl.comp.os.linux.
W szczeg≤lno╢ci - NIE WYSYLAJ MN╙STWA WYDRUK╙W ODPLUSKWIANIA DO GRUP NOWINKOWYCH, ANI POCZTA DO MNIE - to pierwsze zajmuje tylko │▒cza, a drugie zostanie od razu wrzucone do /dev/null (chyba, ┐e specjalnie o to poprosze).
Wielu dostawc≤w mog▒ wspomagaµ instalajΩ tylko tego oprogramowania, kt≤re dostarczaj▒ nowym u┐ytkownikom. Sa to zwykle programy po MS Windows :-( - wiele os≤b zajmuj▒cych siΩ pomaganiem nowym u┐ytkownikom nic nie wie na temat Unixa (czy Linuxa). Muszisz byµ przygotowany, ┐e w takij systuacji nie znajdziesz u nich pomocy.
Mog│by╢ zrobiµ takiej osobie przys│ugΩ i wyja╢niµ jej co nieco na ten temat (wiΩkszo╢µ os≤b pracuj▒cych przy pomaganiu ludziom powinna byµ rozs▒dna).
OK, twoje po│▒czenie PPP dzia│a poprawnie i mo┐esz 'pingn▒c' serwer PPP podaj▒c jefo numer IP (drugi lub oznaczony jako "remote" numer IP wy╢wietlony przez polecnie ifconfig ppp0), lez nie mo┐esz osi▒gn▒µ komputer≤w poza nim.
Po pierwsze spr≤buj 'pingn▒µ' numery IP, jakie poda│e╢ w pliku
/etc/resolv.conf
. Je╢li zadzia│a, to znaczy, ┐e mo┐esz wyj╢µ
poza serwer PPP (chyba, ┐e w /etc/resolv.conf jest w│a╢nie podany
numer IP serwera PPP). Spr≤buj teraz 'pingn▒c' pe│n▒ nazwe twojego
dostawcy - np.
ping komputer.mojego dostawcy.pl
Je╢li to nie zadzia│a, masz problem z rozwi▒zywaniem nazw. Mo┐e byµ
spowodowany liter≤wk▒ w pliku /etc/reslov.conf
. Sprawd╝ to
dokladnie z informacjami jakie sobie zanotowa│e╢ zanim zacz▒│e╢
onfigurowaµ PPP. Je╢li wszystko siΩ zgadza, zadzwo± do dostawcy i
dowiedz siΩ, czy poprawnie zapisa│es ten numer.
Je╢li nadal nie dzia│a (a tw≤j dostawca potwierdzi│ poprawno╢µ numeru serwera DNS i to, ┐Ω s▒ sprawne), problem le┐y gdzie╢ indziej. SugerujΩ sprawdzenie dok│adnie twojej instalacji linuxa (zwracaj▒csczeg≤ln▒ uwagΩ na atrybuty plik≤w).
Je╢li NADAL nie mo┐esz 'pingn▒µ' komputera swojego dostawcy podaj▒c jego nazwe, nie numer to mo┐e on byµ wy│▒czony (zadzwo± i siΩ dowiedz) albo twoj dostawca ma klopoty z trasowaniem (routingiem). Zadzwo± i sprawd╝ to.
Jedn▒ z mo┐│iwo╢ci jest sytuacja, kiedy zdalnym serwerem PPP jest linux, z wy│▒czon▒ w j▒drze opcj▒ przesy│ania pakiet≤w (IP forwarding).
Dobrym testem jest pr≤ba po│▒czenie siΩ za pomoc▒ oprogramowania, kt≤re on dostarcza (zwykle dla MS Windows). Je╢li wszystwo dzia│a poprawnie dla innego systemu operacyjnego i dokladnie tego samego konta u dostawcy, to znaczy, ┐e problem le┐y po stronie twojego Linuxa, a NIE dostawcy.
Je╢li korzystasz z pol▒czenia z dyamicznym przydzia│em numer≤w IP zobacz rozdia│ "Konfiguraja us│ug" poni┐ej.
Ponownie, je╢li korzystasz z pol▒czenia z dyamicznym przydzia│em numer≤w IP zobacz rozdia│ "Konfiguraja us│ug" poni┐ej.
Je╢li korzystasz z dynamicznych numer≤w IP (wielu dostawc≤w umo┐liwi ci korzystanie z PPP jedynie tylko w ten spos≤b, chyba, ┐e zap│acisz odpowiedno du┐▒ sumΩ pieniΩdzy) musisz sobie zdawaµ z ograniczΩµ jakie to ze sob▒ niesie.
Po pierwsze korzystanie z us│ug zewnΩtrznych dzia│a poprawnie. To znaczy mo┐esz wys│aµ poczte sendmailem, pobraµ pliki przez ftp, korzystaµ z www,fingera itp.
W szczeg≤lno╢ci mo┐esz odpowiadaµ na poczte, zostanie zmagazynowana podczas gdy nie by│o pol▒czenia i zostanie wy│ana tu┐ po jego nawi▒zaniu.
PamiΩtaj, ┐e tw≤j komputer nie ejst pod│▒czony do internetu przez 24 godziny, ani nie posiada przy ka┐dym po│▒czeniu tego samego numeru IP. Dlatego nie mo┐esz otrzymywaµ poczty bezpo╢rednio na sw≤j komputer i jest bardzo trudno umo┐liwiµ twoim kolegom przeg│adanie twojego serwera www czy ftp. Tak d│ugo kiedy m≤wimy o Interneie, tw≤j komputer nie istnieje jako pe│noprawny, unikalny, ca│y czas osi▒galny komputer internetowy poniewa┐ nie posiada jednoznacznego, sta│ego numeru IP (pamietaj, ┐e numer IP nie jest przydzielony do komputera tylko do linii telefonicznej, gdy nie jeste╢ po│▒czony z "twojgo" numeru IP korzysta kto╢ inny.
Je╢li uruchimisz serwer WWW (lub inna us│ugΩ), nikt o niej nie wie, CHYBA, ┐e kto╢ wie, ┐e tw≤j komputer jest w tej chwili pod│▒czony do internetu i zna numer IP, kt≤rego w danej chwili u┐ywasz. Tak▒ informacjΩ mo┐na zdobyµ na wiele sposob≤w, mo┐esz informowaµ ludzi telefonicznie, listowanie, zostawiµ ospowiednie inforamcje w pliku /.plan na komputerze dostawcy (pod warunkiem, ┐e masz dostΩp do interpertera).
Nie jest to problem wiΩkszo╢ci u┐ytkownik≤w. Oni chc▒ jedynie wysy│aµ i otrzymywaµ pocztΩ (korzystaj▒c z konta u dostawcy) i korzystaµ z internetowych serwer≤w WWW i ftp. Je╢li koniecznie MUSISZ mieµ mo┐liwo╢µ udostΩpniania w│asnych us│ug, powiniene╢ otrzymaµ statyczny numer IP. Albo pr≤bowaµ siΩ ratowaµ metodami opisanymi powy┐ej...
Nawet w przypadku korzystania z dynamicznych adres≤w IP, mo┐esz tak
skonfogurowaµ sendmail, aby wysy│a│ listy napisane lokalnie na twoim
komputerze. Konfiguracja sendmaila mo┐e byµ BARDZO trudna - nie mamy
zamiaru uczyµ ciΩ, jak to siΩ robi. Powieniene╢ skonfigurowaµ sendmail
podaj▒c jako "smart host" komputer pocztowy twojego dostawc (opcja
DS
w pliku /etc/sendmail.cf
). Szczeg≤│owe instrukcje na
temat konfiguracji sendmaila znajdziesz w jego dokumantacji - przyj┐yj
siΩ plikom m4, kt≤re wchodz▒ w sklad dystrybucji sendmaila. Na pewno
znajdziesz tam jeden, kt≤ry spe│ni twoje wymagania.
DostΩpne s▒ r≤wnie┐ wspania│e ksi▒┐ki na temat sendmaila, lecz zwykle nie nadaj▒ siΩ dla pocz▒tkuj▒cych u┐ytkownik≤w.
Je╢li ju┐ uda ci siΩ skonfigurowaµ sendmaila, bedziesz zapewne chcia│
tuz po nawi▒zaniu po│▒zcenia PPP op≤┐niaµ kolejkΩ z list≤w czekaj▒cyh
na wys│anie do adresat≤w gdzie╢ tam w internecie. W tym celu dodaj
do pliku /etc/ppp/ip-up
polecenie
sendmail -q &
Przychodz▒ca poczta jest problemem dla os≤b korzystaj▒cych z dynamicznych numer≤w IP. Rozwi▒zaniem jest :-
Mo┐esz zautomatyzowaµ ca│y ten proces umiesczaj▒c niezbΩdne polecenia
w pliku /etc/ppp/ip-up
(pisali╢my o tym wcz╢niej).
Choµ mo┐esz korzystaµ zserwera DNS, kt≤ry zapewnia ci tw≤j dostawca
ISP, mo┐esz r≤wnie┐ uruchomiµ lokalny serwer DNS (tylko buforuj▒cy)
w│▒czany przez sktypt ip-up
. Zalet▒ tego rozwi▒zania jest
osczΩdno╢µ czasu i │▒cza w przypadku czΩstego nawi▒zywania po│▒cze± z
tymi samymi komputerami.
Konfiguracja serwera DNS do pracy w trybie buforowania jest ca│kiem
prosta (opcja forwarders w pliku /etc/named.boot
wskazujaca
serwer DNS twojego dostawcy). Ksi▒┐ka wydawnictwa O'Reilly "DNS and
Bind" odpowie na wszelkie twoje pytania.
DostΩpny jest r≤wnie┐ dokument DNS-HOWTO.
Jeden z punkt≤w Netykiety m≤wi: zanim zaczniesz u┐ywaµ drugorzΩdnego serwera DNS do buforowania, wewn▒trz domey twojego dostawcy, spytaj go wpierw o pozwolenie. Poprawnie skonfigurowany serwer DNS nie jest problemem dla twego dostawcy, lecz je╢li pope│nisz ajki╢ b│▒d, mo┐e wtedy sprawiaµ k│opoty.
Jak ju┐ wspomina│em istnieje wiele metod na wykonanie tego zadania. To co chcΩ zaprezentowaµ to spos≤b, kt≤rego u┐ywam (korzystaj▒c z wieloportowej karty Cycades i kilku linii telefonicznych na wspolnym numerze).
Je╢li ci siΩ nie spodoba, mo┐esz to zrobiµ na sw≤j spos≤b. Zawsze chΩtnie w kolejnych wersjach tego dokumentu umieszczΩ inne sprawdzone metody. Je╢li znasz tak▒ przy╢lij mi jej opis wraz ze swoimi uwagami.
PamiΩtaj, ze w tej czΩ╢ci m≤wimy jedynie o konfiguracji Linuxa jako sewera PPP. Nie zamierzam kiedykolwiek umieszczaµ tutaj informacji o konfigurowaniu specjalnych terminali dostΩpowych i innych tego typu zabawek.
Czekaj▒ mnie jescze eksperymenty z shadow password. Aktualnie prezentowane informacje NIE zawieraj▒ ┐anych udogoniej jakie mo┐na uzyskaµ korzystaj▒c z shadow password.
Wszelki wcze╢niejsze uwagi na temat wersji j▒dra i pakietu PPP s▒ nadal aktualne. Zk│adam, ┐e przeczyta│e╢ poprzednie rozdzia│y.
MUSISZ w│▒czyµ w j▒rdze orzesy│anie pakiet≤w (IP forwarding). Mo┐e to byµ dobry moment do w│▒czenia r≤wnie┐ takich udogodniej jak zliczanie pakiet≤e (accounting) i firewall.
Je╢li korzystasz z kart wieloportowych muszisz oczywiscie korzystaµ z ich drajwer≤w.(zobacz Serial-JTZ).
Oferujemy konta PPP (i SLIP) oraz konta zwyk│e sprawdzaj▒c to┐samo╢µ za pomoc▒ identyfikatora i has│a. Jest to dla nas u│atwieniem, poniewa┐ uzytkownik korzystaj▒c z jednego konta ma dostΩp do wszystkich us│ug.
Poniewa┐ jestemy organizacj▒ edukacyjn▒, nie pobieramy op│at za korzystanie z systemu i nie musimy siΩ martwiµ o zliczanie ruchu i naliczanie op│at.
Firewall dzia│aj▒cy pomiΩdzy nasz▒ sieci▒ a internetem ogranicza dostΩp naszysch u┐ytkownik≤w do wybranych us│ug internetowych, poniewa┐ │▒cz▒c siΩ z naszym serwerem pracuj▒ wewn▒trz naszej sieci, lecz nie bΩdzeimy tutaj rozwijaµ tego tematu.
Proces uruchomie po│▒czenia PPP przez uzytwkonika posiadaj▒cego onto na serwerze wygl▒da nastΩpujaco:-
ppp
kt≤re uruchamia PPP
na serwerze.
Serwer korzysta z indywidualnych plik≤w
/etc/ppp/options.ttyXX
ka┐dego portu wej╢ciowego, gdzie jest
zapisany zdalny numer IP (dynamiczny przydzia│ numer≤w IP). Do
zapewnienia komunikacji z komputerami sieci lokalnej i koputerem po
drygiej stronie po│▒czenia PPP serwer korzysta z proxyarp (w│▒czonej
przez odpowiedni▒ opcjΩ pppd) unikaj▒c uruchomienia takich program≤w
jak routed lub gated.
Kiedy u┐ytkownik zamyka po│▒czenie PPP, pppd na serwerze to wykrywa, poleca modemowi przerwaµ po│▒czenie likwiduj▒c w tym samym czasie │▒cze PPP.
Potrzebne bΩd▒ nastΩpuj▒ce programy:-
Zanim skonfigurujesz sw≤j komputer jako serwer PPP, musi on wpierw umo┐liwiaµ dostΩp u┐ytkownikom di uch kont.
Nie zamieszcamy w tym dokumencie informacji jak to zrobiµ. Przeczytaj dokumentacjΩ programu getty i Serial-JTZ.
Musisz stworzyµ plik z opcjami dotyczacymi wszystkich po│▒cze±
/etc/ppp/options
. My u┐ywamy takich opcji:
asyncmap 0 netmask 255.255.254.0 proxyarp lock crtscts modem
Zauwa┐, ┐e NIE korzystamy z trasowania - a w sczeg≤lno╢ci nie ma domy╢lnej trasy, poniewa┐ jako serwer PPP powiniene╢ jedynie zapewniµ przesy│anie pakiet≤w z komputer klienta do Internetu i twojej sieci lokalnej i z Internetu (sieci lokalnej) do komputera klienta.
Wszystko co jest wymagane do realizacji tego celu, to trasa do komputer klienta i u┐ycie opcjie 'proxyarp' w programi pppd.
Opcja 'proxyarp' dodaje do tabeli apr serwera PPP ppozycj▒ proxy arp (ju┐ wszystko jasne :), kt≤ra powiadamia komputery sieci lokalnej, ┐e wszystkie pa kiety przeznaczone dla klineta PPP nale┐y przesy│aµ bezpo╢rednio do serwera - nie mo┐na jej niestety u┐yµ przy routingu pakiet≤w pomiΩdzy dwiema sieciami LAN - muszisz dodaµ do tabeli routingu odpowiednie trasy.
Prawdopodobnie chcesz aby u┐ytkownicy twojego serwera PPP korzystali z
dysnamicznego przydzielania adres≤w IP. Mo┐na to osi▒gn▒µ przypisuj▒c
ka┐demu portowi szeregowemu inny adres IP. Zrobisz to umieszczaj▒c
odpowiedni▒ inforamacje w plikach /etc/ppp/options.ttyXX
.
Po prostu umie╢µ tam lokalny muer IP (serwera PPP) i numer IP, kt≤ry ma byµ wykorzystywany przez ten port. Np.
kepler:slip01
Poniewa┐ uruchomienie po│▒zeniea PPP jest zwi▒zane z konfiguracj▒ urz▒dze± sieciowych i manipulowaniem tabel▒ routingu, dlatego wymagane s▒ do tego specjalne uprawnienia - w rzeczywisto╢ci uprawnienia administratora.
Na szczΩ╢ci pppd zosta│ zaprojektowany do takiego u┐ycia i mo┐emy w│▒czyµ bit suid root. Musisz po prostu wydaµ polecenie
chmod u+s /usr/sbin/pppd
Teraz atrybuty tego pliku powinny wyg│adaµ tak
-rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
Je╢li tego nie zrobisz, twoi u┐ytkownicy nie bΩd▒ mogli uruchomiµ po│▒czenia PPP.
Aby upro╢ciµ u┐ytkownikom pewne dzia│ania, w pliku
/etc/bashrc
tworzymy globalny alias, tak aby proste polecenie
uruchamia│o ca│▒ procedurΩ PPP po stronie serwera.
This looks like
alias ppp="exec /usr/sbin/pppd -detach"
Co to znaczy?
w
mniej wiΩcej tak
6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.00 User tty login@ idle JCPU PCPU what hartr ttyC0 3:05am 9:14 -
I to ju┐ wszystko... m≤wi│em, ┐e zrobienie prostego serwera PPP jest banalne.
TO jest jeszcze prostsze - nie ma modemu to znaczy nie trzeba dzwoniµ.
Po pierwsze wybierz ,kt≤ry kompter bΩdzie pracowa│ jako 'serwer'. Muszisz skonfigurowaµ na porcie szeregowym getty, aby╢ mog│ za pomoc▒ minicomu przetestowaµ po│▒czenie z drugiego komputera.
Je╢li po│▒czenie miΩdzy portami dzia│a poprawnie, mo┐esz usun▒µ niepotrzebne getty, CHYB, ┐e chcesz aby to po│▒czenie bylo weryfikowane przez identyfikator i has│o. Poniewa┐ masz kontrolΩ nad oby komputerami podej┐ewam, ┐e nie jest ci to potrzebne.
Teraz, na serwerze nale┐y usun▒µ getty i upewniµ siΩ, ┐e porty na obu komputerach s▒ skonfigurowane tak samo.
Teraz musisz tylko ruchomiµna obu systemach pppd. Zak│adam, ┐e po obu stronach bΩdzie to port /dev/cua4. Na oby komputerach wydaj polecenie :-
pppd -detach crtscts lock <local IP>:<remote IP> /dev/cua4 38400 &
Spowoduje to zestawienie po│▒czenia - lecz nie masz jescze poprawionych tabel routingu. Mo┐esz przetestowaµ po│▒czenie 'pinguj▒c' komputery nawzajem, a nastΩpnie zamkn▒µ po│▒czeni zabijaj▒c jeden z proces≤w pppd.
Routing jaki jest potrzebny zale┐y od tego co tak naprawdΩ chcesz robiµ. Zwykle jeden z komputer≤w bΩdzie przy│▒czony do Ethernetu, a przez to do Internetu, wiΩc wymagany routing jest taki sam, jak w przypadku serwera i klienta PPP.
Na komputerze wyposarzonym w kartΩ Ethernetu nale┐y wydaµ polecenie
pppd -detach crtscts lock proxyarp <local IP>:<remote IP> /dev/cua4 38400 &
a na tym drugim
pppd -detach crtscts lock defaultroute <local IP>:<remote IP> /dev/cua4 38400 &
ppp-on
i ppp-off
w dok│adnie taki sam
spos≤b, jaki zosta│ opisany wcze╢niej.
Robert Hart
Port Hedland, Western Australia
August 1996
Zdaje sobie sprawΩ, ┐e niniejsze t│umaczenie zawiera mn≤stwo b│Ωd≤w. Niestety nie jestem w stanie dok│adnie sprawdziµ ca│Ωgo dokumentu i ╢wiadomie pozostawiam tΩ pracΩ czytelnikowi. BΩdΩ wdziΩczny za wszelkie uwagi na temat tego dokumentu, wytykanie b│Ωd≤w, liter≤wek, sk│adni i wszelkie inne, kt≤re mog▒ przyczyniµ siΩ do jego ulepszenia.
Wszelkie tego typu uwagi proszΩ przesy│aµ na adres piotr.pogorzelski@ippt.gov.pl
Inne przet│umaczone dokumenty mo┐na znale╝µ na stronie http://www.jtz.org.pl/. Zapraszamy!.
piotr.pogorzelski@ippt.gov.pl.