Gentoo Logo

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

# přidání tří adres IPv4
config_eth0=(
  "192.168.0.2/24"
  "192.168.0.3/24"
  "192.168.0.4/24"
)

# přidání jedné IPv4 adresy a dvou adres pro IPv6
config_eth0=(
  "192.168.0.2/24"
  "4321:0:1:2:3:4:567:89ab"
  "4321:0:1:2:3:4:567:89ac"
)

# Zachová adresu přiřazenou jádrem, pokud taková existuje,
# jinak se ji pokusí získat přes DHCP. Pokud DHCP selže, přidá statickou adresu
# určenou přes APIPA.
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()/etc/conf.d/net.

Výpis kódu 2.1: Závislost net.br0 v /etc/conf.d/net

# můžete použít všechny druhy závislostí, jež jsou podporovány (use, after, before)
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é

# funguje, i když je jméno domény špatně:
dns_domain_My____NET="My \"\\ NET"

# Výše uvedený příklad nastaví jméno DNS domény na My "\ NET pokaždé,
# když se bezdrátová síťová karta připojí na ESSID My "\ NET.

[ << ] [ < ] [ Domů ] [ > ] [ >> ]


Tisk

Zobrazit všechny

Aktualizace: 30. srpen 2006

Poslední aktualizace původni verze tohoto dokumentu: 17. srpen 2014

Shrnutí: V této kapitole zjistíte, jak konfigurace pracuje, což se Vám bude hodit později při popisu modulů pro sítě.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 vývojář

Tavis Ormandy
Gentoo Alpha vývojář

Jason Huebel
Gentoo AMD64 vývojář

Guy Martin
Gentoo HPPA vývojář

Pieter Van den Abeele
Gentoo PPC vývojář

Joe Kallar
Gentoo SPARC vývojář

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Korektor

Gerald J. Normandin Jr.
Korektor

Donnie Berkholz
Korektor

Ken Nowack
Korektor

Lars Weiler
Přispěvatel

Jan Kundrát
Překladatel

Jan Nárovec
Překladatel

Martin Tesař
Překladatel

Mirek Dvořák
Korektor

Adam Kudrna
Korektor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.