Omrežne nastavitve v Linuxu
Novejše distribucije Linuxa omogočajo uporabnikom preprosto spreminjanje omrežnih nastavitev v okenskem okolju. Poznamo pa tudi izviren in nekoliko zahtevnejši način postavljanja omrežja v tekstovnem načinu neposredno s sistemskima programoma ifconfig in route. Na voljo so tudi številne omrežne datoteke, ki se razlikujejo glede na distribucijo.
Linux pri zagonu naloži lastno podobo z diska v pomnilnik. Tam jo razširi in izvede vzpostavitev datotečnega sistema, upravnika pomnilniškega prostora in drugih ključnih delov sistema. Kot zadnji korak jedro Linuxa požene program init, ki prebere postavitveno datoteko /etc/initab. Ta datoteka usmeri program init v izvajanje zagonskih datotek v mapi /etc/rc.d, skupaj z datoteko za zagon omrežnih nastavitev /etc/rc.d/init.d/network.
Tak zagon omrežja je značilen za distribucijo Red Hat Linux. Pri distribuciji Suse Linux je datoteka za zagon omrežnih nastavitev v mapi /etc/init.d. Pravzaprav je na voljo bližnjica, ki mapo /etc/rc.d preusmeri v mapo /etc/init.d.
Datoteka za zagon omrežnih nastavitev izvaja številne naloge: nastavlja okoljske spremenljivke za identifikacijo računalnika, omogoča vklop/izklop izbir IP usmerjanja (forwarding) in drobitve (fragmentation), izvaja namestitev privzetega usmerjevalnika (router) ter aktivira omrežne naprave z uporabo sistemskih programov ifconfig in route.
V datotečnem sistemu so številne druge omrežne datoteke, ki jih za svoje delovanje potrebuje datoteka za zagon omrežnih nastavitev. Te uporabnikom omogočajo vnašanje podatkov: naslov za IP, omrežna maska, privzeti prehod (gateway), imenski strežnik (DNS server) in podobno. Med omrežnimi datotekami različnih distribucij Linuxa so manjše razlike. V nadaljevanju bomo spoznali omrežne datoteke za distribuciji Red Hat in Suse Linux.
Omrežne datoteke
/etc/sysconfig/network (Red Hat Linux) - določa osnovne omrežne nastavitve:
#Datoteka /etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4= false
HOSTNAME = mojracunalnik.domena.si
DOMAINNAME=domena.si
GATEWAY = 172.16.1.220
GATEWAYDEV=eth0
Razlaga posameznih parametrov v datoteki network:
NETWORKING - določa, ali so omrežne nastavitve računalnika aktivirane.
FORWARD_IPV4 - posredovanje paketov vključeno/izključeno.
HOSTNAME - ime vašega računalnika (ime + domena).
DOMAINNAME - ime domene.
GATEWAY - naslov za prehod.
GATEWAYDEV - naslov naprave za prehod.
/etc/sysconfig/network/config (Suse Linux) - vsebuje številne parametre, ki se nanašajo na omrežne naprave. Omogoča določanje akcij v primeru spreminjanja statusa omrežne naprave.
Datoteka za konfiguracijo povratne naprave (loopback device) ifcfg-lo omogoča določanje lokalnega naslova za IP, ki ga lahko uporabimo za preizkušanje medprocesne komunikacije omrežne programske opreme v lastnem računalniku, če nimamo dostopa do omrežja.
/etc/sysconfig/network/ifcfg-lo (Suse Linux):
# Datoteka ifcfg-lo
# Loopback (lo) configuration
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
STARTMODE=onboot
/etc/sysconfig/network-scripts/ifcfg-lo (Red Hat Linux):
# Datoteka ifcfg-lo
DEVICE=lo
IPADDR=127.0.0.1
NMASK=255.0.0.0
NETWORK=127.0.0.0
BCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
BOOTPROTO=none
Podobno poznamo tudi datoteko za postavljanje dejanske omrežne naprave (omrežna ethernetna kartica) /dev/eth0:
/etc/sysconfig/network/ifcfg-eth0 (Suse Linux):
# Datoteka ifcfg-eth0
BOOTPROTO='static'
MTU=''
REMOTE_IPADDR=''
STARTMODE='onboot'
UNIQUE='GA8e.orocOxRg9gF'
WIRELESS='no'
BROADCAST='172.16.1.255'
IPADDR='172.16.1.5'
NETMASK='255.255.255.0'
NETWORK='172.16.1.0'
/etc/sysconfig/network-scripts/ifcfg-eth0 (Red Hat Linux):
# Datoteka ifcfg-eth0
DEVICE=eth0
IPADDR=172.16.1.5
NMASK=255.255.255.0
NETWORK=172.16.1.0
BCAST=172.16.1.255
ONBOOT=yes
BOOTPROTO=static
Razlaga posameznih parametrov v datotekah ifcfg-lo in ifcfg-eth0:
DEVICE - omrežna naprava.
IPADDR - vaš naslov IP.
NMASK, NETMASK - vaša omrežna maska (network mask).
NETWORK - naslov omrežja.
BCAST, BROADCAST - vaš naslov za oddajanje (broadcast address).
NAME - ime omrežne naprave.
ONBOOT - določa, ali naj se naprava konfigurira ob zagonu.
BOOTPROTO - statični (naslov za IP določamo ročno) ali pa dinamični (naslov za IP je določen s pomočjo protokola DHCP).
STARTMODE - določa aktiviranje naprave ob zagonu.
MTU - (Maximum Transmission Unit) maksimalno število zlogov (bytes), ki jih omrežna naprava lahko obdela pri enem prenosu.
Usmerjanje izhodnih in prihajajočih podatkovnih paketov (datagramov) v druge računalnike in omrežja določamo v datotekah /etc/sysconfig/statifc-routes (Red Hat Linux) in /etc/sysconfig/network/routes (Suse Linux).
/etc/resolv.conf (Red Hat in Suse) - podatki o imenskem strežniku (DNS server):
#Datoteka resolv.conf
domainname domena.si
nameserver 172.16.1.100
/etc/hosts (Red Hat in Suse) - Tu lahko vpišemo "ročni" seznam naslovov IP in gostiteljskih imen, ki jim ustrezajo, če nimamo dostopa do imenskega strežnika.
Ukaz ifconfig
Je uporabniški program, ki ga uporabljamo za določanje nastavitev omrežnega vmesnika. Z ukazom ifconfig vsaki omrežni napravi dodelimo naslov za IP, za omrežno masko (network mask) in naslov za oddajanje (broadcast address).
Osnovna skladnja ukaza ifconfig:
ifconfig ${NAPRAVA} ${IP NASLOV} netmask ${OMREŽNA MASKA} broadcast {NASLOV ZA ODDAJANJE} down/up
Če ukaz ifconfig uporabimo brez parametrov, bo izpisal trenutno delujoče omrežne naprave:
#ifconfig
eth0 Link encap:Ethernet HWaddr 00:0D:60:1B:A4:CA
inet addr:172.16.1.5 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::20d:60ff:fe1b:a4ca/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:357361 errors:1 dropped:0 overruns:0 frame:0
TX packets:167374 errors:0 dropped:0 overruns:0 carrier:0
collisions:228507 txqueuelen:100
RX bytes:482043135 (459.7 Mb) TX bytes:11717304 (11.1 Mb)
Interrupt:24 Memory:f9ff0000-fa000000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:86 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6256 (6.1 Kb) TX bytes:6256 (6.1 Kb)
Pri tem je eth0 omrežna kartica in lo povratna naprava.
Pregled osnovnih parametrov:
Na primer:
# ifconfig etho 172.16.1.105 netmask 255.255.255.0 up
(aktiviranje z novimi nastavitvami)
ali pa
# ifconfig eth0 up (samo ponovno aktiviranje mrežnega vmesnika)
Poznamo tudi skrajšano različico predhodne uporabe ukaza:
#ifup eth0
Na primer:
#ifconfig eth0 down
oziroma skrajšana različica:
#ifdown eth0
Ukaz route
Omogoča postavitev "smerokazov" za usmerjanje izhodnih in prihajajočih podatkovnih paketov (datagramov) v druge računalnike in omrežja. Podatki o smernicah se vpisujejo v usmerjevalno tabelo (routing table). Ukaz, prav tako kot prejšnji ukaz ifconfig, ni del jedra Linux, temveč uporabniški program.
Osnovna skladnja ukaza route:
route add/del -net ${OMREŽJE} netmask ${OMREŽNA MASKA} dev ${OMREŽNA NAPRAVA}
route add/del -host ${IP NASLOV} ${OMREŽNA NAPRAVA}
Če ukaz route uporabimo brez parametrov, bo izpisal trenutne zapise v usmerjevalni tabeli:
#route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.1.0 * 255.255.255.0 U 0 0 0 eth0
default 172.16.1.220 0.0.0.0 UG 0 0 0 eth0
Pregled osnovnih parametrov:
Nekaj zgledov rabe ukaza route:
# route add -host 172.16.1.5 eth0 (usmerjanje k gostitelju 172.16.1.5)
# route add -net 172.16.1.0 netmask 255.255.255.0 eth0 (dodajanje omrežja 172.16.1.0 na omrežno napravo eth0)
# route del -net 172.16.1.0 netmask 255.255.255.0 eth0 (brisanje omrežja)
# route add default gw 172.16.1.220 (dodajanje privzetega prehoda skozi računalnik na na naslovu IP 172.16.1.220)
Ukaz netstat
Je večnamensko orodje za preverjanje omrežnih nastavitev in dejavnosti.
Ukaz netstat omogoča naslednje funkcije:
#netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
172.16. 1.0 * 255.255.255.0 U 0 0 0 eth0
default 172.16.1.220 0.0.0.0 UG 0 0 0 eth0
#netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 357902 1 0 0 167374 0 0 0 BMRU
lo 16436 0 98 0 0 0 98 0 0 0 LRU
#netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:printer *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:x11 *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 0 linux.local:32783 172.16.1.144:ftp ESTABLISHED
tcp 0 0 linux.local:32799 172.16.1.144:neod2 ESTABLISHED
tcp 0 0 *:ssh *:* LISTEN
-a - prikaži vse povezave.
-t - TCP povezave.
-u - UDP povezave.
-w - RAW povezave..
-x - povezave Unix vtičnice.
Zgled uporabe ukazov ifconfig in route
V prejšnjih razdelkih smo spoznali omrežne datoteke, ki omogočajo nastavljanje parametrov omrežnih naprav in aktivirajo dostop do omrežja ob zagonu računalnika. Vendar pa je nastavljanje omrežja mogoče poenostaviti z uporabo nekaj vrstic ukazov ifconfig in route v samo eni omrežni datoteki.
Na primer:
#! /bin/sh
# Datoteka /etc/init.d/startnetwork
# Aktivirala bo omrežno napravo eth0 z
# naslovom za IP 172.16.1.5 in podala naslov za prehod 172.16.1.220
# Najprej onemogočimo prejšnje nastavitve
ifconfig eth0 down
# določimo naslov za IP 172.16.1.5 za omrežno napravo eth0
ifconfig eth0 172.16.1.5 netmask 255.255.255.0 up
# določimo naslov za privzeti prehod
route add default gw 172.16.1.220
# Ko boste datoteko shranili v lupini poženite ukaz
# chmod 755 /etc/init.d/startnetwork
# kot korenski uporabnik.
Če želimo, da se bodo te nastavitve aktivirale ob zagonu, vstavimo bližnjico na datoteko startnetwork v mapi /etc/rc.d/init.d/rc3.d (Red Hat) oziroma /etc/init.d/rc3.d/ (Suse) z imenom, na primer, S18simplenetstart:
# ln -s /etc/init.d/startnetwork /pot_do_rc.3.d_mape/S18simplenetstart
Številka v imenu bližnjice pomeni vrstni red klica datoteke v mapi rc3.d ob zagonu računalnika
Gonilniki omrežnih naprav
Poleg ukazov ifconfig in route za delovanje omrežne naprave potrebujete še gonilnik. Ta naj bi ustrezal različici jedra, nameščeni v vašem sistemu. Gonilnik lahko vključite v jedro že pri procesu namestitve operacijskega sistema, oziroma je mogoče tudi naknadno vključevanje v jedro z ukazom insmod.
Če, na primer, želimo namestiti gonilnik za omrežno kartico tipa broadcom, to izvedemo po naslednjem postopku:
# tar -xzvf bcm5700.tar.gz (odpakiramo paket, ki vsebuje gonilnik),
# cd bcm5700 (premaknemo se v predhodno ustvarjeno mapo),
# make ; make install (prevedemo gonilnike in jih namestimo v datotečni sistem),
# insmod bcm5700 (vključimo modul/gonilnik v jedro).
Seveda gre samo za enega izmed številnih zgledov nameščanja gonilnika. Natančen postopek je odvisen od izdelovalca programske opreme. Pogosto je nameščanje poenostavljeno z uporabo okenskih pomožnih programov, kot je, na primer, yast v distribuciji Suse Linux.