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
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
# ip netns exec vm1 bash # ip a
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
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
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
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