Filters
Zo zoek je
  • Gewone woorden vinden namen, teksten en voorbeelden.
  • "twee woorden" vindt precies die zin.
  • --naam of -x vindt een optie.
  • #woord zoekt alleen in commando's.
  • @grep vindt lessen en labs die grep gebruiken.
  • Filters: cat:network · in:labs · in:notes · level:rhcsa · ch:8 · root:yes. Zet ! voor een woord om het weg te laten. OR tussen woorden betekent één ervan.
  • ↑ ↓ bewegen · Enter openen · Esc sluiten · / zoeken

ip

Netwerkkaarten, adressen, routes en buren tonen en wijzigen (de live instellingen van de kernel).

Niveau
RHCSA-examen
Groep
Netwerk
Root nodig
Voor wijzigingen
Pakket
iproute

Wat het doet

ip praat rechtstreeks met de Linux-kernel. Het toont het netwerk precies zoals het nu werkt: elk adres, elke route en de status van elke kaart. Iedereen mag lezen; om te wijzigen heb je root nodig.

Wijzigingen met ip zijn tijdelijk. Ze zijn weg na een herstart of als NetworkManager de kaart opnieuw instelt. Gebruik ip om te kijken en te testen; gebruik nmcli voor instellingen die moeten blijven.

ip vervangt de oude tools ifconfig, route en arp. Elk deel van het netwerk is een object: address, link, route, neigh en meer. Objecten en commando's mag je afkorten: ip a = ip address show, ip r = ip route show.

Zo schrijf je het

ip [OPTIONS] OBJECT { COMMAND | help }
ip address { show | add | del | flush } [ dev IFNAME ] ...
ip link { show | set | add | del } [ dev IFNAME ] ...
ip route { show | get | add | del | replace | flush } ...
ip neigh { show | add | del | flush } ...

Belangrijkste delen

address (a, addr)
IPv4- en IPv6-adressen op de kaarten. show, add, del, flush.
link (l)
De netwerkkaarten zelf: status up of down, MAC-adres, MTU, type.
route (r)
De routeringstabel: de standaardgateway en de andere routes. show, get, add, del.
neigh (n, neighbour)
Buren: de tabel van IP naar MAC (ARP voor IPv4, NDP voor IPv6).
rule (ru)
Regels voor policy routing: welke routeringstabel voor welk verkeer.
netns
Netwerk-namespaces, gebruikt door containers. list, add, exec, del.
monitor
Wijzigingen van adressen, links en routes live volgen.
maddress
Multicastadressen.
tunnel, tuntap
Tunnels (GRE, IPIP) en TUN/TAP-apparaten voor VPN's.
xfrm
IPsec-instellingen.

Opties 34

Meest gebruikt

Uitvoer

-br, -brief
Korte uitvoer: één regel per kaart met alleen de status en de adressen.
-c, -color[=always|auto|never]
Kleuren voor namen, adressen en statussen.
-4
Alleen IPv4. Kort voor -family inet.
-6
Alleen IPv6. Kort voor -family inet6.
-f, -family family
Kies de protocolfamilie: inet, inet6, link, bridge, mpls.
-0
Alleen de linklaag (MAC-adressen). Kort voor -family link.
-o, -oneline
Elk record op één regel. Makkelijk met grep en awk.
-s, -stats, -statistics
Voeg tellers toe: pakketten, fouten, verloren. Twee keer voor meer.
-d, -details
Toon meer details, zoals het type van een link (vlan, bond, bridge).
-h, -human, -human-readable
Toon tellers in leesbare eenheden (K, M, G).
-iec
Leesbare eenheden met machten van 1024 (Ki, Mi).
-j, -json
Uitvoer in JSON, voor scripts en tools zoals jq.
-p, -pretty
Met -json: ingesprongen JSON die makkelijk te lezen is.
-r, -resolve
Toon DNS-namen in plaats van adressen.
-N, -Numeric
Toon nummers voor protocollen en scopes, geen namen.
-t, -timestamp
Met ip monitor: zet de tijd bij elke gebeurtenis.
-ts, -tshort
Zoals -timestamp, maar korter.

Werken

-n, -netns name
Voer het commando uit in een netwerk-namespace.
-a, -all
Voer het commando uit op alle objecten, bijvoorbeeld in alle namespaces.
-b, -batch file
Lees veel ip-commando's uit een bestand (of - voor stdin).
-force
Ga in batchmodus door na fouten.
-l, -loops count
Hoe vaak ip address flush probeert (standaard 10, 0 = tot alles weg is).
-rc, -rcvbuf size
Grootte van de netlink-ontvangstbuffer.
-echo
Vraag de kernel om de gemaakte wijziging terug te sturen.
-V, -Version
Toon de versie.

Woorden bij address, link en route

dev IFNAME
De netwerkkaart, zoals enp1s0.
via ADDR
De volgende router (gateway) van een route.
default
De standaardroute (0.0.0.0/0 of ::/0).
metric n
De kosten van een route. De laagste metric wint.
up, down
Met ip link set: een kaart aan- of uitzetten.
mtu bytes
Met ip link set: de maximale pakketgrootte.
address MAC
Met ip link set: het MAC-adres wijzigen.
scope {global|link|host}
Waar een adres geldig is. host = alleen deze computer.
label name
Een naam voor een extra IPv4-adres, zoals enp1s0:1.

Voorbeelden 15

