IPv6 is the next generation of the internet protocol. When IPv4 (the current standard developped in 1981) came out, they figured that an estimated 4.294 billion addresses would be enough. It turns out that this internet thing really caught on and there's actually a shortage of IP addresses. To remedy this situation, there have been many proposed solutions, but the one that has really caught on with the techs around the world is IPv6. For someone who doesn't know all that much about networking or computers, the world of IP can be a scary confusing place. This web site's aim is to include limited technical information, but include many step-by-step HOWTOs to set up IPv6 on your computer and network.
NAT is a fantastic temporary solution, but that is all it really is. The internet is designed so that computers can communicate directly to each other around the world. In due time there will be no extra IP addresses and we will be forced to move to IPv6 as the internet protocol. Until that time, computers will be huddled in their own private networks behind NAT servers and gateways. The down side of this is that your computer, rather than having complete, unlimited access, incoming and outgoing to the internet, is being blocked by it's gateway to the internet.
At the present time (Summer 2003) the small office / home office (SOHO) router makers (LinkSys, D-Link and Netgear) are not using IPv6. Eventually they will be forced to. At that time, you'll either be able to upgrade the firmware on your router if they're nice, or you'll have to buy a new router. If you want to start to play with IPv6 and you don't have an public IP address (that is to say, you are stuck behind a NAT gateway or proxy) you will have to use a very newer access method called teredo.
IPv6 prefix lengths are comparable to the subnets of IPv4, they are much bigger though because IPv6 is based on a completely different address structure. A /64 is the address length in the form of:
ffff:ffff:ffff:ffff:0000:0000:0000:0000
where the last part of the address will usually look something like:
ffff:ffff:ffff:ffff:0200:00ff:fe00:0000
and would be filled in with the MAC address of the network card. For example, a MAC Address of 00:08:DB:EF:34:33 would result in an IPv6 address like:
ffff:ffff:ffff:ffff:0208:dbff:feef:3433
Each part of an IPv6 address with prepending 0s can be omitted, but still represent the same address. The following are some examples...
ffff:ffff:ffff:ffff:0208:dbff:feef:3433
shown as:
ffff:ffff:ffff:ffff:208:dbff:feef:3433
One set of repeating zeros in address can be replaced with two colons side by side as well
ffff:ffff:ffff:ffff:0000:0000:00a0:feb5
shown as:
ffff:ffff:ffff:ffff::a0:feb5
or
ffff:ffff:ffff:ffff:0000:0000:4000:0004
shown as:
ffff:ffff:ffff:ffff::4000:4
A /64 contains 2^64 nodes or 18,446,744,073,709,551,616 IPv6 addresses. That's 18.446 quintillion for those of you who need to call it something. A /48 contains 65,535 /64s. The spec for IPv6 states that you'll be routed a /64 for being able to breathe, for all of your machines/devices behind your router. Your router would be given it's own address out of your provider's pool for your neighbourhood.
A /48 contains 1,208,907,372,870,555,465,154,560 IPv6 address, which is 1.208 septillion addreses or 65,536 /64s. So, if you were routed dead:beef:cafe::/48 you can create your /64s starting with dead:beef:cafe:0000::/64 and ending with dead:beef:cafe:ffff::/64
A /56 uses the first two bits of the /48 for the network and the second two for you to specify for your /64s.
If you were routed:
dead:beef:cafe:1200::/56
your first available /64 is:
dead:beef:cafe:1200::/64
and your last is:
dead:beef:cafe:12ff::/64
giving you 256 /64s do with to as you please. Providers were originally going to issue /48s but by dividing them into /56s they'll be able to stretch their address pools further and most users don't have more than 256 networks to deal with so it all works out.
Approximate Number of IPv6 Addresses | Size | Easier to Say | Mask | |
---|---|---|---|---|
18,446,744,073,709,551,616 | /64 | 18.466 | quintillion |
|
1,208,907,372,870,555,465,154,560 | /48 | 1.208 | septillion |
|
79,225,744,681,071,852,408,904,089,600 | /32 | 79.225 | octillion |
|
5,192,059,177,674,043,847,617,529,511,936,000 | /16 | 5.192 | undecillion |
|
So you want to get an IPv6 address today, there's a few ways to do it. The first one, and the best one is if your Internet Service Provider (ISP) supplies them to you. This is great, because all you have to do now is enable IPv6 on your computer (if it's not already enabled) and you're done.
Most of us don't have that luxury, fortunately there has been a lot of work in creating a tunneling protocol which allows you to get and use an IPv6 address over your IPv4 connection to the internet. There's a whole lot of documentation about this and how to use it, so I'd like to go over some of it with you. I've tried this stuff with Windows XP, FreeBSD 4.8 and RedHat Linux 7.3 so I can give you a little bit of what I ran into to get where I am today.
The all-around easiest way to connect to get an IPv6 address and a connection is to use Freenet6 Tunnel Setup Protocol and the best part is that it's free.
Stumbled upon this site which I created 8 years ago, a lot of the information is still quite useful. I've just re-built my IPv6 access and done so using Hurricane Electric's TunnelBroker.net. Their process has become very simple, their tunneling is fast (+/-3 ms vs. IPv4 w/o tunnel) and you can set up 5 tunnels with one user name and password. Each tunnel is created with an IPv6 address and is routed a /64 for the rest of your network automatically. You can also request a /48 which allows you to route out multiple /64s to multiple networks.
IPv4 is on the verge of running out this year so IPv6 is ready to pick up and provide those 18 quitillion addresses to your home. Comcast and other providers have begun limited trials to launch IPv6 connectivity to their users.
New HOWTO for IPv6 Day 2011: HOWTO Configure Fedora/CentOS with Hurricane Electric's Tunnelbroker.net