15. diel - Linuxový terminál (Bash) - administrácia sitového rozhrania
V predchádzajúcej lekcii sme si vysvetlili, ako sa program v Linuxe distribuuje, kde je uložený, ako sa k nemu dostať a ako s ním pracovať.
Dnes sa pozrieme na sieťové rozhranie v Linuxe. Ukážeme si, ako získať informácie o našej sieti a ako nastaviť sieťové rozhranie zápisom do konfiguračného súboru. Na nastavenie siete existujú množstvo možností v grafickom prostredí. Nie vždy je ale nastavenie cez grafické prostredie možné. Niektoré virtualizačné programy, napríklad Proxmox, vyžadujú nastavenie siete iba cez konfiguračný súbor, iné neuznávajú. My sa dnes naučíme administrovať sieť v Ubuntu pomocou Terminálu.
Ip ##
Príkaz ip
je užitočný nástroj na zisťovanie informácií o
sieti a jej nastavení. Dnes si ukážeme, ako zistiť informácie o
jednotlivých rozhraniach našej siete, koľko dát sieťovým rozhraním
preteká, a ako rozhranie zapnúť, popr. vypnúť.
Ip link
Najprv si zistíme, aké rozhrania sa v našom PC nachádzajú a aké
informácie nám o sebe poskytnú. Slúži na to príkaz ip link
,
príp. skrátene ip l
. Rovnú pridáme prepínač -o
(one line), ktorý nám výpis výrazne sprehľadní:
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
Ako vidíme, máme v našom počítači vždy minimálne dve sieťové rozhrania (v mojom prípade päť), keď každé má svoje vlastné číslo. Pod číslom 1 je vždy LOOPBACK alebo localhost. Ďalšie rozhrania, ktoré vo výpise môžeme nájsť, sú fyzické rozhrania (port pre LAN kábel), virtuálne LAN (pokiaľ ide o virtuálne PC, v mojom prípade č. 2 a 3), ďalej WIFI, alebo napríklad rozhranie pre VPN (č. 10 a 26).
Nebudeme si vysvetľovať, čo ktorá informácia pri rozhraní znamená, to
je skôr predmetom kurzu správy sietí. Nám stačí si na riadku fyzického
rozhrania, príp. WIFI, všimnúť zápisu UP
alebo
DOWN
. Informácie UP
nám hovorí, že sieťové
rozhranie je aktívne, DOWN
naopak neaktívne. Pokiaľ nám po
reštarte nefunguje napr. WIFI, môžeme týmto spôsobom skontrolovať, či je
rozhranie zapnuté.
Ip address
Príkaz ip address
, príp. skrátene ip a
, funguje
podobne ako ip link
. Navyše ale ku každému rozhraniu vypíše
priradenú 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
Ďalšia nová informácia, ktorú si môžeme všimnúť, je
inet
, popr. inet6
. Ide o informácie, o aký
IP protokol sa jedná. Tiež sa môžeme stretnúť s
označením protocol family
.
inet
= internet protokol verzia 4 (IPv4)ınet6
= internet protokol verzia 6 (IPv6)
-4
si zobrazíme iba rozhranie s pridelenou IPv4
adresou, prepínačom -6
zase s IPv6:
ip -4 a
Posledný užitočný prepínač na ip address
je
-s
(statistic). Vráti nám ku každému rozhraniu informáciu,
koľko dát už cez neho pretieklo. V predvolenom nastavení sú dáta
vypísané v bitoch, preto pridáme prepínač -h
(human-readable),
ktorý dáta prevedie do Megabitov, popr. Gigabitov:
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 hovorí, koľko dát bolo z tohto
rozhrania odoslaných (v mojom prípade 62,1G), RX
(Recived) zase
koľko dát bolo prijatých (v mojom prípade 704G).
Ip route
Prikazom ip route
alebo skrátene ip r
si
vypíšeme do konzoly všetky 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 prvom riadku je uvedená IP adresa brány (najčastejšie náš router). IP adresa končiaca nulou vždy označuje IP adresu celej siete. Počet route sa môže líšiť v závislosti napr. na použitých VPN tuneloch.
Ip netns
Príkaz ip netns
, príp. ip n
, nám vráti
ARP tabuľku alebo tabuľku IP všetkých zariadeniach a ich
MAC adries, s ktorými naša sieťová karta mala česť sa
stretnúť pri komunikácii v lokálnej sieti:
ip n
Vypnutie a zapnutie rozhrania
Príkazom ip
môžeme vypínať a zapínať jednotlivé
sieťové rozhrania. Pokiaľ je potrebné vypnúť nejaké rozhranie, využijeme
na to ip link
s ďalším nastavením. V tomto prípade je už
potrebné oprávnenie roota. Vyskúšame si vypnúť fyzické rozhranie. Najprv
je potrebné zistiť názov rozhrania, ktoré môže byť na každom PC iné. V
mojom prípade je 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ý príkaz potom vyzerá takto:
sudo ip l set ens18 down
Po vypísaní zoznamu rozhraní zistíme, že UP
sa zmenilo na
DOWN
.
Naopak pre zapnutie rozhrania využijeme rovnaký príkaz, len s prívlastkom
up
:
sudo ip l set ens18 up
Konfiguračný súbor
Teraz si ukážeme, ako pomocou terminálu nastaviť statickú, príp.
dynamickú IP adresu pre naše rozhranie. To uskutočníme zápisom do
konfiguračného súboru siete, ktorý sa nachádza v
/etc/netplan/01-network-manager-all.yaml
. Na zápis je potrebné
oprávnenie roota:
sudo nano /etc/netplan/01-network-manager-all.yaml
V príklade je názov rozhrania ens18
, každý si musí dosadiť
to svoje. V konfiguračnom súbore nájdeme tento zápis:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Statická IP adresa
Pre nastavenie statickej IP adresy zmení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]
Teraz si vysvetlíme, čo jednotlivé riadky znamenajú:
dhcp4: no
- týmto hovoríme Linuxu, že chce vypnúť DHCP a využiť ručne nastavenú IP adresuaddresses
- IP adresa, ktorú chceme rozhranie nastaviť,/24
je tzv.CIDR
, skrátený zápis masky podsiete 255.255.255.0gateway4
- predvolená brána siete, najčastejšie IP adresa routeranameservers
- DNS servery, v tomto prípade 8.8.8.8 a 8.8.4.4. Pokiaľ nemáme špecificky nastavenú sieť, tieto budú fungovať vždy.
dhcp
a gateway
označuje, že sa jedná
o IPv4
Dynamická IP adresa
Pridelenie IP adresy z DHCP servera je nastavené ako predvolené, preto nie je potrebné ho nastavovať ručne. Pokiaľ sa ale dostaneme do situácie, že je potrebné túto informáciu Linuxu oznámiť, celý zápis vyzerá takto:
network:
version: 2
renderer: NetworkManager
ethernets:
ens18:
dhcp4: yes
addresses: []
Ak máte inú distribúciu ako Ubuntu, umiestnenie, názov a zápis do konfiguračného súboru sa môže líšiť. Vždy si treba nájsť návod pre konkrétnu distribúciu.