Apprendre à configurer le réseau d’un serveur Linux avec ip (suite iproute2)
Lorsque nous devons configurer le réseau d’un serveur basé sur Linux, il y a des années, la commande «ifconfig» était utilisée, en fait, vous pouvez continuer à l’utiliser, mais vous devrez installer un package supplémentaire dans votre système d’exploitation, car le suite est maintenant utilisé par défaut iproute2, et la commande populaire «ip» . Tous les utilisateurs de Linux ont toujours utilisé ifconfig, mais la nouvelle commande ip est beaucoup plus intuitive et facile à utiliser. De plus, nous pouvons également configurer des routes statiques dans le système d’exploitation sans avoir à utiliser un autre programme supplémentaire (route). Vous souhaitez tout savoir sur la commande ip de la suite iproute2 pour configurer votre serveur Linux au niveau réseau ?
Principales caractéristiques d’IProute2 sur Linux
Iproute2 est un package utilitaire réseau trouvé par défaut dans la plupart des systèmes d’exploitation basés sur Linux aujourd’hui, tels que Debian, Ubuntu, RedHat et de nombreuses autres distributions orientées bureau et serveur. Ce package comprend un ensemble d’outils très complet qui nous permettra de configurer et de gérer en détail les interfaces réseau. Ce package remplace complètement les fonctionnalités ifconfig, route et arp, le tout sous la même commande «ip» pour faciliter l’utilisation de cet outil puissant par les utilisateurs. Bien sûr, non seulement nous avons les mêmes fonctionnalités que d’habitude, mais dans iproute2, ils ont ajouté des fonctionnalités très importantes.
IProute2 est un outil beaucoup plus complet et moderne que ifconfig, son utilisation est donc recommandée lors de la gestion des différents aspects de notre réseau. Avec IP, nous pouvons effectuer les mêmes actions que nous pouvons faire avec ifconfig et, étant une suite beaucoup plus complète, nous pouvons configurer plus de paramètres que ifconfig ne nous permettrait pas.
QoS (Qualité de service)
iproute2 nous fournit la QoS, il est capable de prioriser efficacement différents types de trafic, le contrôle du trafic est composé de plusieurs opérations qui sont effectuées en interne par l’outil, telles que le mécanisme de classification des paquets, le placement dans différentes classes ou flux, et même la limitation du nombre de paquets ou d’octets pouvant être utilisés dans un flux de données.
Équilibrage de charge et tunnels IP
Cet outil permet d’attribuer des poids à chacune des interfaces réseau que nous avons sur le serveur, nous pouvons donc faire un équilibrage de charge basé sur différents algorithmes, idéal pour équilibrer le trafic entre plusieurs interfaces et ne pas en effondrer une. iproute2 nous permet également de créer des tunnels qui encapsulent des paquets au format IPv4 et sont envoyés via l’infrastructure IP.
Plusieurs tables de routage
iproute2 nous permettra de créer plusieurs tables de routage dans le système d’exploitation, nous pouvons configurer une table de routage principale, et plus tard créer différentes tables de routage pour router efficacement tout le trafic. Bien entendu, dans chaque table de routage, nous pouvons définir une passerelle par défaut différente (passerelle). C’est idéal si nous avons plusieurs interfaces réseau sur le serveur et que nous voulons que le trafic qui passe par une interface sorte par cette même interface, bien qu’il puisse aussi sortir par une autre interface, tout dépend de la façon dont vous avez configuré le routage sur votre serveur. Sans aucun doute, cette fonctionnalité est l’une des plus importantes qu’iproute2 intègre car elle nous permettra une grande flexibilité.
Fonctionnement de la commande ip
L’outil principal d’iproute2 est la commande «ip», avec laquelle nous pouvons afficher et configurer les adresses IP, afficher et configurer les tables de routage, afficher et configurer les tunnels IP, et également afficher et configurer l’interface physique. La syntaxe que nous devons utiliser avec cette commande est la suivante :
- ip [OPTIONS] OBJET [COMMANDE]
Les «OBJETS» que nous avons dans ip sont les suivants, et ce sont eux que nous pouvons voir et configurer les liens physiques, les adresses IP, les routes et plus encore. Il est très important que toutes les commandes soient telles que nous les mettons, toutes en minuscules, sinon, cela renverra une erreur. Voici les principaux :
- lien : il nous aide à configurer les interfaces réseau physiques ou logiques, par exemple, pour voir l’état de toutes les interfaces réseau.
- adresse : permet de visualiser et de configurer les adresses IPv4 et IPv6 associées aux différentes interfaces réseau. Chaque interface doit avoir au moins une adresse IP configurée.
- addrlabel : permet d’ajouter une étiquette
- voisin : permet de voir les liens de voisinage, c’est-à-dire que vous pouvez voir la table ARP du système d’exploitation.
- règle : permet de visualiser et de configurer les politiques de routage et de les modifier, elle est notamment utilisée lorsque vous allez configurer plusieurs tables de routage.
- route : permet de visualiser et de configurer les tables de routage, à la fois pour la table de routage principale et pour les «secondaires» que vous configurez.
- tunnel : permet de voir les tunnels IP et aussi de les configurer.
- maddr – Affichez et configurez les adresses multilink.
- mroute – Affichez et configurez la table de routage multicast.
- mrule – Affichez et configurez les politiques de routage d’adresses de multidiffusion.
- monitor : permet de surveiller en permanence l’état des cartes réseau, ainsi que les adresses IP et les routes.
- ntable : gère le cache voisin (ARP)
- tuntap : gère les interfaces TUN/TAP, orientées vers les VPN comme OpenVPN ou WireGuard.
- maddress : configuration des adresses multicast
- xfrm : gère les politiques IPsec.
- netns : gérer les espaces de noms réseau
- l2tp : configuration L2TP
- tcp_metrics : gère les métriques TCP.
- token : gère les identifiants tokenisés des interfaces.
Comment fonctionne la commande ip route
Bien que «ip route» soit intégré à iproute2, il possède des paramètres spécifiques supplémentaires. «Ip route» nous permet de voir et de configurer la table de routage du système d’exploitation, mais il nous permettra également de voir et de configurer toutes les tables de routage que nous créons dans le système d’exploitation lui-même. Nous devons garder à l’esprit que pour chaque entrée dans la table de routage, nous devons avoir l’adresse réseau, le masque et la passerelle, en plus, nous pourrions également configurer le ToS (type de service). Le système d’exploitation Linux nous permettra de créer un total de 253 tables de routage, par défaut, le système d’exploitation entre les routes dans la table de routage principale qui a l’ID 254, et le noyau utilise uniquement cette table pour calculer les chemins. La table de routage avec l’ID 255 est la table des adresses locales et de diffusion,
Si nous voulons ajouter ou supprimer des tables de routage, nous devons éditer le fichier «/etc/iproute2 / rt_tables», dans RedesZone nous vous montrerons plus tard comment créer une deuxième table de routage et la configurer, car nous devrons utiliser «ip règle» et aussi de « ip route ».
Commandes « IP » pour configurer l’adressage IP
Dans RedesZone, nous allons indiquer les principales commandes que nous pouvons utiliser pour voir et configurer l’adressage IP, et nous ne devons jamais utiliser la commande «ifconfig», mais nous allons indiquer la «traduction» afin que vous puissiez comparer les deux commandes .
Afficher les périphériques réseau et leurs paramètres
Avec la commande «ifconfig» nous pouvions voir toutes les interfaces et la configuration de l’adressage IP en détail.
ifconfig
Avec la commande ip, nous avons deux commandes similaires, l’une nous montrera toutes les informations au niveau de l’adressage IP (ip addr show), et l’autre nous montrera l’état de l’interface physique (ip link show) :
ip addr show
ip link show
Ces deux commandes sont très importantes, car nous pouvons voir toutes les informations d’adressage IP, le masque de sous-réseau et de nombreuses autres données importantes pour le réseau local, en outre, nous pouvons également voir comment nous avons configuré l’interface physique, le MTU que nous avons configuré et même si cette interface réseau est activée ou non.
Activer une interface réseau
Si nous voulons activer une interface réseau (la lever) car elle est désactivée, la commande est très similaire à l’ancienne «ifconfig», mais maintenant nous devrons utiliser «ip link» pour configurer cette fonctionnalité. Le fonctionnement est vraiment simple, dans ce cas, les commandes sont très similaires.
ifconfig ens33 up
ip link set ens33 up
Désactiver une interface réseau
Si on veut désactiver ou désactiver une interface réseau, les commandes avec ifconfig et avec ip link sont quasiment les mêmes, comme c’était le cas précédemment pour activer le réseau.
ifconfig ens33 down
ip link set ens33 down
Pour lancer l’aide «ip link» et voir toutes les commandes que nous pouvons exécuter, il suffit de mettre :
ip link help
Nous pouvons également exécuter cette commande «help» dans d’autres commandes «ip» pour voir toutes les options de configuration disponibles, de cette façon, nous pouvons voir en détail toutes les options disponibles que nous pouvons appliquer.
Configurer une adresse IP sur une interface
Configurar una dirección IP en una interfaz es realmente sencillo, tanto con ifconfig como también con el comando «ip», y es que la sintaxis es muy parecida a la sintaxis utilizada en los routers Cisco con el típico «ip addr» que todos hemos utilizado quelque fois.
ifconfig ens33 192.168.1.1/24
ip addr add 192.168.1.1/24 dev ens33
Avec cette commande, nous indiquerons que nous voulons mettre une adresse IP et un masque de sous-réseau spécifique à une interface que nous avons définie.
Supprimer une adresse IP d’une interface.
Cette fonctionnalité n’est pas prise en charge directement par ifconfig, mais l’adresse IP 0.0.0.0 doit être configurée.
ifconfig ens33 0.0.0.0
Dans le cas d’ip, c’est aussi simple que de remplacer le «add» pour configurer une IP, par «del» pour l’éliminer (supprimer).
ip addr del 192.168.1.1 dev ens33
Comme vous pouvez le voir, il est vraiment facile et rapide de supprimer une adresse IP d’une interface avec la suite iproute2.
Ajouter une interface virtuelle (alias)
Dans toutes les interfaces physiques, nous avons la possibilité de configurer des interfaces virtuelles pour d’autres types d’utilisations, c’est aussi ce que l’on appelle des «alias». Dans le cas de ifconfig et «ip», nous pouvons le faire facilement et rapidement sans trop de complications.
Dans le cas d’ifconfig, cela pourrait être fait comme ceci :
ifconfig ens33:1 10.0.0.1/8
Dans le cas d’ip, il suffit de mettre l’IP habituelle, mais avec «label ens33:1» ou l’alias que l’on veut.
ip addr add 10.0.0.1/8 dev ens33 label ens33:redeszone
Alors qu’avec «ifconfig» il n’est pas nécessaire de mettre n’importe quel type de «label», dans le cas de «ip» nous devrons le placer en tant que label, de plus, la partie positive de ce label est que nous pouvons nommer le interface réseau virtuelle nouvellement créée comme on veut, il n’est pas nécessaire de suivre la syntaxe ens33:1 ou autre, on peut mettre un nom.
Pour lancer l’aide «ip addr» et voir toutes les commandes que nous pouvons exécuter, il suffit de mettre :
ip addr help
Il faut se rappeler que l’aide de «ip» est vraiment utile et va nous permettre de savoir quelles commandes sont autorisées à s’exécuter.
Afficher les entrées dans la table ARP
arp -n
ip neigh show
Ajouter une entrée dans la table ARP
Dans le cas de «ifconfig», cela ne se fait pas avec cette commande, mais avec la commande «arp» qui a maintenant disparu :
arp -i eth0 -s 192.168.0.1 00:11:22:33:44:55
Dans le cas de iproute2, nous devons utiliser l’objet «neigh», comme vous pouvez le voir :
ip neigh add 192.168.0.1 lladdr 00:11:22:33:44:55 nud permanent dev ens33
Supprimer une entrée ARP
ifconfig -arp ens33
ip neigh del 192.168.0.1 lladdr 00:11:22:33:44:55 nud permanent dev ens33
Pour exécuter l’aide «ip neigh» et voir toutes les commandes que nous pouvons exécuter, mettez simplement :
ip neigh help
Comme vous l’avez vu, les possibilités d’iproute2 avec ip link, ip addr et ip neigh sont quasi infinies, de plus, la syntaxe est très intuitive, ressemblant beaucoup aux routeurs Cisco si connus dans le monde des réseaux.
Commandes «ip route» pour configurer les routes
La commande «ip route» va nous permettre de configurer la table de routage principale du système d’exploitation, ainsi que les tables de routage supplémentaires que nous configurons dans le système d’exploitation. Ensuite, vous avez quelques exemples d’utilisation avec uniquement la commande ip route, sans utiliser l’ancienne «route» que nous avions avec la suite «ifconfig».
Ajouter une route dans la table de routage
ip route add 10.8.0.0/24 via 192.168.1.2
Supprimer une route dans la table de routage
ip route del 10.8.0.0/24 via 192.168.1.2
Modifier une route dans la table de routage
ip route chg 10.8.0.0/24 via 192.168.1.3
Ajouter la passerelle par défaut
ip route add default via 192.168.1.1
Supprimer la passerelle par défaut (passerelle)
ip route del default via 192.168.1.254
Afficher l’état de la table de routage principale
ip route show
ip route list
Comme vous pouvez le voir, ajouter, supprimer et modifier des routes statiques est vraiment simple, tout comme définir une passerelle par défaut dans notre système d’exploitation.
Comment configurer plusieurs tables de routage sous Linux
L’une des principales caractéristiques d’iproute2 est qu’il permet de créer plusieurs tables de routage, dans le but de pouvoir disposer de plusieurs passerelles. La première chose que nous devons faire est d’éditer le fichier dans «/etc/iproute2/rt_tables», dont le contenu est le suivant
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
Comme vous pouvez le voir, nous avons trois tables, local, main et default. Il suffit d’ajouter le nom de la nouvelle table de routage, par exemple «redeszone» avec un identifiant de préférence 66.
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
66 redeszone
Une fois que nous l’avons ajouté, nous sauvegardons le fichier et commençons à ajouter des routes de la manière habituelle.
Sur notre ordinateur, nous avons une adresse IP privée 10.10.2.2, nous voulons définir la passerelle sur 10.10.2.1 et ajouter une route vers 10.8.0.0/24 sur l’interface ens37.
ip route add 10.8.0.0/24 dev ens37 src 10.10.2.2 table redeszone
Il faut mettre la commande «src» suivie de l’adresse IP de la véritable interface physique, puis avec «table» choisir le nom de la table. Si on veut supprimer cette route que l’on a créée dans la table de routage «redeszone», il faut mettre :
ip route del 10.8.0.0/24 dev ens37 src 10.10.2.2 table redeszone
Si nous voulons ajouter la passerelle à cette nouvelle table de routage, nous devons mettre les éléments suivants :
ip route add default via 10.10.2.1 dev ens37 table redeszone
Pour que le système d’exploitation sache quand utiliser cette nouvelle table de routage que nous venons de créer, deux règles doivent être configurées, l’une avec le trafic entrant et l’autre avec le trafic sortant arrivant à une interface spécifique.
ip rule add from 10.10.2.2/32 table redeszone
ip rule add to 10.10.2.2/32 table redeszone
Ces deux règles indiquent que le trafic depuis l’adresse IP 10.10.2.2 utilise la table de routage «redeszone», et le trafic vers IP 10.10.2.2 l’utilise également.
Pour voir l’état de la table de routage que nous venons de créer, nous exécutons :
ip route list table redeszone
Si on veut voir toutes les règles ajoutées, on met :
ip rule show
Rendre toutes les modifications apportées aux adresses IP et aux routes persistantes
Si nous redémarrons le serveur, toutes les modifications que nous avons apportées au système d’exploitation avec la commande «ip» ne seront pas enregistrées lors du redémarrage du serveur, nous devons donc rendre ces modifications persistantes. Selon le système d’exploitation, cela se fait d’une manière ou d’une autre, dans RedesZone, nous avons utilisé la dernière version de Debian pour le faire. La première chose que nous devons faire est d’éditer le fichier de configuration situé dans «/etc/network/interfaces», c’est là que nous pouvons mettre toutes les adresses IP et les routes et règles que nous voulons.
Un exemple de fichier de configuration serait le suivant, où nous avons un total de trois interfaces physiques, plusieurs adresses IP secondaires avec des alias, ainsi qu’un total de trois tables de routage. Pour chaque table de routage, nous avons besoin d’une passerelle et des règles correspondantes avec «ip rule»:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.154
netmask 255.255.255.0
gateway 192.168.1.153
iface eth0 inet static
address 192.168.1.155
netmask 255.255.255.0
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 10.10.1.114
netmask 255.255.255.248
post-up ip route add 10.10.1.112/29 dev eth1 src 10.10.1.114 table tabla2
post-up ip route add default via 10.10.1.113 dev eth1 table tabla2
post-up ip rule add from 10.10.1.114/32 table tabla2
post-up ip rule add to 10.10.1.114/32 table tabla2
iface eth1 inet static
address 10.10.1.115
netmask 255.255.255.248
post-up ip route add 10.10.1.112/29 dev eth1 src 10.10.1.115 table tabla2
post-up ip rule add from 10.10.1.115/32 table tabla2
post-up ip rule add to 10.10.1.115/32 table tabla2
auto eth2
allow-hotplug eth2
iface eth2 inet static
address 10.20.200.114
netmask 255.255.255.248
post-up ip route add 10.20.200.112/29 dev eth2 src 10.20.200.114 table tabla3
post-up ip route add default via 10.20.200.113 dev eth2 table tabla3
post-up ip rule add from 10.20.200.114/32 table tabla3
post-up ip rule add to 10.20.200.114/32 table tabla3
iface eth2 inet static
address 10.20.200.115
netmask 255.255.255.248
post-up ip route add 10.20.200.112/29 dev eth2 src 10.20.200.115 table tabla3
post-up ip rule add from 10.20.200.115/32 table tabla3
post-up ip rule add to 10.20.200.115/32 table tabla3
Grâce à iproute2 nous pourrons faire des configurations avancées vraiment intéressantes, si vous avez des questions vous pouvez nous laisser un commentaire et nous vous aiderons dans votre configuration.