Lekce 15 - Linuxový terminál (Bash) - Administrace síťového rozhraní
V předchozím kvízu, Kvíz - Pokročilá správa systému Linux Ubuntu, jsme si ověřili nabyté zkušenosti z předchozích lekcí.
V tomto tutoriálu se zaměříme na síťová rozhraní v Linuxu. Ukážeme si, jak získat informace o síti a jak ji konfigurovat pomocí příkazového řádku a konfiguračních souborů.
Naučíme se pracovat s nástrojem ip, spravovat síťová
rozhraní a nastavovat síť v Ubuntu pomocí nástroje
Netplan. Tento přístup je důležitý zejména na serverech
nebo ve virtualizaci, kde často není k dispozici grafické prostředí.
Nástroj ip
Příkaz ip představuje základní nástroj pro zjišťování
informací o síti a její konfiguraci. Umožňuje zobrazit síťová rozhraní,
jejich stav, IP adresy i statistiky provozu a také je zapínat nebo
vypínat.
V této části si ukážeme nejčastější použití tohoto příkazu.
Příkaz ip link
Pomocí příkazu ip link (zkráceně ip l)
zjistíme, jaká síťová rozhraní se v systému nacházejí a v jakém jsou
stavu.
Pro přehlednější výpis použijeme přepínač -o (one
line), který zobrazí každé rozhraní na jeden řádek:
ip -o l
Ve výpisu uvidíme všechna dostupná rozhraní:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\ link/ether ea:c6:c2:2a:0c:fd brd ff:ff:ff:ff:ff:ff 3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\ link/ether 16:f8:2e:52:1c:01 brd ff:ff:ff:ff:ff:ff 10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100\ link/none 26: tun1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100\ link/ether 02:3c:82:1d:fd:d6 brd ff:ff:ff:ff:ff:ff
Každé rozhraní má své označení (např. lo,
ens18) a stav UP (rozhraní je aktivní), případně
DOWN (rozhraní je neaktivní).
Rozhraní lo (loopback) představuje localhost
a je přítomné vždy. Ostatní rozhraní mohou být například:
- fyzická síťová karta,
- Wi-Fi adaptér,
- virtuální rozhraní (např. ve virtualizaci),
- VPN rozhraní.
Pokud nám například po restartu nefunguje síť, můžeme pomocí tohoto příkazu rychle ověřit, zda je rozhraní zapnuté.
Příkaz ip address
Příkaz ip address (zkráceně ip a) zobrazí
detailní informace o síťových rozhraních včetně jejich IP
adres:
ip a
U jednotlivých rozhraní najdeme mimo jiné položky inet
(IPv4) a inet6 (IPv6), které označují použitý IP
protokol:
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether ea:c4:c2:2e:0c:fd brd ff:ff:ff:ff:ff:ff inet 10.181.28.141/24 brd 10.181.28.255 scope global ens18 valid_lft forever preferred_lft forever inet6 fe80::e8c4:c2ff:fe2e:cfd/64 scope link valid_lft forever preferred_lft forever
Pokud nás zajímají pouze rozhraní s přiřazenou IPv4 adresou, použijeme zápis:
ip -4 a
Podobně přepínač -6 zobrazí pouze IPv6 adresy.
Pro zobrazení statistik provozu použijeme přepínač -s
(statistics). V kombinaci s -h (human-readable)
získáme přehledný výpis velikostí dat:
ip -s -h a
Ve výpisu se například zobrazí:
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether ea:c4:c2:2e:0c:fd brd ff:ff:ff:ff:ff:ff inet 10.181.28.141/24 brd 10.181.28.255 scope global ens18 valid_lft forever preferred_lft forever inet6 fe80::e8c4:c2ff:fe2e:cfd/64 scope link valid_lft forever preferred_lft forever RX: bytes packets errors dropped overrun mcast 704G 501M 0 8.78M 0 0 TX: bytes packets errors dropped carrier collsns 62.1G 269M 0 0 0 0
Hodnota TX (transmitted) nám říká, kolik dat bylo z
tohoto rozhraní odesláno, hodnota RX (received) uvádí
objem přijatých dat.
Příkaz ip route
Pomocí příkazu ip route (zkráceně ip r)
zobrazíme směrovací tabulku systému:
ip r
Ve výpisu uvidíme, jakým způsobem systém směruje síťový provoz:
default via 10.181.27.1 dev vmbr0 proto kernel onlink 10.181.27.0/24 dev vmbr0 proto kernel scope link src 10.181.27.50
Důležité jsou zejména tyto položky:
default via– výchozí brána (obvykle router),- síť ve tvaru
192.168.1.0/24– označuje konkrétní síť, dev– síťové rozhraní, přes které komunikace probíhá.
Směrovací tabulka může obsahovat více záznamů, například při použití VPN nebo více síťových rozhraní.
Příkaz ip neigh
Příkaz ip neigh (zkráceně ip n) zobrazí tzv.
ARP tabulku, tedy přehled zařízení v lokální síti, se
kterými systém komunikoval:
ip n
Ve výpisu uvidíme přiřazení mezi IP adresami a MAC adresami jednotlivých zařízení.
Tento příkaz se hodí například při řešení problémů se sítí nebo při zjišťování, jaká zařízení jsou dostupná v lokální síti.
Zapnutí a vypnutí rozhraní
Pomocí příkazu ip můžeme jednotlivá síťová rozhraní
zapínat a vypínat. K tomu použijeme příkaz ip link, který je
v tomto případě nutné spustit s oprávněním správce.
Nejprve zjistíme název rozhraní:
ip -o l
Z výpisu vybereme například rozhraní ens18:
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\ link/ether ea:d1:c2:2c:0c:fd brd ff:ff:ff:ff:ff:ff
Následně můžeme rozhraní vypnout:
sudo ip l set ens18 down
Po opětovném vypsání rozhraní uvidíme, že se stav změnil z
UP na DOWN.
Pro zapnutí rozhraní použijeme stejný příkaz s parametrem
up:
sudo ip l set ens18 up
Konfigurační soubor
Nastavení sítě v Ubuntu se provádí pomocí nástroje
Netplan, který využívá konfigurační soubory uložené v
adresáři /etc/netplan/.
Konkrétní název souboru se může lišit, například:
01-network-manager-all.yaml,50-cloud-init.yaml,01-netcfg.yaml.
Seznam souborů zobrazíme příkazem:
ls -la /etc/netplan/
Pro úpravu konfiguračního souboru potřebujeme oprávnění správce.
Soubor otevřeme v textovém editoru nano:
sudo nano /etc/netplan/01-network-manager-all.yaml
Po otevření editoru se zobrazí obsah souboru. Ten může být již předvyplněný (například v Ubuntu Desktop), nebo může být zcela prázdný.
Typický obsah souboru vypadá takto:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Konfigurační soubory Netplanu jsou ve formátu YAML, který je citlivý na odsazení.
Používáme mezery (nikoli tabulátory) a dodržujeme konzistentní odsazení (obvykle dvě mezery na úroveň). Chybná struktura vede k nefunkční konfiguraci.
Statická IP adresa
Pro nastavení statické IP adresy upravíme (případně vyplníme) konfigurační soubor:
network: version: 2 renderer: NetworkManager ethernets: ens18: dhcp4: no addresses: - 192.168.72.140/24 routes: - to: default via: 192.168.72.2 nameservers: addresses: [8.8.8.8, 8.8.4.4]
Nastavení je možné zkopírovat (Ctrl + C) a do editoru vložit klávesovou zkratkou Ctrl + Shift + V. Důležité je dodržet správné odsazení jednotlivých řádků.
V příkladu je název rozhraní ens18, každý
si musí dosadit to svoje.
Nyní si vysvětlíme, co jednotlivé řádky znamenají:
dhcp4: no– vypnutí DHCP a použití statické IP adresy,addresses– IP adresa rozhraní (/24= maska podsítě 255.255.255.0),routes– výchozí brána (router),nameservers– DNS servery.
Číslo 4 u dhcp označuje IPv4.
Po úpravě soubor uložíme stisknutím Ctrl + O (Write Out) a potvrdíme klávesou Enter. Editor následně ukončíme kombinací Ctrl + X. Bez uložení změn se konfigurace neprojeví.
Aplikace změn
Po úpravě konfiguračního souboru je potřeba změny aplikovat:
sudo netplan try
Příkaz netplan try změny dočasně aplikuje a čeká na
potvrzení. Pokud nedojde k potvrzení, konfigurace se vrátí do původního
stavu.
Příkaz netplan apply provede změny okamžitě:
sudo netplan apply
Dynamická IP adresa
Přidělení IP adresy z DHCP serveru je ve většině případů výchozí nastavení, takže není nutné ho konfigurovat ručně. Pokud je ale potřeba toto nastavení explicitně uvést, konfigurační soubor může vypadat například takto:
network:
version: 2
renderer: NetworkManager
ethernets:
ens18:
dhcp4: yes
V tomto případě systém automaticky získá IP adresu, bránu i DNS server z DHCP serveru.
NetworkManager
Pro řešení problémů se sítí se hodí znát základní příkazy pro
práci se službou NetworkManager.
Stav služby zobrazíme příkazem:
systemctl status NetworkManager
Restart služby provedeme:
sudo systemctl restart NetworkManager
Pro zobrazení logů použijeme:
sudo journalctl -u NetworkManager -n 50
Pokud používáme jinou distribuci než Ubuntu, může se způsob konfigurace sítě lišit. Vždy je proto vhodné ověřit postup pro konkrétní distribuci.
Závěr
V této lekci jsme se seznámili se základy práce se síťovými
rozhraními v Linuxu. Ukázali jsme si, jak získat informace o síti
pomocí nástroje ip, jak spravovat síťová rozhraní a jak
konfigurovat síť pomocí nástroje Netplan. Získané
znalosti nám umožňují samostatně konfigurovat síť i v prostředí bez
grafického rozhraní.
V následujícím kvízu, Kvíz - Základy Linuxu, si vyzkoušíme nabyté zkušenosti z kurzu.


