[Bro-Dev] IPv6 literal addr constants
Daniel Thayer
dnthayer at illinois.edu
Fri Mar 9 09:27:52 PST 2012
On 03/09/2012 11:01 AM, Siwek, Jonathan Luke wrote:
> Representing compressed-hex IPv6 addresses (replacing consecutive fields of zeros with ::) in scripts as literal constants can be ambiguous with identifiers that use "::" as a namespace resolver.
>
> For example, the lexer will treat "aaaa::bbbb" as the "bbbb" identifier in the "aaaa" namespace/module. Specifically, this is the case where someone tries to write an address that uses only the first and last 16-bit fields and the first nibble of both fields is a letter.
>
> I think this would be uncommon, but also maybe not obvious to figure out when someone actually runs into it, though it's easy to workaround once you know what's going on. Any ideas for fixing the ambiguity or does it seem reasonable to just have it documented?
>
> +Jon
The example that I found yesterday was a607:f8b0::/32 (I get an error
message from bro, "unknown identifier a607"). If I write it
as a607:f8b0::0:0:0:0:0/32, then I still get the same
error message. Writing it without a double colon
a607:f8b0:0:0:0:0:0:0/32 seems to work.
If the first digit is in the range 0-9 (and not in
the range a-f), then bro does not complain (such
as 2607:f8b0::/32).
-Daniel
More information about the bro-dev
mailing list