Since we had to learn several IPv6 Lessons the hard way, we're trying to document them so you don't have to.

LinkLocal addresses should be left alone.

Don't use LinkLocal addresses for anything, they have a specific purpose (auto configuration etc), and using them for general connectivity will lead to nightmares.


I can't ping6 or ssh to a LinkLocal Address
Thats because theres no way to say the LinkLocal on which interface, since a machine always has more than one interface, did you mean the address out eth0 or out lo? Most programs let you specify this, either by %eth0 at the end of the address, or by explicitly saying which interface with -i or similar.

We tried to use LinkLocal addresses for BGP peering. This was a mistake too. Because BGP didn't know which interface the connections originated on, it would always set the next-hop to the LinkLocal address at the far end, even for routers on the same physical network.1?

Perhaps LinkLocal addresses will work on PointToPoint links, but I suspect even then don't bother, save yourself some headaches, avoid LinkLocal addresses. You have 65536 subnets in your SiteLocal address range, use them and save everyone from the nightmares.

For more discussiong on this see LinkLocal.

Machines of any consequence won't autoconf themselves.

If a machine has forwarding enabled then it won't auto configure itself. A machine which runs services should be statically allocated an address and shouldn't autoconf itself (but it will unless it's got forwarding enabled etc). So, set up RouterAdvertisements on your network, but then don't use them. :)

IPv6 is "hostile" traffic

Many devices are either too dumb, or don't trust IPv6 traffic and will drop it. Pull out your IPv6 over IPv4 tunnels to bridge these irritating points.

IPv6 routing as of 2003-06-11 is screwed.

From NZ the closest IPv6 "peering" point is in America, and well, latency sucks. If I ping6 someone on the same ISP as me, their RTT can exceed 3,000ms! This will improve as more people get IPv6 connectivity and more peering points appear, but it's no wonder that noone uses IPv6 when it's significantly slower and less reliable than IPv4 because it has to travel both ways across the pacific.

The MetaNet is ameliorating2? this by doing peering inside NewZealand between interested parties on an experimental basis. If you're interested in doing experimental IPv6 peering with in NewZealand please contact <my firstname> at <the first word of MetaNet> . <the second word of MetaNet> . nz -- PerryLorier

6to4 also helps significantly here.

Internal machines don't add a 2000::/3 route

Internal machines upon getting a router advertisement under linux add a default gateway to a router. All fine and well, until you realise that IPv6 doesn't use default routers and you needed a route to 2000::/3 instead. Sigh.

Adding IPv6 addresses to the wrong interfaces

I recently set-up IPv6 again on my linux box. My linux box would happily talk to the outside world using IPv6 but my internal network machines couldn't. Took me a while to realise that I had configured radvd to use eth0 and also had given my first IPv6 address (::1) to eth0. Change these both to eth2 (which faces my internal network) and everything works fine.

1?: YMMV, this was using Zebra, "real" routers may be smarter. 2?: I like that word. It just sounds neat. More people should use it.


The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • DaveMill
The following authors of this page have agreed to the WlugWikiLicense.

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php:111: Warning: in_array() [<a href=''></a>]: Wrong datatype for second argument