Linux Commande ip

La commande ip fait partie du paquet iproute.

En fonction de l’argument, la commande ip effectue différentes fonctions:

ip addr gère la configuration ip d’une machine sous Linux.

ip link gère l’état des interfaces réseaux.

ip route affiche la table de routage.

ip neigh gère la table arp.

Pour préciser la version d’IP (IPv4 ou IPv6), la commande sera ip -4 ou ip -6 (par exemple: ip -6 addr).

Voici quelques exemples d’utilisation de cette commande.

Utilisation de la commande ip addr pour la configuration d’interface

Dans les exemples qui suivent, le nom de l’interface, les adresses IP ou Mac sont données à titre indicatif.

Affichage de toutes les interfaces réseaux

Commande: ip addr

[root@centos ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:f9:dd:63 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 84341sec preferred_lft 84341sec
[root@centos ~]#

Il est possible d’utiliser le raccourci suivant:

Commande: ip a

Affichage de l’adresse IP d’une interface réseau

Commande: ip addr show dev eth0

[root@centos ~]# ip addr show dev enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:f9:dd:63 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 83976sec preferred_lft 83976sec

Ajout d’une adresse IP et d’un masque de sous réseau à une interface

Attention: cette commande n’enregistre pas l’IP et le masque de sous réseau dans la configuration. Donc, quand la machine redémarre la configuration de l’adressage IP est perdue.

Commande: ip addr add 192.168.100.10/24 dev eth0

[root@centos ~]# ip addr add 10.0.2.123/24 dev enp0s3

[root@centos ~]# ip -4 addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 83710sec preferred_lft 83710sec
inet 10.0.2.123/24 scope global secondary enp0s3
valid_lft forever preferred_lft forever

Suppression d’une adresse IP et du masque

Commande: ip addr del 192.168.100.10/24 dev eth0

[root@centos ~]# ip addr del 10.0.2.123/24 dev enp0s3

[root@centos ~]# ip -4 addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 83457sec preferred_lft 83457sec

Commande ip route pour la configuration de la table de routage

Affichage de la table de routage

Commande: ip route

[root@centos ~]# ip route
default via 10.0.2.2 dev enp0s3
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15

Configuration de la route par défaut

Attention: la route par défaut ne sera pas sauvegardé dans la configuration. En cas de redémarrage de la machine, la configuration de cette route par défaut sera perdue.

Dans l’exemple suivant, la route par défaut est 10.0.2.2 accessible via l’interface enp0s3.

Commande: ip route add default via 10.0.2.2 dev enp0s3

[root@localhost ~]# ip route add default via 10.0.2.2 dev enp0s3

Configuration du routage pour un réseau

Dans la commande suivante, la machine 192.168.1.2 sera accessible par la passerelle 10.0.3.2.

Commande: ip route add 192.168.1.2 via 10.0.3.2

[root@localhost ~]# ip route add 192.168.1.2 via 10.0.3.2

[root@localhost ~]# ip route
default via 10.0.2.2 dev enp0s3
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.3.0/24 dev enp0s8 proto kernel scope link src 10.0.3.15 metric 100
192.168.1.2 via 10.0.3.2 dev enp0s8

Autre possibilité: on indique l’interface de sorte pour le réseau.

Commande: ip route add 192.168.3.0/24 dev eth2

[root@localhost ~]# ip route add 192.168.3.0/24 dev enp0s8
[root@localhost ~]# ip route
default via 10.0.2.2 dev enp0s3
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.3.0/24 dev enp0s8 proto kernel scope link src 10.0.3.15 metric 100
192.168.1.2 via 10.0.3.2 dev enp0s8
192.168.3.0/24 dev enp0s8 scope link

Suppression d’une route

Commande: ip route delete 10.0.0.0/24 via 192.168.2.1

[root@localhost ~]# ip route delete default via 10.0.3.2 dev enp0s8

Afficher la route pour atteindre un réseau

Commande: ip route get 192.168.2.1

[root@localhost ~]# ip route get 1.2.3.4
1.2.3.4 via 10.0.2.2 dev enp0s3 src 10.0.2.15
cache
[root@localhost ~]#
[root@localhost ~]# ip route get 192.168.3.12
192.168.3.12 dev enp0s8 src 10.0.3.15
cache
[root@localhost ~]#

Commande ip link pour gérer l’état des interfaces

Activer une interface

Commande: ip link set eth0 up

[root@localhost ~]# ip link set enp0s8 up
[root@localhost ~]# ip link show enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:74:0d:eb brd ff:ff:ff:ff:ff:ff

Désactiver une interface

Commande: ip link set eth0 down

[root@localhost ~]# ip link set enp0s8 down
[root@localhost ~]# ip link show enp0s8
3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 08:00:27:74:0d:eb brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#

Modifier le MTU d’une interface

Commande: ip link set eth0 mtu 9000

[root@localhost ~]# ip link set enp0s8 mtu 9000
[root@localhost ~]# ip link show enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:74:0d:eb brd ff:ff:ff:ff:ff:ff

Afficher les informations pour toutes les interfaces

Commande: ip link

[root@localhost ~]# ip link
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:f9:dd:63 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:74:0d:eb brd ff:ff:ff:ff:ff:ff

Afficher les informations d’une interface en particulier

Commande: ip link show dev eth0

[root@localhost ~]# ip link show dev enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:f9:dd:63 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#

Afficher les statistiques des interfaces

ip -s link

[root@localhost ~]# ip -s link
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
RX: bytes packets errors dropped overrun mcast
328 4 0 0 0 0
TX: bytes packets errors dropped carrier collsns
328 4 0 0 0 0
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:f9:dd:63 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
165271 1848 0 0 0 0
TX: bytes packets errors dropped carrier collsns
127184 984 0 0 0 0

Commande ip neigh pour gérer la table arp

Afficher les adresses mac connue

Commande: ip neigh

[root@localhost ~]# ip neigh
10.0.2.2 dev enp0s3 lladdr 52:54:00:12:34:56 REACHABLE
10.0.3.2 dev enp0s8 lladdr 52:54:00:12:98:78 REACHABLE
[root@localhost ~]#

Afficher le cache arp pour une interface réseau

Commande: ip neigh show dev eth0

[root@localhost ~]# ip neigh show dev enp0s3
10.0.2.2 lladdr 52:54:00:12:34:56 REACHABLE

Modification de la table arp

Ajout d’une adresse mac correspondante à une adresse IP

Commande: ip neigh add 192.168.0.1 lladdr 52:10:43:54:76:98 dev eth0

[root@localhost ~]# ip neigh add 10.0.2.124 lladdr 52:10:43:54:76:98 dev enp0s3

Suppression d’une entrée dans la table arp

Commande: ip neigh del 192.168.0.1 dev eth0

[root@localhost ~]# ip neigh del 10.0.2.124 dev enp0s3

Modifier une adresse mac

Commande: ip neigh replace 192.168.0.1 lladdr 52:10:43:54:76:98 dev eth0

[root@localhost ~]# ip neigh
10.0.2.2 dev enp0s3 lladdr 52:54:00:12:35:02 REACHABLE
10.0.2.124 dev enp0s3 lladdr 52:10:43:54:76:98 PERMANENT
[root@localhost ~]# ip neigh replace 10.0.2.124 lladdr 00:10:43:54:76:98 dev enp0s3
[root@localhost ~]# ip neigh
10.0.2.2 dev enp0s3 lladdr 52:54:00:12:35:02 REACHABLE
10.0.2.124 dev enp0s3 lladdr 00:10:43:54:76:98 PERMANENT