Iproute2

De The Linux Craftsman
Révision datée du 25 décembre 2023 à 18:17 par Jc.forton (discussion | contributions) (→‎Les Bridges)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Introduction

Iproute2 est un ensemble d'utilitaires utilisés pour contrôler le trafic TCP, UDP et IP dans Linux et a été conçu pour remplacer la suite entière des outils Unix appelé net-tools.

Correspondance

Description Outil net-tool Commande iproute2
Configuration d'adresse et lien ifconfig ip address, ip link
Tables de routage route ip route
Statistique netstat ss
Voisinage arp ip neighbour
Vlan vconfig ip link
Tunnels iptunnel ip tunnel
Multicast ipmaddr ip maddr

Configuration d'adresses

Description Commande iproute2 (full) Commande iproute2 (short)
Listing des interfaces
# ip address
# ip a
Listing d'une interfaces
# ip address show dev eth0
# ip a s eth0
Ajout / Suppression d'une adresse IP
# ip address [ add | del ] dev eth0 192.168.1.20/24
# ip a [ a | d ] dev eth0 192.168.1.20/24
Suppression de toutes les configurations
# ip address flush dev eth0
# ip a f dev eth0

Configuration de lien

Les basiques

Description Commande iproute2 (full) Commande iproute2 (short)
Affichage des liens
# ip link show
# ip l sh
Activation / Désactivation d'une interface
# ip link set eth0 [ up | down ]
# ip l s eth0 [ up | down ]
Mettre un alias
# ip link set dev eth0 alias "LAN"
# ip l s dev eth0 al "LAN"
Renommer une interface (l'interface doit être down)
# ip link set dev eth0 name lan
# ip l s dev eth0 name lan
Changer l'adresse MAC d'une interface
# ip link set dev eth0 address 00:01:02:03:04:05
# ip l s dev eth0 a 00:01:02:03:04:05
Changer le MTU (Maximum Transmission Unit) pour des trames Jumbo
# ip link set dev eth0 mtu 7000
# ip l s dev eth0 mtu 7000
Activer / Désactiver le multicast sur une interface
# ip link set eth0 multicast [ on | off ]
# ip l s eth0 multicast [ on | off ]
Activer / Désactiver ARP sur une interface
# ip link set eth0 arp [ on | off ]
# ip l s eth0 arp [ on | off ]

Les VLANs

Description Commande iproute2 (full) Commande iproute2 (short)
Ajout d'un VLAN
# ip link add link eth0 name eth0.1 type vlan id 1
# ip l a l eth0 name eth0.1 t vlan id 1
Suppression d'un VLAN
# ip link del eth0.1
# ip l d eth0.1

Les Bridges

Description Commande iproute2 (full) Commande iproute2 (short)
Création d'un bridge
# ip link add name br0 type bridge
# ip l a n br0 type bridge
Suppression d'un bridge
# ip link del br0
# ip l d br0
Ajout d'une interface au bridge
# ip link set dev eth0 master br0
# ip l s dev eth0 master br0
Suppression d'une interface du bridge
# ip link set dev eth0 nomaster
# ip l s dev eth0 nomaster
Voir les membres d'une interface bridge
# bridge link show
# bridge l

Tables de routage

Listing

Description Commande iproute2 (full) Commande iproute2 (short)
Listing des routes
# ip route show
# ip r
Listing des routes vers un réseau et tous ces sous-réseaux (VLSM)
# ip route show to root 192.168.1.0/24
# ip r s root 192.168.1.0/24
Listing des routes vers un réseau et tous ces sur-réseaux (VLSM)
# ip route show to match 192.168.1.0/24
# ip r s match 192.168.1.0/24
Listing des routes vers un sous-réseaux spécifique
# ip route show to exact 192.168.1.0/24
# ip r s exact 192.168.1.0/24
Affichage de la route utilisé par le noyau
# ip route get 192.168.1.0/24
# ip r get 192.168.1.0/24

Modification

Description Commande iproute2 (full) Commande iproute2 (short)
Ajout / Suppression d'une route vers le réseau 192.168.1.0/24 en passant par la passerelle 192.168.1.254
# ip route [ add | del ] 192.168.1.0/24 via 192.168.1.254
# ip r [ a | d ] 192.168.1.0/24 via 192.168.1.254
Ajout / Suppression d'une route statique flottante (backup route)
# ip route [ add | del ] 192.168.1.0/24 via 192.168.1.254 metric 5
# ip route [ add | del ] 192.168.1.0/24 via 192.168.1.253 metric 10
# ip r [ a | d ] 192.168.1.0/24 via 192.168.1.254 metric 5
# ip r [ a | d ] 192.168.1.0/24 via 192.168.1.253 metric 10
Changer / Remplacer la route par défaut
# ip route [ add | del ] default via 192.168.1.254
# ip r [ a | d ] default via 192.168.1.254
Changer / Remplacer une route vers le réseau 192.168.1.0/24 en passant par la passerelle 192.168.1.254
# ip route [ change | replace ] 192.168.1.0/24 via 192.168.1.254
# ip r [ c | r ] 192.168.1.0/24 via 192.168.1.254

Annonces spécifiques

Description Commande iproute2 (full) Commande iproute2 (short)
Ajout / Suppression d'un trou noir (trafic rejeté silencieusement)
# ip route [ add | del ] blackhole 192.168.1.0/24
# ip r [ a | d ] blackhole 192.168.1.0/24
Ajout / Suppression d'une réponse ICMP de type 3 et code 1 (destination host unreachable)
# ip route [ add | del ] unreachable 192.168.1.0/24
# ip r [ a | d ] unreachable 192.168.1.0/24
Ajout / Suppression d'une réponse ICMP de type 3 et code 10 (host administratively prohibited)
# ip route [ add | del ] prohibit 192.168.1.0/24
# ip r [ a | d ] prohibit 192.168.1.0/24
Ajout / Suppression d'une réponse ICMP de type 3 et code 0 (destination network unreachable)
# ip route [ add | del ] throw 192.168.1.0/24
# ip r [ a | d ] throw 192.168.1.0/24

Statistique

Description Commande iproute2 (full)
Affichage d'un résumé sur les sockets établies, fermées, orphelines et en attentes
# ss -s
Affiche les processus ainsi que les sockets utilisées
# ss -pln
Affichage des tous les processus ainsi que des sockets:
  • udp : u
  • tcp : t
  • raw : w
  • unix : x
# ss -a [ -u | -t | -w | -x ] -np
Affichage des tous les connexion http établies:
# ss -o state established '( dport = 80 or sport = 80 )'

Voisinage

Description Commande iproute2 (full) Commande iproute2 (short)
Listing de tous les voisins
# ip neighbor show
# ip n 
Listing des voisins par interface
# ip neighbor show dev eth0
# ip n s dev eth0
Suppression des voisins par interface
# ip neighbor flush dev eth0
# ip n f dev eth0
Ajout / Suppression d'une entrée avec possibilité de modifier la nud (Neighbor Unreachability Detection) :
  • noarp : l'entrée est considérée valide et sera retirée après expiration
  • permanent : l'entrée est toujours valide et ne peut être retirée que manuellement
  • reachable : l'entrée est valide jusqu'à expiration du timer d'accessibilité
  • stale : l'entrée est valide mais suspecte
# ip neighbor [ add | del ] 192.168.0.1 lladdr 00:01:02:03:04:05 dev eth0 [nud [ noapr | permanent | reachable | stale ] ]
# ip neighbor [ a | d ] 192.168.0.1 l 00:01:02:03:04:05 dev eth0 [nud [ noarp | p | r | stale ] ]

Multicast

Description Commande iproute2 (full) Commande iproute2 (short)
Listing des groupes multicast
# ip maddress show
# ip m
Ajout / Suppression d'une couche liaison à un groupe multicast (besoin très rare)
# ip maddress [ add | del ] 00:01:02:03:04:05 dev eth0
# ip m [ a | d ] 00:01:02:03:04:05 dev eth0
Listing des routes multicast
# ip mroute show
# ip mr

Monitoring

Description Commande iproute2 (full) Commande iproute2 (short)
Monitoring de tous les événements
# ip monitor all
# ip mo
Monitoring de certain événements :
  • link : changement d'état, création ou destruction d'une interface.
  • address : changement sur les adresses Ethernet
  • route : changement sur les tables de routage
  • mroute : changement sur les routes multicast
  • neigh : changement sur dans le voisinage (tables ARP et NDP)

dans un fichier ou sur la console

# ip [ -4 | -6 ] monitor [ link | address | route | mroute | neigh ] [ file event.log ]
# ip [ -4 | -6 ] mo [ l | a | r | m | n ]
rtmon peut lire un fichier de log binaire (créé précédemment par ip monitor)
# rtmon [ -4 | -6 ] [ link | address | route | mroute | neigh ] file event.log