Arvuti võrgutoetuse seadistamise kuidas-teha

Allikas: Kuutõrvaja

Sissejuhatus

Et arvutid saaks omavahel andmeid vahetada, ühendatakse nad tavaliselt võrku. Tundub, et kõige massilisemalt kasutatakse selleks kohtvõrkudes Etherneti tehnoloogiat, so keerupaari- või koaksiaalkaablit ning sobivat võrgukaarti.

Etherneti võrk võimaldab TCP/IP protokolli kasutades andmevahetust kiirusega 10 - 100 Mb/s.

Käesolevas palas kirjeldatakse mida on vaja teha, et lülitada Linuxi arvuti olemasolevasse IPv4 TCP/IP võrku.

Riistvara

Eelistada tuleks mudeleid, mille kohta on kindlalt teada, et Linuxi kerneli jaoks on sobiv draiver olemas, näiteks Inteli ja Macronixi kaardid. Teadaolevalt toetatud võrgukaartide mudelid on kirjas Linux Hardware HOW-TOs. Kui te kavatsete ise võrgukaardi toega tuuma kompileerida, siis uuriga tuuma lähtetekside puus katalooge

drivers/net
Documentation/networking

Võrgukaardi juures peab tähele panema, et tal oleks küljes soovitud kontakt: BNC - koaksiaalkaabli jaoks (siis piirduvad kiirused 10 Mb/s) UTP (ingl.k. - unshielded twisted pair) - keerupaari jaoks (kiirused kas 10 või 100 Mb/s)

Nn. combo kaartidel on lisaks BNC ja UTP kontaktile lisaks AUI (Attacment Unit Interface). Vahel saab ühendada meediakonverteri võrgukaardi külge kasutades AUId.

Enamus kaasaegseid võrgukaarte toodetakse PCI siinile. Nende kasutamine on suhteliselt hõlbus kuna pole tarvis tegeleda kaardile vajalike ressursside (katkestus, I/O mälupiirkond) määratlemisega. ISA kaartidel tuleb need väärtused tavaliselt käsitsi ära näidata. Pala viimastes punktides kirjeldatakse ISA võrgukaartide seadistamise küsimusi.

Võrgukaarte ja nende draivereid identifitseeritakse tavaliselt võrgukaardi kivi markeeringu järgi. Paremal juhul on kaardi kohta konkreetselt teada, et see on näiteks 3Comi ISA kaart, mudel 3c509b.

Päris suur hulk odavaid kaarte on nn NE2000 ühilduvad, nii PCI kui ISA kaardid. Need kaardid töötavad, kuid standardid, mille järgi nad toimivad on vananenud. NE2000 kaarte ei sobi kasutada suure võrgukoormuse korral, küll aga ajavad nad asja ära rahulikul juhul seda enam, et nad on suhteliselt odavad.

Tarkvara

Võrgu kasutamiseks on tarvis kolme sorti tarkvara Linuxi tuuma teie võrgukaardi mudelile sobivat draiverit arvuti võrgutoe seadistamise programme, näiteks ifconfig, hostname, route rakendusprogramme, näiteks Telnet, Netscape

Jätkame eeldades, et teil on sobiv draiver ja programmid olemas ning piisab kaardi paigaldamisest ja seadistamisest. Pala viimastes punktides selgitame kuidas draiverit kompileerida.

Draiver

Ennekõike on võrgukaardi kasutamiseks tarvis, et Linuxi tuumas sisalduks kas otse või moodulina vastav draiver. Draiverit on soovitav kasutada moodulina, kuna nii väheneb tuuma suurus ning kaardi väljavahetamisel piisab asendada vaid vastava draiveri moodul. Distributsioonidega kaasatulevatel tuumad kasutavad reeglina võrgukaartide draivereid moodulitena. Tõsi, praktiliselt on lihtsam kaarti tööle seada, kui draiver sisaldub otse tuumas. Kuigi suur hulk levinud võrgukaarte on standardse tuuma poolt toetatud, tuleb mõnikord valmis olla uue tuuma loomiseks.

