<?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>Digital-Traffic.net &#187; networking</title>
	<atom:link href="http://digital-traffic.net/tag/networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://digital-traffic.net</link>
	<description>Public thoughts of a network administrator</description>
	<lastBuildDate>Sun, 31 Jan 2010 21:02:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Implementing IPv6 at home—part 2</title>
		<link>http://digital-traffic.net/technology/implementing-ipv6-at-home-part-2/</link>
		<comments>http://digital-traffic.net/technology/implementing-ipv6-at-home-part-2/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 20:58:25 +0000</pubDate>
		<dc:creator>Brian Shacklett</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://digital-traffic.net/?p=242</guid>
		<description><![CDATA[A while back I did some experimentation with IPv6 on my Cisco 2611xm. I was using a tunnel provided by Hurricane Electric, which worked well, but I had no firewall and that made me a bit nervous. A little while after I got things set up, I procured a Cisco ASA5505 with a 50 client [...]]]></description>
			<content:encoded><![CDATA[<p>A while back I did some <a href="http://digital-traffic.net/technology/implementing-ipv6-at-home-part-1/">experimentation</a> with IPv6 on my Cisco 2611xm. I was using a tunnel provided by <a href="http://tunnelbroker.net">Hurricane Electric</a>, which worked well, but I had no firewall and that made me a bit nervous. A little while after I got things set up, I procured a Cisco ASA5505 with a 50 client license via eBay.  My hope was that I could use the ASA for the firewall and the router to terminate the tunnel. As it turns out, this would have required a second IP address, because the ASA is not able to pass Protocol 41 traffic.</p>
<p><span id="more-242"></span></p>
<p>
Time Warner&#8217;s reluctance to issue me a second IP address meant that I&#8217;d have to find another solution. <a href="http://www.sixxs.net">SixXS</a> is another tunnel broker which makes use of a protocol called <a href="http://en.wikipedia.org/wiki/Ayiya">AYIYA</a>. AYIYA is capable of traversing NAT, so it would work well in my situation. Unfortunately it&#8217;s not supported by Cisco, so the 2611 was of no use to me anymore.
</p>
<p>
After some failed experiments and lost money with open source firmware and Linksys routers, I decided that a full Linux install would be the best route to go. I built a machine out of spare parts that I had laying around and installed Ubuntu 9.10 on it. Once I got everything up and running, I installed the SixXS client (AICCU) and started working on getting the tunnel up and running.
</p>
<p>
I hit another snag when I found out that the point of presence (the tunnel broker&#8217;s endpoint) was down. I jumped to freenet6 in the interest of keeping things moving. They provide a tunnel via <a href="http://en.wikipedia.org/wiki/Tunnel_Setup_Protocol">TSP</a>, which also traverses NAT. Their nearest POP is all the way over in Montreal, which means big latencies for someone in LA, but I was able to establish a tunnel, which I was satisfied with for the moment. Here&#8217;s my config for their client (gw6c):
</p>
<pre class="brush: bash">
userid=
passwd=
#server=broker.freenet6.net
# Always use Montreal POP
server=montreal.freenet6.net
auth_method=any
prefixlen=64
template=linux
if_tunnel_v6v4=freenet6
if_tunnel_v6udpv4=freenet6
# Assign the v6 address to eth0
if_prefix=eth0
keepalive=yes
keepalive_interval=10
host_type=router
</pre>
<p>
Once I&#8217;d established my connection and saw what my v6 IP was going to be, I used a <a href="http://www.liquidalchemy.com/liquidalchemy/">v6 subnet calculator</a> to find out what my /64 networks would be and noted them down. I then entered the v6 address into /etc/network/interfaces so that I could add static routes as the interface came up:
</p>
<pre class="brush: bash">
# v6 Interface
auto eth0
iface eth0 inet6 static
    #address 169.254.1.2
    #netmask 255.255.0.0
    address 2001::1
    netmask 64
    up ip -6 route add 2001:0:0:1::/64 via 2001::2 dev eth0
</pre>
<p>
You may notice the link local v4 address that&#8217;s been commented out on the v6 address. The reason for this being there is that gw6c can&#8217;t do its magic unless the interface specified is up. Until I had my v6 address, I used this link local address. 2001::2, as specified in the route above, is my ASA, which has had it&#8217;s address manually configured. 2001:0:0:1::/64 is the network that I&#8217;m using for my LAN. I&#8217;ve got 254 more networks that I can make use of if I ever find a reason (2001:0:0:2::/64&#8230;2001:0:0:ff::/64).
</p>
<p>
Configuring the ASA was fairly simple. There&#8217;s an outside and an inside interface that need to be configured, then the default route needs to be set:
</p>
<pre class="brush: plain">
interface Vlan10
 nameif inside
 security-level 100
 ip address 192.168.1.1 255.255.255.0
 ipv6 address 2001:0:0:1::1/64
!
interface Vlan30
 no forward interface Vlan20
 nameif v6tunnel
 security-level 0
 no ip address
 ipv6 address 2001::2/64
!
ipv6 route v6tunnel ::/0 2001::1
</pre>
<p>
As far as I can tell, there&#8217;s really no reason I need to use a second VLAN for the v6 tunnel, so I&#8217;m going to eventually try moving it to the outside VLAN, but for now it&#8217;s working well, and I don&#8217;t need a DMZ at the moment.
</p>
<p>
Once I configured the ASA properly, it started advertising itself and all of the hosts on my LAN are picking up v6 addresses from it. The problem I&#8217;m left with is how to do DNS discovery. Unfortunately there doesn&#8217;t seem to be a good answer here. Microsoft seems to be fond of the idea of using DHCPv6, Apple wants to use well-known anycast addresses and I honestly have no idea what&#8217;s going on in the Linux world.</p>
]]></content:encoded>
			<wfw:commentRss>http://digital-traffic.net/technology/implementing-ipv6-at-home-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Implementing IPv6 At Home &#8211; Part 1</title>
		<link>http://digital-traffic.net/technology/implementing-ipv6-at-home-part-1/</link>
		<comments>http://digital-traffic.net/technology/implementing-ipv6-at-home-part-1/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 07:33:38 +0000</pubDate>
		<dc:creator>Brian Shacklett</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[routing]]></category>

		<guid isPermaLink="false">http://digital-traffic.net/?p=40</guid>
		<description><![CDATA[There have been a lot of articles floating around the net, lately, that mention how quickly we&#8217;re running out of IPv4 addresses. Seeing all of this got my interests in IPv6 rekindled. I&#8217;d been meaning to get it up and running on my network since I got my Cisco router, but it wasn&#8217;t until lately [...]]]></description>
			<content:encoded><![CDATA[<p>
There have been a lot of articles floating around the net, lately, that mention how quickly we&#8217;re running out of IPv4 addresses. Seeing all of this got my interests in IPv6 rekindled. I&#8217;d been meaning to get it up and running on my network since I got my Cisco router, but it wasn&#8217;t until lately that I was really able to find enough information on the subject to know where to begin. I don&#8217;t have anywhere near enough knowledge to write up a tutorial, but I find it helpful and interesting to hear about other peoples&#8217; experience with new technology. I hope it&#8217;s helpful for you to see how things went for me.
</p>
<p><span id="more-40"></span></p>
<h3>Selecting a transition mechanism</h3>
<p>
With regards to deployment, IPv6 is really in its toddler years right now. We&#8217;ve moved past the old <a href="http://go6.net/ipv6-6bone/">6bone</a> test network, but most ISPs still aren&#8217;t offering native connectivity yet. That means that the majority of people are going to have to choose a transition mechanism to connect to the rest of the world. There are two main types of transition mechanisms:
</p>
<ul>
<li>Dual network stacks running IPv4 and IPv6 simultaneously</li>
<li>Encapsulation of IPv6 packets inside of IPv4 packets (tunneling)</li>
</ul>
<p>
Running dual network stacks is a no-brainer. Even though I&#8217;m setting up v6, I still need to talk to all of the v4 hosts that comprise the majority of the current Internet. The real question was what type of tunnel I wanted to use.. There are quite a few different options out there; the most well known being <a href="http://www.ietf.org/rfc/rfc3056.txt">6to4</a>, <a href="http://www.ietf.org/rfc/rfc4380.txt">Teredo</a> and manual point to point tunneling.
</p>
<p>
6to4 and Teredo are both automatic tunneling protocols. They don&#8217;t require a specific tunnel to be configured and your IPv6 addresses are automatically allocated based on your IPv4 address. Teredo is meant to be used on a single host behind NAT, while 6to4 is generally used on gateway devices. I&#8217;d recommend reading the RFCs for more specific information, but a Google search will go a long way as well.
</p>
<p>
I had a very hard time trying to decide which way to go because I have a dynamic IP address and have no easy way to get a static address. In the end, I chose a manual point to point tunnel. My IP address doesn&#8217;t change that often and I decided that the extra control was worth the extra effort of making a change on the tunnel provider&#8217;s site once every few months. My tunnel is through <a href="http://tunnelbroker.net/">Hurricane Electric</a>. They&#8217;ve got a very easy setup wizard and even have example configurations for many deployment scenarios.
</p>
<h3>Requesting and configuring the tunnel</h3>
<p>
This was the easiest step in the entire setup. I went to <a href="http://tunnelbroker.net">http://tunnelbroker.net</a> and signed up for an account. Then I just clicked on &#8220;Create Regular Tunnel&#8221;. The form asks for your public IP address and gives you a list of servers in different locations to connect to. HE assigns a routed /64 by default, but everyone has the option of allocating a /48 with the click of a link.
</p>
<h3>Router configuration</h3>
<p>
After getting the tunnel set up, I went on to configure my router. As I mentioned before, HE has configurations available for the tunnel, so that didn&#8217;t take much work at all. The rest I was able to piece together from a Cisco article: <a href="http://www.cisco.com/en/US/tech/tk872/technologies_configuration_example09186a00800b49a5.shtml">Tunneling IPv6 through an IPv4 Network</a>. What I came up with in the end was something like this:
</p>
<pre class="brush: plain">
ipv6 unicast-routing
ipv6 cef
!
interface Tunnel0
 description Hurricane Electric IPv6 Tunnel Broker
 no ip address
 ipv6 enable
 ipv6 address 2001:x:x:x::2
 tunnel source x.x.x.x
 tunnel destination x.x.x.x
 tunnel mode ipv6ip
!
interface FastEthernet0/1
 description Inside Network
 ipv6 address 2001:x:x::1/64
 ipv6 enable
!
ipv6 route ::/0 Tunnel0
</pre>
<p>
Line 1 enables unicast IPv6 routing. Line 2 enables Cisco express forwarding for IPv6. The tunnel is configured on lines 4-11. IPv6 is configured and enabled for our inside LAN interface on lines 15 and 16 and I set the default route for IPv6 to the tunnel interface on line 18.
</p>
<p>
By default, this will issue router advertisements and allow machines to do stateless autoconfiguration for IPv6 addressing. I originally ran into trouble with this while I was trying to subnet my /48. I had my inside LAN interface configured with a /52 and none of the machines on my network would autoconfigure themselves. Eventually I realized that all hosts should be sitting on a /64 subnet. This is in an RFC somewhere. I&#8217;ll link to it if I&#8217;m able to find it. Once I made the change everything just magically started working.
</p>
<h3>Final outcome</h3>
<p>
At this point, I&#8217;ve got IPv6 connectivity up and running. I can get to IPv6 enabled sites on the internet by IP address, but I&#8217;m not able resolve AAAA records yet because I haven&#8217;t got DHCP and DNS configured yet. I&#8217;ll get to that in the next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://digital-traffic.net/technology/implementing-ipv6-at-home-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
