04janv. 2012
Xen vif-route and private lan
20:55 - Par Mohamed YACOUBI - Xen
J'utilisais depuis quelques années un lan privé entre mes DomU et le Dom0 (le Dom0 génère les graphs Munin) qui fonctionnait sans problème en bridge mais suite à l'allocation de ma plage IPv6 routé, j'ai du modifier ma configuration Xen en mode routé (vif-route).
En mode routé je devais exécuter des commandes manuellement sur le Dom0 afin de modifier le routage de l'interface eth1.
ip route del 10.41.233.XXX dev blog.1 scope link src 78.41.233.XXX ip route add 10.41.233.XXX dev blog.1 scope link src 10.41.233.XXX
Ce fonctionnement me permettait des communications DomU <=> Dom0 mais pas DomU <=> DomU (perte de paquet aléatoire).
Suite à la réinstallation de mon hyperviseur Xen en 64Bits (ca m'aura pris du temps pour trouver la motivation), je me suis décidé à tout remettre au propre. (je traine des patchs homemade depuis Xen-3.2.1)
Voici donc ma nouvelle configuration permettant l'utilisation du vif-route et du vif-bridge simultanément, pour éviter d'éventuel bug j'ai préféré créer une interface dummy plutôt que d'ajouter un alias à l'interface loopback.
- /etc/conf.d/net
config_dummy0=( "10.41.233.1/24" )
- /etc/xen/scripts/network-custom
#!/bin/sh dir=$(dirname "$0") "$dir/network-route" "$@" netdev=eth0 "$dir/network-bridge" "$@" netdev=dummy0 bridge=private
- /etc/xen/scripts/vif-custom
#!/bin/sh dir=$(dirname "$0") IFNUM=$(echo ${vif}|> | cut -d. -f2) if [ "$IFNUM" = "0" ] ; then # Interface 0 = public lan "$dir/vif-route" "$@" else # Sinon private lan "$dir/vif-bridge" "$@" fi
- /etc/xen/xend-config.sxp
On commente l'ensemble des autres scripts réseaux (bridge, route, nat)
(network-script network-custom) (vif-script vif-custom)
On relance xend
/etc/init.d/xend restart
A ce stade vous devriez avoir une interface nommée private disposant de l'IP privée assignée.
15: private: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 16:c7:56:f6:4d:3c brd ff:ff:ff:ff:ff:ff inet 10.41.233.1/24 brd 10.41.233.255 scope global private inet6 fe80::14c7:56ff:fef6:4d3c/64 scope link valid_lft forever preferred_lft forever
Il vous suffit à présent d'adopter cette configuration sur vos DomU.
vif = [ 'mac=XX:XX:XX:XX:XX:XX, ip=78.41.233.XXX', 'mac=XX:XX:XX:XX:XX:XX, ip=10.41.233.XXX, bridge=private' ]
Liens utiles :
- Xen Networking Examples