IPV6 explained

Hi, this will get updated as I have the time, I'm starting with this as a placeholder until I have more time to work on it. I'll attempt to explain IPv6 here in simple terms; or at least I'll try to explain what I do say :) . More coming soon...

Updated: 29 July 2007 at 0731

Since it's been mentioned that 32 bit addresses are limiting I'll start with that. IPv4 has a limited number of IP addresses available. With that being the case people saw a solution would have to come about, that solution is IPv6. IPv6 uses a 128 bit addresses which create a lot of changes. According to ARIN we have less than 20 percent of our IPv4 addresses remaining. IPv6 was designed to have a "zero configuration" and was created with large busy LAN(Local Area Network) in mind. With 32 bits, it's possible to express 4,294,967,296 different values. Over half a billion of those are unusable as addresses for whatever reason, leaving a total of 3.7 billion possible addresses for hosts on the Internet. In the early 90's a group called IETF which is short for Internet Engineering Task Force started to work on the problem. 40 or 48 bits would givemore than 281 trillion addresses. The IETF went with 128 bits. That allows for 340,282,366,920,938,463,463,374,607,431,768,211,456

addresses. There are some issues that must be dealt with before IPv6 can ever be a standard. The biggest one is that the IPv6 path to a remote is usually longer than the IPv4 path. To try and get around that there are two 'trial' methods the first one is dual stack(stack is talking about a tcp/ip stack) which is really just an IPv4 and an IPv6 running on the same machine, the idea is that the IPv4 stack handles IPv4 and the IPv6 stack handles the IPv6 stuff. The other method is 'tunneling', to try and make it simple: IPv6 packets are put inside IPv4 packets, then sent across the IPv4 part of the network and then the IPv4 part is stripped and it goes on its way over IPv6. Typically to use tunnelling you go through a tunnel broker. I believe right now most tunnel brokers are still free, there are definitely free ones out there. It's easy to know tunnel addresses because they always start with 2002. You can actually set up a tunnel manually, but it's simpler to go through a broker, some brokers allow manual setup through them. If not, you just have to hope your ISP allows for it.

DNS for IPv6 is a little different, like an A(Authorative) record in IPv4 is the same as an AAAA record in IPv6.

Ok here comes the hard part, I'll try to explain what IPv6 IS, and compare it to IPv4. Acronyms I'll break down for you, other words you don't know ask me here if you want and I'll try and explain it.

IPv4 addresses are split into four 8-bit values and putting periods between those like 192.168.0.1 IPv6 addresses are eight 16-bit values with colons between them, and each 16-bit value is shown in hex(adecimal), using 0-9 and A - F like this: 2001:db8:31:1:20a:95ff:fef5:246e. It's not uncommon for IPv6 addresses to have a bunch of consecutive zeroes. In that case, one of those can be left out. So 2001:db8:31:0:0:0:0:1 becomes 2001:db8:31::1 and the IPv6 loopback address 0:0:0:0:0:0:0:1 becomes ::1. DHCP is not useful in IPv6 for addressing, a different method is used. Here's an example: a router sends out 'router advertisements' (RAs) that contain the upper 64 bits of an IPv6 address, and hosts generate the lower 64 bits to make a complete address.

The bottom 64 bits of an IPv6 address you get from a MAC(Media Access Control) address by flipping a bit and adding the bits ff:fe in the middle. MAC is typically unique to a specific device(not always, you can use MAC cloning which I won't go into). So the Ethernet MAC address 00:0a:95:f5:24:6e gives 20a:95ff:fef5:246e as the lower 64 bits of an IPv6 address, called the "interface identifier" in IPv6. This is more useful than DHCP as everytime you boot, you always get the same address.

I know most admins aren't fond of Windows™, however, in the case of IPv6 it's nice for privacy in that it uses a random number rather than the MAC to get the address. For the paranoid, you could even have it change the random number every 24 hours :P

There are 3 really important types of 'special' address in IPv6, well more, but I only know of 3 that really matter: Link Local, Site Local, and Multicast.

Link local is used for a single physical addess and start with fe80, they are used mostly for IPv6's internal house keeping.

Site local is unique 'site local' addresses where you get a randomly selected block of IPv6 address space starting with fd.

Multicast is a group address, so everything that hits it goes to everyone in the group. Multicast addresses start with ff and are useful for applications where several hosts must receive the same information at the same time like in live video or autoconfiguration and discovery. That's one big difference in IPv4 and IPv6. IPv4 hosts use broadcasts for discovery. So to send a packet over ethernet, it has to know the destination MAC address. So IPv4 'broadcasts' who has 192.0.2.31? to everything on the network. IPv6 sends these packets to a multicast address, so only IPv6 hosts listening(looking) for that kind of requests gets them otherwise the hardware ignores the packets, and you can use switches to filter them out. All you have to do is keep up with which multicast groups hosts are listening for that switch port.

Any IPv6 enabled host right out of the box for Windows Vista, Mac OS X, and most Linux distros are reachable on the same ethernet. It's not hard to find the addresses really, well Windows™(haha for those that care, that ™ symbol is ascii sequence 'alt + 0 1 5 3') blocks out multicast pings, but other OSes generally don't. If you use Windows XP™ you can turn IPv6 on and off with the run commands 'IPv6 install' and 'IPv6 uninstall'.

the IETF is currently working on mobility and multhoming extensions for IPv6. Mobility allows moving from one network to another while keeping the same IP address. An example would be a VoIP call that starts on your network at home, keeps going over wireless and then you could finish your call on the network at work.

Multihoming is connecting to more than one ISP at the same time. It would be useful if one failed, your stuff would automatically move over to the other ISP.

I'm not really sure what more I can say. So I guess now it's just open for questions? As a total afterthought, one thing I like about IPv6 is you can have multiple names resolve on the same machine with one NIC(Network Interface Card) like ::1, ::2, ::3 can all be different 'names' but they all resolve to the same machine it's like an internal NAT(network address translation) that actually allows incoming wihout forwarding etc.. Sure you can do that with subdomains on an IPv4, but on IPv6 you can have multiple domains on the same machine without it being considered a clone in any way. So really you can have multiple vhosts on what is really the same IP address, the only difference would be the ::1 ::2 ::3 etc., which makes a unique address that you can add as needed. Oh yeah, there is a limit to the number of ::numbers you can use, I don't remember what is is exactly though. I'll update again with that, and answers to any questions I get.

 

'Time stands still in all the wrong places'

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nice

I do wish you would post this at geek.mydllurth.com where more technical issues are exposed.

I'm not complaining; however, readership at Geek Wyrld expects this type of techy stuff.

I further see upon the shoulders of giants.

Tell us more

I can hardly wait!

I'm feeling cramped in 32-bit address space.

I further see upon the shoulders of giants.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.