Suhteliselt harva, kuid esineb olukordi, kus võrguseadme tootja ei avalda seadme spetsifikatsiooni. Arusaadavalt ei saa siis Linuxi tuuma lähtetekstidesse lisada vastava kaardi toetust. Samal ajal võimaldab tootaja oma veebikohast kopeerida draiverit sisaldava stabiilse Linuxi tuuma mooduli.

Arvuti võrgutoe konfiguratsiooniprogrammid

Omaette kategooria moodustab tarkvara, millega saab arvuti võrguseadistusi konfigureerida. Tüüpiliselt on iga Linuxi distributsiooni koostajad pidanud vajalikuks nuputada välja iseloomuliku vahendi

RedHat - linuxconf 
Mandrake - Drake 
Slackware - netconfig 

Sisuliselt redigeeritakse ikka enam-vähem samu konfiguratsioonifaile. Linuxile on üldiselt iseloomulik, et võrgutoe konfiguratsiooni muutmisel järel (näiteks IP aadressi muutmine) ei ole tarvis arvutit algkäivitada.

Käesolevas KTs kirjeldame peaasjalikult võrguseadistuste muutmist otse vastavate konfiguratsioonifailide redigeerimise teel kuna see on kõige otsekohesem lähenemine. Rakendusprogrammid

Võrgutoetus on Linuxi süsteemi loomulik osa ning reeglina installeeritakse vaikimisi minimaalne hulk selleks vajalikke programme. Näiteks, piisab Slackware Linuxi puhul valida N seeriast paketid tcp1 ja tcp2. Seal sisalduvad programmid masina võrguseadmete konfigureerimiseks (ifconfig, route), masina nime omistamiseks (hostname) ning Telneti ja FTP kliendid.

Muu võrgu teenusteid puutuv tarkvara, nii serverid kui ka kliendid tuleb eraldi vastavatest pakettidest või lähtetekstidest paigaldada.

Võrgukaardi paigaldamine ja tuuma poolt äratundmine

Esmalt tuleb kaart füüsiliselt arvutisse paigaldada. Selleks lülitage arvutil toide välja, eemaldage toitejuhe ning seejärel korpus. Leidke sobiv vaba siin ning asetage kaart pessa. Vältige kaardi metallkontaktide puutumist ning tegutsege tundliku jõuga. Enne asja juurde asumist on arukas enda staatiline laeng maandada puutudes mõnda maandatud eset, näiteks kui arvuti pole voolu all aga toimiva maandusega toitejuhe on küljes, siis arvuti shassiid. Kindlasti on viga poole asjakorralduse ajal villast kampsunit selga panna või ära võtta!

Käivitage arvuti. Seejärel tuleb teha kindlaks, kas olemasolev Linuxi kaardi nö ära tunneb ja teada saada seadme nimi. Kui arvutis on vaid üks võrgukaart, on seadme nimeks eth0. Kaardi draiver on otse tuuma kompileeritud

Kui kaardi draiver on otse tuumas olemas, siis tunneb Linux ühe ISA või PCI võrgukaardi automaatselt ära. Peale masina käivitamist veenduge vaadates programmiga dmesg algkävitumisteateid, kui näiteks leiduvad sarnased read

bash# dmesg | grep eth
eth0 3x509 at 0x320 tag 1 BNC port, address 00 a0 24 1d 19 57, IRQ 10.

Näites esineb 3Comi võrgukaart mudel 3c509 seadmena eth0 ning on ära tuntud: IO mälupiirkonna algusaadress on kuueteistkümnendsüsteemis 320 mida märgitakse alustades 0x'ga. kasutatakse BNC transiiverit so koaksiaalpistikut kaardi raua ehk MAC aadress on esitatud samuti kuueteistkümnendsüsteemis väärtusega 00 a0 24 1d 19 57 kaart kasutab katkestust number 10 (IRQ 10) Kaardi draiver on kasutada tuuma moodulina

Reeglina distributsiooniga kaasa tulevasse tuuma otse võrgukaartide draivereid ei kompileerita, nad on kasutada tuuma moodulitena.

PCI kaardi puhul piisab laadida sobiv kerneli moodul, näiteks PCI NE2000 kaartide puhul

bash# modprobe ne2k-pci

ning dmesgi tulevad sarnased teated

