Skip to content

Commit

Permalink
Async DNS over TCP (akka#25690)
Browse files Browse the repository at this point in the history
  • Loading branch information
raboof authored Oct 16, 2018
1 parent d71ba25 commit 23b7f86
Show file tree
Hide file tree
Showing 22 changed files with 848 additions and 108 deletions.
50 changes: 50 additions & 0 deletions akka-actor-tests/src/test/bind/etc/bind.keys
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# The bind.keys file is used to override the built-in DNSSEC trust anchors
# which are included as part of BIND 9. The only trust anchors it contains
# are for the DNS root zone ("."). Trust anchors for any other zones MUST
# be configured elsewhere; if they are configured here, they will not be
# recognized or used by named.
#
# The built-in trust anchors are provided for convenience of configuration.
# They are not activated within named.conf unless specifically switched on.
# To use the built-in key, use "dnssec-validation auto;" in the
# named.conf options. Without this option being set, the keys in this
# file are ignored.
#
# This file is NOT expected to be user-configured.
#
# These keys are current as of October 2017. If any key fails to
# initialize correctly, it may have expired. In that event you should
# replace this file with a current version. The latest version of
# bind.keys can always be obtained from ISC at https://www.isc.org/bind-keys.
#
# See https://data.iana.org/root-anchors/root-anchors.xml
# for current trust anchor information for the root zone.

managed-keys {
# This key (19036) is to be phased out starting in 2017. It will
# remain in the root zone for some time after its successor key
# has been added. It will remain this file until it is removed from
# the root zone.
. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";

# This key (20326) was published in the root zone in 2017.
# Servers which were already using the old key (19036) should
# roll seamlessly to this new one via RFC 5011 rollover. Servers
# being set up for the first time can use the contents of this
# file as initializing keys; thereafter, the keys in the
# managed key database will be trusted and maintained
# automatically.
. initial-key 257 3 8 "AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3
+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv
ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF
0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e
oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd
RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN
R1AkUTV74bU=";
};
12 changes: 12 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
13 changes: 13 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.127
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
1.0.0 IN PTR localhost.
12 changes: 12 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.255
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
13 changes: 13 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.bar.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
$TTL 86400

@ IN SOA bar.example root.bar.example (
2017010302
3600
900
604800
86400
)

@ IN NS example
example IN A 192.168.2.19
a-single IN A 192.168.2.20
14 changes: 14 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.empty
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS localhost.
80 changes: 80 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.foo.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
$TTL 86400

@ IN SOA foo.test root.foo.test (
2017010302
3600
900
604800
86400
)

@ IN NS test
test IN A 192.168.1.19
a-single IN A 192.168.1.20
a-double IN A 192.168.1.21
a-double IN A 192.168.1.22
aaaa-single IN AAAA fd4d:36b2:3eca:a2d8:0:0:0:1
aaaa-double IN AAAA fd4d:36b2:3eca:a2d8:0:0:0:2
aaaa-double IN AAAA fd4d:36b2:3eca:a2d8:0:0:0:3
a-aaaa IN AAAA fd4d:36b2:3eca:a2d8:0:0:0:4
a-aaaa IN AAAA fd4d:36b2:3eca:a2d8:0:0:0:5
a-aaaa IN A 192.168.1.23
a-aaaa IN A 192.168.1.24

many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d00
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d01
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d02
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d03
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d04
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d05
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d06
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d07
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d08
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d09
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d0a
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d0b
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d0c
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d0d
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d0e
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d0f

many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d10
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d11
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d12
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d13
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d14
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d15
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d16
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d17
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d18
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d19
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d1a
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d1b
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d1c
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d1d
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d1e
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d1f

many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d20
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d21
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d22
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d23
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d24
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d25
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d26
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d27
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d28
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d29
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d2a
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d2b
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d2c
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d2d
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d2e
many in AAAA 2001:985:965:1:ba27:ebff:fe5f:9d2f

service.tcp 86400 IN SRV 10 60 5060 a-single
service.tcp 86400 IN SRV 10 40 5070 a-double

cname-in IN CNAME a-double
cname-ext IN CNAME a-single.bar.example.

14 changes: 14 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
90 changes: 90 additions & 0 deletions akka-actor-tests/src/test/bind/etc/db.root
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: February 17, 2016
; related version of root zone: 2016021701
;
; formerly NS.INTERNIC.NET
;
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
;
; FORMERLY NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:84::b
;
; FORMERLY C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c
;
; FORMERLY TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13
D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2d::d
;
; FORMERLY NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; FORMERLY NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f
;
; FORMERLY NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; FORMERLY AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 198.97.190.53
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::53
;
; FORMERLY NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fe::53
;
; OPERATED BY VERISIGN, INC.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:c27::2:30
;
; OPERATED BY RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1
;
; OPERATED BY ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:3::42
;
; OPERATED BY WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35
; End of file
11 changes: 11 additions & 0 deletions akka-actor-tests/src/test/bind/etc/named.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
30 changes: 30 additions & 0 deletions akka-actor-tests/src/test/bind/etc/named.conf.default-zones
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};


17 changes: 17 additions & 0 deletions akka-actor-tests/src/test/bind/etc/named.conf.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
include "/etc/bind/zones.rfc1918";

zone "bar.example" {
type master;
file "/etc/bind/db.bar.example";
};

zone "foo.test" {
type master;
file "/etc/bind/db.foo.test";
};
26 changes: 26 additions & 0 deletions akka-actor-tests/src/test/bind/etc/named.conf.options
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.

// forwarders {
// 0.0.0.0;
// };

//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;

auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};

4 changes: 4 additions & 0 deletions akka-actor-tests/src/test/bind/etc/rndc.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
key "rndc-key" {
algorithm hmac-md5;
secret "WNiF81LrIxYbbPwt/twgUA==";
};
Loading

0 comments on commit 23b7f86

Please sign in to comment.