IPv6, not your grandma's IP

by Craig Miller

Not GrandmaIPv6 is a different networking protocol

The first thing to learn about IPv6, is that it isn't just like your old friend IP(v4). It is a different network protocol which happens to reuse the same layer 4 (UDP and TCP). The two network protocols (IPv4 and IPv6) are not compatible. There is no magic interoperability between them. To access a IPv6 server on the internet from IPv4, there must be a proxy somewhere on the internet which will do the conversion for you. Most implementations, windows, linux, mac, android, use what is called dual stack, this enabling your computer to speak both protocols (kind of like speaking both French and English in Canada).

The separateness of IPv6 is a double edge sword, you can take advantage of it, but so can others. I'll cover this aspect in more detail in a later post.


Quick look at the differences

The obvious and not-so-obvious differences between IPv4 and IPv6 are:
IPv4
IPv6
32 bit long address
128 bit long address
thinking: must conserve host addresses
thinking: define the networks needed for the job. It is OK to waste a /64 on a point to point link because it will make the entire network simpler.
Variable Subnet Length Mask, subnettting is hard
No VSLM, all user subnets are /64, results in simplified subnetting
Single IP address
Always uses multiple IP addresses: one or more global, a temporary (RFC 3041), and a link-local
n/a
Non-routable address, FE80/10, aka Link-local
Uses Broadcast
No Broadcast, uses Multicast
Net Address Translation, keeping IPv4 alive since 1994 (RFC 1631) as a short-term solution
No NAT. Restores true any address to any address connectivity.
Uses ARP to resolve MAC addresses
Uses ICMP to resolve MAC addresses. Blocking ICMP on the firewall, will disconnect your network
Private address space (RFC 1918) aka 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12
Unique Local Address (ULA) FC00::/7 (RFC 4193). Don't use. This is IPv4 thinking, use Global addresses everywhere, keep the network simple
OSPFv2 routing
OSPFv3 routing
Client initiates DHCP
Network controls (via M & O bits in RA) DHCPv6 (RFC 3315)
Pseudo auto-config (169.254.0.0/16)
Stateless Autoconfig (SLAAC)  (RFC 4862)

Don't turn off IPv6 and miss the opportunity to learn

And that is just the tip of the iceberg. So what is one to do? Stick your head in the sand, and turn off IPv6? I would suggest, no. Start playing with IPv6, either with an extra machine (we all have extra machines laying around, right?), or in a VM, and start learning.

Set up your computer to prefer IPv4, if needed

But what if you don't have an IPv6 connection to the internet, and things are slow

If you are running linux, add this to your /etc/gai.conf file, and restart your web browser. IPv4 (as per RFC 6724) will now be preferred:
precedence ::ffff:0:0/96 100

If you are using Windows, use netsh to raise the IPv4 preference.
netsh int ipv6 set prefix ::ffff:0:0/96 100 4

If you are using a Mac, let me know. I haven't found how to adjust the IPv4/IPv6 preference.

Future Growth of the Internet will be on IPv6

IPv6 isn't going away, and ignoring it won't make it go away either. Your organization may be happy using private IPv4 address space, but your customers will be using IPv6, and if they can't get to your IPv4-only website, you will be losing customers. Now that ARIN has run out of IPv4 addresses, there is no time like the present to learn how the next phase of the Internet will work.

And hopefully, once you learn the benefits of IPv6, you wil take the time to simplify your next generation network.



7 October 2015