Custom Router (Teil 3) – DNS Server

Mein neuer Custom Router soll nun alle Netzwerkaufgaben übernehmen. Die vorher mein alter Server erledigt hat.

Auch für den DNS-Server setze ich wieder Software von ISC ein. Den „Bind“

Auch diesen findet man unter Debian als bind

apt-get install bind9

In der default Konfiguration verwendet bind den DNS aus der /etc/resolv.conf als DNS Server. Eigene Änderungen sollten in der /etc/bind/named.conf.local eingetragen werden.

Zum testen ob der DNS Server wirklich funktioniert bietet sich das Programm dig an.

root@router ~ # dig @127.0.0.1 krone.at 

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @127.0.0.1 krone.at
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45805
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;krone.at.			IN	A

;; ANSWER SECTION:
krone.at.		600	IN	A	213.164.6.215

;; AUTHORITY SECTION:
krone.at.		10800	IN	NS	ns3.krone.at.
krone.at.		10800	IN	NS	ns1.krone.at.

;; ADDITIONAL SECTION:
ns1.krone.at.		10800	IN	A	213.164.6.199
ns3.krone.at.		10800	IN	A	212.186.195.195

;; Query time: 338 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Oct 23 15:59:47 2014
;; MSG SIZE  rcvd: 110

Der DNS Funktioniert schon mal. Nun muss der DNS-Server auch noch erreichbar gemacht werden. Das verhindert meine Firewall-Konfiguration.

Die muss etwas angepasst werden

root@router /etc/bind # iptables -A INPUT -i vlan2 -p udp --dport 53 -j ACCEPT 
root@router /etc/bind # iptables -A INPUT -i vlan3 -p udp --dport 53 -j ACCEPT
root@router /etc/bind # iptables -A INPUT -i vlan4 -p udp --dport 53 -j ACCEPT
root@router /etc/bind # iptables -A INPUT -i vlan5 -p udp --dport 53 -j ACCEPT
root@router /etc/bind # iptables -A INPUT -i vlan1 -p udp --dport 53 -j ACCEPT

Meine Input Chain sieht nun so aus

root@router /etc/bind # iptables-ls
Chain INPUT (policy DROP 25846 packets, 2184K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      493 60879 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
2        0     0 REJECT     all  --  !lo    *       0.0.0.0/0            127.0.0.0/8          reject-with icmp-port-unreachable
3    12311 1023K ACCEPT     all  --  vlan100 *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
4     190K   23M ACCEPT     all  --  vlan101 *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
5        0     0 ACCEPT     all  --  vlan1  *       10.0.0.0/24          0.0.0.0/0            state RELATED,ESTABLISHED
6    12383 4148K ACCEPT     udp  --  vlan2  *       0.0.0.0/0            0.0.0.0/0            udp spt:68 dpt:67
7        0     0 ACCEPT     tcp  --  vlan1  *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
8    1536K   63M ACCEPT     tcp  --  vlan2  *       192.168.1.67         0.0.0.0/0            tcp dpt:22 /* Admin HLAN Adresse darf auf Router */
9     2286  181K ACCEPT     tcp  --  vlan2  *       192.168.1.66         0.0.0.0/0            tcp dpt:22 /* Admin HLAN Adresse darf auf Router */
10      88  8314 ACCEPT     icmp --  vlan2  *       0.0.0.0/0            0.0.0.0/0
11       0     0 ACCEPT     icmp --  vlan1  *       0.0.0.0/0            0.0.0.0/0
12       0     0 ACCEPT     icmp --  vlan4  *       0.0.0.0/0            0.0.0.0/0
13       1    54 ACCEPT     udp  --  vlan2  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
14       0     0 ACCEPT     udp  --  vlan3  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
15       0     0 ACCEPT     udp  --  vlan4  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
16       0     0 ACCEPT     udp  --  vlan5  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
17       0     0 ACCEPT     udp  --  vlan1  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53

Einen DNS-Server von außen erreichbar zu machen sollte man tunlichst vermeiden. Darum ist für vlan100 (ADSL Provider) und vlan101 (Funk Provider) alles dicht.

Danach ist der DNS Server vom HausNetz (vlan2), GastNetz(vlan3), ManagementLAN(vlan1), DMZ-Intern(vlan4) und von DMZ-Extern(vlan5)

Als letzten Schritt wird nun eine Interne Domain definiert.

Zone defnieren

//
// 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 "trabauer.local" {
        type master;
        file "/etc/bind/db.trabauer.local";     };



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

