Delegering av DNS-hanteringen i AMPRNet

Av flera skäl är det önskvärt att delegera DNS-hanteringen tillsammans med adressdelegationerna. Det lokala nätet blir mer robust om det blir frånkopplat och arbetet underlättas lokalt. En nackdel som kräver uppmärksamhet är att fler portar öppnas och exponeras för Internet.

De resurser som krävs lokalt är dels en enkel server (i detta exempel en Raspberrypi under Raspbian), dels någon som tar på sig ansvaret för att hålla zon-filerna aktuella. Arbetsinsatsen är inte stor eller speciellt komplicerad men kräver dock vissa kunskaper. För den oinvigde finns det gott om lättillgängligt utbildningsmaterial på nätet, tex här

De medlemmar som av en eller annan orsak inte anser sig kunna ta hand om en egen dns server kan liera sig med en partner, helst lokalt. Detta organiseras i samband med ursprungliga adressdelegationen och uppdateras vid behov.

Installation av DNS-server

För Debian-liknande Linux-system som Raspbian, Ubuntu, mfl, omfattar installationen föjande paket:

sudo apt-get install bind9 bind9utils dnsutils

sedan behövs konfigurations- och zonfilerna beskrivna nedan. Konfigurationsfilen (named.conf.local) anger vilka zoner som servern hanterar. Zonerna bestå av de två (sub)domänerna xxx.amprnet.se och xxx.se.ampr.org vid framåtuppslagning och de två delegerade adressrymderna (ipv4 och ipv6) vid bakåtuppslagning.

Konfigurationsfiler

Nedan listas konfigurationsfilerna dels på den centrala sevrern som information, dels för den lokala servern tillsammans med de fyra zon-filerna för implementering.

Som exempel ser vi nedan dns-delegationen till SK0TM. Den relevanta adressrymden för varje enskild medlem anges tillsammans med adressdelegationen från föreningen.

Central server

DNS-delegationen på den nationella servern (/etc/bind/named.conf.local) ser ut så här:

//SK0TM
zone "sk0tm.amprnet.se" {
        type slave;
        file "/var/cache/bind/slave/db.sk0tm.amprnet.se";
        masters { 44.140.47.2; 2001:6b0:4b:2f00::2; };
        allow-query { any; };
};
zone "sk0tm.se.ampr.org" {
        type slave;
        file "/var/cache/bind/slave/db.sk0tm.se.ampr.org";
        masters { 44.140.47.2; 2001:6b0:4b:2f00::2; };
        allow-query { any; };
};
zone "47.140.44.IN-ADDR.ARPA" {
        type slave;
        file "/var/cache/bind/slave/db.44.140.47.rev";
        masters { 44.140.47.2; 2001:6b0:4b:2f00::2; };
        allow-query { any; };
};
zone "f.2.b.4.0.0.0.b.6.0.1.0.0.2.ip6.arpa" {
        type slave;
        masters { 44.140.47.2; 2001:6b0:4b:2f00::2; };
        file "/var/cache/bind/slave/f.2.b.4.0.0.0.b.6.0.1.0.0.2.ip6.arpa";
        allow-query { any; };
};

Lokal server

Följande fem filer ska finnas på den lokala servern:

/etc/bind/named.conf.local
/etc/bind/master/db.sk0tm.amprnet.se
/etc/bind/master/db.sk0tm.se.ampr.org
/etc/bind/master/db.44.140.47.rev
/etc/bind/master/f.2.b.4.0.0.0.b.6.0.1.0.0.2.ip6.arpa

Var och en listas nedan.

Lokal konfigurationsfil
$ cat /etc/bind/named.conf.local
i@sk0tm:~ $ cat /etc/bind/named.conf.local
//
// 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 "sk0tm.se.ampr.org" {
        type master;
        file "/etc/bind/master/db.sk0tm.se.ampr.org";
        also-notify { 192.16.124.50; };
        allow-transfer { 192.16.124.50; };
        allow-query { any; };
};

zone "sk0tm.amprnet.se" {
        type master;
        file "/etc/bind/master/db.sk0tm.amprnet.se";
        also-notify { 192.16.124.50; };
        allow-transfer { 192.16.124.50; };
        allow-query { any; };
};

zone "47.140.44.IN-ADDR.ARPA" {
        type master;
        file "/etc/bind/master/db.44.140.47.rev";
        also-notify { 192.16.124.50; };
        allow-transfer { 192.16.124.50; };
        allow-query { any; };
};

