[rbldnsd] initial IPv6 support
Don Owens (doowens)
doowens at cisco.com
Sat Feb 18 03:24:36 MSK 2012
Has anyone used the IPv6 support in a production environment yet? I want to use this for real traffic in a couple of months. It looks fine so far, but I haven't seen any comments about it on this list.
Any issues found so far?
Thanks.
./don
On Mar 7, 2011, at 01:40:44, Michael Tokarev wrote:
> Hello.
>
> I completed initial IPv6 support in rbldnsd, in a form of
> ip6tset dataset, in similarity with ip4tset (trivial set).
>
> The difficulty with IPv6 is that the address size is large
> (so it requires both more memory and complex arithmetic),
> and potential amount of addresses is huge too.
>
> Initially I considered using only first half of IPv6 address
> for listing, ie, listing by /64 networks (which is a end-user
> allocation size). This is easy, since it will require just
> a sorted array of 64bit integers, and all modern computers
> are 64bits and supports 64bit integers natively (so comparisons
> will be fast).
>
> But it quickly turned to be insufficient. Imagine a single
> end-user /64 allocation with a mail server in there and a lot
> of infected machines - we should have a way to whitelist at
> least that single mailserver (/128) but keep other zombies
> in the same /64 away.
>
> Using /128 (or any size between /65 and /128 actually) for
> listings isn't really productive either, since it's completely
> controllable by the "bad guys", and it's possible to fill up
> all resources on the DNSBL side by using some round-robin
> mechanism for all your 2^64 addresses. This can be detected
> and addressed on the collector side somehow by aggregating
> "many" listings into larger blocks, so at least in theory
> this can be worked around somehow.
>
> So for now, I implemented a first preview/RFC variant, which
> has quite some limitations, and which I never ever actually
> tested with any real software (like an MTA) - I can perform
> queries using a command-line dns client and see adequate
> replies, and that's about it for now... ;)
>
> Currently, it has 2 lists: one "main" list, for networks of
> size /64 _only_, and another "whitelist", for individual
> /128 addresses only.
>
> So it works for a scenario where you want to list whole
> end-user /64 but have an ability to whitelist a single
> mailserver or two inside.
>
> This is just a test implementation, -- in a somewhat long
> time I didn't do any C programming, and this served me as
> a excersise to remember how things are done to start with,
> so it had to be something smallish. But at the same time
> it should already be useful and I want to hear opinions
> from others about what _should_ be done. So it is quite
> possible that the semantics will change or even whole
> this dataset be removed later, when real-use scenarious
> will be considered.
>
> Current (preview) version can be found at
>
> http://www.corpit.ru/mjt/rbldnsd/rbldnsd-0.996-ipv6-0.tar.gz
>
> and the actual code is in the "ipv6" branch of the git tree,
> see
> http://git.corpit.ru/?p=rbldnsd.git;a=shortlog;h=ipv6
>
>
> Any comments about how it should be done are apprecated.
>
> Thanks!
>
> /mjt
>
>
More information about the rbldnsd
mailing list