<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Life, the Universe and Everything &#187; ipv6</title>
	<atom:link href="http://i.wnagele.com/tag/ipv6/feed/" rel="self" type="application/rss+xml" />
	<link>http://i.wnagele.com</link>
	<description>some more mind ramblings</description>
	<lastBuildDate>Thu, 28 Jul 2011 17:10:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='i.wnagele.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Life, the Universe and Everything &#187; ipv6</title>
		<link>http://i.wnagele.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://i.wnagele.com/osd.xml" title="Life, the Universe and Everything" />
	<atom:link rel='hub' href='http://i.wnagele.com/?pushpress=hub'/>
		<item>
		<title>IPv6 and Xen on a Hetzner hosted system</title>
		<link>http://i.wnagele.com/2010/07/13/ipv6-and-xen-on-a-hetzner-hosted-system/</link>
		<comments>http://i.wnagele.com/2010/07/13/ipv6-and-xen-on-a-hetzner-hosted-system/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 15:08:25 +0000</pubDate>
		<dc:creator>wnagele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hetzner]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://wnagele.com/?p=116</guid>
		<description><![CDATA[Now that Hetzner is offering IPv6 natively we decided to enable it on our Xen virtualized systems. It seems that there is some confusion in the customer forum (link only available to Hetzner customers) as to how this can be &#8230; <a href="http://i.wnagele.com/2010/07/13/ipv6-and-xen-on-a-hetzner-hosted-system/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=i.wnagele.com&amp;blog=21653932&amp;post=116&amp;subd=wolfgangnagele&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now that <a href="http://www.hetzner.de/en/hosting/news/IPv6/" target="_blank">Hetzner is offering IPv6 natively</a> we decided to enable it on our Xen virtualized systems. It seems that <a href="http://forum.hetzner.de/wbb2/thread.php?threadid=14757" target="_blank">there is some confusion in the customer forum</a> (link only available to Hetzner customers) as to how this can be achieved with the routed network Hetzner is using.<span id="more-116"></span></p>
<p>I will explain my solution to this, if you have input and/or improvements i would be glad to hear them. This approach is based on using <a href="http://www.ipsidixit.net/2010/03/24/239/" target="_blank">proxy_ndp</a> and can only route specific IPv6 addresses to a domU. We currently have no need for subnet routing and i did not look into that. Our setup is based on <em>Ubuntu 8.04.3 LTS (Codename Hardy)</em> and so is the configuration here and the patch.</p>
<p><br class="spacer_" /></p>
<p><strong>First we </strong><strong>add a IPv6 address to our physical interface in the dom0:</strong></p>
<pre><code>/etc/network/interfaces</code>
iface eth0 inet6 static
 address 2a01:4f8:100:4463:1::1
 netmask 64
 up ip -6 route add 2a01:4f8:100:4460::1 dev eth0
 up ip -6 route add default via 2a01:4f8:100:4460::1</pre>
<p><br class="spacer_" /></p>
<p><strong>Enable routing and proxy_ndp on the interfaces:</strong></p>
<pre><code>/etc/sysctl.conf</code>
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp=1</pre>
<p><br class="spacer_" /></p>
<p><strong>Patch <a href="http://notes.benv.junerules.com/all/software/xen-and-routed-ipv6/" target="_blank">BenV&#8217;s vif-route script</a> to enable the use of proxy_ndp:</strong></p>
<pre><code>/etc/xen/scripts/vif-route</code>
--- vif-route.orig    2009-09-28 13:45:40.000000000 +0200
+++ vif-route 2010-07-08 22:36:32.000000000 +0200
@@ -55,6 +55,7 @@
         ifconfig ${vif} ${main_ip} netmask 255.255.255.255 up
        if [ ! -z "${main_ip6}" ]; then
                ip -6 addr add ${main_ip6} dev ${vif}
+               echo 1 &gt;/proc/sys/net/ipv6/conf/${vif}/proxy_ndp
        fi
         echo 1 &gt;/proc/sys/net/ipv4/conf/${vif}/proxy_arp
         ipcmd='add'
@@ -80,6 +81,10 @@
                log info "[vif-route] Adding IPv6 address ${addr} with src ${main_ip6} for $vif."
              result=`${cmdprefix} ip -6 route ${ipcmd} ${addr} dev ${vif} src ${main_ip6} 2&gt;&amp;1`
                log info "[vif-route] Result: ${result}"
+
+               log info "[vif-route] Adding IPv6 proxy ${addr} on ${netdev:-eth0}."
+             result=`${cmdprefix} ip -6 neighbor ${ipcmd} proxy ${addr} dev ${netdev:-eth0} 2&gt;&amp;1`
+               log info "[vif-route] Result: ${result}"
        fi
     done
 fi</pre>
<p>You can download the <a href="http://files.wnagele.com/vif-route-with-ipv6">original</a> or the <a href="http://files.wnagele.com/vif-route-with-ipv6.orig">patched</a> version here too in case the link above doesn&#8217;t work for you.</p>
<p><br class="spacer_" /></p>
<p><strong>Now </strong><strong>to give a domU a specific IPv6 address you&#8217;ll have to adjust the <code>vif</code> statement of that guest configuration:</strong></p>
<pre><code>/etc/xen/&lt;domu&gt;.cfg</code>
vif = [ 'ip=188.40.226.34 2a01:4f8:100:4463:2::1,mac=00:16:3E:EB:42:59' ]</pre>
<p><br class="spacer_" /></p>
<p><strong>Inside that domU you&#8217;ll need to configure this:</strong></p>
<pre><code>/etc/network/interfaces</code>
iface eth0 inet6 static
 address 2a01:4f8:100:4463:2::1
 netmask 64
 gateway 2a01:4f8:100:4463:1::1</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wolfgangnagele.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wolfgangnagele.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wolfgangnagele.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wolfgangnagele.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wolfgangnagele.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wolfgangnagele.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wolfgangnagele.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wolfgangnagele.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=i.wnagele.com&amp;blog=21653932&amp;post=116&amp;subd=wolfgangnagele&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://i.wnagele.com/2010/07/13/ipv6-and-xen-on-a-hetzner-hosted-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cf09419af7d853a0eabf5de6fb06c695?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wolfgangnagele</media:title>
		</media:content>
	</item>
	</channel>
</rss>
