|
|
|
|
|
|
|
|
|
|
xen-bugs
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-bugs] [Bug 534] New: network hangs for dom0 <-> domu ipv6 traffic,
bugzilla-daemon <=
|
|
|
|
|