Gentoo Logo

Upozornění : Tento dokument již neplatí a není udržován.


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


3. Moduly pro sítě

Obsah:

3.a. Moduly

Síťové skripty používané v Gentoo jsou modulární, což znamená, že je snadné přidávat podporu nových typů rozhraní a zcela nových funkcí za současného zachování zpětné kompatibility.

Načítání modulů probíhá plně automaticky — pokud je balíček, na kterém modul závisí, v systému nainstalován, modul se sám aktivuje. Pokud se pokusíte zavést modul, aniž by byl k dispozici odpovídající balíček, zobrazí se chybová zpráva, která vám oznámí, co je potřeba doinstalovat. Proto je v ideálním případě potřeba se moduly zaobírat pouze pokud je v systému nainstalováno více různých balíčků poskytujících shodné funkce, a je proto mezi nimi potřeba vybrat ten, který se má použít.

Poznámka: Pokud nebude řečeno jinak, všechna zde popsaná nastavení patří do souboru /etc/conf.d/net.

Výpis kódu 1.1: Preference modulů

# Máme raději iproute2 než ifconfig
modules=( "iproute2" )

# Preference se dají určit i pro jednotlivá síťová rozhraní; zde
říkáme, aby se pro eth0 použilo udhcpc místo dhcpcd.
modules_eth0=( "udhcpc" )

# Také můžete určit, jaké moduly se nemají použít, například pokud pro
# nastavení bezdrátové sítě používáte supplicant nebo linux-wlan-ng, avšak
# stále chcete konfigurovat nastavení podle aktuálního ESSID.
modules=( "!iwconfig" )

3.b. Ovladače pro základní konfiguraci rozhraní

V současné době nabízíme dva různé moduly pro základní konfiguraci rozhraní — ifconfig a iproute2. Jeden z nich je potřeba pro jakoukoli práci se sítí.

ifconfig je výchozí volba a je součástí systémového profilu. iproute2 podporuje pokročilejší volby, avšak ve výchozí instalaci není k dispozici.

Výpis kódu 2.1: Instalace iproute2

# emerge sys-apps/iproute2

# preferujme iproute2 před ifconfig (v případě, že jsou oba
nainstalované)
modules=( "iproute2" )

Jak ifconfig, tak i iproute2 se používají k podobným úkolům, a proto je i jejich základní konfigurace stejná. Následující ukázky tedy budou fungovat, ať už používáte jakýkoli z těchto modulů.

Výpis kódu 2.2: Ukázky ifconfig a iproute2

config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )

# také můžeme specifikovat broadcast adresu
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )

3.c. DHCP

DHCP je způsob pro získání základních informací o síti (jako například IP adresa, DNS servery či výchozí brána) od DHCP serveru. Pokud vám v síti běží DHCP server, stačí pouze všechny počítače nastavit tak, aby svoji síťovou konfiguraci získávali z něj, a síť se nastaví "sama". Pokročilejší volby, jako například bezdrátové sítě či PPP, však budete muset nakonfigurovat ještě předtím, než DHCP vstoupí do hry.

Funkcionalita DHCP je poskytována více balíčky — dhclient, dhcpcd, pump a udhcpc. Každý z nich má své klady a zápory:

DHCP modul balíček + -
dhclient net-misc/dhcp Pochází od ISC, tj. od lidí, jež stojí za BIND DNS. Je rovněž velice konfigurovatelný. Konfigurace je velmi komplexní, software je vcelku nafouklý. Neumí z DHCP získat adresy NTP serverů a ve výchozím nastavení neposílá jméno počítače.
dhcpcd net-misc/dhcpcd dlouhodobá výchozí volba v Gentoo, nezávisí na dalších nástrojích Již není udržovaný původními vývojáři, v některých momentech může být pomalý. Pokud je doba výpůjčky adresy nekonečná, nepřejde do režimu démona.
pump net-misc/pump odlehčený nástroj, nezávisí na dalších nástrojích Již není udržovaný původními vývojáři, nespolehlivý, zejména přes modemy. Nepodporuje získání adres NIS serverů.
udhcpc net-misc/udhcp velmi odlehčený — nejmenší známý DHCP klient, ideální pro embedded systémy není příliš odzkoušený — žádná distribuce ho nepoužívá ve výchozím nastavení, neumí nastavit timeout na více než 3 sekundy

