18.6. Manuální konfigurace sítě

Manuální konfigurace sítě by měla být používána pouze jako nouzové řešení nebo ve speciálních případech. Jinak je lepší využít YaST. Zde uvedené informace o konfiguraci sítě ale mohou být užitečné i při práci s YaSTem.

Všechny vestavěné i hotplug (PCMCIA, USB, některé PCI) síťové karty jsou detekovány a konfigurovány pomocí hotplug systému. Systém chápe síťovou kartu dvěma různými způsoby: jako fyzické zařízení a jako rozhraní. Připojení nebo rozpoznání zařízení spustí hotplug událost, která zahájí inicializaci zařízení pomocí skriptu hwup. Pokud je síťová karta inicializována jako nové síťové rozhraní, jádro vyvolá další hotplug událost, která pomocí ifup rozhraní nastaví.

Jádro přiděluje jména rozhraní podle časového pořadí jejich registrace. O přidělených jménech rozhoduje inicializační sekvence. Když jedna z několika síťových karet selže, čísla všech následujících karet se posunou. V případě skutečných hotplug karet (připojitelných za běhu systému) rozhoduje okamžik (pořadí) připojení k systému.

Pro zvýšení flexibility byla oddělena konfigurace zařízení (hardware) a rozhraní; a přiřazování konfigurací k zařízením a rozhraním již není založeno na jménech rozhraní. Konfigurace zařízení jsou uložené v souborech /etc/sysconfig/hardware/hwcfg-*, zatímco v souborech /etc/sysconfig/network/ifcfg-* jsou uložené konfigurace rozhraní. Jména konfigurací jsou přiřazována tak, že popisují zařízení a rozhraní, s nimiž jsou spojeny. Protože dříve používané přiřazování ovladačů ke jménům rozhraní vyžadovalo stálá jména rozhraní, nelze přiřazování jmen nadále provádět v souboru /etc/modprobe.conf. Uvedení aliasu v tomto souboru může nyní mít nepříjemné vedlejší účinky.

Jména konfiguračních souborů (vše, co následuje po hwcfg- či ifcfg-) mohou na jednotlivá zařízení odkazovat pomocí použité sběrnice, ID zařízení nebo jména rozhraní. Například konfigurace PCI karty může být bus-pci-0000:02:01.0 (sběrnice PCI) nebo vpid-0x8086-0x1014-0x0549 (identifikační číslo produktu). Jméno příslušného rozhraní může být bus-pci-0000:02:01.0 nebo wlan-id-00:05:4e:42:31:7a (MAC adresa).

Chcete-li přiřadit konfiguraci libovolné kartě určitého typu (pokud je v tu chvíli připojena jen jedna karta tohoto typu), místo konkrétní kartě, zvolte méně specifické jméno konfigurace. Například, konfigurace se jménem bus-pcmcia bude použita libovolnou PCMCIA kartou. Chcete-li rozsah použití omezit, přidejte na začátek jména typ rozhraní, např. wlan-bus-usb bude přiřazeno všem WLAN kartám na USB portu.

Systém vždy použije tu konfiguraci, která zařízení nebo rozhraní nejlépe popisuje. Nejvhodnější konfiguraci vyhledává program getcfg. Výstup programu obsahuje veškeré informace použitelné pro popis zařízení. Podrobnosti o pravidlech tvorby jmen konfigurací naleznete v manuálové stránce getcfg.

Vzhledem k popsané metodě jsou síťová rozhraní vždy správně nakonfigurována bez ohledu na pořadí inicializace. Nicméně jméno rozhraní na pořadí inicializace stále závisí. Jsou dva způsoby, jak zajistit spolehlivý přístup k rozhraní určité síťové karty:

ifup vyžaduje existenci rozhraní, protože neinicializuje hardware. Inicializaci hardwaru má na starost příkaz hwup (spouštěný pomocí hotplug nebo coldplug). Jakmile je zařízení inicializováno, je pomocí hotplug automaticky spuštěn ifup. Rozhraní je spuštěno, pokud je startovací režim nastaven na onboot, hotplug nebo auto a služba network je spuštěna. Dříve inicializaci hardwaru spouštěl příkaz ifup jmeno_zarizeni. Nyní je postup opačný. Nejprve je inicializována hardwarová komponenta, pak následují ostatní akce. Tímto způsobem lze pomocí existující sady konfigurací optimálně nakonfigurovat měnící se množství zařízení.

Tabulka 18.5 – „Skripty pro manuální síťovou konfiguraci“ shrnuje nejdůležitější skripty účastnící se síťové konfigurace. Tam kde je to možné, jsou rozlišeny podle toho, zda se týkají hardwaru nebo rozhraní:

Tabulka 18.5. Skripty pro manuální síťovou konfiguraci

