UNIX a Internet

Síťová rozhraní

Autor: Jiří Hnídek / jiri.hnidek@tul.cz

Síťová rozhraní (Network Interfaces)

  • Nejčastěji se jedná o síťovou kartu, ale může jít také o loopback, bridge, tunel, apod.
  • Rozhraní přijímá a vysílá IP datagramy.
  • IP datagramy vytváří a plánuje TCP/UDP stack.

Ovladače síťových rozhraní

  • Seznam síťových rozhraní zveřejňuje jádro:
    • cat /proc/net/dev
  • Každému síťovému rozhraní přísluší jaderný ovladač:
    • ls -l /sys/class/net/<network_interface>/device/driver
  • Seznam všech modulů pro síťové ovladače je v adresáři:
    • /lib/modules/${uname -r}/kernel/drivers/net/

Automatické závadění jaderných modulů

  • O zavádění modulů se většinou stará démon udevd nebo jeho obdoba.
    • Při startu si přečte z nainstalovaných ovladačů tabulku podporovaných ID zařízení.
    • Pokud je do systému připojeno nové zařízení, tak podle jeho ID zavede příslušný ovladač.
    • viz.: lspci -n (případně: lsusb -v)

Loopback

Virtuální síťové rozhraní, které je v počítači přítomné vždy, přestože počítač není připojen k síti ani nemá žádnou síťovou kartu.

  • IPv4 adresa: 127.0.0.1, maska 255.0.0.0
  • IPv6 adresa: ::1, délka prefixu: 128
  • IP datagram s adresou 127.x.x.x nesmí opustit počítač
  • Podporováno na všech OS
  • IPv4 umožňuje vytvářet další loopbacky (127.0.0.2, 127.0.0.3, atd.)
  • MTU: 65536 Bytů

Správa síťových rozhraní

Názvy rozhraní jsou určeny:

  • Podle preferencí tvůrců ovladačů
  • Podle MAC adresy při vzniku zařízení
    • /etc/udev/rules.d/70-persistent-net.rules
  • Pomocí příkazu ip
  • Startovací skripty distribuce
  • NetworkManager

NetworkManager

  • Démon poskytující rozhraní pro práci se síťovými rozhraními
  • Několik grafických front-endů
  • Příkaz: nmcli pro správu síťových rozhraní
  • Konfigurační nástroj s textovým uživatelským rozhraním: nmtui

Konfigurace síťových rozhraní

  • Stále používaný: ifconfig
  • Náhrada za ifconfig: ip
    • Univerzální nástroj, který umí kromě správy rozhraní i další věci: směrování, tunely, apod.
  • Pro práci s wi-fi sítěmi lze použít: iwconfig, iwlist, iwspy, atd.

Konfigurační soubory

Na RedHat, CentOS a Fedoře se nacházejí v adresáři /etc/sysconfig/network-scripts/. Příklad konfiguračního souboru pro loopback (ifcfg-lo):


EVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

Příkaz ifconfig

Často používané parametry příkazu ifconfig:


ifconfig
ifconfig eth0
					

Příkaz ip

Často používané parametry příkazu ip:


$ ip link show
$ sudo ip link set eth0 up
$ sudo ip link set eth0 down
$ ip addr show
$ ip route show
					

Další nástroje

  • lspci, lsusb, lspcmcia
    • Výpis zařízení připojených na sběrnici PCI (PCIe), USB, PCMCIA
  • lsmod, modprobe, indmod, rmmod
    • Příkazy na manipulaci s jadernými moduly
  • dmesg
    • Výpis hlášení jádra Linuxu
  • mii-tool, ethtool
    • Správa fyzických síťových zařízení

Aliasy

Aliasy umožňují, aby jedno síťové zařízení může mít více IP adres.

Nejčastěji se využívá v případě virtualizace serverů.

Směrování

Soubor pravidel pro doručování IP datagramu k cílovému prvku.

  • Statické směrování
  • Dynamické směrování

Statické směrování

  • Pevně nastavené správcem systému
  • Vhodné pro malé sítě nebo koncové stanice
  • Příklad: ip route show, ip -6 route show

Dynamické směrování

  • Protokoly RIP, BGB, OSPF, ...
  • Adaptuje se na aktuální situaci
  • Autonomní systémy v zodpovědnosti příslušných providerů
  • Automatická propagace nových podsítí
  • V praxi realizováno specializovanými síťovými prvky. Výrobci: Cisco, Juniper, atd.

MTU

Hodnota MTU (Maximum Transission Unit) udává maximální velikost přenosového rámce. To je například užitečné, pokud síťový rámec podporuje tzv. JumboFrames, nebo máme virtuální síťové rozhraní používané pouze pro komunikaci mezi virtuálními stroji.

