Introducing draft-denog-v6ops-addresspartnaming

Richard Hartmann richih.mailinglist at
Sat Nov 20 04:05:44 CST 2010

On Fri, Nov 19, 2010 at 23:52, William Herrin <bill at> wrote:

> I thought about that. Have a "one colon rule" that IPv6 addresses in
> hexidecimal format have to include at least one colon somewhere. The
> regex which picks that token out versus the other possibilities is
> easy enough to write and so is the human rule: "Oh, it's got
> hexidecimal digits and a colon in it. IPv6 address."

Even if this were feasible at this point, and it's not, this would
still make it hard for humans to detect an IPv6 address at a glance,
makes it impossible to quickly pick out any sections that are more
relevant at the moment and would hog the colon for all eternity,
blocking it for other uses. Also, this would make adding a port even
more cumbersome.

> fd00:68::1 and fd:0068::1 mean different things now. The former means
> fd00:0068::1 while the latter means 00fd:0068::1. I would instead have
> them mean the same thing: fd00:6800::1. The single-colon separator
> gets syntax but no semantics

I am not sure if this would actually be an advantage.

> and the :: separator means "all middle
> nibbles are zero" instead of "all middle two-byte components are
> zero."

Putting the burden of parsing that on humans (and computers). Same as
modern compression algorithms are optimized to doing more work while
encoding and less work during decoding, it does not really make sense
to make it harder to understand an address while reading it for the
dubious gain of saving up to six colons.

> I mean, when you think about it, the consequence that :: means "all
> middle two-byte components are zero" is kinda weird.

It's a commonly accepted, well-defined convention to save humans
effort while not sacrificing readability. There are weirder things in

> Anything you call out will be interpreted as special. The more you
> call it out, the greater the expectation that the distinction is
> important. That's human nature.

Pattern recognition is a central part of our intelligence, so yes,
it's human nature. This is not necessarily a bad thing.

While I agree that some of the delimitations are social, rather than
technical, it's still useful to have them. If this results in some
people not assigning their customers a /56 cause it looks funny, so be

> You've explained netmasks before to folks whose brains couldn't get
> past the dots in the address. We all have.

I honestly think I never explained (as in, after I understood the
matter, myself) netmasks other than as a bit vector. Unless you mean
"write in there cause that's what right for you".

> And referring to IP address
> notation as "dotted quads" just reinforces classful addressing
> concepts so that folks assigning themselves 10/8 subnets damn near
> always split on /16 and /24 boundaries.

And why shouldn't they? Unless they are a large ISP or similar, they
will have enough space for pretty much everything they ever need to
do. It's as good as anything and it allows people to be somewhat
familiar with this stuff.

Not everyone is an expert and that is fine. Personally, I have no
motivation whatsoever to _truly_ understand _everything_ that's
involved in today's wireless systems. Still, it's nice that I can use
them reliably without needing this level of involvement.

> And even more efficiently when we don't have to repeatedly explain
> that the mental model implied by the notation style is, in fact, not
> how the technology actually works.

If the person can grasp what a bit vector is, they will understand. If
they don't, they will not understand it anyway and I won't waste time
trying to explain it in depth. At least as of right now, you are
giving those people some middle ground which allows them to have a
good working knowledge to use IPv6 reliably without needing this level
of involvement.

> No sweat. When I shoot my mouth off, I expect to be challenged on the
> remarks. Part of the fun lies in discovering whether the thesis is
> defensible.

For at least a few rounds, I am usually good for that, too.
Personally, I think I answered the implicit question above, but it
made me re-asses and re-think my personal & professional opinion on
quite a few things and that's a Good Thing, from time to time.

> By the by, as long as I'm criticizing IPv6 notation, let me express
> just how poor a choice of separator character the colon is. The colon
> separates the IPv4 address from a directory or port description only
> slightly less often than the slash. Writing the parsers to handle an
> IPv6 address as a drop in is a pain in the tail. Should have used a
> dash, underscore or plus. Those are far more rarely used in
> tokenization.

A dash is the character people use when there is not a standard. Look
at what they had to do for UUIDs to make them recognizable (which
worked out really well, especially the version encoding. I really like
their solution). Though they had the advantage that substring length
_really_ doesn't matter other than as a way to correctly distinguish
UUIDs from anything else.

I don't really like the colon either, but I can't think of an
alternative, either.


PS: Yes, I am fully aware that my complete email is moot anyway as the
IPv6 syntax will not change, ever. I wrote it for fun :)

More information about the NANOG mailing list