Fáze konfigurace

Příkaz

Funkce

Hardware

hw{up,down,status}

Skripty hw* jsou spouštěny systémem hotplug, aby inicializovaly zařízení, zrušily inicializaci nebo zjistily stav zařízení. Více informací naleznete v manuálové stránce hwup.

Rozhraní

getcfg

Skript getcfg lze použít ke zjištění jména rozhraní asociovaného s určitým jménem konfigurace nebo popisem zařízení. Více informací naleznete v manuálové stránce getcfg.

Rozhraní

if{up,down,status}

Skripty if* spouští existující síťová rozhraní nebo vrací stav určeného rozhraní. Více informací naleznete v manuálové stránce ifup.

Další informace o systému hotplug a trvalých jménech rozhraní naleznete v kapitole 12 – „Dynamické uzly zařízení pomocí udev.

18.6.1. Konfigurační soubory

Zde je uveden přehled síťových konfiguračních souborů, jejich formátů a funkcí.

18.6.1.1. /etc/sysconfig/network/hwcfg-*

Tyto soubory obsahují hardwarovou konfiguraci síťových karet a dalších zařízení. Obsahují potřebné parametry, jako je jaderný modul, režim spouštění a asociace se skripty. Více informací najdete v manuálové stránce hwup. Bez ohledu na existující hardware jsou při spuštění coldplug aplikovány konfigurační soubory hwcfg-static-*.

18.6.1.2. /etc/sysconfig/network/ifcfg-*

Tyto soubory obsahují data pro jednotlivá síťová rozhraní. Obsahují např. režim spouštění a IP adresu. Možné parametry jsou popsány v manuálové stránce ifup). Navíc lze, pokud chcete obecné nastavení použít jen pro jedno rozhraní, používat v ifcfg-* souborech všechny proměnné ze souborů dhcp, wireless, a config.

18.6.1.3. /etc/sysconfig/network/config, dhcp, wireless

Soubor config obsahuje obecné nastavení chování skriptů ifup, ifdown a ifstatus. Soubor dhcp obsahuje nastavení pro DHCP. Soubor wireless obsahuje nastavení pro bezdrátové síťové karty. Proměnné v těchto souborech jsou dobře okomentovány. Všechny proměnné z těchto souborů je možné použít také v ifcfg-*, kde mají vyšší prioritu.

18.6.1.4. /etc/sysconfig/network/routes,ifroute-*

Zde je nastaveno statické směrování TCP/IP paketů. Všechny statické směrovací záznamy vyžadované různými systémovými úlohami lze nastavit v souboru /etc/sysconfig/network/routes: pro směrování k počítači, skrze bránu nebo k síti. Pro všechna rozhraní, která potřebují individuální směrování, je možné vytvářet samostatné konfigurační soubory /etc/sysconfig/network/ifroute-* (hvězdičku nahraďte názvem rozhraní). Záznamy ve směrovacích konfiguračních souborech vypadají následovně:

# Destination     Dummy/Gateway     Netmask            Device
#
127.0.0.0         0.0.0.0           255.255.255.0      lo
204.127.235.0     0.0.0.0           255.255.255.0      eth0
default           204.127.235.41    0.0.0.0            eth0
207.68.156.51     207.68.145.45     255.255.255.255    eth1
192.168.0.0       207.68.156.51     255.255.0.0        eth1

V prvním sloupci (DESTINATION) je uveden cíl směrovacího záznamu. Může zde být IP adresa sítě nebo počítače. Pokud je dostupný nameserver, pak také celý název sítě nebo počítače.

Druhý sloupec (GATEWAY) slouží pro uvedení výchozí brány nebo brány, skrze kterou se přistupuje k počítači, resp. síti.

Ve třetím sloupci se uvádějí síťové masky pro sítě nebo počítače za bránou, např. 255.255.255.255.

Čtvrtý sloupec má smysl pro sítě připojené k lokálnímu počítači, jako např. loopback, ethernet, ISDN, PPP či dummy zařízení. Musí v něm být zapsáno jméno zařízení.

Páty (volitelný) sloupec lze použít k zadání typu směrování. Aby se předešlo případným chybám parseru, nevyplněné sloupce, které není třeba zadávat, by měly obsahovat znaménko mínus -Podrobnosti naleznete v manuálové stránce routes(5).

18.6.1.5. /etc/resolv.conf

V tomto souboru je specifikována doména, do které počítač patří (klíčové slovo search). Je uvedena též adresa nameserveru, ke kterému se má přistupovat (klíčové slovo nameserver). Lze uvést i více domén. Při převodu jména, které není plně kvalifikováno, se k němu postupně připojují jednotlivé položky search. Více nameserverů lze uvést zápisem více řádků začínajících klíčovým slovem nameserver. Komentáře jsou uvozeny znaky #. YaST zapisuje nastavení nameserveru do tohoto souboru. 18.5 – „/etc/resolv.conf ukazuje příklad skutečného souboru /etc/resolv.conf.

