Priključitev majhne lokalne mreže (LAN) strojev z Unixom je preprosta. Potrebujete le krmilnik etherneta v vsakem stroju in ustrezne kable za ethernet in drugo strojno opremo. Ali, če vaše podjetje ali univerza ponuja dostop do Interneta, lahko preprosto vključite vaš stroj z Linuxom na to omrežje.
Trenutna izvedba TCP/IP in sorodnih protokolov za Linux se imenuje ,,NET-3`` in pred tem ,,NET-2``. To nima zveze s tako imenovano izdajo NET-2 BSD Unixa; ,,NET-2`` v tem kontekstu pomeni drugo izvedbo TCP/IP za Linux.
Linux NET-3 podpira tudi SLIP, internetni protokol po serijski liniji (angl. Serial Line Internet Protocol), in PPP, protokol za zvezo od točke do točke (angl. Point-to-Point Protocol). SLIP in PPP vam z uporabo vašega modema dovoljujeta, da imate klicni dostop do Interneta. Če vaše podjetje ali univerza ponuja dostop SLIP ali PPP, se lahko prijavite na strežnik za SLIP ali PPP in povežete vaš stroj na Internet preko telefonske linije. Ali pa obratno - če ima vaš stroj z Linuxom tudi dostop do Interneta prek etherneta, lahko usposobite vašo škatlo z Linuxom kot strežnik za SLIP ali PPP.
Za popolne informacije o usposobitvi TCP/IP pod Linuxom vam svetujemo, da preberete spis Linux NET-3 HOWTO, dostopen po anonimnem FTP-ju s strežnika metalab.unc.edu. NET-3 HOWTO je popoln vodnik za nastavitev TCP/IP pod Linuxom, vključno z ethernetom in povezavami SLIP ali PPP. Soroden sestavek je Linux Ethernet HOWTO, ki opisuje nastavitve različnih gonilnikov za mrežne kartice za Linux. Dostopna je tudi knjiga iz Dokumentacijskega projekta za Linux (LDP) Linux Network Administrator's Guide. Glejte dodatek A za več informacij o teh dokumentih.
Zanimiva je tudi knjiga TCP/IP Network Administration Craiga Hunta. Vsebuje popolna navodila o uporabi in nastavljanju TCP/IP na sistemih Unix.
Če želite uporabljati Linux na omrežju TCP/IP tipa Ethernet, boste potrebovali mrežno kartico. Podprte so pogoste kartice, kot so 3com 3c503, HP PCLAN (serije 27245 in 27xxx), Western Digital WD80x3 in Novell NE2000/NE1000 kot tudi mnoge druge. Za podrobnosti glejte spisa Ethernet HOWTO in Hardware HOWTO.
Obstaja nekaj pogostih situacij, kar se tiče podprtih kartic, ki se jih morate izogibati: Veliko kartic je podprtih, a ponujajo slabo zmogljivost ali imajo druge omejitve. Primera sta 3Com 3C501, ki deluje, a klavrno, in Racal-Interlan NI6510, ki uporablja čip (angl. lance chip) am7990, ki ne deluje z več kot 16 megabajti RAM-a. Podobnega razpoloženja so mnogi kloni kartic NE1000/NE2000, ki imajo lahko različne probleme. Za bolj podrobno razlago združljivosti mrežnih kartic z Linuxom glejte Linux Ethernet HOWTO.
Linux podpira tudi SLIP in PPP, kar vam omogoča, da uporabljate modem za dostop do Interneta po telefonski liniji. V tem primeru boste potrebovali modem, združljiv z vašim strežnikom za SLIP ali PPP - večina strežnikov zahteva najmanj modem hitrosti 14.400 bps (bitov na sekundo) V.32bis. Zmogljivost se močno izboljša z modemom hitrosti 33.600 bps ali hitrejšim.
V tem razdelku bomo razložili, kako nastaviti na vašem sistemu mrežno povezavo (po ethernetu) s TCP/IP. Vedite, da bi ta metoda morala delovati na veliko sistemih, a gotovo ne na vseh. Ta razprava bi morala zadostovati, da vas pripelje na pravo pot pri nastavljanju mrežnih parametrov vašega stroja, a obstajajo številna svarila in podrobnosti, ki tukaj niso omenjene. Za več informacij vas usmerjamo na knjigo Linux Network Administrators' Guide in spis NET-3-HOWTO6.1.
Najprej predpostavljamo, da imate sistem Linux, ki ima nameščeno programje za TCP/IP. To vključuje osnovne odjemalce, kot sta telnet in ftp, ukaze za sistemsko upravljanje, kot sta ifconfig in route (navadno ju najdete v /etc), in nastavitvene datoteke za vmreževanje (kot je /etc/hosts). Drugi dokumenti, povezani z vmreževanjem v Linuxu, opisani zgoraj, pojasnjujejo, kako se lotiti nameščanja programja za vmreževanje v Linuxu, če ga še nimate.
Predpostavljamo tudi, da je bilo vaše jedro nastavljeno in prevedeno z omogočeno podporo za TCP/IP. Glejte razdelek 4.10 za informacije o prevajanju vašega jedra. Za omogočanje vmreževanja morate odgovoriti pritrdilno na primerna vprašanja med korakom make config in ponovno zgraditi jedro.
Ko je to enkrat storjeno, morate spremeniti številne nastavitvene datoteke, ki jih uporablja NET-3. Večinoma je to preprost postopek. Žal vendarle obstaja velik nesporazum med posameznimi distribucijami Linuxa o tem, kam naj bi šle različne nastavitvene datoteke in podporni programi za TCP/IP. Največkrat jih lahko najdete v /etc, a v drugih primerih jih lahko najdete v /usr/etc, /usr/etc/inet ali na drugih bizarnih mestih. V najslabšem primeru boste morali uporabiti ukaz find, da boste našli datoteke na vašem sistemu. Vedite tudi, da vse distribucije nimajo nastavitvenih datotek in programja na enakem mestu - te datoteke so lahko razpršene po več imenikih.
Naslednje informacije se nanašajo predvsem na povezave ethernet. Če nameravate uporabljati SLIP ali PPP, preberite ta razdelek, da boste razumeli pojme, in sledite bolj podrobnim navodilom v naslednjih razdelkih.
Preden lahko nastavite TCP/IP, morate ugotoviti naslednje o vaši mrežni sestavi. V večini primerov vam bo te podatke priskrbel vaš upravitelj lokalnega omrežja.
Če nastavljate le način zaprte zanke (se pravi, niti SLIP-a niti kartice Ethernet, le zveze TCP/IP z vašim lastnim strojem), potem je vaš naslov za IP 127.0.0.1.
Upravitelji vašega omrežja izberejo omrežno masko, ko je omrežje zasnovano, in bi vam torej morali biti sposobni povedati, katera maska je prava za uporabo. Večina omrežij je podomrežij razreda C (angl. class C subnetworks), ki uporabljajo za svojo omrežno masko 255.255.255.0. Omrežja razreda B uporabljajo 255.255.0.0. Koda NET-3 bo samodejno izbrala privzeto masko, ki ne predvideva podvmreževanja, če je ne določite sami.
To se nanaša tudi na vrata zaprte zanke. Ker je naslov zaprtozančnih vrat vedno 127.0.0.1, je omrežna maska za ta vrata vedno 255.0.0.0. To lahko določite eksplicitno ali pa se zanesete na privzeto masko.
Če uporabljate le zaprto zanko, nimate omrežnega naslova.
Na primer, če je vaš naslov za IP 128.253.154.32 in je vaša omrežna maska 255.255.255.0, je vaš naslov za oddajanje enak 128.253.154.255.
Vedite, da so nekatera omrežja iz zgodovinskih razlogov nastavljena za uporabo omrežnega naslova kot naslova za oddajanje. Če vas muči dvom, preverite pri vašem upravljalcu omrežja. (V veliko primerih bo zadostovalo podvojiti omrežne nastavitve drugih strojev na vašem podomrežju, seveda z zamenjavo naslova za IP z vašim lastnim.)
Če uporabljate le zaprto zanko, nimate naslova za oddajanje.
Pravzaprav imate lahko več prehodov. Prehod je le stroj, ki živi na dveh različnih omrežjih (ima naslova za IP na različnih podomrežjih) in usmerja pakete med njima. Veliko omrežij ima en sam prehod do ,,zunanjega sveta`` (omrežja, sosednega vašemu), a v nekaterih primerih boste imeli več prehodov - po enega za vsako sosedno omrežje.
Če uporabljate le zaprto zanko, nimate naslova prehoda. Enako drži, če je vaše omrežje izolirano od vseh drugih.
Če uporabljate le zaprto zanko, nimate naslova imenskega strežnika.
Uporabniki SLIP/PPP: Naslov imenskega strežnika boste vsekakor potrebovali, ostalih informacij pa morda tudi ne. Ko uporabljate SLIP, se vaš naslov za IP navadno ugotovi na enega od dveh načinov: Ali (a) imate ,,statični`` naslov za IP, ki je enak vsakič, ko se povežete na omrežje, ali (b) imate ,,dinamični`` naslov za IP, ki se dodeli iz množice prostih naslovov, ko se povežete na strežnik. V naslednjem razdelku o namestitvi SLIP je to obravnavano bolj podrobno.
NET-3 podpira polno usmerjanje, več smeri, podvmreževanje (zaenkrat le na mejah bajtov), skratka vse. Zgornje opisuje najbolj osnovne nastavitve TCP/IP. Vaša je lahko popolnoma drugačna: ko ste v dvomih, se pogovorite z guruji vašega lokalnega omrežja in preverite strani priročnika za route in ifconfig. Nastavitev omrežij TCP/IP je povsem izven dometa te knjige; zgornje bi moralo zadostovati večini ljudi, da začnejo.
Tukaj bomo opisali datoteke rc, ki se uporabljajo za nastavitev TCP/IP. Obstajata dve takšni datoteki: rc.inet1 in rc.inet2. Datoteka rc.inet1 se uporablja za nastavitev osnovnih parametrov omrežja (kot so naslovi za IP in informacije o usmerjanju), datoteka rc.inet2 pa zažene strežnike za TCP/IP (telnetd, ftpd in tako naprej).
Mnogi sistemi kombinirajo ti dve datoteki v eno, navadno imenovano rc.inet ali rc.net. Imena, dana vašim datotekam rc, niso pomembna, dokler izvajajo pravilne funkcije in jih init izvede ob zagonu. Za zagotavljanje tega boste morda morali urediti datoteko /etc/inittab in odkomentirati vrstice za izvajanje ustreznih datotek rc (ali ene same). V najslabšem primeru boste morali ustvariti datoteki rc.inet1 in rc.inet2 iz nič in dodati vnose za njiju v datoteko /etc/inittab.
Kot smo dejali, rc.inet1 nastavi osnovni omrežni vmesnik. To vključuje vaš naslov za IP in vaš omrežni naslov, in informacije usmerjevalne tabele za vaše omrežje. Usmerjevalne tabele se uporabljajo za usmerjanje izhodnih (in prihajajočih) omrežnih datagramov na druge stroje. Na večini preprostih nastavitev imate tri poti: eno za pošiljanje paketov na vaš lasten stroj, drugo za pošiljanje paketov na druge stroje v vašem omrežju in tretjo za pošiljanje paketov na stroje izven vašega omrežja (skozi stroj, ki je prehod). Za nastavitev teh parametrov se uporabljata dva programa: ifconfig in route. Oba sta navadno v imeniku /etc.
Pripomoček ifconfig se uporablja za nastavljanje vmesnika omrežne naprave s parametri, ki jih potrebuje za delovanje, kot je naslov za IP, omrežna maska, naslov za oddajanje in podobno. Pripomoček route se uporablja za spreminjanje vnosov v usmerjevalni tabeli.
Datoteka rc.inet1, primer navajamo spodaj, bi morala delovati za večino sestav. Seveda jo boste morali urediti za vaš lastni sistem. Ne uporabljajte vzorčnega naslova za IP in omrežnega naslova na vašem lastnem sistemu; vsak računalnik mora imeti svoj naslov na Internetu.
#!/bin/sh # To je /etc/rc.d/rc.inet1 -- Nastavite vmesnike TCP/IP # Najprej nastavite zaprtozančno napravo (angl. loopback device) HOSTNAME=`host name` /etc/ifconfig lo 127.0.0.1 # uporablja privzeto omrežno masko 255.0.0.0 /etc/route add 127.0.0.1 # smer za kazanje na zaprtozančno napravo # Potem nastavite omrežne naprave. Če uporabljate le zaprto zanko # ali SLIP, zakomentirajte ostanek teh vrstic. # Uredite za vašo sestavo. IPADDR="128.253.154.32" # NADOMESTITE z VAŠIM naslovom za IP NETMASK="255.255.255.0" # NADOMESTITE z VAŠO omrežno masko NETWORK="128.253.154.0" # NADOMESTITE z VAŠIM omrežnim naslovom BROADCAST="128.253.154.255" # NADOMESTITE z VAŠIM naslovom oddajanja, # če ga imate. Če ne, pustite prazno in # uredite spodaj. GATEWAY="128.253.154.1" # NADOMESTITE z VAŠIM naslovom prehoda! /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST} # Če nimate naslova za oddajanje, spremenite zgornjo vrstico v: # /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} /etc/route add ${NETWORK} # Naslednje je potrebno le, če imate prehod; se pravi, če je # vaše podomrežje povezano z zunanjim svetom. /etc/route add default gw ${GATEWAY} metric 1 # Konec nastavitev omrežja
Spet boste morda morali to datoteko nekoliko spremeniti, da bo delovala. Zgornje bi moralo biti dovolj za večino nastavitev preprostih omrežij, a vsekakor ne za vse.
Skript rc.inet2 požene različne strežnike, ki se uporabljajo v zbirki za TCP/IP. Najpomembnejši med njimi je inetd. Inetd sedi v ozadju in posluša omrežna vrata. Ko stroj poskuša vzpostaviti povezavo na določenih vratih (na primer na vhodnih vratih za telnet), inetd razmnoži izvod ustreznega strežnika za ta vrata (v primeru vrat za telnet inetd požene in.telnetd). To je preprosteje kot poganjanje več različnih, posebnih strežnikov (npr. posameznih izvodov strežnikov telnetd, ftpd in tako naprej) - inetd zažene strežnike le, ko so potrebni.
Syslogd je sistemski strežnik za pisanje dnevnika obdelave - akumulira zabeležena sporočila različnih aplikacij in jih shranjuje v datoteke z dnevniki, odvisno od informacij o nastavitvah v /etc/syslogd.conf. Program routed je strežnik, ki se uporablja za vzdrževanje dinamičnih usmerjevalnih informacij. Ko vaš sistem poskuša poslati pakete na drugo omrežje, morda potrebuje dodatne vnose v usmerjevalni tabeli, da lahko to stori. Strežnik routed poskrbi za upravljanje usmerjevalne tabele brez potrebe po uporabniškem posegu.
Naš spodnji primer datoteke rc.inet2 zažene le goli minimum strežnikov. Obstajajo tudi drugi strežniki - mnogi od njih imajo opraviti z nastavitvami NFS. Ko poskušate usposobiti TCP/IP na vašem sistemu, je navadno najbolje začeti z minimalno konfiguracijo in dodajati bolj kompleksne kose (kot NFS), ko vam stvari delujejo.
Vedite, da v spodnji datoteki predpostavljamo, da se vsi omrežni strežniki nahajajo v imeniku /etc. Kot navadno, prilagodite to za svojo lastno sestavo.
#! /bin/sh # Primer /etc/rc.d/rc.inet2 # Zaženi syslogd if [ -f /etc/syslogd ] then /etc/syslogd fi # Zaženi inetd if [ -f /etc/inetd ] then /etc/inetd fi # Zaženi routed if [ -f /etc/routed ] then /etc/routed -q fi # Opravljeno!
Med različnimi dodatnimi strežniki, ki jih bi morda želeli pognati v datoteki rc.inet2, je tudi named. Named je imenski strežnik - odgovoren je za pretvarjanje (lokalnih) naslovov za IP v imena in obratno. Če nimate imenskega strežnika drugje na omrežju ali želite priskrbeti imena lokalnih strojev drugim strojem v vaši domeni, je zagon named lahko nujno potreben. (Za večino sestav vendarle ni potreben.) Nastavitev strežnika named je dokaj kompleksna in potrebuje načrtovanje; radovedne bralce usmerjamo na dobro knjigo o upravljanju omrežja TCP/IP.
Na primer, če je vaš stroj loomer.vpizza.com z naslovom IP 128.253.154.32, bo vaša datoteka /etc/hosts videti takole:
Če uporabljate le zaprto zanko, mora biti edina vrstica v /etc/hosts 127.0.0.1, z obema imenoma, localhost in gostiteljskim, za temi številkami.127.0.0.1 localhost 128.253.154.32 loomer.vpizza.com loomer
Vsako omrežje, v katerega želite dodati smer z uporabo ukaza route (ta se navadno kliče iz rc.inet1 - glejte zgoraj), mora imeti vnos v datoteki /etc/networks.
Kot primer,
default 0.0.0.0 # privzeta smer - obvezna loopnet 127.0.0.0 # zaprtozančno omrežje - obvezno mynet 128.253.154.0 # Prilagodite za vaš omrežni naslov
order hosts,bindTi vrstici povesta razreševalnim knjižnicam (angl. resolve libraries), naj za iskanje imen najprej preverijo datoteko /etc/hosts in potem vprašajo imenski strežnik (če je prisoten). Vnos multi vam dovoljuje, da imate več naslovov za IP za določeno ime stroja v /etc/hosts.
multi on
Na primer, če je vaš stroj goober.norelco.com in ima imenski strežnik na naslovu 128.253.154.5, bo vaša datoteka /etc/resolv.conf videti takole:
domain norelco.comDoločite lahko več kot en imenski strežnik - vsak mora imeti lastno vrstico nameserver v datoteki resolv.conf.
nameserver 127.253.154.5
/bin/hostname loomer.vpizza.comVedite, da se izvedljiva datoteka hostname na vašem sistemu morda ne nahaja v imeniku /bin.
Za prikaz vaših usmerjevalnih tabel lahko uporabite ukaz netstat; te tabele so navadno izvor večine težav. Stran priročnika o netstat podrobno opisuje točno skladnjo tega ukaza. Za preizkus omrežne povezljivosti, priporočamo uporabo odjemalca, kot je telnet, za povezavo na stroje na vašem lokalnem podomrežju in zunanjih omrežjih. To vam bo pomagalo izslediti izvor težav. (Na primer, če se ne morete povezati na lokalne stroje, a se lahko povežete na stroje v drugih omrežjih, je več kot verjetno težava z vašo omrežno masko in nastavitvijo usmerjevalne tabele.) Ukaz route lahko pokličete tudi direktno (kot root) in se igrate z vnosi v vaši usmerjevalni tabeli.
Omrežno povezljivost bi morali preverjati tudi z neposredno določanimi naslovi za IP namesto imen gostiteljev. Na primer, če imate probleme z ukazom
$ telnet shoop.vpizza.comje vzrok lahko nepravilna nastavitev imenskega strežnika. Poskusite uporabiti pravi naslov za IP zgornjega stroja; če to deluje, veste, da je vaša osnovna nastavitev omrežja (skoraj gotovo) pravilna in problem leži v vaši določitvi naslova imenskega strežnika.
Razhroščevanje omrežnih nastavitev je lahko težaško opravilo in ne moremo niti začeti z njegovo obravnavo. Če ne morete dobiti pomoči od lokalnega guruja, vam močno priporočamo branje knjige Linux Network Administrators' Guide iz LDP.
SLIP (angl. Serial Line Internet Protocol, internetni protokol po serijski liniji) vam dovoljuje uporabo TCP/IP po serijski liniji, naj bo to klicni modem ali najeta asinhrona linija. Seveda boste za uporabo SLIP-a potrebovali dostop do klicnega strežnika za SLIP v vašem področju. Veliko univerz in podjetij ponuja dostop SLIP za skromno plačilo.
Obstajata dva pomembna programa, povezana s SLIP-om - dip in slattach. Oba se uporabljata za uvajanje povezave SLIP prek zaporednih vrat. Za vključitev SLIP-a je nujno uporabljati enega od teh dveh programov - ni dovolj le poklicati strežnik SLIP (s komunikacijskim programom, kot je kermit) in izdati ukaza ifconfig in route. To je zato, ker dip in slattach izdata poseben sistemski klic ioctl() za pridobitev nadzora nad zaporedno napravo, ki se bo uporabljala kot vmesnik za SLIP.
Program dip se lahko uporablja za klicanje strežnika SLIP, opravljanje rokovanja za prijavo na strežnik (izmenjavo vašega uporabniškega imena in gesla, na primer) in potem poganjanje povezave SLIP po odprti serijski liniji. Program slattach, po drugi strani, predvsem rezervira serijsko napravo za uporabo SLIP-a. Uporaben je, če imate stalno linijo na vaš strežnik SLIP in ni potrebno klicanje z modemom ali rokovanje za vzpostavitev zveze. Večina telefonskih uporabnikov SLIP-a naj bi uporabljala dip.
Pripomoček dip se lahko tudi uporablja za ukrojitev vašega sistema Linux kot strežnik za SLIP. Pri tem lahko drugi stroji pokličejo vašega in se povežejo na omrežje skozi sekundarno povezavo Ethernet na vašem stroju. Glejte dokumentacijo in strani priročnika za dip za več informacij o tem postopku.
SLIP je precej različen od etherneta v tem, da sta na ,,omrežju`` le dva stroja - odjemalec za SLIP (se pravi: vi) in strežnik za SLIP. Iz tega razloga se SLIP pogosto omenja kot protokol ,,od točke do točke`` (angl. point-to-point protocol). Za Linux je izvedena tudi posplošitev te ideje, znana kot PPP (angl. Point to Point Protocol).
Ko vzpostavite povezavo s strežnikom SLIP, vam ta dodeli naslov IP glede na (navadno) eno od dveh metod. Nekateri strežniki SLIP dodelijo ,,statične`` naslove IP - v tem primeru bo vaš naslov IP enak vsakič, ko se povežete s strežnikom. Vendar mnogo strežnikov SLIP dodeljuje naslove IP dinamično - v tem primeru lahko dobite ob vsaki povezavi drugačen naslov IP. V splošnem bo strežnik SLIP ob prijavi izpisal vrednosti vašega naslova IP in naslov prehoda. dip lahko bere ti vrednosti iz izhoda prijavne seje strežnika SLIP in jih uporabi za prikrojitev naprave SLIP.
Pravzaprav je nastavitev povezave SLIP precej podobna nastavitvi za zaprto zanko ali ethernet. Glavne razlike so razložene spodaj. Preberite prejšnji razdelek o nastavitvah poglavitnih datotek za TCP/IP in uporabite spodaj opisane spremembe.
Nastavite tudi rc.inet1, kot je opisano zgoraj. Vendar boste za zaprtozančno napravo želeli izvesti le ukaza ifconfig in route. Če za povezavo s strežnikom SLIP uporabljate dip, bo ta izvedel primerna ukaza ifconfig in route namesto vas. (Če uporabljate slattach, po drugi strani, boste morali za napravo SLIP vključiti ukaza ifconfig/route v datoteko rc.inet1 - glejte spodaj.)
dip naj bi primerno nastavil vaše usmerjevalne tabele za povezavo SLIP, ko se ta vzpostavi. Včasih pa obnašanje dip-a morda ne bo pravilno za vašo nastavitev in boste ukaza ifconfig ali route morali pognati na roko, potem ko ste se že povezali s strežnikom z dip-om (to se najlažje naredi znotraj lupinskega skripta, ki poganja dip in takoj izvede ustrezne nastavitvene ukaze). Vaš prehod je v veliko primerih kar naslov strežnika SLIP. Ta naslov morda veste že vnaprej ali pa ga bo strežnik SLIP izpisal, ko se povežete. Vaš pogovorni skript za dip (opisan spodaj) lahko dobi to informacijo od strežnika SLIP.
Program ifconfig lahko zahteva uporabo argumenta pointopoint, če dip nepravilno nastavi vmesnik. Na primer, če je naslov vašega strežnika SLIP 128.253.154.2 in vaš naslov IP 128.253.154.32, boste morda morali pognati ukaz
# ifconfig sl0 128.253.154.32 pointopoint 128.253.154.2kot root, ko vzpostavite povezavo z dip-om. Prav vam bodo prišle strani referenčnega priročnika o ifconfig.
Vedite, da so imena naprav, ki jih uporabljata ukaza ifconfig in route, podobna sl0, sl1 in tako naprej (za razliko od eth0, eth1 itd. za naprave Ethernet).
V razdelku 6.1.2 spodaj razlagamo, kako nastaviti dip za povezavo s strežnikom SLIP.
V tem primeru bi morala biti vaša datoteka /etc/rc.inet1 približno takšna:
#!/bin/sh IPADDR="128.253.154.32" # Nadomestite s svojim naslovom IP REMADDR="128.253.154.2" # Nadomestite z naslovom vašega strežnika SLIP # Spremenite naslednje za primerno serijsko napravo za # povezavo SLIP: slattach -p cslip -s 19200 /dev/ttyS0 /etc/ifconfig sl0 $IPADDR pointopoint $REMADDR up /etc/route add default gw $REMADDR
Ukaz slattach dodeli prvo nedodeljeno napravo SLIP (sl0, sl1 itd.) določeni serijski liniji.
Bodite pozorni na to, da je prvi parameter ukaza slattach ime protokola SLIP, ki naj se uporablja. Trenutno sta edini veljavni vrednosti tukaj slip in cslip. Izbira slip izbere navaden SLIP, kot bi tudi pričakovali, cslip pa je SLIP s stiskanjem glav datagramov. V večini primerov bi morali uporabiti cslip; vendar če je videti, da imate s tem težave, poskusite slip.
Če imate več kot en vmesnik SLIP, boste morali sprejeti usmerjevalne odločitve. Odločiti se boste morali, katere smeri (angl. routes) dodati, in te odločitve lahko sprejmete le na osnovi pravilnih nastavitev vaših omrežnih povezav. Uporabna bo knjiga o nastavitvah vmreževanja TCP/IP, kot tudi strani priročnika za ukaz route.
Če vaš strežnik SLIP dinamično dodeljuje naslov IP, potem svojega naslova gotovo ne poznate vnaprej - torej ne morete vključiti vnosa zanj v datoteko /etc/hosts. (Morali pa bi vseeno vključiti vnos za vaš računalnik z zaprtozančnim naslovom 127.0.0.1.)
Mnogi strežniki SLIP izpišejo vaš naslov IP (kot tudi naslov strežnika), ko se prijavite. Na primer, eden od tipov strežnikov SLIP izpiše niz, kot je
Your IP address is 128.253.154.44.dip lahko ujame te številke iz izhoda strežnika in jih uporabi za nastavitev naprave SLIP.
Server address is 128.253.154.2.
Glejte stran za informacije o nastavitvah
različnih datotek TCP/IP za uporabo s SLIP-om. Spodaj razlagamo, kako
nastaviti dip za povezavo s strežnikom SLIP.
Program dip lahko poenostavi proces priključevanja na strežnik SLIP, prijavljanje in nastavljanje naprave SLIP. Če nimate najete linije, je dip prava pot.
Za uporabo dip-a boste morali napisati ,,pogovorni skript`` (angl. chat script), ki vsebuje seznam ukazov za pogovarjanje s strežnikom SLIP v času prijave. Ti ukazi lahko samodejno pošljejo strežniku vaše uporabniško ime/geslo in dobijo informacije o vašem naslovu IP s strežnika.
Tukaj je primer pogovornega skripta za dip za uporabo s strežnikom dinamičnih naslovov IP. Za strežnike statičnih naslovov boste morali v tem vrstnem redu nastaviti spremenljivki $local in $remote na vrhu vašega skripta na vrednosti vašega lokalnega naslova IP in naslova IP strežnika. Za podrobnosti glejte stran priročnika o dip.
main: # Nastavi enoto maksimalnega pretoka (angl. Maximum Transfer Unit). # To je maksimalna velikost paketov, prenesenih po napravi SLIP. # Mnogi strežniki SLIP uporabljajo za enoto ali 1500 ali 1006; # preverite pri svojih upravnikih omrežja, če ste v dvomih. get $mtu 1500 # Naredi smer po SLIP za privzeto smer za usmerjanje paketov # s tega sistema. default # Nastavi želena vrata in hitrost. port cua03 speed 38400 # Resetiraj modem in terminalsko linijo. Če vam to povzroča # težave, zakomentirajte. reset # Pripravi se za klic. Nadomestite naslednjo vrstico z # inicializacijskim nizom za vaš modem. Ne pozabite dodati # v ta niz X3, če ste na običajni liniji v Sloveniji. send ATT&C1&D2X3\\N3&Q5%M3%C1N1W1L1S48=7\r wait OK 2 if $errlvl != 0 goto error # Kliči strežnik SLIP dial 2546000 if $errlvl != 0 goto error wait CONNECT 60 if $errlvl != 0 goto error # Prijavljeni smo. Prijava v sistem. login: sleep 3 send \r\n\r\n # Čakaj na prijavni pozornik wait login: 10 if $errlvl != 0 goto error # Pošlji svoje uporabniško ime send USERNAME\n # Čakaj na pozornik za geslo wait ord: 5 if $errlvl != 0 goto error # Pošlji geslo. send PASSWORD\n # Čakaj na znak, da je strežnik SLIP pripravljen wait annex: 30 if $errlvl != 0 goto error # Pošlji ukaze strežniku SLIP za inicializacijo povezave. send slip\n wait Annex 30 # Pridóbi oddaljeni naslov IP s strežnika SLIP. Ukaz `get...remote' # prebere tekst oblike xxx.xxx.xxx.xxx in ga priredi spremenljivki, # podani kot drugi argument (tukaj, $remote). get $remote remote if $errlvl != 0 goto error wait Your 30 # Pridóbi lokalni naslov IP s strežnika SLIP in ga dodeli # spremenljivki $local. get $local remote if $errlvl != 0 goto error # Vžgi povezavo SLIP done: print CONNECTED to $remote at $rmtip print GATEWAY address $rmtip print LOCAL address $local mode SLIP goto exit error: print SLIP to $remote failed. exit:
dip samodejno pokliče ukaza ifconfig in route glede na vrednosti spremenljivk $local in $remote. Tukaj sta vrednosti tema spremenljivkama dodeljeni z uporabo ukaza get...remote, ki dobi tekst s strežnika SLIP in ga priredi poimenovani spremenljivki.
Če ukaza ifconfig in route, ki ju dip požene namesto vas, ne delujeta, lahko poženete ustrezna ukaza v lupinskem skriptu po izvedbi dip-a ali spremenite samo izvorno kodo programa dip. Poganjanje dip z izbiro -v bo izpisovalo razhroščevalne informacije medtem, ko se povezava vzpostavlja, kar bi vam moralo pomagati ugotoviti, kje se lahko stvari zalomijo.
Zdaj lahko za poganjanje dip-a in vzpostavitev povezave SLIP uporabite ukaz, kot je:
# /etc/dip/dip -v /etc/dip/mychat 2>&1Tukaj so različne datoteke za dip in pogovorni skript (mychat.dip) shranjene v imeniku /etc/dip.
Zgornja razlaga bi morala zadostovati, da se znajdete na poti pogovarjanja z omrežjem, bodisi po ethernetu ali SLIP-u. Spet vam močno priporočamo pogled v knjigo o nastavitvah omrežja TCP/IP, posebej če ima vaše omrežje posebne usmerjevalne obzire, ki tukaj niso omenjeni.
Linux popolnoma podpira omrežne protokole tipa PPP (angl. Point-to-Point Protocol, protokol od točke do točke). PPP je mehanizem za usposobitev in tek IP (internetnega protokola) in drugih omrežnih protokolov po serijski povezavi (z uporabo kabla ,,null-modem``), po povezavi, vzpostavljeni s programom telnet, ali po povezavi, narejeni z uporabo modemov in telefonskih linij (in seveda z uporabo digitalnih linij, kot je ISDN). Ta razdelek pokriva le nastavitev PPP kot odjemnika, ki se povezuje z analognim modemom na oddaljeni stroj, ki ponuja klicne storitve PPP.
Za popolne informacije o usposobitvi PPP pod Linuxom vas opogumljamo, da preberete spis Linux PPP HOWTO, izvirnik in slovenski prevod sta dostopna prek anonimnega FTP-ja s strežnika metalab.unc.edu. PPP HOWTO je popoln vodnik za nastavitev PPP pod Linuxom, vključno z modemom, ISDN-jem in kabli brez modema. Večina informacij v tem razdelku je bila napaberkovana iz omenjenega spisa. Dostopna je tudi knjiga Linux Network Administrator's Guide iz Dokumentacijskega projekta za Linux. Glejte razdelek A za več informacij o tej literaturi.
Privzemamo, da je bilo vaše jedro prikrojeno in prevedeno z omogočeno podporo za TCP/IP. Glejte razdelek 4.10 za informacije o prevajanju vašega jedra. Za omogočanje vmreževanja morate odgovoriti pritrdilno na ustrezna vprašanja med korakom make config in ponovno zgraditi jedro. Domnevamo tudi, da je bil na vašem sistemu preveden in nameščen paket ppp. Domnevamo, da uporabljate jedro Linuxa 1.2.x s programjem PPP 2.1.2 ali pa Linux 1.3.X/2.0.x in PPP 2.2.0. V času tega pisanja je najnovejša dostopna uradna različica PPP-ja za Linux ppp-2.2f. Prosim, preberite spis kerneld mini-HOWTO, če nameravate uporabljati module za nalaganje ppp v vaše jedro.
¤ Toplo priporočamo, da uporabite različico jedra Linuxa in ustrezno različico PPP, za kateri je znano, da sta skupaj stabilni.
Prebrati bi tudi morali
Obstaja nekaj korakov za usposobitev vašega sistema za uporabo PPP. Priporočamo vam, da pozorno pregledate ta seznam korakov, preden poskusite zares usposobiti povezavo PPP. Vsak od teh korakov bo podrobno razložen kasneje.
# grep -i "TCP/IP" /var/adm/messagesČe dobite vrstico, podobno
Jun 8 09:52:08 gemini kernel: Swansea University Computer Society TCP/IP for NET3.019imate podporo za TCP/IP vključeno v jedro. Zgornji podatek lahko poiščete tudi na konzoli, ko se Linux še zaganja. Na mnogih hitrih strojih se izpis pomika prehitro, da bi ga lahko prebrali. Uporabite lahko Shift-PageUp za pomik zaslona navzgor in ogled tega sporočila.
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.potem ima vaše jedro podporo za PPP. Izdate lahko tudi ukaz
PPP line discipline registered.
# grep -i "PPP" /var/adm/messagesČe dobite vrstico, podobno
Jun 8 09:52:08 gemini kernel: PPP: version 0.2.7 (4 channels) NEW_TTY_DRIVERS OPTIMIZE_FLAGSto pomeni, da je prisotna podpora za PPP.
Linux iz zgodovinskih razlogov uporablja naprave cuax za klice ven in naprave ttySx za prihajajoče klice. Koda jedra, ki je zahtevala to, je bila spremenjena v jedru različice 2.0.x in zdaj bi morali uporabljati ttySx za vhodne in izhodne klice. Imena naprav cuax lahko tudi izginejo v prihodnjih različicah jedra.
Če uporabljate hiter (zunanji) modem (14.400 bps ali več), morajo biti vaša serijska vrata sposobna obdelovati pretok, ki ga je takšen modem zmožen ustvariti, posebej še, če modem komprimira podatke.
To narekuje, da vaša serijska vrata uporabljajo sodobni čip UART (angl. Universal Asynchronous Receiver Transmitter, univerzalni asinhroni prejemnik-oddajnik), kot je čip 16550A. Če uporabljate starejši stroj (ali starejši serijski vmesnik), je precej verjetno, da imajo vaša serijska vrata le čip UART 8250, ki bo v kombinaciji s hitrim modemom povzročal precejšnje probleme.
Uporabite ukaz
# setserial -a /dev/ttySxda vam bo Linux sporočil tip UART-a, ki ga ima. Če nimate tipa UART-a 16550A, investirajte v nakup nove zaporedne kartice (dostopne za manj kot US$50).
Za PPP boste morali pravilno nastaviti vaš modem - za to preberite priročnik vašega modema! Večina modemov pride s tovarniško privzeto nastavitvijo, ki upošteva izbire, ki jih potrebuje PPP. Priporočene nastavitve določajo (v standardnih ukazih modemov Hayes):
&K3
na mnogih modemih);
E1
- vključen odmev ukazov
(angl. echo commands ON, chat to potrebuje za svoje delovanje);
Q0
- poročanje kod rezultatov (angl. report result codes,
chat to potrebuje za svoje delovanje);
S0=0
- samodejni odziv izključen (angl. auto answer OFF,
razen če želite, da vaš modem odgovori na klice);
&C1
- zaznavanje nosilnega tona le po priključitvi
(angl. Carrier Detect ON only after connect);
&S0
- vedno pripravljen na sprejem podatkov
(angl. Data Set Ready, DSR, always ON);
X3
- ne čakaj signala za prosto linijo; to nastavitev
potrebujemo v Sloveniji, ker se naš signal razlikuje od ameriškega;
Obstaja spletna stran, ki ponuja primere nastavitev za rastoče število modemov različnih proizvajalcev in modelov, kar vam lahko pri tem pomaga. Imenuje se Modem setup information, najdete jo na spletnem naslovu http://www.in.net/info/modems/index.html.
Uporabite vaše komunikacijsko programje (denimo minicom ali
seyon) za določitev nastavitev vašega modema in jih oblikujte
tako, kot zahteva PPP. Veliko modemov poroča o svojih trenutnih
nastavitvah kot odgovor na AT&V
, vendar bi morali preučiti
priročnik za vaš modem.
Če popolnoma zmešate štrene vaših nastavitev, se lahko pozdravite
(navadno) tako, da izdate ukaz AT&F
- obnóvi
tovarniške nastavitve. (Pri večini modemov, na katere smo naleteli,
tovarniške nastavitve vključujejo vse, kar potrebujete za PPP,
razen ukaza X3
- vendar bi morali to preveriti.)
Ko ste končno ugotovili potrebni nastavitveni niz za modem, si
ga zapišite. Zdaj imate na izbiro: te nastavitve lahko shranite
v obstojni pomnilnik modema, da jih boste lahko priklicali z ustreznim
ukazom AT
. Alternativa je, da podate pravilne
nastavitve vašemu modemu kot del klicnega procesa PPP.
Če uporabljate vaš modem le iz Linuxa za klic vašega ponudnika Interneta ali strežnika vaše organizacije, je najpreprosteje shraniti vašo nastavitev modema v obstojni RAM.
Če, po drugi strani, vaš modem uporabljajo druge aplikacije in operacijski sistemi, je najvarneje podati te informacije modemu vsakič, ko z njim kličete, saj bo tako modem zagotovo v pravilnem stanju za klic. (To ima dodatno prednost tudi v tem, da v primeru izgube vsebine obstojnega RAM-a modema ne izgubite inicializacijskega niza.)
Večina ISP uporablja dinamične številke IP. Kot je omenjeno zgoraj, ima to določene posledice za storitve, ki jih lahko uporabljate.
Vendar tudi če uporabljate statično številko IP, večina strežnikov PPP ne bo (zaradi varnostnih razlogov) nikoli dovolila določati številke IP odjemniku, saj je to varnostno tveganje. To informacijo boste morali še vedno poznati!
Tukaj se lahko pojavi težava. Nastavitev PPP v MS Windows 95 dovoljuje, da se naslov DNS poda odjemniku pri njegovem priključitvenem procesu na ISP. Zato vam lahko vaš ISP (ali oddelek za pomoč v vaši organizaciji) pove, da ne potrebujete naslova IP imenskega strežnika (ali več strežnikov).
Za Linux potrebujete naslov vsaj enega DNS. Izvedba PPP za Linux ne dovoljuje dinamične nastavitve številke IP imenskega strežnika v času priključitve - in je precej verjetno ne bo nikoli dovoljevala.
Vsaka naprava, ki se povezuje na Internet, mora imeti svojo lastno, edinstveno številko IP. Centralna oblast skrbi za razdelitev številk IP med posamezne države. Za uporabo povezave PPP morate torej imeti dodeljeno številko IP. Zaradi povečanega števila strojev na Internetu (delno zaradi velikega števila uporabnikov PPP), je bila razvita dinamična shema za PPP, ki predvideva sprotno pridobitev IP za vaš stroj, takoj ko vzpostavi povezavo PPP. To pomeni, da boste imeli ob vsaki priključitvi na oddaljeno klicno storitev PPP drugačen naslov IP. To je najpogostejša metoda za večino ponudnikov interneta. Druga metoda je uporaba statičnih številk IP. Številke IP si ne morete kar izbrati zase. Dodeliti vam jo mora centralna agencija, zadolžena za izdajanje številk IP. To preprečuje, da bi dva računalnika imela isti naslov IP in povzročala probleme na Internetu. Ponudnik storitve oddaljenega klicnega dostopa PPP vam bo povedal, ali naj uporabljate statične ali dinamične številke IP, in vam tudi priskrbel dejansko številko IP, če uporabljate statično metodo.
Pomembno je poudariti, da bo zelo zelo težko ponujati stalne internetne storitve, kot so strežniki svetovnega spleta, strežniki gopher ali strežniki za klepetanje po internetu (angl. Internet Relay Chat, IRC), če uporabljate dinamično dodeljevanje številk IP. Še vedno lahko uporabljate vse takšne strežnike, ki so na drugih strojih, vendar ne morete ponujati teh storitev na svojem stroju, ne da bi v to vložili ogromno truda. To presega namen te knjige.
PAP in CHAP sta dve različni razširjeni identifikacijski metodi. Linux podpira obe.
Uporabite vaš terminalski komunikacijski paket (denimo minicom ali seyon), nastavite inicializacijo modema, ki jo potrebuje PPP, in pokličite na strežnik PPP, na katerega bi se radi priključili s sejo PPP.
(Pozor: na tej stopnji ne poskušamo narediti povezave PPP - le ugotoviti, da imamo pravilno telefonsko številko, in tudi izvedeti, kaj natanko nam strežnik pošilja, da se bomo znali prijaviti in začeti PPP.)
Med tem procesom zajemajte (beležite v datoteko) celoten prijavni proces ali previdno (zelo previdno) in natančno zapišite, katere pozive vam pošilja strežnik, da vam dá vedeti, da je čas za vnos uporabniškega imena in gesla (in vse druge ukaze, potrebne za vzpostavitev povezave PPP).
Če vaš strežnik uporablja PAP, ne bi smeli videti prijavnega pozornika, a bi morali namesto tega videti na vašem zaslonu (tekstovno reprezentacijo) nadzornega protokola povezave (ki je videti kot smeti).
Nekaj besed v opozorilo:
Splača se vsaj dvakrat poklicati strežnik PPP - nekateri strežniki spremenijo svoje pozornike (npr. glede na čas!) vsakič, ko se prijavite na njih. Dva kritična pozornika, ki jih potrebuje vaša škatla z Linuxom, da se bo znala predstaviti vsakič, ko kličete na strežnik PPP, sta:
Če morate izdati ukaz za pogon PPP na strežniku, boste morali najti tudi pozornik, ki ga izpiše strežnik, ko se prijavite nanj, in s katerim vam sporoča, da lahko vnesete ukaz za pogon PPP.
Če vaš strežnik samodejno požene PPP, ko se prijavite, boste začeli videvati smeti na vašem zaslonu - to je strežnik za PPP, ki pošilja vašemu stroju informacijo za začetek in nastavitev povezave PPP.
To naj bi izgledalo nekako takole:
y}#.!}!}!} }8}!}}U}"}\&} } } } }}\& ...}'}"}(}"} .~~y}
Na nekaterih sistemih mora biti PPP eksplicitno pognan na strežniku. To je navadno tedaj, ko je strežnik nastavljen tako, da dopušča prijave PPP in prijave v ukazno lupino z uporabo enakega para uporabniško ime/geslo. Če je to tako, po prijavi na strežnik pač izdajte ustrezni ukaz. Spet boste videli smeti, ko se požene povezava PPP na strani strežnika.
Če tega ne vidite takoj ob priključitvi (in prijavi in poganjanju strežnika PPP, če je to potrebno), pritisnite Enter in poglejte, če to zažene strežnik PPP.
Na tej točki lahko odložite vaš modem (navadno tako, da hitro vtipkate
+++
in potem, ko enkrat vaš modem odgovori z OK
, izdate
ukaz ATH0
).
Če ne morete pripraviti vašega modema k delovanju, preberite priročnik za vaš modem, strani referenčnega priročnika za vaše komunikacijsko programje in spis Serial HOWTO. Ko ste to uredili, nadaljujte, kot piše zgoraj.
Najprej, izhodne storitve bodo delovale čisto v redu. Se pravi, lahko pošiljate e-pošto s programom sendmail (če ste ga pravilno nastavili), prenašate datoteke z oddaljenih mest po protokolu FTP, potipate uporabnike na drugih strojih s programom finger, brkljate po spletu itd.
Povejmo posebej: na pošto, ki ste jo prenesli na vaš stroj, lahko odgovarjate tudi, ko niste na zvezi. Pošta bo preprosto počivala v vaši poštni vrsti, dokler se ne boste spet povezali z vašim ISP.
Vendar vaš stroj ni priključen na Internet 24 ur na dan niti nima iste številke IP vsakič, ko se priključi. Zato je nemogoče, da bi dobili e-pošto neposredno na vaš stroj (se pravi: brez protokolov, kot sta POP3 ali IMAP), in zelo težko nastaviti spletni strežnik ali strežnik za FTP, do katerega bi lahko dostopali vaši prijatelji! Kar se tiče Interneta, vaš stroj ne obstaja kot edinstven, vseskozi dostopen stroj, saj nima unikatne številke IP (zapomnite si - drugi stroji bodo uporabljali vašo prejšnjo številko IP, ko bodo poklicali na ISP).
Če postavljate spletni (ali katerikoli drugi) strežnik, je ta popolnoma neznan kateremukoli uporabniku Interneta, razen če vedo, da je vaš stroj priključen, in poznajo njegovo pravilno (trenutno) številko IP. Obstaja precej načinov, kako dobiti ti informaciji, od tega, da jih vi pokličete, jim pošljete e-pismo z informacijami, do prekanjene uporabe datotek .plan na lupinskem računu (kar predvideva, da vaš ponudnik dovoljuje dostop do ukazne lupine in tipanje s finger).
Za večino uporabnikov to ni problem - kar želi večina ljudi, je pošiljanje in prejemanje e-pošte (z uporabo računa pri vašem ponudniku storitev) in vzpostavljanje izhodnih povezav do spletnih strežnikov, strežnikov za FTP in drugih strežnikov na Internetu. Če potrebujete vhodne povezave do vašega strežnika, bi zares morali dobiti statično številko IP.
Za PPP 2.1.2 so te datoteke:
/usr/sbin/pppd | # izvedljiva datoteka za PPP |
/usr/sbin/ppp-on | # klicni/priključitveni skript |
/usr/sbin/ppp-off | # odključitveni skript |
/etc/ppp/options | # izbire, ki jih pppd uporablja za vse povezave |
/etc/ppp/options.ttyXX | # izbire, specifične za povezavo na vratih XX |
Za PPP 2.2 so te datoteke:
/usr/sbin/pppd | # izvedljiva datoteka za PPP |
/etc/ppp/scripts/ppp-on | # klicni/priključitveni skript |
/etc/ppp/scripts/ppp-on-dialer | # prvi del klicnega skripta |
/etc/ppp/scripts/ppp-off | # sam pravi skript za chat |
/etc/ppp/options | # izbire, ki jih pppd uporablja za vse povezave |
/etc/ppp/options.ttyXX | # izbire, specifične za povezavo na vratih XX |
Uporabniki distribucije Red Hat Linux bi morali vedeti, da standardna namestitev Red Hat 4.X postavi te skripte v imenik /usr/doc/ppp-2.2.0f-2/scripts.
V vašem imeniku /etc naj bi bil podimenik ppp:
Če še ne obstaja, ga ustvarite s temi lastništvi in dovoljenji.drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp
Če imenik že obstaja, bi moral vsebovati datoteko z vzorčnimi izbirami, imenovano options.tpl. Ta datoteka je vključena spodaj, za primer, če je še ni v imeniku /etc/ppp.
Natisnite jo, saj vsebuje razlago skoraj vseh izbir za PPP (te so uporabne za branje v povezavi s stranmi referenčnega priročnika o pppd). To datoteko sicer lahko uporabljate glede na svojo datoteko /etc/ppp/options, a je verjetno bolje, da naredite lastno datoteko z izbirami, ki ne vključuje vseh komentarjev v vzorčni - precej krajša in lažja bo za branje/vzdrževanje.
Videti je, da so nekatere distribucije PPP izgubile datoteko options.tpl. Poglejte v spis PPP-HOWTO (obstaja tudi slovenski prevod tega spisa) za popolno različico vzorčne datoteke.
Vendar če ne delujejo, preberite vzorčno datoteko (/etc/ppp/options.tpl) in stran priročnika o pppd ter se pogovorite s sistemskim upraviteljem ali ljudmi z oddelka za pomoč uporabnikom ponudnika, ki poganja strežnik, na katerega se priključujete.
Vedeti bi tudi morali, da priključitveni skripti, predstavljeni tukaj, uporabljajo tudi nekatere izbire v ukazni vrstici za klic pppd, da je spreminjanje zadev olajšano.
# /etc/ppp/options (brez podpore za PAP/CHAP) # # Prepreči pppd, da bi se razvejil v ozadju z -detach # # uporabljaj nadzorne linije modema modem # uporabljaj zaklepne datoteke v stilu uucp, da zagotoviš # ekskluzivni dostop do serijske naprave lock # uporabljaj strojni nadzor pretoka crtscts # ustvari privzeto pot za to povezavo v usmerjevalni tabeli defaultroute # NE nastavljaj "ubežnih" nadzornih zaporedij asyncmap 0 # uporabljaj največjo velikost prenesenega paketa 552 bajtov mtu 552 # uporabljaj največjo velikost sprejetega paketa 552 bajtov mru 552 # #---KONEC VZORČNE DAT. /etc/ppp/options (brez podpore za PAP/CHAP)
Za to mora biti vaše komunikacijsko programje sposobno izhoda, ne da se resetira modem. Program minicom lahko to stori z zaporedjem Ctrl-A Q
# pppd -d /dev/ttyS0 38400 &Seveda navedite namesto ,,/dev/ttyS0`` ime naprave, na katero je priključen vaš modem.
Izbira -d omogoča razhroščevanje - začetni pogovori povezave PPP se bodo beležili v sistemski dnevnik - kar je uporabno za izsleditev morebitnih poznejših težav.
Na tej točki lahko pogledate vmesnik PPP tako, da izdate ukaz
# ifconfig
Poleg vseh naprav Ethernet in povratnih naprav, ki jih imate, bi morali videti tudi nekaj takega:
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
Kjer
(Pripomoček ifconfig ne bo izpisal ravno teh številk IP, pač pa tiste, ki se uporabljajo na vašem strežniku PPP.) Pomnite: ifconfig vam pove tudi, katera povezava je vzpostavljena in teče!
Morali bi biti sposobni tudi videti povezavo do oddaljenega gostitelja (in naprej). Za kaj takega ukažite
# route -nVideti bi morali nekaj takega:
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
Tukaj je posebej pomembno opaziti, da imamo dva vnosa, ki kažeta na naš vmesnik PPP.
Prvi je gostiteljska pot (označuje jo zastavica H kot angl. host route) in ta nam dovoljuje videnje gostitelja, na katerega smo priključeni - a nič dlje.
Drugi vnos je privzeta pot (vzpostavljena tako, da podamo programu pppd izbiro defaultroute). To je pot, ki pove našemu osebnemu računalniku z Linuxom, naj pošilja vse pakete, ki niso namenjeni na lokalni ethernet - za katerega imamo posebne omrežne poti - na sam strežnik PPP. Strežnik PPP je potem odgovoren za usmerjanje naših paketov na zunanji Internet in usmerjanje povratnih paketov nazaj do nas.
Če ne vidite usmerjevalne tabele z dvema vnosoma, je nekaj narobe. Posebej, če vaš sistemski dnevnik vsebuje sporočilo, ki vam sporoča, da vaš pppd ne nadomešča obstoječe privzete poti, potem imate privzeto pot, ki kaže na vaš vmesnik za Ethernet - in mora biti nadomeščena z določeno omrežno potjo: lahko imate le eno privzeto pot!!!
Raziskati boste morali inicializacijske datoteke vašega sistema, da boste ugotovili, kje se ta privzeta pot določi (uporabljen bo ukaz ,,route add default...``). Spremenite ta ukaz v nekaj takega kot ,,route add net...``.
Zdaj preizkusite povezavo s ,,pinganjem`` strežnika na njegovo številko IP, kot jo sporoča izhod pripomočka ifconfig, denimo:
# ping 10.144.153.51Dobiti bi morali izhod, kot je ta:
Ta izpis se bo nadaljeval v neskončnost - prekinete ga s pritiskom Ctrl-C, na tej točki boste prejeli nekaj dodatnih informacij: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
--- 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
Zdaj poskusite pingati gostitelja po imenu (ne ime samega strežnika PPP), vendar gostitelja na drugem mestu, za katerega veste, da trenutno verjetno deluje. Na primer
# ping sunsite.unc.eduTokrat bo sledil premor, v katerem Linux poizveduje o številki IP polnega gostiteljskega imena, ki ste ga pingali. To stori tako, da povpraša DNS, ki ste ga navedli v datoteki /etc/resolv.conf - zato ne skrbite (videli pa boste, da lučke na zunanjem modemu utripajo). Kmalu boste prejeli izhod, podoben temule:
Spet prekinite izhod s pritiskom Control-C in dobite nekaj dodatne statistike...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
--- 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
Če ne dobite nobenega odgovora, poskušajte pingati naslov IP strežnika DNS vašega ISP. Če dobite odgovor od njega, potem imate verjetno problem z datoteko /etc/resolv.conf.
Če to ne deluje, imate verjetno usmerjevalni problem ali pa ima vaš ISP težave z usmerjanjem paketov nazaj k vam. Preverite vašo usmerjevalno tabelo, kot je prikazana zgoraj, in če je to v redu, navežite stike z vašim ISP. Dober preizkus ISP-ja je uporaba drugega operacijskega sistema za priključitev. Če vam to uspe z vašim ISP-jem, je problem na vaši strani.
Če vse deluje, ukinite povezavo z vnosom
# ppp-offPo kratkem premoru bi moral modem sam odložiti linijo.
Če to ne deluje, izključite vaš modem ali poženite vaše komunikacijsko
programje in prekinite modem z ukazom +++
, potem pa odložite
linijo z ATH0
, ko prejmete odgovor OK
od vašega modema.
Morda boste morali tudi počistiti zaklepno datoteko, ki jo ustvari pppd z vnosom
# rm -f /var/lock/LCK..ttySx
Čeprav lahko nadaljujete z ročnim prijavljanjem, kot je prikazano zgoraj, je precej ličneje sestaviti nekaj skriptov, ki bodo to počeli samodejno namesto vas.
Nabor skriptov avtomatizira prijavljanje in zagon PPP, tako da je vse, kar morate storiti (kot root ali član skupine PPP), izdajanje enega samega ukaza za vključitev vaše povezave.
Če vaš ISP ne zahteva uporabe PAP/CHAP, so ti skripti za vas.
Če je paket PPP pravilno nameščen, bi morali imeti dve vzorčni datoteki. Za PPP 2.1.2 sta v imeniku /usr/sbin in za PPP 2.2 sta v /etc/ppp/scripts. Datoteke se imenujejo:
ppp-on ppp-off
ppp-off ppp-on ppp-on-dialer
Zdaj vam, če uporabljate PPP 2.1.2, močno priporočam, da pobrišete ti vzorčni datoteki. Potencialno povzročata probleme - in ne recite mi, da delujeta v redu - tudi jaz sem ju uporabljal celo večnost (in priporočil v prvih različicah PPP-HOWTO)!
Za dobrobit uporabnikov PPP 2.1.2 so tukaj boljše vzorčne različice, pobrane iz distribucije PPP 2.2. Priporočam vam, da namesto starih skriptov za PPP-2.1.2 uporabite te skripte.
#!/bin/sh # # Skript za vzpostavitev povezave PPP. To je prvi od dveh # skriptov. To ni varen par skriptov, saj so kode vidne # z ukazom 'ps'. Vendar je preprost. # # To so parametri. Spremenite, kar je potrebno. TELEPHONE=555-1212 # Telefonska številka za povezavo ACCOUNT=george # Ime računa za prijavo (kot 'George Burns') PASSWORD=gracie # Geslo za ta račun (in 'Gracie Allen') LOCAL_IP=0.0.0.0 # Lokalni naslov IP, če je znan. # Dinamično dobljen = 0.0.0.0 REMOTE_IP=0.0.0.0 # Oddaljeni naslov IP, če želite. # Navadno 0.0.0.0 NETMASK=255.255.255.0 # Pravilna omrežna maska, če je potrebna. # # Izvozite te parametre, da bodo dostopni za 'ppp-on-dialer' export TELEPHONE ACCOUNT PASSWORD # # To je lokacija skripta, ki pokliče po telefonski liniji in # se prijavi na strežnik. Prosim, uporabite absolutno ime # datoteke, saj se spremenljivka $PATH ne uporablja kot izbira # ob povezavi. (Kaj takega bi bila varnostna luknja računa # 'root', zato ne sprašujte.) # DIALER_SCRIPT=/etc/ppp/ppp-on-dialer # # Inicializirajte povezavo # # exec /usr/sbin/pppd debug /dev/ttySx 38400 \ $LOCAL_IP:$REMOTE_IP \ connect $DIALER_SCRIPT
#!/bin/sh # # To je drugi del skripta ppp-on. Izvedel bo povezovalni # protokol za želeno 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
#!/bin/sh ######################################################### # # Poišči napravo, ki naj se prekine. # if [ "$1" = "" ]; then DEVICE=ppp0 else DEVICE=$1 fi ######################################################### # # Če obstaja datoteka pid ppp0, potem program teče. # Prekinite ga. if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` # # Če 'kill' ne deluje, potem za ta pid ne teče noben proces. # To lahko pomeni tudi, da bo ostala zaklepna datoteka. # Morda boste želeli hkrati pobrisati zaklepno datoteko. if [ ! "$?" = "0" ]; then rm -f /var/run/$DEVICE.pid echo "ERROR: Removed stale pid file" exit 1 fi # # Uspeh. Naj pppd sam počisti svojo navlako. echo "PPP link to $DEVICE terminated." exit 0 fi # # Proces ppp ne teče za ppp0 echo "ERROR: PPP link is not active on $DEVICE" exit 1
Novi skripti so v dveh delih, ki ju bomo uredili po vrsti.
Vsaka od vrstic, kot je TELEPHONE=
, pravzaprav nastavi
spremenljivke ukazne lupine, ki vsebujejo informacije na desni
strani znaka ,,=
`` (brez komentarjev, seveda). Zato
uredite vsako od teh vrstic tako, da ustreza vašemu
ISP-ju in povezavi.
Tudi ko nastavljate številko IP (če jo morate), v datoteki /etc/ppp/options pobrišite vrstico, ki pravi:
$LOCAL_IP:$REMOTE_IP \
Prepričajte se, da lupinska spremenljivka DIALER_SCRIPT
kaže na polno pot in ime klicnega skripta, ki ga boste zares uporabljali.
Zato se, če ste premaknili ali preimenovali ta skript, prepričajte,
da boste pravilno popravili to vrstico v skriptu ppp-on!
Vedite: pogovorni skript je navadno napisan v eni sami vrstici,
obrnjene poševnice ,,\
`` se uporabljajo le za nadaljevanje
vrstice v več fizičnih vrstic (za lažje človeško branje) in ne
predstavljajo dela samega skripta.
Vendar je ta skript zelo uporabno podrobno pogledati, da bomo razumeli, kaj naj bi pravzaprav delal!
Pogovorni skript je zaporedje parov "pričakovani niz" "poslani niz". Pomnite, da vselej nekaj pričakujemo, preden nekaj pošljemo.
Če naj nekaj pošljemo, ne da bi najprej kaj prejeli, moramo
uporabiti prazen pričakovani niz (označen z ""
) in podobno za
pričakovanje nečesa, ne da bi karkoli poslali! Tudi če niz sestavlja
več besed (npr. NO CARRIER
), morate navesti niz tako, da ga
chat vidi kot eno entiteto.
Pogovorna vrstica v našem vzorcu je:
exec /usr/sbin/chat -v
Ob klicanju chat-a izbira -v
pove, naj se prepiše
ves njegov vhod/izhod v sistemski dnevnik (ta je navadno v
datoteki /var/log/messages).
Ko ste enkrat zadovoljni z zanesljivim delovanjem pogovornega skripta,
uredite to vrstico in odstranite izbiro -v
, da boste zmanjšali
nepotreben šum v vašem sistemskem dnevniku.
To nastavi iztek časa za sprejem pričakovanega vhoda na tri sekunde. To lahko povečate na, denimo, 5 ali 10 sekund, če uporabljate zares počasen modem!TIMEOUT 3
Če je sprejet nizABORT '\nBUSY\r'
BUSY
(znak za zasedeno linijo), končaj
postopek.
Če prejmeš nizABORT '\nNO ANSWER\r'
NO ANSWER
(ni odgovora), končaj postopek.
Če prejmeš (ponovljen) nizABORT '\nRINGING\r\n\r\nRINGING\r'
RINGING
, končaj postopek.
To je zato, ker nekdo kliče vašo telefonsko linijo!
Ne pričakuj ničesar od modema in pošlji niz" \rAT
AT
.
Tale vrstica je malce bolj zapletena, saj uporablja nekatere zmožnosti za odpravljanje napak programa chat.OK-+++\c-OK ATH0
Kar pravi, je... Pričakuj OK
in če ga ne prejmeš
(ker modem ni v ukaznem načinu), potem pošlji +++
(modemski
niz za standardne modeme, združljive s Hayes, ki vrne modem v ukazni
način) in pričakuj OK
. Potem pošlji ATH0
(ukazni niz,
po katerem modem odloži linijo). To dovoljuje vašemu skriptu, da je kos
položaju, ko modem obtiči na zvezi!
Nastavi iztek časa na 30 sekund za ostanek tega skripta. Če s tem pogovornim skriptom izkusite težave z izhodi zaradi izteka časa, povečajte to vrednost na 45 sekund ali več.TIMEOUT 30
PričakujOK ATDT$TELEPHONE
OK
(odgovor modema na ukaz ATH0
) in pokliči
številko, ki bi jo radi poklicali.
PričakujCONNECT ''
CONNECT
(kar pošlje naš modem, ko odgovori oddaljeni
modem) in ne pošlji ničesar v odgovor.
Tukaj imamo spet vgrajenega nekaj odpravljanja napak. Pričakuj prijavni pozornik (ogin:--ogin: $ACCOUNT
...ogin:
), a če ga ne dobimo pred iztekom
časa, pošlji return in potem spet čakaj na prijavni pozornik. Ko se
sprejme pozornik, pošlji uporabniško ime (shranjeno v lupinski
spremenljivki $ACCOUNT
).
Pričakuj pozornik za geslo in pošlji naše geslo (spet, shranjeno v lupinski spremenljivki).assword: $PASSWORD
Ta pogovorni skript lahko precej dobro okreva od napak. Program
chat ima bistveno več zmožnosti, kot jih je tukaj prikazanih.
Za več informacij poglejte stran priročnika o programu chat
(man 8 chat
).
Medtem ko je skript ppp-on-dialer v redu za strežnike, ki samodejno zaženejo pppd na svoji strani, ko se enkrat prijavite nanje, nekateri strežniki potrebujejo eksplicitni zagon PPP na strežniku.
Če morate izdati ukaz za zagon PPP na strežniku, morate urediti skript ppp-on-dialer.
Na koncu skripta (po vrstici z geslom) dodajte tradicionalni par ,,pričakuj-pošlji`` - ta bo oprezal za vašim prijavnim pozornikom (pazite se znakov, ki imajo poseben pomen v Bournovi lupini), kot
$[]
Ko je enkrat chat našel lupinski pozornik, mora izdati zagonski ukaz za PPP, ki ga potrebuje strežnik za PPP pri vašem ISP.
Avtor je že naletel tudi na primer, ko strežnik za PPP uporablja standardni pozornik ukazne lupine Bash v Linuxu
[hartr@kepler hartr]$ki zahteva odgovor
$ pppza zagon PPP na strežniku.
Tukaj je koristno dovoliti malce popravljanja napak, zato uporabite
hartr-hartr pppSe pravi, če ne prejmemo pozornika pred iztekom časa, pošlje znak za pomik na začetek vrste (angl. carriage return) in spet čaka na pozornik.
Ko enkrat dobi pozornik, pošlje niz ppp.
Pozor: ne pozabite dodati \
na konec prejšnje vrstice, da bo
chat še vedno mislil, da je celotni pogovorni skript
v eni vrstici!
Žal nekateri strežniki producirajo zelo različno množico pozornikov! Morda se boste morali večkrat prijaviti z minicom-om, da boste razumeli, kaj se dogaja in izbrali stabilne ,,pričakovane`` nize.
Če strežnik, na katerega se povezujete, zahteva identifikacijo PAP ali CHAP, imate malce več dela.
Dodajte naslednje vrstice v zgornjo datoteko z izbirami
# # Prisili pppd, da bo med identifikacijskim procesom uporabljal # uporabniško ime na vašem ISP kot vaše 'gostiteljsko ime' name uporabniško-ime-vašega-ISP # to vrstico morate popraviti # # Če poganjate *strežnik* PPP in morate vsiliti PAP ali CHAP, # odkomentirajte ustrezno od naslednjih vrstic. NE uporabljajte # jih, če ste odjemalec, ki se priključuje na strežnik PPP # (tudi če ta uporablja PAP ali CHAP), saj to naroči STREŽNIKU # naj se predstavi vašemu stroju (česar prav gotovo ne more # storiti -- in povezovanje bo spodletelo). #+chap #+pap # # Če uporabljate ZAKODIRANE zaupnosti (angl. encrypted secrets) # v datoteki /etc/ppp/pap-secrets, odkomentirajte naslednjo vrstico. # Vedite: to NI isto kot uporaba zakodiranih gesel Microsofta, # kot se lahko nastavijo v MS RAS na Windows NT. #+papcrypt
RAS sistema Microsoft Windows NT se lahko nastavi tako, da uporablja različico protokola CHAP (angl. Challenge/Handshake Authentication Protocol, identifikacijski protokol s pozivanjem/rokovanjem). V izvorni kodi vašega PPP boste našli datoteko README.MSCHAP80, ki to obravnava. Ali strežnik zahteva identifikacijo z uporabo tega protokola, lahko ugotovite z vključitvijo razhroščevanja za pppd. Če strežnik zahteva identifikacijo MS CHAP, boste videli vrstice, kot je
Tukaj ključno informacijo predstavlja ,,auth chap 80``.rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
Za uporabo protokola MS CHAP boste morali ponovno prevesti pppd za njegovo podporo. Prosim, poglejte navodila v datoteki README.MSCHAP80 v arhivu izvorne kode za PPP za navodila, kako prevesti in uporabljati to različico.
Če uporabljate identifikacijo PAP ali CHAP, potem morate ustvariti tudi datoteko s skrivnostmi (angl. secrets file). Ti sta /etc/ppp/pap-secrets in /etc/ppp/chap-secrets.
Njun lastnik mora biti root, skupina root, in zaradi varnosti morata imeti dovoljenja datotek nastavljena na 740. Prva stvar, ki jo velja poudariti o PAP in CHAP, je, da sta zasnovana tako, da identificirata računalniške sisteme, ne uporabnikov. Z drugimi besedami, ko je enkrat vaš računalnik vzpostavil svojo povezavo PPP s strežnikom, lahko vsak uporabnik vašega sistema uporablja to povezavo - ne le vi.
PAP lahko (CHAP pa vedno) zahteva dvosmerno identifikacijo - se pravi: na vsakem računalniku obstaja veljavno ime in datoteka skrivnosti za vsak drugi vpleteni računalnik. Vendar to ni način, na katerega deluje večina strežnikov PPP, ki ponuja povezave, preverjene s PAP.
S tem v mislih: vaš ISP vam bo verjetno dal uporabniško ime in geslo, ki vam bosta omogočala povezavo na njegov sistem in od tam na Internet. Vašega ISP-ja sploh ne zanima ime vašega računalnika, zato boste verjetno morali uporabljati uporabniško ime pri vašem ISP-ju kot ime vašega računalnika. To se stori z uporabo izbire navedbe uporabniškega imena programa pppd. Torej, če boste uporabljali uporabniško ime, ki vam ga je dodelil vaš ISP, dodajte vrstico
name vaše_uporabniško_ime_pri_vašem_ISPv vašo datoteko /etc/ppp/options.
Pravzaprav bi morali v resnici uporabljati
za PAP, vendar je pppd dovolj inteligenten, da bo tolmačil name kot user, če je potrebno za uporabo PAP-a. Prednost uporabe izbire name je, da je veljavna tudi za CHAP.user vaše_uporabniško_ime_pri_vašem_ISP
Ker je PAP namenjen identifikaciji računalnikov, morate teoretično
navesti tudi ime oddaljenega računalnika. Vendar ker ima večina ljudi
le enega ISP, lahko uporabljate v datoteki s skrivnostjo (angl. secrets file) tudi džokerja (*
) namesto imena oddaljenega
gostitelja.
Datoteka /etc/ppp/pap-secrets izgleda takole
# Skrivnosti za identifikacijo z uporabo PAP # odjemnik strežnik skrivnost sprejemljivi_lokalni_naslovi_IP
Štiri polja so ločena z belimi znaki (angl. white space) in zadnje je lahko prazno (to je to, kar želite za dinamično in verjetno tudi statično dodelitev IP od vašega ISP).
Denimo, da vam je ISP izdal uporabniško ime fred in geslo flintstone. Potem nastavite izbiro imena fred v datoteki /etc/ppp/options in nastavite vašo datoteko /etc/ppp/pap-secrets takole:
# Skrivnosti za identifikacijo z uporabo PAP # odjemnik strežnik skrivnost sprejemljivi_lokalni_naslovi_IP fred * flintstone
To pravi: lokalnemu stroju je ime fred (kar smo tudi naročili pppd-ju, da naj uporablja, čeprav to morda ni pravo lokalno ime našega stroja) in za vsak strežnik uporabljaj geslo (skrivnost) flintstone.
Vedite, da nam ni treba določiti lokalnega naslova IP, razen če moramo vsiliti določen lokalni, statični naslov IP. Tudi če to poskusite, verjetno ne bo delovalo, saj večina strežnikov PPP (iz varnostnih razlogov) ne dovoljuje oddaljenim sistemov samostojne nastavitve številke IP, ki jim je dodeljena.
To predvideva, da uporabljate vzajemne identifikacijske metode - se pravi, da morate dovoliti identifikacijo oddaljenega strežnika svojemu stroju in tudi identifikacijo vašega stroja oddaljenemu strežniku.
Če je torej vaš stroj fred in je oddaljeni stroj barney, bo vaš stroj nastavil name fred remotename barney, oddaljeni stroj pa bo nastavil name barney remotename fred v njunih ustreznih datotekah /etc/ppp/options.ttySx.
Datoteka /etc/chap-secrets bi na računalniku fred izgledala takole
in na računalniku barney takole# Skrivnosti za identifikacijo z uporabo CHAP # odjemnik strežnik skrivnost sprejemljivi_lokalni_naslovi_IP fred barney flintstone barney fred wilma
# Skrivnosti za identifikacijo z uporabo CHAP # odjemnik strežnik skrivnost sprejemljivi_lokalni_naslovi_IP barney fred flintstone fred barney wilma
Posebej se zavedajte, da morata imeti oba stroja vnosa za dvosmerno identifikacijo. To dovoljuje lokalnemu stroju, da se predstavi oddaljenemu in obratno.
Če vaš ISP uporablja PAP/CHAP, je vaš pogovorni skript (za chat) precej preprostejši. Vse, kar mora storiti vaš pogovorni skript, je poklicati telefonsko številko, počakati na priključitev in potem dovoliti, da se program pppd prijavi na strežnik!
#!/bin/sh # # To je drugi del skripta ppp-on. Ta skript bo izvedel povezovalni # protokol 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 '' \
Kot smo že videli, lahko z izbiro -d
pppd-ju vključite
beleženje razhroščevalnih informacij. Izbira ,,debug
`` je
ekvivalentna.
Ker vzpostavljamo novo povezavo z novim skriptom, zaenkrat pustite
vključeno izbiro debug
. (Pozor: če ste na tesnem z diskovnim
prostorom, lahko beleženje aktivnosti programa pppd naglo
poveča vaš sistemski dnevnik in zaidete lahko v težave - a za to
vam mora spodleteti priključitev in morate neuspešno poskušati
s priključitvijo nekaj minut.)
Ko ste enkrat zadovoljni, da vse deluje, lahko odstranite to izbiro.
exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
Odprite nov Xterm kot root (če ste v X) ali novo virtualno konzolo in se prijavite kot root.
V tej novi seji izdajte ukaz
# tail -f /var/log/messagesMnogi sistemski dnevniki se beležijo v datoteko /var/log/messages. Če ima na vašem sistemu drugačno ime, zamenjajte ime datoteke z vašim sistemskim dnevnikom v zgornjem ukazu.
V prvem oknu (ali virtualni konzoli) izdajte ukaz
# ppp-on &(ali kakorkoli ste že poimenovali vašo urejeno različico datoteke /usr/sbin/ppp-on). Če ne boste postavili skripta v ozadje z določitvijo
&
na koncu ukaza, ne boste dobili nazaj vašega
terminalskega pozornika, dokler se PPP ne konča (se pravi: dokler
se povezava ne prekine).
Zdaj preklopite nazaj na okno, ki spremlja vaš sistemski dnevnik.
Ko ste končali s povezavo PPP, uporabite standardni ukaz ppp-off za njeno prekinitev (spomnite se, da morate biti root ali član skupine ppp!).
Ena od težav, na katero boste naleteli, je, da bodo mnogi ponudniki storitev podpirali le programske pakete za povezavo, ki jih sami distribuirajo svojim novim uporabnikom. Ti paketi so tipično za Microsoft Windows - in mnogi oddelki za pomoč pri ponudnikih storitev ne vedo ničesar o Unixu (ali Linuxu). Zato bodite pripravljeni na omejeno pomoč od njih!
Seveda lahko uslužbencu naredite uslugo in ga poučite o Linuxu (vsakdo na oddelku za pomoč pri ISP bi moral biti razumno ,,na tekočem`` s pojmi Interneta, in to pomeni, da bi moral imeti doma škatlo z Linuxom - seveda jo ima)!
Prav - vaša povezava PPP je vzpostavljena, teče in lahko pingate strežnik PPP z njegovo številko IP (druga ali ,,oddaljena`` (angl. remote) številka IP, ki jo pokaže ifconfig ppp0), vendar ne morete seči dlje od tega.
Najprej poskusite pingati številke IP, ki ste jih določili v datoteki /etc/resolv.conf kot imenske strežnike. Če to deluje, lahko vidite preko vašega strežnika PPP (razen če ima ta enako številko IP, kot je ,,oddaljena`` številka IP vaše povezave). Zato zdaj poskusite pingati polno internetno ime vašega ponudnika storitev
$ ping moj.ponudnik.siSeveda tukaj vstavite ime vašega pravega ISP. Če to ne deluje, imate težavo z razreševanjem imen. To je verjetno zaradi tipkarske napake v vaši datoteki /etc/resolv.conf. Pozorno preverite to datoteko, ali se v njej pojavlja informacija iz vzorčne datoteke /etc/resolve.conf iz razdelka 6.1.1.
Če še vedno ne deluje (in vaš ponudnik storitev zagotavlja, da njegov imenski strežnik deluje), leži vaš problem nekje drugje - in previdno preverite vašo namestitev Linuxa (glejte predvsem dovoljenja datotek).
Če še vedno ne morete pingati imenskih strežnikov vašega ISP-ja z njihovimi številkami IP, so morda v okvari (pokličite jih po glasovnem telefonu in preverite) ali so usmerjevalne težave na strani vašega ISP-ja.
Ena od možnosti je, da je ,,oddaljena stran`` strežnik za PPP z operacijskim sistemom Linux, v katerega jedru ni bila podprta izbira za posredovanje paketkov IP (angl. IP forwarding)!
Obstaja nešteto razlogov, da vaša povezava ne deluje - chat se ni uspešno povezal, imate umazano linijo itd. Zato preverite vaš sistemski dnevnik za indikacije.
Zelo pogost problem je, da ljudje prevedejo podporo za PPP v jedra, ko pa poskusijo poganjati pppd, se jedro kljub temu pritoži, da ne podpira PPP-ja! Obstaja vrsta razlogov, kako se to lahko zgodi.
In dosti drugih. Preberite PPP FAQ (ki je zares seznam vprašanj in odgovorov). To je zelo izčrpen sestavek in odgovori so tam! Če tam ni odgovora na vaše težave, vzrok težave ni v PPP!
Če ne morete pripraviti vaše povezave PPP do delovanja, se vrnite
skozi to poglavje in preverite vse - v povezavi z izhodom, ki ga
naredita ,,chat -v...
`` in ,,pppd -d
`` v vašem
sistemskem dnevniku.
Preverite tudi dokumentacijo za PPP in FAQ ter druge dokumente, ki so tam omenjeni!
Če ste obtičali, poskusite opisati svojo težavo v si.comp.os.unix ali (v angleščini) v comp.os.linux.misc in comp.os.linux.networking. Te novičarske skupine, kot tudi novičarsko skupino comp.protocols.ppp, dokaj redno pregledujejo ljudje, ki vam lahko pomagajo s PPP.
Če se odločite iskati pomoč v novičarskih skupinah Useneta, prosim, ne pošiljajte zelo dolgega sporočila, ki sestoji le iz razhroščevalnega izhoda. To pokuri ogromno mrežne pasovne širine. Mnogo bolje je opisati problem in morda vključiti nekaj vrstic razhroščevalnega izhoda (definitivno ne več kot en zaslon).
Knjiga Linux Network Administrator's Guide vsebuje popolne informacije o nastavitvi in uporabi protokola UUCP pod Linuxom. Tudi spis Linux UUCP HOWTO, dostopen prek anonimnega FTP-ja s strežnika metalab.unc.edu, bi moral pomagati. Drug vir informacij o UUCP-ju je knjiga Managing UUCP and USENET Tima O'Reillyja in Grace Todino. Glejte razdelek A za več informacij.
V praksi to pomeni, da lahko preusmerjate diske in tiskalnike na diske in tiskalnike Linuxa iz odjemalcev programa Lan Manager, odjemalcev Windows for Workgroups 3.11, Windows NT, Linux in OS/2. To vam daje možnost, da se ti operacijski sistemi obnašajo precej podobno kot strežnik LAN ali stroj Windows NT Server, le z dodano funkcionalnostjo in prožnostjo, načrtovano tako, da olajša življenje upravnikom.
Knjiga Samba: Integrating UNIX and Windows vsebuje popolne informacije o nastavitvi in uporabi zbirke Samba pod Linuxom. Domače strani Sambe so dostopne na http://samba.anu.edu.au/samba/, pomaga pa lahko tudi SMB HOWTO.
Najpopularnejši program za prenos pošte za Linux je sendmail. Zmožen je pošiljanja lokalne in oddaljene e-pošte po protokolih TCP/IP in UUCP. Alternativa programu sendmail je program Smail.
Več informacij o dostopnih poštnih programih za Linux in kako jih nastaviti na vašem sistemu ponuja spis Linux Mail HOWTO. Če nameravate pošiljati pošto na oddaljene sisteme, boste morali razumeti TCP/IP ali pa UUCP, odvisno od tega, kako je omrežen vaš stroj (glejte razdelka 6.1 in 6.3). Tukaj vam bodo v pomoč tudi spisi o UUCP in TCP/IP, našteti v dodatku A.
Večino poštnega programja za Linux lahko vzamete po anonimnem FTP-ju s strežnika metalab.unc.edu iz imenika /pub/Linux/system/Mail.
Obstajata dva dela novičarskega programja - strežnik (angl. server) in odjemalec (angl. client). Novičarski strežnik je programje, ki nadzoruje novičarske skupine in ureja razdeljevanje prispevkov na druge stroje (če ste na omrežju). Omrežni odjemalec ali novičarski bralnik je programje, ki se poveže na strežnik in potem dovoljuje uporabnikom branje in pošiljanje novic.
Za Linux obstaja več oblik novičarskih strežnikov. Vsi sledijo nekaterim osnovnim protokolom in zasnovi. Dve poglavitni različici sta ,,C News`` in ,,INN``. Obstaja tudi več vrst novičarskih bralnikov, kot sta rn in tin. Izbira novičarskega bralnika je bolj ali manj stvar okusa; vsi novičarski bralniki bi morali delovati enako dobro z različicami strežniškega programja. Se pravi, novičarski bralnik je neodvisen od strežniškega programa in obratno.
Če želite imeti novice le lokalno (se pravi, ne kot del Useneta), potem boste morali poganjati strežnik na vašem sistemu, kot tudi namestiti novičarski bralnik za uporabnike. Novičarski strežnik bo shranjeval prispevke v imenik, kot je /var/spool/news, novičarski bralnik pa bo preveden tako, da bo pogledal v ta imenik za novičarske prispevke.
Če pa želite poganjati novice po omrežju, se vam odpira več možnosti. Novice na omrežjih TCP/IP uporabljajo protokol, znan kot NNTP (angl. Network News Transmission Protocol, protokol za prenos novic po omrežju). NNTP dovoljuje novičarskemu bralniku branje novic prek omrežja na oddaljenem stroju. NNTP omogoča tudi izmenjavo novic po omrežju med posameznimi novičarskimi strežniki - to je programje, na katerem sloni Usenet. Večina podjetij in univerz ima usposobljenega enega ali več strežnikov NNTP za urejanje novic Useneta za to ustanovo. Ostali stroji iz te ustanove, za branje in pisanje novic po omrežju preko strežnika NNTP poganjajo bralnik novic, zasnovan na NNTP. To pomeni, da le strežnik NNTP zares shranjuje novičarske prispevke na disk.
Tukaj je nekaj mogočih scenarijev za nastavitev novic.
Večina od ,,standardnega`` novičarskega programja (dostopnega po anonimnem FTP-ju z ftp.uu.net v imeniku /news) se bo na Linuxu prevedla kot iz škatle. Nujne popravke lahko najdete na metalab.unc.edu v /pub/Linux/system/Mail (ki je, po naključju, tudi kraj, kjer lahko najdete poštno programje za Linux). V tem imeniku lahko najdete tudi druge binarne datoteke za novičarstvo v Linuxu.
Za več informacij glejte spis Linux News HOWTO s strežnika metalab.unc.edu v imeniku /pub/Linux/docs/HOWTO. Tudi knjiga LDP Linux Network Administrator's Guide vsebuje popolne informacije o nastavitvah novičarskega programja za Linux. Knjiga Managing UUCP and Usenet Tima O'Reillyja in Grace Todino je izvrsten vodnik o vzpostavljanju programja za UUCP in novice. Zanimiv je tudi sestavek Useneta ,,How to become a Usenet site``, dostopen s strežnika ftp.uu.net v imeniku /usenet/news.announce.newusers.