Skip navigation

Monthly Archives: January 2012

No. Maybe you’ll be lucky, and you’ll hit on the right combination of keywords to find a useful result. Or maybe you’ll be given a different personalized view of the search engine’s knowledge space. Or maybe you’ll give me a link I’ve already seen, but which is irrelevant. Or maybe you’ll find nothing at all, like I did.

In any given two-week period, I expect to have each of those experiences at least once. So don’t be so quickly condescending with your LMGTFYs. I asked in your presence because I hoped you might be an expert.

Right now, the state of things is pretty disheartening. I’ll hit docs first. They’ll probably be incomplete or inscrutably organized. Then I’ll hit search engines. Then I’ll ask.

Then, very probably, I’ll be digging into the source code for your language interpreter or other tool. I dug into the Linux kernel source looking for an answer to a Xen question, yesterday. I’ve had to dig into PHP extensions’ source code around twice a month. When trying to figure out how a Python script works, I’ve had to dig through the code of the modules it calls through.

Right now, forums suck, search engines suck (oddly enough, because forums tend to suck), documentation sucks, and the communities around far too many technologies are far too quick to assume a lack of any prior effort. The classic demonstration of at least three of these is to hit a search engine with $query, and have the most promising result be a forum result where the only respondent says something along the lines of “just search for $query”.

I’m not saying there aren’t parasites in forums and chat rooms, but there tends to be a presumption that the people asking questions are parasites.

Anyway, that’s what people are doing wrong. As for how to do it right? The best answers I’ve seen contain three parts in sequence:

  1. A reference to a specific resource for a better understanding of the specific subject area of the question.
  2. A direct response to the question, regardless of whether or not the answerer thought the asker asked the right question.
  3. A remark that the question represents an unusual problem, that they’re probably doing something wrong, and trying to learn more about the scenario the asker is in, and why they aren’t using a more typical solution.

Typically, I don’t see all three of those parts come from the same person. Usually, parts 1 and 2 come from one place, while part 3 comes from someone else. I’ve often seen askers who got all three of those parts in that order stick around; they got good information, and they’ve found a good resource, a good community. I’ve usually seen those that stick around go on to answer questions posed by others.

Though when someone receives part 3 before parts 1 or 2, they’ll get flustered, and may or may not stick around before they get an answer useful to them. So don’t do it in that order. 🙂

So, I gave a presentation in front of the MDLUG this past Saturday. Mostly ad-libbed, but I did put together a list of IPv6 transition mechanisms, assembled from info I found on Wikipedia:

IP-IP tunnels: 4in6, 6in4.

6over4 – similar to SLAAC’s address configuration, but using a host’s IPv4 address rather than their MAC address. The IP address is appended to fe80:0000:0000:0000:0000:0000: Also, ff02:1 becomes, and ff02::2 becomes As link-local addresses and link-local multicast then work, other subsequent normal means to configure hosts on IPv6 may then be used.

DS-Lite – Clients only get IPv6 addresses, and a transition mechanism such as NAT or proxies is used to grant clients access to the global IPv4 network.

6rd – An ISP maps all (or some) of the IPv4 address space to a range within its own IPv6 address space, and operates a relay node which behaves similarly to a 6to4 relay node. 6rd does not enable IPv4 nodes to access IPv6 nodes, or vice versa; it allows IPv6 nodes to reach each other using a stateless tunnel over IPv4.

6to4 – A router with an IPv4 address maps appends its address to 2002, and then appends an arbitrary 16-bit value. 6to4 does not enable IPv4 nodes to access IPv6 nodes, or vice versa; it allows IPv6 nodes to reach each other using a stateless tunnel over IPv4.

