naprej navzgor nazaj vsebina index
Naprej: A. Viri informacij o Navzgor: Namestitev in začetek dela Nazaj: 5. X Window System

Podrazdelki



6. Vmreževanje

V tem poglavju govorimo o vmreževanju - kako nastaviti povezavo, uporabljati TCP/IP, SLIP, PPP ali UUCP, elektronsko pošto in novice.


6.1 Vmreževanje s TCP/IP

Linux podpira celotno izvedbo omrežnih protokolov TCP/IP (Transport Control Protocol/Internet Protocol). TCP/IP je postal najuspešnejši mehanizem za vmreževanje računalnikov po vsem svetu. Z Linuxom in mrežno kartico lahko priključite vaš stroj na lokalno mrežo (LAN, angl. local area network, LAN) ali (s pravilnimi omrežnimi povezavami) na Internet - svetovno omrežje TCP/IP.

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.


Strojne potrebe za TCP/IP

TCP/IP za Linux lahko uporabljate brez vsakršne strojne opreme za vmreževanje - nastavitev ,,kratko sklenjenega načina`` (angl. loopback mode) vam dovoljuje, da se pogovarjate s sabo. To je potrebno za nekatere aplikacije in igre, ki uporabljajo omrežno napravo z zaprto zanko.

Č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.

6.1.1 Nastavitev TCP/IP na vašem sistemu

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.

Vaša omrežna nastavitev

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.

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.


Omrežne datoteke rc
Datoteke rc so sistemski nastavitveni skripti, ki jih ob zagonu izvede init, ki zažene vse osnovne sistemske strežnike (kot sendmail, cron, itd.), in nastavijo stvari, kot so parametri omrežja, ime gostitelja in tako naprej. Datoteke rc se navadno najdejo v imeniku /etc/rc.d, a na drugih sistemih so morda v /etc. V splošnem distribucije Slackware uporabljajo datoteke rc.inet1 itd. v imeniku /etc/rc.d, medtem ko distribucije RedHat uporabljajo zaporedje imenikov.

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.

Datoteka /etc/hosts
Datoteka /etc/hosts vsebuje seznam naslovov IP in gostiteljskih imen, ki jim ustrezajo. V splošnem vsebuje /etc/hosts le vnose za vaš lokalni stroj in morda za druge ,,pomembne`` stroje (kot je vaš imenski strežnik ali prehod). Vaš lokalni imenski strežnik bo priskrbel transparentne preslikave iz-naslovov-v-imena za druge stroje na omrežju.

Na primer, če je vaš stroj loomer.vpizza.com z naslovom IP 128.253.154.32, bo vaša datoteka /etc/hosts videti takole:

127.0.0.1               localhost
128.253.154.32          loomer.vpizza.com loomer
Č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.
Datoteka /etc/networks
Datoteka /etc/networks našteva imena in naslove vašega lastnega in drugih omrežij. Uporablja se v ukazu route in vam dovoljuje, da določite omrežje po imenu, če tako želite.

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
Datoteka /etc/host.conf
Ta datoteka se uporablja za izbiro, kako bo vaš sistem ugotavljal imena gostiteljev. Vsebovati bi morala dve vrstici:
order hosts,bind
multi on
Ti 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.


Datoteka /etc/resolv.conf
Ta datoteka nastavi razreševalnik imen, tako da določi naslov vašega imenskega strežnika (če obstaja) in ime vaše domene. Ime vaše domene je vaše popolno gostiteljsko ime (če ste registrirani stroj na Internetu, na primer) z odbitim gostiteljskim imenom. Se pravi, če je vaše polno gostiteljsko ime loomer.vpizza.com, je ime vaše domene le vpizza.com.

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.com
nameserver 127.253.154.5
Določite lahko več kot en imenski strežnik - vsak mora imeti lastno vrstico nameserver v datoteki resolv.conf.


Nastavitev vašega gostiteljskega imena
Vaše gostiteljsko ime naj bi nastavili z ukazom hostname. Ta se navadno kliče iz /etc/rc ali /etc/rc.local; preprosto preiščite vaše sistemske datoteke rc za ugotovitev, kje se kliče. Na primer, če je vaše (polno) gostiteljsko ime loomer.vpizza.com, uredite ustrezno datoteko rc, da bo izvedla ukaz:
/bin/hostname loomer.vpizza.com
Vedite, da se izvedljiva datoteka hostname na vašem sistemu morda ne nahaja v imeniku /bin.


