Local time: 2024-04-25: 2:25:30 PM © Copyright 2003–2013 Darkhorse WinterWolf

winterwolf.co.uk

IPv6 Information

What IPv6 is

If you'd like an in-depth discussion of IPv6, I'd suggest you have a look at The IPv6 Howto. If you'd just like a quick summary, by all means read on!

IPv6 is a next generation internet protocol. All hosts on the Internet communicate using IP, the Internet Protocol to allow global routing of packets across the network. Version 4 of IP has been bay far the most commonly used version, where each computer on the Internet has an address in the form of aaa.bbb.ccc.ddd, where aaa, bbb, ccc and ddd are numbers between 1 and 255. Names such as winterwolf.co.uk have to be translated into these addresses before the hosts can be contacted. Normally, this is done transparently so that the user only has to remember the more friendly names, but the computer can work with the number more convenient numeric format.

Some time ago it became apparent that there were some serious problems with IPv4, not least of which that we are rapidly running out of IPv4 addresses. Several solutions were put forward, but the one that seems to be most widely adopted is IPv6, version six of the Internet Protocol. Instead of a 32-bit address being assigned to each computer, a 128-bit address is assigned. It would be unweildy trying to write this as 16 decimal numbers ranging from 1 to 255, so instead it's grouped into 16-bit chuncks seperated by colons, and expressed in haxadecimal. For example, f:e:d:c:b:a:9:8 is a representation of an IPv6 address.

There are several groups of IPv6 addresses reserved for different things, a list of which can be found in chapter 3 of the IPv6 HOWTO. There will often be a lot of zeros in an IPv6 address, so leading zeros in each 16-bit block are normally omitted, and you can replace and single multiple of 16 zero bits with :: to compress an address. For example, feb0:0000:0000:0000:0030:0000:1234:0001 can be expressed as feb0::30:0:1234:1, which is much quicker to type.

Current situation

One thing to bear in mind when reading this page is that you need to update IPv4 endpoints with both the BT Exact tunnel broker and your own scripts. I forgot to change things at my end, and as such the tunnel appeared down for a fortnight and consequently got deleted. Whoops. The new delegation is 2001:618:429::/48, with my subnet as 2001:618:429::/64 and Darac as 2001:618:429:cafe::/64.

It may be that the information I've written here is useful to people trying to get around uncooperative routers (though most current ones are quite capable of sending protocol 41 to a specified address), so I've left it here. Please do consider, though, that the addresses mentioned are no longer on my subnet, and (for reasons a bit too lengthy to go in to here) I no longer run a web server listening on IPv6. I still do run other services on IPv6, the most commonly used of which is email, which should be handled as normal through the DNS if an IPv6 capable MTA tried to send mail to me.

IPv6 and winterwolf.co.uk

After quite some time of being unable to provide IPv6 services due to some dodgy firewalling on my ADSL router, I am now fully IPv6 connected again (I think, at least!). This is thanks to my good friend Chloe, A Sun SPARCstation 10 bought for under a tenner from eBay UK, and CIPE (please don't laugh at Mr. Titz's name).

I say I think I'm fully connected because it's actually quite difficult to test two-way connections. I can access all IPv6 hosts on the Internet quite well, and since I have no connection tracking software running on Eclipse, my IPv6 gateway, I presume that connections originating from outside of my network will work as well. So, if you've got an IPv6 capable web browser and a connection to the IPv6-erised Internet, you should be using IPv6 to talk to me now! If you want to be sure, connect directly to Jesmos' IPv6 address, 2001:618:4d6:0:250:4ff:fee8:78d4.

Updated configuration

Since writing this page, quite a few changes have taken place. Firstly, I acquired a Nokia IP55 (which is a Webramp 600i with an additional firewall), which was great in that it forwarded all traffic to a named computer, Jesmos in my case, for it to deal with it. Unfortunately, that's not /quite/ what it does. IP protocols unknown to it just seemed to get dropped, so 6in4 tunnels were out of the question.

