Linux PPP HOWTO <author>Robert Hart, <tt/hartr@interweft.com.au/, prevedel Borut Mrak <tt/borutm@bigfoot.com/ <date>v3.0, 31. marec 1997, prevod 7. avgust 1998 <abstract> Ta dokument opisuje, kako se z vašim osebnim računalnikom, na katerem teče Linux, povezati s PPP strežnikom, kako uporabiti PPP za povezavo dveh lokalnih omrežij in podaja eno metodo uporabe vašega računalnika kot PPP strežnik. Poleg tega dokument ponuja tudi pomoč pri usposabljanju nedelujočih PPP povezav. </abstract> <!-- Table of contents --> <toc> <sect>Predstavitev <p> PPP (Point to Point Protocol - protokol od točke do točke) je protokol za ustvarjanje in poganjanje IP (Internet Protocol) in drugih omrežnih protokolov na serijskih povezavah - naj bo to direktna serijska povezava (z uporabo null-modem kabla), zveza vzpostavljena preko telneta ali povezava z modemi in telefonskimi linijami (in seveda digitalnimi linijami kot je ISDN). <p> Z uporabo PPP-ja lahko povežete vaš Linux PC s PPP strežnikom in uporabljate vire na omrežju na katerega je priključen strežnik skoraj kot da bi bili direktno povezani s tem omrežjem. <p> Svoj Linux PC lahko uporabite tudi kot PPP strežnik, s katerim lahko zvezo vzpostavijo drugi računalniki in uporabljajo vire na vašem računalniku in/ali mreži. <p> Ker je PPP istoležen sistem (tipa enak-z-enakim), lahko uporabite dva računalnika z Linuxom za povezavo dveh omrežij ali lokalnega omrežja z Internetom. Tako se ustvari WAN (Wide Area Network - omrežje širokega dosega). <p> Največja razlika med PPP in povezavo Ethernet je seveda v hitrosti. Standardni ethernet deluje na 10 Mbps (mega - milijonov bitov na sekundo) maksimalnega teoretičnega pretoka, medtem ko analogni modemi dosežejo hitrosti do 56 kbps (kilo - tisoč bitov na sekundo). <p> Glede na tip povezave PPP lahko obstajajo tudi nekatere omejitve v uporabi nekaterih aplikacij in servisov. <sect1>Odjemalci in strežniki <p> PPP je strogo istoležen protokol (tipa enak-z-enakim). Tehnično gledano ni nobene razlike med računalnikom, ki vzpostavlja zvezo in računalnikom, s katerim jo vzpostavlja. Zavoljo jasnosti pa je dobro razmišljati o <bf/strežnikih/ in <bf/odjemalcih/. <p> Kadar vi vzpostavljate povezavo PPP (kličete), ste <bf/odjemalec/. Računalnik s katerim se povezujete je <bf/strežnik/. <p> Kadar pripravljate računalnik z Linuxom za sprejem povezav PPP, pripravljate <bf/strežnik/ za PPP. <p> Vsak računalnik z Linuxom je lahko tako PPP strežnik kot odjemalec - celo istočasno, če imate več serijskih vrat (in po potrebi modemov). Ko je povezava sklenjena, ni nobene razlike med odjemalcem in strežnikom, vsaj kar se PPP-ja tiče. <p> Ta dokument govori o računalniku, ki zvezo vzpostavlja, kot <bf/ODJEMALCU/, medtem ko je računalnik, ki odgovori na klic, preveri identiteto klicatelja (z uporabo uporabniških imen, gesel in drugih mehanizmov) <bf/STREŽNIK/. <p> Uporaba PPP-ja za povezavo enega ali več računalnikov z Internetom verjetno zanima največ ljudi - to je uporaba njihovega računalnika z Linuxom kot odjemalca. <p> Postopek opisan v tem dokumentu vam bo pomagal vzpostaviti in avtomatizirati vzpostavljanje povezave z Internetom. <p> Ta dokument vas bo tudi vodil pri postavljanju vašega računalnika z Linuxom kot <bf/strežnika/ za PPP in pri povezavi dveh lokalnih omrežij (s popolnim usmerjanjem) z uporabo PPP-ja (tako ustvarimo WAN - omrežje širokega dosega). <sect1>Razlike med distribucijami Linuxa <p> Med mnogimi distribucijami Linuxa ima vsaka svoje kaprice in načine za opravljanje stvari. <p> Natančneje, obstajata dva načina, kako se računalnik z Linuxom (ali Unixom) zažene, konfigurira itd. <p> To sta <bf/inicializacija sistema po BSD/ in <bf/inicializacija sistema po System V/. Če se poglobite v nekatere Unixovske novičarske skupine, boste občasno naleteli na ,,svete vojne`` med zagovorniki teh dveh sistemov. Če vas tovrstne stvari zabavajo, uživajte pri kurjenju omrežnega pretoka in se pridružite. <p> Verjetno najpogostejše distribucije so: <itemize> <item>Slackware<newline> ki uporablja BSD-jevsko inicializacijo sistema <item>Red Hat (in njegov bivši družabnik Caldera)<newline> ki uporabljata inicializacijo SysV (čeprav v rahlo spremenjeni obliki) <item>Debian<newline> ki uporablja inicializacijo sistema po SysV </itemize> <p> BSD stil inicializacije običajno hrani svoje inicializacijske datoteke v imeniku <tt>/etc/...</tt> in te so: <code> /etc/rc /etc/rc.local /etc/rc.serial (in mogoče še druge datoteke) </code> <p> Od nedavnega nekatere BSD inicializacijske sheme uporabljajo imenik <tt>/etc/rc.d/...</tt> za shranjevanje zagonskih datotek raje kot da bi vse postavili v <tt>/etc</tt>. <p> System V inicializacija hrani svoje inicializacijske datoteke v imenikih pod <tt>/etc/...</tt> ali <tt>/etc/rc.d/...</tt> in v številnih podimenikih: <code> 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 </code> <p> Če poskušate odkriti kje so dejansko konfigurirani vaš vmesnik Ethernet in pripadajoče omrežne poti, morate pregledati te datoteke in najti ukaze, ki to naredijo. <sect1>Distribucijam specifična orodja za konfiguracijo PPP-ja <p> Na nekaterih distribucijah (na primer Red Hat in Caldera) obstajajo orodja v X window za konfiguracijo PPP-ja. Ta HOWTO ne pokriva teh orodij, specifičnih distribucijam. Če imate težave z njimi, stopite v stik z distributerji! <p> Za uporabnike Red Hat 4.x je na voljo <url url="http://www.interweft.com.au" name="Red Hat PPP-TIP"> v območju ,,Linux resources`` in <url url="http://www.redhat.com" name="Red Hat Software"> v ,,Support area``. <sect>Številke za IP <p> Vsaka naprava, ki se poveže z Internetom, mora imeti svojo lastno številko za IP. Le-te dodeljuje pooblaščena organizacija za vsako državo. <p> Če povezujete lokalno omrežje (LAN) z Internetom, <bf/MORATE/ uporabiti IP številko iz vašega dodeljenega območja naslovnega prostora za vse računalnike in naprave na vašem omrežju. IP številk <bf/NE SMETE/ privleči kar za lase in jih uporabiti pri povezavi z drugim omrežjem (kaj šele z Internetom). V najslabšem primeru bo to povzročilo popolno opustošenje, saj se bojo vaše ,,ukradene`` IP številke začele vmešavati v komunikacijo drugega računalnika, ki že uporablja IP številko, ki ste si jo izmislili. <p> Zapomnite si, da so številke za IP, uporabljene v tem dokumentu (z redkimi izjemami), iz serije ,,nepovezanih omrežnih številk``, ki so rezervirane za uporabo na omrežjih ki niso (nikoli) povezana z Internetom. <p> Obstajajo IP številke, ki so namenjene lokalnim omrežjem, ki se ne povezujejo z Internetom. Nizi teh IP številk so: <itemize> <item>One A Class Network Address<newline> 10.0.0.0 (netmask 255.0.0.0) <item>16 B Class Network Addresses<newline> 172.16.0.0 - 172.31.0.0 (netmask 255.255.0.0) <item>256 C Class Network Addresses<newline> 192.168.0.0 - 192.168.255.0 (netmask 255.255.255.0) </itemize> <p> Če imate lokalno omrežje, za katerega vam pooblaščena organizacija v vaši deželi <bf/ni/ dodelila IP številk, za vaše računalnike uporabite številke iz zgornjih nizov. <p> Te številke ne bi smele biti <bf/nikoli/ uporabljene na Internetu. <p> Kljub temu jih lahko uporabljate za lokalni Ethetnet na računalniku, ki je povezan z Internetom. To je možno zato, ker se IP številke dodelijo omrežnemu vmesniku, ne računalniku. Medtem ko vaš Ethernet vmesnik uporablja npr. 10.0.0.1, se lahko povežete z Internetom z uporabo PPP-ja in vašemu PPP vmesniku bo strežnik dodelil drugo (veljavno) IP številko. Vaš PC bo povezan z Internetom, ostale naprave na mreži pa ne. <p> Vseeno pa lahko z uporabo Linuxa, njegove sposobnosti IP Masquerade (znane tudi kot NAT - Network Address Translation) in programja ipfwadm povežete vaše omrežje z Internetom (z omejitvijo uporabe nekaterih storitev), čeprav nimate veljavnih IP številk za računalnike na vaši mreži. <p> Za več informacij o tem si oglejte <url url="http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade" name="Linux IP Masquerade mini HOWTO">. <p> Za večino uporabnikov, ki povezujejo en računalnik z Internetom preko ponudnika dostopa s PPP-jem, pridobivanje IP številke ne bo potrebno. <p> Če želite povezati manjše omrežje z Internetom, vam bo mnogo ponudnikov Internet storitev oskrbelo namenski ,,subnet`` (določen niz IP številk) iz njihovega obstoječega omrežnega obsega.<newline> Alternativa: IP Masquerading <p> Za uporabnike, ki povezujejo en računalnik z Internetom, večina PIS-ov (ponudnikov internetnih storitev) uporablja <bf/dinamično/ dodeljevanje IP številk. Kot del povezovanja vam bo PPP strežnik posredoval IP številko, ki bo dodeljena PPP vmesniku med trenutno povezavo. Ta številka ne bo ob vsaki povezavi ista. <p> Z dinamičnimi IP številkami <bf/nimate/ enake številke vsakič, ko se povežete. To pomeni zaplete za strežniške programe, ki jih poganjate na vašem računalniku z Linuxom. To so naprimer sendmail, ftpd, httpd itd. Te storitve so zasnovane na predpostavki, da je računalnik, ki ponuja storitev, ves čas dosegljiv na isti IP številki (ali vsaj na istem polnem imenu domene - fully qualified domain name - in da je prevedba imena z DNS v številko za IP). <p> Omejitve storitev zaradi dinamičnega dodeljevanja IP številk (in načini za odpravo težav, kjer je to možno) so opisane pozneje v tem dokumentu. <sect>Cilji tega dokumenta <sect1>Postavljanje PPP odjemalca <p> Ta dokument ponuja vodstvo ljudem, ki želijo uporabljati Linux in PPP za klicanje PPP strežnika in vzpostavitev IP povezave s PPP-jem. Domneva, da je PPP že preveden in nameščen na vašem računalniku z Linuxom (toda bežno pokriva tudi konfiguracijo/prevajanje vašega jedra za vključitev PPP podpore). <p> Medtem ko je DIP (standarden način za vzpostavljanje SLIP povezave) lahko uporabljen za vzpostavitev PPP povezave, so DIP skripte zelo kompleksne. Zaradi tega ta dokument NE pokriva uporabe DIP-a za vzpostavljanje PPP povezave. <p> Namesto tega ta dokument opisuje standardno Linux programje (chat/pppd). <sect1>Povezovanje dveh omrežij ali omrežja in Interneta s PPP-jem <p> Ta dokument ponuja (osnovne) informacije o povezovanju dveh lokalnih omrežij ali lokalnega omrežja in Interneta z uporabo PPP-ja. <sect1>Postavljanje PPP strežnika <p> Ta dokument ponuja vodstvo pri konfiguraciji vašega računalnika z Linuxom kot PPP strežnika (da lahko drugi ljudje kličejo vaš Linux PC in vzpostavijo PPP povezavo). <p> Zapomniti si morate, da je (skoraj) nešteto možnosti postavitve Linuxa kot strežnika za PPP. Ta dokument ponuja eno izmed metod, ki jo uporablja avtor za več majhnih PPP strežnikov (vsak s po 16 modemi). <p> Ta metoda deluje dobro. Vseeno pa ni nujno najboljša. <sect1>Uporaba PPP-ja preko neposredne kabelske (,,null modem``) povezave <p> Ta dokument ponuja kratek pregled uporabe PPP-ja za povezavo dveh računalnikov z Linuxom preko ,,null modem`` kabla. Na ta način je mogoče Linux povezati tudi z drugimi operacijskimi sistemi. Za kaj takega boste morali pregledati navodila sistema, ki vas zanima. <sect1>Ta dokument NE pokriva... <p> <itemize> <item>Prevajanja PPP daemon programja<newline> Poglejte dokumentacijo, ki je priložena verziji pppd-ja, ki ga uporabljate. <item>Povezovanja in konfiguriranja modema z Linux-om (natančno)<newline> Oglejte si Serial-HOWTO, in <url url="http://www.in.net/info/modems/index.html" name="Modem Setup Information"> za informacije, ki vam lahko pomagajo konfigurirati vaš modem. <item>Uporabe DIP-a za vzpostavljanje PPP povezave<newline> Raje uporabite chat. <item>Uporabe socks-ov ali IP Masquerade<newline> Ta dva paketa že pokrivajo drugi odlični dokumenti. <item>Uporabe <tt/diald/-ja za avtomatsko povezovanje<newline> Za to si oglejte <tt/diald/ dokumentacijo. <item>Uporabe EQL-ja za združitev dveh modemov v eno PPP povezavo. <item>Distribucijam specifičnih metod PPP povezovanja (kot npr. Red Hat 4.x network configuration tool).<newline> Glejte dokumetnacijo distribucije za uporabljene metode. <item>naraščajočega števila orodij za avtomatizacijo postavljanja PPP-ja<newline> Glejte primerno dokumentacijo. </itemize> <sect>Pokrite verzije programja <p> Ta HOWTO domneva, da uporabljate Linux z jedrom 1.2.x in programjem PPP 2.1.2 ali Linux 1.3.x/2.0.x in PPP 2.2. <p> Ob času pisanja je bila zadnja uradna verzija PPP za Linux ppp-2.2f. Nova verzija (ppp-2.3) je še beta (o. p.: v juliju 1998 je že na voljo ppp-2.3.5). <p> PPP 2.2.0 je možno uporabljati z jedrom 1.2.13. Za to potrebujete popravke jedra. Priporočljivo je, da uporabniki jedra 1.2.13 nadgradijo PPP na ppp-2.2, saj ta vsebuje veliko popravkov in izboljšav. <p> <bf/Vedeti morate tudi, da ne morete uporabljati programja PPP 2.1.2 z jedri verzij 2.0.x./ <p> Zapomnite si, da ta dokument <bf/NE/ pokriva problemov nastalih z uporabo nalagalnih modulov v jedrih 2.0.x. Oglejte si kerneld mini-HOWTO in kernel/module 2.0.x dokumentacijo (v izvorni kodi Linuxa 2.0.x so v imenikih <tt>/usr/src/linux/Documentation/...</tt>). <p> <bf>Ta dokument je namenjen za pomoč novim uporabnikom. Močno priporočljivo je, da uporabite verzijo Linuxovega jedra in primerno verzijo PPP-ja, ki sta skupaj stabilni.</bf> <sect>Ostali uporabni/pomembni viri <p> Uporabnikom svetujem, da preberejo : <itemize> <item>dokumentacijo PPP paketa; <item>pppd in chat man strani;<newline> (uporabite <tt/man chat/ in <tt/man pppd/ za ogled) <item>Linux Network Administration Guide (NAG);<newline> glejte <url url="http://sunsite.unc.edu/mdw/LDP-books/nag-1.0/nag.html" name="The Network Administrators' Guide"> <item>Net-2/3 HOWTO;<newline> glejte <url url="http://sunsite.unc.edu/mdw/HOWTO/NET-2-HOWTO.html" name="Linux NET-2/3-HOWTO"> <item>Dokumentacijo Linux-ovega jedra, ki je v <tt>/usr/src/linux/Documentation</tt> kadar namestite Linux-ovo izvorno kodo; <item>Spletno stran o nastavitvi modemov - glejte <url url="http://www.in.net/info/modems/index.html" name="Modem Setup Information">. <item>Odlične knjige o Unixu/Linuxu, ki jih izdaja založba O'Reilly and Associates. Glejte <url url="http://www.ora.com/" name="O'Reilly and Associates On-Line Catalogue">. Če nimate izkušenj z Unixom/Linuxom, ne hodite ampak <bf/tecite/ do vaše najbližje knjigarne z računalniško literaturo in jih nemudoma nekaj kupite! <item>PPP-FAQ, ki ga vzdržuje Al Longyear, dostopen na <url url="ftp://sunsite.unc.edu/pub/Linux/docs/faqs" name="Linux PPP-FAQ">.<newline> Ta vsebuje veliko koristnih informacij v obliki vprašanje/odgovor, ki je zelo uporaben kadar ugotavljate zakaj PPP ne deluje (pravilno). <item>Naraščajoče število knjig o Linuxu raznih avtorjev in založb;<newline> Prosim vas, da preverite kvaliteto teh knjig. Linux in distribucije se hitro razvijajo, medtem ko so popravki knjig (navadno) dosti počasnejši. Nakup odlične knjige (in takih je dosti), ki je zastarela, bo novim uporabnikom povzročil veliko zmede in razočaranja. </itemize> <p> Najboljša izhodiščna točka za Linuxovo dokumentacijo je <url url="http://sunsite.unc.edu/mdw/" name="The Linux Documentation Project Home Page">. HOWTO-ji se precej redno popravljajo. <p> Medtem ko lahko uporabite ta dokument za vzpostavitev vaše PPP povezave brez branja kateregakoli teh dokumentov, boste z branjem dosegli veliko boljše razumevanje dogajanja! Tako boste tudi samo sposobni najti probleme (ali vsaj zastavljati bolj inteligentna vprašanja v novičarskih skupinah comp.os.linux... ali poštnih seznamih). <p> Ti dokumenti (kot tudi razni drugi, vključujoč pomembne RFC-je) ponujajo dodatno in bolj podrobno razlago kot je možna v tem HOWTO-ju. <p> Če povezujete LAN z Internetom z uporabo PPP-ja, boste morali vedeti dosti o TCP/IP omrežjih. Poleg zgornjih dokumentov vam bosta zelo koristili O'Reilly-jevi knjigi ,,TCP/IP Network Administration`` in ,,Building Internet Firewalls``! <sect1>Uporabni poštni seznami o Linuxu <p> Obstaja veliko poštnih seznamov o Linuxu, ki delujejo kot sredstvo komunikacije med uporabniki različnih sposobnosti. Vsekakor se naročite na tiste, ki vas zanimajo in prispevajte svoje strokovno znanje in poglede. <p> <bf/Nasvet začetnikom/: Nekateri seznami so namenjeni izkušenim uporabnikom ali določenim predmetom. Čeprav se ne bo nihče pritoževal če boste le ,,prežali`` (boste naročeni na seznam a ne boste pošiljali sporočil), je zelo verjetno , da boste prejeli žolčne kritike (če ne celo izbruhe jeze - ,,flames``), če boste pošiljali ,,začetniška`` vprašanja na neprimerne sezname. <p> To se ne dogaja zato, ker bi ,,guruji`` sovražili nove uporabnike, temveč zato ker so ti seznami namenjeni obravnavi specifičnih vprašanj na posebnih težavnostnih stopnjah. <p> Vsekakor se prijavite na sezname ki ponujajo prijave, vendar se držite predmeta razprave. <p> Dobra izhodiščna točka za poštne sezname o Linuxu je <url url="http://summer.snu.ac.kr/~djshin/linux/mail-list/index.shtml" name="Linux Mailing List Directory">. <p> V Sloveniji imamo poštne sezname Društva uporabnikov Linuxa Slovenije. Kako se naročite na njih, zveste, če pošljete na naslov <htmlurl url="mailto:majordomo@lugos.si" name="majordomo@lugos.si"> v telesu sporočila <tt/help/, ali, če pogledate na spletno stran <url url="http://www.lugos.si/delo/mailinglista.html">. <sect>Pregled kaj mora biti storjeno za delovanje PPP-ja kot odjemalca <p> Ta dokument vsebuje veliko informacij - njihovo število se z vsako izdajo veča! <p> Ta razdelek podaja jedrnat pregled stvari, ki jih boste morali narediti, da bi svoj Linux povezali s PPP strežnikom. <sect1>Pridobivanje/nameščanje programja <p> Če vaša distribucija ne vsebuje PPP programja, ga boste morali dobiti: <url url="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz" name="the Linux PPP daemon">. <p> To je zadnje uradna verzija ob času pisanja. Vsekakor pa izberite zadnjo stabilno verzijo s tega mesta (ppp-2.3 je sedaj v beta stanju in bo kmalu dostopen). <p> PPP paket vsebuje navodila za prevajanje in nameščanje programja <bf/zato jih ta HOWTO ne/! <sect1>Vključevanje podpore za PPP v jedro <p> Linuxov PPP je sestavljen iz dveh delov <itemize> <item>zgoraj omenjenega PPP daemona <item>podpore za PPP v jedru </itemize> <p> Mnogo distibucij ponuja podporo za PPP v privzetem namestitvenem jedru, a nekatere je ne. <p> Če ob zaganjanju jedro izpiše nekaj takega kot <code> PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered. </code> <p> vaše jedro vsebuje PPP podporo. <p> Kljub temu boste verjetno želeli prevesti svoje jedro, katerokoli distribucijo že imate, da bi čimbolje porabili svoje sistemske vire in strojno opremo. Vredno si je zapomniti, da se delujočega jedra ne da prenesti na disk in ima majhno jedro prednosti na računalniku z malo spomina. <p> Ta dokument ponuja kratka navodila za ponovno prevajanje jedra v razdelku <ref id="Kernel configuration" name="Konfiguriranje jedra vašega Linuxa">. <p> Za podrobnosti si oglejte <url url="http://www.lugos.si/delo/slo/HOWTO-sl/Kernel-HOWTO-sl.html" name="prevod spisa Kernel HOWTO">. <sect1>Pridobivanje podatkov od vašega PIS-a <p> Obstaja majhno morje možnosti konfiguriracije PPP strežnika. Da bi se povezali z vašim PIS-om (ali službenim PPP strežnikom za dostop do intraneta), boste morali dobiti nekaj informacij o tem, kako ta PPP strežnik deluje. <p> Ker uporabljate Linux, boste morda imeli težave z nekaterimi PIS-i (ali službenimi PPP strežniki), ki poznajo samo odjemalce za MS Windows. <p> Kljub temu pa vedno več PIS-ov uporablja Linux za njihove storitve. Linux prodira tudi v velika podjetja, zato boste mogoče vseeno imeli srečo, tudi če naletite na težave. <p> Razdelek <ref id="Server info" name="Pridobivanje podatkov o PPP strežniku"> vam pove, kaj morate vedeti o PPP strežniku s katerim se nameravate povezati in kako najti podatke, ki jih potrebujete. <sect1>Konfiguracija modema in zaporednih vrat <p> Da bi se povezali s PPP strežnikom in imeli čimboljšo hitrost prenosa podatkov, morate pravilno konfigurirati vaš modem. <p> Ravno tako morajo biti pravilno konfigurirana serijska vrata na modemu in računalniku. <p> Navodila za to daje razdelek <ref id="Modem" name="Konfiguriranje modema in serijskih vrat">. <sect1>Konfiguriranje DNS-a <p> Poleg datotek, ki poženejo PPP in skrbijo za samodejno prijavo na PPP strežnik, je potrebno preveriti še nekaj datotek, da bi bilo možno prevajanje imen kot <tt/www.interveft.com.au/ v IP naslove, ki jih dejansko uporabljamo za vzpostavitev stika s tem računalnikom. Ti dve datoteki sta: <itemize> <item><tt>/etc/resolv.conf</tt> <item><tt>/etc/host.conf</tt> </itemize> <p> Za podrobnosti o tem glejte razdelek <ref id="DNS" name="Vzpostavljanje razreševanja imen v naslove (DNS)">. <p> Na vašem Linux računalniku vam <bf/NI/ treba poganjati DNS strežnika, da bi se povezali z Internetom (čeprav bi to mogoče želeli). Vse kar morate vedeti, je IP številka vsaj enega takega strežnika (Po nožnosti pri vašem PIS-u). <sect1>PPP in administratorske pravice <p> Ker vzpostavljanje PPP povezave med vašim Linux računalnikom in PPP strežnikom zahteva upravljanje z mrežnimi sredstvi (PPP vmesnik je mrežno sredstvo) in usmerjevalno tabelo, PPP potrebuje administratorske (root) pravice. <p> Za podrobnosti o temu glejte razdelek <ref id="root" name="Uporaba PPP-ja in root pravice">. <sect1>Preverjanje PPP datotek vaše distribucije in prilagajanje PPP opcij <p> Da bi usposobili PPP, je treba preveriti nekaj konfiguracijskih datotek. V PPP paketu so primeri le-teh. Imeti bi morali te datoteke: <code> /etc/ppp/options /etc/ppp/scripts/ppp-on /etc/ppp/scripts/ppp-on-dialer /etc/ppp/options.tpl </code> <p> Glede na vaše želje, kaj točno želite doseči s PPP-jem, boste morda morali ustvariti dodatne datoteke: <code> /etc/ppp/options.ttyXX /etc/ppp/ip-up /etc/ppp/pap-secrets /etc/ppp/chap-secrets </code> <p> Poleg tega lahko PPP daemon uporabi veliko opcij iz ukazne vrstice. Pomembno je, da uporabite prave. Ta razdelek vam pojasni pomen standardnih PPP opcij in vam pomaga pri odločitvi, katere uporabiti. <p> Oglejte si razdelek <ref id="options" name="Priprava datotek za PPP povezavo">. <sect1>Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol) <p> Dosti PIS-ov uporablja PAP. Če vaš strežnik <bf/ne/ zahteva njegove uporabe (če vas strežnik tekstovno vpraša za uporabniško ime in geslo), lahko ta razdelek mirno preskočite. <p> PPP strežnik, ki uporablja PAP, ne zahteva tekstovne prijave. <p> Namesto tega se informacije o istovetnosti uporabnika izmenjajo kot del LCP-ja (link control protocol - protokol za kontrolo povezave), ki je prvi del vzpostavitve PPP povezave. <p> Razdelek <ref id="pap" name="Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol)"> podaja informacije o datotekah ki jih morate nastaviti za vzpostavitev PPP povezave s PAP-om. <sect1>Ročno povezovanje s PPP strežnikom <p> Ko ste uredili osnovne datoteke, bi bilo dobro, da bi jih preverili s povezavo (z uporabo minicom-a ali seyon-a) in ročno pognali PPP na vašem Linux računalniku. <p> Oglejte si razdelek <ref id="manual" name="Ročna vzpostavitev PPP povezave"> za podrobnosti o tem. <sect1>Avtomatizacija PPP povezave <p> Ko ste se sposobni ročno povezati, lahko nastavite nekaj skript, ki bodo avtomatizirale vzpostavitev PPP povezave. <p> Razdelek <ref id="automate" name="Avtomatizacija povezav - priprava povezovalnih skript"> pokriva pripravo potrebnih skript. Posebno pozornost posveča <tt/chat/-u in avtomatizaciji prijave na PPP strežnik. <p> Ta razdelek razpravlja tako o skriptah za ime/geslo avtentikacijo, kot tudi o skriptah za PAP/CHAP avtentikacijo. <sect1>Prekinitev povezave <p> Ko povezava deluje, jo morate biti sposobni prekiniti. <p> Za to skrbi razdelek <ref id="off" name="Prekinitev PPP povezave">. <sect1>Če imate težave <p> Mnogo ljudi ima na začetku težave pri vzpostavljanju PPP povezave. Razlike med PPP strežniki in načini avtentikacije so ogromne. Ravno tako ima PPP ogromno opcij. Nekatere od kombinacij pač ne delujejo skupaj. Nikoli. <p> Ne samo s prijavljanjem in začetkom storitev PPP, tudi z modemi in resničnimi telefonskimi linijami so težave! <p> Razdelek <ref id="problems" name="Odpravljanje težav"> podaja nekaj osnovnih informacij o pogostih napakah, navodila za odkritje in popravljanje. <p> Razdelek <bf/NI/ namenjen več kot osnovam. Al Longyear skrbi za PPP-FAQ, ki vsebuje dosti več informacij o tej temi. <sect1>Ko se povezava vzpostavi <p> Ko je PPP povezava uporabna (natančneje, ko je uporaben IP sloj), lahko pppd samodejno (kot uporabnik <tt/root/) zažene skripto, ki opravi <bf/katerokoli/ funkcijo, ki jo skripta zmore. <p> Razdelek <ref id="ip-up" name="Ko se povezava vzpostavi"> pove več o <tt>/etc/ppp/ip-up</tt> skripti, parametrih ki jih sprejme od pppd-ja in kako jo uporabiti za stvari kot pobiranje pošte iz vašega računa pri PIS-u, pošiljanje pošte, ki čaka na prenos na vašem računalniku itd. <sect1>Težave s standardnimi IP servisi na PPP povezavi z dinamično dodeljenimi IP številkami <p> Kot je že bilo omenjeno v uvodu, dinamične IP številke omejujejo sposobnost vašega PC-ja z Linuxom, da deluje kot strežnik na Internetu. <p> Razdelek <ref id="dynamic-server" name="Uporaba servisov Interneta z dinamičnimi IP številkami"> ponuja informacije o (glavnih) prizadetih servisih in kaj lahko storite (če sploh kaj) za premaganje težav. <sect>Konfiguriranje jedra vašega Linuxa<label id="Kernel configuration"> <p> Da bi uporabljali PPP, mora vaše jedro vsebovati podporo za PPP. Če je še nimate, morate dobiti izvorno kodo jedra. Na standardnem Linux sistemu je v <tt>/usr/src/linux</tt>. <p> Preverite ta imenik. Mnogo distribucij Linuxa namesti izvorno drevo (datoteke in poddirektorije) kot del namestitvenega procesa. <p> Ob zagonu vaše jedro izpiše veliko podatkov. Med temi so tudi podatki o PPP podpori, če je vključena v jedro. Da bi jih pregledali, si oglejte syslog datoteko ali uporabite <tt/dmesg | more/. Če je PPP podpora v jedru, boste videli nekaj takega: <code> PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered. </code> <p> (Za jedra Linuxa serije 2.0.x). <p> Izvorno kodo jedra Linuxa lahko dobite s ftp-jem na <tt/sunsite.unc.edu/ ali njegovih zrcalnih mestih. <sect1>Namestitev izvorne kode jedra <p> to so kratka navodila za pridobitev in namestitev izvorne kode jedra Linuxa. Popolna navodila lahko dobite v <url url="http://www.lugos.si/delo/slo/HOWTO-sl/Kernel-HOWTO-sl.html" name="prevodu spisa Kernel HOWTO"> ali <url url="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html" name="angleškem izvirniku"> <p> Da bi namestili in prevedli jedro, morate biti prijavljeni kot root. <enum> <item>Premaknite se v imenik <tt>/usr/src</tt><newline> <tt>cd /usr/src</tt> <item>Preverite <tt>/usr/src/linux</tt> če imate izvorno kodo že nameščeno. <item>Če je nimate, jo dobite na <url url="ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0" name="imeniku izvorne kode jedra za Linux"> ali na najbližjem zrcalnem strežniku.<newline> Če potrebujete starejšo izdajo jedra (kot npr. 1.2.x), jo najdete na <url url="ftp://sunsite.unc.edu/pub/Linux/kernel/old" name="imeniku izvorne kode starih jeder">. <item>Izberite primerno jedro - navadno iščete najnovejše. Snemite ga in premaknite tar datoteko z izvorno kodo v <tt>/usr/src</tt>.<newline> <bf/Opomba/: datoteka <tt/tar/ je arhiv - po možnosti skrčen (kot so datoteke tar z izvorno kodo Linuxa), ki vsebuje mnogo datotek in imenikov. Je Linuxov ekvivalent DOS-ove datoteke <tt/zip/ z več imeniki. <item>Če imate jedro že nameščeno in ga nadgrajujete, morate najprej odstraniti staro izvorno kodo. Uporabite ukaz<newline> <tt>rm -rf /usr/src/linux</tt> <item>Sedaj razširite in izvlecite izvorno kodo z ukazom<newline> <tt>tar xzf linux-2.0.XX.tar.gz</tt> <item>Sedaj <tt>cd /usr/src/linux</tt> in preberite datoteko README, ki vsebuje odlično razlago o konfiguriranju in prevajanju jedra. Dobro bi bilo tudi, da si jo natisnete in jo imate pri roki, dokler se pri prevajanju ne znajdete brez nje. </enum> <sect1>Poznavanje vaše strojne opreme <p> Če nameravate prevajati vaše jedro, <bf/MORATE/ vedeti katere kartice/naprave imate v vašem računalniku!!! Za nekatere naprave (npr. zvočne kartice) boste morali vedeti tudi razne nastavitve (kot so IRQ-ji, I/O naslovi in podobno). <sect1>Prevajanje jedra - jedro Linux 1.2.13 <p> Da bi začeli konfiguriranje, sledite navodilom v datoteki README, da boste pravilno namestili izvorno kodo. Konfiguracijo začnete z <tscreen><verb>make config</verb></tscreen> <p> Za uporabo PPP-ja morate v jedro vključiti podporo za PPP (PPP potrebuje OBOJE - pppd IN podporo za PPP v jedru). <code> PPP (point-to-point) support (CONFIG_PPP) [n] y </code> <p> Na druga vprašanja odgovorite glede na ,,železnino``, ki jo imate v računalniku, in lastnosti operacijskega sistema Linux, ki jih potrebujete. Potem nadaljujte z branjem datoteke README za prevajanje in namestitev novega jedra. <p> Jedro 1.2.13 ustvari le 4 naprave za PPP. Za večvratne serijske kartice (ki potrebujejo več vrat) boste morali popraviti izvorno kodo jedra. (Oglejte si datoteko README.linux, ki je priložena distribuciji PPP 2.1.2 za navodila o enostavnih popravkih, ki jih morate narediti). <p> Opomba: konfiguracijska skripta za jedro 1.2.13 NE dovoli popravljanja - če naredite napako pri odgovarjanju na eno od vprašanj v <tt/make config/, pritisnite CTRL C in začnite znova. <sect1>Prevajanje jedra - jedra Linux 1.3.x in 2.0.x <p> Za Linux 1.3.x in 2.0.x lahko uporabite podobno pot kot za Linux 1.2.13. Sledite navodilom v datoteki README za pravilno namestitev izvorne kode. Konfiguracijo poženite z <tscreen><verb>make config</verb></tscreen> <p> Poleg tega imate na izbiro tudi <tscreen><verb>make menuconfig</verb></tscreen> <p> Ta ukaz ponuja konfiguracijski sistem z menuji in sprotno pomočjo, poleg tega pa vam dovoli popravljanje napak. <p> Obstaja tudi zelo priporočan konfiguracijski vmesnik baziran na sistemu X window: <tscreen><verb>make xconfig</verb></tscreen> <p> PPP podporo lahko vključite naravnost v jedro ali kot nalagalni modul. <p> Če uporabljate PPP le občasno, je priporočena uporaba podpore za PPP kot nalagalni modul. Z uporabo ,kerneld` bo vaše jedro samodejno naložilo module, potrebne za PPP podporo, ko boste začeli povezovanje. To bo prihranili dragoceni pomnilniški prostor. Noben del jedra ne more biti prenečen na disk, nalagalni moduli pa so samodejno odstranjeni, če jih ne potrebujemo. <p> Za to morate omogočiti podporo za nalagalne module: <code> Enable loadable module support (CONFIG_MODULES) [Y/n/?] y </code> Za PPP podporo odgovorite na naslednje vprašanje: <code> PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?] </code> <p> Za uporabo nalagalnih modulov za PPP odgovorite <bf/M/, sicer pa <bf/Y/. <p> Za razliko od jedra 1.2.13, ustvarja jedro PPP naprave po potrebi. Za povečanje števila PPP naprav ni potrebno popravljati jedra. <sect1>Opomba o PPP-2.2 in <tt>/proc/net/dev</tt> <p> Če uporabljate PPP-2.2, boste ugotovili, da je stranski učinek ustvarjanja PPP naprav ,,po potrebi`` ta, da v <tt>/proc/net</tt> ni videti nobenih PPP naprav, dokler jih ne ustvarimo z zagonom pppd-ja: <code> [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 </code> <p> Ko imate pognan en (ali več) ppp servis, boste videli vnose kot je ta (na ppp strežniku): <code> [root@kepler /root]# 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 </code> <sect1>Na kaj moramo paziti pri konfiguraciji PPP v jedru <p> Če postavljate vaš računalnik kot PPP strežnik, morate vključiti podporo za IP forwarding. To je potrebno tudi, če ga boste uporabili za povezavo dveh omrežij ali omrežja in Interneta. <p> Če povezujete omrežje z Internetom (ali dve omrežji), morate paziti na varnost. Vključitev podpore za požarni zid (IP firewalls) je skoraj NUJNA! <p> To boste potrebovali tudi za uporabo IP masquerade za povezavo omrežja, ki uporablja katero od zgoraj navedenih ,,nepovezanih`` IP številk. <p> Za IP Masquerade in IP firewalling <bf/MORATE/ odgovoriti yes na prvo vprašanje v <tt/make config/ : <code> Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)? </code> <p> Medtem, ko se zdi to novim uporabnikom nekoliko zaskrbljujoče, mnogo uporabnikov brez težav uporablja lastnosti IP Masquerade in IP firewalling jedra Linux 2.0.XX. <p> Ko ste namestili novo jedro in znova pognali računalnik, lahko začnete konfigurirati in preizkušati PPP povezavo(e). <sect>Pridobivanje podatkov o PPP strežniku<label id="Server info"> <p> Preden lahko vzpostavite PPP povezavo s strežnikom, morate dobiti nekaj podatkov (ima jih administrator ali služba za podporo pri PPP strežniku): <itemize> <item>Telefonsko številko(e), na kateri je strežnik<newline> Če imate avtomatsko hišno centralo, potrebujete tudi številko, ki vam da dostop do zunanjega telefonskega omrežja. To sta pogosto številki 0 ali 9. <item>Ali strežnik uporablja DINAMIČNE ali STATIČNE IP številke?<newline> Če strežnik uporablja statične IP številke, morate mogoče vedeti, katero številko uporabiti za vaš konec PPP povezave. Če vas PIS oskrbi s ,,subnetom`` veljavnih IP številk, boste morali vedeti IP številke, ki jih lahko uporabite in omrežno masko (netmask).<newline> Večina PIS-ov uporablja DINAMIČNE IP številke. Kot je omenjeno zgoraj, ima to nekatere posledice na servise, ki jih lahko uporabljate.<newline> Čeprav uporabljate STATIČNE IP številke, vam večina PPP strežnikov kot odjemalcu nikoli ne bo pustila določiti IP številko, ker to predstavlja varnostno tveganje. Vseeno pa <bf/morate/ vedeti ta podatek! <item>Katere so IP številke PIS-ovih DNS strežnikov?<newline> Morali bi biti vsaj dve, čeprav je ena dovolj.<newline> To bi znal biti problem. MS Windows 95 dovoljujejo, da so DNS naslovi posredovani odjemalcu kot del povezovalnega procesa. Torej vam bo PIS mogoče povedal, da tega podatka ne potrebujete.<newline> Za Linux <bf/POTREBUJETE/ naslov vsaj enega DNS strežnika. Linux izvedba PPP-ja ne dovoli nastavitve IP številk DNS strežnikov dinamično ob povezavi - in verjetno tudi nikoli ne bo.<newline> <bf/Opomba/: medtem ko Linux (kot PPP odjemalec) ne more sprejeti DNS naslova od strežnika, zna (kot strežnik) poslati ta podatek odjemalcem z uporabo <tt/dns-addr/ pppd opcije. <item>Ali strežnik zahteva uporabo PAP/CHAP?<newline> V tem primeru morate vedeti ,,id`` in ,,secret``, ki ju potrebujete za povezavo. (To sta verjetno vaše uporabniško ime in geslo). <item>Ali strežnik avtomatsko zažene PPP ali morate uporabiti kakšen ukaz za zagon PPP-ja na strežniku, ko se prijavite?<newline> Kateri je ta ukaz? <item>Ali na strežniku tečejo Microsoft Windows NT? Če je tako, ali strežnik uporablja MS PAP/CHAP?<newline> Mnogo službenih omrežij uporablja MS Windows NT na tak način za povečano varnost. </itemize> <p> Zapišite si te podatke, ker jih boste potrebovali! <sect>Konfiguriranje modema in serijskih vrat<label id="Modem"> <p> Prepričajte se, da je modem pravilno nameščen in da veste na katerih serijskih vratih je nameščen. <p> <bf>Pomnite</bf>: <itemize> <item>DOS com1: = Linux /dev/cua0 (in /dev/ttyS0) <item>DOS com2: = Linux /dev/cua1 (in /dev/ttyS1)<newline> in tako dalje </itemize> <p> Dobro si je tudi zapomniti, da če imate 4 serijska vrata, je navadno PC nastavljen tako, da si com1 in com3 delita IRQ4, com2 in com4 pa IRQ3. <p> Če imate na standardnih serijskih vratih naprave, ki si delijo IRQ z vašim modemom, boste imeli probleme. Modem mora imeti svoj nedeljen IRQ. Mnogo modernih serijskih kartic (in kvalitetnejših osnovnih plošč) vam omogoča spreminjanje IRQ-jev. <p> Če uporabljate jedro Linux 2.0.x, lahko preverite IRQ-je v uporabi z <tt>cat /proc/interrupts</tt>, ki bo pokazal nekaj takega: <code> 0: 6766283 timer 1: 91545 keyboard 2: 0 cascade 4: 156944 + serial 7: 101764 WD8013 10: 134365 + BusLogic BT-958 13: 1 math error 15: 3671702 + serial </code> <p> Tukaj so serijska vrata na IRQ4 (miška) in serijska vrata na IRQ15 (trajne modemska povezava z Internetom). Na računalniku so tudi serijska vrata com2 na IRQ3 in com4 na IRQ14, vendar nista v uporabi, zato nista prikazana. <p> Pozor - vedeti morate kaj počnete, če se boste igrali z IRQ-ji! Ne samo da morate odpreti računalnik, izvleči kartice in premikati mostičke, vedeti morate tudi kaj je na katerem IRQ-ju. V mojem primeru imam v računalniku samo SCSI diske, zato lahko onemogočim IDE vmesnik na osnovni plošči, ki navadno uporablja IRQ14 in 15! <p> Zapomnite si tudi, da če imate na računalniku druge operacijske sisteme, se ti mogoče ne bodo pravilno zagnali - če sploh! <p> Če premaknete zaporedna vrata na nestandardne IRQ-je, morate Linuxu povedati, katere IRQ-je uporabljajo. To naredite s <tt/setserial/, najraje kot del zagona sistema v <tt/rc.local/ ali <tt/rc.serial/, ki je klican iz <tt/rc.local/ ali kot del SysV inicializacije. Za zgornji računalnik so uporabljeni ukazi <code> /bin/setserial -b /dev/ttyS2 IRQ 14 /bin/setserial -b /dev/ttyS3 IRQ 15 </code> <p> Če uporabljate zaporedno podporo kot nalagalne module in jih dinamično nalagate z uporabo <tt/kerneld/-ja, IRQ-jev ne morete nastaviti ob zagonu in pozabiti nanje. To se zgodi zaradi tega, ker Linux ob izključitvi modula iz jedra pozabi posebne nastavitve. <p> Tako boste morali ob uporabi nalagalnih modulov popraviti IRQ-je vsakič, ko bo modul naložen. <sect1>Opomba o serijskih vratih in hitrostih <p> Če uporabljate hiter (zunanji) modem (14.400 bps ali hitrejši), morajo vaša zaporedna vrata biti sposobna spustiti skozi promet, ki ga naredi tak modem, še posebej ko modem stiska podatke. <p> Za to morajo vaša serijska vrata uporabljati moderen UART (Universal Asynchronous Receiver Transmitter - univerzalni asinhroni sprejemnik/oddajnik) kot je 16550(A). Če uporabljate star računalnik /ali staro serijsko kartico), je vaš UART mogoče 8250 UART, ki vam bo povzročil precejšnje težave pri uporabi hitrih modemov. <p> Uporabite ukaz <tscreen><verb>setserial -a /dev/ttySx</verb></tscreen> <p> da vam Linux sporoči, kakšen UART imate. Če vaš UART ni tipa 16550A, si preskrbite novo serijsko kartico (stane le kakšnega tisočaka). Pred nakupom se prepričajte, da na njej lahko nastavljate IRQ-je! <p> Opomba: prve verzije čipov UART 16550 so imele napake. To je bilo hitro odkrito in na trg je prišla nove različica - UART 16550A. Sorazmerno majhno število pokvarjenih čipov pa je vseeno prišlo v obtok. Verjetnost, da bi naleteli na tak čip, je zelo majhna, kljub temu pa bi vam zgornji ukaz moral vrniti 16550A, še posebej na karticah z ,,rodovnikom``. <sect1>Imena serijskih vrat <p> Linux je uporabljal naprave <tt/cuaX/ za klicanje in naprave <tt/ttySx/ za sprejemanje klicev. <p> Koda v jedru, ki je to zahtevala, se je v jedrih 2.0.x spremenila in zdaj bi morali uporabljati <tt/ttySx/ za oboje. Slišati je, da bodo naprave <tt/cuaX/ v bodočih izdajah jedra izginile. <sect1>Nastavljanje modema <p> Vaš modem boste morali pravilno nastaviti za PPP - <bf/PREBERITE NAVODILA VAŠEGA MODEMA/! Večina modemov ima <bf>normalno tovarniško nastavitev</bf>, ki izbere opcije, potrebne za PPP. Minimalna nastavitev je: <itemize> <item>Strojni nadzor pretoka (Hardware flow control - RTS/CTS) (<tt>&K3</tt> na mnogo modemih Hayes) </itemize> <p> Ostale nastavitve (v standardnih ukazih Hayes), ki jih morate preveriti: <itemize> <item><tt/E1/ Command Echo ON (potrebna za delovanje chat-a) <item><tt/Q0/ Report result codes (potrebna za delovanje chat-a) <item><tt/S0=0/ Auto Answer OFF (razen če hočete, da modem ob klicu odgovori) <item><tt>&C1</tt> Carrier Detect ON samo po povezavi <item><tt>&S0</tt> Data Set Ready (DSR) vedno ON <item>(različno) Data Terminal Ready </itemize> <p> Podatke za vedno več različnih modemov in izdelovalcev najdete na <url url="http://www.in.net/info/modems/index.html" name="Modem setup information">. <p> Vredno je tudi raziskati, kako deluje zaporedni vmesnik med modemom in vašim računalnikom. Večina sodobnih modemov vam dovoli poganjati zaporedni vmesnik pri FIKSNI hitrosti, medtem ko se hitrost telefonske linije spreminja glede na to kaj zmoreta modema. <p> To je znano kot delovanje pri različnih hitrostih (split speed operation). Če ga vaš modem podpira, nastavite serijski vmesnik na najvišjo možno hitrost (navadno 115.200 bps, toda mogoče 38.400 bps za 14.400 bps modeme). <p> Uporabite vaše komunikacijsko programje (npr. minicom ali seyon), da ugotovite nastavitve vašega modema in ga nastavite za PPP. Mnogo modemov sporoči svoje trenutne nastavitve v odgovor na <tt>AT&V</tt>, toda poglejte v vaša navodila. <p> Če popolnoma zamešate nastavitve, jih (navadno) lahko povrnete z <tt>AT&F</tt> - vrnitev na tovarniške nastavitve. (Za večino modemov tovarniške nastavitve vsebujejo vse potrebno za PPP, vendar vseeno preverite). <p> Ko enkrat odkrijete potreben nastavitveni ukaz, ga zapišite. Sedaj imate na izbiro: te nastavitve lahko shranite v modemov obstojni pomnilnik, tako da jih naslednjič prikličete s primernim ukazom <tt/AT/. Lahko pa jih posredujete modemu kot del klicnega procesa. <p> Če modem uporabljate samo za klicanje vašega PIS-a ali službenega PPP strežnika, bi bilo najbolje shraniti nastavitve v modemov obstojni pomnilnik. <p> Po drugi strani pa modem uporabljajo drugi programi in operacijski sistemi, zato je najbolje posredovati nastavitve modemu ob vsakem klicu, tako da bo modem gotovo v dobrem stanju. (Druga dobra stran tega je, da imamo nekje zapisan nastavitveni ukaz, če modem zgubi vsebino svojega NVRAM-a, kar se lahko res zgodi). <sect1>Opomba o nadzoru pretoka <p> Ko podatki potujejo po zaporednih linijah, se lahko zgodi, da podatki prihajajo hitreje, kot jih računalnik lahko sprejema (računalnik lahko dela kaj drugega - Linux je večuporabniški in večopravilni operacijski sistem). Da se podatki ne bi izgubili (podatki se ne zapišejo v vmesni pomnilnik in se tako izgubijo), je potrebna neka vrsta kontrole pretoka. <p> Na zaporednih linijah sta dve vrsti kontrole pretoka: <itemize> <item>Uporaba strojnih signalov (Clear To Send/Request to Send - CTS/RTS) <item>Uporaba programskih signalov (control-S in control-Q, znana tudi kot XON/XOFF). </itemize> <p> Medtem ko je zadnja uporabna za terminalsko (tekstovno) povezavo, potrebujejo podatki na PPP liniji 8 bitov - in kaj verjetno je, da bo med podatki nekaj, kar se bo prevedlo kot control S in control Q. Če torej modem uporablja programsko kontrolo pretoka, lahko stvari hitro ponorijo! <p> Za hitre povezave z uporabo PPP-ja (ki uporablja vseh 8 bitov podatkov), je strojni nadzor pretoka življenjskega pomena in ga je zato treba uporabljati. <sect1>Preizkušanje modema za klicanje <p> Sedaj ko ste uredili nastavitve zaporednih vrat in modema bi se bilo s klicanjem vašega PIS-a dobro prepričati, da te nastavitve zares delujejo in videti, če se lahko povežete. <p> Z uporabo vašega komunikacijskega paketa (npr. minicoma), nastavite inicializacijo modema, potrebno za PPP, in pokličite PPP strežnik, s katerim se želite povezati. <p> (Opomba: na tej stopnji <bf/NE/ poskušamo vzpostaviti PPP povezave - prepričujemo se, če imamo pravo telefonsko številko in kaj točno nam strežnik pošilja, da bi se povezali in pognali PPP). <p> Med tem procesom ulovite (shranite v datoteko) celoten proces prijave ali si pazljivo (<em/zelo pazljivo/) zapišite <bf/točno/ kakšen poziv vam da strežnik za vpis uporabniškega imena in gesla (in drugih ukazov za zagom PPP-ja). <p> Če vaš strežnik uporablja PAP, ne bi smeli videti poziva za prijavo, ampak (tekstovno predstavitev) protokola za nadzor povezave (link control protocol) (ki izgleda kot smeti) na vašem zaslonu. <p> Nekaj opozoril: <itemize> <item>nekateri strežniki so dokaj inteligentni: lahko se prijavite z uporabniškim imenom in geslom, ALI s PAP-om. Če torej vaš PIS ali službeni PPP strežnik uporablja PAP in smeti ne vidite takoj, niste nujno naredili napake. <item>nekateri strežniki zahtevajo, da najprej nekaj vpišete in šele <bf/nato/ začnejo PAP zaporedje. <item>Nekateri PPP strežniki so pasivni - preprosto čakajo in nič ne pošljejo, dokler jim odjemalec ne pošlje lcp paketa. Če PPP strežnik, s katerim se povezujete, deluje tako, ne boste nikoli videli smeti! <item>Nekateri PPP strežniki ne zaženejo PPP-ja, dokler ne pritisnete ENTER - vredno je poskusiti, če se pravilno prijavite in ne vidite smeti! </itemize> <p> Splača se klicati vsaj dvakrat. Nekateri strežniki spreminjajo njihove pozive (naprimer glede na čas!) vsakič ko se prijavite. Dva pomembna poziva, ki jih Linux potrebuje sta: <itemize> <item>poziv za vpis vašega uporabniškega imena; <item>poziv za vpis vašega gesla; </itemize> <p> Če morate vnesti ukaz za zagon PPP-ja na strežniku, boste morali ugotoviti tudi obliko poziva za vnos tega ukaza. <p> Če vaš strežnik samodejno zažene PPP, ko ste enkrat prijavljeni, boste zagledali na zaslonu smeti. To je PPP strežnik, ki pošilja vašemu računalniku podatke za zagon in konfiguracijo PPP povezave. <p> To bi moralo izgledati nekako takole: <code> ~y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .~~y} </code> <p> (in še kar prihaja!!!) <p> Na nekaterih sistemih mora biti PPP ročno zagnan na strežniku. To je ponavadi zaradi tega, ker je strežnik nastavljen za PPP in tekstovne prijave z uporabo istega uporabniškega imena/gesla. Če je tako, po prijavi vnesite ta ukaz. Znova boste videli smeti, ko se na strežniku zažene PPP. <p> Če tega ne vidite takoj po povezavi (in prijavi in po potrebi zagonu PPP-ja), pritisnite <bf/Enter/, da bi videli, če to zažene PPP strežnik... <p> Sedaj lahko prekinete povezavo (navadno hitro vtipkate <tt/+++/ in nato, ko modem odvrne OK, vtipkate še ukaz <tt/ATH0/). <p> Če vašega modema ne morete pripraviti do dela, preberite modemov uporabniški priročnik, man strani komunikacijskega programa in Serial HOWTO! Ko razrešite to, nadaljujte kot zgoraj. <sect>Vzpostavljanje razreševanja imen v naslove (DNS)<label id="DNS"> <p> Medtem ko ljudje radi dajemo stvarem imena, imajo računalniki raje številke. Na TCP/IP mreži (kar Internet je), imenujemo računalnike po določenih imenih in vsak računalnik živi v določeni ,,domeni``. Moja delovna postaja z Linuxom se imenuje <bf>archenland</bf> in prebiva v domeni <bf>interweft.com.au</bf>. Njegov ,,človeški`` naslov je torej archenland.interweft.com.au (kar je znano kot FQDN - fully qualified domain name - polno ime domene). <p> Da pa bi ga našli drugi računalniki na Internetu, je znan tudi po svoji IP številki, ki jo uporablja za komunikacijo z drugimi računalniki na Internetu. <p> Prevajanje (tolmačenje) imen računalnikov (in domen) v številke, ki so v uporabi na Internetu je delo računalnikov, ki ponujajo Domain Name Service (DNS). <p> Zgodi se to: <itemize> <item> vaš računalnik rabi IP številko določenega računalnika. Program, ki potrebuje ta podatek, zanj povpraša ,tolmača` (resolver) na vašem računalniku z Linuxom; <item> tolmač pregleda lokalno host datoteko <tt>/etc/hosts</tt> in/ali DNS strežnike, katere pozna (točno vedenje tolmača je določeno v datoteki <tt>/etc/host.conf</tt>); <item>če je odgovor v datoteki <tt/host/, ga tolmač vrne programu; <item>če je določen strežnik DNS, ga vaš PC povpraša: <item>Če strežnik DNS že pozna IP številko, jo vrne. Če je ne, povpraša druge strežnike DNS na Internetu. Strežnik nato vrne ta podatek tolmaču, ki ga posreduje programu. </itemize> <p> Ko ustvarite PPP povezavo, morate vašemu računalniku z Linuxom povedati, kje lahko najde podatke o imenih računalnikov in IP številkah (prevajanje naslovov), da lahko <bf/vi/ uporabljate imena računalnikov, vaš <bf/računalnik/ pa jih lahko pretvori v IP številke, ki jih potrebuje za delovanje. <p> En način je, da vpišete vse gostitelje s katerimi želite govoriti v datoteko <tt>/etc/hosts</tt> (kar je povsem nemogoče, če se povezujete z Internetom); drugi je, da uporabljate namesto imen IP številke (nemogoča spominska naloga za vse mreže, razen najmanjših). <p> Najboljši način je, da poveste Linuxu, kam naj gre iskat te podatke - avtomatsko. To storitev ponuja sistem imenskih strežnikov (DNS). Vse, kar je potrebno je, da vpišete IP številko imenskih strežnikov v datoteko <tt>/etc/resolv.conf</tt>. <sect1>Datoteka <tt>/etc/resolv.conf</tt> <p> Administrator vašega PPP strežnika (oz. služba za podporo uporabnikov) bi vam morali dati dve IP številki DNS strežnikov (potrebna je samo ena, vendar sta navadno dve zaradi možnosti okvar). <p> Kot rečeno, Linux ne more nastaviti IP številk DNS strežnikov kot MS Windows 95. Torej morate (vljudno) <bf/vztrajati/, da vam PIS da ti številki! <p> Vaša datoteka <tt>/etc/resolv.conf</tt> bi morala izgledati nekako takole: <code> domain domena.vašega.pis-a.si nameserver 10.25.0.1 nameserver 10.25.1.2 </code> <p> Uredite to datoteko (po potrebi jo ustvarite) da bo odražala podatke, ki vam jih je posredoval vaš PIS. Morala bi imeti sledeče lastništvo in dovoljenja: <tscreen><verb> -rw-r--r-- 1 root root 73 Feb 19 01:46 /etc/resolv.conf </verb></tscreen> <p> Če ste že uredili <tt>/etc/resolv.conf</tt>, ker ste na mreži, enostavno dodajte IP številke DNS strežnikov za PPP. <sect1>Datoteka <tt>/etc/host.conf</tt> <p> Preveriti bi morali tudi datoteko <tt>/etc/host.conf</tt>. Izgledati bi morala nekako takole <code> order hosts,bind multi on </code> <p> To pove tolmaču, naj uporabi podatke iz datoteke hosts preden pošlje poizvedbo DNS strežniku, <sect>Uporaba PPP-ja in root pravice<label id="root"> <p> Ker mora PPP postaviti mrežne naprave, spremeniti usmerjevalno tabelo v jedru in tako naprej, potrebuje pravice administratorja (root). <p> Če bodo PPP povezavo vzpostavljali tudi drugi uporabniki, bi moral biti program <tt/pppd/ ,,setuid root``: <tscreen><verb>-rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd</verb></tscreen> <p> Če /usr/sbin/pppd ni tako nastavljen, potem <bf>kot root</bf> vnesite ukaz: <p> <tscreen><verb>chmod u+s /usr/sbin/pppd</verb></tscreen> <p> To povzroči, da bo pppd imel administratorske pravice, <bf/četudi/ ga bo pognal navaden uporabnik. To dovoljuje navadnemu uporabniku, da zažene pppd s potrebnimi pravicami za nastavitev omrežnih vmesnikov in usmerjevalne tabele v jedru. <p> Programi, ki so pognani ,set uid root` so potencialne varnostne luknje in morali bi biti zelo previdni pri nastavljanju programov ,suid root`. Nekaj programov (med njimi pppd) je bilo skrbno napisanih, da bi zmanjšali nevarnost takega poganjanja, zato bi morali biti s tem varni (toda brez kakršnegakoli jamstva). <p> Glede na to kako hočete, da sistem deluje - natančneje če hočete, da bo lahko KATERIKOLI uporabnik vzpostavil PPP povezavo, bi morali nastaviti skripti <tt>ppp-on/off</tt> na javno branje/izvrševanje. (To je verjetno v redu, če vaš PC uporabljate SAMO vi). <p> Če pa tega NOČETE (če imajo naprimer vaši otroci dostop do računalnika in nočete, da bi se povezali z Internetom brez vaše vednosti), boste morali narediti skupino PPP (kot root uredite datoteko <tt>/etc/group</tt>) in: <itemize> <item>Naredite <tt/pppd/ ,suid root`, last uporabnika root in skupine PPP, z ,ostalimi` pravicami praznimi. Datoteka bi morala izgledati takole: <tscreen><verb>-rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd</verb></tscreen> <item>Naredite skripti <tt>ppp-on/off</tt> last uporabnika root in skupine PPP <item>Naredite skripti <tt>ppp-on/off</tt> berljivi/izvršljivi za skupino PPP <tscreen><verb> -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 </verb></tscreen> <item>Naredite ostale pravice za <tt>ppp-on/off</tt> ,prazne`. <item>dodajte uporabnike, ki bodo uporabljali PPP, v skupino PPP v datoteki <tt>/etc/group</tt> </itemize> <p> Četudi to naredite, navadni uporabniki še vedno ne bodo mogli programsko prekiniti povezave! Poganjanje <tt/ppp-off/ skripte zahteva pravice root-a. Kljub temu lahko enostavno izključijo modem ali telefonski kabel. <p> Alternativna (in boljša) metoda je uporaba programa <tt/sudo/. Ta ponuja odlično varnost in vam omogoča urediti stvari tako, da lahko vsak (pooblaščen) uporabnik vzpostavi/prekine ppp povezavo z uporabo skript. Uporaba programa <bf/sudo/ bo dovolila pooblaščenemu uporabniku vzpostavitev/prekinitev PPP povezave čisto in varno. <sect>Priprava datotek za PPP povezavo<label id="options"> <p> Sedaj morate biti prijavljeni kot <bf/root/, da bi ustvarili imenike in uredili datoteke potrebne za postavitev PPP-ja, četudi hočete, da bo PPP dostopen vsem uporabnikom. <p> PPP uporablja veliko datotek za povezavo in vzpostavitev PPP povezave. Te se med PPP 2.1.2 in PPP 2.2 razlikujejo po imenih in položaju. <p> Za PPP 2.1.2 so to datoteke: <code> /usr/sbin/pppd # PPP program /usr/sbin/ppp-on # skripta za klicanje/povezavo /usr/sbin/ppp-off # skripta za prekinitev povezave /etc/ppp/options # možnosti, ki jih uporablja pppd za vse povezave /etc/ppp/options.ttyXX # možnosti posebej za povezavo na določenih vratih </code> <p> Za PPP 2.2 so to: <code> /usr/sbin/pppd # PPP program /etc/ppp/scripts/ppp-on # skripta za klicanje/povezavo /etc/ppp/scripts/ppp-on-dialer # prvi del skripte za klicanje (chat skripta) /etc/ppp/scripts/ppp-off # skripta za prekinitev povezave /etc/ppp/options # splošne možnosti /etc/ppp/options.ttyXX # možnosti za določena vrata </code> <p> Uporabnikom Red Hat Linuxa standardna Red Hat 4.X namestitev namesti te skripte v <tt>/usr/doc/ppp-2.2.0f-2/scripts</tt>. <p> V vašem imeniku <tt>/etc</tt> bi moral bit imenik <tt/ppp/: <tscreen><verb> drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp </verb></tscreen> <p> Če ne obstaja, ga ustvarite s temi lastniki in pravicami. <p> Če direktorij že obstaja, bi moral vsebovati šablono za datoteko z možnostmi imenovano <bf>options.tpl</bf>. Če je ni, je vključena spodaj. <p> Natisnite si jo, ker vsebuje razlago skoraj vseh PPP možnosti (to je zelo uporabno branje v povezavi s pppd man stranmi). Medtem ko jo lahko uporabite kot osnovo za vašo <tt>/etc/ppp/options</tt> datoteko, je verjetno bolje, če si ustvarite lastno datoteko z možnostmi, ki ne vsebuje vseh opomb iz šablone. Tako bo mnogo krajša in bolj jasna. <p> Če imate več zaporednih linij/modemov (navadno pri PPP strežnikih), ustvarite splošno datoteko <tt>/etc/ppp/options</tt>, ki vsebuje le možnosti skupne vsem serijskim vratom, na katerih uporabljate klicanje/sprejemanje klicev, in posamezne datoteke za vsako zaporedno linijo z nastavitvami za vsaka vrata. <p> Te posamezne datoteke se imenujejo <tt/options.ttyx1/, <tt/options.ttyx2/ in tako naprej (kjer je <tt/x/ primerna črka za vaša serijska vrata). <p> Za eno samo PPP povezavo lahko veselo uporabite datoteko <tt>/etc/ppp/options</tt>. Vse možnosti lahko podate tudi kot argumente pppd-ju. <p> Lažje je vzdrževati postavitev, ki uporablja datoteke <tt>/etc/ppp/options.ttySx</tt>. Če uporabljate PPP za povezavo z različnimi mesti, lahko pripravite datoteko z možnostmi za vsako mesto v <tt>/etc/ppp/options.mesto</tt> in potem posredujete ime datoteke kot parameter pppd-ju ko se povezujete (uporabite parameter <tt/file option-file/ v ukazni vrstici). <sect1>Datoteka <tt>options.tpl</tt> <p> Nekatere distribucije PPP-ja so očitno izgubile datoteko <tt>options.tpl</tt>, zato je tu v celoti. Predlagam, da je NE urejate, da bi dobili svojo datoteko <tt>/etc/ppp/options</tt>. Raje si to datoteko skopirajte v novo datoteko in urejajte tisto. Če boste zmešali vaše popravke, lahko začnete znova z originalom. <code> # /etc/ppp/options -*- sh -*- splošne opcije za pppd # created 13-Jul-1995 jmk # autodate: 01-Aug-1995 # autotime: 19:45 # Uporabi izvršilno datoteko ali lupinsko skripto za nastavitev serijske # linije. Ta skripta navadno uporabi ,,chat`` za klicanje z modemom in zagon # PPP-ja na oddaljenem računalniku. #connect "echo Nastaviti morate ukaz za povezovanje." # Požene izvršilno datoteko ali lupinsko skripto, kadar pppd prekine # povezavo. Ta skripta bi lahko modemu poslala ukaz za prekinitev, če # strojna kontrola modema ni na voljo. #disconnect "chat -- \d+++\d\c OK ath0 OK" # async character map -- 32-bit hex; vsak bit je znak, ki mora biti # ,ubežan`, da ga pppd lahko sprejme. 0x00000001 predstavlja ,\x01`, # 0x80000000 pa ,\x1f`. #asyncmap 0 # Zahteva, da se drugi konec predstavi, preden se paketi lahko začnejo # sprejemati ali oddajati. #auth # Uporabljaj strojno kontrolo pretoka (RTS/CTS) za kontrolo pretoka podatkov # na serijskih vratih. #crtscts # Uporabljaj programsko kontrolo pretoka (XON/XOFF) za kontrolo pretoka # podatkov na serijskih vratih. #xonxoff # Dodaj privzeto pot v sistemske usmerjevalne tabele z uporabo drugega konca # povezave kot vozla, ko je IPCP dogovarjanje uspešno končano. Ta vnos bo # umaknjen, ko se povezava prekine. #defaultroute # Določa, da bojo nekateri znaki pri prenosu ,ubežani` (ne glede na to, če # drugi konec to zahteva z async control tabelo znakov). Znaki so določeni # kot niz šestnajstiških številk, ločenih z vejico. Pomnite, da je lahko tu # določen skoraj vsak znak, ne kot pri opciji asyncmap, ki dovoljuje le # kontrolne znake. Znaki, ki ne morejo biti ubežani so tisti z vrednostmi # 0x20 - 0x3f ali 0x5e. #escape 11,13,ff # Ne uporabljaj linij za nadzor modema. #local # Določa, naj pppd zaklene serijsko napravo z ključem UUCP stila za # ekskluziven dostop do naprave. #lock # Uporabi linije za nadzor modema. Na Ultrixu ta opcija vključuje strojno # kontrolo pretoka, kot opcija crtscst. (Ta opcija ni popolnoma # implementirana.) #modem # Nastavi vrednost MRU [Maximum Receive Unit] za pogajanje na <n> . Pppd bo # od drugega konca zahteval, da ne pošilja večjih paketov. Najmanjša # vrednost je 128. Privzeta vrednost je 1500. Za počasne povezave je # priporočena vrednost 296 (40 bytov za TCP/IP glavo in 256 bytov # podatkov). #mru 542 # Nastavi vmesnikovo omrežno masko na <n>, ki je 32-bitna maska v zapisu # ,,decimal dot`` (npr. 255.255.255.0) #netmask 255.255.255.0 # Razveljavi privzeto obnašanje, ko ni določen noben lokalni IP naslov, ki # je, da ga poskuša (če je mogoče) dobiti iz gostiteljskega imena. S to opcijo # bo drugi konec moral podati lokalni IP naslov med IPCP pogajanjem (razen če # je določen v ukazni vrstici ali v datoteki options). #noipdefault # Omogoči ,pasivno` opcijo v LCP. S to opcijo bo pppd poskušal ustvariti # povezavo. Če ne bo prejel nobenega odgovora, bo čakal na veljaven LCP # paket od drugega konca, namesto da bi se (brez te opcije) prekinil. #passive # S to opcijo pppd ne bo oddal nobenega LCP paketa, dokler ne bo dobil # veljavnega LCP paketa od drugega konca (kot ,passive` opcija pri starejših # verzijah pppd-ja). #silent # Ne zahtevaj ali dovoli pogajanja o kakršnihkoli LCP in IPCP opcijah # (uporabi privzete vrednosti). #-all # Onemogoči pogajanje o Address/Control stiskanju (uporabi privzete # vrednosti, t.j. brez address/control polja). #-ac # Onemogoči pogajanje asyncmap-a (uporabi privzetega, t.j. ubeg vseh # kontrolnoh znakov). #-am # Ne razcepi se in pojdi v ozadje (sicer bo pppd naredil tako, če je # določena serijska naprava). #-detach # Onemogoči pogajanje o IP naslovu (s to opcijo mora biti oddaljen IP naslov # podan v ukazni vrstici ali datoteki options). #-ip # Onemogoči dogovarjanje magične številke. S to opcijo pppd ne more zaznati, # če je linija zanka. #-mn # Onemogoči dogovarjanje MRU [Maximum Receive Unit] (uporabi privzeto, 1500). #-mru # Onemogoči kompresijo protokolnega polja. (uporabi privzeto, brez # kompresije) #-pc # Zahtevaj od drugega konca, da se predstavi z uporabo PAP-a. To zahteva # DVOSMERNO avtentikacijo - NE uporabljajte tega, ko se povezujete s PIS-om, # ker bo zahtevalo od PIS-ovega računalnika, da se vam predstavi (in tega ne # bo mogel). #+pap # Ne pristani na PAP avtentikacijo. #-pap # Zahtevaj od drugega konca, da se predstavi s CHAP-om. [Cryptographic # Handshake Authentication Protocol]. # To zahteva DVOSMERNO avtentikacijo - NE uporabljajte tega pri povezovanju # s PIS-om, ker bo zahtevalo od njegovega računalnika, da se predstavi vam. #+chap # Ne pristani na CHAP avtentikacijo. #-chap # Onemogoči pogajanje o Van Jacobsonovem kompresiranju IP glave (uporabi # privzeto, brez kompresije). #-vj # Povečaj razhroščevalni nivo (isto kot -d). Če je ta opcija podana, bo pppd # zapisal vsebino vseh kontrolnih paketov, ki jih sprejme, v berljivi # obliki. Paketi bodo zapisani v sistemski dnevnik. Te informacije lahko # spravite določeno v datoteko, preberite man 5 syslog.conf. #debug # Pripni ime domene <d> lokalnemu gostiteljskemu imenu zaradi avtentikacije. # Če vam, naprimer, funkcija gethostname() vrne porsche, polno ime domene pa # je porsche.Quotron.COM, uporabite to opcijo s parametrom Quotron.COM. #domain <d> # Omogoči razhroščevalno kodo v PPP gonilniku v jedru. Parameter n je # številka, sestavljena iz vsote sledečih vrednosti: # 1 - splošna razhroščevalna sporočila # 2 - izpisala se bo vsebina prispelih paketov # 4 - izpisala se bo vsebina oddanih paketov #kdebug n # Nastavi vrednost MTU [Maximum Transfer Unit] na <n>. Razen če drugi konec # zahteva manjše pakete med MRU pogajanjem, bo pppd zahteval, da jedro # pošilja največ n-bajtne pakete čez ppp vmesnik. #mtu <n> # Nastavi ime lokalnega sistema za avtentikacijo na <n>. Za PAP/CHAP bo to # moralo verjetno biti nastavljeno na vaše uporabniško ime. #name <n> # Nastavi uporabniško ime za avtentikacijo s PAP-om na <u>. # NE uporabljajte tega, če uporabljate name. #user <u> # Prisili uporabo lokalnega gostiteljskega imena kot imena za avtentikacijo # (povozi opcijo name). #usehostname # Nastavi ime oddaljenega sistema za avtentikacijo na <n> #remotename <n> # dodaj vnos IP številko drugega konca in lokalnim Ethernet naslovom v ARP # [Address Resolution Protocol] tabelo tega sistema. #proxyarp # Uporabi sistemsko bazo gesel za PAP avtentikacijo. #login # S to opcijo bo pppd poslal LCP zahtevo ,echo` vsakih n sekund. Pod Linuxom # je zahteva echo poslana, ko drugi konec n sekund ne pošlje ničesar. Normalno # mora oddaljeni konec poslati odgovor ,echo`. Ta opcija se lahko uporabi v # povezavi z lcp-echo-failure opcijo za zaznavanje, da drugi konec ni več # povezan. #lcp-echo-interval <n> # S to opcijo bo pppd predvideval, da je drugi konec mrtev, če po n echo # zahtevah ni dobil LCP echo odgovora. Če se to zgodi, bo prekinil povezavo. # Uporaba te opcije zahteva neničelni parameter lcp-echo-interval. Ta opcija # se lahko uporabi za prekinitev povezave, ko je bila fizično prekinjena # (naprimer ko modem prekine linijo) v primerih, ko strojni nadzor modema ni # možen. #lcp-echo-failure <n> # Nastavi LCP restart interval (čas po katerem se paket znova pošlje) na <n> # sekund. (privzeto 3) #lcp-restart <n> # Nastavi največje število LCP terminate zahtev na <n> (privzeto 3). #lcp-max-terminate <n> # Nastavi največje število LCP configure zahtev na <n> (privzeto 10). # Nekateri PPP strežniki se počasi zaženejo. Mogoče boste morali to vrednost # povečati, če dobivate sporočila ,serial line looped back` in ste # PREPRIČANI, da ste se pravilno prijavili na PPP strežnik. #lcp-max-configure <n> # Nastavi največje število vrnjenih LCP configure-NAK-ov preden začneš # pošiljati configure-Reject na <n> (privzeto 10) #lcp-max-failure <n> # Nastavi IPCP restart interval na <n> sekund (privzeto 3). #ipcp-restart <n> # Nastavi največje število IPCP terminate zahtev na <n> (privzeto 3). #ipcp-max-terminate <n> # Nastavi največje število IPCP cobfigure zahtev na <n> (privzeto 10). #ipcp-max-configure <n> # Nastavi največje število vrnjenih IPCP configure-NAK-ov preden začneš # pošiljati configure-Rejecte na <n> (privzeto 10). #ipcp-max-failure <n> # Nastavi PAP restart interval na <n> sekund (privzeto 3). #pap-restart <n> # Nastavi največje število PAP authenticate zahtev na <n> (privzeto 10). #pap-max-authreq <n> # Nastavi CHAP restart interval na <n> sekund (privzeto 3). #chap-restart <n> # Nastavi največje število CHAP zahtev na <n> (privzeto 10). #chap-max-challenge <n> # S to opcijo bo pppd zahteval CHAP avtentikacijo vsakih <n> sekund. #chap-interval <n> # S to opcijo bo pppd sprejel idejo oddaljenega konca o lokalni IP številki, # čeprav je bila lokalna številka podana kot opcija. #ipcp-accept-local # S to opcijo bo pppd sprejel oddaljeno IP številko, ki jo bo podal # oddaljeni konec, čeprav je bila ta podana kot opcija. #ipcp-accept-remote </code> <sect1>Katere možnosti naj uporabim? (Brez PAP/CHAP) <p> Kot vedno je to odvisno :-]. Navedene možnosti bi morale delovati z večino strežnikov. <p> Če to NE deluje, <bf/preberite datoteko s šablono/ (<tt>/etc/ppp/options.tpl</tt>) <bf/in/ man strani za pppd <bf/in/ se pogovorite z administratorjem/službo za podporo uporabnikov ki skrbijo za strežnik, s katerim se povezujete. <p> Vedeti morate tudi, da te skripte za povezovanje uporabljajo nekatere možnosti v ukazni vrstici, da bi bile stvari bolj jasne in enostavne za spreminjanje. <code> # /etc/ppp/options (BREZ PAP/CHAP) # # Prepreči pppd-ju, da bi se podvojil v ozadje -detach # # uporabljaj linije za nadzor modema modem # uporabi uucp zaklepanje za izključen dostop do serijske naprave lock # uporabi strojni nadzor pretoka crtscts # ustvari privzeto pot v usmerjevalni tabeli defaultroute # NE nastavi nobenih ,ubežnih` kontrolnih sekvenc asyncmap 0 # pošiljaj pakete z največ 552 bajti mtu 552 # sprejemaj pakete z največ 552 bajti mru 552 # #-------KONEC VZORČNE DATOTEKE /etc/ppp/options (brez PAP/CHAP) </code> <sect>Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol)<label id="pap"> <p> Če strežnik, s katerim se povezujete, zahteva avtentikacijo PAP ali CHAP, imate malenkost več dela. <p> Zgornji datoteki z možnostmi dodajte sledeče vrstice <code> # # prisili pppd, da uporabi uporabniško pri PIS-u kot ,gostiteljsko ime` med # avtentikacijo name <vaše uporabniško ime pri PIS-u> # to vrstico morate spremeniti # # Če imate PPP strežnik in morate prisiliti uporabo PAP/CHAP, odstranite # znak ,#` pred pravo opcijo. NE uporabljajte tega, če se povezujete s PPP # strežnikom. #+chap #+pap # # Če uporabljate ŠIFRIRANA gesla v datoteki /etc/ppp/pap-secrets, odstranite # znak ,#` na začetku sledeče vrste. # Opomba: to NI isto kot MS šifrirana gesla, ki se jih da nastaviti v MS # RAS-u na Windows NT. #+papcrypt </code> <sect1>Uporaba MSCHAP-a <p> Microsoft Windows NT RAS lahko uporablja variacijo CHAP-a (Challenge/Handshake Authentication Protocol). V datoteki <tt/tar/ z izvorno kodo PPP-ja boste našli datoteko README.MSCHAP80, ki obravnava to. <p> Ali strežnik zahteva avtentikacijo s tem protokolom boste ugotovili z omogočenjem odkrivanja napak (,,razhroščevanje``) v pppd-ju. Če strežnik zahteva tako avtentikacijo, boste videli take vrstice <code> rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>] </code> <p> Pomemben podatek je <bf/auth chap 80/. <p> Da bi uporabljali MS CHAP, morate prevesti pppd, da bo to podpiral. Oglejte si datoteko <tt/README.MSCHAP80/ za navodila za prevajanje in uporabo te variacije. <p> Trenutno to omogoča le povezavo Linux PPP odjemalca z MS Windows NT strežnikom. <bf/NE/ podpira uporabe MSCHAP80 avtentikacije na Linux strežniku. <sect1>PAP/CHAP secrets datoteka <p> Če uporabljate pap ali chap avtentikacijo, morate ustvariti datoteki s ,,skrivnostmi``. To sta: <code> /etc/ppp/pap-secrets /etc/ppp/chap-secrets </code> <p> Biti morata last uporabnika root, skupine root in imeti pravice 740 zaradi varnosti. <p> Najprej morate o PAP-u in CHAP-u vedeti to, da sta zasnovana za avtentikacijo <bf/računalniških sistemov/, ne <bf/uporabnikov/. <p> ,,Huh? Kakšna je razlika?`` vas slišim spraševati. <p> Ko je vaš računalnik ustvaril PPP povezavo s strežnikom, jo lahko uporablja <bf/VSAK/ uporabnik na vašem sistemu, ne samo vi. Zato lahko z uporabo PPP-ja ustvarite povezavo dveh lokalnih omrežij v omrežje širokega dosega (WAN). <p> PAP lahko (in CHAP to tudi <bf/NAREDI/) zahteva <bf/dvosmerno/ avtentikacijo - veljavno ime in geslo je potrebno na obeh vpletenih straneh. Kljub temu pa to <bf/NI/ način na katerega večina PPP strežnikov ponuja klicne povezave s PAP avtentikacijo. <p> Vaš PIS vam bo verjetno dal uporabniško ime in geslo da bi se povezali z njegovim sistemom. Vašega PIS-a sploh ne zanima ime vašega računalnika, zato boste verjetno morali uporabiti vaše uporabniško ime kot ime vašega računalnika. <p> To boste dosegli z uporabo pppd opcije <tt/name uporabniško ime/. Da bi uporabili uporabniško ime, katerega vam je dodelil vaš PIS, dodajte vrstico <code> name vaše_uporabniško_ime_pri_PISu </code> <p> v vašo datoteko <tt>/etc/ppp/options</tt>. <p> Načeloma bi morali za PAP uporabiti opcijo <tt/user vaše_uporabniško_ime_pri_PISu/, vendar je pppd dovolj pameten, da uporabi <tt/name/ kot <tt/user/, kadar mora uporabiti PAP. Prednost uporabe <tt/name/ je v tem, da je na voljo tudi za CHAP. <p> Ker se PAP uporablja za avtentikacijo <bf/računalnikov/, bi morali določiti tudi ime računalnika na drugi strani linije. Ker pa ima večina ljudi samo enega PIS-a, lahko uporabite zvezdico (*) za ime oddaljenega računalnika v datoteki <tt/secrets/. <p> Potrebno je tudi omeniti, da mnogo PIS-ov upravlja več terminalskih strežnikov, na katere so priključeni modemi - vsakega z drugim imenom, toda dosegljivih prek ISTE telefonske številke. V takih primerih je zelo težko vnaprej vedeti, kako bo ime računalniku, na katerega se bomo priključili. <sect1>Datoteka PAP secrets <p> Datoteka <tt>/etc/ppp/pap-secrets</tt> izgleda takole <code> # Gesla za avtentikacijo z uporabo PAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi </code> <p> Štiri polja so ločena s tabulatorjem, zadnje je lahko prazno (kar hočete za povezavo z dinamičnimi in verjetno tudi statičnimi IP številkami). <p> Recimo da vam je PIS dodelil uporabniško ime <tt/fred/ in geslo <tt/flintstone/. V datoteki <tt>/etc/ppp/options[.ttySx]</tt> nastavite opcijo <tt/name fred/ in nastavite datoteko <tt>/etc/ppp/pap-secrets</tt>: <code> # Gesla za avtentikacijo z uporabo PAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi fred * flintstone </code> <p> To pove pppd-ju, naj za ime računalnika uporabi <tt/fred/ (čeprav ni pravo ime računalnika) in za <bf/VSAK/ strežnik uporabi geslo <tt/flintstone/. <p> Ni vam treba vpisati lokalnega IP naslova, razen če morate VSILITI določen lokalni statični IP naslov. Četudi to poskušate, verjetno ne bo delovalo, ker večina PPP strežnikov (iz varnostnih razlogov) ne dovoli oddaljenemu sistemu nastaviti IP številke. <sect1>Datoteka CHAP secrets <p> To zahteva da imate vzajemne avtentikacijske metode - kar pomeni da morate dovoliti da se vaš računalnik predstavi strežniku <bf/IN/ da se strežnik predstavi vašemu računalniku. <p> Če je vaš računalnik <tt/fred/ in oddaljeni <tt/barney/, bi vaš računalnik imel <tt>name fred remotename barney</tt>, oddaljeni pa <tt>name barney remotename fred</tt> v datoteki <tt>/etc/ppp/options.ttySx</tt>. <p> Fredova datoteka <tt>/etc/chap-secrets</tt> bi izgledala takole, <code> # gesla za avtentikacijo z uporabo CHAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi fred barney flintstone barney fred wilma </code> <p> takole pa barneyeva <code> # gesla za avtentikacijo z uporabo CHAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi barney fred flintstone fred barney wilma </code> <p> Zapomnite si, da morata oba računalnika imeti vnose za dvosmerno avtentikacijo. To dovoli, da se lokalni računalnik predstavi oddaljenemu <bf/IN/ oddaljeni lokalnemu. <sect1>Več povezav s PAP avtentikacijo <p> Nekateri uporabniki se povezujejo z več kot enim strežnikom z uporabo PAP-a. Če imajo na vsakem drugo uporabniško ime, to sploh ni problem. <p> Nekateri uporabniki pa imajo na dveh (ali celo več) strežnikih enako uporabniško ime. To ustvari problem izbire pravilne vrstice iz datoteke <tt>/etc/ppp/pap-secrets</tt>. <p> Kot verjetno pričakujete, PPP ponuja mehanizem za premaganje te težave. PPP vam dovoli, da nastavite ,,domnevno ime`` za oddaljeni računalnik z uporabo pppd opcije <bf/remotename/. <p> Recimo da imate uporabniško ime fred na dveh strežnikih. V datoteko <tt>/etc/ppp/pap-secrets</tt> vpišete nekaj takega: <code> fred pppserver1 barney fred pppserver2 wilma </code> <p> Za povezavo s strežnikom pppserver1 uporabite <tt>name fred remotename pppserver1</tt> v vaši datoteki options, za strežnik pppserver2 <tt>name fred remotename pppserver2</tt>. <p> Ker lahko izberete datoteko s ppp opcijami z uporabo opcije <tt/file filename/, lahko napišete skripto za povezavo z vsakim vašim PPP strežnikom, ki bo izbrala pravilno <tt/remotename/ opcijo. <sect>Ročna vzpostavitev PPP povezave<label id="manual"> <p> ko ste uredili datoteki <tt>/etc/ppp/options</tt> in <tt>/etc/resolv.conf</tt> (in po potrebi tudi <tt>/etc/ppp/pap|chap-secrets</tt>), lahko preizkusite nastavitve z ročno vzpostavitvijo PPP povezave. (Ko bo PPP povezava delovala, bomo proces avtomatizirali). <p> Za ta preizkus mora biti vaš komunikacijski program sposoben izhoda BREZ resetiranja modema. Minicom to lahko naredi - ALT Q (ali v starejših verzijah CTRL A Q) <p> Prepričajte se, da ste prijavljeni kot root. <p> Zaženite komunikacijski program (naprimer minicom), pokličite PPP strežnik in se prijavite kot navadno. Če morate za zagon PPP-ja na strežniku vpisati ukaz, ga vpišite. Sedaj boste kot prej videli smeti. <p> Če uporabljate pap ali chap, bi morali takoj po povezavi - brez prijavljanja - z oddaljenim računalnikom videti smeti (čeprav se to na nekaterih strežnikih ne zgodi. Poskusite pritisniti <bf/Enter/ in poglejte če se začnejo nabirati smeti). <p> Sedaj zapustite komunikacijski program <em/brez resetiranja modema/ (ALT Q ali CTRL A Q v minicomu) in na Linuxovem pozivu (kot root) vtipkajte <code> pppd -d -detach /dev/ttySx 38400 & </code> <p> Opcija -d vključi razhroščevanje - pogovor za vzpostavitev ppp povezave se bo vpisal v sistemski dnevnik - kar je uporabno, če boste imeli težave. <p> Lučke na vašem modemu bi morale utripati medtem ko se vzpostavlja povezava PPP. Da se vzpostavi bo trajalo nekaj časa. <p> Na tej točki lahko pogledate vmesnik za PPP z ukazom <code> ifconfig </code> <p> Kot dodatek k Ethernet in loop back napravam, ki jih imate, bi morali videti nekaj takega: <code> 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 </code> <p> Kjer je <itemize> <item>inet addr:10.144.153.10 IP številka na vaši strani povezave, <item>P-t-P:10.144.153.5 STREŽNIKOVA IP številka. </itemize> <p> (Seveda <tt/ifconfig/ ne bo izpisal teh številk, ampak tiste, ki jih uporablja vaš PPP strežnik.) <p> Opomba: <tt/ifconfig/ vam pove tudi, da je povezava VZPOSTAVLJENA in TEČE! <p> Če ne dobite nobenih ppp naprav ali nekaj takega <code> 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 </code> <p> Vaša PPP povezava ni bila vzpostavljena... oglejte si poznejši razdelek za razhroščevanje! <p> Morali bi videti tudi pot do oddaljenega gostitelja (in naprej). Za to uporabite ukaz <code> route -n </code> <p> Morali bi videti nekaj takega: <code> 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 </code> <p> Posebno pomembno je, da vidite DVA vnosa, ki kažeta na naš ppp vmesnik. <p> Prvi je pot do GOSTITELJA (na katero opozarja zastavica <tt/H/) in nam omogoča videti gostitelja, na katerega smo priključeni - toda nič dlje. <p> Druga je privzeta pot (ustvarjena z uporabo izbire pppd-ja <tt/defaultroute/). To je pot, ki pove našemu računalniku z Linuxom, naj pošlje vse pakete, ki NISO namenjeni na lokalni Ethernet(-e) - za katere imamo specifične omrežne poti - PPP strežniku samemu. Nato je PPP strežnik odgovoren za usmerjanje paketov v Interet in usmerjanje povratnih paketov nazaj k nam. <p> Če ne vidite usmerjevalne tabele z dvema vnosoma, je nekaj narobe. Če vaš sistemski dnevnik pokaže sporočilo, da pppd ni zamenjal obstoječe privzete poti, potem privzeta pot kaže na vaš Ethernet vmesnik - ki <bf/MORA/ biti zamenjana z specifično omrežno potjo: <bf/IMATE LAHKO SAMO ENO PRIVZETO POT!!!/ <p> Morali boste preiskati vaše inicializacijske datoteke, da najdete mesto, kjer je nastavljena privzeta pot (uporabljen bo ukaz <tt/route add default.../). Spremenite to v nekaj takega kot <tt/route add net.../. <p> Sedaj preizkusite povezavo s ,,pinganjem`` strežnika na njegovi IP številki, kot jo poroča ifconfig, npr. <code> ping 10.144.153.51 </code> <p> Prejeti bi morali nekaj takega: <code> 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 </code> <p> Ta izpis se bo nadaljeval v neskončnost - za ustavitev pritisnite CTRL C, takrat boste dobili nekaj informacij: <code> --- 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 </code> <p> Zaenkrat vse dobro. <p> Sedaj poskušajte ,,pingat`` gostitelja po imenu (ne ime samega PPP strežnika, ampak nekega drugega strežnika, za katerega veste, da bo verjetno tekel...). Naprimer: <code> ping sunsite.unc.edu </code> <p> Tokrat bo nekaj presledka, ko bo Linux iskal IP številko za polno ime domene, katero ,,pingate``, od DNS-a, ki ste ga vpisali v <tt>/etc/resolv.conf</tt> - torej ne skrbite (videli pa boste utripanje modemovih lučk). Kmalu boste videli podoben izpis: <code> 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 </code> <p> Znova ustavite itpis s CTRL C in poglejte statistiko... <code> --- 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 </code> <p> Če ne dobite odgovora, poskusite pingati IP naslov DNS strežnika pri vašem PIS-u. Če dobite odgovor, imate očitno težavo z <tt>/etc/resolv.conf</tt>. <p> Če to ne deluje, imate usmerjevalni problem, ali pa ima vaš PIS probleme z usmerjanjem paketov k vam. Preverite vašo usmerjevalno tabelo, kot je opisano zgoraj, in če je ta v redu pokličite vašega PIS-a. Dober test PIS-a je uporaba drugega operacijskega sistema za povezavo. Če lahko pridete mimo PIS-a s tem, potem je napaka na vašem koncu. <p> Če vse deluje, prekinite povezavo z ukazom <code> ppp-off </code> <p> Po kratkem premoru, bi moral modem sprostiti linijo. <p> Če to ne deluje, izklopite modem ali zaženite komunikacijski program in prekinite modem z <tt/+++/ in nato odložite z <tt/ATH0/ ko dobite odziv <tt/OK/. <p> Mogoče boste morali tudi odstraniti datoteko <tt/lock/, ki jo ustvari pppd: <code> rm -f /var/lock/LCK..ttySx </code> <sect>Avtomatizacija povezav - priprava povezovalnih skript <label id="automate"> <p> Medtem ko se lahko nadaljujete prijavljati ročno kot zgoraj, je dosti bolj čedno, da naredite nekaj skript, ki to delo opravijo namesto vas. <p> Skupina skript avtomatizira prijavljanje in zagon PPP-ja, tako da je vse kar morate narediti (kot root ali član PPP skupine) za vzpostavitev povezave, vnos enega samega ukaza <sect1>Skripte za uporabniško ime/geslo avtentikacijo <p> Če vaš PIS NE zahteva uporabe PAP/CHAP-a, so to skripte za vas! <p> Če je ppp paket pravilno nameščen, bi morali imeti dve vzorčni datoteki. Za PPP 2.1.2 sta v <tt>/usr/sbin</tt>, za PPP 2.2 pa v <tt>/etc/ppp/scripts/</tt>. Imenujeta se: <p> za PPP-2.1.2 <tscreen><verb> ppp-on ppp-off </verb></tscreen> <p> in za PPP-2.2 <tscreen><verb> ppp-off ppp-on ppp-on-dialer </verb></tscreen> <p> Če uporabljate PPP 2.1.2, vas rotim, da zbrišete vzorčni datoteki. Z njima so možne težave - in ne govorite mi, da delujeta v redu - tudi jaz sem ju uporabljal dosti časa (in priporočal v prvi verziji tega HOWTO-ja)! <p> Za dobro uporabnikov PPP 2.1.2, sta tu BOLJŠA primera, vzeta iz distribucije PPP 2.2. Priporočam, da skopirate ti skripti <bf/namesto/ starih skript PPP 2.1.2. <sect1>skripta <tt/ppp-on/ <p> To je prva izmed PARA skript, ki dejansko vzpostavita povezavo. <code> #!/bin/sh # # Skripta za vzpostavitev PPP povezave. To je prva izmed para skript. # Te skripte niso varne, ker je geslo vidno z uporabo ukaza ,,ps``. # Vsekakor pa sta skripti enostavni. # # To so parametri. Po potrebi jih spremenite. TELEPHONE=555-1212 # Telefonska številka ACCOUNT=janez # Uporabniško ime PASSWORD=geselce # Geslo za to uporabniško ime LOCAL_IP=0.0.0.0 # Lokalna IP številka, če je znana, sicer 0.0.0.0 REMOTE_IP=0.0.0.0 # Oddaljena IP številka. Navadno 0.0.0.0 NETMASK=255.255.255.0 # Pravilen netmask, če je potreben # # Izvozimo jih, da bodo na voljo skripti ,,ppp-on-dialer`` export TELEPHONE ACCOUNT PASSWORD # # To je lokacija skripte, ki pokliče in se prijavi. Prosimo uporabljajte # absolutne poti, ker spremenljivke $PATH tu ni. (Kaj takega pri ,,root-u`` # bi bila varnostna luknja, zato ne sprašujte.) # DIALER_SCRIPT=/etc/ppp/ppp-on-dialer # # Vzpostavimo povezavo # # exec /usr/sbin/pppd debug /dev/ttySx 38400 \ $LOCAL_IP:$REMOTE_IP \ connect $DIALER_SCRIPT </code> <p> Tu je skripta ppp-on-dialer <code> #!/bin/sh # # To je drugi del povezovalnih skript. Vzpostavil bo povezavo. # /usr/sbin/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 </code> <p> Za PPP-2.2, izgleda skripta <tt/ppp-off/ takole: <code> #!/bin/sh ###################################################################### # # Ugotovimo napravo, ki jo je treba ,,pokončati``. # if [ "$1" = "" ]; then DEVICE=ppp0 else DEVICE=$1 fi ###################################################################### # # Če je ppp0 pid datoteka prisotna, program teče. Ustavimo ga. if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` # # Če ukaz kill ne deluje, na tem pid-u ne teče noben proces. Lahko pomeni # tudi, da bo lock datoteka ostala. Dobro bi bilo zbrisati tudi lock datoteko. if [ ! "$?" = "0" ]; then rm -f /var/run/$DEVICE.pid echo "NAPAKA: odstranjena stara pid datoteka" exit 1 fi # # Uspeh. Pustimo pppd-ju počistit lastno svinjarijo. echo "PPP povezava na $DEVICE končana." exit 0 fi # # na ppp0 ne teče ppp proces echo "NAPAKA: na $DEVICE ni PPP povezave" exit 1 </code> <sect1>Urejanje priskrbljenih PPP zagonskih skript <p> Ker so nove skripte v dveh delih, jih bomo urejali posebej. <sect2>Skripta ppp-on <p> Skripto boste morali urediti, da bo odražala VAŠE uporabniško ime pri vašem PIS-u, VAŠE geslo pri vašem PIS-u in telefonsko številko vašega PIS-a. <p> Vsaka od vrst kot <tt/TELEPHONE=/ dejansko ustvari lupinsko spremenljivko, ki vsebuje podatek desno od znaka ,=` (Seveda brez komentarjev). Uredite vsako od teh vrst, da bo pravilna za vašega PIS-a in povezavo. <p> Ker IP številko (če je potrebno) nastavite v <tt>/etc/ppp/options/</tt>, IZBRIŠITE vrstico <code> $LOCAL_IP:$REMOTE_IP \ </code> <p> Preverite tudi , da spremenljivka DIALER_SCRIPT kaže na polno pot in ime skripte, ki jo boste dejansko uporabljali. Če ste jo torej premaknili ali preimenovali, popravite <tt/ppp-on/ skripto! <sect2>ppp-on-dialer skripta <p> To je druga od skript, ki dejansko vzpostavijo našo ppp povezavo. <p> Opomba: chat skripta je navadno v eni vrstici. Leve poševnice so uporabljene za nadaljevanje vrstice čez več fizičnih vrst (za človeško branje) in ne tvorijo same skripte. <p> Vseeno pa jo je dobro podrobno pogledati, da razumemo kaj naj bi dejansko počela! <sect1>Kaj Chat skripta pomeni... <p> Chat skripta je zaporedje parov ,,pričakovani niz``, ,,poslani niz``. Zapomnite si, da <bf/ZMERAJ nekaj/ pričakujemo, preden nekaj pošljemo. <p> Če moramo nekaj poslati, <bf/ne da/ bi nekaj prejeli, moramo uporabiti prazen pričakovan niz (viden kot '') in podobno, ko nekaj pričakujemo brez pošiljanja! Če niz sestoji iz več besed (npr. NO CARRIER), moramo niz dati v narekovaje, da ga chat vidi kot celoto. <p> chat vrstica v naši skripti je: <code> exec /usr/sbin/chat -v </code> <p> Ta pokliče chat, -v mu pove, naj ves svoj V/I (vhod/izhod) vpiše v sistemski dnevnik (navadno <tt>/var/log/messages</tt>). Ko skripta <tt/chat/ deluje zanesljivo, zbrišite <tt/-v/, da ne boste imeli nepotrebnega smetja v vašem dnevniku. <code> TIMEOUT 3 </code> To nastavi, koliko časa chat čaka na niz, ki ga pričakuje (v sekundah). Mogoče boste morali to povečati na 5 ali 10 sekund, če imate res počasen modem! <code> ABORT '\nBUSY\r' </code> <p> Če sprejme niz BUSY, prekine operacijo. <code> ABORT '\nNO ANSWER\r' </code> <p> Podobno. <code> ABORT '\nRINGING\r\n\r\nRINGING\r' </code> <p> Če chat večkrat sprejme niz RINGING, prekine operacijo. To je zato, ker vas po telefonu nekdo kliče! <code> '' \rAT </code> <p> Chat ne pričakuje ničesar, in pošlje niz AT. <code> OK-+++\c-OK ATH0 </code> <p> Ta niz je nekoliko bolj kompliciran, ker uporablja nekatere chatove možnosti odpravljanja napak. <p> Pravi pa tole... pričakuj <tt/OK/, če ga NE sprejmeš (ker modem ni v ukaznem načinu), pošlji <tt/+++/ (standardni Hayes kompatibilni ukaz, ki modem vrne v ukazni način) in pričakuj <tt/OK/. Potem pošlji <tt/ATH0/ (niz za prekinitev linije). To omogoča, da je skripta kos situaciji, ko modem obtiči na liniji! <code> TIMEOUT 30 </code> <p> Nastavi čas na 30 sekund za preostanek skripte. Če imate težave z zaključevanjem chat skripte zaradi timeouta, povečajte vrednost na 45 sekund ali več. <code> OK ATDT$TELEPHONE </code> <p> Pričakuj <tt/OK/ (modemov odgovor na ukaz <tt/ATH0/) in kliči številko, ki jo želimo klicati. <code> CONNECT '' </code> <p> Pričakuj <tt/CONNECT/ (kar modem pošlje, ko se oddaljeni modem oglasi) in ne pošlji ničesar. <code> ogin:--ogin: $ACCOUNT </code> <p> Znova vgrajenega nekaj okrevanja po napakah. Pričakuj login poziv (...ogin:), če pa ga ne dobiš do timeouta, pošlji return in zopet čakaj na poziv. Ko poziv prejmeš, pošlji uporabniško ime (shranjeno v lupinski spremenljivki $ACCOUNT). <code> assword: $PASSWORD </code> <p> Pričakuj poziv za geslo in pošlji svoje geslo (znova, shranjeno v lupinski spremenljivki). <p> Ta chat skripta vsebuje nekaj sposobnosti okrevanja po napakah. Chat ima še mnogo možnosti, ki tukaj niso prikazane. Za podrobnosti si oglejte <tt/man 8 chat/. <sect2>Zagon PPP-ja na strežniku <p> Medtem ko je ppp-on-dialer skripta dobra za strežnike, ki samodejno zaženejo pppd na strežniku, ko se prijavite, nekateri strežniki zahtevajo ekspliciten zagon PPP-ja na strežniku. <p> Če morate vnesti ukaz za zagon PPP-ja na strežniku, MORATE popraviti ppp-on-dialer skripto. <p> Na koncu skripte (po vrstici z geslom) dodajte še en <bf/pričakovano poslano/ par - Ta naj čaka na vaš ukazni poziv (pazite na znake, ki imajo v Bourneovi lupini poseben pomen - kot so $ in [ ali ] (odprt in zaprt oglati oklepaj). <p> Ko chat sprejme lupinski poziv, mora poslati ukaz za zagon ppp-ja, potreben na PPP strežniku vašega PIS-a. <p> V mojem primeru, ima PPP strežnik standarden Linux Bash poziv <code> [hartr@kepler hartr]$ </code> <p> in zahteva naj vpišem <code> ppp </code> <p> za zagon PPP-ja na strežniku. <p> Tu je dobro dovoliti nekaj okrevanja po napakah, tako da v mojem primeru uporabim <code> hartr--hartr ppp </code> <p> to pravi naj, če pred določenim časom ne dobi poziva, chat pošlje return in znova čaka na poziv. <p> Ko ga sprejme, pošlje niz <tt/ppp/. <p> Opomba: ne pozabite dodati \ na konec prejšnje vrste, da chat misli, da je celotna skripta v eni vrsti! <p> Na žalost nekateri strežniki producirajo različne pozive! Mogoče se boste morali ročno povezati večkrat, da boste vedeli, kaj se dogaja in izbrali prave pričakovane nize. <sect1>Chat skripta za PAP/CHAP povezave <p> Če vaš PIS uporablaj PAP/CHAP, je chat skripta mnogo bolj enostavna. Vse kar mora narediti je, da pokliče številko, počaka na povezavo in prepusti prijavljanje pppd-ju! <code> #!/bin/sh # # To je drugi del ppp-on skripte. Izvedel bo povezovanje za želeno povezavo. # exec /usr/sbin/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 '' \ </code> <sect1>Pppd opciji <tt/debug/ in <tt/file option_file/ <p> Kot smo že videli, lahko vključite izpis razhroščevalnih informacij z opcijo -d pppd-ju. Opcija ,debug` je enakovredna. <p> Ker vzpostavljamo novo povezavo z novo skripto, to opcijo zaenkrat pustimo. (pozor: če imate malo prostora na disku, lahko ta izpis hitro poveča vaš sistemski dnevnik in vas spravi v težave - toda za kaj takega se morate poskusiti povezati kar nekajkrat). <p> Ko enkrat vse deluje v redu, lahko to opcijo umaknete. <p> Če ste vašo datoteko z možnostmi imenovali drugače kot <tt>/etc/ppp/options</tt> ali <tt>/etc/ppp/options.ttySx</tt>, imenujte datoteko z uporabo opcije <tt/file/ pppd-ju - naprimer: <code> exec /usr/sbin/pppd debug file options.mojpis /dev/ttyS0 38400 \ </code> <sect>Preizkus vaše povezovalne skripte <p> Odprite nov Xterm (če ste v X-ih) ali odprite novo navidezno konzolo in se prijavite kot root. <p> Tukaj vnesite ukaz <tscreen><verb> tail -f /var/log/messages </verb></tscreen> <p> (ali kakorkoli se imenuje vaš sistemski dnevnik). <p> V prvem oknu (ali navidezni konzoli) vnesite ukaz <tscreen><verb> ppp-on & </verb></tscreen> <p> (ali kakorkoli ste imenovali popravljeno verzijo /usr/sbin/ppp-on). Če skripte ne poženete v ozadju z & na koncu ukaza, ne boste dobili nazaj poziva, dokler povezava ne bo prekinjena. <p> Sedaj preklopite nazaj v okno, kjer se izpisuje vaš sistemski dnevnik. <p> Videli boste nekaj takega kot sledi (če ste seveda uporabili opciji -v za chat in -d za pppd)....tu so chat skripta in odgovori vpisani v dnevnik, sledijo jim zagonski podatki pppd-ja: <code> 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: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: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 </code> <p> (Opomba: jaz uporabljam statične IP številke, zato je moj računalnik poslal te PPP strežniku. Če uporabljate dinamične IP številke, tega ne boste videli.) Ta strežnik tudi potrebuje poseben ukaz za zagon ppp-ja na njegovem koncu. <p> To izgleda v redu - kot prej testirajte s ,,pinganjem`` IP številk in imen. <p> Zaženite vaš spletni brskalnik in surfajte - povezani ste! <sect>Prekinitev PPP povezave<label id="off"> <p> Ko ste končali z PPP povezavo, uporabite standardni ppp-off ukaz za prekinitev. (pomnite - biti morate root ali član skupine PPP!). <p> V sistemskem dnevniku bo nekaj takega: <code> 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. </code> <p> Ne skrbite zaradi <tt/SIOCDELRT/ - to je le pppd, ki umira, in ni vam treba skrbeti. <sect>Odpravljanje težav<label id="problems"> <p> Obstaja morje razlogov, zakaj vaša povezava ne deluje - chat ni uspel pravilno dokončati svojega dela, imate motnje na liniji itd. Preglejte sistemski dnevnik za namige. <sect1>V jedro sem vključil PPP podporo vendar... <p> Zelo pogosta težava je, da ljudje vključijo PPP podporo v jedro, in ko poskušajo pognati pppd, se jedro pritoži da ne podpira ppp-ja! Za takšno obnašanje obstajajo različni razlogi. <sect2>Ali ste zagnali računalnik s pravim jedrom? <p> Medtem ko <bf/ste/ prevedli jedro s posporo za ppp, ne poganjate pravega jedra. To se lahko zgodi, če ne osvežite datoteke <tt>/etc/lilo.conf</tt> in poženete lilota. <p> Dober test jedra lahko dobite z ukazom <tt/uname -a/, ki bi moral izpisati takšno vrstico <code> Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586 </code> <p> To izpiše verzijo jedra ter datum, ko je bilo jedro prevedeno - kar bi vam moralo dati kar dober namig, kaj se dogaja. <sect2>Ali ste vključili ppp podporo kot modul? <p> Če ste prevedli podporo za ppp v jedru kot modul, toda niste prevedli modulov in jih namestili, lahko dobite tako napako. Preberite Kernel-HOWTO in datoteko README v <tt>/usr/src/linux</tt>! <p> Še ena možnost v povezavi z moduli je, da pričakujete, da bodo potrebni moduli avtomatsko naloženi, vendar ne poganjate <tt/kerneld/-ja. (ki avtomatsko nalaga in odstranjuje module po potrebi). Preverite kerneld mini-HOWTO za navodila za namestitev kerneld-ja. <sect2>Ali uporabljate pravo verzijo PPP-ja za vaše jedro? <p> Z jedrom 2.0.x <bf/morate/ uporabljati ppp-2.2. Ppp-2.2 lahko uporabljate z jedri 1.2.x (če popravite jedro), sicer morate uporabljati ppp 2.1.2. <sect2>Ali poganjate pppd kot root? <p> Če pppd-ja ne poganjate kot root (in pppd ni suid root), lahko prejmete to sporočilo. <sect1>Moj modem se poveže, toda ppp se nikoli ne zažene <p> Na to temo obstajajo brezštevilne variacije (poglejte v comp.os.linux...). <p> <bf/ZELO/ pogosta napaka je, da ste nekaj zatipkali v vaših skriptah. Edina stvar, ki jo lahko naredite je, da zapisujete chatov pogovor med vašim računalnikom z Linuxom in strežnikom v sistemski dnevnik (<tt>/var/log/messages</tt>) in greste skozi ta izpis <em/vrsto po vrsto/. Mogoče se boste morali ročno prijaviti na strežnik, da stvari spet preverite. <p> Dnevnik morate zelo pazljivo primerjati z dejanskimi pozivi in ves čas misliti, da imamo ljudje navado, da preberemo kar <em/mislimo/, da smo napisali, ne pa kar je dejansko napisano! <sect1>Sistemski dnevnik pravi: ,,<tt/serial line is not 8 bit clean/...`` <p> Tudi na to obstajajo variacije - kot naprimer <tt/serial line looped back/ ipd., razlog pa je lahko ena (ali zaporedje) od številnih stvari. <p> Za razumevanje kaj se dogaja, je nujno nekoliko doumeti, kaj se dogaja ,,za odrom``, kjer nastopa pppd. <p> Ko se pppd zažene, pošlje LCP (link control protocol) pakete oddaljenemu računalniku. Če sprejme veljaven odgovor, gre na naslednjo stopnjo (uporabi IPCP - kontrolne pakete za IP) in šele ko se to pogajanje konča, se zažene dejanski sloj IP, tako da lahko uporabljate PPP povezavo. <p> Če na drugem koncu ni ppp strežnika ko vaš PC pošlje lcp pakete, se ti zrcalijo na prijavnem procesu na oddaljenem koncu. Ker ti paketki uporabljajo 8 bitov, odbijanje olupi 8. bit (ASCII je 7-bitna koda). PPP to vidi in se potemtakem pritoži. <p> Obstaja več razlogov, da se pripeti to odbijanje. <sect2>Na strežnik se ne prijavljate pravilno <p> Ko se vaša chat skripta zaključi, se na vašem računalniku zažene pppd. Če niste končali prijavnega procesa na strežniku (vključno s pošiljanjem ukaza za zagon PPP-ja na strežniku), se PPP ne bo zagnal. <p> Torej se lcp paketi odbijejo in dobite to napako. <p> Skrbno morate preveriti ni popraviti (po potrebi) vašo chat skripto (glejte zgoraj). <sect2>Na strežniku ne zaganjate PPP-ja <p> Nekateri PPP strežniki zahtevajo, da vpišete ukaz in/ali RETURN po zaključku prijave, preden oddaljeni računalnik zažene ppp. <p> Preverite chat skripto (glejte zgoraj). <p> Če se prijavite ročno in ugotovite, da morate po tem poslati RETURN za zagon PPP-ja, enostavno dodajte prazen pričakuj/pošlji par na konec vaše chat skripte (prazen niz dejnsko pošlje RETURN). <sect2>Oddaljeni PPP proces se počasi zažene <p> Ta problem je nekoliko bolj prebrisan! <p> Po privzeti vrednosti vaš računalnik z Linuxom pošlje največ 10 lcp konfiguracijskih zahtevkov. Če je strežnik nekoliko počasen, je lahko vseh 10 poslanih preden je oddaljeni PPP pripravljen za njihov sprejem. <p> Na vašem računalniku vidi pppd vseh 10 zahtev vrnjenih (z osmim bitom odtrganim) in odneha. <p> Obstajata dve rešitvi: <p> Dodajte <tt/lcp-max-configure 30/ vašim ppp možnostim. To poveča največje število lcp konfiguracijskih paketov, ki jih pppd pošlje preden odneha. Za res počasen strežnik jih boste morda potrebovali še več. <p> Lahko pa ste prebrisani tudi vi! Mogoče ste opazili, da ko se prijavite na PPP strežnik in poženete PPP, je <bf/prvi/ znak od ppp smetja vedno tilda (<tt/˜/). <p> Z uporabo tega podatka lahko dodamo nov <tt>pričakuj/pošlji</tt> par na konec chat skripte, ki bo pričakoval tildo ali kaj podobnega. To bi izgledalo takole: <code> \~ '' </code> <p> Opomba: ker ima tilda v ukazni lupini poseben pomen, ji moramo dodati ubežni znak (leva poševnica) <sect1>Privzeta pot ni nastavljena <p> Če pppd noče nastaviti privzete poti, je to zato, ker (dokaj pravilno) noče odstraniti oz. zamenjati že obstoječe privzete omrežne poti. <p> Običajni razlog za to napako je, da v nekaterih distribucijah privzeta pot kaže na Ethernet kartico namesto da bi bila to specifična omrežna pot. <p> Glejte Linux NAG (Network Administrators Guide) in NET2/3 HOWTO-je za informacije o pravilni nastavitvi Ethernet kartice in pripadajočih poti. <p> Možno je tudi, da vaša mreža že uporablja ,vozel` (gateway) ali usmerjevalnik in je vaša usmerjevalna tabela nastavljena, da kaže privzeta pot na to. <p> Urejanje te situacije zahteva kar precej znanja o IP omrežjih in presega namen tega HOWTO-ja. Priporočljivo je, da dobite nekaj strokovnih nasvetov (v novičarskih skupinah ali če koga poznate). <sect1>Ostale težave <p> Poleg naštetih je še precej drugih razlogov, da se ppp ne poveže oz. deluje pravilno. <p> Poglejte v PPP-FAQ (ki je niz vprašanj in odgovorov). To je zelo obširen dokument, in odgovori SO v njem! Iz mojih (žalostnih) izkušenj lahko povem, da če odgovora ni tam, težava ni na strani PPP-ja! V mojem primeru sem uporabljal ELF jedro, programja za module pa nisem nadgradil. Zapravil sem samo 2 dni (in skoraj celo noč) preklinjajoč tisto, kar je bil predtem odličen PPP strežnik! <sect>Kam po pomoč, ko se popolnoma zatakne <p> Če vaše PPP povezave ne morete pripraviti do delovanja, še enkrat preberite ta dokument in vse preverite - v povezavi s tistim, kar vam povesta ,,chat -v...`` in ,,pppd -d``. <p> Preglejte tudi dokumentacijo PPP-ja in FAQ ter ostale omenjene dokumente! <p> Če še vedno niste rešili težav, poskusite v novičarskih skupinah <htmlurl name="comp.os.linux.misc" url="news:comp-os.linux.misc"> in <htmlurl name="comp.os.linux.networking" url="news:comp.os.linux.networking">, katere dokaj redno pregledujejo ljudje, ki vam lahko pomagajo pri PPP-ju, prav tako kot <htmlurl name="comp.protocols.ppp" url="news:comp.protocols.ppp">. <p> Lahko mi pošljete elektronsko pošto, toda imam službo (in življenje), zato ne zagotavljam hitrega odgovora (če sploh). ker je to odvisno od moje obremenitve in zasebnega življenja! <p> Še posebej pomembno je da <bf>NE POŠILJATE RAZHROŠČEVALNEGA IZHODA V NOVIČARSKE SKUPINE, NITI MENI OSEBNO</bf> - prvo zapravlja velike količine omrežnega pretoka, drugo pa bo romalo v <tt>/dev/null</tt> (razen, če sem vas prosil za tak izpis). <sect>Pogoste težave, ko povezava deluje <p> Ena je, da boste našli mnogo PIS-ov, ki podpirajo samo povezovalno programje, ki ga sami razdeljujejo novim uporabnikom, to pa je (navadno) za Microsoft Windows :-( - in mnogo služb za pomoč uporabnikom ne ve nič o Unixu (ali Linuxu). Zatorej bodite od njih pripravljeni na zelo omejeno pomoč! <p> Lahko pa boste tem ljudem seveda naredili uslugo in jih izobrazili o Linuxu (vsak zaposleni pri PIS-ovi službi za pomoč uporabnikom bi moral biti dokaj seznanjen z Internetnimi termini in to pomeni, da bi moral imeti doma računalnik z Linuxom - seveda)! <sect1>Ne vidim dlje kot do PPP strežnika <p> Vaša PPP povezava je pokonci in deluje in lahko ,,pingate`` PPP strežnik z njegovo IP številko (drugo ali ,,remote`` IP številko, ki jo izpiše <tt/ifconfig ppp0/), toda ne morete nikamor dlje. <p> Najprej poskusite ,,pingat`` IP številko, ki ste jo vpisali v <tt>/etc/resolv.conf</tt> kot imenski strežnik. Če to deluje, <bf/lahko/ pridete mimo PPP strežnika (razen če imata isto PPP številko). Zato sedaj ,,pingajte`` polno ime vašega ponudnika: <tscreen><verb> ping moj.ponudnik.si </verb></tscreen> <p> Če to NE deluje, imate problem z razreševanjem imen. Verjetno ste se zatipkali pri vnosu v /etc/resolv.conf. To datoteko natančno preglejte in primerjajte s podatki, ki vam jih je posredoval vaš PIS. <p> Če povezava ŠE VEDNO ne deluje (in je vaš ponudnik potrdil, da njegovi imenski strežniki delujejo), imate težavo nekje drugje. Priporočam, da pregledate svojo namestitev Linuxa (posebej pazite na dovoljenja datotek). <p> Če ŠE VEDNO ne morete ,,pingat`` imenskega strežnika vašega ponudnika z IP številko, je imenski strežnik ustavljen (pokličite ponudnika in preverite) ali pa ima ponudnik problem z usmerjanjem. Znova ga pokličite in preverite. <p> Ena možnost je, da je ,,oddaljeni konec`` Linux PPP strežnik, ki v jedru nima opcije IP forwarding! <p> Dober splošni test je, da se poskusite povezati s ponudnikovim PPP strežnikom z uporabo (gulp) Microsoft Windows. Če v drugem operacijskem sistemu vse deluje z istim uporabniškim imenom, potem je problem v Linuxu in NE pri vašem ponudniku. <sect1>Lahko pošiljam elektronsko pošto, toda ne morem je sprejemati <p> Če uporabljate dinamične IP številke, je to popolnoma normalno. Oglejte si razdelek <ref id="dynamic-server" name="Uporaba storitev Interneta z dinamičnimi IP številkami">. <sect1>Zakaj ljudje ne morejo uporabljati finger, WWW, gopher, talk ipd. na mojem računalniku? <p> Znova, če uporabljate dinamične IP številke, je to popolnoma normalno. Oglejte si razdelek <ref id="dynamic-server" name="Uporaba storitev Interneta z dinamičnimi IP številkami">. <sect>Uporaba storitev Interneta z dinamičnimi IP številkami <label id="dynamic-server"> <p> Če uporabljate dinamične IP številke (in mnogo ponudnikov vam bo dodelilo le dinamično številko, razen če boste plačali bistveno več), boste morali spoznati omejitve, ki jih to postavlja. <p> Najprej, zunanji servisi bodo delovali čisto normalno. Lahko boste pošiljali elektronsko pošto s sendmailom (če ste ga seveda pravilno nastavili), prenašali datoteke z oddaljenih mest, uporabljali <tt/finger/ na uporabnikih drugje, uporabljali splet itd. <p> Na elektronsko pošto boste lahko odgovarjali, ko ne boste povezani. Pošta bo čakala v vrsti, dokler se ne boste znova povezali. <p> Vaš računalnik pa NI povezan 24 ur na dan, niti nima iste IP številke vsakič, ko se povežete. Zato ne morete sprejemati elektronske pošte naravnost na vaš računalnik, zelo težko je tudi nastaviti ftp ali spletni strežnik, ki bi ga vaši prijatelji lahko uporabljali! Kar se tiče Interneta, vaš računalnik ne obstaja kot en stalno povezan računalnik, ker nima svoje stalne IP številke (pomnite, drugi računalniki bodo lahko uporabljali isto IP številko, ko se bodo povezali). <p> Če postavite spletni (ali kakšen drug) strežnik, je popolnoma neznan ostalim uporabnikom na internetu, razen če vejo da je priključen IN njegovo trenutno IP številko. Obstaja mnogo načinov, da dobijo te podatke, od tega da jim telefonirate, pošljete elektronsko sporočilo do zvite uporabe datoteke <tt/.plan/ na lupinskem računu pri vašem PIS-u (če vam le-ta dovoli uporabo finger-ja in lupinski dostop). <p> Za večino uporabnikov to ni problem. Vse, kar želi večina ljudi, je pošiljanje in prejemanje elektronske pošte (z uporabo računa pri njihovem ponudniku), uporaba izhodnih povezav z WWW, ftp in drugimi strežniki na Internetu. Če <em/morate/ imeti vhodne povezave, bi res morali dobiti statično IP številko. Lahko pa poizkusite tudi z zgornjimi namigi... <sect1>Nastavljanje elektronske pošte <p> Celo z dinamičnimi IP številkami lahko nastavite sendmail, da bo poslal vsa sporočila, ki jih boste napisali. Nastavljanje sendmaila je lahko nejasno in težko, zato se ga ta dokument ne loteva. Sendmail bi verjetno morali nastaviti, da bi pošiljal pošto preko poštnega strežnika pri vašem PIS-u (<bf/DS/ opcija v <tt/sendmail.cf/). Za več podatkov si oglejte sendmailovo dokumentacijo in m4 konfiguracije, ki so mu dodane. Skoraj gotovo bo tam ena, ki bo ustrezala vašim potrebam. <p> O sendmailu obstaja tudi nekaj dobrih knjig (še posebej O'Reillyjeva ,biblija`), vendar so te skoraj gotovo prezahtevne za večino uporabnikov! <p> Ko imate sendmail konfiguriran, boste verjetno hoteli, da sendmail pošlje vsa sporočila, ki čakajo v izhodni vrsti takoj, ko se vzpostavi povezava. Dodajte ukaz <tscreen><verb> sendmail -q & </verb></tscreen> <p> v vašo skripto <tt>/etc/ppp/ip-up</tt> (glejte spodaj). <p> Vhodna pošta je pri dinamičnih IP številkah problem. Lahko jo sposobite takole: <itemize> <item>konfigurirajte poštni program, da ima vsa poslana pošta header ,,Reply-To``, ki kaže na vaš naslov pri PIS-u.<newline> Če je možno, tako nastavite tudi header ,,From``. <item>uporabite popclient ali fetchmail za prenos pošte od vašega ponudnika. Če vaš PIS uporablja IMAP, uporabite poštni program, ki podpira IMAP (naprimer Pine). </itemize> <p> Ta proces lahko avtomatizirate z uporabo skripte <tt>/etc/ppp/ip-up</tt> (glejte spodaj). <sect1>Postavljanje lokalnega imenskega strežnika <p> Medtem ko lahko dokaj veselo uporabljate imenske strežnike pri vašem ponudniku, lahko postavite tudi lokalni predpomnilni (sekundarni) imenski strežnik, ki ga zaženete preko skripte <tt/ip-up/. Prednost pri poganjanju takšnega strežnika je, da vam bo pri dolgem priklopu prihranil čas, če pogosto uporabljate iste strežnike. <p> DNS konfiguracija za predpomnilni imenski strežnik (ki uporablja vrstico ,,forwarders`` v datoteki <tt/named.boot/in kaže na imenski strežnik pri vašem PIS-u) je preprosta. O'Reillyjeva knjiga DNS and Bind vam razloži vse, kar morate vedeti o tem. <p> Na voljo je tudi DNS-HOWTO. <p> Če upravljate majhno omrežje, ki dostopa do Interneta preko vašega računalnika z Linuxom (naprimer z uporabo IP Masquerade), je verjetno dobro, da imate lokalni imenski strežnik. Medtem ko je povezava vzpostavljena, vam bo to prihranilo dosti pretoka in zmanjšalo zastoje povezane z razreševanjem imen. <p> Pravilo omrežnega bontona: vprašajte vašega PIS-a za dovoljenje preden začnete uporabljati sekundarni, predpomnilni imenski strežnik v njegovi domeni. Pravilno konfiguriran imenski strežnik ne bo povzročal težav, toda če ga konfigurirate narobe, jih lahko. <sect>Povezava dveh omrežij z uporabo PPP-ja<label id="WAN"> <p> V osnovi ni nobene razlike med povezavo enega samega Linuxa s strežnikom za PPP in povezavo dveh omrežij z uporabo PPP-ja na računalniku na obeh mrežah. Zapomnite si, PPP je <bf/istoležni/ protokol. <p> <bf/DEFINITIVNO/ pa morate vedeti, kako se ureja usmerjanje. Preberite NET-2 howto in NAG. Zelo uporabna je tudi knjiga ,,TCP/IP Network Administration`` (izdana pri založbi O'Reilley - ISBN 0-937175-82-X). <p> Če boste razdelili IP mrežno številko na obe strani povezave (subnetworking), vam bo pomagal <url url="http://www.interweft.com.au/other/" name="osnutek Linux Sub networking mini-HOWTOja">. <p> Da bi povezali dve mreži, <bf/morate/ uporabiti drugačne IP mrežne številke (ali dva subneta na isti omrežni številki). Morali boste tudi uporabljati statične IP številke ali IP masquerade. Za slednje poglejte navodila v IP masquerade mini-howto. <sect1>Nastavljanje IP številk <p> Z administratorjem omrežja na drugi strani se dogovorite za IP številke, ki jih boste uporabljali za vsak konec vmesnika PPP. Če uporabljate statične IP številke, boste verjetno morali klicati na posebno telefonsko številko. <p> Sedaj uredite primerno datoteko <tt>/etc/ppp/options[.ttyXX]</tt>. Dobro je, da imate na vašem koncu določen modem in vrata za to povezavo. Mogoče boste morali spremeniti tudi datoteko <tt>/etc/ppp/options</tt> in ustvariti primerne datoteke <tt/options.ttyXX/ za ostale povezave. <p> Določite IP številke za vaš konec PPP povezave v primerni options datoteki ravno tako kot je prikazano zgoraj za statične IP številke. <sect1>Nastavitev usmerjanja <p> Vaš računalnik morate prirediti, da bodo paketi na vašem omrežju usmerjeni čez vmesnik, ki ga ustvari PPP povezava. To je dvostopenjski proces. <p> Najprej morate ustvariti pot od računalnika, na katerem teče povezava, do omrežja(-ij) za oddaljenim koncem povezave. Če je to povezava z Internetom, lahok to uredite z privzeto potjo, ki jo ustvari pppd z opcijo ,defaultroute`. <p> Če pa je povezava le med dvema omrežjema, morate ustvariti specifično omrežno pot za vsako omrežje, ki je dosegljivo čez povezavo. To naredite z ukazom ,route` za vsako mrežo v skripti /etc/ppp/ip-up (za navodila glejte razdelek <ref id="ip-up" name="Ko se povezava vzpostavi">). <p> Druga stvar je, da računalnikom na vaši mreži poveste, da je vaš računalnik z Linuxom ,,vozel`` (gateway) za omrežja na drugem koncu PPP povezave. <p> Seveda mora vse to narediti tudi upravitelj omrežja na drugi strani! Ker pa bo on usmerjal pakete v vaše specifične mreže, bo moral ustvariti <bf/specifično omrežno pot/, ne pa privzeto pot (razen če bo preko vas povezan v Internet). <sect1>Omrežna varnost <p> Če povezujete vaše omrežje z Internetom z uporabo PPP-ja (ali le s ,tujim` omrežjem), morate razmišljati o varnosti. Spodbujam vas, da postavite požarni zid! <p> Morali bi tudi govoriti s skrbnikom vašega omrežja <bf/PREDEN/ se začnete na ta način povezovati z drugimi omrežji ali Internetom. Če tega ne storite, se morda ne bo zgodilo nič, lahko pa si naprtite velike težave! <sect>Ko se povezava vzpostavi - <tt>/etc/ppp/ip-up</tt> skripta <label id="ip-up"> <p> Ko se povezava vzpostavi, pppd poišče datoteko <tt>/etc/ppp/ip-up</tt>. Če ta obstaja in je izvršilna, jo pppd izvrši. To vam omogoča, da avtomatizirate vse posebne usmerjevalne ukaze, ki so morda potrebni, in ostale stvari, katere hočete izvršiti vsakič, ko se povezava vzpostavi. <p> To je le lupinska skripta in lahko naredi karkoli, kar lahko taka skripta naredi (praktično karkoli). <p> Sendmail lahko naprimer odpremi vsa sporočila, ki čakajo v izhodni vrsti. <p> Podobno lahko v to skripto dodate ukaze za prenos pošte, ki čaka pri vašem PIS-u, k vam. <p> Za <tt>/etc/ppp/ip-up</tt> pa obstajajo nekatere omejitve: <itemize> <item>Zaradi povečane varnosti teče v premišljeno omejenem okolju. To pomeni, da morate podati polne poti do datotek ipd. <item>Tehnično gledano je <tt>/etc/ppp/ip-up</tt> <em/program/, ne skripta. To pomeni, da je lahko direktno izvršena in zato potrebuje na začetku prve vrste (<tt>#!/bin/bash</tt>) in mora imeti prava dovoljenja (branje in izvrševanje od roota). </itemize> <sect1>Posebno usmerjanje <p> Če povezujete dve omrežji, boste morali urediti specifične poti do ,tujih` omrežij. To je enostavno narediti z uporabo skripte <tt>/etc/ppp/ip-up</tt>. Edina težava nastane, če mora vaš računalnik obvladovati več PPP povezav. <p> To je zato, ker je skripta <tt>/etc/ppp/ip-up</tt> izvršena za VSAKO ppp povezavo, ki se vzpostavi, zato morate previdno izvršiti prave usmerjevalne ukaze za vsako povezavo in ne ko se vzpostavi kakšna druga povezava! <sect1>Ravnanje s poštnimi vrstami <p> Ko se vzpostavi povezava med dvema omrežjema, se hočete verjetno prepričati, da je vsa čakajoča pošta <em/izplaknjena/ - poslana na svojo pot. To naredite s primernim klicem <tt/sendmaila/. <p> Z uporabo basheve izjave ,case` na primernem parametru, ki ga pppd poda skripti, se da to urediti.<newline> To je skripta <tt>/etc/ppp/ip-up</tt>, ki jo uporabljam za naše WAN povezave in povezavo z mojim domačim Ethernetom (na istem ppp strežniku). <sect1>Vzorčna <tt>/etc/ppp/ip-up</tt> skripta <p> Spodnji primer podaja različne primere uporabe. <code> #!/bin/bash # # Skripta, ki poskrbi za pppd-jeve usmerjevalne potrebe. # Potrebuje jo le povezava z Newmanom. # # Ko se povezava vzpostavi, se ta skripta zažene s sledečimi parametri # $1 ime vmesnika (npr. ppp3) # $2 ime naprave tty # $3 hitrost naprave tty # $4 lokalni IP naslov za vmesnik # $5 oddaljeni IP naslov # $6 parameter doloŘen z ,ipparam opcijo pppd-ju. # case "$5" in # Poskrbi za usmerjanje do strežnika Newman Campus 202.12.126.1) /sbin/route add -net 202.12.126.0 gw 202.12.126.1 # in izplakni poštno vrsto, da pride pošta čimprej tja! /usr/sbin/sendmail -q & ;; 139.130.177.2) # Naša povezava v Internet # Ko se vzpostavi, zaženi časovni strežnik in sinhroniziraj uro. if [ ! -f /var/lock/subsys/xntpd ]; then /etc/rc.d/init.d/xntpd.init start & fi # Zaženi novičarski strežnik if [ ! -f /var/lock/subsys/news ]; then /etc/rc.d/init.d/news start & fi ;; 203.18.8.104) # Pošlji pošto na moj domači računalnik takoj ko se povezava vzpostavi. # Ne potrebujemo nobenega usmerjanja, ker za moj domači Ethernet skrbi # IP Masquerade in proxyarp. /usr/sbin/sendmail -q & ;; *) esac exit 0</code> <p> Kot rezultat vzpostavitve povezave z našim Newman Campusom in te skripte, imamo sledečo usmerjevalno tabelo (ta računalnik je naš vstopni PPP strežnik IN skrbi za našo povezavo z Internetom). V izhod sem dodal komentarje za boljše razumevanje. <code> [root@kepler /root]# route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface # GOSTITELJSKA (HOST) pot do našega oddaljenega internetnega ,vozla` 139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4 # GOSTITELJSKA pot do Newman campus strežnika 202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5 # GOSTITELJSKA pot do mojega domačega etherneta 203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3 # dve naši dostopni liniji 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 # specifična omrežna pot do omrežja v Newman campusu 202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5 # pot do lokalnega Etherneta 203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0 # pot do loopback naprave 127.0.0.0 * 255.0.0.0 U 3584 0 483 lo # privzeta pot v Internet default 139.130.177.2 * UG 1500 0 3633 ppp4 </code> <sect1>Ravnanje z elektronsko pošto <p> Prejšnji razdelek je pokazal kako ravnati z izhodno pošto - enostavno z izplakovanjem izhodne vrste ko se vzpostavi povezava. <p> Če imate WAN povezavo, se lahko z skrbnikom oddaljenega omrežja dogovorite, da naredi popolnoma isto stvar. V Newman campusu, na drugem koncu povezave, je <tt>/etc/ppp/ip-up</tt> skripta taka: <code> #!/bin/bash # # Skripta, ki obvladuje usmerjevalne zadeve. # Potrebuje jo le povezava s Hedlandom. # # Ko se povezava vzpostavi, se ta skripta zažene s sledečimi parametri # $1 ime vmesnika (npr. ppp3) # $2 ime naprave tty # $3 hitrost naprave tty # $4 lokalni IP naslov za vmesnik # $5 oddaljeni IP naslov # $6 parameter določen z ,ipparam` opcijo pppd-ju. # case "$5" in 203.18.8.4) /usr/sbin/sendmail -q ;; *) esac exit 0 </code> <p> Če pa imate samo dinamično povezavo z vašim PIS-om, morate dobiti vašo pošto z uporabo POP (Post Office Protocola). To lahko uredite s programom popclient, ip-up skripta pa vam lahko to avtomatizira! (op.prev.: uporabite lahko tudi novejši program fetchmail) <p> Enostavno ustvarite <tt>/etc/ppp/ip-up</tt> skripto, ki vsebuje primeren klic popclienta. Za moj prenosnik, na katerem teče Red Hat Linux (in ga nosim na vsa potovanja), je to <code> popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail </code> <p> Za novice bi lahko uporabili slurp ali kaj drugega, itd. Pomnite, ip-up je le standardna bash skripta in jo lahko uporabite za VSAKO stvar, ki jo hočete narediti vsakič, ko vzpostavite PPP povezavo. <sect>Uporaba <tt>/etc/ppp/ip-down</tt> <p> Ustvarite lahko tudi skripto, ki se bo izvršila, ko se povezava prekine. Imenuje se <tt>/etc/ppp/ip-down</tt>. Z njo lahko razveljavite vse posebne stvari, ki ste jih naredili v skripti <tt>/etc/ppp/ip-up</tt>. <sect>Usmerjevalne zadeve na lokalnem omrežju <p> Če ste povezani v omrežje, toda bi še vedno radi uporabljali PPP na vašem Linux računalniku, morate urediti nekaj stvari v zvezi s potmi, ki jih morajo paketi ubrati, da bi prišli z vašega računalnika na lokalno omrežje (čez Ethernet vmesnik) in tudi na PPP strežnik in naprej. <p> Ta razdelek vas NE namerava naučiti o usmerjanju. Ukvarja se le z enostavnim, posebnim primerom (statičnega) usmerjanja! <p> Toplo vam priporočam, da preberete Linux Network Administrators Guide (NAG), če NISTE seznanjeni z usmerjanjem. O'Reilleyeva knjiga ,,TCP/IP Network Administration`` pokriva to temo v zelo razumljivi obliki. <p> Osnovno pravilo statičnega usmerjanja je, da naj bo PRIVZETA pot tista, ki kaže na kar NAJVEČ omrežnih naslovov. Za druga omrežja dodajte specifične poti v usmerjevalno tabelo. <p> EDINA situacija, ki jo tukaj pokrivam je ta, kjer je vaš Linux računalnik na lokalnem omrežju, ki ni povezano v Internet, vi pa se hočete povezati z Interentom za vašo osebno rabo medtem ko ste še vedno povezani z omrežjem. <p> Najprej se prepričajte, da je vaša Ethernet pot nastavljena na specifične omrežne naslova, ki so na voljo na vašem lokalnem omrežju - Ne kot privzeta pot! <p> To preverite z ukazom route in videti bi morali nekaj takega: <tscreen><verb> [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 </verb></tscreen> <p> Če vaš Ethernet vmesnik (eth0) kaže na privzeto pot (v prvem stolpcu vrstice eth0 bo pisalo ,,default``), morate spremeniti vaše inicializacijske skripte za Ethernet, da bodo kazale na specifične mrežne številke namesto na privzeto pot (glejte Net2 HOWTO in NAG). <p> To bo dovolilo pppd-ju nastaviti privzeto pot, kot je prikazano: <tscreen><verb> [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 </verb></tscreen> <p> Kot vidite, imamo gostiteljsko pot do PPP strežnika (10.144.153.51) čez ppp0 in tudi privzeto omrežno pot, ki uporablja PPP strežnik kot svoj vozel. <p> Če so vaše usmerjevalne potrebe bolj kompleksne, preberite že omenjene dokumente in se posvetujte s strokovnjakom pri vas. <p> Če vaše lokalno omrežje že ima usmerjevalnike, boste že imeli narejene vozle za širša omrežja dostopna na vašem mestu. ŠE VEDNO bi morala vaša privzeta pot kazati na PPP vmesnik, ostale poti pa bi morale biti za specifična omrežja, katerim služijo. <sect1>Opomba o varnosti <p> Ko nastavite Linux računalnik na vašem lokalnem omrežju za povezavo z Internetom, ste celotno omrežje potencialno odprli Internetu - in tam zunaj živijo crackerji. Preden to storite, preučite NAG in vašo varnostno politiko. Če bo vaša PPP povezava z Internetom uporabljena za uspešen napad na vaše omrežje, si boste prislužili najmanj hudo jezo drugih uporabnikov, mrežnih in sistemskih skrbnikov. Lahko se boste znašli tudi v mnogo hujših težavah! <p> Preden povežete omrežje z Internetom, morate preučiti možne varnostne težave celo DINAMIČNE povezave, zato prejšnji sklic na O'Reilleyevo knjigo ,,Building Internet Firewalls``. <sect>Postavitev PPP strežnika<label id="ppp-server"> <p> Kot je bilo že omenjeno, obstaja mnogo poti za to. Kar je tukaj predstavljeno, je način, kako to dosežem jaz. (z uporabo Cyclades večvratne serijske kartice) in ,,krožnih`` vhodnih telefonskih številk - oglasi se prvi prosti modem) <p> Če vam ta način ni všeč, naredite to po svoje. Vesel pa bi bil, če bi v naslednjih izdajah tega HOWTOja lahko vključil druge metode. Zato mi, prosim, pošljite vaše komentarje in ,recepte`! <p> Prosim pomnite, da ta razdelek skrbi samo za nastavitev Linuxa kot PPP strežnika. Nikoli ne nameravam vključiti napotkov za postavitev posebnih terminalskih in podobnih strežnikov. <p> Poleg tega moram šele eksperimentirati s shadow gesli (ampak bom to enkrat počel). Trenutni napotki torej NE vključujejo kakršnihkoli dodatkov, ki so potrebni za shadow gesla. <sect1>Prevajanje jedra <p> Vsa prejšnja navodila glede prevajanja jedra in verzij jedra ter pppd-ja veljajo tudi tukaj! Ta razdelek predvideva, da ste dokument brali od začetka! <p> Za PPP strežnik <bf/MORATE/ v jedro vključiti IP forwarding. Mogoče želite vključiti tudi druge zmožnosti (kot so IP firewalls, accounting ipd.). <p> Če uporabljate večvratno serijsko kartico, morate seveda vključiti primerne gonilnike zanjo! <sect1>Pregled strežniškega sistema <p> Ponujamo klicne PPP (in SLIP) račune ter lupinske račune z uporabo istega uporabniškega imena in gesla. Za nas to predstavlja prednost, ker uporabnik lahko uporablja en račun za vse vrste povezovanja. <p> Ker smo izobraževalna organizacija, našemu osebju in študentom ne zaračunavamo dostopa, zato nam ni treba skrbeti za obračun stroškov. <p> Med nami in Internetom imamo požarni zid, kar nekaterim uporabnikom omejuje dostop, ker so klicne linije za našim požarnim zidom. (zaradi očitnih razlogov podrobnosti o naših ostalih požarnih zidovih tukaj niso predstavljeni in so nepomembni). <p> Kaj mora uporabnik narediti za vzpostavitev PPP povezave (seveda ko ima račun): <itemize> <item>Klicati na našo številko (to je ena sama številka, ki kliče v serijo modemov - prvi prosti modem se oglasi), <item>Se prijaviti z uporabniškim imenom in geslom, <item>Na lupinskem pozivu mora vnesti ukaz <tt/ppp/ za zagon PPPja na strežniku, <item>Pognati PPP na njihovem računalniku (na katerem teče Linux, Windows, MAC OS ali karkoli drugega - to je njihov problem). </itemize> <p> Strežnik uporablja posamezne datoteke <tt>/etc/ppp/options.ttyXX</tt> za vsaka vhodna vrata, ki nastavijo IP številko za dinamično dodeljevanje. Strežnik uporablja proxyarp usmerjanje k oddaljenim odjemalcem (nastavljeno z uporabo opcije pppd-ju). To obide potrebo po routed ali gated daemonih. <p> Ko uporabnik prekine povezavo, pppd to zazna in modemu ukaže naj odloži, s tem pa istočasno prekine PPP povezavo. <sect1>Zbiranje programja <p> Potrebovali boste naslednje programje: <itemize> <item>Linux, primerno preveden z vključenimi potrebnimi možnostmi, <item>Jedru primerno verzijo pppd-ja, <item>,getty` program za inteligentno ravnanje z modemom,<newline> mi uporabljamo getty_ps2.0.7h, toda razmišljamo o mgettyju. Kot sem razumel, mgetty lahko zazna klic, ki uporablja pap/chap (pap je standard za windows 95) in avtomatično zažene pppd, toda to moram šele raziskati. <item>Delujoč imenski strežnik (DNS), ki je dosegljiv vašim uporabnikom.<newline> Res bi morali imeti svoj DNS strežnik, če je mogoče... </itemize> <sect1>postavitev standardnega (lupinskega) klicnega dostopa <p> Preden lahko postavite PPP strežnik, mora biti vaš računalnik sposoben obvladovanja standardnega klicnega dostopa. <p> <bf>Ta HOWTO tega NE pokriva! Oglejte si dokumentacijo gettyja in Serial-HOWTO.</bf> <sect1>Priprava PPP options datotek <p> Nastaviti boste morali skupno datoteko <tt>/etc/ppp/options</tt>, z možnostmi, ki veljajo za vsa klicna vrata. Možnosti, ki jih uporabljamo mi so: <code> asyncmap 0 netmask 255.255.254.0 proxyarp lock crtscts modem </code> <p> Opomba: mi NE uporabljamo nobenega (očitnega) usmerjanja - še posebej nimamo defaultroute možnosti. Razlog za to je, da je vse kar morate (kot PPP strežnik) narediti to, da usmerjate pakete <bf/od/ ppp odjemalca na vaše omrežje in naprej in jih usmerjate <bf/k/ odjemalcu iz vašega omrežja. <p> Za to je potrebna le gostiteljaska pot do odjemalčevega računalnika in uporaba ,proxyarp` možnosti pppd-ju. <p> Možnost ,proxyarp` nastavi (presenetljivo!) proxy ARP vnos v strežnikovo ARP tabelo, ki v bistvu govori ,,pošlji vse pakete za PPP odjemalca k meni``. To je najlažja pot za usmerjanje k enemu samemu PPP odjemalcu, vendar je ne morete uporabiti za usmerjanje med dvema omrežjema. Za to morate dodati pravilne omrežne poti, ki ne morejo uporabljati proxy ARP-ja. <p> Skoraj gotovo boste želeli ponuditi dinamično dodeljevanje IP številk vašim uporabnikom. To lahko dosežete z dodelitvijo IP številke vsakim vratom. Sedaj ustvarite datoteko <tt>/etc/ppp/options.ttyXX</tt> za vsaka vrata. <p> V to enostavno vstavite lokalno (strežnikovo) IP številko in IP številko, ki naj se uporabi za ta vrata. Naprimer: <code> kepler:slip01 </code> zapomnite si, da lahko v tej datoteki uporabljate veljavna imena (ugotovil sem, da si zapomnim samo IP številke najbolj pomembnih računalnikov na mreži - imena so bolj pomenljiva)! <sect1>nastavitev pppd-ja, da ga lahko uporabniki (uspešno) zaženejo <p> Ker postavitev PPP povezave obsega nastavitev jedrne naprave (omrežnega vmesnika) in manipulacijo usmerjevalnih tabel, so potrebne posebne pravice - pravzaprav popolne root pravice. <p> Na srečo je bil pppd ,varno` oblikovan - navaden uporabnik ga lahko poganja z root pravicami. Torej boste morali <code> chmod u+s /usr/sbin/pppd </code> <p> Ko uporabite ls, bi morala ta datoteka izgledati takole: <code> -rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd </code> <p> Če tega ne naredite, uporabniki ne bojo sposobni postaviti PPP povezave. <sect1>Nastavitev drugega imena za pppd <p> Da bi poenostavili stvari za naše klicoče PPP uporabnike, smo ustvarili globalni alias (v <tt>/etc/bashrc</tt>), da en enostaven ukaz požene pppd na strežniku, ko je uporabnik prijavljen. <p> To izgleda kot <code> alias ppp="exec /usr/sbin/pppd -detach" </code> <p> Kaj to naredi? <itemize> <item>exec : to pomeni, da nadomesti delujoči program (v tem primeru lupino) z programom, ki bo pognan. <item>pppd -detach : zažene pppd in ga NE pošlje v ozadje. To zagotavlja, da ko bo pppd končal z delovanjem ne bo ostal noben proces. </itemize> Ko se uporabnik tako prijavi, ga bo ,<tt/w/` zaznal kot <code> 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 - </code> <p> To je to...Povedal sem vam, da je to preprost, osnoven PPP strežniški sistem! <sect>Uporaba PPP-ja preko null modem (direktne serijske) povezave<label id="direct"> <p> To je zelo enostavno - vmes ni modema, zato so stvari mnogo enostavnejše. <p> Najprej izberite enega od računalnikov za ,strežnik`, nastavite getty na serijskih vratih, tako da lahko preverite povezljivost z minicomom na ,odjemalcu`. <p> Ko to deluje, lahko getty odstranite, RAZEN če želite, da je povezava avtenticirana z uporabo uporabniškega imena in gesla kot zaklicne povezave. Ker imate fizični dostop do obeh računalnikov, bom predvideval, da tega NE potrebujete. <p> Sedaj na strežniku odstranite getty in se prepričajte, da imate serijska vrata na obeh računalnikih pravilno konfigurirana z uporabo ,setserial`. <p> Vse kar morate narediti je, da na obeh računalnikih zaženete pppd. Predvideval bom, da povezava na obeh računalnikih uporablja vrata <tt>/dev/ttyS3</tt>. Na obeh računalnikih torej vnesemu ukaz: <code> pppd -detach crtscts lock <local IP>:<remote IP> /dev/ttyS3 38400 & </code> <p> To bo postavilo povezavo, toda zaenkrat nimate nobenega usmerjanja. Povezavo lahko preverite s ,,pinganjem`` drug drugega. Če to deluje, prekinite povezavo z ,,ubijanjem`` enega od pppd-jev. <p> Usmerjanje, ki ga boste morali urediti je odvisno od tega, kaj hočete. Navadno bo eden od računalnikov povezan z Ethernetom (in naprej), torej bo usmerjanje popolnoma enako kot za PPP strežnik in odjemalec. <p> Na računalniku z Ethernetom bi ukaz pppd izgledal takole: <code> pppd -detach crtscts lock proxyarp <local IP>:<remote IP> /dev/ttyS3 38400 & </code> <p> na drugem pa: <code> pppd -detach crtscts lock defaultroute <local IP>:<remote IP> /dev/ttyS3 38400 & </code> Če povezujete dve omrežji (s serijsko povezavo!) ali imate bolj zapletene usmerjevalne potrebe, lahko uprabite skripto <tt>/etc/ppp/ip-up</tt> ravno tako, kot je že bilo omenjeno. <sect>Administrativne zadeve <p> <sect1>Licenca <p> Ta dokument se lahko razširja pod pogoji GPL (GNU Public License). <p> <sect1>Razširjanje <p> Ta dokument bo poslan v novičarsko skupino <htmlurl url="news:comp.os.linux.answers" name="comp-os-linux.answers">, kadar bojo na voljo nove verzije. Dostopen je tudi v HTML formatu na: <itemize> <item><url url="http://sunsite.unc.edu/mdw/linux.html#howto" name="Linux Howto Index"> <item><url url="http://www.interweft.com.au/other/ppp-howto/ppp-howto.html" name="PPP-HOWTO"> </itemize> Prevod v formatu HTML lahko dobite na <url url="http://www.lugos.si/delo/slo/HOWTO-sl/PPP-HOWTO-sl.html" name="prevod Linux PPP-Howto-ja"> <p> Ostali formati (SGML, ASCII, postscript, DVI) so na voljo na <url url="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats" name="Howtoji - ostali formati">. <p> Ker je sunsite.unc.edu zelo obremenjen prosimo da uporabljate zrcalni strežnik v vaši bližini (naprimer sunsite.fri.uni-lj.si) <p> <sect1>Obvestila <p> Zmeraj več ljudi mi pomaga pri pripravljanju tega dokumenta. Posebna zahvala Alu Longyearu za razlago PPP-ja samega (če so na tem področju napake, sem jih napravil jaz, ne on), Gregu Hankinsu (vzdrževalec sistema Linux HOWTO) in Debi Tackett (iz MaximumAccess.com) za mnogo predlogov o stilu, vsebini, vrstnem redu in jasnosti razlag. <p> In končno, mnogim ljudem, ki so mi poslali e-pošto s komentarji - hvala. Kot pri vseh avtorjih HOWTO-jev je zadovoljstvo pri pomoči vse plačilo, ki ga prejmemo in je dovolj. S pisanjem tega HOWTO-ja v majhni meri odplačujem dolg, ki ga jaz - in vsi drugi uporabniki Linuxa - dolgujemo ljudem, ki ustvarjajo in vzdržujejo operacijski sistem, katerega smo izbrali. <p> Prevajalec se zahvaljuje ,,<em/razhroščevalcu/`` slovenskega prevoda, Romanu Maurerju. Brez njegove pomoči ta prevod ne bi bil to, kar je. <p> <bf/Robert Hart/<newline> Port Hedland, Western Australia<newline> Melbourne, Victoria, Australia avgust/oktober 1996 januar/marec 1997<newline> prevedel:<newline> <bf/Borut Mrak/<newline> 7. avgust 1998<newline> zadnji popravek:<newline> 15. avgust 1998<newline> </article>