Preizkus
Ko imate enkrat nastavljene vse te datoteke, bi morali biti sposobni zagnati vaše novo jedro in poskušati uporabljati omrežje. Veliko je mest, kjer se lahko kaj zalomi, zato predlagamo, da preizkusite posamezne elemente nastavitev omrežja (npr., poganjanje pregledovalnika Mosaic preko omrežne povezave X najbrž ni dobra zamisel).

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.com
je 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.

6.1.2 Nastavitev SLIP

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.


Povezave SLIP s statičnim naslovom IP z uporabo dip.
Če uporabljate strežnik SLIP, ki statično dodeljuje naslove IP, boste morda želeli v datoteko /etc/hosts vključiti vnosa za vaš naslov IP in gostiteljsko ime. Prikrojite si tudi naslednje datoteke, naštete v zgornjem razdelku: rc.inet2, host.conf in resolv.conf.

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.2
kot 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.

Povezave SLIP s statičnim naslovom IP z uporabo slattach.
Če imate najeto linijo ali kabelsko povezavo neposredno do vašega strežnika SLIP, ni potrebe, da bi uporabljali dip za inicializacijo povezave. Namesto tega lahko uporabite program slattach za nastavitev naprave 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.

Povezave SLIP z dinamičnim naslovom IP z uporabo dip

Č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.
Server address is 128.253.154.2.
dip lahko ujame te številke iz izhoda strežnika in jih uporabi za nastavitev naprave SLIP.

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.


Uporaba dip

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>&1
Tukaj 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.


6.2 Omrežje na klic in PPP

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.

6.2.1 Kaj potrebujete za začetek

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

6.2.2 Pregled potrebnih korakov

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.

1.
Prepričajte se, da je podpora za TCP/IP prevedena v vaše jedro.
2.
Prepričajte se, da je podpora za PPP prevedena v vaše jedro statično ali pa kot naložljivi modul.
3.
Prepričajte se, da je programje za PPP prevedeno in nameščeno na vaših sistemih.
4.
Prepričajte se, da imate nastavljen modem, ki je nameščen/priključen na vaš računalnik in da veste, na katera zaporedna vrata je priključen modem.
5.
Prepričajte se, da dobite od vašega ponudnika klicnega strežnika PPP (navadno ISP, angl. Internet Service Provider, ponudnik interneta) naslednje informacije:

Prepričajte se, da ima vaše jedro podporo za TCP/IP.
Operacije za PPP v Linuxu so dveh vrst: 1) pritajeni strežnik za PPP (angl. PPP daemon) in 2) podpora za PPP v jedru. Kaže, da večina distribucij ponuja podporo za PPP v svojih privzetih namestitvenih jedrih, nekatere pa je vendarle ne. Morali bi se prepričati, da je v vaše jedro prevedena tudi podpora za TCP/IP. To lahko storite tako, da izdate naslednji ukaz:
# 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.019
imate 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.

Prepričajte se, da ima jedro podporo za PPP.
Če v času zagona vaše jedro poroča kaj podobnega kot
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
potem ima vaše jedro podporo za PPP. Izdate lahko tudi ukaz
# 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_FLAGS
to pomeni, da je prisotna podpora za PPP.

Prepričajte se, da imate nastavljen modem.
Morali bi se prepričati, da je vaš modem pravilno nastavljen in da veste, na katera serijska vrata je priključen.

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/ttySx
da 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):

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.)

Informacije o ponudniku Interneta.
Preden lahko vzpostavite povezavo PPP z oddaljenim strežnikom, morate dobiti naslednje informacije od sistemskega upravnika ali ljudi v tehnični podpori pri vašem ponudniku storitev interneta (angl. Internet Service Provider, ISP).

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.

Preizkus vašega modema in oddaljene storitve.
Ko ste uredili nastavitve serijskih vrat in modema, je dobra zamisel, da se prepričate v delovanje teh nastavitev tako, da pokličete vašega ISP in vidite, ali se lahko povežete.

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.

