[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-bugs] [Bug 534] New: network hangs for dom0 <-> domu ipv6 traffic



http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=534

           Summary: network hangs for dom0 <-> domu ipv6 traffic
           Product: Xen
           Version: 3.0.1
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Hypervisor
        AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx
        ReportedBy: cmauch@xxxxxxxxx


I was able to gen ipv6 working by modifying the route-vif script a little, which
I'll enclose at the end of this report.  Maybe you'll find it useful.

But currently, ipv6 is not working properly.  I see the following behavior with 
xen.

1.  ping (icmpv6) works great for everything.  I can ping dom0 <-> domu, as well
as ping external ipv6 addresses - and ping domu's from the internet.
2.  ssh and web traffic is routed correctly and works great from any external
ipv6 address.
3.  ssh and web traffic between domu's is routed correctly and works great.
4.  ssh and web traffic between domu's and dom0 hangs.  I *believe* that it is a
similar problem to the tcp/checksum errors i see when i use xen with multiple
bridges.  Turning off tx checksum from within the domu with ethtool never solved
the checksum problems for me in ipv4, and trying the same workaround in ipv6
resulted in the same (did not fix anything).

NOTE: Because of the checksum problems in ipv4, i switched from the default xen
bridged network configuration to a purely routed setup, and this is true of ipv6
as well, except i see the network hangs in ipv6 routed mode where i only saw
these hangs in ipv4 bridged mode.  ipv4 traffic works without problems when
routed and not bridged.

Here is my vif-script.
#!/bin/sh

# Usage:
# custom-vif (add|remove|online|offline)
#
# Environment vars:
# vif         vif interface name (required).
# XENBUS_PATH path to this device's details in the XenStore (required).
#
# Read from the store:
# ip      list of IP networks for the vif, space-separated (default given in
#         this script).
#============================================================================

dir=$(dirname "$0")
. "$dir/xen-hotplug-common.sh"
. "$dir/xen-network-common.sh"

findCommand "$@"
evalVariables "$@"                      # Typically online or offline

XENBUS_PATH="${XENBUS_PATH:?}"

ip=${ip:-}
ip=$(xenstore_read_default "$XENBUS_PATH/ip" "$ip")
vif="${vif:?}"
domid=$(xenstore_read "$XENBUS_PATH/frontend-id")
vifid=$(xenstore_read "$XENBUS_PATH/handle")
vifid=$(( $vifid + 1 ))

# Convert last 2 ipv4 quads into equiv ipv6 host address
getip6() {
 echo $(echo $1 | awk -F. '{print "2002:83bf:ea8:2::"$3":"$4}')
}
getip6router() {
 echo $(echo $1 | awk -F. '{print "2002:83bf:ea8:2::"$3":1"}')
}

getip4router()
{ 
 echo $(echo $1 | awk -F. '{print $1"."$2"."$3".1"}')
}

ip6=$(getip6 "$ip")
ip6router=$(getip6router "$ip")
ip4router=$(getip4router "$ip")

hostname=$(xenstore_read "$XENBUS_PATH/domain" | tr -- '_.:/+' '-----')
if [ "$vifid" != "1" ]
then
  hostname="$hostname-$vifid"                   # Domain-0
fi


case "$command" in
    online)
        ip link set ${vif} up arp on
        ip -f inet  addr add ${ip4router} dev ${vif}
        ip -f inet6 addr add $ip6router/126 dev ${vif}
        ip -f inet  route add ${ip} dev ${vif} src ${ip4router}
        ip -f inet6 route add $ip6/126 dev ${vif} src $ip6router
        echo 1 >/proc/sys/net/ipv4/conf/${vif}/proxy_arp
        # No nat in ipv6, no no proxy_arp!
        ;;
    offline)
        ifconfig ${vif} down
        ;;
esac

log debug "Successful custom-vif $command for $vif."
if [ "$command" == "online" ]
then
  success
fi

-- 
Configure bugmail: 
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.