Pokud máte nainstalovaného více než jednoho DHCP klienta, musíte určit, jaký z nich se má použít, jinak se automaticky vybere dhcpcd.

Pokud potřebujete DHCP modulu předat nějaké parametry, použijte module_eth0="..." (nahraďte "modul" DHCP modulem, který používáte, tj. např. dhcpcd_eth0).

Podporované nastavení DHCP je poměrně všeobecné, a proto máte prostřednictvím proměnné dhcp_eth0 k dispozici tyto příkazy (ve výchozím nastavení není aktivní žádný z nich):

  • release — uvolní IP adresu k dalšímu použití
  • nodns — nepřepíše /etc/resolv.conf
  • nontp — nepřepíše /etc/ntp.conf
  • nonis — nepřepíše /etc/yp.conf

Výpis kódu 3.1: Ukázkové nastavení DHCP v /etc/conf.d/net

# Toto je potřeba pouze tehdy, pokud máte nainstalovaný více než jeden modul DHCP:
modules=( "dhcpcd" ) 

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" # timeout po 10 sekundách
dhcp_eth0="release nodns nontp nonis" # pouze nastaví IP adresu

Poznámka: dhcpcd, udhcpc a pump posílají ve výchozím nastavení DHCP serveru jméno počítače, proto ho již není třeba zadávat.

3.d. ADSL modem

Nejprve je potřeba nainstalovat odpovídající software:

Výpis kódu 4.1: Instalace balíčku rp-pppoe

# emerge net-dialup/rp-pppoe

Varování: baselayout-1.11.x podporuje pouze PPPoE. PPPoA bude podle předpokladů zahrnuta do novějších verzí.

Dalším krokem je nastavení eth0 jakožto ADSL rozhraní a zadání uživatelského jména. Nastavujeme v souboru /etc/conf.d/net.

Výpis kódu 4.2: Konfigurace eth0 pro ADSL (/etc/conf.d/net)

config_eth0=( "adsl" )
adsl_user_eth0="jméno"

Nakonec je potřeba zadat uživatelské jméno a heslo v souboru /etc/ppp/pap-secrets.

Výpis kódu 4.3: Ukázka /etc/ppp/pap-secrets

# Hvězdička (*) je důležitá
"jméno"  *  "heslo"

3.e. APIPA (Automatic Private IP Addressing)

APIPA se pokusí získat volnou IP adresu z rozsahu 169.254.0.0-169.254.255.255 zasláním arping dotazu na jednu náhodně vybranou přes odpovídající rozhraní. Pokud neobdrží žádnou odpověď, předpokládá, že je zvolená adresa volná, a použije ji.

Tento způsob konfigurace je vhodný pouze pro sítě LAN bez DHCP serveru či připojení k Internetu, kde navíc všechny počítače používají APIPA.

Pro podporu APIPA musíte nainstalovat net-misc/iputils nebo net-analyzer/arping.

Výpis kódu 5.1: Konfigurace APIPA — /etc/conf.d/net

# Nejprve se vyzkouší DHCP; pokud selže, přejde se na APIPA
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )

# Další možností je použití APIPA za všech okolností
config_eth0=( "apipa" )

3.f. Bonding

Pro bonding či trunking nainstalujte net-misc/ifenslave.

Bonding se používá ke zvýšení propustnosti sítě. Pokud máte dvě síťové karty vedoucí do stejné sítě, můžete je spojit do jednoho, takže aplikace si s existencí více fyzických rozhraní nemusí lámat hlavu.

Výpis kódu 6.1: Bonding — /etc/conf.d/net

# Spojení více rozhraní dohromady
slaves_bond0="eth0 eth1 eth2"

# Možná nebudete chtít přiřadit vytvořenému rozhraní adresu
config_bond0=( "null" )