Uporaba internetnih strežnikov z dinamičnimi številkami IP.
Če uporabljate dinamične številke IP (in veliko ponudnikov storitev vam bo dalo le dinamično številko IP, razen če boste plačali znatno več za vašo povezavo), potem se morate zavedati omejitev, ki jih to narekuje.

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.

Datoteke za povezavo PPP.
Zdaj morate biti prijavljeni kot root, da ustvarite imenike in uredite datoteke, potrebne za nastavitev PPP. PPP uporablja precej datotek za priključitev in vzpostavitev povezave PPP. Te datoteke se razlikujejo po imenu in mestu med različicama PPP 2.1.2 in 2.2.

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:

drwxrwxr-x   2 root     root         1024 Oct  9 11:01 ppp
Če še ne obstaja, ga ustvarite s temi lastništvi in dovoljenji.

Č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.

Katere izbire naj uporabim?
No, kot pri vseh stvareh, je to odvisno (vzdihljaj). Izbire, navedene tukaj, bi morale delovati z večino strežnikov.

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)

Ročna vzpostavitev povezave PPP.
Zdaj, ko ste ustvarili vaši datoteki /etc/ppp/options in /etc/resolv.conf (in če je potrebno, datoteko /etc/ppp/pap-secrets ali chap-secrets), lahko preizkusite nastavitve z ročno vzpostavitvijo povezave PPP. (Ko nam bo ročno vzpostavljena povezava delovala, bomo proces avtomatizirali.)

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

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 -n
Videti 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.51
Dobiti bi morali izhod, kot je ta:
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
Ta izpis se bo nadaljeval v neskončnost - prekinete ga s pritiskom Ctrl-C, na tej točki boste prejeli nekaj dodatnih informacij:
--- 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.edu
Tokrat 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:
 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
Spet prekinite izhod s pritiskom Control-C in dobite nekaj dodatne statistike...
--- 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-off
Po 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

6.2.3 Izdelava povezovalnih skriptov

Č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:

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.

Skript ppp-on.

To je prvi od para skriptov, ki zares vzpostavita povezavo.
#!/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

Skript ppp-on-dialer.

#!/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

Skript ppp-off za PPP-2.2.

Za PPP-2.2 je skript ppp-off videti takole:
 
#!/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

6.2.4 Prilagajanje priloženih zagonskih skriptov za PPP

Novi skripti so v dveh delih, ki ju bomo uredili po vrsti.

Skript ppp-on.
Urediti boste morali skript ppp-on, da bo odražal vaše uporabniško ime pri vašem ISP, vaše geslo pri vašem ISP in telefonsko številko vašega ISP.

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!

Skript ppp-on-dialer.
To je drugi od skriptov, ki zares vzpostavita vašo povezavo PPP.

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.

TIMEOUT         3
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!

ABORT           '\nBUSY\r'
Če je sprejet niz BUSY (znak za zasedeno linijo), končaj postopek.

ABORT           '\nNO ANSWER\r'
Če prejmeš niz NO ANSWER (ni odgovora), končaj postopek.

ABORT           '\nRINGING\r\n\r\nRINGING\r'
Če prejmeš (ponovljen) niz RINGING, končaj postopek. To je zato, ker nekdo kliče vašo telefonsko linijo!

"              \rAT
Ne pričakuj ničesar od modema in pošlji niz AT.

OK-+++\c-OK   ATH0
Tale vrstica je malce bolj zapletena, saj uporablja nekatere zmožnosti za odpravljanje napak programa chat.

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!

TIMEOUT         30
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č.

OK              ATDT$TELEPHONE
Pričakuj OK (odgovor modema na ukaz ATH0) in pokliči številko, ki bi jo radi poklicali.

CONNECT         ''
Pričakuj CONNECT (kar pošlje naš modem, ko odgovori oddaljeni modem) in ne pošlji ničesar v odgovor.

ogin:--ogin:    $ACCOUNT
Tukaj imamo spet vgrajenega nekaj odpravljanja napak. Pričakuj prijavni pozornik (...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).

assword:        $PASSWORD
Pričakuj pozornik za geslo in pošlji naše geslo (spet, shranjeno v lupinski spremenljivki).

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).

6.2.5 Zagon PPP na strani strežnika

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
$ ppp
za zagon PPP na strežniku.

Tukaj je koristno dovoliti malce popravljanja napak, zato uporabite

hartr-hartr ppp
Se 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.