$ als gewone gebruiker# als root (of met sudo)

  1. 1Alle adressen op alle kaarten tonen

    ip a
    ip -br -c a
    lo               UNKNOWN        127.0.0.1/8 ::1/128
    enp1s0           UP             192.168.122.10/24 fe80::5054:ff:fe3a:7c01/64

    -br toont één regel per kaart. Dit is de snelste gezondheidscheck op een nieuwe server.

  2. 2Alleen het IPv4-adres van één kaart tonen

    ip -4 -o addr show dev enp1s0 | awk '{print $4}'
    192.168.122.10/24

    -o zet elk adres op één regel, zodat awk het 4e veld kan pakken. Goed in scripts.

  3. 3De standaardgateway vinden

    ip route show default
    default via 192.168.122.1 dev enp1s0 proto static metric 100

    Geen default-regel betekent dat de server geen andere netwerken kan bereiken.

  4. 4Zien welke route en welk bronadres één bestemming gebruikt

    ip route get 10.20.5.7
    10.20.5.7 via 192.168.122.254 dev enp1s0 src 192.168.122.10 uid 1000

    Heel handig als een server twee kaarten of een VPN heeft: je ziet via welke kaart en met welk adres het verkeer vertrekt.

  5. 5Een kaart controleren op fouten en verloren pakketten

    ip -s -h link show enp1s0

    Oplopende fouten of drops wijzen op een slechte kabel, een slechte driver of een volle buffer. Vergelijk twee keer met een minuut ertussen.

  6. 6De MAC-adressen van alle kaarten tonen

    ip -br link
    lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
    enp1s0           UP             52:54:00:3a:7c:01 <BROADCAST,MULTICAST,UP,LOWER_UP>

    Het MAC-adres is nodig voor DHCP-reserveringen en voor sommige softwarelicenties.

  7. 7Een testadres toevoegen voor een paar minuten (tijdelijk)

    ip addr add 192.168.122.50/24 dev enp1s0
    ip addr del 192.168.122.50/24 dev enp1s0

    Goed voor een snelle test. NetworkManager of een herstart haalt het toch weg. Gebruik nmcli voor een vast adres.

  8. 8Een route toevoegen voor een test (tijdelijk)

    ip route add 10.30.0.0/16 via 192.168.122.254 dev enp1s0
    ip route del 10.30.0.0/16

    Test eerst met ip. Als het werkt, bewaar het met nmcli con mod enp1s0 +ipv4.routes "10.30.0.0/16 192.168.122.254".

  9. 9De buren tonen (ARP-tabel)

    ip neigh show
    192.168.122.1 dev enp1s0 lladdr 52:54:00:aa:bb:cc REACHABLE

    Twee IP-adressen met hetzelfde MAC-adres, of een gateway-MAC die verandert, kan wijzen op ARP-spoofing.

  10. 10Een verkeerde buurregel wissen

    ip neigh flush dev enp1s0

    Nadat je een router vervangt of een IP-adres naar een andere server verhuist, kunnen oude regels het verkeer even blokkeren.

  11. 11Een kaart uit- en aanzetten

    ip link set enp1s0 down
    ip link set enp1s0 up

    Doe dit niet via SSH op de kaart die je gebruikt: je verliest de verbinding.

  12. 12De MTU wijzigen voor een test

    ip link set dev enp2s0 mtu 9000
    ip link show enp2s0 | grep -o 'mtu [0-9]*'
    mtu 9000

    Jumboframes helpen bij opslagnetwerken. Alle switches en servers op de weg moeten dezelfde MTU gebruiken.

  13. 13Adressen als JSON ophalen voor een script

    ip -j addr show dev enp1s0 | jq -r '.[0].addr_info[] | select(.family=="inet") | .local'
    192.168.122.10

    JSON-uitvoer verandert niet tussen versies, dus scripts gaan niet stuk.

  14. 14In een netwerk-namespace van een container kijken

    ip netns list
    ip netns exec blue ip -br a

    Containers en sommige VPN-tools gebruiken namespaces. Elke namespace heeft eigen kaarten en routes.

  15. 15Netwerkwijzigingen live volgen

    ip -t monitor address route

    Toont elke wijziging van adressen en routes met de tijd. Druk op Ctrl+C om te stoppen. Handig als een DHCP-lease of een VPN routes wijzigt.

Let op

  • Alle wijzigingen met ip zijn weg na een herstart. NetworkManager kan ze ook eerder overschrijven.
  • ip link set DEV down via SSH op dezelfde kaart verbreekt je verbinding.
  • ip addr flush dev DEV haalt alle adressen van de kaart weg.
  • Lees het masker: 192.168.122.10/24 en 192.168.122.10/32 zijn heel verschillend.

Bestanden

/etc/iproute2/rt_tables
Namen van de routeringstabellen (gebruikt door policy routing).
/proc/net/dev
Ruwe tellers van alle kaarten (wat ip -s link toont).
/sys/class/net/
Eén map per netwerkkaart met de instellingen.

Tips om te onthouden

  • Lees de objecten als vragen: a = welke adressen? r = welke weg? l = welke kaarten? n = wie staat naast me?
  • ip -br a en ip r zijn de eerste twee commando's bij elk kapot netwerk.
  • Kijk met ip, wijzig met nmcli.

Volledige handleiding

Deze pagina legt het commando uit in eenvoudige woorden. De originele handleiding heeft elk detail.

In je terminal: man 8 ip