Mai 222011
 

SVP lisez le post Routage et bridging pour PVM Xen sur Dedibox. avant de lire celui-ci.

ATTENTION !
lisez tout avant de manipuler, il y a moyen de perdre la main sur la machine hôte assez facilement.

Les HVM diffèrent un peu des machines PVM. En particulier dans la déclaration du bridging.
Pour faire le bridging, les PVM utilisent une interface vif qui est bridgée sur peth0.
Dans le cas des HVM, une interface vif est bien crée mais elle me semble inutilisée. Une autre interface tap est également crée et est elle aussi bridgée sur peth0
cependant à la diférence des vif qui sont créées avec une mac fe:ff:ff:ff:ff:ff les interfaces tap sont créées avec des mac randomisées.
Cela serait sans la moindre importance si le noyau Linux n’avait l’idée stupide d’affecter à un bridge la mac la plus basse de toutes les interfaces connectées au bridge en question.
Donc, si la mac randomisée pour votre tap est plus petite que celle de votre eth0 (la mac de mon eth0 commence par BC pas de chance) vous perdrez la main sur votre machine hôte (en plus, vous diffusez un mac illégale, alors soyez heureux si online.net ne vous blackliste pas pour tentative de spoofing. )

La solution : Modifier le script de création de l’interface virtuelle pour mettre la mac de la tap à fe:ff:ff:ff:ff:ff ( fe au début pour éviter le ff partout qui est l’adresse de broadcast. Personnellement, j’aurais plutôt mis le fe à la fin mais comme j’ai vu partout comme ça, je suppose qu’il y a une bonne raison…. ou pas…. enfin, bon ça marche comme ça tant qu’il n’existe pas de cartes réseau dont la mac commence en ff, y’a de la marge…)
Pour cela, éditez le script

/etc/xen/scripts/qemu-ifup

et modifier le comme suit

#!/bin/sh

echo -c 'config qemu network with xen bridge for '
echo $*

#patch pcdwarf 
echo "La configuration actuelle de $1 est "
ip link show $1
echo "Passage de la mac de $1 a fe:ff:ff:ff:ff:ff"
ip link set $1 addr fe:ff:ff:ff:ff:ff
echo "La configuration actuelle de $1 est maintenant"
ip link show $1

echo "activation de $1"
ifconfig $1 0.0.0.0 up

echo "Ajout de $1 au bridge $2"
brctl addif $2 $1

#elements facultatifs pour faire du routage
#echo "Activation du proxy ARP pour $1" 
#echo 1 >/proc/sys/net/ipv4/conf/$1/proxy_arp


Les éléments facultatifs pour le routage serviront a faciliter le routage des machines windows mais ne doivent pas être activés sans en comprendre toutes les implications.

La suite un peu plus tard…. 🙂

Sorry, the comment form is closed at this time.