Just recently, I acquired a Conexant AccessRunner from eBay UK and tried it in Jesmos. Unfortunately, something went a bit pear shaped, and random lock-ups started to occur. I suspect this is a problem with the AccessRunner driver and SMP kernels. I happened to have a spare Socket A motherboard and a Duron 650 down the cellar, so with the purchase of a case and the borrowing of some RAM, I knocked up a diskless server, Crush. This contains 64MB RAM, a 3Com 3c905C NIC and the creative AccessRunner. This seems to be working quite nicely as a router.

Compatability addresses

One thing that you may have noticed in the access summary is a number of hosts having addresses that look like a combination between IPv4 and IPv6 addresses. IPv6 has been designed to coexist completely with IPv4, so that programs written to take advantage of IPv6 can still talk to IPv4 hosts. This is likely to be quite a common occurrance, especially until IPv6 becomes more widespread, so a shorthand for IPv4 addresses has been developed. IPv6 programs can refer to IPv4 addresses as 0:0:0:0:0:0:0:ffff:a.b.c.d, or ::ffff:a.b.c.d in compressed format. This is an IPv6 representation of the IPv4 address a.b.c.d.

As such, if a host contacts winterwolf.co.uk by IPv4 with address 1.2.3.4, it will be logged by the web server as coming from ::ffff:1.2.3.4. winterwolf.co.uk uses an IPv6 aware copy of PHP to process its web logs, so if a reverse DNS record exists for 1.2.3.4, the hostname will be shown as normal. If, however, no reverse record exists, the IP address will be shown as normal. Since the web server is IPv6 enabled, IP address will be logged in IPv6 format. If the host does not speak IPv6, the compatability address ::ffff:1.2.3.4 will be logged, rather than 1.2.3.4 that would have been logged previously.

Static IPv6 routing

The "IPv6 and winterwolf.co.uk" section above is somewhat out of date, if I'm honest. I've kept the address for Jesmos updated as the various changes happen, but since acquiring the AccessRunner, Eclipse has been out of the equation. It allows me to do sensible things with 6in4 packets directly, which makes far more sense than the methods that were being used previously. I've also been using the automatic 6in4 addresses in the 2002::/16 block. Just recently, however, this seems to have broken down recently, and before it stopped working completely latency went through the roof.

In an effort to sort this out, I went out looking for alternatives. I'm not too proud to admit it, as I hate BT with a passion, but it seems that BT Exact really have their head screwed on. They really don't seem to have anything to do with the company that required you to say you were having problems receiving faxes rather than using your modem to get them to check your line for noise.

Anyway, these people are in charge of UK6x, the first IPv6 network in the UK, so they say. Registering on here allows you to pick up statically routed 6in4 tunnels, do reverse DNS delegation and a variety of other somewhat useful things. It initially involves a little more work than the automatic tunneling, as you have to register and request the routes and tunnel, but the results are great.

The tunnel is working fine, and has an average latency of about 35ms, compared to the 200-400 that was common previously. They also provide some great and potentially useful statistics on your tunnel from their end. The net result is that I've changed the IPv6 network completely here to use addresses in the /48 they've delegated to me. 2001:618:4d6::/48 now belongs to me, which should provide a decent level of future-proofing (!). Currently, one subnet has been defined: 2001:618:4d6::/64 is the publically accessible part of winterwolf.co.uk. More may be added in the future.

Since writing, another subnet has been definted. It's a /64 that has been assigned to my mate, and Crush is now serving as his 6to4 gateway. Things seem to be going well - if anyone else fancies doing something like this, please do feel free to get in touch and I'll be happy to point out how to get things going. If I get a bit of spare time, I might even put a bit of a description up here!

IPv6 problems

If you have any problems getting in touch by IPv6, please do let me know and I'll do my best to help you out.

Valid XHTML 1.0Valid Screen CSSValid Printable CSS