Lekce 15 - Linuxový terminál (Bash) - Administrace sítového rozhraní
V předchozí lekci, Linuxový terminál (Bash) - Správa aplikací, jsme si vysvětlili, jak se program v Linuxu distribuuje, kde je uložený, jak se k němu dostat a jak s ním pracovat.
V této lekci Linux tutoriálu se zaměříme na síťové rozhraní. Ukážeme si, jak získat informace o naší síti a jak nastavit síťové rozhraní zápisem do konfiguračního souboru. Ke konfiguraci sítě existují spousty možností v grafickém prostředí. Ne vždy je ale nastavení přes grafické prostředí možné. Některé virtualizační programy, například Proxmox, vyžadují nastavení sítě pouze přes konfigurační soubor, jiné neuznávají. My se dnes naučíme administrovat síť v Ubuntu pomocí Terminálu.
Ip
Příkaz ip
je užitečný nástroj pro zjišťování
informací o síti a jejím nastavení. Dnes si ukážeme, jak zjistit informace
o jednotlivých rozhraních naší sítě, kolik dat síťovým rozhraním
protéká, a jak rozhraní zapnout nebo vypnout.
Ip link
Nejprve si zjistíme, jaká rozhraní se v našem PC nachází a jaké
informace nám o sobě poskytnou. Slouží k tomu příkaz ip link
,
popř. zkráceně ip l
. Rovnou přidáme přepínač
-o
(one line), který nám výpis výrazně zpřehlední:
ip -o l 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
Jak vidíme, v počítači máme vždy minimálně dvě síťové rozhraní (v ukázkovém případě pět), kdy každé má své vlastní číslo. Pod číslem 1 je vždy LOOPBACK neboli localhost. Další rozhraní, které ve výpisu můžeme nalézt, jsou fyzická rozhraní (port pro LAN kabel), virtuální LAN (pokud jde o virtuální PC, v ukázkovém případě č. 2 a 3), dále WIFI, nebo třeba rozhraní pro VPN (č. 10 a 26).
Nebudeme si vysvětlovat, co která informace u rozhraní znamená, to je
spíše předmětem kurzu správy sítí. Nám stačí si na řádku fyzického
rozhraní (popř. WIFI) všimnout zápisu UP
nebo
DOWN
. Informace UP
nám říká, že síťové
rozhraní je aktivní, DOWN
naopak neaktivní. Pokud nám po
restartu nefunguje např. WIFI, můžeme tímto způsobem zkontrolovat, jestli
je rozhraní zapnuté.
Ip address
Příkaz ip address
, popř. zkráceně ip a
,
funguje podobně jako ip link
. Navíc ale ke každému rozhraní
vypíše přiřazenou IP adresu:
ip a 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
Další nová informace, které si můžeme všimnout, je inet
,
popř. inet6
. Jde o informace, o jaký IP protokol
se jedná. Také se můžeme setkat s označením
protocol family
:
inet
= internet protokol verze 4 (IPv4)ınet6
= internet protokol verze 6 (IPv6)
Toto využijeme hned v následujícím příkazu. Pokud spravujeme server, na
kterém je postavená virtualizace, může nás překvapit velká spousta
rozhraní. Ke většině z nich ale není přiřazena žádná IP adresa. Najít
IP adresu např. našeho fyzického rozhraní tak může být náročné.
Přepínačem -4
si zobrazíme pouze rozhraní s přidělenou IPv4
adresou, přepínačem -6
zase s IPv6:
ip -4 a
Poslední užitečný přepínač k ip address
je
-s
(statistic). Vrátí nám ke každému rozhraní informaci,
kolik dat již přes něj proteklo. Ve výchozím nastavení jsou data vypsaná
v bitech, proto přidáme přepínač -h
(human-readable), který
data převede do Megabitů, popř. Gigabitů:
ip -s -h a 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
(Transmited) nám říká, kolik dat bylo z tohoto
rozhraní odesláno (v ukázkovém případě 62,1G), RX
(Recived)
zase kolik dat bylo přijato (zde 704G).
Ip route
Přikazem ip route
nebo zkráceně ip r
si
vypíšeme do konzole všechny routy:
ip r 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
Na prvním řádku je uvedena IP adresa brány (nejčastěji náš router). IP adresa končící nulou vždy označuje IP adresu celé sítě. Počet route se může lišit v závislosti např. na použitých VPN tunelech.
Ip netns
Příkaz ip netns
, popř. ip n
, nám vrátí
ARP tabulku neboli tabulku IP všech zařízeních a jejich
MAC adres, s kterými naše síťová karta měla čest se
střetnout při komunikaci v lokální síti:
ip n
Vypnutí a zapnutí rozhraní
Příkazem ip
můžeme vypínat a zapínat jednotlivá síťové
rozhraní. Pokud potřebujeme vypnout nějaké rozhraní, využijeme k tomu
ip link
s dalším nastavením. V tomto případě je již
zapotřebí oprávnění roota. Vyzkoušíme si vypnout fyzické rozhraní.
Nejprve musíme zjistit název rozhraní, které může být na každém PC
jiné. V ukázkovém případě je název rozhraní ens18
:
ip -o l 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
Celý příkaz pak vypadá takto:
sudo ip l set ens18 down
Po vypsání seznamu rozhraní zjistíme, že UP
se změnilo na
DOWN
.
Naopak pro zapnutí rozhraní využijeme stejný příkaz, jen s
přívlastkem up
:
sudo ip l set ens18 up
Konfigurační soubor
Nyní si ukážeme, jak pomocí terminálu nastavit statickou, popř.
dynamickou IP adresu pro naše rozhraní. To uskutečníme zápisem do
konfiguračního souboru sítě, který se nachází v
/etc/netplan/01-network-manager-all.yaml
. Pro zápis je zapotřebí
oprávnění roota:
sudo nano /etc/netplan/01-network-manager-all.yaml
V příkladu je název rozhraní ens18
, každý si musí dosadit
to svoje. V konfiguračním souboru nalezneme tento zápis:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Statická IP adresa
Pro nastavení statické IP adresy změníme zápis na tento:
network: version: 2 renderer: NetworkManager ethernets: ens18: dhcp4: no addresses: - 192.168.72.140/24 gateway4: 192.168.72.2 nameservers: addresses: [8.8.8.8, 8.8.4.4]
Nyní si vysvětlíme, co jednotlivé řádky znamenají:
dhcp4: no
- tímto říkáme Linuxu, že chce vypnout DHCP a využít ručně nastavenou IP adresuaddresses
- IP adresa, kterou chceme rozhraní nastavit,/24
je tzv.CIDR
, zkrácený zápis masky podsítě 255.255.255.0gateway4
- výchozí brána sítě, nejčastěji IP adresa routerunameservers
- DNS servery, v tomto případě 8.8.8.8 a 8.8.4.4. Pokud nemáme specificky nastavenou síť, tyto budou fungovat vždy.
Číslo 4 u dhcp
a gateway
označuje,
že se jedná o IPv4
Dynamická IP adresa
Přidělení IP adresy z DHCP serveru je nastaveno jako výchozí, tudíž není potřeba ho nastavovat ručně. Pokud se ale dostaneme do situace, že je zapotřebí tuto informaci Linuxu sdělit, celý zápis vypadá takto:
network:
version: 2
renderer: NetworkManager
ethernets:
ens18:
dhcp4: yes
addresses: []
Pokud máte jinou distribuce než Ubuntu, umístění, název a zápis do konfiguračního souboru se může lišit. Vždy je třeba si najít návod pro konkrétní distribuci.