Portál AbcLinuxu, 20. dubna 2024 03:07
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.
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.
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
up příkaz2
nebo post-up příkaz3
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
pre-down /usr/sbin/ethtool -s eth1 wol g #povolení buzení PC po síti
post-down příkaz6
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).
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í
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:
inet
- klasické ipv4inet6
- značí ipv6 adresyipx
- obdoba tcp/ip pro Novell Netware sítě. typ_nastavení
Liší se podle inet_family, například:
dhcp
- načtení základních nastavení z DHCP serverustatic
- tím řekneme, že si všechno chceme nastavit samistatic
Pokud vybereme nastavení static
, nabízí nám interfaces tyto zajímavé možnosti (kompletní výčet v man interfaces):
address
netmask
gateway
hwaddress
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
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
dhcpcd
, udhcpc
).hwaddress
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
pump
).leasetime
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
loopback
Rozhraní, které by mělo být v každém stroji, je loopback. Jeho syntaxe je:
iface lo inet loopback
ostatni
Toto určitě nebyl uplný popis všech možností nastavení, další možnosti jsou: bootp
, ppp
, qvdial
, detaily hledejte v man interfaces.
Pokud v inet_family
uvedeme inet6
, máme obdobné možnosti nastavení jako v inet4.
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
netmask
gateway
hwaddress
hwaddreess ether 01:02:03:04:05:06
.mtu
iface eth2 inet6 static address 2001:15c0:1234:1::2 netmask 64 gateway 2001:15c0:1234:1::1
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
endpoint
local
gateway
ttl
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
V tomto článku nezmiňuji nastavení IPX, pokud někoho zajímá, detaily lze nalézt v man interfaces.
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.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.