Linux NET-3-HOWTO, Linux N�tverk. Terry Dawson, VK2KTJ, Alessandro Rubini (maintainer), alessandro.rubini@linux.it. Svensk �vers�ttning av Tomas Carlsson, md5tc@mdstud.chalmers.se <mailto:md5c@mdstud.chalmers.se> v1.3, 1 April 1998. Svensk version 14 Juni 1998 Linux har ett k�rnbaserat n�tverksst�d som �r skrivet n�stan helt fr�n noll. TCP/IP-prestandan i de senaste k�rnorna g�r Linux till ett v�rdigt alternativ �ven till de b�sta av dess motst�ndare. Detta doku� ment beskriver hur man installerar och konfigurerar n�tverksmjukvara och tillh�rande verktyg i Linux. ______________________________________________________________________ Inneh�llsf�rteckning 1. �ndringar fr�n version 1.2 2. Introduktion. 2.1 Feedback 2.2 �vers�ttarens kommentarer 3. S� h�r anv�nder man detta HOWTO dokument (NET-3-HOWTO-HOWTO ?). 4. Generell Information om Linux N�tverk. 4.1 En kort historia om utvecklingen av Linux N�tverksk�rna. 4.2 Var man hittar ytterligare information om Linux n�tverk. 4.3 Var man hittar generell n�tverksinformation (icke Linux-specifik) 5. Generell Information om N�tverkskonfiguration 5.1 Vad beh�ver man f�r att b�rja? 5.1.1 K�llkoden f�r k�rnan. 5.1.2 N�tverksverktyg (Network Tools). 5.1.3 Applikationsprogram f�r n�tverket 5.1.4 Adresser. 5.2 Var skall man skriva konfigurationskommandona? 5.3 Att skapa sina n�tverksgr�nssnitt. 5.4 Att konfigurera ett n�tverksgr�nssnitt. 5.5 Att konfigurera din Name Resolver. 5.5.1 Vad best�r ett namn av? 5.5.2 Vilken information beh�ver man. 5.5.3 /etc/resolv.conf 5.5.4 /etc/host.conf 5.5.5 /etc/hosts 5.6 Att konfigurera loopbackenheten. 5.7 Routing. 5.7.1 S� vad g�r programmet 5.8 Att konfigurera n�tverksservrar och tj�nster. 5.8.1 (TT 5.8.1.1 Ett exempel p� en 5.8.2 (TT 5.8.2.1 Ett exempel p� en 5.9 Andra n�tverksrelaterade konfigurationsfiler. 5.9.1 (TT 5.9.2 (TT 5.10 N�tverkss�kerhet och �tkomstkontroll. 5.10.1 /etc/ftpusers 5.10.2 /etc/securetty 5.10.3 (EM 5.10.3.1 /etc/hosts.allow 5.10.3.2 /etc/hosts.deny 5.10.4 /etc/hosts.equiv 5.10.5 Konfigurera 5.10.6 Brandv�ggar. 5.10.7 Andra f�rslag. 6. N�tverksspecifik Information. 6.1 ARCNet 6.2 Appletalk ( 6.2.1 Att konfigurera mjukvaran f�r Appletalk. 6.2.2 Att exportera ett Linuxfilsystem via Appletalk. 6.2.3 Att dela sin skrivare via Appletalk. 6.2.4 Att starta programvaran f�r Appletalk. 6.2.5 Att testa programvaran f�r Appletalk. 6.2.6 Brister i programvaran f�r Appletalk. 6.2.7 Mer information. 6.3 ATM 6.4 AX25 ( 6.5 DECNet 6.6 EQL - trafikutj�mnare f�r multipla linor. 6.7 Ethernet 6.8 FDDI 6.9 Frame Relay 6.10 IP-redovisning (IP Accounting) 6.11 IP Aliasing 6.12 IP Brandv�ggar (IP Firewalls) 6.13 IPIP Inkapsling (IPIP Encapsulation) 6.13.1 En tunnlad n�tverkskonfiguration. 6.13.2 En tunnlad datorkonfiguration. 6.14 IPX ( 6.15 IPv6 6.16 ISDN 6.17 IP-maskering (IP Masquerade). 6.18 IP Transparent Proxy 6.19 Mobil IP 6.20 Multicast 6.21 NAT - �vers�ttning av n�tverksadresser (Network Address Translation) 6.22 NetRom ( 6.23 PLIP (Parallel Line Internet Protocol) 6.24 PPP (Point to Point Protocol) 6.24.1 Att vidh�lla en permanent anslutning till n�tet med 6.25 Rose protokollet ( 6.26 SAMBA (st�d f�r `NetBEUI', `NetBios'). 6.27 SLIP (Serial Line Internet Protocol) klient. 6.27.1 dip (Dialup IP) 6.27.2 slattach 6.27.3 N�r anv�nder man vilket? 6.27.4 Statisk SLIP-server med uppringd f�rbindelse och 6.27.5 Dynamisk SLIP-server med uppringd f�rbindelse och 6.27.6 Att anv�nda 6.27.7 Permanent SLIP-anslutning med hyrd ledning och 6.28 SLIP (Serial Line Internet Protocol) server. 6.28.1 SLIP-server med 6.28.1.1 Var man f�r tag p� 6.28.1.2 Att konfigurera 6.28.1.3 Att konfigurera 6.28.1.4 Att konfigurera 6.28.1.5 Att konfigurera 6.28.1.6 Att konfigurera 6.28.2 Slip Server med 6.28.2.1 Att konfigurera 6.28.3 SLIP server med paketet 6.29 STRIP (Starmode Radio IP) 6.30 Token Ring 6.31 X.25 6.32 WaveLan 7. Kablage 7.1 Seriell NULL-modem kabel. 7.2 Parallellportskabel (PLIP kabel) 7.3 10base2 (tunn koax) Ethernet-kabel 7.4 Tvinnad tv�par Ethernet-kabel. 8. Terminologi i detta dokument. 9. Linux f�r en ISP? 10. Tillk�nnagivanden 11. Copyright. ______________________________________________________________________ 1. �ndringar fr�n version 1.2 Till�gg: Lade till information om transproxy Mindre fixar h�r och d�r R�ttningar/Uppdateringar: Ny maintainer ToDo (ej �ndrad, tyv�rr): L�gg till traffic shaper Beskriv ny routing algoritm L�gg till kompileringsalternativ i k�rnan f�r IPv6 Beskriv /proc/sys/net/* . WanRouter enhet 2. Introduktion. Den f�rsta NET-FAQen skrevs av Matt Welsh och Terry Dawson f�r att besvara ofta st�llda fr�gor om n�tverk f�r Linux, detta i en tid f�re Linux Documentation Project hade startat. Den t�ckte de tidiga utvecklingsversionerna av Linux n�tverksk�rna. NET-2-HOWTO tog �ver fr�n NET-FAQ och var ett av de f�rsta LDP HOWTO dokumenten, det t�ckte version 2, och senare version 3, av Linuxk�rnans n�tverksmjukvara. Detta dokument tar i sin tur �ver fr�n NET-2-HOWTO och behandlar endast version 3 av Linux n�tverksk�rna. Tidigare versioner av detta dokument blev ganska stora beroende p� den enorma m�ngd material som det skulle t�cka. F�r att minska storleken har ett antal HOWTO's producerats som behandlar specifika n�tverks�mnen. Detta dokument kommer, d�r det �r relevant, att tillst� med referenser till dessa och behandla de �mnen som inte t�cks i andra dokument. I April 1998 slutade Terry Dawson att uppr�th�lla NET-3, pga sin h�ga belastning. Jag �r ny i jobbet, men skall g�ra mitt b�sta f�r att lyckas. 2.1. Feedback Jag uppskattar alltid feedback och s�rskilt v�rdefulla bidrag. Var v�nlig att skicka alla bidrag till email <mailto:rubini@linux.it>. 2.2. �vers�ttarens kommentarer F�rst skall s�gas att jag inte �r n�gon expert p� att �vers�tta dokument fr�n engelska till svenska. N�r dokumentet dessutom �r fullsp�ckat med tekniska termer s� blir det inte l�ttare. Jag har f�rs�kt att �vers�tta de flesta termerna �nd� och i de fall som jag inte gjort detta s� b�r det vara klart vad som menas. I de fall som �vers�ttningen �r tveksam s� har jag �ven n�mnt den engelska termen. F�r �vrigt s� finns det m�nga meningar som antagligen inte skulle g�ra n�got vidare intryck p� en svenskal�rare, men jag hoppas att det g�r att f�rst� �nd�. P� ett par st�llen har jag lagt till ett par meningar, jag har d� markerat detta med `(Sv�)'. I andra sektioner av detta dokument (f�rutom denna) s� betyder `jag' originalf�rfattaren. --Tomas Carlsson, md5tc@mdstud.chalmers.se <mailto:md5c@mdstud.chalmers.se> 3. S� h�r anv�nder man detta HOWTO dokument (NET-3-HOWTO-HOWTO ?). Formatet p� detta dokument skiljer sig fr�n tidigare versioner. Vi har grupperat om sektionerna s� att det finns upplysande material i b�rjan som man kan hoppa �ver om man inte �r intresserad, sedan kommer generellt material som man m�ste f�rst� innan man forts�tter till de teknikspecifika delarna i resten av dokumentet. L�s de generella sektionerna Dessa sektioner anv�nds i alla, eller n�stan alla, tekniker som beskrivs senare och det �r viktigt att man f�rst�r dessa. Se �ver sitt n�tverk Man b�r veta hur ens n�tverk �r, eller kommer att vara, designat och exakt vilken h�rdvara och teknik som man kommer att implementera. L�s det teknikspecifika sektionerna som �r relaterade till de krav man har N�r man vet vad man vill ha s� kan man ta sig an varje komponent i tur och ordning. De h�r sektionerna behandlar endast detaljer f�r en specifik teknik. G�r konfigurationsarbetet Man b�r f�rs�ka att konfigurera sitt n�tverk och noggrant notera alla problem man st�ter p�. Leta efter ytterligare hj�lp om det beh�vs Om man st�ter p� problem som detta dokument inte kan hj�lpa till med s� l�s sektionen om var man kan hitta hj�lp eller var man kan rapportera buggar. Ha kul! N�tverk �r roligt, njut av det. 4. Generell Information om Linux N�tverk. 4.1. En kort historia om utvecklingen av Linux N�tverksk�rna. Att utveckla en helt ny implementering av TCP/IP protokollstacken i k�rnan som skulle prestera lika bra som existerande implementeringar var inte en l�tt uppgift. Valet att inte porta en av de existerande implementeringarna gjordes vid en tid d� det r�dde os�kerhet betr�ffande om de existerande implementeringarna kunde bli besv�rade av restriktiva copyrights p� grund av ett r�ttsfall av U.S.L och d� det fanns mycket entusiasm f�r att g�ra det annorlunda och kanske till och med b�ttre �n det redan hade gjorts. Den f�rsta frivilliga att leda utvecklingen av n�tverkskoden var Ross Biro <biro@yggdrasil.com>. Ross gjorde en enkel och inkomplett men mestadels anv�ndbar implementering, som ut�kades med en Ethernet- drivrutin f�r ett WD-8003 n�tverkskort. Detta r�ckte f�r att f� m�nga personer att testa och experimentera med koden och n�gra klarade till och med av att ansluta maskiner till Internet med denna implementering. Trycket p� n�tverksst�d �kade i Linuxv�rlden och till slut var kostnaden f�r or�ttvist tryck p� Ross st�rre �n vad han fick ut av projektet s� han lade av som huvudutvecklare. Ross anstr�ngningar f�r att f� ig�ng projektet och ta ansvar f�r att verkligen producera n�gonting anv�ndbart under s�dana kontroversiella omst�ndigheter var vad som drev p� allt framtida arbete och var d�rf�r en viktig del av framg�ngen med den nuvarande produkten. Orest Zborowski <obz@Kodak.COM> producerade det f�rsta programmeringsgr�nssnittet f�r BSD sockets till Linuxk�rnan. Detta var ett stort steg fram�t eftersom det till�t m�nga av de existerande n�tverksapplikationerna att bli portade till Linux utan omfattande modifiering. N�gon g�ng vid denna tid utvecklade Laurence Culhane <loz@holmes.demon.co.uk> de f�rsta drivrutinerna f�r Linux som st�dde SLIP-protokollet. Dessa gjorde det m�jligt f�r m�nga m�nniskor som inte hade tillg�ng till Ethernet-n�tverk att experimentera med den nya n�tverksmjukvaran. �terigen s� tog n�gra personer denna drivrutin och lyckades ansluta sig till Internet. Detta gav m�nga en smak av de m�jligheter som kunde bli realiserade om Linux hade fullt n�tverksst�d och �kade antalet anv�ndare av den existerande n�tverksmjukvaran. En av de som aktivt hade arbetat med uppgiften att implementera n�tverksst�d var Fred van Kempen <waltje@uwalt.nl.mugnet.org>. Efter en tid av os�kerhet efter Ross avhopp fr�n positionen som huvudutvecklare s� erbj�d Fred sin tid och insats. Fred hade n�gra ambiti�sa planer f�r vart han ville leda Linux n�tverksmjukvara och han b�rjade framskrida i den riktningen. Fred producerade en serie n�tverkskod som kallades 'NET-2' k�rnkod ('NET'-koden var Ross) som m�nga kunde anv�nda ganska anv�ndbart. Fred's NET-2 kod anv�ndes av ett hyfsat stort antal entusiaster, som �kade allt eftersom ryktet spred sig att koden fungerade. Vid denna tid var n�tverksmjukvaran fortfarande ett stort antal patchar till standardversionen av k�rnan och var inte inkluderad i den normala versionen. NET-FAQ och NET-2-HOWTO beskrev d� den ganska komplicerade rutinen f�r att f� allt att fungera. Freds m�l var att utveckla nyheter till standard implementeringen, och detta tog tid. Linuxv�rlden v�ntade ot�ligt p� n�got som fungerade p�litligt och, precis som med Ross, s� �kade trycket p� Fred som huvudutvecklare. Alan Cox <iialan@www.uk.linux.org> f�reslog en l�sning till problemet. Han f�reslog att han skulle ta Freds NET-2 kod och debugga den, g�ra den p�litlig och stabil s� att den skulle tillfredsst�lla de ot�liga anv�ndarna och samtidigt l�tta p� trycket p� Fred s� att han kunde forts�tta sitt jobb. Alan b�rjade med detta, med viss framg�ng och hans f�rsta version av n�tverkskod kallades 'NET-2D(ebugged)'. Koden fungerade p�litligt i m�nga typiska konfigurationer och anv�ndarna var n�jda. Alan hade egna ideer och f�rdigheter att bidra med till projektet vilket ledde till m�nga diskussioner relaterade till riktningen p� NET-2 koden. Det skapades tv� olika l�ger i Linuxv�rlden, en med filosofin 'f� det att fungera, sen g�r det b�ttre' och den andra 'g�r det b�ttre f�rst'. Linus st�dde Alans utveckling och inkluderade Alans kod i standarddistributionen av k�rnkoden. Detta placerade Fred i en sv�r situation. Fortsatt utveckling skulle sakna anv�ndning och testning av den stora anv�ndarskaran och detta skulle betyda att det skulle bli sv�rt och g� l�ngsamt. Fred fortsatte att arbeta en kort tid men lade till slut av och Alan blev den nya ledaren f�r Linux n�tverksutveckling. Snart avsl�jade Donald Becker <becker@cesdis.gsfc.nasa.gov> sina talanger i l�gniv�aspekterna f�r n�tverk och producerade en enorm m�ngd av Ethernet-drivrutiner, n�stan alla de som finns i nuvarande k�rnor �r utvecklade av Donald. Det finns andra som har givit betydelsefulla bidrag, men Donalds arbete �r produktivt och kr�ver speciell uppm�rksamhet. Alan fortsatte att f�rfina NET-2-Debugged koden en tid samtidigt som han arbetade p� det som fanns p� 'TODO'-listan. D� Linux 1.3.* k�rnkoden hade v�xt till sig hade n�tverkskoden g�tt �ver till NET-3 versionen som nuvarande versioner grundar sig p�. Alan arbetade p� m�nga olika aspekter p� n�tverkskoden och med hj�lp av en m�ngd talangfulla personer fr�n Linuxv�rlden v�xte koden i alla m�jliga riktningar. Alan producerade dynamiska n�tverksenheter och de f�rsta standard AX.25 och IPX implementeringarna. Alan har fortsatt att meka med koden, l�ngsamt strukturerat om och f�rb�ttrat den till det tillst�nd den �r i idag. PPP-st�d lades till av Michael Callahan <callahan@maths.ox.ac.uk> och Al Longyear <longyear@netcom.com>, detta var ocks� kritiskt f�r att �ka antalet personer som anv�nde Linux f�r n�tverk. Jonathon Naylor <jsn@cs.nott.ac.uk> har bidragit med att g�ra betydande f�rb�ttringar av Alans AX.25 kod, lagt till st�d f�r NetRom och Rose protokoll. AX.25/NetRom/Rose st�det i sig sj�lv �r ganska betydelsefullt, f�r att inget annat operativsystem har inbyggt st�d f�r dessa protokoll f�rutom Linux. Det finns naturligtvis hundratals andra personer som har givit betydelsefulla bidrag till utvecklingen av Linux n�tverksmjukvara. N�gra av dessa kommer att n�mnas senare i de teknikspecifika sektionerna, andra har bidragit med moduler, drivrutiner, buggfixar, f�rslag, testrapporter och moraliskt st�d. I alla dessa fall kan var och en s�ga att den varit del av utvecklingen. Linux n�tverkskod �r ett utm�rkt exempel p� de resultat som kan uppn�s med Linux anarkistiska utvecklingsstil, om man inte �r f�rv�nad �ver detta �n, s� blir man det snart f�r utvecklingen har inte slutat �n. 4.2. Var man hittar ytterligare information om Linux n�tverk. Det finns ett antal st�llen d�r man kan hitta bra information om Linux n�tverk. Alan Cox, den nuvarande handhavaren av Linux n�trverkskod har en World Wide Web sida som inneh�ller h�jdpunkter fr�n utvecklingen av n�tverkskoden: www.uk.linux.org <http://www.uk.linux.org/NetNews.html>. Ett annat bra st�lle �r en bok, Network Administrators Guide, skriven av Olaf Kirch. Den tillh�r Linux Documentatation Project <http://sunsite.unc.edu/LDP/> och man kan l�sa den online p� Network Administrators Guide HTML version <http://sunsite.unc.edu/LDP/LDP/nag/nag.html> eller h�mta den i olika format via ftp fr�n sunsite.unc.edu LDP ftp archive <ftp://sunsite.unc.edu/pub/Linux/docs/LDP/network-guide/>. Olafs bok �r ganska omfattande och ger en bra �versikt av h�gniv�konfiguration av n�tverket i Linux. Det finns en nyhetsgrupp i Linux nyhetshierarkin som �r avsedd f�r n�tverk och dess relaterade �mnen, den �r: comp.os.linux.networking <news:comp.os.linux.networking> Det finns en mailing-lista som man kan prenumerera p� d�r man kan fr�ga fr�gor relaterade till Linux n�tverk. F�r att prenumerera skall man skicka ett e-post meddelande: To: majordomo@vger.rutgers.edu Subject: anything at all Message: subscribe linux-net P� de olika IRC n�tverken finns det ofta #linux kanaler p� vilka personer kan svara p� fr�gor om Linux n�tverk. Kom ih�g att n�r man rapporterar ett problem s� skall man inkludera s� mycket relevanta detaljer om problemet som man kan. Speciellt s� b�r man specificera vilka versioner av mjukvara man anv�nder, s�rskilt k�rnversionen, versionen p� verktyg s�som pppd eller dip och den exakta karakt�ren av problemet som man upplever. Detta betyder bland annat att notera den exakta syntaxen p� felmeddelanden som man f�r och alla kommandon som man anv�nder. 4.3. Var man hittar generell n�tverksinformation (icke Linux-speci� fik) Om man vill ha grundl�ggande information om TCP/IP n�tverk, s� kan jag rekommendera f�ljande dokument: tcp/ip introduction detta dokument finns b�de som text version <ftp://athos.rutgers.edu/runet/tcp-ip-intro.doc> och som postscript version <ftp://athos.rutgers.edu/runet/tcp-ip- intro.ps>. tcp/ip administration detta dokument finns b�de som text version <ftp://athos.rutgers.edu/runet/tcp-ip-admin.doc> och som postscript version <ftp://athos.rutgers.edu/runet/tcp-ip- admin.ps>. Om man vill ha mer detaljerad information om TCP/IP n�tverk s� kan jag rekommendera: "Internetworking with TCP/IP" av Douglas E. Comer ISBN 0-13-474321-0 Prentice Hall publications. Man kan ocks� prova nyhetsgruppen comp.protocols.tcp-ip <news:comp.protocols.tcp-ip>. En viktig informationsk�lla n�r man �r ute efter teknisk information relaterad till Internet och TCP/IP protokollen �r RFCs. RFC �r en f�rkortning av 'Request For Comment' och �r det standardiserade s�ttet att l�mna ut och dokumentera protokollstandarder f�r Internet. Det finns m�nga st�llen att h�mta RFCs fr�n. M�nga av dessa �r ftp-sajter och andra tillhandah�ller World Wide Web sidor med s�kmotorer d�r man kan kan s�ka i RFC databasen med nyckelord. En m�jlig k�lla f�r RFCs �r: Nexor RFC database <http://pubweb.nexor.co.uk/public/rfc/index/rfc.html>. 5. Generell Information om N�tverkskonfiguration F�ljande delsektioner inneh�ller information som man m�ste f�rst� f�r att kunna konfigurera sitt n�tverk. Det �r fundamentala principer som g�ller oavsett karakt�ren p� n�tverket som man skall anv�nda. 5.1. Vad beh�ver man f�r att b�rja? Innan man b�rjar bygga eller konfigurera sitt n�tverk beh�ver man n�gra saker. De viktigaste �r: 5.1.1. K�llkoden f�r k�rnan. Eftersom k�rnan som man k�r nu inte n�dv�ndigtvis �nnu har st�d f�r de n�tverk och n�tverkskort som man vill anv�nda s� beh�ver man antagligen k�llkoden f�r k�rnan s� att man kan kompilera om den med l�mpliga till�gg. Man kan alltid h�mta den senaste k�llkoden fr�n: ftp.funet.fi <ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/v2.0>. Vanligtvis s� packas k�llkoden upp till katalogen /usr/src/linux. F�r mer information om hur man l�gger till patchar och hur man kompilerar k�rnan s� b�r man l�sa Kernel-HOWTO <Kernel-HOWTO.html>. F�r information om hur man konfigurerar k�rnans moduler s� b�r man l�sa Module-HOWTO <Module-HOWTO.html>. Om inte annat s�gs specifikt s� rekommenderar jag att man h�ller dig till standardversionerna av k�rnan (de med j�mna nummer som andra siffra i versionsnummret). Versioner under utveckling (de med udda andra siffra) kan ha strukturella eller andra �ndringar som kan skapa problem med annan mjukvara i sitt system. Om man �r os�ker p� om man klarar av att l�sa den typen av problem, s� skall man inte anv�nda de versionerna. 5.1.2. N�tverksverktyg (Network Tools). N�tverksverktygen �r de program som man anv�nder f�r att konfigurera n�tverksenheter i Linux. Med dessa verktyg kan man tilldela adresser till enheter och konfigurera routes till exempel. De flesta moderna Linuxdistributioner �r utrustade med n�tverksverktyg, s� om man har installerat fr�n en distribution och �nnu inte installerat n�tverksverktygen s� b�r man g�ra detta nu. Om man inte har installerat fr�n en distribution s� beh�ver man k�llkoden f�r att kompilera verktygen sj�lv. Detta �r inte sv�rt. N�tverksverktygen handhas av Bernd Eckenfels och finns p�:ftp.inka.de <ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/> och �r speglade p�: ftp.uk.linux.org <ftp://ftp.uk.linux.org/pub/linux/Networking/base/>. Man skall vara noga med att v�lja en version som passar den k�rna som man har t�nkt att anv�nda och med att f�lja instruktionerna i paketet f�r att installera. F�r att installera den senaste versionen d� detta skrivs s� beh�ver man g�ra f�ljande: # # cd /usr/src # tar xvfz net-tools-1.33.tar.gz # cd net-tools-1.33 # make config # make # make install # Dessutom, om man t�nker konfigurera en brandv�gg eller anv�nda IP- maskering, s� beh�ver man ipfwadm kommandot. Den senaste versionen finns p�: ftp.xos.nl <ftp:/ftp.xos.nl/pub/linux/ipfwadm>. �terigen s� finns det ett antal versioner tillg�ngliga. Se till att v�lja den som passar b�st till din k�rna. F�r att installera den senaste versionen d� detta skrivs s� beh�ver man g�ra f�ljande: # # cd /usr/src # tar xvfz ipfwadm-2.3.0.tar.gz # cd ipfwadm-2.3.0 # make # make install # 5.1.3. Applikationsprogram f�r n�tverket Applikationsprogrammen �r program s�som telnet och ftp och deras respektive serverprogram. David Holland <dholland@hcs.harvard.edu> handhar en distribution av de vanligaste av dessa. man kan h�mta dem fr�n: ftp.uk.linux.org <ftp://ftp.uk.linux.org/pub/linux/Networking/base>. F�r att installera den senaste versionen d� detta skrivs s� beh�ver man g�ra f�ljande: # # cd /usr/src # tar xvfz /pub/net/NetKit-B-0.08.tar.gz # cd NetKit-B-0.08 # more README # vi MCONFIG # make # make install # 5.1.4. Adresser. Internet Protokoll Adresser �r uppbyggda av fyra bytes. Konventionen �r att skriva adresser i vad som kallas 'punkterad decimal notation'. I denna formen �r varje byte konverterad till ett decimalt tal (0-255), utan nollor i b�rjan, och skrivs med varje byte separerad med ett '.' tecken. Varje (n�tverks-)gr�nssnitt hos en v�rddator eller router har en IP-adress. I vissa fall �r det till�tet att ha samma IP- adress p� alla gr�nssnitt p� en och samma maskin, men vanligtvis har varje gr�nssnitt sin egen adress. Internet Protokoll n�tverk �r kontinuerliga sekvenser av IP-adresser. Alla adresser inom ett n�tverk har ett antal siffror i adressen gemensamma. Den del av adressen som �r gemensam f�r alla adresser inom ett n�tverk kallas 'n�tverksdelen' ('network portion') av adressen. Antalet bitar som �r delade av alla adresser inom ett n�tverk kallas 'n�tmasken' ('netmask') och det �r n�tmaskens uppgift att avg�ra vilka adresser som h�r till n�tverket som n�tmasken tillh�r och vilka som inte g�r det. Beakta f�ljande exempel: ----------------- --------------- Host Address 192.168.110.23 Network Mask 255.255.255.0 Network Portion 192.168.110. Host portion .23 ----------------- --------------- Network Address 192.168.110.0 Broadcast Address 192.168.110.255 ----------------- --------------- Alla adresser som blir 'bitvis andade' med sin n�tmask kommer att avsl�ja adressen till n�tverket som den tillh�r. N�tverksadressen �r d�rf�r den l�gst numrerade adressen i den rad av adresser som finns i n�tverket och har v�rddatordelen av adressen satt till nollor. Broadcastadressen �r en speciell adress som varje v�rddator p� n�tverket lyssnar till ut�ver sin egen unika adress. Till denna adress s�nds datagram om det �r t�nkt att alla maskiner p� n�tverket skall ta emot dem. Vissa typer av data s�som route information och varningsmeddelanden s�nds till broadcastadressen s� att alla maskiner p� n�tverket kan ta emot dem samtidigt. Det finns tv� vanligt f�rekommande standarder f�r vad broadcastadressen skall vara. Den mest anv�nda �r att den h�gsta m�jliga adressen i n�tverket anv�nds som broadcastadress. I exemplet ovan skulle detta vara 192.168.110.255. Av n�gon anledning anv�nder vissa sajter n�tverksadressen som broadcastadress. I praktiken spelar det ingen st�rre roll vilket man anv�nder men man m�ste vara s�ker p� att alla maskiner p� n�tverket anv�nder samma broadcastadress. Av administrativa sk�l n�gon g�ng tidigt i utvecklingen av IP- protokollet delades adresserna in i n�gra slumpvisa grupper av n�tverk och dessa n�tverk grupperades i vad som kallas f�r klasser. Dessa klasser tillhandah�ller ett antal n�tverk av standardstorlekar som kan bli allokerade. De allokerade �r: ---------------------------------------------------------- | Network | Netmask | Network Addresses | | Class | | | ---------------------------------------------------------- | A | 255.0.0.0 | 0.0.0.0 - 127.255.255.255 | | B | 255.255.0.0 | 128.0.0.0 - 191.255.255.255 | | C | 255.255.255.0 | 192.0.0.0 - 223.255.255.255 | |Multicast| 240.0.0.0 | 224.0.0.0 - 239.255.255.255 | ---------------------------------------------------------- Vilka adresser som man skall anv�nda beror p� vad det �r exakt man skall g�ra. Man kan beh�va anv�nda en kombination av f�ljande f�r att f� de adresser man beh�ver: Installera en Linuxmaskin p� ett existerande IP-n�tverk Om man vill installera en Linuxmaskin p� ett existerande IP- n�tverk s� b�r man kontakta den som administrerar n�tverket och fr�ga efter f�ljande: � IP-adress f�r v�rddatorn (Host IP Address) � IP n�tverksadress (IP Network Address) � IP broadcastadress � IP n�tmask (IP Netmask) � Routeradress � DNS adress (Domain Name Server Address) Man skall sedan konfigurera sin Linux n�tverksenhet med de uppgifterna. man kan inte hitta p� dem och f�rv�nta sig att det skall fungera. Bygga ett helt nytt n�tverk som aldrig skall anslutas till Internet Om man bygger ett privat n�tverk som man aldrig t�nker ansluta till Internet s� kan man v�lja vilka adresser man vill. Men, f�r s�kerhets och konsistens skull s� har vissa IP-adresser blivit reserverade speciellt f�r detta �ndam�l. De �r specificerade i RFC1597 och �r f�ljande: ----------------------------------------------------------- | RESERVED PRIVATE NETWORK ALLOCATIONS | ----------------------------------------------------------- | Network | Netmask | Network Addresses | | Class | | | ----------------------------------------------------------- | A | 255.0.0.0 | 10.0.0.0 - 10.255.255.255 | | B | 255.255.0.0 | 172.16.0.0 - 172.31.255.255 | | C | 255.255.255.0 | 192.168.0.0 - 192.168.255.255 | ----------------------------------------------------------- Man b�r f�rst best�mma hur stort n�tverket skall vara och sedan v�lja s� m�nga adresser som man beh�ver. 5.2. Var skall man skriva konfigurationskommandona? Det finns n�gra olika metoder f�r Linux systemstartprocedurer. Efter det att k�rnan bootar, s� exekverar den alltid ett program som heter init. init programmet l�ser sedan en konfigurationsfil som heter /etc/inittab och inleder uppstartsprocessen. Det finns n�gra olika versioner av init och det �r denna variationen som �r den st�rsta orsaken till skillnad mellan distributioner eller maskiner. Vanligtvis s� inneh�ller /etc/inittab filen en rad som ser ut n�gonting som liknar: si::sysinit:/etc/init.d/boot Denna raden specificerar namnet p� det shell-script som verkligen utf�r uppstarten. Denna fil skulle kunna j�mf�ras med filen AUTOEXEC.BAT i MS-DOS. Vanligtvis finns det andra script som anropas av boot-scriptet och ofta s� konfigureras n�tverket i n�got av dessa. F�ljande tabell kan anv�ndas som guide f�r ett system: ------------------------------------------------------------------------------- Distrib. |Interface Config/Routing |Server Initialisation ------------------------------------------------------------------------------- Debian |/etc/init.d/network |/etc/init.d/netbase | |/etc/init.d/netstd_init | |/etc/init.d/netstd_nfs | |/etc/init.d/netstd_misc ------------------------------------------------------------------------------- Slackware|/etc/rc.d/rc.inet1 |/etc/rc.d/rc.inet2 ------------------------------------------------------------------------------- RedHat |/etc/sysconfig/network-scripts/ifup-<ifname>|/etc/rc.d/init.d/network ------------------------------------------------------------------------------- De flesta moderna distributioner har ett program med vilket man kan konfigurera m�nga av de vanligaste sorterna av n�tverksgr�nssnitt. Om man har en av dessa s� b�r man se om det kan g�ra det man vill innan man ger sig p� manuell konfiguration. ----------------------------------------- Distrib | Network configuration program ----------------------------------------- RedHat | /sbin/netcfg Slackware | /sbin/netconfig ----------------------------------------- 5.3. Att skapa sina n�tverksgr�nssnitt. I m�nga Unix operativsystem s� framtr�der n�tverksenheterna i /dev katalogen. S� �r inte fallet i Linux. I Linux skapas n�tverksenheterna dynamiskt i mjukvara och d�rmed m�ste inte enhetsfiler finnas. I de flesta fall skapas n�tverksenheterna automatiskt av drivrutinen n�r den initialiseras och hittar din h�rdvara. Till exempel s� skapar Ethernetdrivrutinen eth[0..n] gr�nssnitten sekvensiellt medan den hittar din Etherneth�rdvara. Det f�rsta Ethernetkortet som hittas blir eth0, det andra eth1 osv. Men i n�gra fall, tex slip och ppp, s� skapas n�tverksenheterna genom att n�got anv�ndarprogram k�rs. Samma sekvensiella numrering g�ller, men enheterna skapas inte automatiskt vid systemstarten. Anledningen till detta �r att, till skillnad fr�n Ethernetenheterna, s� kan antalet aktiva slip eller ppp enheter variera under tiden systemet �r ig�ng. De h�r fallen g�s igenom mer noggrannt senare. 5.4. Att konfigurera ett n�tverksgr�nssnitt. N�r man har alla program man beh�ver och sina adress- och n�tverksuppgifter s� kan man konfigurera sina n�tverksgr�nssnitt. N�r vi pratar om att konfigurera ett n�tverksgr�nssnitt s� pratar vi om processen att tilldela en n�tverksenhet l�mpliga adresser och att ge l�mpliga v�rden till andra konfigurerbara parametrar hos en n�tverksenhet. Det mest anv�nda programmet f�r detta �r kommandot ifconfig (interface configure). Vanligtvis b�r man anv�nda ett kommando som liknar f�ljande: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up I detta fallet konfigurerar jag ett Ethernetkort eth0 med IP-adressen 192.168.0.1 och en n�tmask 255.255.255.0. Parametern up som f�ljer kommandot talar om f�r enheten att den skall bli aktiv. K�rnan f�ruts�tter vissa f�rvalda v�rden n�r man konfigurerar gr�nssnitt. Till exempel s� kan man specificera n�tverksadress och broadcastadress f�r ett gr�nssnitt. Men om man inte g�r det, som i exemplet ovan, s� g�r k�rnan rimliga gissningar baserade p� n�tmasken, och om man inte specificerat n�gon n�tmask s� tittar k�rnan p� klassen av IP-adress. I exemplet ovan skulle k�rnan anta att det �r ett klass C n�tverk som skall konfigureras och d�rmed s�tta n�tverksadressen till 192.168.0.0 och broadcastadressen till 192.168.0.255. Det finns m�nga andra parametrar till ifconfig. De viktigaste �r: up aktiverar ett gr�nssnitt. down deaktiverar ett gr�nssnitt. [-]arp sl�r av eller sl�r p� 'address resolution protocol' f�r gr�nssnittet. [-]allmulti sl�r av eller sl�r p� mottagning av alla h�rdvaru- multicastpaket. H�rdvaru-multicast l�ter grupper av maskiner att ta emot paket som �r adresserade till speciella destinationer. Detta kan vara viktigt om man anv�nder applikationer s�som videokonferenssystem men anv�nds normalt inte. mtu N specificerar MTU f�r enheten. netmask addr specificerar n�tmasken f�r n�tverket som maskinen tillh�r. irq addr denna parameter fungerar endast f�r viss h�rdvara och s�tter IRQ f�r enheten. [-]broadcast [addr] sl�r p� mottagning av datagram som skickas till broadcastadressen, eller sl�r av mottagning av dessa datagram. [-]pointopoint [addr] s�tter adressen p� maskinen p� andra �nden av en punkt till punkt f�rbindelse som tex slip eller ppp. hw <type> <addr> s�tter h�rdvaruadressen f�r n�tverksenheten. Oftast �r detta inte anv�ndbart f�r Ethernet, men �r anv�ndbart f�r andra typer av n�tverk som tex AX.25. Man kan anv�nda kommandot ifconfig p� alla n�tverksgr�nssnitt. Vissa anv�ndarprogram, tex pppd och dip, konfigurerar enheterna automatisk n�r de skapar dem, s� manuell anv�ndning av ifconfig �r inte n�dv�ndig. 5.5. Att konfigurera din Name Resolver. Name Resolvern �r en del av Linux standardbibliotek. Dess huvudsakliga funktion �r att tillhandah�lla en tj�nst f�r att �vers�tta m�nniskov�nliga datornamn som ftp.funet.fi till maskinv�nliga IP- adresser som 128.214.248.6. 5.5.1. Vad best�r ett namn av? De flesta �r antagligen bekanta med hur datornamn upptr�der i Internet, men man kanske inte vet hur de �r konstruerade, eller rekonstruerade. Internet dom�nnamn �r av hierarkisk karakt�r, dvs de har tr�dstruktur. En dom�n �r en familj, eller grupp av namn. En dom�n kan brytas ned i subdom�ner. En toppdom�n �r en dom�n som inte �r en subdom�n. Toppdom�nerna �r specificerade i RFC-920. N�gra exempel p� de vanligaste topdom�nerna �r: COM Kommersiella Organisationer EDU Utbildningsorganisationer GOV Regeringsorganisationer MIL Milit�rorganisationer ORG Andra Organisationer NET Internet-Relaterade Organisationer Landskod Detta �r koder som best�r av tv� bokst�ver och som representerar ett visst land. Alla dessa toppdom�ner har subdom�ner. Toppdom�nerna baserade p� landsnamn bryts sedan ned i subdom�ner baserade p� com, edu, gov, mil och org dom�ner (detta �r ju dock inte fallet i .se-dom�nen �nnu. �vers�ttarens kommentar). S� till exempel blir det com.au och gov.au f�r kommersiella och regeringsorganisationer i Australien. Av historiska sk�l s� anv�nds de dom�ner som tillh�r de icke landsbaserade toppdom�nerna mestadels av organisationer i USA, trots att USA har sin egen landskod .us. N�sta nedbrytningsniv� representerar oftast namnet p� organisationen. Ytterligare subdom�ner varierar i karakt�r, oftast s� baseras n�sta niv� p� avdelningar inom organisationen, men den kan baseras p� vilket kriterium som helst som har n�gon betydelse f�r n�tverksadministrat�rerna i organisationen. Delen l�ngst till v�nster av namnet �r alltid det unika namnet som v�rddatorn har och det kallas f�r hostname, den delen av namnet som finns till h�ger om hostname kallas f�r domainname och hela namnet heter Fully Qualified Domain Name. Med min egen emailv�rddator som exempel, s� �r `Fully Qualified Domain Name' perf.no.itg.telstra.com.au. Detta betyder att hostname �r perf och domainname �r no.itg.telstra.com.au. Dom�nnamnet �r baserat p� en toppdom�n vilken �r baserad p� mitt land, Australien och eftersom min epostadress tillh�r en komersiell organisation s� har vi .com p� n�sta niv�. F�retagets namn �r (var) telstra och v�r interna namnstruktur �r baserad p� den organisationella strukturen, i mitt fall s� tillh�r maskinen Information Technology Group, Network Operations sektionen. 5.5.2. Vilken information beh�ver man. Man beh�ver veta vilken dom�n datorns namn skall tillh�ra. Name Resolvermjukvaran tillhandah�ller namn�vers�ttning genom att g�ra f�rfr�gningar till en Domain Name Server, s� man beh�ver veta IP- adressen till en lokal namnserver som man kan anv�nda. Det finns tre filer som man beh�ver editera, jag ber�ttar om dem i tur och ordning. 5.5.3. /etc/resolv.conf Filen /etc/resolv.conf �r huvudfilen f�r att konfigurera namn�vers�ttaren. Dess format �r ganska enkelt. Det �r en textfil med ett nyckelord per rad. Det finns tre nyckelord som vanligtvis anv�nds, de �r: domain detta nyckelord specificerar det lokala dom�nnamnet. search detta nyckelord specificerar en lista med alternativa dom�nnamn att leta i efter ett datornamn. nameserver detta nyckelord, som kan anv�ndas flera g�nger, specificerar en IP-adress till en namnserver (Domain Name Server) att anv�nda n�r man �vers�tter namn. Ett exempel p� /etc/resolv.conf kan se ut n�gonting som f�ljande: domain maths.wu.edu.au search maths.wu.edu.au wu.edu.au nameserver 192.168.10.1 nameserver 192.168.12.1 Detta exempel anger att man l�gger till dom�nnamnet maths.wu.edu.au till datornamn som ges utan dom�nnamn, och om datorn inte hittas d�r s� skall man leta �ven i wu.edu.au dom�nen. Tv� namnservrar �r speci� ficerade, som b�da kan kontaktas av namn�vers�ttaren n�r ett namn skall �vers�ttas. 5.5.4. /etc/host.conf I filen /etc/host.conf kan man konfigurera hur namn�vers�ttaren beter sig. Formatet f�r filen �r beskrivet i detalj i manualsidan resolv+. I n�stan alla fall fungerar f�ljande exempel: order hosts,bind multi on Denna konfiguration talar om f�r �vers�ttaren att titta i filen /etc/hosts innan den f�rs�ker g�ra en f�rfr�gning till namnservern och att returnera alla giltiga adresser f�r en dator som den hittar i /etc/hosts och inte bara den f�rsta. 5.5.5. /etc/hosts I filen /etc/hosts kan man l�gga namn och IP-adresser f�r lokala maskiner. Om man placerar ett datornamn med respektive IP-adress i denna fil s� beh�ver man inte g�ra en f�rfr�gan till namnservern f�r att f� reda p� dess IP-adress. Nackdelen med detta �r att man m�ste h�lla filen uppdaterad sj�lv ifall IP-adresserna �ndras. I ett v�l underh�llet system s� finns endast rader med 'loopback' och lokala datornamn i denna fil. # /etc/hosts 127.0.0.1 localhost loopback 192.168.0.1 this.host.name Man kan ange mer �n ett datornamn per rad som p� den f�rsta raden i exemplet, vilket �r standardutformningen f�r loopbackenheten. 5.6. Att konfigurera loopbackenheten. loopback-enheten �r ett s�rskilt gr�nssnitt med vilket man kan g�ra anslutningar till sig sj�lv. Det finns olika anledningar varf�r man skulle vilja g�ra detta, till exempel s� kanske man vill testa n�gon n�tverksmjukvara utan att st�ra n�gon annan p� sitt n�tverk. Av tradition s� har IP-adressen 127.0.0.1 reserverats speciellt f�r loopback. S�, oavsett vilken maskin man g�r till, om man �ppnar en telnet-anslutning till 127.0.0.1 s� blir man alltid ansluten till den lokala datorn. Att konfigurera loopbackenheten �r enkelt och man b�r g�ra f�ljande: # ifconfig lo 127.0.0.1 # route add -host 127.0.0.1 lo Vi pratar mer om route kommandot i n�sta sektion. 5.7. Routing. Routing �r ett stort �mne. Det skulle vara l�tt att skriva stora m�ngder text om detta. De flesta kommer att ha hyfsat enkla krav p� routingen, men vissa har det inte. Jag kommer bara att behandla grunderna om routing. Om man �r intresserad av mer detaljerad information s� f�resl�r jag att man letar i referenserna som ges i b�rjan av detta dokument. L�t oss b�rja med en definition. Vad �r IP routing? H�r f�ljer den definition som jag anv�nder: IP routing �r processen d�r en dator med flera n�tverk� sanslutningar avg�r vart den skall skicka IP datagram som den har tagit emot. Det kan vara bra att illustrera detta med ett exempel. Antag en typisk kontorsrouter, den skulle kunna ha en PPP-l�nk till Internet, ett antal Ethernetsegment som g�r till arbetsstationerna och en annan PPP- l�nk till ett annat kontor. N�r routern tar emot ett datagram p� n�gon av dess n�tverksanslutningar, s� �r routing mekanismen den anv�nder f�r att avg�ra till vilken av n�tverksanslutningarna som den skall skicka vidare datagrammet. Enkla datorer beh�ver ocks� anv�nda routing, alla Internetdatorer har �tminstone tv� n�tverksenheter, en �r loopbackenheten som beskrivs ovan och den andra �r den som den anv�nder f�r att 'prata' med resten av n�tverket, kanske ett Ethernetkort, kanske ett PPP- eller SLIP-gr�nssnitt. Hur fungerar routing? Varje dator har en speciell lista med routingregler som kallas f�r routingtabellen (routing table). Denna tabell inneh�ller rader som vanligtvis inneh�ller �tminstone tre f�lt, det f�rsta �r en destinationsadress, det andra �r namnet p� gr�nssnittet som datagrammet skall routas till och det tredje �r IP- adressen p� en annan maskin som skall ta datagrammet p� sitt n�sta steg genom n�tverket. I Linux kan man se denna tabell genom att anv�nda f�ljande kommando: # cat /proc/net/route eller genom att anv�nda n�got av f�ljande kommandon: # /sbin/route -n # /bin/netstat -r Routingprocessen �r hyfsat enkel: ett inkommande datagram tas emot, destinationsadressen unders�ks och j�mf�rs med varje rad i tabellen. Den rad som b�st matchar adressen v�ljs och datagrammet skickas vidare till det specificerade gr�nssnittet. Om gateway-f�ltet �r ifyllt s� skickas datagrammet vidare till den maskinen via det specificerade gr�nssnittet, annars antas det att destinationsadressen finns p� n�tverket som gr�nssnittet �r kopplat till. F�r att manipulera tabellen anv�nder man ett speciellt kommando. Detta kommando tar kommandoradsargument och konverterar dem till systemanrop vilka ber k�rnan att l�gga till, ta bort eller �ndra rader i routingtabellen. Kommandot �r route. Ett enkelt exempel. Antag att man har ett Ethernetn�tverk. Man har f�tt veta att det �r ett klass C n�tverk med n�tverksadressen 192.168.1.0. Man har f�tt IP-adressen 192.168.1.10 som man kan anv�nda och man har f�tt veta att 192.168.1.1 �r en router som �r ansluten till Internet. Det f�rsta steget �r att konfigurera gr�nssnittet som det beskrivits ovan. Man skulle anv�nda ett kommando som: # ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up Man beh�ver nu l�gga till en rad i routingtabellen f�r att tala om f�r k�rnan att datagram till alla adresser som passar 192.168.1.* skall s�ndas till en Ethernet-enhet. Detta med ett kommando som: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 Notera -net parametern som anv�nds f�r att tala om f�r routingprogram� met att denna rad �r en n�tverksroute. Det andra alternativet �r en -host route som �r en route som �r till en specifik IP-adress. Med denna route kan man uppr�tta IP-anslutningar till alla datorer p� sitt Ethernet-segment. Men vad h�nder med alla IP-datorer som inte finns p� ens Ethernet-segment? Det skulle vara ett v�ldigt sv�rt jobb att beh�va l�gga till router till varje t�nkbart n�tverk, s� det finns ett specialtrix som anv�nds f�r att f�renkla denna uppgift. Trixet kallas f�r default route. Default routen passar varje m�jlig destination, men d�ligt, s� om det finns n�gon annan rad som passar den �nskade adressen b�ttre s� kommer den att anv�ndas ist�llet f�r default routen. Tanken med default routen �r helt enkelt att man skall kunna s�ga "och allt annat skall skickas dit". S� i exemplet som vi f�ljt s� b�r man anv�nda en rad som: # route add default gw 192.168.1.1 eth0 Parametern gw talar om f�r route kommandot att n�sta parameter �r IP- adressen, eller namnet, p� en gateway eller router dit alla datagram som passar denna rad skall skickas f�r vidare routing. S� exemplets kompletta konfiguration skulle se ut s� h�r: # ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add default gw 192.168.1.1 eth0 Om man tittar noga i sina rc-filer f�r n�tverket s� kommer man att hitta �tminstone en som liknar detta. Detta �r en v�ldigt vanlig kon� figuration. L�t oss nu titta p� en n�got mer komplicerad routingkonfiguration. Antag att vi konfigurerar routern som vi tittade p� tidigare, med en PPP-l�nk till Internet och n�gra LAN-segment med arbetsstationer p� kontoret. Antag att routern har tre Ethernet-segment och en PPP-l�nk. V�r routingkonfiguration skulle likna f�ljande: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add -net 192.168.2.0 netmask 255.255.255.0 eth1 # route add -net 192.168.3.0 netmask 255.255.255.0 eth2 # route add default ppp0 Varje arbetsstation skulle anv�nda den enklare formen som beskrevs ovan, endast routern beh�ver ange alla n�tverksrouter separat eftersom hos arbetsstationerna s� tar default route mekanismen hand om allihop och l�ter routern sk�ta den 'riktiga' routingen. Man kanske undrar varf�r defaultrouten inte anger en gw. Anledningen �r enkel, seriella l�nkprotokoll s�som PPP och SLIP har alltid endast tv� maskiner p� sitt n�tverk, en i varje �nda. Att ange maskinen p� andra sidan l�nken som gateway �r meningsl�st och redundant eftersom det inte finns n�got annat val, s� man beh�ver inte ange n�gon gateway f�r den typen av n�tverksanslutningar. Andra n�tverkstyper s�som Ethernet, arcnet eller Token Ring kr�ver att en gateway specificeras eftersom dessa n�tverken st�djer att ett stort antal datorer ansluts till dem. 5.7.1. S� vad g�r programmet routed ? Routingkonfigurationen som beskrivs ovan passar b�st f�r enklare n�tverksarrangemang d�r det endast finns en m�jlig v�g till varje destination. N�r man har ett mer komplext arrangemang s� blir det lite besv�rligare. Som tur �r beh�ver de flesta inte bry sig om detta. Det stora problemet med 'manuell routing' eller 'statisk routing' �r att om en maskin eller l�nk fallerar i n�tverket s� kan man endast dirigera om sina datagram, om det finns n�gon annan v�g, genom att manuellt ge l�mpliga kommandon. Naturligtvis �r detta klumpigt, l�ngsamt, opraktiskt och felben�get. Olika tekniker har utvecklats f�r att automatiskt �ndra routingtabeller om det uppst�r n�tverksfel d�r det finns alternativa v�gar att leda trafiken, alla dessa tekniker �r l�st samlade under termen 'dynamiska routing algoritmer'. Man kanske har h�rt talas om n�gra av de vanligare dynamiska routingalgorimerna. De allra vanligaste �r RIP (Routing Information Protocol) och OSPF (Open Shortest Path First). RIP �r v�ldigt vanlig i sm� n�tverk som till exempel sm�/mellanstora f�retagsn�tverk. OSPF �r modernare och mer kapabel att hantera stora n�tverk och b�ttre anpassad till omgivningar d�r det finns ett stort antal m�jliga v�gar genom ett n�tverk. Vanliga implementeringar av dessa �r: routed (RIP) och gated (RIP, OSPF och andra). Programmet routed finns normalt med i Linuxdistributioner eller finns inkluderat i 'NetKit' paketet ovan. Ett exempel p� var och hur man skulle kunna anv�nda en dynamisk routingalgoritm skulle kunna se ut som f�ljer: 192.168.1.0 / 192.168.2.0 / 255.255.255.0 255.255.255.0 - - | | | /-----\ /-----\ | | | |ppp0 // ppp0| | | eth0 |---| A |------//---------| B |---| eth0 | | | // | | | | \-----/ \-----/ | | \ ppp1 ppp1 / | - \ / - \ / \ / \ / \ / \ / \ / \ / \ / ppp0\ /ppp1 /-----\ | | | C | | | \-----/ |eth0 | |---------| 192.168.3.0 / 255.255.255.0 Vi har tre routrar A, B och C. Var och en har ett Ethernet-segment med ett klass C IP-n�tverk (n�tmask 255.255.255.0). Varje router har �ven en PPP-l�nk till var och en av de andra routrarna. N�tverket bildar en triangel. Det b�r vara klart att routingtabellen f�r router A skulle kunna se ut som: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # route add -net 192.168.2.0 netmask 255.255.255.0 ppp0 # route add -net 192.168.3.0 netmask 255.255.255.0 ppp1 Detta skulle fungera utm�rkt �nda tills l�nken mellan router A och B fallerar. Om s� skulle ske s� skulle datorer p� A's Ethernet-segment inte kunna n� datorer p� B's Ethernet-segment eftersom dess datagram skulle routas till A's ppp0-l�nk, vilken �r trasig. De skulle fort� farande kunna 'prata' med datorer p� C's Ethernet-segment och datorer p� C's Ethernet-segment skulle kunna kontakta datorer p� B's Ethernet- segment eftersom l�nkarna mellan A och C respektive mellan C och B fortfarande fungerar. Men v�nta lite nu, om A kan prata med C och C fortfarande kan prata med B, varf�r skulle inte A kunna routa sina datagram till B via C och l�ta C skicka dem till B? Detta �r precis den typen av problem som dynamiska routingalgoritmer som RIP designades f�r att l�sa. Om var och en av routrarna A, B och C k�rde en routingdaemon s� skulle deras routingtabeller automatiskt uppdateras till att spegla det nya tillst�ndet i n�tverket om n�gon av l�nkarna skulle fallera. F�r att konfigurera ett s�dant n�tverk �r enkelt, p� varje router beh�ver man endast g�ra tv� saker. I detta fall f�r router A: # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # /usr/sbin/routed Routingdaemonen routed hittar automatiskt alla aktiva n�tverksportar n�r den startar och skickar och lyssnar efter meddelanden p� var och en av n�tverksenheterna s� att den kan fastst�lla och uppdatera rout� ingtabellen p� datorn. Detta har varit en v�ldigt �versiktlig f�rklaring av dynamisk routing och var man b�r anv�nda det. Om man vill ha mer information s� s�k ibland referenserna i b�rjan av dokumentet. De viktiga punkterna relaterade till dynamisk routing �r: 1. Man beh�ver bara anv�nda dynamisk routing n�r ens Linuxburk har m�jligheten att v�lja flera olika routes till en destination. 2. Den dynamiska routingdaemonen kommer automatiskt att modifiera routingtabellen f�r att st�lla in sig till f�r�ndringar i n�tverket. 3. RIP �r bra anpassat f�r sm� till medelstora n�tverk. 5.8. Att konfigurera n�tverksservrar och tj�nster. N�tverksservrar och tj�nster �r de program som l�ter en avl�gsen anv�ndare anv�nda sig av ens Linuxburk. Serverprogram lyssnar p� n�tverksportar. N�tverksportar �r hj�lpmedel f�r att adressera en speciell tj�nst p� en dator och �r hur en server vet skillnaden mellan en inkommande telnet-anslutning och en inkommande ftp-anslutning. Den avl�gsna anv�ndaren uppr�ttar en n�tverksanslutning till Linuxburken och serverprogrammet, n�tverksdaemonen, lyssnar p� den porten och accepterar anslutningen och exekverar. Det finns tv� s�tt p� vilka n�tverksdaemoner kan fungera. B�da �r flitigt anv�nda i praktiken. De tv� s�tten �r: frist�ende n�tverksdaemonen lyssnar p� den angivna porten och n�r den uppt�cker en inkommande anslutning s� sk�ter den om anslutningen sj�lv f�r att vidare tillhandah�lla tj�nster. slav till inetd servern inetd servern �r en s�rskild n�tverksdaemon som �r specialiserad p� att ta hand om inkommande n�tvarksanslutningar. Den har en konfigurationsfil som talar om vilket program som skall k�ras d� en inkommande anslutning tas emot. Varje port kan konfigureras f�r n�got av protokollen TCP eller UDP. Portarna �r beskrivna i en annan fil som vi skall prata om snart. Det finns tv� viktiga filer som beh�ver konfigureras. De �r /etc/ser� vices som tilldelar namn till portnummer och /etc/inetd.conf som �r konfigurationsfilen till n�tverksdaemonen inetd. 5.8.1. /etc/services Filen /etc/services �r en enkel databas som associerar ett m�nniskov�nligt namn med en maskinv�nlig port. Formatet �r ganska enkelt. Filen �r en textfil d�r varje rad representerar en rad i databasen. Varje rad best�r av tre f�lt som �r separerade av valfritt antal vita tecken (tab eller space). F�lten �r: name port/protocol aliases # comment name ett namn, best�ende av ett ord, som representerar tj�nsten som skall beskrivas. port/protocol detta f�lt �r indelat i tv� delf�lt. port ett nummer som anger portnummret som den namngivna tj�nsten kommer att vara tillg�nglig p�. De flesta vanliga tj�nster har tilldelats reserverade nummer. Dessa finns beskrivna i RFC-1340. protocol detta delf�lt kan s�ttas till antingen tcp eller udp. Det �r viktigt att notera att en rad med 18/tcp �r v�ldigt olik en rad med 18/udp och att det inte finns n�gon teknisk anledning till att samma tj�nst finns tillg�nglig p� b�da. Normalt r�der sunt f�rnuft och det �r bara om en viss tj�nst finns tillg�nglig via b�de tcp och udp som man kommer att se rader med b�da. aliases andra namn som kan anv�ndas f�r att referera till denna tj�nsten. All text som finns efter ett # tecken p� en rad ignoreras och behand� las som en kommentar. 5.8.1.1. Ett exempel p� en /etc/services fil. Alla moderna Linuxdistributioner kommer med en bra /etc/services fil. Men i fall man r�kar bygga ett system fr�n grunden s� �r h�r en kopia av /etc/services filen som kommer med Debian <http://www.debian.org/> distributionen. # /etc/services: # $Id: services,v 1.3 1996/05/06 21:42:37 tobias Exp $ # # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1340, ``Assigned Numbers'' (July 1992). Not all ports # are included, only the more common ones. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp # Remote Mail Checking Protocol domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 supdup 95/tcp # 100 - reserved hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop-2 109/tcp postoffice # POP version 2 pop-2 109/udp pop-3 110/tcp # POP version 3 pop-3 110/udp sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp # Interim Mail Access Proto v2 imap2 143/udp snmp 161/udp # Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Proto. bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # uucp daemon remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Actually uses UDP only bbs 7000/tcp # BBS service # # # Kerberos (Project Athena/MIT) services # Note that these are for Kerberos v4 and are unofficial. Sites running # v4 should uncomment these and comment out the v5 entries above. # kerberos4 750/udp kdc # Kerberos (server) udp kerberos4 750/tcp kdc # Kerberos (server) tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication passwd_server 752/udp # Kerberos passwd server krb_prop 754/tcp # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration kpasswd 761/tcp kpwd # Kerberos "passwd" kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # # Unofficial but necessary (for NetBSD) services # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol # # Debian GNU/Linux services rmtcfg 1236/tcp # Gracilis Packeten remote config server xtel 1313/tcp # french minitel cfinger 2003/tcp # GNU Finger postgres 4321/tcp # POSTGRES mandelspawn 9359/udp mandelbrot # network mandelbrot # Local services 5.8.2. /etc/inetd.conf Filen /etc/inetd.conf �r konfigurationsfilen f�r serverdaemonen inetd. Dess funktion �r att tala om f�r inetd vad som skall h�nda n�r den tar emot en anslutningsf�rfr�gan f�r en viss tj�nst. F�r varje tj�nst f�r vilken man �nskar acceptera anslutningar m�ste man tala om f�r inetd vilken n�tverksserver den skall starta och hur den skall startas. Dess format �r ganska enkelt. Det �r en textfil d�r varje rad beskriver en tj�nst som man vill tillhandah�lla. All text efter ett # tecken p� en rad ignoreras och ses som en kommentar. Varje rad inneh�ller sju f�lt som �r separerade av valfritt antal vita tecken (tab eller space). Det generella formatet �r som f�ljer: service socket_type proto flags user server_path server_args service �r tj�nsten som �r relevant f�r denna konfiguration som den ben�mns i /etc/services. socket_type detta f�lt beskriver vilken typ av socket som denna rad kommer att beteckna som relevant, till�tna v�rden �r stream, dgram, raw, rdm eller seqpacket. Detta �r lite tekniskt till karakt�ren men som tumregel s� anv�nder n�stan alla tcp-baserade tj�nster stream och alla udp-baserade tj�nster dgram. Det �r bara v�ldigt speciella typer av daemoner som anv�nder de andra v�rdena. proto protokollet som skall anses som giltigt f�r denna rad. Detta skall passa ihop med l�mplig rad i /etc/services och �r vanligtvis antingen tcp eller udp. Sun RPC (Remote Procedure Call) baserade tj�nster anv�nder rpc/tcp eller rcp/udp. flags det finns egentligen bara tv� m�jliga v�rden f�r detta f�lt. Detta f�lt talar om f�r inetd om serverprogramvaran st�nger socketen efter det att den startats och d�rf�r om inetd kan starta en annan server p� n�sta anslutningsf�rfr�gan. �terigen s� �r detta lite besv�rligt att lista ut, men som tumregel s� skall alla tcp servrar ha v�rdet nowait och de flesta udp servrar wait. Observera att det finns undantag f�r detta, s� man b�r endast f�lja exemplet om man inte vet. user detta f�lt talar om vilket anv�ndarkonto fr�n /etc/passwd som skall s�ttas som �gare till n�tverksdaemonen n�r den startas. Detta �r ofta anv�ndbart f�r att skydda sig mot s�kerhetsrisker. Man kan s�tta v�rdet till nobody s� att skadan minimeras ifall n�tverksserverns s�kerhet fallerar. Men vanligtvis s� �r detta f�lt satt till root eftersom m�nga servrar m�ste ha root- r�ttigheter f�r att fungera korrekt. server_path detta f�lt skall inneh�lla det absoluta filnamnet till serverprogrammet som skall exekveras f�r denna raden. server_args detta f�ltet utg�r resten av raden och �r valfri. Det �r h�r som man placerar kommandoradsargument som man vill skicka med till serverdaemonen n�r den startas. 5.8.2.1. Ett exempel p� en /etc/inetd.conf fil. Som f�r filen /etc/services s� inkluderar alla moderna distributioner en bra /etc/inetd.conf fil som man kan arbeta med. F�r att vara komplett s� inkluderas /etc/inetd.conf fr�n Debian <http://www.debian.org/> distributionen. # /etc/inetd.conf: see inetd(8) for further informations. # # Internet server configuration database # # # Modified for Debian by Peter Tobias <tobias@et-inf.fho-emden.de> # # <service_name> <sock_type> <proto> <flags> <user> <server_path> <args> # # Internal services # #echo stream tcp nowait root internal #echo dgram udp wait root internal discard stream tcp nowait root internal discard dgram udp wait root internal daytime stream tcp nowait root internal daytime dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal time stream tcp nowait root internal time dgram udp wait root internal # # These are standard services. # telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd #fsp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.fspd # # Shell, login, exec and talk are BSD protocols. # shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd talk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.talkd ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd # # Mail, news and uucp services. # smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.smtpd #nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/in.nntpd #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico #comsat dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.comsat # # Pop et al # #pop-2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d # # `cfinger' is for the GNU finger server available for Debian. (NOTE: The # current implementation of the `finger' daemon allows it to be run as `root'.) # #cfinger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.cfingerd #finger stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.fingerd #netstat stream tcp nowait nobody /usr/sbin/tcpd /bin/netstat #systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx # # Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." # #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd #tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot #bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120 # # Kerberos authenticated services (these probably need to be corrected) # #klogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k #eklogin stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind -k -x #kshell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd -k # # Services run ONLY on the Kerberos server (these probably need to be corrected) # #krbupdate stream tcp nowait root /usr/sbin/tcpd /usr/sbin/registerd #kpasswd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/kpasswdd # # RPC based services # #mountd/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.mountd #rstatd/1-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rstatd #rusersd/2-3 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rusersd #walld/1 dgram rpc/udp wait root /usr/sbin/tcpd /usr/sbin/rpc.rwalld # # End of inetd.conf. ident stream tcp nowait nobody /usr/sbin/identd identd -i 5.9. Andra n�tverksrelaterade konfigurationsfiler. Det finns ett antal andra filer som �r relaterade till n�tverkskonfiguration i Linux som man skulle kunna vara intresserad av. Man beh�ver kanske aldrig modifiera dessa filer, men det �r v�rt att beskriva dem �nd� s� att man vet vad de inneh�ller och vad de anv�nds till. 5.9.1. /etc/protocols Filen /etc/protocols �r en databas som mappar protokollens id-nummer mot protokollens namn. Detta anv�nds av programmerare f�r att l�ta dem ange protokoll med dess namn i program, och �ven av vissa program, som till exempel tcpdump, f�r att kunna skriva ut namn ist�llet f�r nummer. Syntaxen f�r filen �r: protocolname number aliases I Debian <http://www.debian.org/> distributionen ser /etc/protocols ut som f�ljande: # /etc/protocols: # $Id: protocols,v 1.1 1995/02/24 01:09:41 imurdock Exp $ # # Internet (IP) protocols # # from: @(#)protocols 5.1 (Berkeley) 4/17/89 # # Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992). ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # Internet Group Management ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') st 5 ST # ST datagram mode tcp 6 TCP # transmission control protocol egp 8 EGP # exterior gateway protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol hmp 20 HMP # host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 xtp 36 XTP # Xpress Tranfer Protocol ddp 37 DDP # Datagram Delivery Protocol idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport rspf 73 RSPF # Radio Shortest Path First. vmtp 81 VMTP # Versatile Message Transport ospf 89 OSPFIGP # Open Shortest Path First IGP ipip 94 IPIP # Yet Another IP encapsulation encap 98 ENCAP # Yet Another IP encapsulation 5.9.2. /etc/networks Filen /etc/networks har en liknande funktion som filen /etc/hosts. Den tillhandah�ller en enkel databas av n�tverksnamn som mappas mot n�tverksadresser. Dess format skiljer sig genom att det f�r endast finnas tv� f�lt per rad och att f�lten skrivs som: networkname networkaddress Ett exempel kam se ut s�h�r: loopnet 127.0.0.0 localnet 192.168.0.0 amprnet 44.0.0.0 N�r man anv�nder kommandon som route, om en destination �r ett n�tverk och det n�tverket finns i /etc/networks, s� kommer route att visa n�tverksnamnet ist�llet f�r dess adress. 5.10. N�tverkss�kerhet och �tkomstkontroll. L�t mig b�rja denna sektion med att varna f�r att s�kra en maskin och ett n�tverk mot illvilliga attacker �r en komplex konst. Jag anser mig inte sj�lv vara en expert p� detta omr�de och �ven om de f�ljande mekanismerna som jag beskriver kommer att hj�lpa, s� om man �r riktigt allvarlig n�r det g�ller s�kerhet s� rekommenderar jag att man g�r egna unders�kningar i �mnet. Det finns m�nga bra referenser p� Internet relaterade till detta �mne. En viktig tumregel �r: `K�r inte servrar som inte skall anv�ndas'. M�nga distributioner kommer konfigurerade med alla m�jliga tj�nster som startas automatiskt. F�r att s�kerst�lla en miniminiv� av s�kerhet s� b�r man g� igenom sin /etc/inetd.conf och kommentera bort (s�tt ett '#' i b�rjan av raden) alla rader som inneh�ller tj�nster vilka man inte t�nker anv�nda. Bra kandidater �r tj�nster s�som: shell, login, exec, uucp, ftp och informativa tj�nster som finger, netstat och systat. Det finns alla m�jliga sorters s�kerhets- och �tkomstkontrollmekanismer, jag kommer att beskriva de mest element�ra av dem. 5.10.1. /etc/ftpusers Filen /etc/ftpusers �r en enkel mekanism med vilken man kan v�gra vissa anv�ndare att logga in till maskinen via ftp. Filen /etc/ftpusers l�ses av ftp-daemonen (ftpd) n�r en inkommande ftp- anslutning tas emot. Filen �r en enkel lista av de anv�ndare som inte �r till�tna att logga in. Den skulle kunna se ut som: # /etc/ftpusers - users not allowed to login via ftp root uucp bin mail 5.10.2. /etc/securetty I filen /etc/securetty kan man specificera vilka tty enheter som root �r till�ten att logga in p�. Filen /etc/securetty l�ses av loginprogrammet (vanligtvis /bin/login). Dess format �r en lista av de tty enhetsnamn som �r till�tna, p� alla andra �r root login otill�ten: # /etc/securetty - tty's on which root is allowed to login tty1 tty2 tty3 tty4 5.10.3. tcpd �tkomstkontrollmekanism. Programmet tcpd som man sett listat i /etc/inetd.conf tillhandah�ller loggning och �tkomstkontrollmekanismer f�r tj�nster som det �r konfigurerat att skydda. N�r det aktiveras av programmet inetd s� l�ser det tv� filer som inneh�ller �tkomstregler och antingen till�ter det eller nekar �tkomst till servern som det skyddar. Programmet s�ker i reglerna tills dess att det hittar det f�rsta m�nstret som passar. Hittar det inget passande m�nster s� antas det att �tkomst skall till�tas till vem som helst. Filerna som s�ks igenom i sekvens �r: /etc/hosts.allow, /etc/hosts.deny. Jag kommer att beskriva dem i ordning. F�r en komplett beskrivning av detta s� b�r man titta i l�mpliga manualblad (hosts_access(5) �r ett bra st�lle att b�rja p�). 5.10.3.1. /etc/hosts.allow Filen /etc/hosts.allow �r en konfigurationsfil f�r programmet /usr/sbin/tcpd. Filen inneh�ller regler som beskriver vilka datorer som �r till�tna �tkomst till en tj�nst p� maskinen. Filformatet �r ganska enkelt: # /etc/hosts.allow # # <service list>: <host list> [: command] service list �r en kommaseparerad lista av servernamn som denna regeln g�ller f�r. Exempel: ftpd, telnetd och fingerd. host list �r en kommaseparerad lista av datornamn. Man kan �ven anv�nda IP-adresser. Man kan dessutom ange datornamn eller adresser med hj�lp av 'wildcards' f�r att t�cka grupper av datorer. Exempel: gw.vk2ktj.ampr.org f�r att t�cka en enskild dator, .uts.edu.au f�r att t�cka alla datornamn som slutar med den str�ngen, 44. f�r att t�cka alla IP-adresser som b�rjar med de siffrorna. Det finns n�gra s�rskilda tokens f�r att f�renkla konfigurationen, n�gra av dessa �r: ALL t�cker alla datorer, LOCAL t�cker alla datornamn som inte inneh�ller en '.' dvs som �r i samma dom�n som din maskin och PARANOID t�cker alla datorer vars namn inte st�mmer �verens med sin adress (name spoofing). Det finns en sista anv�ndbar token. EXCEPT till�ter dig att ange en lista med undantag. Detta visas i ett exempel senare. command �r en valfri parameter. Detta �r det absoluta filnamnet f�r ett kommando som skall exekveras varje g�ng denna regel anv�nds. Det skulle till exempel kunna k�ra ett program som f�rs�ker identifiera vem som �r p�loggad p� den anslutande datorn, eller att generera ett mail eller n�gon annan varning till en systemadministrat�r att n�gon f�rs�ker ansluta. Det finns ett antal ut�kningar som kan inkluderas, till exempel: %h expanderar till namnet p� den anslutande datorn eller adress om den inte har n�got namn, %d daemonnamnet anropas. Ett exempel: # /etc/hosts.allow # # Allow mail to anyone in.smtpd: ALL # All telnet and ftp to only hosts within my domain and my host at home. telnetd, ftpd: LOCAL, myhost.athome.org.au # Allow finger to anyone but keep a record of who they are. fingerd: ALL: (finger @%h | mail -s "finger from %h" root) 5.10.3.2. /etc/hosts.deny Filen /etc/hosts.deny �r en konfigurationsfil f�r programmet /usr/sbin/tcpd. Filen inneh�ller regler som beskriver vilka datorer som �r nekade �tkomst till en tj�nst p� maskinen. Ett enkelt exempel: # /etc/hosts.deny # # Disallow all hosts with suspect hostnames ALL: PARANOID # # Disallow all hosts. ALL: ALL Raden med PARANOID �r egentligen redundant eftersom den andra raden f�ller allt i vilket fall. N�gon av dessa rader skulle vara t�nkbara beroende p� vilka krav man har. Att ha ALL: ALL i /etc/hosts.deny och sedan specifikt ange de tj�nster och datorer som man vill ha i filen /etc/hosts.allow �r den s�kraste konfigurationen. 5.10.4. /etc/hosts.equiv Filen hosts.equiv anv�nds f�r att ge vissa datorer och anv�ndare �tkomstr�ttigheter till konton p� maskinen utan att beh�va ange ett l�senord. Detta �r anv�ndbart i en s�ker omgivning d�r man kontrollerar alla maskinerna, men det �r en s�kerhetsrisk i annat fall. Datorn �r bara s� s�ker som den minst s�kra av de datorer man litar p�. F�r att maximera s�kerheten s� b�r man inte anv�nda denna mekanismen och p�verka sina anv�ndare att inte anv�nda filen .rhosts heller. 5.10.5. Konfigurera ftp -daemonen ordentligt. M�nga sajter �r intresserade av att k�ra en anonym ftp server f�r att till�ta andra personer att ladda upp och ladda ner filer utan att ha ett s�rskilt anv�ndarid. Om man best�mmer sig f�r att tillhandah�lla denna tj�nst s� skall man se till att man konfigurerar sin ftp-daemon ordentligt f�r anonym �tkomst. De flesta manualblad f�r ftpd(8) beskriver hur man skall g�ra detta. Man b�r alltid f�rs�kra sig om att man f�ljer dessa instruktioner. Ett viktigt tips �r att inte anv�nda en kopia av sin /etc/passwd fil i /etc katalogen f�r det anonyma kontot, se till att man tar bort alla detaljer om konton som man inte m�ste ha, annars kommer man att vara s�rbar mot tekniker f�r l�senordscracking. 5.10.6. Brandv�ggar. Att inte till�ta datagram att ens n� fram till din maskin eller servrar �r ett utm�rkt s�tt att s�kra systemet. Detta beskrivs i Firewall-HOWTO <Firewall-HOWTO.html>. 5.10.7. Andra f�rslag. H�r �r n�gra andra, potentiellt religi�sa f�rslag som man kan t�nka p�. sendmail oavsett dess popularitet s� framtr�der sendmail daemonen med skr�mmande j�mna mellanrum p� s�kerhetsmeddelanden. Det �r upp till en sj�lv om man v�ljer att k�ra den. NFS och andra Sun RPC tj�nster man b�r vara aktsam med dessa. Det finns alla m�jliga olika s�tt att utnyttja dessa tj�nster. Det �r sv�rt att hitta alternativ till en tj�nst som NFS, men om man konfigurerar dem s� skall man se till att vara f�rsiktig med vem man ger mount-r�ttigheter till. 6. N�tverksspecifik Information. F�ljande delsektioner �r specifika f�r vissa n�tverkstekniker. Informationen i dessa sektioner g�ller inte n�dv�ndigtvis f�r n�gon annan n�tverksteknik. 6.1. ARCNet Enhetsnamn f�r ARCNet �r `arc0e', `arc1e', `arc2e' osv eller `arc0s', `arc1s', `arc2s' osv. Det f�rsta kortet som hittas av k�rnan tilldelas `arc0e' eller `arc0s' och resten tilldelas namn sekvensiellt i den ordning som de hittas. Bokstaven p� slutet av namnet betecknar om man har valt Ethenet-inkapsling som paketformat eller RFC1051 som paketformat. Kompileringsalternativ f�r K�rnan: Network device support ---> [*] Network device support <*> ARCnet support [ ] Enable arc0e (ARCnet "Ether-Encap" packet format) [ ] Enable arc0s (ARCnet RFC1051 packet format) N�r man v�l har en k�rna som st�der sitt Ethernetkort s� �r konfiguration av kortet l�tt. Man skulle kunna anv�nda n�got som liknar: # ifconfig arc0e 192.168.0.1 netmask 255.255.255.0 up # route add -net 192.168.0.0 netmask 255.255.255.0 arc0e Titta g�rna i filerna /usr/src/linux/Documentation/networking/arc� net.txt och /usr/src/linux/Documentation/networking/arcnet-hard� ware.txt f�r mer information. ARCNet-st�d utvecklades av Avery Pennarun, apenwarr@foxnet.net. 6.2. Appletalk ( AF_APPLETALK ) Appletalk har inga s�rskilda enhetsnamn eftersom det anv�nder existerande n�tverksenheter. Kompileringsalternativ f�r K�rnan: Networking options ---> <*> Appletalk DDP Appletalk-st�d g�r det m�jligt f�r Linuxburken att kommunicera med Apple-n�tverk. Ett viktigt anv�ndningsomr�de f�r detta �r m�jligheten att kunna dela resurser, som till exempel skrivare och h�rddiskar, mellan Linux- och Appledatorer. Man beh�ver ytterligare programvara, netatalk, f�r detta. Wesley Craig, netatalk@umich.edu, representerar en grupp som heter `Research Systems Unix Group' p� University of Michigan och de har utvecklat netatalk-paketet som tillhandah�ller programvara som implementerar protokollstacken f�r Appletalk och n�gra andra anv�ndbara verktyg. Paketet netatalk finns antingen med i Lin� uxditributionen, eller s� kan man ladda hem det via ftp fr�n Univer� sity of Michigan <ftp://terminator.rs.itd.umich.edu/unix/netatalk/> F�r att kompilera och installera paketet g�r man ungef�r s� h�r: # cd /usr/src # tar xvfz .../netatalk-1.4b2.tar.Z - You may want to edit the `Makefile' at this point, specifically to change the DESTDIR variable which defines where the files will be installed later. The default of /usr/local/atalk is fairly safe. # make - as root: # make install 6.2.1. Att konfigurera mjukvaran f�r Appletalk. Det f�rsta man m�ste g�ra f�r att f� det att fungera �r att se till att de r�tta raderna finns med i filen /etc/services. Raderna man beh�ver �r: rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol N�sta steg �r att skapa konfigurationsfiler f�r Appletalk i katalogen /usr/local/atalk/etc (eller var man nu installerade paketet). Den f�rsta filen som beh�vs �r /usr/local/atalk/etc/atalkd.conf. Till en b�rjan beh�ver denna fil endast en rad som anger namnet p� den n�tverksenhet som �r kopplad n�tverket d�r Applemaskinerna finns: eth0 Daemonen f�r Appletalk kommer att l�gga dit fler detaljer n�r den k�rs. 6.2.2. Att exportera ett Linuxfilsystem via Appletalk. Man kan exportera filsystem fr�n sin Linuxburk till n�tverket s� att Applemaskinerna p� n�tverket kan anv�nda dem. F�r att g�ra detta s� beh�ver man konfigurera filen /usr/local/atalk/etc/AppleVolumes.system. Det finns ytterligare en konfigurationsfil som heter /usr/local/atalk/etc/AppleVolumes.default som har precis samma format och beskriver vilka filsystem som kan anv�ndas av anv�ndare som ansluter med g�st-r�ttigheter. Alla detaljer om hur man konfigurerar dessa finns i manualbladet f�r afpd. Ett enkelt exempel: /tmp Scratch /home/ftp/pub "Public Area" Detta skulle exportera /tmp-filsystemet som en AppleShare-volym `Scratch' och /home/ftp/pub-katalogen som en AppleShare-volym `Public Area'. Volymnamnen �r inte obligatoriska, daemonen v�ljer namn om man inte anger dem, men det skadar inte att ange dem �nd�. 6.2.3. Att dela sin skrivare via Appletalk. Man kan dela sin Linuxskrivare med sina Applemaskiner ganska enkelt. Man beh�ver k�ra programmet papd (Appletalk Printer Access Protocol Daemon). N�r man k�r detta program s� tar det emot f�rfr�gningar fr�n Applemaskinerna och spoolar utskriftsjobben till den lokala line- printer daemonen. Man beh�ver �ndra filen /usr/local/atalk/etc/papd.conf f�r att konfigurera daemonen. Syntaxen f�r denna fil �r densamma som f�r den vanliga /etc/printcap filen. Namnet som man ger till definitionen registreras med Appletalks namns�ttningsprotokoll, NBP. En exempelkonfiguration kan se ut s� h�r: TricWriter:\ :pr=lp:op=cg: Vilken skulle skapa en printer som kallas f�r `TricWriter' som blir tillg�nglig f�r Appletalkn�tverket och alla accepterade jobb skulle skrivas ut p� Linuxskrivaren `lp' (som den definieras i filen /etc/printcap) genom att anv�nda lpd. Uttrycket `op=cg' talar om att Linux-anv�ndaren `cg' �r ansvarig f�r skrivaren. 6.2.4. Att starta programvaran f�r Appletalk. Nu b�r man var redo att testa denna enkla konfiguration. Det finns en fil rc.atalk som f�ljer med paketet netatalk som borde fungera f�r de flesta, s� allt man beh�ver g�ra �r f�ljande: # /usr/local/atalk/etc/rc.atalk och allt borde startas och fungera. Man skall inte se n�gra felmeddelanden och programvaran kommer att skicka meddelanden till konsolen som indikerar varje steg som startas. 6.2.5. Att testa programvaran f�r Appletalk. F�r att testa att mjukvaran fungerar som den skall, s� g�r man till en av sina Applemaskiner, tar ner �pplemenyn, v�ljer V�ljaren (Chooser), klickar p� AppleShare, och Linuxburken b�r synas. 6.2.6. Brister i programvaran f�r Appletalk. � Man kanske m�ste starta Appletalk-st�det innan man konfigurerar sitt IP-n�tverk. Om man har problem med att starta Appletalkprogrammen, eller om man, efter att ha startat dem, har problem med sitt IP-n�tverk, s� f�rs�ker man med att starta Appletalk innan man k�r sin /etc/rc.d/rc.inet1 fil. � Daemonen afpd (Apple Filing Protocol Daemon) st�kar till ordentligt i filsystemet. Under mount-punkterna s� skapar den ett par kataloger som heter .AppleDesktop och Network Trash Folder. Sedan f�r varje katalog som man bes�ker s� kommer den att skapa en .AppleDouble under dem s� att den kan spara diverse information. S� man b�r t�nka efter innan man exporterar /, man kommer att ha det skoj n�r man st�dar upp efter�t. � Daemonen afpd f�rv�ntar sig l�senord i klartext fr�n Macarna. S�kerhet kan vara ett problem, s� man skall vara f�rsiktig n�r man k�r denna daemonen p� en dator som �r ansluten till Internet, man har sig sj�lv att skylla om n�gon elak person g�r n�gon skada. � Existerande diagnostiseringsverktyg som netstat och ifconfig st�der inte Appletalk. R� information �r tillg�nglig i katalogen /proc/net/ om man beh�ver den. 6.2.7. Mer information. En mycket mer detaljerad information om hur man konfigurerar Appletalk f�r Linux finns i Anders Brownworths Linux Netatalk-HOWTO sida p� thehamptons.com <http://thehamptons.com/anders/netatalk/>. 6.3. ATM Werner Almesberger <werner.almesberger@lrc.di.epfl.ch> h�ller i ett projekt f�r att skapa st�d f�r Asynchronous Transfer Mode i Linux. Uppdaterad information om statusen f�r projektet kan f�s fr�n lrcwww.epfl.ch <http://lrcwww.epfl.ch/linux-atm/>. 6.4. AX25 ( AF_AX25 ) Enhetsnamn f�r AX.25 �r `sl0', `sl1', osv i 2.0.* k�rnor eller `ax0', `ax1', osv i 2.1.* k�rnor. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] Amateur Radio AX.25 Level 2 AX25, Netrom och Rose protokollen t�cks av AX25-HOWTO <AX25-HOWTO.html>. Dessa protokoll anv�nds av Amat�rradio-operat�rer i hela v�rlden f�r paketradio experiment. Det mesta arbetet f�r att implementera protokollen har utf�rts av Jonathon Naylor, jsn@cs.nott.ac.uk. 6.5. DECNet St�d f�r DECNet h�ller f�r tillf�llet p� att utvecklas. Man kan r�kna med att det dyker upp i sena 2.1.* k�rnor. 6.6. EQL - trafikutj�mnare f�r multipla linor. Enhetsnamnet f�r EQL �r `eql'. Med standardk�rnan kan man endast ha en EQL-enhet per maskin. EQL tillhandah�ller hj�lpmedel f�r att anv�nda multipla punkt till punkt f�rbindelser (tex PPP, SLIP eller PLIP) som en ensam logisk l�nk f�r att b�ra TCP/IP. Ofta �r det billigare att anv�nda flera linor med l�gre hastighet �n att ha en h�ghastighetslina installerad. Kompileringsalternativ f�r K�rnan: Network device support ---> [*] Network device support <*> EQL (serial line load balancing) support F�r att st�dja denna mekanism s� m�ste maskinen p� andra sidan av linorna ocks� st�dja EQL. Linux, Livingstone Portmasters och nyare dial-in servrar st�der kompatibla tj�nster. F�r att konfigurera EQL beh�ver man eql-verktygen som finns p�: sunsite.unc.edu <ftp://sunsite.unc.edu/pub/linux/system/Serial/eql-1.2.tar.gz>. Konfigurationen �r hyfsat okomplicerad. Man b�rjar med att konfigurera eql-gr�nssnittet. Eql-gr�nssnittet �r precis som alla andra n�tverksgr�nssnitt. Man kan konfigurera IP-adressen och MTU genom att anv�nda ifconfig, s� ungef�r som: ifconfig eql 192.168.10.1 mtu 1006 Sedan beh�ver man manuellt initiera var och en av linorna som man skall anv�nda. Dessa kan vara en valfri kombination av punkt till punkt f�rbindelser. Hur man initierar de anslutningarna beror p� vilken typ av l�nkar de �r, se passande sektioner f�r mer information. Till sist skall man associera den seriella l�nken med EQL-enheten, detta kallas f�r `enslaving' och g�rs med kommandot eql_enslave: eql_enslave eql sl0 28800 eql_enslave eql ppp0 14400 Parametern `estimated speed' som man ger till eql_enslave g�r ingen direkt nytta. Den anv�nds av EQL-drivrutinen f�r att avg�ra hur stor del av datagrammen som den enheten skall f� ta emot, s� man kan fin� justera balansen hos linorna genom att �ndra p� detta v�rde. F�r att disassociera en lina fr�n en EQL-enhet s� anv�nder man kommandot eql_emancipate: eql_emancipate eql sl0 Man l�gger till routing som om det vore en normal punkt till punkt f�rbindelse, f�rutom att router skall referera till eql enheten ist�llet f�r de verkliga seriella enheterna: route add default eql EQL-drivrutinen utvecklades av Simon Janes, simon@ncm.com. 6.7. Ethernet Enhetsnamn f�r Ethernet �r `eth0', `eth1', `eth2' osv. Det f�rsta kortet som hittas f�r namnet `eth0' och resten tilldelas namn sekvensiellt i den ordning som de hittas. F�r att ta reda p� hur man f�r sitt Ethernet-kort att fungera i Linux s� b�r man titta i Ethernet-HOWTO <Ethernet-HOWTO.html>. N�r man v�l har en k�rna som st�der sitt Ethernet-kort s� �r det enkelt att konfigurera kortet. Vanligtvis s� anv�nds ungef�r f�ljande: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up # route add -net 192.168.0.0 netmask 255.255.255.0 eth0 De flesta drivrutinerna f�r Ethernet utvecklades av Donald Becker, becker@CESDIS.gsfc.nasa.gov. 6.8. FDDI Enhetsnamnen f�r FDDI �r `fddi0', `fddi1', `fddi2' osv. Det f�rsta kortet som hittas f�r namnet `fddi0' och resten tilldelas namn sekvensiellt i den ordning som de hittas. Larry Stefani, lstefani@ultranet.com, har utvecklat en drivrutin f�r EISA och PCI FDDI-kort fr�n Digital Equipment Corporation. Kompileringsalternativ f�r K�rnan: Network device support ---> [*] FDDI driver support [*] Digital DEFEA and DEFPA adapter support N�r man v�l har en k�rna som st�der sitt FDDI-kort, s� konfigureras FDDI-kortet n�stan likadant som Ethernet-kortet. Man beh�ver bara ange l�mpliga FDDI-enhetsnamn till kommandona ifconfig och route. 6.9. Frame Relay Enhetsnamnen f�r Frame Relay �r `dlci00', `dlci01' osv f�r DLCI inkapslingsenheter och `sdla0', `sdla1' osv f�r FRAD(s). Frame Relay �r en ny teknik att bygga n�tverk och �r designad att passa datakommunikation vars trafik �r av oregelbunden karakt�r. Man ansluter till ett Frame Realay n�tverk genom att anv�nda en Frame Relay Access Device (FRAD). Linux Frame Relay st�djer IP �ver Frame Relay s� som det beskrivs i RFC1490. Kompileringsalternativ f�r K�rnan: Network device support ---> <*> Frame relay DLCI support (EXPERIMENTAL) (24) Max open DLCI (8) Max DLCI per device <*> SDLA (Sangoma S502/S508) support Mike McLagan, mike.mclagan@linux.org, utvecklade st�det och konfigurationsverktygen f�r Frame Relay. F�r n�rvarande �r de FRADs som st�ds f�ljande: Sangoma Technologies <http://www.sangoma.com/> S502A, S502E och S508. F�r att konfigurera FRAD och DLCI enheter efter det att man har kompilerat om sin k�rna s� beh�ver man konfigurationsverktygen f�r Frame Relay. Dessa finns p�: ftp.invlogic.com <ftp://ftp.invlogic.com/pub/linux/fr/frad-0.15.tgz>. Det �r okomplicerat att kompilera och installera verktygen, men avsaknaden av en toppniv�-Makefile g�r det till en manuell process: # cd /usr/src # tar xvfz .../frad-0.15.tgz # cd frad-0.15 # for i in common dlci frad; make -C $i clean; make -C $i; done # mkdir /etc/frad # install -m 644 -o root -g root bin/*.sfm /etc/frad # install -m 700 -o root -g root frad/fradcfg /sbin # install -m 700 -o root -g root dlci/dlcicfg /sbin Efter att man har installerat verktygen skall man skapa en fil som heter /etc/frad/router.conf. Man kan anv�nda f�ljande mall, som �r en modifierad version av en exempelfil: # /etc/frad/router.conf # This is a template configuration for frame relay. # All tags are included. The default values are based on the code # supplied with the DOS drivers for the Sangoma S502A card. # # A '#' anywhere in a line constitutes a comment # Blanks are ignored (you can indent with tabs too) # Unknown [] entries and unknown keys are ignored # [Devices] Count=1 # number of devices to configure Dev_1=sdla0 # the name of a device #Dev_2=sdla1 # the name of a device # Specified here, these are applied to all devices and can be overriden for # each individual board. # Access=CPE Clock=Internal KBaud=64 Flags=TX # # MTU=1500 # Maximum transmit IFrame length, default is 4096 # T391=10 # T391 value 5 - 30, default is 10 # T392=15 # T392 value 5 - 30, default is 15 # N391=6 # N391 value 1 - 255, default is 6 # N392=3 # N392 value 1 - 10, default is 3 # N393=4 # N393 value 1 - 10, default is 4 # Specified here, these set the defaults for all boards # CIRfwd=16 # CIR forward 1 - 64 # Bc_fwd=16 # Bc forward 1 - 512 # Be_fwd=0 # Be forward 0 - 511 # CIRbak=16 # CIR backward 1 - 64 # Bc_bak=16 # Bc backward 1 - 512 # Be_bak=0 # Be backward 0 - 511 # # # Device specific configuration # # # # The first device is a Sangoma S502E # [sdla0] Type=Sangoma # Type of the device to configure, currently only # SANGOMA is recognised # # These keys are specific to the 'Sangoma' type # # The type of Sangoma board - S502A, S502E, S508 Board=S502E # # The name of the test firmware for the Sangoma board # Testware=/usr/src/frad-0.10/bin/sdla_tst.502 # # The name of the FR firmware # Firmware=/usr/src/frad-0.10/bin/frm_rel.502 # Port=360 # Port for this particular card Mem=C8 # Address of memory window, A0-EE, depending on card IRQ=5 # IRQ number, do not supply for S502A DLCIs=1 # Number of DLCI's attached to this device DLCI_1=16 # DLCI #1's number, 16 - 991 # DLCI_2=17 # DLCI_3=18 # DLCI_4=19 # DLCI_5=20 # # Specified here, these apply to this device only, # and override defaults from above # # Access=CPE # CPE or NODE, default is CPE # Flags=TXIgnore,RXIgnore,BufferFrames,DropAborted,Stats,MCI,AutoDLCI # Clock=Internal # External or Internal, default is Internal # Baud=128 # Specified baud rate of attached CSU/DSU # MTU=2048 # Maximum transmit IFrame length, default is 4096 # T391=10 # T391 value 5 - 30, default is 10 # T392=15 # T392 value 5 - 30, default is 15 # N391=6 # N391 value 1 - 255, default is 6 # N392=3 # N392 value 1 - 10, default is 3 # N393=4 # N393 value 1 - 10, default is 4 # # The second device is some other card # # [sdla1] # Type=FancyCard # Type of the device to configure. # Board= # Type of Sangoma board # Key=Value # values specific to this type of device # # DLCI Default configuration parameters # These may be overridden in the DLCI specific configurations # CIRfwd=64 # CIR forward 1 - 64 # Bc_fwd=16 # Bc forward 1 - 512 # Be_fwd=0 # Be forward 0 - 511 # CIRbak=16 # CIR backward 1 - 64 # Bc_bak=16 # Bc backward 1 - 512 # Be_bak=0 # Be backward 0 - 511 # # DLCI Configuration # These are all optional. The naming convention is # [DLCI_D<devicenum>_<DLCI_Num>] # [DLCI_D1_16] # IP= # Net= # Mask= # Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames # DLCIFlags=TXIgnore,RXIgnore,BufferFrames # CIRfwd=64 # Bc_fwd=512 # Be_fwd=0 # CIRbak=64 # Bc_bak=512 # Be_bak=0 [DLCI_D2_16] # IP= # Net= # Mask= # Flags defined by Sangoma: TXIgnore,RXIgnore,BufferFrames # DLCIFlags=TXIgnore,RXIgnore,BufferFrames # CIRfwd=16 # Bc_fwd=16 # Be_fwd=0 # CIRbak=16 # Bc_bak=16 # Be_bak=0 N�r man har skapat sin /etc/frad/router.conf fil s� �r det enda som �terst�r att konfigurera enheterna. Detta �r bara lite sv�rare �n att konfigurera en normal n�tverksenhet. Man m�ste komma ih�g att starta upp FRAD-enheten innan DLCI inkapslingsenheterna. # Configure the frad hardware and the DLCI parameters /sbin/fradcfg /etc/frad/router.conf || exit 1 /sbin/dlcicfg file /etc/frad/router.conf # # Bring up the FRAD device ifconfig sdla0 up # # Configure the DLCI encapsulation interfaces and routing ifconfig dlci00 192.168.10.1 pointopoint 192.168.10.2 up route add -net 192.168.10.0 netmask 255.255.255.0 dlci00 # ifconfig dlci01 192.168.11.1 pointopoint 192.168.11.2 up route add -net 192.168.11.0 netmask 255.255.255.0 dlci00 # route add default dev dlci00 # 6.10. IP-redovisning (IP Accounting) Med IP-redovisningsegenskaperna i Linuxk�rnan kan man samla ihop och analysera viss data fr�n n�tverksanv�ndningen. Datan som samlas ihop best�r av antalet paket och antalet bytes ackumulerade sedan talen senast nollst�lldes. Man kan specificera en m�ngd olika regler f�r att kategorisera talen f�r att passa sina �ndam�l. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] IP: accounting N�r man har kompilerat och installerat k�rnan s� beh�ver man anv�nda kommandot ipfwadm f�r att konfigurera IP-redovisningen. Det finns m�nga olika s�tt att bryta ner redovisningsinformationen. Jag har valt ett enkelt exempel p� vad som skulle kunna vara anv�ndbart, man kan l�sa manualbladet f�r kommandot ipfwadm f�r mer information. Scenario: man har ett Ethernet-n�tverk som �r anslutet till Internet via en PPP-l�nk. P� sitt Ethernet har man en maskin som erbjuder ett antal tj�nster och man �r intresserad av att veta hur mycket trafik som genereras av telnet, rlogin, ftp och www trafik. Man skulle d� kunna anv�nda f�ljande: # # Flush the accounting rules ipfwadm -A -f # # Add rules for local ethernet segment ipfwadm -A in -a -P tcp -D 44.136.8.96/29 20 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 20 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 23 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 23 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 80 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 80 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 513 ipfwadm -A out -a -P tcp -S 44.136.8.96/29 513 ipfwadm -A in -a -P tcp -D 44.136.8.96/29 ipfwadm -A out -a -P tcp -D 44.136.8.96/29 ipfwadm -A in -a -P udp -D 44.136.8.96/29 ipfwadm -A out -a -P udp -D 44.136.8.96/29 ipfwadm -A in -a -P icmp -D 44.136.8.96/29 ipfwadm -A out -a -P icmp -D 44.136.8.96/29 # # Rules for default ipfwadm -A in -a -P tcp -D 0/0 20 ipfwadm -A out -a -P tcp -S 0/0 20 ipfwadm -A in -a -P tcp -D 0/0 23 ipfwadm -A out -a -P tcp -S 0/0 23 ipfwadm -A in -a -P tcp -D 0/0 80 ipfwadm -A out -a -P tcp -S 0/0 80 ipfwadm -A in -a -P tcp -D 0/0 513 ipfwadm -A out -a -P tcp -S 0/0 513 ipfwadm -A in -a -P tcp -D 0/0 ipfwadm -A out -a -P tcp -D 0/0 ipfwadm -A in -a -P udp -D 0/0 ipfwadm -A out -a -P udp -D 0/0 ipfwadm -A in -a -P icmp -D 0/0 ipfwadm -A out -a -P icmp -D 0/0 # # List the rules ipfwadm -A -l -n # Det sista kommandot listar var och en av redovisningsreglerna och visar de ihopsamlade summorna. En viktig notering �r att n�r man analyserar datan �r att summan f�r alla regler som passar in kommer att �kas s� f�r att erh�lla summor f�r enskilda protokoll s� m�ste man r�kna lite grann. Om jag tex ville veta hur mycket data som inte var ftp, telnet, rlogin eller www s� skulle jag subtrahera de individuella summorna fr�n den regel som passar in p� alla portarna. # ipfwadm -A -l -n IP accounting rules pkts bytes dir prot source destination ports 0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 20 0 0 out tcp 44.136.8.96/29 0.0.0.0/0 20 -> * 0 0 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 23 0 0 out tcp 44.136.8.96/29 0.0.0.0/0 23 -> * 10 1166 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 80 10 572 out tcp 44.136.8.96/29 0.0.0.0/0 80 -> * 242 9777 in tcp 0.0.0.0/0 44.136.8.96/29 * -> 513 220 18198 out tcp 44.136.8.96/29 0.0.0.0/0 513 -> * 252 10943 in tcp 0.0.0.0/0 44.136.8.96/29 * -> * 231 18831 out tcp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 in udp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 out udp 0.0.0.0/0 44.136.8.96/29 * -> * 0 0 in icmp 0.0.0.0/0 44.136.8.96/29 * 0 0 out icmp 0.0.0.0/0 44.136.8.96/29 * 0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 20 0 0 out tcp 0.0.0.0/0 0.0.0.0/0 20 -> * 0 0 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 23 0 0 out tcp 0.0.0.0/0 0.0.0.0/0 23 -> * 10 1166 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 80 10 572 out tcp 0.0.0.0/0 0.0.0.0/0 80 -> * 243 9817 in tcp 0.0.0.0/0 0.0.0.0/0 * -> 513 221 18259 out tcp 0.0.0.0/0 0.0.0.0/0 513 -> * 253 10983 in tcp 0.0.0.0/0 0.0.0.0/0 * -> * 231 18831 out tcp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 in udp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 out udp 0.0.0.0/0 0.0.0.0/0 * -> * 0 0 in icmp 0.0.0.0/0 0.0.0.0/0 * 0 0 out icmp 0.0.0.0/0 0.0.0.0/0 * # 6.11. IP Aliasing Det finns vissa applikationer d�r det �r anv�ndbart att kunna tilldela flera IP-adresser till en och samma n�tverksenhet. Titta i IP-Aliasing mini-HOWTO f�r mer information �n vad man hittar h�r. Kompileringsalternativ f�r K�rnan: Networking options ---> .... [*] Network aliasing .... <*> IP: aliasing support N�r man har kompilerat och installerat sin k�rna med st�d f�r IP Aliasing s� �r det v�ldigt enkelt att konfigurera. Aliasen l�ggs till virtuella n�tverksenheter som �r associerade med den verkliga enheten. En enkel namnkonvention anv�nds, n�mligen <enhetsnamn>:<virtuellt enhetsnummer>, tex eth0:0, ppp0:1 osv. Notera att en virtuell enhet endast kan konfigureras efter det att den riktiga enheten har konfig� urerats. Till exempel, antag att man har ett Ethernet-n�tverk som inneh�ller tv� olika IP-subn�t p� en g�ng. Man vill nu att maskinen skall ha direkt access till b�da. Man skulle anv�nda n�got som: # # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up # route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up # route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0 # F�r att ta bort ett alias s� l�gger man till ett `-' i slutet p� dess namn: # ifconfig eth0:0- 0 Alla router som �r relaterade till det aliaset kommer ocks� att tas bort automatiskt. 6.12. IP Brandv�ggar (IP Firewalls) IP-brandv�ggar t�cks mer i detalj i Firewall-HOWTO <Firewall- HOWTO.html>. Med en IP-brandv�gg kan man skydda sin maskin mot otill�ten �tkomst via n�tverket genom att filtrera bort eller till�ta datagram till eller ifr�n IP-adresser som man anger. Det finns regler i tre olika klasser: inkommande filtrering, utg�ende filtrering och filtrering vid vidareskickning. Reglerna f�r inkommande g�ller datagram som tas emot av en n�tverksenhet. Reglerna f�r utg�ende g�ller datagram som skall skickas av en n�tverksenhet. Reglerna f�r vidareskickning g�ller de datagram som tas emot men inte skall till den aktuella maskinen, dvs datagram som skall routas. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] Network firewalls .... [*] IP: forwarding/gatewaying .... [*] IP: firewalling [ ] IP: firewall packet logging Konfigurationen av reglerna f�r brandv�ggen g�rs med hj�lp av kommandot ipfwadm. Som jag n�mnde tidigare s� �r jag ingen expert p� s�kerhet, s� �ven om jag visar ett exempel som g�r att anv�nda s� rekommenderas egna unders�kningar i �mnet om s�kerhet �r s�rskilt viktigt. Det kanske vanligaste anv�ndningsomr�det f�r en brandv�gg �r n�r man anv�nder sin Linuxburk som en router och brandv�gg f�r att skydda sitt lokala n�tverk mot otill�ten �tkomst utifr�n. F�ljande konfiguration �r baserad p� ett bidrag fr�n Arnt Gulbrandsen, <agulbra@troll.no>. Exemplet beskriver en konfiguration av brandv�ggsreglerna i Linux- brandv�ggen/routern som illustreras i denna figur: - - \ | 172.16.37.0 \ | /255.255.255.0 \ --------- | | 172.16.174.30 | Linux | | NET =================| f/w |------| ..37.19 | PPP | router| | -------- / --------- |--| Mail | / | | /DNS | / | -------- - - Kommandona som f�ljer placeras normalt i en rc fil s� att de startas automatiskt varje g�ng systemet startas. F�r maximal s�kerhet s� borde de utf�ras efter det att n�tverksgr�nssnitten konfigurerats, men innan enheterna aktiveras s� att man p� detta s�tt hindrar att n�gon f�r tillg�ng till maskinen medan den startar upp. #!/bin/sh # Flush the 'Forwarding' rules table # Change the default policy to 'accept' # /sbin/ipfwadm -F -f /sbin/ipfwadm -F -p accept # # .. and for 'Incoming' # /sbin/ipfwadm -I -f /sbin/ipfwadm -I -p accept # First off, seal off the PPP interface # I'd love to use '-a deny' instead of '-a reject -y' but then it # would be impossible to originate connections on that interface too. # The -o causes all rejected datagrams to be logged. This trades # disk space against knowledge of an attack of configuration error. # /sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30 # Throw away certain kinds of obviously forged packets right away: # Nothing should come from multicast/anycast/broadcast addresses # /sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24 # # and nothing coming from the loopback network should ever be # seen on a wire # /sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24 # accept incoming SMTP and DNS connections, but only # to the Mail/Name Server # /sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53 # # DNS uses UDP as well as TCP, so allow that too # for questions to our name server # /sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53 # # but not "answers" coming to dangerous ports like NFS and # Larry McVoy's NFS extension. If you run squid, add its port here. # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \ -D 172.16.37.0/24 2049 2050 # answers to other user ports are okay # /sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \ -D 172.16.37.0/24 53 1024:65535 # Reject incoming connections to identd # We use 'reject' here so that the connecting host is told # straight away not to bother continuing, otherwise we'd experience # delays while ident timed out. # /sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113 # Accept some common service connections from the 192.168.64 and # 192.168.65 networks, they are friends that we trust. # /sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \ -D 172.16.37.0/24 20:23 # accept and pass through anything originating inside # /sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0 # deny most other incoming TCP connections and log them # (append 1:1023 if you have problems with ftp not working) # /sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24 # ... for UDP too # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24 Att g�ra en bra konfiguration av brandv�ggen �r lite trixigt. Exemplet ovan borde dock vara en hyfsad startpunkt. Manualbladet f�r kommandot ipfwadm inneh�ller mer hj�lp om hur man anv�nder det. Om man t�nker konfigurera en brandv�gg, s� skall man se till att fr�ga runt och f� s� mycket r�d man kan ifr�n k�llor som man anser vara p�litliga. L�t sedan n�gon testa konfigurationen fr�n utsidan. 6.13. IPIP Inkapsling (IPIP Encapsulation) Varf�r skulle man vilja kapsla in IP-datagram i andra IP-datagram? Det l�ter som en konstig sak att g�ra om man aldrig sett ett exempel p� det innan. Ok, h�r �r ett par vanliga omr�den d�r det anv�nds: Mobil IP och IP-Multicast. Men d�r det antagligen anv�nds mest �r ocks� det mest ok�nda omr�det, Amat�rradio. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] TCP/IP networking [*] IP: forwarding/gatewaying .... <*> IP: tunneling Tunnlingsenheterna heter `tunl0', `tunl1' osv. "Men varf�r....?". Ok, ok. Konventionella regler f�r IP-routing s�ger att ett IP-n�tverk best�r av en n�tverksadress och en n�tmask. Detta producerar en serie kontinuerliga adresser som alla kan routas till en och samma utg�ende lina. Detta �r v�ldigt bekv�mt, men det inneb�r att man bara kan anv�nda en viss IP-adress n�r man �r ansluten till ett visst n�tverk som adressen tillh�r. I de flesta fall g�r detta bra, men om man �r en mobil 'n�t-inv�nare' s� kanske man inte alltid �r ansluten till ett och samma n�tverk hela tiden. IPIP inkapsling (IP- tunnling) g�r det m�jligt att slippa den restriktionen genom att l�ta datagram som �r destinerade till en viss IP-adress packas in i ett nytt IP-paket och omdirigeras till en annan IP-adress. Om man vet att man kommer att arbeta p� ett annat IP-n�tverk ett tag s� kan man st�lla in en maskin p� sitt hemman�t att ta emot ens datagram och sedan omdirigera dem till den adress som man anv�nder tempor�rt. 6.13.1. En tunnlad n�tverkskonfiguration. Som alltid, s� tycker jag att en figur fungerar b�ttre �n en massa f�rvirrande text, s� h�r kommer en: 192.168.1/24 192.168.2/24 - - | ppp0 = ppp0 = | | aaa.bbb.ccc.ddd fff.ggg.hhh.iii | | | | /-----\ /-----\ | | | | // | | | |---| A |------//---------| B |---| | | | // | | | | \-----/ \-----/ | | | - - Figuren illustrerar en annan m�jlig anledning till IPIP-inkapsling, ett virtuellt privat n�tverk. Detta exempel f�ruts�tter att man har tv� maskiner som b�da har en enkel uppringd anslutning till Internet. B�da datorerna allokeras en IP-adress. Bakom dessa maskiner finns n�gra privata LAN konfigurerade med reserverade n�tverksadresser. Antag att man vill l�ta vilken dator som helst p� n�tverk A kommunicera med vilken dator som helst p� n�tverk B, precis som om de vore anslutna till Internet med en n�tverksroute. IPIP-inkapsling fixar detta. Notera att inkapslingen inte l�ser problemet med att l�ta datorerna p� n�tverken A och B kommunicera med n�gon annan dator p� Internet, d� beh�ver man trix som IP-maskering. Inkapsling g�rs normalt av maskiner som upptr�der som routrar. Linux routern `A' skulle konfigureras med: # PATH=/sbin:/usr/sbin # # Ethernet configuration ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.1 up route add -net 192.168.2.0 netmask 255.255.255.0 gw fff.ggg.hhh.iii tunl0 Linux routern `B' skulle konfigureras med: # PATH=/sbin:/usr/sbin # # Ethernet configuration ifconfig eth0 192.168.2.1 netmask 255.255.255.0 up route add -net 192.168.2.0 netmask 255.255.255.0 eth0 # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.2.1 up route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0 Kommandot: route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0 betyder: 'Skicka alla datagram �mnade f�r 192.168.1.0/24 inuti ett IPIP-inkapslat datagram med destinationsadressen aaa.bbb.ccc.ddd'. Notera att konfigurationen finns p� b�da sidor. Tunnlingsenheten anv�nder `gw' parametern i routen som destination f�r IP-datagrammet som kapslar in originaldatagrammet. Den maskinen m�ste d� veta hur man 'packar upp' ett IPIP-datagram, dvs den m�ste ocks� ha en tunnlingsenhet. 6.13.2. En tunnlad datorkonfiguration. Man m�ste inte routa ett helt n�tverk. Man skulle till exempel kunna routa en enskild IP-adress. I s�dana fall skulle man kunna konfigurera tunl enheten p� den 'avl�gsna' maskinen med sin hemma-IP-adress och i A-�ndan bara anv�nda dator-route (och Proxy Arp) ist�llet f�r en n�tverksroute via tunnlingsenheten. L�t oss rita om och modifiera v�r konfiguration efter detta. Nu har vi bara datorn `B' som vill agera och uppf�ra sig som om den b�de var ansluten till Internet och �ven en del av n�tverket som st�ds av datorn `A': 192.168.1/24 - | ppp0 = ppp0 = | aaa.bbb.ccc.ddd fff.ggg.hhh.iii | | /-----\ /-----\ | | | // | | |---| A |------//---------| B | | | | // | | | \-----/ \-----/ | also: 192.168.1.12 - Linux routern `A' skulle konfigureras med: # PATH=/sbin:/usr/sbin # # Ethernet configuration ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.1 up route add -host 192.168.1.12 gw fff.ggg.hhh.iii tunl0 # # Proxy ARP for the remote host arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub Linuxdatorn `B' skulle konfigureras med: # PATH=/sbin:/usr/sbin # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.12 up route add -net 192.168.1.0 netmask 255.255.255.0 gw aaa.bbb.ccc.ddd tunl0 Denna typ av konfiguration �r mer typisk f�r Mobil IP. D�r en enskild dator vill flytta omkring p� Internet och hela tiden anv�nda samma IP- adress. Mer information om detta finns i sektionen om Mobil IP. 6.14. IPX ( AF_IPX ) IPX-protokollet anv�nds mest i LAN-omgivningar med Novell NetWare(tm). Linux har st�d f�r att kunna agera som en n�tverks�ndpunkt, eller som en router f�r IPX. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] The IPX protocol [ ] Full internal IPX network IPX-protokollet och NCPFS t�cks mer detaljerat i IPX-HOWTO <IPX- HOWTO.html>. 6.15. IPv6 Precis n�r man tror att man f�rst�r hur IP-n�tverk fungerar s� �ndras reglerna! IPv6 �r en f�rkortning av Internet Protocol version 6. IPv6 kan ibland ocks� kallas f�r IPng (IP next generation) (Sv�). IPv6 utvecklades i huvudsak f�r att ta bort oron i Internetv�rlden att det snart �r slut p� IP-adresser som kan delas ut. IPv6-adresserna �r 16 bytes stora (128 bits). IPv6 har ett antal andra �ndringar, mest f�renklingar, som kommer att g�ra IPv6-n�tverk l�ttare att underh�lla �n IPv4-n�tverk. Linux har redan en fungerande, men inte komplett, IPv6-implementation i version 2.1.* av k�rnan. Om man vill experimentera med n�sta generations Internetteknik, eller om man beh�ver den, s� b�r man l�sa IPv6-FAQ som finns p� www.terra.net <http://www.terra.net/ipv6/>. 6.16. ISDN Integrated Services Digital Network (ISDN) �r en serie standarder som specificerar ett generellt switchat digitalt n�tverk. En ISDN-`uppringning' skapar en synkron punkt till punkt f�rbindelse till destinationen. ISDN k�rs normalt p� h�ghastighetsl�nkar som delas in i ett antal diskreta kanaler. Det finns tv� olika typer av kanaler, `B- kanaler' som b�r anv�ndardatan och `D-kanaler' som anv�nds f�r kontrollinformation till ISDN-v�xeln. I Australien till exempel s� kan ISDN levereras med en 2Mbps-l�nk som delas in i 30 diskreta 64kbps B- kanaler och en 64kbps D-kanal. Valfritt antal kanaler kan anv�ndas samtidigt i valfri kombination. Man kan till exempel uppr�tta 30 olika anslutningar p� 64kbps var till 30 olika destinationer, eller s� kan man uppr�tta 15 olika anslutningar p� 128kbps var till 15 olika destinationer (med tv� kanaler per anslutning), eller bara ett litet antal kanaler och l�mna resten vilande. En kanal kan anv�ndas till b�de inkommande och utg�ende anslutningar. Den ursprungliga avsikten med ISDN var att telefonbolagen ville kunna erbjuda en enda datatj�nst som kunde ge antingen telefon- (digitalt) eller datatj�nster till hem och kontor utan att kunden skulle beh�va �ndra n�gon konfiguration. Det finns n�gra olika s�tt att ansluta en dator till en ISDN-tj�nst. Ett s�tt �r att anv�nda enhet som heter `Terminaladapter' som ansluter till en `Network Terminating Unit' vilken telefonbolaget har installerat i samband med ISDN-tj�nsten och som har ett antal seriella gr�nssnitt. Ett av de gr�nssnitten anv�nds f�r att skicka kommandon som uppr�ttar en f�rbindelse och konfiguration och de andra �r anslutna till n�tverket som skall anv�ndas. Linux fungerar i denna omgivningen utan modifikation, man behandlar bara terminaladaptern som vilken annan seriell enhet som helst. Ett annat s�tt, vilket �r s� som k�rnan st�der ISDN, �r att installera ett ISDN-kort i Linuxburken och sedan l�ta mjukvaran i Linux hantera protokollen och uppr�tta f�rbindelser. Kompileringsalternativ f�r K�rnan: ISDN subsystem ---> <*> ISDN support [ ] Support synchronous PPP [ ] Support audio via ISDN < > ICN 2B and 4B support < > PCBIT-D support < > Teles/NICCY1016PC/Creatix support Implementationen av ISDN i Linux st�der ett antal olika interna ISDN- kort. Dessa finns listade i konfigurationen f�r k�rnan: � ICN 2B and 4B � Octal PCBIT-D � Teles ISDN-cards and compatibles N�gra av dessa kort kr�ver att man laddar hem s�rskild programvara f�r att de skall fungera. Det finns ett separat verktyg att g�ra detta med. Alla detaljer om hur man konfigurerar ISDN f�r Linux finns tillg�ngligt i katalogen /usr/src/linux/Documentation/isdn/ och en FAQ f�r isdn4linux finns p� www.lrz-muenchen.de <http://www.lrz- muenchen.de/~ui161ab/www/isdn/>. En anm�rkning om PPP. PPP-protokollen fungerar antingen f�r asynkrona eller synkrona seriella linor. PPP-daemonen som vanligtvis levereras med Linux, `pppd', st�der endast asynkront l�ge. Om man vill k�ra PPP- protokoll via ISDN s� m�ste man anv�nda en s�rskilt modifierad version. Var man hittar den finns beskrivet i dokumentationen som n�mns ovan. 6.17. IP-maskering (IP Masquerade). M�nga har en enkel uppringd anslutning till Internet. N�stan alla som anv�nder den typen av konfiguration allokeras en enda IP-adress av ISPn. Det r�cker normalt f�r att en dator skall ha full �tkomst till Internet. IP-maskering �r ett smart trix som g�r det m�jligt att ha m�nga maskiner som anv�nder en enda IP-adress genom att l�ta de andra datorerna se ut som, d�rav termen maskering, maskinen som har den uppringda anslutningen. Det finns dock en liten brist, maskeringsfunktionen fungerar n�stan alltid bara i ena riktningen. Det betyder att de f�rkl�dda datorerna kan ansluta ut�t, men de kan inte ta emot n�tverksanslutningar fr�n andra datorer. Detta betyder att vissa n�tverkstj�nster inte fungerar, tex talk, och andra som till exempel ftp m�ste konfigureras att k�ra i passivt (PASV) l�ge f�r att fungera. Lyckligtvis s� fungerar de vanligaste tj�nsterna som till exempel telnet, World Wide Web och irc utm�rkt. Kompileringsalternativ f�r K�rnan: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Networking options ---> [*] Network firewalls .... [*] TCP/IP networking [*] IP: forwarding/gatewaying .... [*] IP: masquerading (EXPERIMENTAL) Vanligtvis har man sin Linuxburk konfigurerad f�r uppringd SLIP eller PPP, precis som om det var en frist�enda dator. Dessutom s� skulle den ha en ytterligare n�tverksenhet konfigurerad, kanske Ethernet som �r konfigurerat med en reserverad n�tverksadress. Datorerna som skall f�rkl�das skulle d� finnas p� det n�tverket. Var och en av de datorerna skulle st�lla in IP-adressen p� Linuxboxens Ethernet-kort som `default gateway' eller router. Observera att de andra datorerna (de som inte har den uppringda anslutningen) inte beh�ver konfigureras med IP-maskering, de beh�ver endast veta vilken dator som �r `default gateway' (Sv�). En typisk konfiguration: - - \ | 192.168.1.0 \ | /255.255.255.0 \ --------- | | | Linux | .1.1 | NET =================| masq |------| | PPP/slip | router| | -------- / --------- |--| host | / | | | / | -------- - - De viktigaste kommandona f�r denna konfiguration �r: # Network route for ethernet route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # Default route to the rest of the internet. route add default ppp0 # # Cause all hosts on the 192.168.1/24 network to be masqueraded. ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 Man kan hitta mer information om detta p� IP Masquerade Resource Page <http://www.hwy401.com/achau/ipmasq/> eller i IP-Masquerade-MINI- HOWTO. 6.18. IP Transparent Proxy Med IP transparent proxy kan man omdirigera servrar eller tj�nster �mnade f�r en annan dator till tj�nsterna p� denna maskinen. Detta kan till exempel vara anv�ndbart om man har en Linuxburk som router och �ven tillhandah�ller en proxy-server. D� skulle man omdirigera alla anslutningar �mnade f�r en avl�gsen tj�nst till den lokala proxy- servern. Kompileringsalternativ f�r K�rnan: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Networking options ---> [*] Network firewalls .... [*] TCP/IP networking .... [*] IP: firewalling .... [*] IP: transparent proxy support (EXPERIMENTAL) Man konfigurerar transparent proxy med kommandot ipfwadm. Ett exempel som kan vara anv�ndbart f�ljer: ipfwadm -I -a accept -D 0/0 telnet -r 2323 Detta exempel g�r att alla f�rs�k att uppr�tta en telnet-anslutning (port 23) till n�gon dator kommer att omdirigeras till port 2323 p� denna dator. Om man k�r en tj�nst p� den porten s� kan man vidarebefo� dra telnet-anslutningar, logga dem eller g�ra vadhelst man �nskar. Ett mer intressant exempel �r att omdirigera all http-trafik genom en lokal cache. Men protokollet som anv�nds av proxy-servrar �r annorlunda �n vanlig http: d�r en klient ansluter till www.server.com:80 och fr�gar efter /s�kv�g/sida/, men n�r den ansluter till en lokal cache kontaktar den proxy.local.domain:8080 och fr�gar efter www.server.com/path/page. F�r att filtrera en http-f�rfr�gan genom den lokala proxyn s� beh�ver man l�gga till det protokollet genom att k�ra en liten server, som heter transproxy (som man hittar p� www). Man kan d� k�ra transproxy p� port 8081 och ge f�ljande kommando: ipfwadm -I -a accept -D 0/0 80 -r 8081 Programmet transproxy kommer d� att ta emot alla anslutningar �mnade f�r externa servrar och dirigera dem till den lokala proxyn efter att den har fixat till protokollskillnaderna. 6.19. Mobil IP Termen IP-mobilitet beskriver f�rm�gan att f�r en dator flytta sina n�tverksanslutningar fr�n en punkt p� Internet till en annan utan att �ndra sin IP-adress eller tappa anslutningen. Vanligtvis n�r en IP- dator byter anslutningspunkt s� m�ste den �ven byta IP-adress. IP- mobilitet �vervinner detta problem genom att allokera en fix IP-adress till den mobila datorn och anv�nda IP-inkapsling (tunnling) med automatisk routing f�r att se till att datagrammen som �r �mnade f�r den routas till den IP-adress som den verkligen anv�nder. Ett projekt �r ig�ng f�r att ta fram ett komplett paket med verktyg f�r IP-mobilitet i Linux. Information om projektet kan f�s p� Linux Mobile IP Home Page <http://anchor.cs.binghamton.edu/~mobileip/>. 6.20. Multicast Med IP-multicasting kan datagram routas till ett godtyckligt antal IP- datorer p� olika IP-n�tverk samtidigt. Denna mekanism kan till exempel anv�ndas f�r att s�nda broadcastmaterial, som tex video eller ljud, till ett stort antal datorer p� Internet samtidigt utan att var och en av dessa datorer beh�ver belasta n�tverket med en egen `kopia' av materialet. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] TCP/IP networking .... [*] IP: multicasting Man beh�ver �ven ett paket med verktyg och g�ra mindre n�tverkskonfiguration. Ett st�lle att h�mta information om hur man installerar dessa f�r Linux finns p�: www.teksouth.com <http://www.teksouth.com/linux/multicast/>. 6.21. NAT - �vers�ttning av n�tverksadresser (Network Address Trans� lation) NAT �r en standardiserad storebror till Linux IP-maskering. Det finns en detaljerad specifikation i RFC1631. NAT tillhandah�ller funktioner som IP-maskering inte g�r vilket g�r det mer passande f�r anv�ndning i brandv�ggsroutrar hos f�retag och i st�rre installationer. En alpha-implementation av NAT f�r Linux 2.0.29 k�rnan har utvecklats av Michael Hasenstein, Michael.Hasenstein@informatik.tu-chemnitz.de. Michaels dokumentation och implementation finn p� Linux IP Network Address Web Page <http://www.csn.tu-chemnitz.de/HyperNews/get/linux- ip-nat.html> Nyare Linux 2.1.* k�rnor har ocks� viss NAT-funktionalitet i routingalgoritmen. 6.22. NetRom ( AF_NETROM ) Enhetsnamn f�r NetRom �r `nr0', `nr1', osv. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] Amateur Radio AX.25 Level 2 [*] Amateur Radio NET/ROM Protokollen AX25, Netrom och Rose finns beskrivna i AX25-HOWTO <AX25-HOWTO.html>. Dessa protokoll anv�nds av radioamat�rer i hela v�rlden i experiment med paketradio. Det mesta arbetet med implementationen av dessa protokoll har gjorts av Jonathon Naylor, jsn@cs.nott.ac.uk. 6.23. PLIP (Parallel Line Internet Protocol) Enhetsnamn f�r PLIP �r `plip0', `plip1 and plip2. Kompileringsalternativ f�r K�rnan: Networking options ---> <*> PLIP (parallel port) support PLIP, �r som SLIP i den mening att det anv�nds f�r att skapa en punkt till punkt n�tverksf�rbindelse mellan tv� maskiner. Men det skiljer sig genom att det �r designat f�r att anv�nda de parallella skrivarportarna p� datorn ist�llet f�r de seriella (ett kabelschema finns l�ngre fram i dokumentet). Eftersom det �r m�jligt att �verf�ra mer �n en bit �t g�ngen med en parallellport, s� �r det m�jligt att uppn� h�gre hastigheter med PLIP-gr�nssnittet �n vad man g�r med seriell enhet. Dessutom kan �ven den enklaste av alla parallellportar, skrivarporten, anv�ndas i st�llet f�r att man skall beh�va k�pa j�mf�relsevis dyra 16550AFN UARTs till de seriella portarna. PLIP anv�nder dock mycket CPU-tid j�mf�rt med en seriell l�nk och �r naturligtvis inget bra val om man kan f� tag p� n�gra billiga Ethernet-kort, men det fungerar om inget annat finns tillg�ngligt och det fungerar dessutom ganska bra. Man kan f�rv�nta sig en �verf�ringshastighet p� ungef�r 20 kB/s n�r en l�nk fungerar bra. PLIP-drivrutinerna sl�ss med parallell-drivrutinen om h�rdvaran. Om man vill anv�nda b�da drivrutinerna s� skall man kompilera b�da som moduler s� kan man v�lja vilken port man skall anv�nda f�r PLIP och vilka portar man skall anv�nda f�r skrivardrivrutinen. Se Modules- HOWTO <Modules-HOWTO.html> f�r mer information om hur man konfigurerar moduler till k�rnan. Notera att vissa b�rbara datorer anv�nder chipsets som inte fungerar med PLIP d�rf�r att de inte till�ter vissa kombinationer av signaler som PLIP beh�ver, som skrivare inte anv�nder. Linux PLIP-gr�nssnitt �r kompatibelt med Crynwyr Packet Driver PLIP vilket betyder att man kan ansluta sin Linuxburk till en DOS-maskin som k�r en annan typ av TCP/IP via PLIP. I 2.0.* k�rnor �r PLIP-enheterna mappade mot I/O-port och IRQ som f�ljer: device i/o IRQ ------ ----- --- plip0 0x3bc 5 plip1 0x378 7 plip2 0x278 2 Om man inte har parallellportar som st�mmer �verens med n�gon av ovanst�ende kombinationer s� kan man �ndra en ports IRQ med kommandot ifconfig och parametern `irq'. Man m�ste d� sl� p� IRQ p� skrivarpor� tarna i sitt ROM BIOS (om det st�der det). I senare 2.1.* k�rnor med Plug'n'Play st�d s� allokeras PLIP-enheterna sekvensiellt n�r de hittas precis som Ethernet-enheterna. N�r man kompilerar k�rnan �r det en fil som man kanske beh�ver titta i f�r att konfigurera PLIP. Filen �r /usr/src/linux/driver/net/CONFIG och den inneh�ller PLIP timrar i millisekunder. De f�rvalda �r antagligen ok i de flesta fall. Man m�ste antagligen �ka p� dem om man har en s�rskilt l�ngsam dator, d� man faktiskt skall �ka timrarna p� den andra datorn. Det finns ett program plipconfig med vilket man kan �ndra dessa timerinst�llningar utan att kompilera om k�rnan. Det kommandot f�ljer med i m�nga Linuxdistributioner. F�r att konfigurera ett PLIP-gr�nssnitt s� m�ste man l�gga till f�ljande rader i sin rc-fil f�r n�tverket: # # Attach a PLIP interface # # configure first parallel port as a plip device /sbin/ifconfig plip0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up # # End plip D�r: IPA.IPA.IPA.IPA representerar ens egen IP-adress. IPR.IPR.IPR.IPR representerar IP-adress p� den andra maskinen. Parametern pointopoint har samma betydelse som f�r SLIP, den specificerar adressen p� maskinen i andra �nden av l�nken. I n�stan alla fall kan man behandla PLIP-gr�nssnittet som om det var ett SLIP-gr�nssnitt, f�rutom att varken dip eller slattach beh�ver, eller kan anv�ndas. Mer information om PLIP kan hittas i: PLIP-mini-HOWTO <mini/PLIP> 6.24. PPP (Point to Point Protocol) Enhetsnamn f�r PPP �r `ppp0', `ppp1, osv. Enheter numreras sekvensiellt och den f�rsta enheten som konfigureras f�r `ppp0'. Kompileringsalternativ f�r K�rnan: Networking options ---> <*> PPP (point-to-point) support Detaljer om PPP-konfiguration finns i PPP-HOWTO <PPP-HOWTO.html>. 6.24.1. Att vidh�lla en permanent anslutning till n�tet med pppd . Om man har en semi-permanent anslutning till n�tet och vill att ens maskin automatiskt skall �teruppta PPP-anslutningen om den bryts s� finns det ett enkelt trix som g�r detta: Konfigurera PPP s� att det kan startas genom att root-anv�ndaren ger kommandot: # pppd Se till att `-detach' parametern finns konfigurerad i filen /etc/ppp/options. Sedan skall f�ljande rader l�ggas in i filen /etc/inittab, tillsammans med getty-definitionerna: pd:23:respawn:/usr/sbin/pppd Detta g�r s� att programmet init h�ller koll p� pppd och automatiskt startar om det ifall det d�r. 6.25. Rose protokollet ( AF_ROSE ) Enhetsnamn f�r Rose �r `rs0', `rs1', osv. i 2.1.* k�rnor. Rose finns endast i 2.1.* k�rnor. Kompileringsalternativ f�r K�rnan: Networking options ---> [*] Amateur Radio AX.25 Level 2 [*] Amateur Radio NET/ROM Protokollen AX25, Netrom och Rose finns beskrivna i AX25-HOWTO <AX25-HOWTO.html>. Dessa protokoll anv�nds av radioamat�rer i hela v�rlden i experiment med paketradio. Det mesta arbetet med implementationen av dessa protokoll har gjorts av Jonathon Naylor, jsn@cs.nott.ac.uk. 6.26. SAMBA (st�d f�r `NetBEUI', `NetBios'). SAMBA �r en implementation av protokollet `Session Management Block'. Med SAMBA kan system fr�n bland annat Microsoft anv�nda diskar och skrivare i en Linuxbox. Detaljer om SAMBA och dess konfiguration finns i SMB-HOWTO <SMB- HOWTO.html>. 6.27. SLIP (Serial Line Internet Protocol) klient. Enhetsnamn f�r SLIP �r `sl0', `sl1' osv. Enheter numreras sekvensiellt och den f�rsta enheten som konfigureras f�r `sl0'. Kompileringsalternativ f�r K�rnan: Network device support ---> [*] Network device support <*> SLIP (serial line) support [ ] CSLIP compressed headers [ ] Keepalive and linefill [ ] Six bit SLIP encapsulation Med SLIP kan man anv�nda TCP/IP �ver en seriell lina, som kan vara en telefonledning och modem, eller en hyrd ledning av n�got slag. F�r att kunna anv�nda SLIP beh�ver man ha tillg�ng till en SLIP-server i sitt n�romr�de. M�nga universitet och f�retag i hela v�rlden tillhandah�ller SLIP-�tkomst. SLIP anv�nder de seriella portarna p� datorn f�r att b�ra IP-datagram. F�r att g�ra detta m�ste det ha kontroll �ver de seriella enheterna. SLIP-enheter ben�mns med sl0, sl1 osv. Hur motsvarar detta de seriella enheterna? N�tverkskoden anv�nder vad som heter ett ioctl-anrop (i/o control) f�r att �ndra de seriella enheterna till SLIP-enheter. Det finns tv� program som kan g�ra detta, de heter dip och slattach. 6.27.1. dip (Dialup IP) dip �r ett smart program som kan st�lla in hastigheten p� den seriella enheten, kommendera modemet att ringa upp den andra �ndan av l�nken, automatiskt logga in p� servern, s�ka efter meddelanden som man f�r fr�n servern och ta fram information fr�n dem som tex IP-adress och dessutom kan programmet utf�ra ioctl-kommandot som beh�vs f�r att s�tta den seriella porten i SLIP-l�ge. dip har ett kraftfullt scriptspr�k i vilket man kan automatisera sitt inloggningsf�rfarande. Programmet finns p�: sunsite.unc.edu <ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/dip/dip337o- uri.tgz>. F�r att installera det, f�rs�k med f�ljande: # # cd /usr/src # gzip -dc dip337o-uri.tgz | tar xvf - # cd dip-3.3.7o <edit Makefile> # make install # Makefile antar att det finns en grupp som heter uucp, men om man vill kan man �ndra det till dip eller SLIP beroende p� sin konfiguration. 6.27.2. slattach I motsats till dip s� �r slattach ett v�ldigt enkelt program som �r v�ldigt enkelt att anv�nda, men det �r inte s� sofistikerat som dip. Det har inte n�got scriptspr�k och allt det g�r �r att konfigurera den seriella enheten som en SLIP-enhet. Det antar att man har all information man beh�ver och att den seriella l�nken �r uppr�ttad n�r man k�r programmet. slattach �r idealiskt att anv�nda om man har en permanent f�rbindelse till en server, till exempel en fysisk kabel eller en hyrd ledning. 6.27.3. N�r anv�nder man vilket? Man skulle anv�nda dip om man har en uppringd f�rbindelse, eller n�gon annan tempor�r f�rbindelse, till sin SLIP-server. Man skulle anv�nda slattach om man har en hyrd ledning mellan sin maskin och SLIP-servern och n�r man inte beh�ver g�ra n�got s�rskilt f�r att f�rbindelsen skall fungera. Se avsnittet `Permanent SLIP-anslutning' f�r mer information. Att konfigurera SLIP �r ungef�r som att konfigurera ett Ethernet- gr�nssnitt ( L�s avsnittet `Att konfigurera en Ethernet-enhet' ovan). Det finns dock vissa viktiga skillnader. F�rst och fr�mst s� �r SLIP-l�nkar olika Ethernet-n�tverk i den meningen att det alltid endast finns tv� datorer p� n�tverket, en i varje �nda av l�nken. Till skillnad fr�n Ethernet, som �r tillg�ngligt s� fort man �r inkopplad, s� m�ste man kanske, beroende p� typen av l�nk, initialisera anslutningen p� n�got speciellt s�tt. Om man anv�nder dip s� g�r man det normalt inte vid systemstarten, utan senare n�r man �r redo att anv�nda l�nken. Det �r m�jligt att automatisera den processen. Om man anv�nder slattach s� vill man antagligen l�gga till n�gra rader i sin rc.inet1-fil. Detta beskrivs snart. Det finns tv� huvudtyper av SLIP-servrar: Dynamisk IP-adress servrar och statisk IP-adress servrar. N�stan alla SLIP-servrar presenterar en prompt d�r man skall logga in med anv�ndarnamn och l�senord. dip kan logga in automatiskt. 6.27.4. Statisk SLIP-server med uppringd f�rbindelse och dip En statisk SLIP-server �r en server i vilken man har f�tt en IP-adress som �r ens egen. Varje g�ng man ansluter till servern s� konfigurerar man sin SLIP-port med den adressen. Den statiska SLIP-servern kommer att svara p� modemuppringningen, eventuellt fr�ga efter anv�ndarnamn och l�senord, och sedan routa alla datagram �mnade f�r ens IP-adress genom den anslutningen. Om man har en statisk server, s� kanske man vill l�gga in rader med sitt datornamn och sin IP-adress (eftersom man vet vad den kommer att vara) i sin fil /etc/hosts/. Man b�r ocks� konfigurera lite andra filer, s�som rc.inet2, host.conf, resolv.conf, /etc/HOSTNAME och rc.local. Kom ih�g att n�r man konfigurerar rc.inet1 s� beh�ver man inte l�gga till n�gra s�rskilda kommandon f�r SLIP eftersom dip sk�ter om allt som beh�ver g�ras d�r. Man beh�ver dock ge dip all n�dv�ndig information s� att det kan konfigurera gr�nssnittet efter det att det har uppr�ttat f�rbindelsen och loggat in p� SLIP- servern. Om det �r s�h�r ens SLIP-server fungerar s� kan man g� vidare till avsnittet `Att anv�nda dip' f�r att f� reda p� hur man konfigurerar dip. 6.27.5. Dynamisk SLIP-server med uppringd f�rbindelse och dip . En dynamisk SLIP-server �r en server d�r man slumpvis allokeras en IP- adress, fr�n en pool med adresser, varje g�ng man loggar p�. Detta betyder att det inte finns n�gon garanti f�r att man har en viss adress varje g�ng och att adressen kan anv�ndas av n�gon annan efter det att man har loggat av. Administrat�ren f�r SLIP-servern har angett en m�ngd IP-adresser d�r servern v�ljer den f�rsta lediga n�r den f�r en ny anslutning varefter den guidar anv�ndaren igenom loginprocessen och sedan skriver ett v�lkomstmeddelande som inneh�ller IP-adressen som sedan anv�nds under resten av anslutningen. Konfigurationen f�r denna typ av server liknar den f�r en statisk server f�rutom att man m�ste l�gga till ett steg d�r man tar emot IP- adressen som servern har allokerat och konfigurera SLIP-enheten med den. �terigen s� g�r dip det h�rda jobbet och nyare versioner �r tillr�ckligt smarta f�r att inte bara logga in, utan �ven ta reda p� IP-adressen och spara den s� att man kan konfigurera SLIP-enheten med den. Om det �r s�h�r ens SLIP-server fungerar s� kan man g� vidare till avsnittet `Att anv�nda dip' f�r att f� reda p� hur man konfigurerar dip. 6.27.6. Att anv�nda dip . Som n�mnts tidigare s� �r dip ett kraftfullt program som kan f�renkla och automatisera processen d�r man ringer upp SLIP-servern, loggar in, aktivera anslutningen och konfigurera SLIP-enheter med l�mpliga ifconfig och route kommandon. F�r att anv�nda dip s� skall man skriva ett `dip script', som formellt �r en lista av kommandon som dip f�rst�r och som talar om f�r dip hur det skall utf�ra varje sak som man vill att det skall utf�ra. Se sample.dip f�r att f� en aning om hur det fungerar. dip �r ett ganska kraftfullt program med m�nga alternativ. Ist�llet f�r att g� in p� alla h�r s� �r det l�mpligt att titta p� manualbladet, README- och exempelfiler f�r dip. Exempelfilen sample.dip f�ruts�tter att man anv�nder en statisk SLIP- server, d�r man vet sin IP-adress i f�rv�g. F�r dynamiska SLIP-servrar s� har nyare versioner av dip ett kommando som automatiskt l�ser och konfigurerar SLIP-enheten med IP-adressen som man allokeras. F�ljande exempel �r en modifierad version av sample.dip som kom med dip337j- uri.tgz och kan vara en bra utg�ngspunkt. Det kan vara bra att spara det som /etc/dipscript och sedan �ndra det efter behov: # # sample.dip Dialup IP connection support program. # # This file (should show) shows how to use the DIP # This file should work for Annex type dynamic servers, if you # use a static address server then use the sample.dip file that # comes as part of the dip337-uri.tgz package. # # # Version: @(#)sample.dip 1.40 07/20/93 # # Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> # main: # Next, set up the other side's name and address. # My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42) get $remote xs4all.hacktic.nl # Set netmask on sl0 to 255.255.255.0 netmask 255.255.255.0 # Set the desired serial port and speed. port cua02 speed 38400 # Reset the modem and terminal line. # This seems to cause trouble for some people! reset # Note! "Standard" pre-defined "errlevel" values: # 0 - OK # 1 - CONNECT # 2 - ERROR # # You can change those grep'ping for "addchat()" in *.c... # Prepare for dialing. send ATQ0V1E1X4\r wait OK 2 if $errlvl != 0 goto modem_trouble dial 555-1234567 if $errlvl != 1 goto modem_trouble # We are connected. Login to the system. login: sleep 2 wait ogin: 20 if $errlvl != 0 goto login_trouble send MYLOGIN\n wait ord: 20 if $errlvl != 0 goto password_error send MYPASSWD\n loggedin: # We are now logged in. wait SOMEPROMPT 30 if $errlvl != 0 goto prompt_error # Command the server into SLIP mode send SLIP\n wait SLIP 30 if $errlvl != 0 goto prompt_error # Get and Set your IP address from the server. # Here we assume that after commanding the SLIP server into SLIP # mode that it prints your IP address get $locip remote 30 if $errlvl != 0 goto prompt_error # Set up the SLIP operating parameters. get $mtu 296 # Ensure "route add -net default xs4all.hacktic.nl" will be done default # Say hello and fire up! done: print CONNECTED $locip ---> $rmtip mode CSLIP goto exit prompt_error: print TIME-OUT waiting for sliplogin to fire up... goto error login_trouble: print Trouble waiting for the Login: prompt... goto error password:error: print Trouble waiting for the Password: prompt... goto error modem_trouble: print Trouble occurred with the modem... error: print CONNECT FAILED to $remote quit exit: exit Ovanst�ende exempel f�ruts�tter att man kontaktar en dynamisk SLIP- server, om man kontaktar en statisk server s� b�r sample.dip som f�ljer med dip337-uri.tgz fungera bra. D�r dip f�r kommandot get $local s� s�ker det igenom den inkommande texten efter en textstr�ng som ser ut som en IP-adress, dvs tal som �r separerade med '.'-tecken. Denna modifiering gjordes speciellt f�r att fungera med dynamiska SLIP-servrar, s� att processen att l�sa in IP- adressen fr�n servern skulle bli automatiserad. Ovanst�ende exempel skapar automatiskt en `default route' via SLIP- l�nken, om det inte �r detta man vill, om man tex har en Ethernet- anslutning som skall vara `default route, s� tar man bort kommandot default fr�n scriptet. Om man, d� scriptet k�rt f�rdigt, ger kommandot ifconfig s� ser man att det finns en enhet sl0. Detta �r SLIP-enheten. Om s� beh�vs s� kan man modifiera dess konfiguration manuellt efter det att dip har k�rt f�rdigt, genom att anv�nda kommandona ifconfig och route. Notera att med dip kan man v�lja ett antal olika protokoll att anv�nda med mode-kommandot, det vanligaste �r cSLIP f�r SLIP med kompression. Notera att b�da �ndar av l�nken m�ste komma �verens, s� man m�ste v�lja det som ens server �r inst�llt p�. Ovanst�ende exempel �r hyfsat stabilt och skall klara av de flesta felen. Titta annars i manualbladet f�r dip f�r mer information. Naturligtvis s� kan man skriva scriptet s� att det till exempel f�rs�ker ringa upp servern igen om det inte lyckas f� en anslutning inom en given tid, eller till och med f�rs�ka med en serie olika servrar om man har tillg�ng till mer �n en. 6.27.7. Permanent SLIP-anslutning med hyrd ledning och slattach . Om man har en kabel mellan tv� maskiner, eller �r lyckligt lottad och har en hyrd ledning, eller n�gon annan permanent seriell anslutning mellan sin maskin och en annan, s� beh�ver man inte besv�ra sig med att anv�nda dip f�r att s�tta upp en seriell l�nk. slattach �r ett v�ldigt enkelt verktyg att anv�nda som har precis tillr�ckligt med funktionalitet f�r att konfigurera en anslutning. Eftersom anslutningen �r permanent s� vill man l�gga till n�gra kommandon i sin rc.inet1-fil. Det enda man egentligen beh�ver g�ra f�r en permanent anslutning �r att konfigurera den seriella enheten till korrekt hastighet och st�lla in den i SLIP-l�ge. Med slattach kan man g�ra detta i ett enda kommando. Man l�gger till f�ljande i sin rc.inet1-fil: # # Attach a leased line static SLIP connection # # configure /dev/cua0 for 19.2kbps and cslip /sbin/slattach -p cslip -s 19200 /dev/cua0 & /sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up # # End static SLIP. D�r: IPA.IPA.IPA.IPA representerar IP-adressen. IPR.IPR.IPR.IPR representerar the IP-adressen i andra �ndan. slattach allokerar den f�rsta icke allokerade SLIP-enheten till den specificerade seriella enheten. slattach b�rjar b�rjar med sl0. D�rf�r s� parar slattach ihop sl0 med den specifierade seriella enheten och d�refter sl1 osv. Med slattach kan man konfigurera ett antal olika protokoll med parametern -p. Vanligtvis s� anv�nder man SLIP eller cSLIP beroende p� om man vill ha kompression eller inte, men b�da sidor m�ste vara �verens. 6.28. SLIP (Serial Line Internet Protocol) server. Om man har en maskin, som kanske �r n�tverksansluten, som man vill att andra skall kunna ansluta till och anv�nda n�tverkstj�nster, s� skall man konfigurera sin maskin som en server. Om man vill anv�nda SLIP som protokoll s� har man f�r n�rvarande tre valm�jligheter f�r hur man skall konfigurera Linuxboxen som en SLIP-server. Mitt r�d skulle vara att anv�nda det som presenteras f�rst , sliplogin, eftersom det verkar vara det enklaste att konfigurera och f�rst�, men jag kommer att presentera en sammanfattning av varje s� att man kan bilda sig en egen uppfattning. 6.28.1. SLIP-server med sliplogin . sliplogin �r ett program som man kan anv�nda ist�llet f�r det normala login-shellet f�r SLIP-anv�ndare som konverterar terminallinjen till en SLIP-l�nk. Man kan med sliplogin konfigurera sin Linuxbox som antingen en statisk adressserver, anv�ndare f�r samma IP-adress varje g�ng de ansluter, eller som en dynamisk adresserver d�r anv�ndare inte n�dv�ndigtvis f�r samma IP-adress varje g�ng de ansluter. De som ansluter kommer att logga in p� vanligt vis med anv�ndarnamn och l�senord, men ist�llet f�r att f� ett shell efter de loggat in s� exekveras sliplogin, som s�ker i sin konfigurationsfil (/etc/slip.hosts) efter en rad med ett loginnamn som motsvarar det som anv�nts vid inloggningen. Om detta hittas s� konfigurerar sliplogin linjen som en ren 8 bitars l�nk och anv�nder ioctl f�r att konvertera l�nken till en SLIP-l�nk. Sedan �terst�r ett steg d�r sliplogin k�r ett shellscript som konfigurerar SLIP-gr�nssnittet med relevant IP- adress, n�tmask och routing. Scriptet heter normalt /etc/slip.login, men p� liknande s�tt som f�r getty om man har s�rskilda anv�ndare som beh�ver speciell initiering, s� kan man skapa script som heter /etc/slip.login.loginname som k�rs ist�llet f�r det allm�nna. Det finns antingen tre eller fyra filer att konfigurera f�r att sliplogin skall fungera. Jag skall i detalj g� igenom hur man f�r tag p� programvara och hur man konfigurerar detta. Filerna �r: � /etc/passwd, f�r anv�ndarkonton. � /etc/slip.hosts, f�r att inneh�lla information som �r unik f�r varje anv�ndare. � /etc/slip.login, vilken tar hand om konfiguration av routing. � /etc/slip.tty, vilken endast beh�vs om man skall konfigurera en server som skall anv�nda dynamisk adressallokering och inneh�ller en tabell med adresser att allokera. � /etc/slip.logout, vilken inneh�ller kommandon f�r att st�da upp efter det att en anv�ndare har lagt p� eller loggat ut. 6.28.1.1. Var man f�r tag p� sliplogin . Vissa kanske redan har sliplogin-paketet installerat som en del av sin distribution, om inte s� kan sliplogin h�mtas ifr�n: sunsite.unc.edu <ftp://sunsite.unc.edu/pub/linux/system/Network/serial/sliplogin-2.1.1.tar.gz>. Tar-filen inneh�ller b�de k�llkod, kompilerade k�rbara filer och manualblad. F�r att se till att bara auktoriserade anv�ndare skall kunna k�ra sliplogin, s� b�r man l�gga till en rad i filen /etc/group, ungef�r som f�ljande: .. slip::13:radio,fred .. N�r man installerar sliplogin-paketet s� kommer Makefile att �ndra �gargruppen f�r kommandot sliplogin till slip, och det betyder att endast anv�ndare som tillh�r den gruppen kan k�ra programmet. I exemplet ovan kan endast radio och fred k�ra sliplogin. F�r att installera bin�rfilerna i katalogen /sbin g�r man f�ljande: # cd /usr/src # gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf - # cd sliplogin-2.1.1 # <..edit the Makefile if you don't use shadow passwords..> # make install Om man vill kompilera om bin�rfilerna innan man installerar s� skall man g�ra make clean innan man k�r make install. Om man vill installera filerna i n�gon annan katalog s� f�r man �ndra i filen Makefile under regeln install. L�s filen README som f�ljer med paketet f�r mer information. 6.28.1.2. Att konfigurera /etc/passwd f�r SLIP. Normalt skulle man skapa s�rskilda login f�r SLIP-anv�ndare i filen /etc/passwd. En konvention som ofta f�ljs �r att anv�nda hostname f�r den anslutande datorn med ett stort `S' i b�rjan. S�, till exempel, om den anslutande datorn heter radio s� kan man l�gga en rad i /etc/passwd som ser ut s�h�r: Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin Men det spelar egentligen ingen roll vad kontot heter, bara det betyder n�got f�r administrat�ren av SLIP-servern. Notera att anv�ndarna inte beh�ver en s�rskild hemkatalog, efter som de inte kommer att f� n�got shell fr�n denna maskinen. D�rf�r duger /tmp gott. Notera �ven att sliplogin anv�nds ist�llet f�r ett normalt shell. 6.28.1.3. Att konfigurera /etc/slip.hosts Filen /etc/slip.hosts �r filen som sliplogin s�ker igenom efter rader som st�mmer �verens med loginnamnet f�r att f� tag p� konfigurationsdetaljer f�r denna anv�ndare. Det �r filen d�r man specificerar IP-adressen och n�tmasken som kommer att tilldelas anv�ndaren. Exempelrader f�r tv� datorer, en statisk konfiguration f�r radio och en annan, dynamisk konfiguration f�r albert kan se ut s�h�r: # Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1 Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60 # Parametrarna i /etc/slip.hosts �r: 1. loginnamnet f�r anv�ndaren. 2. IP-adress f�r servermaskinen (dvs denna dator) 3. IP-adress som anv�ndaren blir tilldelad. Om detta f�lt inneh�ller DYNAMIC s� kommer IP-adressen att allokeras baserad p� informationen som finns i filen /etc/slip.tty. Notera: man m�ste ha �tminstone version 1.3 av sliplogin f�r att detta skall fungera. 4. n�tmasken som tilldelas den anslutande maskinen. 5. SLIP-l�ge d�r man kan s�tta p�/st�nga av kompression och andra funktioner. Till�tna v�rden �r normal eller compressed. 6. en timeoutparameter som specificerar hur l�ng tid l�nken kan vara oanv�nd innan den automatiskt avbryts. Ett negativt v�rde st�nger av funktionen. 7. valfria argument. Notera att man kan anv�nda antingen datornamn eller IP-adresser f�r f�lt 2 och 3. Om man anv�nder datornamn s� m�ste dessa kunna �vers�ttas, dvs maskinen m�ste m�ste kunna hitta en IP-adress som st�mmer �verens med datornamnet annars kommer scripet att fallera n�r det k�rs. Man kan testa detta genom att f�rs�ka �ppna en telnet- anslutning till datornamnet, om man f�r meddelandet `Trying nnn.nnn.nnn...' s� kan maskinen hitta en IP-adress. F�r man d�remot meddelandet `Unknown host' s� kan den inte hitta n�gon IP-adress. Om inte s� anv�nder man IP-adresser eller fixar till konfigurationen av sin namn�vers�ttare (se avsnitt `Att konfigurera din Name Resolver'). De vanligaste SLIP-l�gena �r: normal att sl� p� normal SLIP utan kompression. compression att sl� p� van Jacobsen header compression (cSLIP) Man kan endast anv�nda en �t g�ngen. F�r mer information om de andra valm�jligheterna som finns, se manualbladen. 6.28.1.4. Att konfigurera /etc/slip.login . N�r sliplogin har hittat en passande rad i /etc/slip.hosts s� kommer programmet att f�rs�ka exekvera filen /etc/slip.login f�r att konfigurera SLIP-gr�nssnittet med dess IP-adress och n�tmask. Exemplet p� en /etc/slip.login som f�ljer med sliplogin-paketet ser ut s� h�r: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a SLIP line. sliplogin invokes this with # the parameters: # $1 $2 $3 $4, $5, $6 ... # SLIPunit ttyspeed pid the arguments from the slip.host entry # /sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up /sbin/route add $6 arp -s $6 <hw_addr> pub exit 0 # Scriptet anv�nder helt enkelt kommandona ifconfig och route f�r att konfigurera SLIP-enheten med dess IP-adress, avl�gsen IP-adress och n�tmask och sedan skapa en route till den avl�gsna adressen via SLIP- enheten. Precis som om man anv�nde kommandot slattach. Notera ocks� anv�ndandet av Proxy ARP f�r att se till att andra datorer p� samma Ethernet som servern kommer att n� den anslutna datorn. F�ltet <hw_addr> skall vara h�rdvaruadressen p� Ethernet- kortet i maskinen. Om servern inte �r ansluten till ett Ethernet- n�tverk kan man helt utel�mna denna rad. 6.28.1.5. Att konfigurera /etc/slip.logout . N�r anslutningen avslutas, s� vill man se till att den seriella enheten �terst�lls till sitt normala tillst�nd s� att framtida anslutningar kan logga in ordentligt. Detta uppn�s genom med hj�lp av filen /etc/slip.logout. Dess format �r ganska enkelt och anv�nds med samma argument som filen /etc/slip.login. #!/bin/sh - # # slip.logout # /sbin/ifconfig $1 down arp -d $6 exit 0 # Allt den g�r �r `ta ner' gr�nssnittet vilket kommer att ta bort routen som skapades tidigare. Den anv�nder ocks� kommandot arp f�r att ta bort eventuella Proxy ARPs som har skapats, �terigen, man beh�ver inte kommandot arp ifall servern inte �r ansluten till ett Ethernet- n�tverk. 6.28.1.6. Att konfigurera /etc/slip.tty . Om man anv�nder dynamisk IP-adressallokering (har n�gon rad konfigurerad med DYNAMIC i /etc/slip.hosts) s� m�ste man konfigurera filen /etc/slip.tty f�r att lista vilka adresser som tilldelas vilken port. Man beh�ver endast denna fil om man vill att servern dynamiskt skall ge adresser till anv�ndare. Formatet �r f�ljande: # slip.tty tty -> IP address mappings for dynamic SLIP # format: /dev/tty?? xxx.xxx.xxx.xxx # /dev/ttyS0 192.168.0.100 /dev/ttyS1 192.168.0.101 # Vad denna fil s�ger �r att anv�ndare som ansluter till porten /dev/ttyS0 och som har sitt adressf�lt i filen /etc/slip.hosts satt till DYNAMIC kommer att tilldelas adressen 192.168.0.100. P� detta s�ttet beh�ver man endast allokera en adress per port f�rutom f�r de anv�ndare som beh�ver en egen adress. Detta hj�lper till att h�lla nere antalet adresser man beh�ver till ett minimum och undviker sl�sande. 6.28.2. Slip Server med dip . L�t mig b�rja med att s�ga att lite av informationen nedan kom ifr�n manualbladet f�r dip, d�r det kortfattat beskrivs hur man k�r Linux som en SLIP-server. Var ocks� uppm�rksam p� att det som f�ljer �r baserat p� paketet dip337o-uri.tgz och antagligen inte g�ller f�r andra versioner av dip. dip har ett l�ge n�r det automatiskt letar upp en rad f�r den anv�ndaren som k�rde programmet och konfigurerar den seriella linjen som en SLIP-l�nk baserat p� informationen som den hittar i filen /etc/diphosts. Detta l�ge aktiveras genom att k�ra dip som diplogin. Detta �r d�rf�r s�ttet p� vilket man anv�nder dip som en SLIP-server, genom att skapa s�rskilda konton d�r diplogin anv�nds som login-shell. Det f�rsta som skall g�ras �r att g�ra en symbolisk l�nk som f�ljer: # ln -sf /usr/sbin/dip /usr/sbin/diplogin Sedan beh�ver man l�gga till rader i filerna /etc/passwd och /etc/diphosts. Raderna �r formaterade som f�ljer: F�r att konfigurera Linux som en SLIP-server med dip beh�ver man skapa n�gra s�rskilda SLIP-konton f�r anv�ndare, d�r dip anv�nds som login- shell. En f�reslagen konvention �r att l�ta alla SLIP-konton b�rja med ett stort `S', tex `Sfredm'. Ett exempel p� en rad f�r en SLIP-anv�ndare i /etc/passwd ser ut s� h�r: Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin ^^ ^^ ^^ ^^ ^^ ^^ ^^ | | | | | | \__ diplogin as login shell | | | | | \_______ Home directory | | | | \____________ User Full Name | | | \_________________ User Group ID | | \_____________________ User ID | \_______________________________ Encrypted User Password \__________________________________________ Slip User Login Name N�r anv�ndaren har loggat in s� utf�r programmet login, om det hittar och verifierar anv�ndaren ok, kommandot diplogin. dip, n�r det k�rs som diplogin, vet automatiskt att det skall anv�ndas som ett login- shell. N�r det startas som diplogin s� �r det f�rsta programmet g�r att anv�nda funktionsanropet getuid() f�r att f� anv�ndarid f�r den som k�rde programmet. Det letar sedan i filen /etc/diphosts efter den f�rsta raden som passar in p� det anv�ndaridt eller namnet p� den tty- enhet som anslutningen kom fr�n och konfigurerar sig sj�lv d�refter. Genom att v�lja om en anv�ndare skall f� en rad i filen /etc/diphosts eller om anv�ndaren skall ges den generella konfigurationen s� kan man bygga sin server p� s� s�tt att man kan ha en blandning av statiskt och dynamiskt tilldelade adresser f�r anv�ndarna. dip kommer automatiskt att l�gga till en Proxy ARP s� detta beh�ver man inte bry sig om att g�ra manuellt. 6.28.2.1. Att konfigurera /etc/diphosts Filen /etc/diphosts anv�nds av dip f�r att hitta konfigurationer f�r avl�gsna datorer. Dessa avl�gsna datorer kan vara anv�ndare som ringer in till en Linuxbox eller de kan vara datorer som man ringer till ifr�n Linuxboxen. Det generella formatet p� /etc/diphosts �r som f�ljer: .. Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296 .. F�lten �r: 1. login name: som returnerat av getpwuid(getuid()) eller tty namn. 2. oanv�nd: kompatibilitet med /etc/passwd 3. Remote Address: IP-adress f�r den anslutande datorn, antingen numeriskt eller med namn 4. Local Address: IP-adress f�r denna dator, numeriskt eller med namn 5. Netmask: i punkterad decimal notation 6. Comment field: skriv vad du vill h�r. 7. protocol: Slip, CSlip osv. 8. MTU: decimalt tal Ett exempel p� en rad i /etc/net/diphosts f�r en SLIP-anv�ndare kan vara: Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296 som specificerar en SLIP-l�nk med en avl�gsen adress 145.71.34.2 och MTU p� 296, eller: Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006 som specificerar en cSLIP-l�nk med avl�gsen adress 145.71.34.1 och MTU p� 1006. D�rf�r s� skall alla anv�ndare som man vill till�ta en statiskt allokerad adress ha en rad i /etc/diphosts. Om man vill att anv�ndare som ansluter till en viss port skall f� en dynamisk allokerad adress s� m�ste man ha en rad f�r tty-enheten och ingen rad f�r anv�ndaren. Man skall komma ih�g att konfigurera �tminstonde en rad f�r varje tty- enhet som anv�nds f�r SLIP s� att det s�kert finns en passande konfiguration oavsett vilket modem de ringer in p�. N�r anv�ndare loggar in f�r de en normal login och password prompt vid vilken de skall skriva in sitt SLIP-login och password. Om dessa verifieras ok s� kommer anv�ndaren inte se n�gra s�rskilda meddelanden och anv�ndarna skall endast byta till SLIP-l�ge p� sin sida. Anv�ndaren b�r ha m�jlighet att ansluta ok och bli konfigurerad med relevanta parametrar fr�n filen diphosts. 6.28.3. SLIP server med paketet dSLIP Matt Dillon <dillon@apollo.west.oic.com> har skrivit ett programpaket som inte bara ringer in utan ocks� ringer ut med SLIP. Matts paket �r en kombination av sm� program och scripts som hanterar ens anslutningar. F�r detta m�ste man ha tcsh eftersom �tminstone ett av scripten kr�ver detta. Matt tillhandah�ller en bin�r kopia av verktyget expect eftersom �ven det beh�vs av en del av scripten. Man beh�ver antagligen ha lite erfarenhet med kommandot expect f�r att lyckas l�nka in ok, men l�t inte detta avskr�cka. Matt har skrivit bra med installationsinstruktioner i README-filen s� jag t�nker inte upprepa dem. Man kan h�mta dSLIP fr�n dess hemsida p�: apollo.west.oic.com /pub/linux/dillon_src/dSLIP203.tgz eller fr�n: sunsite.unc.edu /pub/Linux/system/Network/serial/dSLIP203.tgz L�s filen README och skapa raderna i /etc/passwd och /etc/group innan make install. 6.29. STRIP (Starmode Radio IP) Kompileringsalternativ f�r K�rnan: Network device support ---> [*] Network device support .... [*] Radio network interfaces < > STRIP (Metricom starmode radio IP) STRIP �r ett protokoll som designats speciellt f�r en typ av Metricom radiomodem f�r ett forskningsprojekt p� Stanford University som heter MosquitoNet Project <http://mosquitonet.Stan� ford.EDU/mosquitonet.html>. Det finns mycket intressant att l�sa d�r, �ven om man inte �r direkt intresserad av projektet. Metricom radiorna kopplas till en seriell port, anv�nder m�nga olika tekniker och klarar av en �verf�ringshastighet p� ungef�r 100kbps. Information om Metricom radior kan f�s p�: Metricom Web Server <http://www.metricom.com/>. F�r n�rvarande s� st�ds inte STRIP av standardverktygen f�r n�tverk, s� man m�ste ladda hem n�gra specialdesignade verktyg fr�n MosquitoNets WWW-server. Detaljer om vad man beh�ver finns p�: MosquitoNet STRIP Page <http://mosquitonet.Stanford.EDU/strip.html>. En sammanfattning av konfigurationen �r att man anv�nder ett modifierat slattach program f�r att st�lla in den seriella enheten i STRIP-l�ge och sedan konfigurera den resulterande `st[0-9]'-enheten som om det var en Ethernet-enhet, men med en viktig skillnad. Av tekniska sk�l s� st�der inte STRIP ARP-protokollet, s� man m�ste konfigurera ARP-raderna f�r var och en av datorerna p� sitt subn�t manuellt. 6.30. Token Ring Enhetsnamn f�r Token Ring �r `tr0', `tr1' osv. Token Ring �r ett standardiserat LAN-protokoll fr�n IBM som undviker kollisioner med en mekanism som endast till�ter en station p� LANet att s�nda �t g�ngen. En `token' innehas av en station �t g�ngen och stationen som har `token' f�r lov att s�nda. N�r den har s�nt sin data s� skickar den `token' vidare till n�sta station. Token g�r runt mellan alla aktiva stationer, d�rav namnet `Token Ring'. Kompileringsalternativ f�r K�rnan: Network device support ---> [*] Network device support .... [*] Token Ring driver support < > IBM Tropic chipset based adaptor support Konfigurationen av Token Ring �r identisk med den som g�rs med Ethernet f�rutom att man anv�nder andra enhetsnamn. 6.31. X.25 X.25 �r ett paketswitchat protokoll som definieras av C.C.I.T.T. (en standardiseringsorganisation som erk�nns av de flesta telebolag i v�rlden). En implementation av X.25 och LAPB h�ller p� att utvecklas och de senaste 2.1.* k�rnor inkluderar detta arbete. Jonathon Naylor jsn@cs.nott.ac.uk leder utvecklingen och det har skapats en mailinglista f�r att diskutera �mnen relaterade till Linux X.25. F�r att prenumerera skall man skicka ett meddelande till majordomo@vger.rutgers.edu med texten "subscribe linux-x25" i meddelandekroppen. Tidiga versioner av konfigureringsverktygen kan h�mtas fr�n Jonathons ftp-sajt p� ftp.cs.nott.ac.uk <ftp://ftp.cs.nott.ac.uk/jsn/>. 6.32. WaveLan Enhetsnamn f�r WaveLan �r `eth0', `eth1', osv. Kompileringsalternativ f�r K�rnan: Network device support ---> [*] Network device support .... [*] Radio network interfaces .... <*> WaveLAN support WaveLan-kortet �r ett vitt spektrum av tr�dl�sa LAN-kort. Korten liknar Ethernet-kort mycket och konfigureras p� ungef�r samma s�tt. Mer information om WaveLan finns p� Wavelan.com <http://www.wavelan.com/>. 7. Kablage De som �r h�ndiga med en l�dpenna kanske vill bygga egna kablar f�r att koppla ihop Linuxburkar. F�ljande figurer b�r vara till hj�lp f�r detta. 7.1. Seriell NULL-modem kabel. Alla NULL-modem kablar �r inte likadana. M�nga NULL-modem kablar g�r inte mer �n att lura datorn att tro att alla signaler finns och byter s�nd och ta emot data pinnarna. Detta fungerar men betyder att man m�ste anv�nda fl�deskontroll i mjukvara (XON/XOFF) vilket inte �r s� effektivt som fl�deskontroll i h�rdvara. F�ljande kabel har b�sta m�jliga signalering mellan datorer och till�ter anv�ndning av fl�deskontroll i h�rdvara (RTS/CTS). Pin Name Pin Pin Tx Data 2 ----------------------------- 3 Rx Data 3 ----------------------------- 2 RTS 4 ----------------------------- 5 CTS 5 ----------------------------- 4 Ground 7 ----------------------------- 7 DTR 20 -\--------------------------- 8 DSR 6 -/ RLSD/DCD 8 ---------------------------/- 20 \- 6 7.2. Parallellportskabel (PLIP kabel) Om man t�nker anv�nda PLIP-protokollet mellan tv� maskiner s� fungerar f�ljande kabel oavsett vilken typ av parallellportar man har. Pin Name pin pin STROBE 1* D0->ERROR 2 ----------- 15 D1->SLCT 3 ----------- 13 D2->PAPOUT 4 ----------- 12 D3->ACK 5 ----------- 10 D4->BUSY 6 ----------- 11 D5 7* D6 8* D7 9* ACK->D3 10 ----------- 5 BUSY->D4 11 ----------- 6 PAPOUT->D2 12 ----------- 4 SLCT->D1 13 ----------- 3 FEED 14* ERROR->D0 15 ----------- 2 INIT 16* SLCTIN 17* GROUND 25 ----------- 25 Anm�rkningar: � Anslut inte pinnarna som �r markerade med en asterisk `*'. � Extra jordning �r 18,19,20,21,22,23 och 24. � Om kabeln man anv�nder har en metallsk�rmning, s� skall den anslutas till metallskalet p� DB-25 endast p� en sida. Varning: en felkopplad PLIP-kabel kan f�rst�ra kontrollerkortet. Var f�rsiktig och dubbelkolla alla anslutningar. �ven om man kan anv�nda PLIP-kablar �ver l�nga avst�nd s� skall man undvika det om man kan. Specifikationerna f�r kabeln till�ter l�ngder p� ungef�r en meter. Var f�rsiktig med l�nga PLIP-kablar eftersom k�llor f�r stark elektromagnetisk str�lning (tex blixtar, elkablar och radios�ndare) kan st�ra och till och med skada kontrollerkortet. Om man verkligen vill ansluta tv� datorer �ver l�nga avst�nd s� b�r man titta p� m�jligheterna med Ethernet och anv�nda tunn koaxialkabel. 7.3. 10base2 (tunn koax) Ethernet-kabel 10base2 �r en kabelstandard f�r Ethernet som specificerar en 52 ohms koaxialkabel med en diameter p� ungef�r 5 millimeter. Det finns ett par viktiga regler att komma ih�g n�r man skall koppla ihop maskiner med 10base2 kablar. Det f�rsta �r att man m�ste anv�nda terminatorer i b�da �ndar av kabeln. En terminator �r ett 52 ohms motst�nd som ser till att signalen absorberas, och inte reflekteras, n�r den n�r slutet av kabeln. Utan en terminator i b�da �ndar av kabeln s� kommer man att m�rka att n�tverket �r op�litligt eller inte fungerar alls. Normalt s� anv�nder man `T-korsningar' f�r att koppla ihop maskinerna, s� man f�r n�got som liknar: |==========T=============T=============T==========T==========| | | | | | | | | ----- ----- ----- ----- | | | | | | | | ----- ----- ----- ----- d�r en `|' i b�da �ndar representerar en terminator, `======' repre� senterar en l�ngd med koaxialkabel med BNC-kontakter i b�da �ndar och `T' representerar en `T-korsning'-kontakt. Man skall f�rs�ka att h�lla l�ngden p� kabeln mellan `T-korsningen' och Ethernet-kortet s� kort som m�jligt, det b�sta �r om `T-korsningen' �r kopplad direkt p� Eth� ernet-kortet. 7.4. Tvinnad tv�par Ethernet-kabel. Om man bara har tv� Ethernet-kort med tvinnad tv�par anslutning som man vill koppla ihop s� m�ste man inte ha en hub. Man kan koppla ihop korten direkt. Ett diagram som visar hur man g�r detta finns i Ethernet-HOWTO <Ethernet-HOWTO.html>. 8. Terminologi i detta dokument. F�ljande �r en lista med de viktigaste termerna som anv�nds i detta dokument. ARP Detta �r en f�rkortning av Address Resolution Protocol och det �r hur en maskin p� ett n�tverk associerar en IP-adress med en h�rdvaruadress. ATM Detta �r en f�rkortning av Asynchronous Transfer Mode. Ett ATM- n�tverk packar data i block med en standardstorlek vilka det sedan kan skicka effektivt fr�n punkt till punkt. ATM �r ett kopplingsorienterat n�tverk med virtuella kretsar. klient Detta �r vanligtvis mjukvaran i den �ndan av systemet d�r anv�ndaren finns. Det finns undantag, till exempel i X11 f�nstersystem s� �r det egentligen servern som finns hos anv�ndaren och klienten k�r p� en annan maskin. Klienten �r programmet eller delen av systemet som anv�nder en tj�nst som tillhandah�lls av servern. I fallet med peer to peer system, som slip eller ppp, s� �r den dator som startar anslutningen klienten och den andra datorn servern. datagram Ett datagram �r ett diskret paket med data och huvuden, som inneh�ller adresser, som �r en transmissionsenhet �ver ett IP- n�tverk. Detta kan ocks� kallas f�r `paket' i vissa sammanhang. DLCI Detta �r en f�rkortning av Data Link Connection Identifier och anv�nds f�r att identifiera en unik virtuell punkt till punkt anslutning via ett Frame Relay n�tverk. DLCIs delas normalt ut av den som tillhandah�ller Frame Relay n�tverket. Frame Relay Frame Relay �r en n�tverksteknik som �r anpassad f�r att b�ra trafik som �r av oregelbunden natur. N�tverkskostnader reduceras genom att flera Frame Relay kunder delar samma n�tverkskapacitet och f�rv�ntas anv�nda kapaciteten vid olika tidpunkter. h�rdvaruadress Detta �r ett nummer som unikt identifierar en dator i ett n�tverk p� det l�nklagret. Exempel p� detta �r Ethernetadresser och AX.25-adresser. ISDN Detta �r en f�rkortning av Integrated Services Digital Network. ISDN tillhandah�ller ett standardiserat s�tt p� vilket telebolag kan erbjuda antingen data- eller r�sttj�nster till en kund. Tekniskt sett �r ISDN ett datan�tverk med virtuella kretsar. ISP Detta �r en f�rkortning av Internet Service Provider (internetleverant�r). Detta �r de organisationer eller f�retag som erbjuder n�tverksanslutningar till Internet. IP-adress Detta �r ett nummer som unikt identifierar en TCP/IP dator p� ett n�tverk. Adressen �r 4 bytes l�ng och representeras ofta i vad som heter "punkterad decimal notation", d�r varje byte skrivs f�r sig och de olika bytearna �r separerade med en `.'. MTU Detta �r en f�rkortning av Maximum Transmission Unit. MTU �r en parameter som best�mmer den st�rsta datagramstorleken som kan �verf�ras av ett IP-gr�nssnitt utan att det beh�ver delas upp i flera mindre delar. MTU b�r vara st�rre �n det st�rsta datagram som man vill skicka ofragmenterat. Notera att detta bara hindrar lokal fragmentering, om datagrammet passerar en l�nk med en mindre MTU s� kan det fragmenteras d�r. Typiska v�rden f�r MTU �r 1500 bytes f�r Ethernet och 576 bytes f�r SLIP. route Routen (eller rutten) �r den v�g som datagrammen f�rdas genom n�tverket f�r att n� sin destination. server Detta �r vanligtvis den mjukvara eller del av systemet som �r avl�gset fr�n anv�ndaren. Servern erbjuder tj�nster till en eller flera klienter. Exempel p� servrar �r ftp, Networked File System och Domain Name Server. I fallet med peer to peer system, som slip eller ppp, s� �r den dator som startar anslutningen klienten och den andra datorn servern. 9. Linux f�r en ISP? Om man �r intresserad av att anv�nda Linux f�r ISP-syften s� rekommenderar jag att titta p� Linux ISP homepage <http://www.anime.net/linuxisp/> f�r en bra lista med pekare till information som kan vara anv�ndbar. 10. Tillk�nnagivanden Jag skulle vilja tacka f�ljande personer f�r bidrag till detta dokument (ingen speciell ordningsf�ljd): Terry Dawson, Axel Boldt, Arnt Gulbrandsen, Gary Allpike, Cees de Groot, Alan Cox, Jonathon Naylor, Claes Ensson, Ron Nessim, John Minack, Jean-Pierre Cocatrix, Erez Strauss. 11. Copyright. NET-3-HOWTO, information om hur man installerar och konfigurerar n�tverksst�d f�r Linux. Copyright (c) 1997 Terry Dawson. Detta program �r fri mjukvara; du kan distribuera det och/eller modifiera det under reglerna som finns i GNU General Public License s� som de publiceras av Free Software Foundation; antingen version 2 av licensen, eller (ditt eget val) n�gon senare version. Detta program distribueras med f�rhoppningen att det skall vara anv�ndbart, men UTAN N�GON GARANTI;se GNU General Public License f�r fler detaljer. Du skall ha f�tt en kopia av GNU General Public License tillsammans med detta program; om inte, skriv till: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.