spamhaus / rbldnsd

A small and fast DNS daemon especially made to serve DNSBL zones.
https://rbldnsd.io/
GNU General Public License v2.0
57 stars 12 forks source link

Odd behavior with IPv6 address specification and missing entries #27

Open nkukard opened 2 years ago

nkukard commented 2 years ago

I've come across something which is a bit odd regarding IPv6. I was wondering if this is intended.

I was playing with a test zone here...

# Zone settings
$SOA 86400 a.ns.example.net dns.example.net 0 7200 300 1209600 3600
$NS 86400 a.ns.example.net b.ns.example.net c.ns.example.net d.ns.example.net e.ns.example.net

$DATASET ip4set @

# Version
127.0.1.1/32 :127.0.1.1: TIMESTAMP=999

# Default listing description
:127.0.0.2:Listed in Example, see https://example.net/lookup?$

# Test
127.0.0.2/32

$DATASET ip6trie @

# Default listing description
:127.0.0.2:Listed in Example, see https://example.net/lookup?$

# Version
::ffff:7f01:1/128 :127.0.1.1: TIMESTAMP=999

# Test
::ffff:7f00:3/128 :127.0.0.1: TEST
::ffff:7f00:2/128 :127.0.1.1: TEST2
::FFFF:7F00:1/128

2fff:aaaa:0:a001::14
2fff:aaaa:0:a001::15
2fff:aaaa:0:a001::54

But when dumping the zone file using -d, I get this ...

rbldnsd -w /tmp -n dnsbl.example.net:combined:dnsbl.zone -d
; zone dump made Sat Feb 12 22:40:52 2022
; rbldnsd version 0.998a (06 Sep 2016)
$ORIGIN dnsbl.example.net.
@       86400   SOA     a.ns.example.net.       dns.example.net.        (1644705503 7200 300 1209600 3600)
        86400   NS      a.ns.example.net.
        86400   NS      b.ns.example.net.
        86400   NS      c.ns.example.net.
        86400   NS      d.ns.example.net.
        86400   NS      e.ns.example.net.
$TTL 2100
$ORIGIN dnsbl.example.net.
2.0.0.127       A       127.0.0.2
        TXT     "Listed in Example, see https://example.net/lookup?127.0.0.2"
1.1.0.127       A       127.0.1.1
        TXT     "TIMESTAMP=999"
1.0.0.0.1.0.f.7.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 A       127.0.1.1
        TXT     "TIMESTAMP=999"
4.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.a.0.0.0.0.a.a.a.a.f.f.f.2 A       127.0.0.2
        TXT     "Listed in Example, see https://example.net/lookup?2fff:aaaa:0:a001::54"

Notice the missing entries?

It seems to happen only when the last significant bit is changed.