## IP commando (oude ifconfig)

Je kunt IP-adressen, netwerkinterfaces en routeringsregels on-the-fly configureren met de Linux- `ip`opdracht. We laten je zien hoe je deze moderne vervanging van de klassieker (en nu verouderde) kunt gebruiken `ifconfig`.

## Hoe het ip-commando werkt

Met de `ip`opdracht kun je de manier aanpassen waarop een Linux-computer omgaat met IP-adressen, netwerkinterfacescontrollers (NIC's) en routeringsregels. De wijzigingen worden ook onmiddellijk van kracht - je hoeft niet opnieuw op te starten. De `ip`opdracht kan veel meer dan we nu gaan behandelen.

De `ip`opdracht heeft veel subopdrachten, die elk werken op een bepaald type object, zoals IP-adressen en routes. Voor elk van deze objecten zijn er weer vele opties. Het is deze rijkdom aan functionaliteit die de `ip`opdracht de kracht geeft die je nodig hebt om wat delicate taken uit te voeren. Dit is geen bijlwerk - het vraagt ​​om een ​​set scalpels.

We kijken naar de volgende objecten:

- Address : IP-adressen en bereiken.
- Link : netwerkinterfaces, zoals bedrade verbindingen en wifi-adapters.
- Route : de regels die de routering beheren van verkeer dat `addresses` via interfaces ( `links`) wordt verzonden .

## IP gebruiken met adressen

Uiteraard moet je eerst de instellingen kennen waarmee je te maken hebt. Om te ontdekken welke IP-adressen je computer heeft, gebruik je de `ip`opdracht bij het object `address`. De standaardactie is `show`, waarin de IP-adressen worden vermeld. Je kunt het ook weglaten `show` en afkorten `address` als "addr" of zelfs "a."

De volgende opdrachten zijn allemaal gelijkwaardig:

    ip address show

    ip addr show

    ip addr

    ip a

We zien twee IP-adressen, samen met veel andere informatie. IP-adressen zijn gekoppeld aan netwerkinterfacecontrollers (NIC's). De `ip`opdracht probeert behulpzaam te zijn en biedt ook een heleboel informatie over de interface.

Het eerste IP-adres is het (interne) loopback-adres dat wordt gebruikt om binnen de computer te communiceren. De tweede is het daadwerkelijke (externe) IP-adres dat de computer heeft op het lokale netwerk (LAN).

Laten we alle informatie die we hebben ontvangen opsplitsen:

- lo : De naam van de netwerkinterface als een tekenreeks.
- <LOOPBACK, UP, LOWER_UP>: Dit is een loopback-interface. Het is `UP`, wat betekent dat het operationeel is. De fysieke netwerklaag (laag één) is ook actief.
- mtu 65536: De maximale transfereenheid. Dit is de grootte van de grootste hoeveelheid gegevens die deze interface kan verzenden.
- qdisc noqueue: A `qdisc`is een wachtrijmechanisme. Het plant de verzending van pakketten. Er zijn verschillende wachtrijtechnieken die disciplines worden genoemd. De `noqueue`discipline betekent "direct verzenden, niet in de rij staan". Dit is de standaarddiscipline `qdisc`voor virtuele apparaten, zoals het loopback-adres.
- state UNKNOWN: Dit kan zijn `DOWN`(de netwerkinterface is niet operationeel), `UNKNOWN`(de netwerkinterface is operationeel maar er is niets aangesloten), of `UP`(het netwerk is operationeel en er is een verbinding).
- group default: Interfaces kunnen logisch gegroepeerd worden. De standaardinstelling is om ze allemaal in een groep met de naam 'standaard' te plaatsen.
- qlen 1000: De maximale lengte van de transmissiewachtrij.
- link / loopback: Het MAC-adres ( Media Access Control ) van de interface.
- inet 127.0.0.1/8: Het IP-versie 4-adres. Het deel van het adres na de schuine streep ( `/`) is Classless Inter-Domain Routing Notation (CIDR) dat het subnetmasker vertegenwoordigt.
- scope host: het IP-adresbereik. Dit IP-adres is alleen geldig binnen de computer (de "host").
- valid_lft: geldige levensduur. Voor een IP-adres van IP-versie 4 dat is toegewezen door Dynamic Host Configuration Protocol (DHCP), is dit de tijdsduur dat het IP-adres als geldig wordt beschouwd en in staat is om verbindingsverzoeken te doen en te accepteren.
- preferred_lft: Gewenste levensduur. Voor een IP-adres van IP-versie 4 dat is toegewezen door DHCP, is dit de hoeveelheid tijd dat het IP-adres zonder beperkingen kan worden gebruikt. Dit mag nooit groter zijn dan de `valid_lft`waarde.
- inet6 : Het IP versie 6-adres, `scope`, `valid_lft`, en `preferred_lft`.

De fysieke interface is interessanter, zoals we hieronder zullen laten zien:

- ens33: De naam van de netwerkinterface als een tekenreeks.
- <BROADCAST, MULTICAST, UP, LOWER_UP>: Deze interface ondersteunt broad- en multicasting , en de interface is `UP`(operationeel en verbonden). De hardwarelaag van het netwerk (laag één) is ook `UP`.
- mtu 1500: De maximale overdrachtseenheid die deze interface ondersteunt.
- qdisc fq_codel: De planner gebruikt een discipline genaamd "Fair Queuing, Controlled Delay." Het is ontworpen om een ​​eerlijk deel van de bandbreedte te bieden aan alle verkeersstromen die de wachtrij gebruiken.
- state UP: De interface is operationeel en aangesloten.
- group default: Deze interface bevindt zich in de "standaard" interfacegroep.
- qlen 1000: De maximale lengte van de transmissiewachtrij.
- link / ether: het MAC-adres van de interface.
- inet 192.168.182.128/24: Het IP-versie 4-adres. De "/24" vertelt ons dat er 24 aaneengesloten leidende bits zijn ingesteld op één in het subnetmasker. Dat zijn drie groepen van acht bits. Een acht-bits binair getal is gelijk aan 255; daarom is het subnetmasker 255.255.255.0.
- brd 192.168.182.255: Het broadcast-adres voor dit subnet.
- scope global: het IP-adres is overal op dit netwerk geldig.
- dynamisch: het IP-adres gaat verloren als de interface uitvalt.
- noprefixroute: Maak geen route in de routetabel wanneer dit IP-adres wordt toegevoegd. Iemand moet handmatig een route toevoegen als hij er een wil gebruiken met dit IP-adres. Evenzo, als dit IP-adres is verwijderd, zoek dan geen route om te verwijderen.
- enp2s1: De interface waaraan dit IP-adres is gekoppeld.
- valid_lft: geldige levensduur. De tijd waarop het IP-adres als geldig wordt beschouwd; 1089 seconden.
- preferred_lft: Gewenste levensduur. De tijd dat het IP-adres zal werken zonder enige beperking.
- inet6: Het IP-versie 6-adres, `scope`, `valid_lft`, en `preferred_lft`.

## Alleen IPv4- of IPv6-adressen weergeven

Als je de uitvoer wilt beperken tot de IP-versie 4-adressen, kun je de `-4`optie als volgt gebruiken:

    ip -4 address

Als je de uitvoer wilt beperken tot de IP-versie 6-adressen, kunt je de `-6` optie als volgt gebruiken:

    ip -6 address

## Informatie weergeven voor een enkele interface

Als je het IP-adres informatie wilt zien voor een enkele interface, kun je `show`en `dev`opties gebruiken, en de naam van de interface, zoals hieronder weergegeven:

    ip addr show dev lo

    ip addr show dev ens33

Je kunt ook de vlag `-4`of gebruiken `-6`om de uitvoer verder te verfijnen, zodat je alleen datgene ziet waarin je geïnteresseerd bent.

Als je de IP-versie 4-informatie met betrekking tot de adressen op de interface wilt zien `ens33`, typ je de volgende opdracht:

    ip -4 addr show dev ens33

## Een IP-adres toevoegen

Je kunt de opties `add`en `dev`gebruiken om een IP-adres toe te voegen aan een interface. Je hoeft alleen maar de `ip`opdracht te vertellen welk IP-adres je moet toevoegen en aan welke interface je het wilt toevoegen.

We gaan het IP-adres 192.168.182.150 toevoegen aan de `ens33`interface. We moeten ook de CIDR-notatie voor het subnetmasker opgeven.

We typen het volgende:

    sudo ip addr add 192.168.182.150/24 dev ens33

We typen het volgende om nog eens naar de IP-versie 4 IP-adressen op deze interface te kijken:

    ip -4 addr show dev ens33

Het nieuwe IP-adres is aanwezig op deze netwerkinterface. We gaan op een andere computer (in dit voorbeeld Windows host) en gebruiken de volgende opdracht om te zien of we `ping`het nieuwe IP-adres kunnen vinden:

    ping 192.168.182.150

## Een IP-adres verwijderen

Om een ​​IP-adres te verwijderen, is het commando bijna hetzelfde als het commando om er een toe te voegen, behalve dat je het vervangt `add` door `del`, zoals hieronder getoond:

    sudo ip address del 192.168.182.150/24 dev ens33

Als we het volgende typen om te controleren, zien we dat het nieuwe IP-adres is verwijderd:

    ip -4 addr show dev ens33

## IP gebruiken met netwerkinterfaces

Je gebruikt het `link`object om netwerkinterfaces te inspecteren en ermee te werken. Typ de volgende opdracht om de interfaces te zien die op je computer zijn geïnstalleerd:

    ip link show

Om een ​​enkele netwerkinterface te zien, voeg je de naam ervan toe aan de opdracht, zoals hieronder wordt weergegeven:

    ip link show ens33

## Links starten en stoppen

Je kunt de `set`optie gebruiken met `up`of `down` om een ​​netwerkinterface-optie te stoppen of te starten. Je moet `sudo`gebruiken, zoals hieronder weergegeven:

    sudo ip link set ens33 down

De staat van de netwerkinterface is `DOWN`. We kunnen de `up`optie gebruiken om een ​​netwerkinterface opnieuw te starten, zoals hieronder weergegeven:

    sudo ip link set ens33 up