eth0 RealTek RTL-8029 found at 0xb000, IRQ 5, 00:80:AD:B7:EC:1F.

ISA kaarte soovitatakse kasutada fikseeritud ressurssidega so mitte-Plug-and-Play rezhiimis. Tavaliselt avastab draiver automaatselt, milline IO aadress ja katkestus on kaardile omistatud. Näiteks 3Comi 3c509b mudel

bash# modprobe 3c509

Teinekord tuleb siiski laadides sobivat kerneli moodulit näidata lisaks argumentidena ka kasutatavad ressursid, näiteks NE2000 kaartdi puhul, mille IO=0x300 ja IRQ=10

bash# modprobe ne io=0x300 irq=10

Kui te teate oma kaardi mudelit, kuid mitte tema draiverit sisaldava mooduli nime, siis saab seda ära arvata uurides kataloogi /lib/modules/tuuma.versioon/net sisu

3c509 - 3Com 3c509 
3c59x - 3Com 3c590, 3c900 
ne - ISA NE2000 ühilduvad 
ne2k-pci - PCI NE2000 ühilduvad, Marconix, Realtek 8029 
eepro100 - Inteli EtherExpress Pro 100 
rtl8139 - Realtek 8139 

Moodulid laaditakse traditsiooniliselt algäivitusskriptis /etc/rc.d/rc.modules, kuid seda võib samahästi teha näiteks failis /etc/rc.d/rc.local. Moodulite automaatseks laadimiseks algkäivitusel kirjutaga ühte neist failidest sobivate argumentidega modprobe käsk.

Isetehtud tuuma eeliseks võib olla muu hulgas see, et võrgukaardi draiverit saab tuuma konfigureerimisel menüüst kaardi mudeli nime järgi valida ning selle otse tuuma kompileerida. Siis jääb sobivat draiverit sisaldava mooduli leidmise vaev ära.

Võrgukaardi seadistamine

Kaardi seadistamisel seostatakse võrguseadmega, näiteks eth0

  • IP number
  • võrgumask (netmask)
  • leviaadress (broadcast)

Tihtipeale avastab Linuxi draiver automaatselt õige meedia so BNC või UTP, vajadusel konfigureerige võrgukaart spetsiaalse kaardi mudelile vastava DOSu konfigureerimisprogrammiga.

Näiteks konfigureerime kaardi IP numbriks 193.40.223.98 ning töötama leviaadressiga 193.40.223.111 ning võrgumaskiga 255.255.255.240 bash# ifconfig eth0 193.40.223.98 broadcast 193.40.223.111 netmask 255.255.255.240

Rangelt võttes piisab võrguseadme konfigureerimiseks näidata IP aadress ning võrgumask millest on leviaadress üheselt arvutatav. Siiski soovitatakse näidata ka võrgumask, eriti kaardi konfiguratsiooni muutmisel.

Nii kaardile omistatud omadusi saab vaadata käsuga ifconfig

bash# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:A0:24:75:3E:E7  
          inet addr:193.40.223.98  Bcast:193.40.223.111  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:218454 errors:51 dropped:51 overruns:0 frame:88
          TX packets:361154 errors:0 dropped:0 overruns:0 carrier:13593
          collisions:15331 txqueuelen:100 
          Interrupt:10 Base address:0x1060 

Antud juhul on näha, et kaart töötab (RUNNING) ning toodud on muidugi ka seadistus-parameetrid (inet addr:193.40.223.98 Bcast:193.40.223.111 Mask:255.255.255.240).

Võrguseadme peatamiseks tuleb anda käsk

bash# ifconfig eth0 down

ning viimati-konfigureeritud parameetritega taaskäivitamiseks käsk

bash# ifconfig eth0 up

Arvuti võrgutoe seadistamine

Kui tuum tundis võrguseadme ära on mõtet siit jätkata.

Lisaks võrgukaardile konfigureerimisele st sobiva IP aadressi, broadcasti ja netmaski omistamisele peab olema näidatud masina nimi nimeserveri IP aadress ruutingu tabel, sh vaiketee

Peale selle reguleerivad masina käitumist võrgus tavaliselt tcpwrapperiga seotud reeglid ning IP paketifiltreering.