zone "f.2.b.4.0.0.0.b.6.0.1.0.0.2.ip6.arpa" {
        type master;
        file "/etc/bind/master/f.2.b.4.0.0.0.b.6.0.1.0.0.2.ip6.arpa";
        also-notify { 192.16.124.50; };
        allow-transfer { 192.16.124.50; };
        allow-query { any; };
};
Zon-fil för framåtuppslagning sk0tm.amprnet.se
pi@sk0tm:~ $ cat /etc/bind/master/db.sk0tm.amprnet.se
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL3600
@IN SOA ns.sk0tm.amprnet.se. noc.ssvl.kth.se. (
18021101 ; Serial
36000    ; Refresh
6000     ; Retry
86400    ; Expire
30000 )  ; Negative Cache TTL
;
@ IN A 44.140.47.2
@ IN AAAA 2001:6b0:4b:2f00::2
@ IN NS ns.sk0tm.amprnet.se.
MX 0 mail.ssvl.kth.se.
gw A44.140.47.1
gw AAAA 2001:6b0:4b:2f00::1
ns A 44.140.47.2
ns AAAA 2001:6b0:4b:2f00::2
pi CNAME ns
pi@sk0tm:~ $ 
Zon-fil för framåtuppslagning sk0tm.se.ampr.org
$ cat /etc/bind/master/db.sk0tm.se.ampr.org
pi@sk0tm:~ $ cat /etc/bind/master/db.sk0tm.se.ampr.org
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 3600
@ IN SOA ns.sk0tm.se.ampr.org. noc.ssvl.kth.se. (
18020301 ; Serial
36000 ; Refresh
6000 ; Retry
86400 ; Expire
30000 )         ; Negative Cache TTL
;
@ IN A    44.140.47.2
@ IN AAAA 2001:6b0:4b::3
@ IN NS   ns.sk0tm.amprnet.se.
     MX 0    mail.ssvl.kth.se.
gw  A   44.140.47.1
ns  A   44.140.47.2
pi  CNAME ns
www CNAME ns
pi@sk0tm:~ $
Zon-fil för bakåtuppslagning ipv4
$ cat /etc/bind/master/db.44.140.47.rev
pi@sk0tm:~ $ cat /etc/bind/master/db.44.140.47.rev
; 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.
;
$TTL3600
@IN SOA ns.sk0tm.amprnet.se. noc.ssvl.kth.se. (
18012001 ; Serial
36000    ; Refresh
6000     ; Retry
86400    ; Expire
30000 )  ; Negative Cache TTL
;
@INNSns.ssvl.kth.se.
NS ns2.ssvl.kth.se.
;********SK0TM*****44.140.47.0/24 ***************
$ORIGIN 47.140.44.IN-ADDR.ARPA.
1  PTR  sk0tm-gw.se.ampr.org.
1  PTR  gw.sk0tm.amprnet.se.
2  PTR  sk0tm-pi.se.ampr.org.
2  PTR  pi.sk0tm.amprnet.se.
2  PTR  www.sk0tm.se.ampr.org.
pi@sk0tm:~ $ 
Zon-fil för bakåtuppslagning ipv6
pi@sk0tm:/etc/bind $ cat /etc/bind/master/f.2.b.4.0.0.0.b.6.0.1.0.0.2.ip6.arpa
; 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    3600
@       IN      SOA     ns.sk0mt.amprnet.se. noc.ssvl.kth.se. (
                        18022701        ; Serial
                        600             ; Refresh
                        60              ; Retry
                        86400           ; Expire
                        300 )           ; Negative Cache TTL
;
@       IN      NS      ns.sk0tm.amprnet.se.
                NS      ns.ssvl.kth.se.
                NS      ns2.ssvl.kth.se.

; 2001:6b0:4b:2f00::0/56  sk0mt.amprnet.se (44.140.15.0/24)
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0     IN      PTR     gw.sk0tm.amprnet.se.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0     IN      PTR     ns.sk0tm.amprnet.se.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0     IN      PTR     pi.sk0tm.amprnet.se.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0     IN      PTR    www.sk0tm.amprnet.se.
pi@sk0tm:~ $ 

Prioritering av ipv4- eller ipv6-adresser vid namnuppslagning

Debian/Raspbian/Ubuntu prioriterar per default ipv6 vid uppslagning. Detta kan ändras genom editering i filen /etc/gai.conf Referens