ISATAP – Operates similarly to 6over4, with three important distinctions: IPv4 multicast is not required, IPv6 multicast is not available, and hosts must be configured with a list of potential routers. (This is often done by querying DNS for Furthermore, the IPv4 address is appended to fe80:0000:0000:0000:0000:5efe:

NAT64 – A host/router with both IPv4 and IPv6 connectivity operates as a translator, mapping IPv4 addresses to IPv6 addresses, and translating and routing packets between the two networks.

DNS64 – A DNS resolver which synthesizes AAAA records for IPv4-only hosts, where the AAAA records induce the client to connect through a proxy of some sort—typically a NAT64 router.

Teredo – IPv6 over UDP. Teredo server provides teredo client with IPv6 congfiguration details.

Later, after the meeting, I put together a bullet list of topics and points touched on during the meeting. These are not in the order they were discussed, but rather in the order I remembered them later.

  • IPv6 addresses have 128 bits, as opposed to IPv4’s 32 bits.
  • It is recommended that ISPs give their customers /48s or /56’s. A network operator can subdivide their address range as much as they like for their own needs and purposes.
  • The “All-nodes” IPv6 multicast address is ff02::1
  • The “All routers” IPv6 multicast address is ff02::2
  • Link-local addresses begin with fe80
  • “::” is shorthand for 0s
  • CIDR stands for “Classless Inter-Domain Routing”
  • ULA stands for Unique Local Address, and consists of the address range fec0::/7
  • The 6to4 address range consists of 2002::/32
  • SixXS and Hurricane Electric both provide forums for IPv6 professionals and enthusiasts.
  • SixXS and Hurricane Electric both provide free IPv6-over-IPv4 tunnels, allowing IPv4-only networks to access the global IPv6 network
  • Hurricane Electric also offers a free, practical IPv6 certification program, and free DNS hosting for up to fifty domains for those in the cert program.
  • ‘radvd’ is used for rapid configuration of IPv6 hosts
  • DHCPv6 is used for DHCP configuration of IPv6 hosts.
  • The *recommended* configuration for a network is Dual Stack–both IPv4 and IPv6 connectivity.
  • It will grow more expensive to have a public IPv4 address, and double-NATting of IPv4 addresses will grow more common as the number of hosts on the IPv4 network increases.
  • Transition mechanisms exist to allow IPv6 networks to reach each other using tunnels over IPv4 (and vice versa)
  • Transition mechanisms exist to allow hosts on IPv4 networks and hosts on IPv6 networks to communicate with each other.
  • IPv6 makes use of ethernet-level multicast with Neighbor Discovery, as opposed to IPv4’s use of ethernet-level *broadcast* with ARP.
  • Some hardware is already IPv6-capable. Some hardware can be made IPv6-capable via a firmware update. Some hardware cannot be made IPv6-capable.
  • Windows 9x had IPv6 support by way of Trumpet Winsock. Windows 2000 had very, very beta IPv6 support. Windows XP has IPv6 support which is disabled by default, and use of it on XP is disrecommended. Windows Vista and Windows 7 currently have the best IPv6 support of any desktop or workstation OS, owing to their support of DHCPv6. Linux has good support for SLAAC configuration, but not for DHCPv6.
  • If you must, you can enable IPv6 on Windows XP using the command “netsh int ipv6 install”
  • DNS is a distributed database. DNS servers can contain information about both IPv4 and IPv6 addresses.
  • DNS stores IPv4 address information in A records, and IPv6 address information in AAAA records.
  • DNS stores reverse lookups in PTR records. The record for IPv4 address 127.0.0..1 looks like “”, and the record for IPv6 address 2605:2700:0:3::4713:91bf looks like “”
  • On Linux, the ‘ping’ command is for IPv4, and the ‘ping6’ command is for IPv6. On Windows, the ‘ping’ command works with both IPv4 and IPv6.
  • On Linux, you can use either the ‘ifconfig’ or the ‘ip’ command to view and set information relating to IPv6. On Windows, you can view information
  • On Linux, the ‘iptables’ command corresponds to IPv4, and the ‘ip6tables’ command corresponds to IPv6.
  • On Linux, you can place rules in the PREROUTING, FORWARD and POSTROUTING tables to apply firewall rules to your routing.
  • If you must, you can use ULA addresses as part of an IPv6-IPv6 NAT, though some IPv6 network administrators will want to strangle you.
  • The #ipv6 channel on Freenode includes many IPv6 professionals and enthusiasts, and the people there are interested in “teaching you to fish,” not “giving you fish.” Yes, it is an active channel. Yes, the content is usually on-topic. Yes, there is occasionally offtopic content.

And something I should have mentioned, but forgot to:

  • IPv6 links should not be smaller than a /64; without at least a /64, SLAAC (global-scope address autoconfiguration) can’t work.

I’m going to try to present at Penguicon. If anyone wants some in-person IPv6 education, let me know. 🙂

< mrjester> In Bind-ese, is this valid?  zone “” {
< jima> that seems valid enough
< _ruben> it’s not .. unmatched curly bracket
* jima gives _ruben a wedgie
< jima> also, “brace”
* mikemol braces himself. {mikemol}
< jima> 😀
< jima> thank you, i half expected someone to go there.
< _ruben> i had my braces removed ages ago
< mrjester> It accepted it..
< mrjester> Now, does it work.
< mikemol> jima: Now brace yourself.
< jima> {jima}
< _ruben> No, it’s collecting welfare instead
< mrjester> sweet.
< mikemol> Fail. It’s {yourself}.
* jima larts mikemol
< mikemol> What, don’t like being punnished?
< jima> you must not know me well.
< mikemol> Well, I know you better than you know {yourself}…
< mrjester> C-C-C-COMBO BREAKER
< mikemol> Game aborted. Break received.
< mikemol> Restarting…
< mikemol> You are in a maze of twisty little passages, all alike.
< mrjester> north
< mikemol> You are in a maze of twisty little passages, all alike.
< mrjester> look up
< mikemol> You see the ceiling.
< mrjester> crush the braces
< mikemol> You can’t do that.
< mikemol> /help for help
< mrjester> lol
< mikemol> /quit to exit.
< mrjester>   /quit
< mrjester>  /bug Game doesn’t support IPv6
< Xenith> /die