[122137] in North American Network Operators' Group
Re: Regular Expression for IPv6 addresses
daemon@ATHENA.MIT.EDU (Mark Andrews)
Sat Feb 6 19:43:59 2010
To: James Hess <mysidia@gmail.com>
From: Mark Andrews <marka@isc.org>
In-reply-to: Your message of "Sat, 06 Feb 2010 16:52:33 MDT."
<6eb799ab1002061452s51f9cf61p303d36130291301@mail.gmail.com>
Date: Sun, 07 Feb 2010 11:43:15 +1100
Cc: nanog@nanog.org, Richard.E.Brown@dartware.com
Errors-To: nanog-bounces+nanog.discuss=bloom-picayune.mit.edu@nanog.org
In message <6eb799ab1002061452s51f9cf61p303d36130291301@mail.gmail.com>, James
Hess writes:
> On Fri, Feb 5, 2010 at 12:15 AM, <sthaug@nethelp.no> wrote:
> >> > And now for the trick question. =A0Is ::ffff:077.077.077.077 a legal
> >> > mapped address and if it, does it match 077.077.077.077?
>
> Wasn't there an internet draft on that subject, recently?
> http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04
>
> 077.077.077.077 is equivalent to 77.77.77.77 if valid at all
> RFC 4038 is very clear that the text representation of a mapped IPv4
> address is Base 10. http://tools.ietf.org/html/rfc4038#section-5.1
But 077.077.077.077 is octal dotted quad. Decimal dotted quad does
*not* have leading zeros. The point of allowing for dotted quad
is to allow for easy mapping between IPv4 representation and IPv6
with encoded IPv4 representations. Accepting a octal representation
as decimal is a bad thing and leads to none obvious failures.
% ping 077.077.077.077
PING 077.077.077.077 (63.63.63.63): 56 data bytes
^C
--- 077.077.077.077 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
%
"ping ::ffff:077.077.077.077" would not get to same box if my ping
accepted that as a address literal which luckily it doesn't.
> This is a bit like asking if "::ffff:10.1.2" is a valid IP
> address though.
Except it clearly isn't as there are not 4 components.
> And is it the same as the ip address "10.1.2" ?
> (Which of course expands to 10.1.0.2, on common implementations of
> inet_pton, inet_aton, and getaddrinfo) Or ::ffff:0xA010002
inet_pton() did not accept 10.1.2 when it was originally written.
This was a *deliberate* decision. Some vendors have changed it to
accept it but they are wrong. I can say that because I was involved
in making that decision.
> I would say these are perfectly valid _shorthands_ and
> abbreviations for entering an IP address, which may be provided by
> some systems, but that they are non-canonical text representations
> for displaying publishing or sharing IP addresses.
> --
> -J
>
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: marka@isc.org