# Definujeme eth0, eth1 a eth2 jakožto závislosti, neboť tyto mohou vyžadovat
# speciální konfiguraci
depend_bond0() {
  need net.eth0 net.eth1 net.eth2
}

3.g. Bridging (podpora 802.1d)

Pro podporu funkce bridge nainstalujte net-misc/bridge-utils.

Bridging se používá pro spojení více sítí dohromady. Například pokud máte server připojený do Internetu přes ADSL modem a bezdrátovou síťovou kartu, můžete je přes bridge spojit dohromady.

Výpis kódu 7.1: Konfigurace bridge — /etc/conf.d/net

# Konfigurace bridge, viz "man btctl"
brctl_br0=( "setfd 0" "sethello 0" "stp off" )

# Přidání rozhraní eth0 a eth1 do bridge br0
bridge_br0="eth0 eth1"

# Zabráníme spuštění DHCP
config_eth0=( "null" )
config_eth1=( "null" )

# Nakonec přiřadíme bridgi IP adresu (samozřejmě je možné použít i DHCP)
config_br0=( "192.168.0.1/24" )

# Definujeme eth0 a eth1 jakožto závislosti, neboť tyto mohou vyžadovat
# speciální konfiguraci
depend_br0() {
  need net.eth0 net.eth1
}

Důležité: Pro některá nastavení může být důležité se seznámit s dokumentací jmen proměnných.

3.h. MAC adresy

Pokud používáte sys-apps/baselayout-1.11.14 nebo novější a pokoušíte se změnit MAC adresu na konkrétní hodnotu, není nutné cokoliv instalovat. Pokud však požadujete komplexnější změny nebo používáte baselayout starší, budete muset nainstalovat balíček net-analyzer/macchanger.

Výpis kódu 8.1: Ukázka změny MAC adresy

# Nastaví MAC adresu rozhraní
mac_eth0="00:11:22:33:44:55"

# Náhodně zovlí poslední 3 bajty
mac_eth0="random-ending"

# Náhodně zvolí adresu za zachování stejného typu (např. optika,
# metalika, bezdrát,...), nezachová výrobce
mac_eth0="random-samekind"

# Náhodně zvolí adresu bez ohledu na typ rozhraní (např. optika,
# metalika, bezdrát,...) či výrobce
mac_eth0="random-anykind"

# Zcela náhodná adresa — POZOR, některé adresy nebudou fungovat tak,
# jak si představujete
mac_eth0="random-full"

3.i. Tunely

Není potřeba nic instalovat, init skripty se o vše potřebné postarají samy.

Výpis kódu 9.1: Konfigurace tunelů v /etc/conf.d/net

# GRE tunely
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# IPIP tunely
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# Konfiguarce rozhraní
config_vpn0=( "192.168.0.2 peer 192.168.1.1" ) 

3.j. VLAN (podpora 802.1q)

Pro podporu VLAN si nainstalujte net-misc/vconfig.

Virtual LAN je skupina síťových rozhraní, která se chovají, jako by byly připojeny do jednoho segmentu sítě, i když ve skutečnosti nejsou. Členové skupiny VLAN nevidí jiná rozhraní, i když jsou fyzicky umístěna na stejném segmentu sítě.

Výpis kódu 10.1: VLAN — /etc/conf.d/net

# Zadejte čísla VLANů, do kterých má rozhraní patřit
# Ujistěte se, prosím, že čísla NEZAČÍNAJÍ nulou
vlans_eth0="1 2"

# VLAN můžete detailně zkonfigurovat
# Více informací viz manuálová stránka vconfig
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )

# Nakonec běžná konfigurace VLANu
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )

Důležité: Pro některá nastavení může být důležité se seznámit s dokumentací jmen proměnných.


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


Tisk

Zobrazit všechny

Aktualizace: 30. srpen 2006

Poslední aktualizace původni verze tohoto dokumentu: 12. duben 2014

Shrnutí: Síťování je v Gentoo řešeno velice flexibilně - zde jsou vysvětleny věci jako výběr DHCP klientů, nastavení bondingu, bridgovaní či VLANů.

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.