Nende parameetrite väärtusi saab ilmselt määrata sõltuvalt dirtributsioonist iseloomulike vahenditega, näiteks linuxconf. Kindel viis seda teha on andes vastavaid käske ja redigeerides otse olulisi faile, näiteks Slackware Linuxi puhul

Konfiguratsioonifailid

Alltoodud failide sisu peab vastama masina konfiguratsioonile

masina nimi failis /etc/HOSTNAME

bash# cat /etc/HOSTNAME
kalake.zoo.tartu.ee

masina enda IP aadress ja nimi failis /etc/hosts kusjuures esimeseks kirjutada täisnimi (kalake.zoo.tartu.ee) ning seejärel lühike vorm (kalake)

bash# cat /etc/hosts
127.0.0.1       localhost
193.40.223.98   kalake.zoo.tartu.ee kalake

nimeserver failis /etc/resolv.conf

bash# cat /etc/resolv.conf
search zoo.tartu.ee
nameserver 193.40.0.12

Esimene rida näitab, et kui pöördutakse mõne masina poole lühikese nimega, siis sellele lisatakse automaatselt lõppu zoo.tartu.ee. Näiteks sisestades telnet tuvike, toimub tegelikult pöördumine masina tuvike.zoo.tartu.ee poole. Andke järgnevad käsud masina võrguseadistuste määramiseks

Enne nende korralduste andmist redigeerige ülelkirjeldatud failide sisu sobivaks.

vaiketee määramine

bash# route add default gw 193.40.223.97

kus 193.40.223.97 on teie kohtvõrgu vaikelüüsi aadress.

masina nime muutmine

bash# hostname kalake

tcpwrapper

Tänapäeval tundub olevat tcpwrapperite kasutamine inetd vahendusel telneti ja ftp serverite puhul standardne. tcp wrapper (ingl. k. pakend) on programm, mis serveris kliendi pöördumisel enne kui server ise. Tavaliselt saab wrapperi abil logida ja kontrollida wraperdatud serverite kasutust. Näiteks keelata teatud masinatest Telneti serveri kasutamist.

Kõikelubav tpcwrapperi konfiguratsioon on selline

failis /etc/hosts.allow

ALL:ALL

fail /etc/hosts.deny on tühi.

Võrguomaduste seadistamisel on kaval vaadata naaberterminalil süsteemi logi Syslog

bash# tail -f /var/log/messages

IP paketifilter

IP paketifilter kontrollib läbi võrguseadmete andmevahetust. Kõikelubav konfiguratsioon tekib sellise skripti käivitamisel

#!/bin/sh
ipchains -F input
ipchains -F output
ipchains -F forward 

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward ACCEPT

Arvuti võrgutoe automaatne seadistamine algkäivitamisel

Praktiliselt kirjutatakse võrgukaardi seadistamiseks vajalikud käsud süsteemi algkäivitusskripti. Näiteks faili /etc/rc.d/rc.local mis võib välja näha selline

#!/bin/sh
ipchains -F input
ipchains -F output
ipchains -F forward

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward ACCEPT 

ifconfig eth0 193.40.223.98 broadcast 193.40.223.111 netmask 255.255.255.240
route add default gw 193.40.223.97

Võrgkaardi draiveri kompileerimine

Kui kasutada distributsiooniga kaasa tulevat tuuma, siis on sellega komplektis hulga võrgukaartide draiverid, tõenäoliselt ka teie oma. Kopmileerides mingil põhjusel lähteteks uue tuuma, peab valima ka vajaliku võrgukaardi draiveri.

Võrgukaardi draiverit saab kasutada otse tuuma kompileerituna või eraldi moodulina, millele vastab üks fail kataloogis /lib/modules/kerneli.versioon/net.

Näiteks kaardi 3c509b draiveri kasutamiseks märkige muude valikute seas Network device support --->

  Ethernet (10 or 100Mbit)  --->
     [ * ] Ethernet (10 or 100Mbit) 
     [ * ] 3COM cards 
     < > 3c501 support (NEW)
     < > 3c503 support (NEW)
     < > 3c505 support (NEW)
     < * > 3c509/3c579 support (NEW)

Kui tärni asemele valida 'M', siis kompileeritakse draiver moodulina.

