Portál AbcLinuxu, 20. dubna 2024 01:13

Debian /etc/network/interfaces - konfigurace síťových rozhraní

27. 2. 2009 | Jan Malaník
Články - Debian /etc/network/interfaces - konfigurace síťových rozhraní  

Systém Debian network interfaces slouží k ovládání síťových rozhraní počítače. Hodí se zejména v prostředí, kde se stroj přesouvá mezi několika známými nastaveními sítě a nechceme ty samé úkony provádět neustále dokola ručně. Nabízí automatizované ovládání všech oblastí síťování v Linuxu. Je alternativou k NetworkManageru, který má ještě pořád své mouchy. NetworkManager je možné nastavit, aby pracoval i s Debian interfaces.

Celý systém je založen na adresáři /etc/network. Pokud v článku použiji název souboru nebo adresáře bez cesty, bude umístěn právě tam. Hlavní konfigurace je zapsána v souboru interfaces. Teď si ho podrobněji rozebereme.

Rychlý příklad a ovládání

Než se pustíme do detailů konfiguračního souboru /etc/network/interfaces, ukážeme si, jak se to celé ovládá. K tomu nám poslouží následující jednoduchý příklad:

auto eth0
iface eth0 inet static
    address 192.168.2.5
    netmask 255.255.255.0
    gateway 192.168.2.1
    dns-server 192.168.2.1

iface eth1 inet dhcp

První řádek, který začíná klíčovým slovem auto, nám říká, že rozhraní eth0 může být ovládáno pomocí služby /etc/init.d/networking. Pokud ji uvedeme v adresáři rcX.d, eth0 bude po startu systému automaticky připraven k použití v naší konfiguraci. Ruční ovládání služby je standardní pomocí

{start|stop|restart|force-reload}

Druhou možností ovládání jsou dva speciální příkazy:

ifup interface
ifdown interface

Jak z názvu vyplývá, je možné jimi dané rozhraní zapnout a vypnout.

Spouštění programů v závislosti na stavu rozhraní

Jako další si povíme, jak lze na start a stop síťových zařízení napojit jiné aplikace a služby. Využívá se k tomu šestice direktiv, které lze připsat k jednotlivým rozhraním. Jsou to:

pre-up příkaz
Znamená, že se daný příkaz provede před spušténím rozhraní. Například lze zapnout wpa šifrování pro WiFi.
up příkaz2 nebo post-up příkaz3
Tento příkaz se provede po nastavení rozhraní, například nastavení firewallu, spuštění OpenVPN klienta, nastavení DNS serveru nebo připojení síťových disků.
	post-up echo "nameserver ip.adresa.dns.serveru" >> /etc/resolv.conf
		#provede přidání ip adresy dns serveru do /etc/resolv.conf. 
		#alternativou je použití direktivy: dns-nameservers 1.2.3.1 1.2.3.2
down příkaz5 nebo pre-down příkaz4
Před vypnutím rozhraní proveď příkaz4. Pokud máte připojeny síťové disky, je dobré je teď odpojit, čekání na síť hodně zpomalí vypínaní stroje. Navíc je kolem nedostupnosti těchto disků hodně sprostých hlášek v logu. Další možností je povolení Wake up on LAN.
	pre-down /usr/sbin/ethtool -s eth1 wol g
     	    #povolení buzení PC po síti 
post-down příkaz6
Příkaz se provede po vypnutí rozhraní. Teď můžete například vypnout WPA, pokud jste byli připojení přes WiFi.
	post-down killall wpa_supplicant

Pokud chcete použít více příkazů, uvádějte je na samostatné řádky vždy s klíčovým slovem, které určí, kdy mají být vykonány. Další možností, jak zapínat aplikace při ovládání rozhraní, jsou adresáře v /etc/network/if-direktiva.d. Tam je možné uvést symlinky na aplikace, které chceme startovat. Tento způsob ovládání je možný pouze v případě, že těmto aplikacím (službám) nepotřebujeme předávat parametry (například NTP klient).

Detaily

Celé nastavení je rozděleno do sekcí, které ovládají jednotlivá rozhraní. Každá sekce začíná klíčovým řádkem:

iface rozhraní inet_family typ_nastavení
rozhraní
Zde nastavujeme, které rozhraní chceme ovládat: buď přímo fyzické rozhraní(eth0, ath0), nebo virtuální, na které se podíváme později.
inet_family

Vybíráme, s jakým typem adres chceme pracovat; na výběr máme:

typ_nastavení

Liší se podle inet_family, například:

inet_family=inet neboli nastavení IPv4

typ_nastavení static

Pokud vybereme nastavení static, nabízí nám interfaces tyto zajímavé možnosti (kompletní výčet v man interfaces):

address
Pomocí této volby nastavíme klasické IPv4. Tato volba je povinná.
netmask
Síťová maska naší sítě v tečkovaném tvaru, tj. například 255.255.255.0 pro klasickou domácí síť ve třídě C. Tato volba je povinná.
gateway
Adresa výchozí brány pro komunikaci se stroji mimo naši síť.
hwaddress
Můžeme nastavit klasickou MAC adresu, použití je ve tvaru hwaddress ether 01:02:03:04:05:06, pokud někdo používá jiný typ sítě než ethernet, ať hledá detaily v man interfaces.
iface eth0 inet static
    address 1.2.3.4
       # naše veřejná IP adresa, kterou použijeme za chvíli
       # pro konfiguraci IPv6

    netmask 255.255.192.0
    gateway 1.2.3.1
    post-up echo "domain něco" > /etc/resolv.conf 
    post-up echo "search něco" >> /etc/resolv.conf 
    post-up echo "nameserver ip.adresa.dns.serveru" >> /etc/resolv.conf
    post-up echo "nameserver ip.adresa.dns.serveru" >> /etc/resolv.conf
    post-up dns-search "jméno domény, do které stroj patří"
        # alternativa, oproti přímému vyplnění /etc/resolv.conf

    post-up dns-nameservers 1.2.3.1 1.2.3.2

