15mar. 2010

Xen utilisation de l'IPv6 en bridge

Xen_logo.png
Ayant obtenu un bloc IPv6 tout récemment, j'ai tenté de le configurer sur mon Dom0 Xen pensant que le billet Xen bridge IPv6 support suffirait.

Il n'en fut rien, Xen lors de l"initialisation du bridge ne traite aucunement la partie IPv6, j'ai donc développé un petit patch en m'appuyant sur la partie IPv4.

--- /etc/xen/scripts/network-bridge~	2008-06-03 14:50:29.000000000 +0100
+++ /etc/xen/scripts/network-bridge	2010-03-02 18:15:50.000000000 +0100
@@ -103,6 +103,8 @@
 get_ip_info() {
     addr_pfx=`ip addr show dev $1 | egrep '^ *inet ' | sed -e 's/ *inet //' -e "s/$1//"`
     gateway=`ip route show dev $1 | fgrep default | sed 's/default via //'`
+    addr_pfx_6=`ip -6 addr show dev $1 | egrep '^ *inet' | sed -e 's/ *inet6 //' -e "s/$1//" | egrep -E ^2`
+    gateway_6=`ip -6 route show dev $1 | fgrep default | sed 's/default via //' | cut -d' ' -f1`
 }
 
 do_ifup() {
@@ -113,6 +115,18 @@
             ip addr add ${addr_pfx} dev $1
             ip link set dev $1 up
             [ -n "$gateway" ] && ip route add default via ${gateway}
+	fi
+    fi
+}
+
+do_ifup_6() {
+    if [ $1 != "${netdev}" ] || ! ifup $1 ; then
+       	if [ -n "$addr_pfx_6" ] ; then
+      		# use the info from get_ip_info()
+       		ip -6 addr flush $1
+	        ip -6 addr add ${addr_pfx_6} dev $1
+        	ip -6 link set dev $1 up
+            	[ -n "$gateway_6" ] && ip route add default via ${gateway_6}
         fi
     fi
 }
@@ -245,6 +259,7 @@
     fi
     add_to_bridge2 ${bridge} ${pdev}
     do_ifup ${bridge}
+    do_ifup_6 ${bridge}
 
     if [ ${antispoof} = 'yes' ] ; then
 	antispoofing
@@ -272,6 +287,7 @@
     ip link set ${bridge} name ${tdev}
     ip link set ${pdev} name ${netdev}
     do_ifup ${netdev}
+    do_ifup_6 ${netdev}
 
     brctl delbr ${tdev}
 }



Patch : xen-vif-bridge-ipv6.diff

un commentaire

1. Le jeudi 25 novembre 2010, 11:37 par Yannick

Il est très fort.