Seejärel kompileerige tuum ja moodulid tavapärasel moel ning võtke uus tuum lilo'ga kasutusele.

Võrgukaardi ressursside konfigureerimine

Tavaliselt seostub iga seadmega sh võrgukaardiga katkestus ning reeglina iga ISA võrgukaart vajab endale süsteemis omaette katkestust. PCI võrgukaardid oskavad teinekord omavahel jagada ühte katkestust.

PCI võrgukaardid konfigureeruvad automaatselt ning BIOS eraldab neile oma parema äranägemise järele sobivad ressursid.

Isa kaarte saab tavaliselt konfigureerida tööle kahes rezhiimis: fikseeritud - kasutaja salvestab spetsiaalse DOSu utiliidiga kaardi EEPROM mällu kaardi katkestuse ja IO aadressi PnP (Plug and Play) - kaart töötab PnP rezhiimis ja tema ressursid eraldatakse automaatselt

Soovitame võrgukaartide PnP rezhiimis kasutamist võimalusel välitida. Kui see on möödapääsmatu, siis lugege ISA PnP seadmete kasutamise kohta siit. PnP Toolsi abil määratletakse arvuti käivitamise järgselt milliseid ressursse seade kasutama hakkab. Põhimõtteliselt toimivad need määratlused ainult selleks arvuti töökorraks.

Niisiis, järgnev kehtib fikseeritud ressurssidega ISA võrgukaardi kohta, 3Comi 3c509b mudeli näitel.

Kaardi ressursid salvestatakse kaardi EEPROMi spetsiaalse sellele mudelile sobiva DOSi programmiga 3C5x9CFG.EXE, mis sisaldub tootja kodulehelt kopeeritavas Windowsi draiverite komplektis. Lisaks tuleb arvuti BIOSis vabastada vastavad ressursid.

Võrgukaardi ressursside konfigureerimine mudelile sobiva utiliidiga

Kaardi konfigureerimine toimub konkreetsele kaardi mudelile spetsiaalse reeglina DOSi utiliidiga. Vajadusel näidake esmalt, et kaarti kasutatakse fikseeritud (jumperless) rehziimis ning lisaks omistage kaardile eeldatavasti süsteemis vakantsed IRQ ja IO väärtused.

Näiteks 3c509b kaardi puhul näeb selle DOSi utiliidi konfiguratsioonimenüü välja selline

                            Adapter Configuration
  ================= EtherLink III Adapter Configuration ============================
    I/O Base Address			320h
    Interrupt Request Level		10
    Boot PROM				Disabled 
    Transciever Type			Auto Select
    Network Driver Optimization	Windows or OS/2 Client
    Maxium Modem Speed			No Modem
    Plug and Play Capability		Disabled


Olulised valikud

  • I/O Base Address - IO vahemiku algusaadress
  • Interrupt Request Level - katkestus
  • Transciever Type - meedia tüüp, automaatne arusaamine (võimalikud muud valikud on selle kaardi puhul BNC, AUI, TP - Twisted Pair ehk keerupaar)
  • Maxium Modem Speed - modemilisus :)
  • Plug and Play Capability - kaardi töörezhiim

Tavaliselt konfigureeritakse võrgukaart kasutama IO aadresse algusega näiteks 0x280, 0x300 või 0x320. Kui helikaarti ei kasutata on enamasti vabad katkestused 5, 9 ja 10.

Tehke sobivad muutused ja salvestage need kaarti. Järgmisel arvuti käivitamisel püüab kaart kasutada neid väärtusi.

Arvuti ressursside jagamine BIOSis

Sarnasest sektsioonist PnP/ISA-Legacy tuleb määrata ISA jumperless kaartidele vastavad IRQd ISA-Legacy olekusse ning ülejäänud PnP peale.

Resources Controlled by         : manual 
Reset Configuration Data        : disabled 

IRQ3  assigned to                : Legacy ISA  (serial hiir) 
IRQ4  assigned to                : Legacy ISA  (väline modem) 
IRQ5  assigned to                : ISA PnP   
IRQ7  assigned to                : ISA PnP 
IRQ9  assigned to                : ISA PnP 
IRQ10 assigned to                : Legacy ISA  (võrgu kaart) 
IRQ11 assigned to                : ISA PnP 
IRQ12 assigned to                : ISA PnP 
IRQ14 assigned to                : ISA PnP 
IRQ15 assigned to                : ISA PnP 