Příklad 18.5. /etc/resolv.conf


# Our domain
search example.com
#
# We use sun (192.168.0.20) as nameserver
nameserver 192.168.0.20

Některé služby, jako pppd (wvdial), ipppd (isdn), dhcp (dhcpcd a dhclient), pcmcia a hotplug, modifikují soubor /etc/resolv.conf pomocí skriptu modify_resolvconf. Pokud byl soubor skriptem /etc/resolv.conf dočasně změněn, obsahuje komentář informující o službě, která změnu provedla, místu, kde je uložena záloha původního souboru a o způsobu, jakým můžete zamezit automatickým změnám souboru. Pokud je soubor /etc/resolv.conf změněn vícekrát, obsahuje všechny změny ve vnořené podobě. Změny lze korektně vrátit i v jiném pořadí, než byly učiněny. Mezi služby, které toho využívají, patří isdn, pcmcia a hotplug.

Pokud se stane, že je služba ukončena nestandardním způsobem, lze k obnovení původního souboru použít modify_resolvconf. Při startu systému se rovněž kontroluje, zda není přítomen modifikovaný resolv.conf (např. po pádu systému), případně je původní nezměněný soubor resolv.conf obnoven.

YaST pomocí modify_resolvconf kontroluje, zda byl resolv.conf modifikován, a případně varuje uživatele, že se provedené změny po obnovení souboru ztratí. Navíc YaST sám modify_resolvconf nepoužívá, což znamená, že změna souboru resolv.conf provedená pomocí YaST má stejnou váhu jako manuální editace. V obou případech je změna trvalá, zatímco změny provedené výše zmíněnými službami jsou pouze dočasné.

18.6.1.6. /etc/hosts

V tomto souboru (viz 18.6 – „/etc/hosts) se jménům počítačů přiřazují IP adresy. Pokud se nepoužívá nameserver, musíte zde uvést všechny počítače, na které chcete mít přístup pomocí jména. Každý počítač je na zvláštní řádce, sestávající postupně z IP adresy, plně kvalifikovaného jména počítače a jména počítače. IP adresa musí být uvedena na začátku řádky, položky musí být odděleny mezerami nebo tabulátory. Komentáře začínají znakem #.

Příklad 18.6. /etc/hosts


127.0.0.1 localhost
192.168.0.20 sun.example.com sun
192.168.0.0 earth.example.com earth

18.6.1.7. /etc/networks

V tomto souboru se nastavuje převod jmen sítí na síťové adresy. Formát je podobný jako u souboru hosts, pouze síťová jména jsou první a za nimi následují adresy. Viz 18.7 – „/etc/networks.

Příklad 18.7. /etc/networks


loopback     127.0.0.0
localnet     192.168.0.0

18.6.1.8. /etc/host.conf

Tento soubor kontroluje převod jmen pomocí resolver knihovny. Používá se pouze programy slinkovanými proti libc4 nebo libc5. Novější glibc programy se nastavují v souboru /etc/nsswitch.conf. Každý parametr je uveden na samostatném řádku a komentáře jsou uvozeny znakem #. Přípustné parametry jsou uvedeny v tabulce 18.6 – „Parametry pro /etc/host.conf“. Ukázku souboru /etc/host.conf si můžete prohlédnout v příkladu18.8 – „ /etc/host.conf.

Tabulka 18.6. Parametry pro /etc/host.conf

order hosts, bind

Stanoví, v jakém pořadí se volají služby pro převod jména počítače na IP adresu. Možné argumenty jsou (odděleny mezerami nebo čárkami):

hosts: prohledávat soubor /etc/hosts

bind: použít nameserver

nis: použít NIS  

multi on/off

Stanoví, zda počítač, uvedený v /etc/hosts smí mít více IP adres.

nospoof on spoofalert on/off

Tyto parametry mají vliv pouze na spoofing nameserveru.

trim název domény

Zadané jméno domény se při převodu oddělí od jména počítače (pokud ovšem jméno počítače obsahovalo doménu). Tato volba se hodí, pokud jsou v souboru /etc/hosts jen jména z lokální domény, které by však měla být rozpoznatelná i s připojenou doménou.

Příklad 18.8. /etc/host.conf


# We have named running
order hosts bind
# Allow multiple addrs
multi on

18.6.1.9. /etc/nsswitch.conf

S GNU C Library 2.0 můžete nyní využívat tzv. Name Service Switch (NSS). (Viz man 5 nsswitch.conf a manuál The GNU C Library Reference Manual.)