6.2.6 Če vaš strežnik PPP uporablja PAP (Password Authentication Protocol)

Č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

6.2.7 Uporaba protokola MSCHAP

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

rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
Tukaj ključno informacijo predstavlja ,,auth chap 80``.

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_ISP
v vašo datoteko /etc/ppp/options.

Pravzaprav bi morali v resnici uporabljati

user vaše_uporabniško_ime_pri_vašem_ISP
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.

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

# Skrivnosti za identifikacijo z uporabo CHAP
# odjemnik    strežnik    skrivnost   sprejemljivi_lokalni_naslovi_IP
fred          barney      flintstone
barney        fred        wilma
in na računalniku barney takole
# 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.

Pogovorni skript za povezave z identifikacijo PAP/CHAP.

Č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 \

Preizkus priključitvenega skripta.

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/messages
Mnogi 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.

6.2.8 Prekinitev povezave PPP

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!).

6.2.9 Odpravljanje pogostih težav, ko povezava deluje

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)!

Težave z razreševanjem naslovov.

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.si
Seveda 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)!

Razhroščevanje neuspelega poskusa.

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!

Dobivanje pomoči, ko se vam popolnoma zatakne.

Č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).


6.3 Vmreževanje z UUCP

UUCP (angl. UNIX-to-UNIX Copy Protocol, protokol prepisovanja z Unixa na Unix) je starejši mehanizem, uporabljan za prenašanje informacij med sistemi Unix. Z uporabo UUCP-ja lahko sistemi Unix pokličejo drug drugega (z uporabo modema) in prenesejo poštna sporočila, novičarske članke, datoteke in tako naprej. Če nimate dostopa TCP/IP ali SLIP, lahko uporabljate za komunikacijo s svetom UUCP. Večina poštnega in novičarskega programja (glejte razdelka 6.5 in 6.6) se lahko nastavi tako, da UUCP prenaša informacije na druge stroje. Pravzaprav, če je v bližini mesto z Internetom, lahko uredite, da vam internetno pošto pošiljajo s tega mesta prek UUCP-ja na vaš stroj z Linuxom.

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.


6.4 Vmreževanje s sistemi Microsoft

Samba je zbirka programov, ki delujejo skupaj in dovoljujejo odjemalcem dostop do datotečnega prostora in tiskalnikov na strežniku po protokolu SMB (angl. kratica za Server Message Block). Prvotno je bila napisana za Unix, danes pa Samba teče tudi na sistemih Netware, OS/2 in VMS.

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.


6.5 Elektronska pošta

Kot večina sistemov Unix, Linux priskrbi številne programske pakete za uporabo elektronske pošte. E-pošta na vašem sistemu je lahko bodisi lokalna (se pravi, pošto pošiljate le drugim uporabnikom na vašem sistemu), bodisi omrežna (se pravi, pošto prek protokola TCP/IP ali UUCP pošiljate uporabnikom na druge stroje v omrežju). E-poštno programje je navadno sestavljeno iz dveh delov: poštni program in program za prenos. Poštni program je navadno programje uporabniškega nivoja, ki se uporablja za sestavljanje in branje e-poštnih sporočil. Popularni tovrstni programi vključujejo elm in mailx. Program za prenos je nizkonivojsko programje, ki navadno poskrbi za dostavljanje pošte, lokalne ali oddaljene. Uporabnik nikoli ne vidi programja za prenos; opraviti ima le s poštnim programom. Vendar je pomembno, da kot sistemski upravnik razumete pojme v ozadju programja za prenos in kako ga nastaviti.

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.


6.6 Novice in Usenet

Linux priskrbi tudi številne možnosti za upravljanje elektronskih novic. Odločite se lahko, da boste na svojem sistemu usposobili lokalni novičarski strežnik, ki bo dovoljeval uporabnikom pisanje ,,prispevkov`` (angl. articles) v različne ,,novičarske skupine`` (angl. news groups) na sistemu... Vendar če imate dostop do omrežja TCP/IP ali UUCP, boste lahko sodelovali v Usenetu - svetovni storitvi novičarskih skupin.

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.


naprej navzgor nazaj vsebina index
Naprej: A. Viri informacij o Navzgor: Namestitev in začetek dela Nazaj: 5. X Window System
Roman Maurer
1999-03-22