Gérer les réseaux virtuels

Ressources :


Pour effectuer des tests sans perdre la connexion internet de notre machine physique, on peut très bien créer un environnement virtuel avec LXC. Ce dernier utilisera le network namespaces (netns) :

ip netns add vm1

Ici notre instance s'appelle vm1.

Pour s'y connecter, il faudra lancer une commande du type :

ip netns exec vm1 bash

Les interfaces réseaux

  • Créer une paire interface virtuel (externe0 et interne0) :
ip link add name externe0 type veth peer name interne0

On l'utilise en général pour déplacer l'interface interne0 dans une instance (VMS, conteneurs,…) et ainsi avoir un accès au réseau hôte par exemple.

  • Renommer une interface :
ip link set dev interne0 name eth0
  • Ajouter ou supprimer une IP :
ip addr add 192.168.42.12 dev externe0
ip addr del 192.168.42.12 dev externe0
  • Arrêter ou redémarrer l'interface :
ip link set dev externe0 down
ip link set dev externe0 up
  • Déplacer une interface :
ip link set dev interne0 netns vm1
  • Supprimer une interface :
ip link delete eth0
Pour voir que ceci est bien pris en compte, on peut se déplacer dans vm1 :
# ip netns exec vm1 bash
# ip a

Le routage

  • Ajouter une route :
ip route add 192.168.42.0/24 via 192.168.42.1
ip route add default via 192.168.42.1
  • Supprimer une route :
ip route del 192.168.42.0/24
  • Pour que le routage d'une interface à une autre puisse se faire :
echo "1" > /proc/sys/net/ipv4/ip_forward

Le Nat

  • Appliquer du NAT pour un réseau privé sur l'interface eth0 :
iptables -t nat -A POSTROUTING -o eth0  -j MASQUERADE

La commutation

Physiquement pour qu'un réseau puisse communiquer il a besoin d'un switch (ou d'un hub pour les cas plus anciens). La création d'un switch virtuel avec brctl est tout a fait possible mais il faut d'abord installer ce paquet :

apt-get install bridge-utils
  • Créer ou supprimer un bridge (switch):
brctl addbr br0
brctl delbr br0
  • Lui connecter ou lui déconnecter une interface :
brctl addif br0 eth0
brctl defif br0 eth0
  • Lister les interfaces qui lui sont connectés :
brctl show br0
  • Lister la table de commutation :
brctl showmacs br0
  • Réduire le temps d'initialisation des redirections :
brctl setfd br0 0

Les VLANs

Cette technologie permet d'aller loin nativement alors profitons!

  • Ajouter ou supprimer un lan :
ip link add link eth0 name eth0.100 type vlan id 100
ip link delete eth0.100
  • Inspecter les VLANs :
ip -d link show