Velikost Transmit Queue

Velikost Transimt Queue (txqueue) udává počet IP datagramů, které na daném síťovém rozhraní čekají na odeslání.

Virtuální síťová rozhraní

Umožňují vytvořit virtuální síťová zařízení, které nemá fyzický ekvivalent. Taková rozhraní jsou vhodná pro:

  • Loopback
  • Virtualizace
  • Testování

Lze implementovat pomocí lo, dummy, tuntap, atd.

Nové síťového rozhraní - modul dummy

Nejprve zjistíme, jestli je zaveden jaderný modul dummy


$ sudo lsmod | grep dummy

Pokud zaveden není, tak se ho pokusíme zavést:


$ sudo modprobe dummy

Ještě jednou otestujeme:


$ sudo lsmod | grep dummy
dummy  16384  0

Nové síťové rozhraní - vytvoření

Nové rozhraní (dummy0) se automaticky vytvoří při zavedení modulu. Můžeme ho přejmenovat pomocí:


$ sudo ip link set name dum0 dev dummy0

Otestujeme, že virtuální síťové rozhraní existuje (zatím bez adresy):


$ ip link show dum0
11: dum0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:9b:85:b4:d6:dc brd ff:ff:ff:ff:ff:ff

Další síťová rozhraní

Můžeme si vytvořit libovolný počet virtuálních síťových rozhraní:


$ ip link add dum1 type dummy
$ ip link add dum2 type dummy

Nové síťové rozhraní - IPv4 adresa

Statickou síťovou adresu (IPvč) je možné nastavit pomocí:


$ sudo ip addr add 192.168.100.1/24 dev dum0

Síťové rozhraní má adresu přidělenou, ale musíme ho aktivovat:


$ sudo ip link set dum0 up

Nové síťové rozhraní - Broadcast

Příkaz ip defaultně nenastavuje síťovému rozhraní broadcast adresu. Pokud broadcast požadujeme, tak jej musíme explicitně nastavit:


$ sudo ip addr add 192.168.100.1/24 broadcast 192.168.100.255 dev dum0

Nové síťové rozhraní - IPv6 adresa

Statickou globální IPv6 adresu je možné nastavit pomocí:


$ sudo ip -6 addr add 2001:0db8:0:f101::1/64 dev dum0

Nové síťové rozhraní - alias

Síťovému zařízení můžeme přidat alias s novou IPv4 adresou následovně:


$ ip addr add 192.168.100.2/24 dev dum0 label dum0:1

Výsledek si můžeme ověřit pomocí:


$ ip link show
$ ip addr show

Nové síťové rozhraní - MTU

Síťovému rozhraní můžeme změnit MTU pomocí:


$ ip link set mtu 9000 dev dum0

Můžeme ověřit pomocí:


$ ping -s 8000 -M do 192.168.100.1

Nové síťové rozhraní - TXQueue

Velikost odchozí fronty lze upravit pomocí:


$ ip link set txqueuelen 10000 dev dum0

Nové síťové rozhraní - odstranění

Nejprve síťové rozhraní vypneme:


$ ip link set dum0 down

Následně odstraníme všechny adresy:


$ sudo ip addr del 192.168.100.1/24 brd + dev dum0 label dum0:0

A nakonec odstraníme vlastní síťové rozhraní:


$ ip link delete dum0 type dummy
$ rmmod dummy

ARP

  • Address Resolution Protocol
  • Překlad IP na MAC adresu na podsíti, aby počítače mohli komunikovat napřímo.
  • Odesílatel posílá na broadcast dotaz kdo má IP adresu 192.168.100.1
  • Nezabezpečený protokol
  • Příkazy: arp -an, ip neigh show

Resolver

Zajišťuje služby okolo DNS

  • Překlad doménového jména na IP adresu a zpět
  • Konfigurace v /etc/resolv.conf, např:
  • 
    domain tul.cz
    search tul.cz
    nameserver 147.230.16.1
    nameserver 147.230.200.1
    
  • Soubor /etc/hosts

Hostname & FQDN

  • Počítač i mimo strom DNS může mít nastaveno jméno hostname
  • Hostname můžeme nastavit pomocí např. pomocí:
    • Příkazu: hostname
    • Systémové proměné: $HOSTNAME
    • Příkazu: hostnamectl
    • Konfiguračního souboru: /etc/hostname
  • FQDN: Fully Qualified Domain Name - přesně určuje umístění počítače ve stromové struktuře DNS

Děkuji za pozornost. Nějaké otázky?