db-File schreiben

; BIND data file for trabauer.local
; /etc/bind/db.trabauer.local
;
$TTL    86400
@       IN      SOA     trabauer.local. root.trabauer.local. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@                               IN      NS      router.trabauer.local.
                                IN      MX      10 router.trabauer.local.
                                IN      A       192.168.1.1

majestix                        IN      A       10.0.1.2
router-hlan                     IN      A       192.168.1.1
router-glan                     IN      A       192.168.2.1
router-idmz                     IN      A       10.0.1.1
router-edmz                     IN      A       10.0.2.1
router-mgm                      IN      A       10.0.0.1
router                          IN      A       192.168.1.1
ap1                             IN      A       10.0.0.101
ap2                             IN      A       10.0.0.102
drucker                         IN      A       192.168.1.96
fritzbox                        IN      A       172.16.0.2
farmpi                          IN      A       192.168.1.51
buero                           IN      A       192.168.1.50
asterix                         IN      A       192.168.1.67
admins-notebook                 IN      A       192.168.1.66

Ich persönlich verzichte auf eine Reverse Lookup Zone. Kann man machen muss man aber nicht unbedingt.

Nun wird noch der DHCP umkonfiguriert das der auch den neuen DHCP-Server verteilt.

root@router /etc/bind # cat /etc/dhcp/dhcpd.conf
#
# Sample configuration file for ISC dhcpd for Debian
#
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "trabauer.local";
option domain-name-servers 192.168.1.1, 172.16.0.2, 92.62.30.3, 195.230.160.12;

## WINS Server
option netbios-name-servers 10.0.1.2;
option netbios-node-type 2;


##PXE Boot
next-server 10.0.1.2;
filename "/pxelinux.0";


default-lease-time 600;
max-lease-time 7200;

# MGM LAN
subnet 10.0.0.0 netmask 255.255.255.0
{
        range 10.0.0.100 10.0.0.254;
        option subnet-mask 255.255.255.0;
        option routers 10.0.0.1;
        option domain-name-servers 10.0.0.1, 172.16.0.2, 92.62.30.3, 195.230.160.12;
}

# HLAN
subnet 192.168.1.0 netmask 255.255.255.0
{
        range 192.168.1.100 192.168.1.254;
        option subnet-mask 255.255.255.0;
        option routers 192.168.1.1;
        option domain-name-servers 192.168.1.1, 172.16.0.2, 92.62.30.3, 195.230.160.12;

        # Printserver/Terminal Client
        host farmPi {
                hardware ethernet bc:05:43:0b:8b:48;
                fixed-address 192.168.1.51;
        }

        # Admin's PC
        host asterix{
                hardware ethernet 40:16:7e:b2:9c:10;
                fixed-address 192.168.1.67;
        }

}

# GuestLAN
subnet 192.168.2.0 netmask 255.255.255.0
{
        range 192.168.2.100 192.168.2.254;
        option subnet-mask 255.255.255.0;
        option routers 192.168.2.1;
        option domain-name-servers 192.168.2.1, 172.16.0.2, 92.62.30.3, 195.230.160.12;
}

Leider akzeptiert mein Provider noch kein IPv6 was tonnenweise Fehlermeldungen zur folge hat

Oct 23 18:45:13 router named[14376]: error (network unreachable) resolving 'ns-911.amazon.com/AAAA/IN': 2001:502:f3ff::1#53
Oct 23 18:45:13 router named[14376]: error (network unreachable) resolving 'ns-912.amazon.com/A/IN': 2610:a1:1017::1#53
Oct 23 18:45:13 router named[14376]: error (network unreachable) resolving 'ns-912.amazon.com/AAAA/IN': 2610:a1:1017::1#53
Oct 23 18:45:13 router named[14376]: error (network unreachable) resolving 'ns-921.amazon.com/A/IN': 2610:a1:1017::1#53
Oct 23 18:45:13 router named[14376]: error (network unreachable) resolving 'ns-911.amazon.com/A/IN': 2610:a1:1017::1#53

Daher habe ich meinen Bind mit der Option -4 gestartet. Was bewirkt dass er nur mit IPv4 läuft.

# run resolvconf?
RESOLVCONF=no

# startup options for the server
OPTIONS="-u bind -4"

Thats it DNS fertig und erreichbar.

About Florian