Upozornění :
Tento dokument již neplatí a není udržován.
|
[ << ]
[ < ]
[ Domů ]
[ > ]
[ >> ]
2. Pokročilá konfigurace
Obsah:
2.a. Pokročilá konfigurace
Proměnná config_eth0 je jádrem konfigurace síťového rozhraní
(v tomto případě eth0). Obsahuje seznam instrukcí, jež se mají
provést pro jeho správnou funkci. Příkazy jsou prováděny jeden po druhém a aby
bylo rozhraní považováno za funkční, musí alespoň jeden z nich proběhnout
bez chyb.
Následuje seznam dostupných instrukcí.
| Příkaz |
Popis |
| null |
nedělej nic |
| noop |
pokud je rozhraní v provozu a má přiřazenou adresu, skonči úspěšně
|
| IPv4 nebo IPv6 adresa |
přidej rozhraní tuto adresu |
|
dhcp, adsl nebo apipa (případně vlastní příkaz
z dalšího modulu)
|
Aktivuj modul, jenž poskytuje daný příkaz. Například dhcp zavede
některý z modulů dhcpcd, udhcpc, dhclient či
pump, jež všechny obsahují funkce pro práci s DHCP.
|
Můžete zadat i další přikaz (fallback), který se provede tehdy, pokud
předcházející selže. Tento nouzový příkaz musí přesně odpovídat struktuře
konfigurace.
Výše zmíněné konstrukce se samozřejmě dají kombinovat. Následují ukázky
z praxe:
Výpis kódu 1.1: Ukázky konfigurace |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
config_eth0=(
"noop"
"dhcp"
)
fallback_eth0=(
"null"
"apipa"
)
|
Poznámka:
Pokud používáte modul ifconfig a přidáváte více než jednu adresu, bude
pro každou další vytvořeno naaliasované rozhraní. Proto v předchozích dvou
příkladech dojde k aktivaci rozhraní eth0, eth0:1 a
eth0:2. Nic zvláštního se s nimi dělat nedá, protože jádro i další
programy mezi nimi nerozlišují.
|
Důležité:
Pořadí příkazů v bloku fallback je důležité. Pokud bychom nespecifikovali
volbu null, byl by příkaz apipa proveden pouze tehdy, pokud by
došlo k selhání příkazu noop.
|
Poznámka:
APIPA a
DHCP jsou popsány dále.
|
2.b. Závislosti a síťování
Init skripty z /etc/init.d mohou záviset buď na konkrétním
síťovém rozhraní a nebo obecně na "dostupnosti sítě". Závislost na službě
net může znamenat různé věci, záleží na nastavení proměnné
RC_NET_STRICT_CHECKING v souboru /etc/conf.d/rc:
| Hodnota |
Popis |
| none |
vždy předpokládáme, že je služba net funkční |
| no |
Alespoň jedna služba net.* kromě net.lo musí
běžet. Tato volba je vhodná například pro majitele notebooků s WiFi a
pevnou ethernetovou síťovou kartou, protože vyžaduje, aby bylo funkční
alespoň jedno připojení k síti.
|
| lo |
Stejné jako volba no, avšak net.lo je rovněž
započítáváno. Tato volba se může hodit lidem, kteří nepotřebují mít žádné
konkrétní rozhraní aktivní při bootu.
|
| yes |
aby byla služba net funkční, musí být v provozu všechna
síťová rozhraní
|
Ale co když má net.br0 záviset na net.eth0 a
net.eth1? net.eth1 může být bezdrátové zařízení nebo
PPP spoj, a tudíž je ho potřeba konfigurovat předtím, než se přidá do bridge.
Takovou závislost však není možno zařídit v souboru
/etc/init.d/net.br0, protože je to symbolický odkaz na
net.lo.
Řešení je vytvořit vlastní funkci depend()
v /etc/conf.d/net.
Výpis kódu 2.1: Závislost net.br0 v /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Pro více informací viz sekci init
skripty.
2.c. Jména a hodnoty proměnných
Jména proměnných jsou dynamická. Normálně jsou ve tvaru
proměnná_${rozhraní|mac|essid|apmac}; například dhcpcd_eth0
určuje volby pro dhcpcd nad rozhraním eth0 a dhcpcd_essid určuje
parametry dhcpcd pro jakékoli zařízení, které se připojí k ESSID "essid".
Je zde však jedna komplikace — jména rozhraní nemusí být pouze ethx. Například
mnoho bezdrátových síťových karet používá jména jako wlanx či rax, rozhraní
vytvářená uživateli (například bridge) mohou mít dokonce zcela libovolné jméno.
Situace se stává ještě zajímavější, pokud přejdeme k bezdrátovým
přístupovým bodům — ty mohou mít jména obsahující i nealfanumerické znaky, a
protože jména proměnných mohou obsahovat ESSID, narážíme na problém.
Gentoo používá pro nastavování síťování bash a bash neumí používat proměnné
s názvy obsahujícími znaky, které nejsou v anglické abecedě. Proto se
provádí změna každého takového znaku na znak _, podtržítko.
Dalším z limitujících faktorů je samotný obsah proměnných — některé znaky
musí být vloženy pomocí escape sekvencí. Například znaky ", ' a
\ musí být v zápisu doplněny znakem \ těsně před nimi.
V tomto příkladu použijeme ESSID bezdrátové sítě, protože ty mohou
obsahovat nejvíce speciálních znaků. Předpokládejme ESSID My "\ NET:
Výpis kódu 3.1: Ukázka jména proměnné |
dns_domain_My____NET="My \"\\ NET"
|
[ << ]
[ < ]
[ Domů ]
[ > ]
[ >> ]
Obsah tohoto dokumentu je licencován pod licencí Creative Commons -
Attribution / Share Alike.
|