NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

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.

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 adresu
  • addresses - IP adresa, kterou chceme rozhraní nastavit, /24 je tzv. CIDR, zkrácený zápis masky podsítě 255.255.255.0
  • gateway4 - výchozí brána sítě, nejčastěji IP adresa routeru
  • nameservers - 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.


 

Předchozí článek
Linuxový terminál (Bash) - Správa aplikací
Všechny články v sekci
Základy Linuxu
Článek pro vás napsal Václav Franz
Avatar
Uživatelské hodnocení:
48 hlasů
Aktivity