====== IP ====== Les commandes telles que [[ifconfig]] et [[route]] sont dépréciées. La commande ''**ip**'' vient remplacer ces commandes. ===== Gestion des adresses IP ===== ==== Affichage ==== Afficher les adresses IP : ip address Afficher en couleur les adresses IP : ip -c address Afficher l'adresse IP d'une interface : ip address show dev eth0 Purger la configuration IP : ip address flush dev eth0 ==== Paramétrage ==== Configurer/Ajouter une adresse IP sur une interface : ip addr add 192.168.1.1/24 dev eth0 Supprimer une adresse IP sur une interface : ip addr del 192.168.1.1/24 dev eth0 ===== Gestion des interfaces réseau ===== Activer une interface : ip link set eth0 up Désactiver une interface : ip link set eth0 down ===== Gestion du routage ===== ==== Affichage ==== Afficher la tables de routage : ip route ==== Paramétrage ==== Ajouter une route statique : ip route add 10.10.10.0/24 via 192.168.1.254 dev eth0 Supprimer une route statique : ip route del 10.10.10.0/24 ===== Network Name Space ===== Un namespace réseau fournit un environnement réseau isolé, ce qui signifie que les interfaces réseau, les tables de routage, les règles de pare-feu, etc., peuvent être spécifiques à ce namespace sans affecter les autres parties du système. ==== Création d'un premier réseau isolé ==== Pour lister les namespaces : ip netns list Pour créer un nouvel espace nommé ''netns01'' : ip netns add netns01 Pour lancer une commande dans cet espace de nom, par exemple un Shell bash qui va nous permet de faire des tests : ip netns exec netns01 bash :!: // On lance un ''bash'' dans un contexte réseau ''netns01''. // Dans ce bash, en exécutant la commande suivante : ip a On obtient uniquement une interface loopback qui est DOWN : 1: lo: mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 Sortir du bash : exit Pour ajouter une paire d'interfaces Ethernet virtuelle en capacité de communiquer entre elles : ip link add xeth0 type veth ip a On peut constater la création des deux interfaces **veth0@xeth0** et **xeth0@veth0** : 7: veth0@xeth0: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff 8: xeth0@veth0: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:48:50:e3:54:f3 brd ff:ff:ff:ff:ff:ff On affecte l'une des interfaces Ethernet virtuelle à l'espace **netns01**, par exemple **veth0** : ip link set veth0 netns netns01 Par la commande ''ip a'', on constate qu'il ne reste plus qu'une interface : 8: xeth0@if7: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:48:50:e3:54:f3 brd ff:ff:ff:ff:ff:ff link-netns netns01 Par la commande ''ip --netns netns01 a'', on constate l'interface basculée sur le namespace **netns01** : 7: veth0@if8: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff link-netnsid 0 On active chacune des interfaces, celle de base et celle qui est dans le namespace : ip link set xeth0 up ip netns exec netns01 ip link set veth0 up On affecte une adresse IP dans un même réseau à chacune des interfaces ip addr add 192.168.0.1/24 dev xeth0 ip netns exec netns01 ip addr add 192.168.0.2/24 dev veth0 Pour tester on lancer un ping depuis le namespace **netns01** : ip netns exec netns01 ping 192.168.0.1 ==== Création d'un second réseau isolé ==== On applique les mêmes commandes que le tuto ci-dessus : # Création namespace ip netns add netns02 # Création d'une paire d'interfaces ip link add xeth1 type veth peer name veth1 # Affectation d'une des interfaces au namespace ip link set veth1 netns netns02 # Activation de interfaces ip link set xeth1 up ip netns exec netns02 ip link set veth1 up # Configuration des adresses IP ip addr add 192.168.1.1/24 dev xeth1 ip netns exec netns02 ip addr add 192.168.1.2/24 dev veth1 ==== Création d'un bridge ==== :!: A revoir :!: L'objectif est de permettre les réseaux de communiquer vers l'extérieur. Création d'une interface bridge nommée **br0** : ip link add br0 type bridge Activation de l'interface : ip link set br0 up On affecte au bridge des adresses IP dans les mêmes réseaux que nos réseau isolé : ip addr add 192.168.0.254/24 dev br0 ip addr add 192.168.1.254/24 dev br0 Attachement des interface Ethernet virtuelle au bridge : ip link set xeth0 master br0 ip link set xeth1 master br0 Ajouter les passerelles par défaut pour chacun de nos réseau isolés : ip netns exec netns01 ip route add default via 192.168.0.254 ip netns exec netns02 ip route add default via 192.168.1.254