Table des matières

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: <LOOPBACK> 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: <BROADCAST,MULTICAST,M-DOWN> 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: <BROADCAST,MULTICAST,M-DOWN> 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: <BROADCAST,MULTICAST> 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: <BROADCAST,MULTICAST> 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