Sel moel ei jaga BIOS automaatselt ISA kaartidele mõeldud IRQsid PCI seadmetele välja, näites katkestused 3, 4, 10. Mitme võrgukaardi kasutamine

Vajadus ühte arvutisse paigaldada mitu võrgukaarti tekib näiteks siis, kui te kasutate masinat ruuterina. Praktiliselt toetab Linux nii paljusid võrgukaarte kui te neid suudate arvutisse füüsiliselt paigaldada ja teil jätkub katkestusi.

Võrguseadmete nimeks saavad eth0, eth1, eth2 jne. Kasutajal pole praktiliselt väga midagi parata milline nimi millise füüsilise kaardiga seostatakse. Kasutage taas dmesgi teateid saamaks aru milline seade millisele kaardile vastab või lihtsalt proovige järele. Näiteks saab selliseid teateid, kui masinasse on ühendatud neli võrgukaarti: PCI RTL 8029, PCI 3c900 ja kaks ühesugust ISA 3c509b mudelit

bash# dmesg | grep eth
eth0: 3Com 3c900 Cyclone 10Mbps Combo at 0xa800,  00:10:5a:3a:62:80, IRQ 7
eth1: RealTek RTL-8029 found at 0xb000, IRQ 5, 00:80:AD:B7:EC:1F.
eth2: 3c509 at 0x320 tag 1, BNC port, address  00 a0 24 1d 19 57, IRQ 10.
eth3: 3c509 at 0x300 tag 2, BNC port, address  00 a0 24 6b dd fb, IRQ 11.

Võrgukaartide draiverid on otse tuumas

Kui kaardi draiver on kompileeritud otse tuuma, siis toimub PCI ja ISA kaartide kasutamine erinevalt.

Kasutades ainult PCI võrgukaarte, avastab Linux automaatselt kõik kaardid. Kui te kasutate lisaks PCI kaartidele ka ISA kaarte, nagu ülaltoodud näites, siis lisage LILO konfiguratsioonifaili /etc/lilo.conf selline append rida append="ether=0,0,eth0 ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"

kus parameetri ether taga on komadega eraldatud võrgukaardi katkestus, IO aadress ning seadme nimi (näiteks ether=10,0x320,eth0). Näidates katkestuse ja IO väärtuseks nullid, püütakse kaart automaatselt konfigureerida, tavaliselt see toimib.

Tervikuna võiks näha mitme kaardi kasutamisele vastav lilo.conf välja selline

boot = /dev/sda
delay = 50
vga = normal
image = /t17
root = /dev/sda2
label = t17 
append = "ether=0,0,eth0 ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"
read-only

Võrgukaartide draivereid kasutatakse tuuma moodulitena

Kui võrgukaardi draivereid kasutatakse tuuma moodulitena, toimub PCI ja ISA kaartide kasutamine sarnaselt. Mõlemal puhul on vaja sobivat draiverit sisaldav moodul laadida. LILO konfiguratsioonifailis pole tarvis append parameetrit kasutada. Seadmete nimed omistatakse vastavalt moodulite laadimise järjekorrale.

Näiteks sellised käsud laadivad eelpooltoodud näites kasutatud neljale võrgukaardile vastavad draiverid

bash# modprobe ne2k-pci
bash# modprobe 3c59x
bash# modprobe 3c509

Pange tähele, et kuigi me kasutame kahte nö 3c509 mooduli kaarti, piisab laadida see moodul vaid üks kord, mõlemad kaardid avastatakse.

Ruutimine

Soovides kasutada Linuxit ruuterina tuleb ilmselt kasutada vähemalt kahte võrgukaarti ning seada ruutingud. Näiteks seame 193.40.10.192/28 võrku suunduvad paketid liikuma läbi otse nähtava lüüsi 193.40.10.67 ning vaikelüüsiks masina 193.40.10.67

bash# route add -net 193.40.10.192 netmask 255.255.255.240 gw 193.40.10.67
bash# route add default gw 193.40.10.65