Gentoo Logo

1.  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" )

1.  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 1.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 1.1: 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" )

1.  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 1.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.

1.  ADSL modem

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

Výpis kódu 1.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 1.1: 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 1.1: Ukázka /etc/ppp/pap-secrets

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

1.  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 1.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" )

1.  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 1.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
}

1.  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 1.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).

1.  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 1.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"

1.  Tunely

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

Výpis kódu 1.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" ) 

1.  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 1.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).

Aktualizace: 31. březen 2006

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

Donate to support our development efforts.

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