typ_nastavení dhcp

Pro běžné použití jsou zajímavé volby (některé jsou závislé na typu DHCP klienta, v takovém případě je klient v závorce):

client
Identifikátor klienta, podle kterého může DHCP server přidělit speciální nastavení (dhcpcd, udhcpc).
hwaddress
Umožnuje nám, stejně jako v případě statického nastavení, změnit MAC adresu.

V případě, že testujete DHCP server a chcete kratší doby pro přidělování adres, využijete následující možnosti:

leasehours
Jak často obnovovat IP adresu v hodinách (pump).
leasetime
Opět volba vynucující kontrolu nastaveni DHCP serveru, ale v sekundách (volba funguje v DHCP klientu dhcpcd).
iface eth1 inet dhcp
    hwaddress ether 01:02:03:04:05:06
        # naše MAC adresa, kterou jsme si nechali registrovat
        # do nějaké sítě, která tento způsob ochrany používá

    post-up /etc/init.d/openvpn start ipv6_1wan
    pre-down /etc/init.d/openvpn stop ipv6_1wan
        # protože na tomto rozhraní nemáme k dispozici IPv6,
        # přivedeme si ji OpenVPN tunelem ze serveru

typ_nastavení loopback

Rozhraní, které by mělo být v každém stroji, je loopback. Jeho syntaxe je:

iface lo inet loopback

typ_nastavení ostatni

Toto určitě nebyl uplný popis všech možností nastavení, další možnosti jsou: bootp, ppp, qvdial, detaily hledejte v man interfaces.

inet_family=inet6 neboli nastavení IPv6

Pokud v inet_family uvedeme inet6, máme obdobné možnosti nastavení jako v inet4.

typ_nastavení static

Pokud z nějakého důvodu nechceme nebo nemůžeme použít autokonfiguraci, která je (mimo jiná témata) velmi pěkně popsána v článku IPv6 - nový internet od Pavla Śimerdy, můžeme použít statickou konfiguraci podobně jako u IPv4.

address
IPv6 adresa. Každé 2B oddělené dvojtečkou. Povinná položka.
netmask
Síťová maska, na rozdíl od IPv4 se udává jako počet bitů síťové části, nejběžněji 48 nebo 64.
gateway
Brána pro komunikaci se stroji mimo naši síť. Každé 2B jsou odděleny dvojtečkou.
hwaddress
Umožňuje změnit hardwarovou adresu naší síťové karty: pro běžný ethernet je syntaxe: hwaddreess ether 01:02:03:04:05:06.
mtu
Umožňuje změnit typ MTU pro naši síť.
iface eth2 inet6 static
    address 2001:15c0:1234:1::2
    netmask 64
    gateway 2001:15c0:1234:1::1

typ_nastavení v4tunnel

Umožňuje nastavit ipv6-over-ipv4 tunnel (6to4). Vyžaduje příkaz ip (balík iproute). Možnosti jsou:

address

Naše IPv4 adresa převedená do IPv6 tvaru například pomocí:

printf "2002:%02x%02x:%02x%02x::1\n" 1 2 3 4 
netmask
Udává počet bitů síťové části.
endpoint
IPv4 adresa cílového bodu našeho tunelu rozdělená tečkami.
local
Místní IPv4 adresa.
gateway
Výchozí brána pro náš stroj.
ttl
umožňuje nastavit délku života našich paketů. Maximum je 255.
iface tun6to4 inet6 v4tunnel
    local 1.2.3.4 #naše veřejná ipv4 adresa
    address 2002:0102:0304::1
    netmask 16
        # síťová maska; pozor, pouze ve tvaru, ve kterém systému
        # řekneme, kolik bitů patří do síťové části adresy,
        # u 6to4 tunelu je to 16

    gateway ::192:88.99.1
        # speciální adresa nejbližšího 6to4 routeru

    endpoint any
	#nedefinujeme žádný konkétní cílový stroj

IPX

V tomto článku nezmiňuji nastavení IPX, pokud někoho zajímá, detaily lze nalézt v man interfaces.

Závěr

V dnešním článku jsme se podívali na základní práci s Debian interfaces. Pokud bude zájem, příště bychom se ve volném pokračování podívali na virtuální rozhraní, podporu WiFi a NetworkManageru, plus možná nějaké zajímavosti.

Související články

DHCP - 1 (instalace a konfigurace serveru)
DHCP - 2 (DDNS, relay agent, klient)
VNC - používáme vzdálený desktop
Seriál: IPv6
Čo keď nechodí sieť?

Odkazy a zdroje

Debian Reference - Network configuration

Další články z této rubriky

Úvod do Dockeru (1)
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Unixové nástroje – 26 (triky pro práci v Bashi)
Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
Linux: systémové volání splice()

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.