V souboru /etc/nsswitch.conf je uvedeno pořadí dotazů. Soubor nsswitch.conf si můžete prohlédnout v příkladu 18.9 – „/etc/nsswitch.conf. Komentáře jsou uvozeny znaky #. V tomto příkladu uvedená položka hosts znamená, že po dotazu na /etc/hosts (files) je proveden dotaz pomocí DNS (viz kapitolu 20 – „DNS — Domain Name System).

Příklad 18.9. /etc/nsswitch.conf


passwd:     compat
group:      compat

hosts:      files dns
networks:   files dns

services:   db files
protocols:  db files

netgroup:   files
automount:  files nis

Databáze dosažitelné pomocí NSS jsou uvedeny v tabulce 18.7 – „Databáze dosažitelné pomocí /etc/nsswitch.conf“. V budoucnu se navíc počítá s parametry automount, bootparams, netmasks a publickey. Konfigurační volby pro databáze jsou uvedeny v tabulce 18.8 – „Konfigurační možnosti NSS databází“.

Tabulka 18.7. Databáze dosažitelné pomocí /etc/nsswitch.conf

aliases

Poštovní aliasy pro sendmail; viz man 5 aliases.  

ethers

Ethernetové adresy.

group

Uživatelské skupiny pro getgrent. Viz man 5 group.

hosts

Jména počítačů a IP adresy pro gethostbyname a podobné funkce.

netgroup

Platný seznam počítačů a uživatelů v síti pro účely kontroly přístupových práv, viz manuálová stránka netgroup (5).

networks

Jména a adresy sítí pro getnetent.

passwd

Uživatelská hesla pro getpwent; viz manuálové stránka passwd (5).

protocols

Síťové protokoly pro getprotoent; viz manuálová stránka protocols (5).

rpc

Jména a adresy Remote procedure call pro getrpcbyname a podobné funkce.

services

Síťové služby pro getservent.  

shadow

Stínová hesla uživatelů pro getspnam; viz manuálová stránka shadow (5).

Tabulka 18.8. Konfigurační možnosti NSS databází

files

Přímý přístup k souborům, například /etc/aliases.

db

Přístup přes databázi.

nis, nisplus

NIS, viz kapitola 21 – „NIS — Network Information Service.

dns

Lze použít pouze jako rozšíření hosts a networks.

compat

Lze použít pouze jako rozšíření passwd, shadow a group.

18.6.1.10. /etc/nscd.conf

Pomocí tohoto souboru se konfiguruje program nscd (Name Service Cache Daemon), viz manuálové stránky nscd (8) a nscd.conf (5). Ve výchozím nastavení jsou položky passwd a groups programem nscd ukládány do vyrovnávací paměti. Je to důležité pro výkon adresářových služeb jako je NIS nebo LDAP, protože jinak by bylo nutné používat síťové spojení pro každý přístup ke jménům nebo skupinám. Položka hosts ukládána do vyrovnávací paměti není, protože používaný mechanismus znemožňuje lokálním počítačům odpovědím na dotazy důvěřovat. Místo ukládání do vyrovnávací paměti programem nscd použijte DNS server s ukládáním do vyrovnávací paměti.

Je-li aktivována vyrovnávací paměť (cache) pro passwd, trvá zpravidla 15 sekund, než je systému znám nově založený lokální uživatel. Opětovným spuštěním programu nscd se tato doba čekání dá zkrátit. Slouží k tomu příkaz rcnscd restart.

18.6.1.11. /etc/HOSTNAME

Tento soubor se čte různými skripty při startu systému. Smí obsahovat jedinou řádku se jménem počítače (bez domény).

18.6.2. Startovací skripty

Kromě výše popsaných konfiguračních souborů existuje řada skriptů, které spouští síťové programy během startu systému. Jsou spuštěny v okamžiku, kdy systém přejde do některé víceuživatelské úrovně běhu (viz tabulka 18.9 – „Některé startovací skripty pro síťové programy“).

Tabulka 18.9. Některé startovací skripty pro síťové programy

/etc/init.d/network

Tento skript se stará o konfiguraci síťových rozhraní. Hardware musí být inicializováno předem pomocí /etc/init.d/coldplug (přes hotplug). Pokud nebyla spuštěna služba network, nejsou implementována žádná síťová rozhraní.

/etc/init.d/inetd

Spouští program xinetd. xinetd umožňuje na systému používat serverové služby. Například spouští vsftpd při každé inicializaci FTP spojení.

/etc/init.d/portmap

Spouští portmapper potřebný pro RPC server, např. NFS.

/etc/init.d/nfsserver

Spouští NFS server.

/etc/init.d/sendmail

Řídí proces sendmail.

/etc/init.d/ypserv

Spouští NIS server.

/etc/init.d/ypbind

Spouští klienta NIS.