<?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/"
	>

<channel>
	<title>spoofedpacket &#187; IPv6</title>
	<atom:link href="http://www.spoofedpacket.net/index.php/category/ipv6/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spoofedpacket.net</link>
	<description></description>
	<lastBuildDate>Thu, 22 Dec 2011 17:08:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>IPv6 addresses not available at boot</title>
		<link>http://www.spoofedpacket.net/index.php/2011/12/22/ipv6-addresses-not-available-at-boot/</link>
		<comments>http://www.spoofedpacket.net/index.php/2011/12/22/ipv6-addresses-not-available-at-boot/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 17:08:47 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.spoofedpacket.net/?p=299</guid>
		<description><![CDATA[One of things that&#8217;s always bugged me regarding Linux and IPv6 is the behaviour that&#8217;s exhibited during boot time. Specifically, the short delay before IPv6 addresses transition from their &#8220;tentative&#8221; state on an interface to being fully available for use by various daemons and services. With IPv4, you can be pretty much guaranteed that you&#8230;]]></description>
			<content:encoded><![CDATA[<p>One of things that&#8217;s always bugged me regarding Linux and IPv6 is the<br />
<a href="http://www.gossamer-threads.com/lists/nsp/ipv6/28615">behaviour that&#8217;s exhibited during boot time</a>. Specifically, the short delay before IPv6 addresses transition from their &#8220;<strong>tentative</strong>&#8221; state on an interface to being fully available for use by various daemons and services. With IPv4, you can be pretty much guaranteed that you can bind to any of the configured addresses at boot time, under normal circumstances. </p>
<p>With IPv6 on Linux, things aren&#8217;t so straightforward. <a href=" http://tools.ietf.org/html/rfc4429">Duplicate Address Detection (DAD)</a>, which basically does what it says on the tin, introduces a short delay before addresses are fully configured, the address has been added to the network interface, but not really.</p>
<p>I recently came across this whilst attempting to get BIND to listen on some secondary service addresses on a particular machine. BIND would not er, bind, to the IPv6 addresses at boot, failing with messages like this: </p>
<pre>bind9 could not listen on UDP socket: address not available</pre>
<p>Modifying /etc/init.d/bind9 to print the output of &#8220;ip addr show&#8221; to a file at the time BIND attempted to start up showed the tell-tale &#8220;tentative&#8221; flag on each IPv6 address being added to eth0. Since the addresses are in this state, BIND or other daemons will refuse to listen on them. </p>
<p>The problem has become very noticeable since parallel boot systems such as <a href="http://upstart.ubuntu.com/">Upstart</a> have become the default in quite a few Linux distros. Daemons will often fire up before the network is fully ready and in some extreme cases network filesystems that reference hostnames may fail to mount if you are using an IPv6 DNS resolver. Of course this isn&#8217;t the case across the board, some daemons and services appear to handle the unavailability of an IPv6 address somewhat gracefully, backing off and trying again a short time later rather than simply giving up on the first go.</p>
<p>Anyway, a simple &#8220;hairy hack&#8221; to get over this problem is to add something like the following to your startup script:</p>
<pre>sleep 5</pre>
<p>Yes, a one line <strong>sleep</strong> command to make the daemon wait a short while before actually starting. This seems to ensure that the IPv6 address has moved out of the tentative state, but it&#8217;s still somewhat silly..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spoofedpacket.net/index.php/2011/12/22/ipv6-addresses-not-available-at-boot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SpamAssassin DNS lookups over IPv6</title>
		<link>http://www.spoofedpacket.net/index.php/2009/09/15/spamassassin-dns-lookups-over-ipv6/</link>
		<comments>http://www.spoofedpacket.net/index.php/2009/09/15/spamassassin-dns-lookups-over-ipv6/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 13:58:01 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Spam]]></category>

		<guid isPermaLink="false">http://www.spoofedpacket.net/?p=146</guid>
		<description><![CDATA[With the recent surge in AIB phishing mails, I thought it might be worth looking at our SpamAssassin setup to see if there was anything that could be done to filter them out. AIB helpfully publish SPF records for the aib.ie domain, so the first port of call was SAs SPF lookups. Which I noticed&#8230;]]></description>
			<content:encoded><![CDATA[<p>With the <a href="http://www.aib.ie/servlet/Satellite?c=SC_Content&#038;cid=1196265062880&#038;pagename=SecurityCentre%2Fsc_main&#038;section=S001">recent surge in AIB phishing mails</a>, I thought it might be worth looking at our SpamAssassin setup to see if there was anything that could be done to filter them out.</p>
<p>AIB helpfully publish SPF records for the aib.ie domain, so the first port of call was SAs SPF lookups. Which I noticed weren&#8217;t happening, despite being enabled some time ago. Reloading SA resulting in the following log message in spamd.log:<br />
<code><br />
Tue Aug 11 11:26:52 2009 [2221] warn: Error creating a DNS resolver<br />
socket: at /usr/share/perl5/Mail/SpamAssassin/DnsResolver.pm line 233.<br />
</code><br />
Aw snap, SA can&#8217;t do any DNS lookups, at all. Which means all of the DNS-based tests will be silently skipped. Going back through the spamd.log, I noticed these messages first started occurring when we enabled IPv6 DNS resolvers a number of months ago. Hmm, perl is obviously missing something fundamental.</p>
<p>So, it turns out a perl library required to create IPv6 sockets wasn&#8217;t installed, <a href="http://search.cpan.org/dist/IO-Socket-INET6/lib/IO/Socket/INET6.pm">IO::Socket::INET6</a>. This is conveniently packaged in Ubuntu:</p>
<p><code> aptitude install libio-socket-inet6-perl</code></p>
<p>A quick reload of spamassassin and we can say goodbye to all those &#8220;URGENT NOTIFICATION&#8221;s about our AIB online banking accounts. Although, the spammers have now copped on and aren&#8217;t even bothering to send from aib.ie addresses anymore..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spoofedpacket.net/index.php/2009/09/15/spamassassin-dns-lookups-over-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heartbeat and IPv6</title>
		<link>http://www.spoofedpacket.net/index.php/2009/05/11/heartbeat-and-ipv6/</link>
		<comments>http://www.spoofedpacket.net/index.php/2009/05/11/heartbeat-and-ipv6/#comments</comments>
		<pubDate>Mon, 11 May 2009 14:30:29 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[IPv6]]></category>

		<guid isPermaLink="false">http://www.spoofedpacket.net/?p=135</guid>
		<description><![CDATA[I&#8217;ve been playing around with heartbeat quite a bit recently. It&#8217;s quite a mature piece of software with some cool features, however the documentation is bit unstructured and lacking in some areas, especially where IPv6 support is concerned. Heartbeat *supports* IPv6 address takeover through the IPv6addr resource but it&#8217;s not exactly clear on how you&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing around with <a href="http://www.linux-ha.com">heartbeat</a> quite a bit recently. It&#8217;s quite a mature piece of software with some cool features, however the documentation is bit unstructured and lacking in some areas, especially where IPv6 support is concerned. Heartbeat *supports* IPv6 address takeover through the IPv6addr resource but it&#8217;s not exactly clear on how you go about setting it up.</p>
<p>Anyway, after reading through some forum posts, here is a sample haresources file that will give you IPv4 and IPv6 address failover. We are using eth1 as our primary network interface:</p>
<blockquote><p>
my.failover.address 193.1.219.93<br />
my.failover.address IPv6addr::2001:770:18:2:0:0:c101:db5d/64/eth1
</p></blockquote>
<p>The important thing is to specify the IPv6 address fully, ie: pad it out with 0&#8242;s, no :: shortcuts!</p>
<p>With <a href="http://www.mindbasket.com/ipvs/">v6 support recently added to IPVS</a>, it should now be possible to do full IPv6 failover and load balancing. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.spoofedpacket.net/index.php/2009/05/11/heartbeat-and-ipv6/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Followup to ng_fec saga</title>
		<link>http://www.spoofedpacket.net/index.php/2007/05/18/followup-to-ng_fec-saga/</link>
		<comments>http://www.spoofedpacket.net/index.php/2007/05/18/followup-to-ng_fec-saga/#comments</comments>
		<pubDate>Fri, 18 May 2007 18:02:39 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.spoofedpacket.net/index.php/2007/05/18/followup-to-ng_fec-saga/</guid>
		<description><![CDATA[So everything seems to have remained stable over the past few days &#8211; and theres now a commit to the ng_fec code: Deadly!]]></description>
			<content:encoded><![CDATA[<p>So everything seems to have remained stable over the past few days &#8211; and theres now a <a href="http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netgraph/ng_fec.c">commit</a> to the ng_fec code:</p>
<p>Deadly! <img src='http://www.spoofedpacket.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.spoofedpacket.net/index.php/2007/05/18/followup-to-ng_fec-saga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 and ng_fec</title>
		<link>http://www.spoofedpacket.net/index.php/2007/05/15/ipv6-and-ng_fec/</link>
		<comments>http://www.spoofedpacket.net/index.php/2007/05/15/ipv6-and-ng_fec/#comments</comments>
		<pubDate>Tue, 15 May 2007 20:08:35 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.spoofedpacket.net/index.php/2007/05/15/ipv6-and-ng_fec/</guid>
		<description><![CDATA[We managed to finally (hopefully) fix an annoying problem with one of our FreeBSD boxes and IPv6. For some background; we used the ng_fec (4) device on FreeBSD 6.2-RELEASE to make a logical network interface out of two physical interfaces. This is referred to as bonding on Linux, IP Multipathing on Solaris and I think&#8230;]]></description>
			<content:encoded><![CDATA[<p>We managed to finally (hopefully) fix an annoying problem with one of our FreeBSD boxes and IPv6. </p>
<p>For some background; we used the <a href="http://www.freebsd.org/cgi/man.cgi?query=ng_fec&#038;apropos=0&#038;sektion=0&#038;manpath=FreeBSD+6.2-RELEASE&#038;format=html">ng_fec (4)</a> device on FreeBSD 6.2-RELEASE to make a logical network interface out of two physical interfaces. This is referred to as bonding on Linux, IP Multipathing on Solaris and I think Cisco call it Ether Channel. Whatever way you go about it, the end result is that you get a network interface that is reachable via a multiple different paths. If each physical interface is plugged into a different switch, you get a nice amount of resiliency.</p>
<p>This works great in FreeBSD with ng_fec, however if you try to use an IPv6 address on the logical interface thats where things start to get interesting. Without getting into too much detail &#8211; the problems relate to how IPv6 maps IP addresses to MAC addresses, this is done by way of  &#8220;neighbour advertisement&#8221; messages sent via multicast. However the ng_fec driver was not telling the physical network interfaces to join the correct multicast groups so these neighbour advertisement messages could not be processed correctly, which led to very flaky and mostly unavailable IPv6 connectivity. From what I can gather, you can use other drivers in -CURRENT that don&#8217;t exhibit this problem.</p>
<p>But with some diagnoses and a patch to ng_fec.c from <a href="http://www.maths.tcd.ie/~dwmalone/">Dave Malone</a> we managed to correct the issue. This may make it up into the FreeBSD source tree at some point.</p>
<p>Hopefully things will stay stable from now on <img src='http://www.spoofedpacket.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Edit: Ah, there is a <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=107523">bug report</a> raised for this already.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spoofedpacket.net/index.php/2007/05/15/ipv6-and-ng_fec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

