Zoals reeds eerder vermeld in deze tips worden de network tools (net-tools) ifconfig, netstat en route, die in de terminal bij het beheer van het netwerk gebruikt worden, afgeschreven. Ze worden sinds enkele jaren vervangen door de iproute2 suite.
Iproute2 moet de oude set netwerkbeheer opdrachten, die sedert 2001 niet verder ontwikkeld werden, vervangen. Iproute2 staat dus in voor het configureren van netwerkverbindingen, routing tabellen, het beheer van de ARP tabel, enz.
Vandaag bekijken de nuttigste opdrachten die je met de nieuwe set kunt uitvoeren. Daarbij zetten we enkele oude opdrachten om naar de nieuwe suite.
NetworkManager is een dienst die zorgt dat het netwerk grotendeels automatisch beheert wordt en dat gebruikers zelf het netwerk kunnen beheren. Dit is vooral handig bij verbinden met een WiFi Access Point. Maar indien je het netwerk als beheerder wilt configureren, zoals je het zelf wilt, dan blijkt NetworkManager opeens een lastpost. Een manueel netwerkbeheer met iproute2 met een opgestarte NetworkManager heeft dus conflicten. Met de volgende opdracht schakel je NetworkManager uit:
dany@linux-nlfy:~>su
Wachtwoord: linux-nlfy:/home/dany #systemctl stop NetworkManager.service
De klassieke opdrachten om met ifconfig een netwerkverbinding te activeren en een IP adres te geven, waren:
linux-nlfy:/home/dany #ifconfig enp0s20u1 up
linux-nlfy:/home/dany #ifconfig enp0s20u1 192.168.1.3 netmask 255.255.255.0
Met iproute2 bedien je fysieke en logische netwerkverbindingen met de link subopdracht. De netwerkverbinding enp0s20u1 activeren, doe je met:
linux-nlfy:/home/dany # ip link set enp0s20u1 up
Om een IP adres aan een netwerkverbinding toe te kennen, gebruik je:
linux-nlfy:/home/dany # ip addr add 192.168.1.3/24 dev enp0s20u1
Om het resultaat te bekijken, kan je één van de volgende opdrachten uitvoeren:
linux-nlfy:/home/dany #ip addr ls
... linux-nlfy:/home/dany #ip addr show
... linux-nlfy:/home/dany #ip addr ls enp0s20u1
5: enp0s20u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 64:d1:a3:29:46:81 brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/24 brd 192.168.1.255 scope global enp0s20u1 valid_lft forever preferred_lft forever inet6 fe80::66d1:a3ff:fe29:4681/64 scope link valid_lft forever preferred_lft forever
De eerste twee opdrachten geven dezelfde informatie, terwijl de laatste opdracht enkel informatie van netwerkverbinding enp0s20u1 weergeeft.
Veronderstel dat de netwerkverbinding enp0s20u1 het IP adres 192.168.1.3 heeft en je de alias enp0s20u1:0 met IP adres 192.168.1.75 wilt aanmaken. Voorheen gebruikje daarvoor de opdracht:
linux-nlfy:/home/dany # ifconfig enp0s20u1:0 192.168.1.75 up
Om aan te duiden dat het een alias was, moest je :cijfer meegeven, met iproute2 gebruik je eenvoudig dezelfde opdracht:
linux-nlfy:/home/dany # ip addr add 192.168.1.75/24 dev enp0s20u1
Wat is het moderne alternatief voor de opdracht route -n? Simpelweg:
linux-nlfy:/home/dany #route -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 enp0s20u1 172.16.121.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1 172.16.127.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8 192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 enp0s20u1 linux-nlfy:/home/dany #ip ro
default via 192.168.1.1 dev enp0s20u1 proto static 172.16.121.0/24 dev vmnet1 proto kernel scope link src 172.16.121.1 172.16.127.0/24 dev vmnet8 proto kernel scope link src 172.16.127.1 192.168.1.0/24 dev enp0s20u1 proto kernel scope link src 192.168.1.3 metric 1
De uitvoer wordt anders weergegeven, maar bevat dezelfde informatie.
Om routes toe te voegen of te verwijderen, gebruik je de volgende syntax: ip ro add|del doel via gateway, om een route naar het lan 10.0.0.0/16 toe te voegen, gebruik je:
linux-nlfy:/home/dany #ip ro add 10.0.0.0/16 via 192.168.1.1
linux-nlfy:/home/dany #ip ro
default via 192.168.1.1 dev enp0s20u1 proto static 10.0.0.0/16 via 192.168.1.1 dev enp0s20u1 172.16.121.0/24 dev vmnet1 proto kernel scope link src 172.16.121.1 172.16.127.0/24 dev vmnet8 proto kernel scope link src 172.16.127.1 192.168.1.0/24 dev enp0s20u1 proto kernel scope link src 192.168.1.3 metric 1 linux-nlfy:/home/dany #ip ro del 10.0.0.0/16 via 192.168.1.1
linux-nlfy:/home/dany #ip ro
default via 192.168.1.1 dev enp0s20u1 proto static 172.16.121.0/24 dev vmnet1 proto kernel scope link src 172.16.121.1 172.16.127.0/24 dev vmnet8 proto kernel scope link src 172.16.127.1 192.168.1.0/24 dev enp0s20u1 proto kernel scope link src 192.168.1.3 metric 1
Als je verschillende netwerkverbindingen hebt (enp0s20u1 op het werk, wlp4s0 thuis en tun0 voor VPN) kan je om een IP adres te bereiken, nagaan welke netwerkverbinding wordt gebruikt. Om na te gaan via welke netwerkverbinding de Google DNS server (8.8.8.8) wordt bereikt, voer je de volgende opdracht uit:
linux-nlfy:/home/dany # ip route get 8.8.8.8
8.8.8.8 via 192.168.1.1 dev enp0s20u1 src 192.168.1.3
cache
Om 8.8.8.8 te contacteren gebruikt mijn computer de ethernet netwerkverbinding met het IP adres 192.168.1.3 via de gateway met het IP adres 192.168.1.1.
Iproute2 bevat een subopdracht om de ARP tabel op een UNIX computer te bekijken (equivalent van de traditionele arp -na opdracht). Je krijgt dezelfde informatie met de opdracht ip neigh.
linux-nlfy:/home/dany #arp -na
? (192.168.1.1) at 00:26:91:a5:12:34 [ether] on enp0s20u1 ? (192.168.1.65) at 64:70:02:11:f2:5f [ether] on enp0s20u1 linux-nlfy:/home/dany #ip neigh
192.168.1.1 dev enp0s20u1 lladdr 00:26:91:a5:12:34 STALE 192.168.1.65 dev enp0s20u1 lladdr 64:70:02:11:f2:5f REACHABLE