Table des matières

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

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.

ip link set dev interne0 name eth0
ip addr add 192.168.42.12 dev externe0
ip addr del 192.168.42.12 dev externe0
ip link set dev externe0 down
ip link set dev externe0 up
ip link set dev interne0 netns vm1
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

ip route add 192.168.42.0/24 via 192.168.42.1
ip route add default via 192.168.42.1
ip route del 192.168.42.0/24
echo "1" > /proc/sys/net/ipv4/ip_forward

Le Nat

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
brctl addbr br0
brctl delbr br0
brctl addif br0 eth0
brctl defif br0 eth0
brctl show br0
brctl showmacs br0
brctl setfd br0 0

Les VLANs

Cette technologie permet d'aller loin nativement alors profitons!

ip link add link eth0 name eth0.100 type vlan id 100
ip link delete eth0.100
ip -d link show