Friday 7 February 2014

Nebeneinander von DNSMASQ DHCPv6 und Fritzbox DHCPv6 Server

Um ein paar Dinge lokal realisieren zu können, musste ich letztlich einen Nameserver im LAN bereitstellen. Um nicht jeden Client einzeln konfigurieren zu müssen, sollte der Nameserver per DHCP verteilt werden.

 Zwar lassen sich in der Fritzbox auch andere Nameserver einstellen, allerdings werden diese nicht über DHCP verteilt. Stattdessen wird nach wie vor die Fritzbox als Nameserver verteilt und die Fritzbox stellt DNS-Queries dann an die in der Fritzbox hinterlegten Server.

 In meinem neuen Setup verteilt dnsmasq sowohl über DHCPv4 als auch DHCPv6:


  •  Lokale Nameserver und Backups, und zwar IPv4 und IPv6 Nameserver - 
  • Via DHCPv4 IPv4-Adressen 
  • Via DHCPv6 lediglich die nicht IP-bezogenen Einstellungen, bei mir die IPv6 Nameserver und ein IPv6-NTP-Server. Die Fritzbox ist weiterhin für die DHCPv6-Verteilung aller IP-bezogegenen Einstellungen (=O-Flag) zuständig.
In meiner Konfiguration bekommt meine Fritzbox über einen SIXXS Tunnel ein IPv6-Subnet und verteilt die öffentlichen IPs an die Clients im LAN, eben über den DHCPv6 Server.

 Bevor wir den DHCPv4 Server abschalten und den DHCP v6 Server auf die IP-Verteilung beschränken, soll zunächst dnsmasq eingestellt werden. Die dnsmasq.conf sollte ungefähr so aussehen:

 # Wir wollen nur DHCP, Nameserver macht in meiner Konfiguration unbound, daher DNS in dnsmasq aus mit 0
port=0

# Die IPv4-Range, die dnsmasq verteilen darf, 2h ist die leasetime.
dhcp-range=10.0.12.100,10.0.12.200,2h

# Der interessante Teil:
# Um DHCPv6 in dnsmasq einzuschalten, *muss* eine IPv6 Range eingestellt sein. Hier eingestellt auf alle Scopes im link-
# local-Bereich und meinen von SIXXS zugeteilten IPv6 Präfix (hier sinnlos verändert).
#
# ra-only befiehlt dnsmasq, nur in dem zuvor bezeichneten Subnets Ansagen zu machen, aber kein DHCP.
# ra-param setzt die Wichtigkeit der Ansagen auf hoch, den Ansage-Intervall auf 60 Sekunden und die lifetime der Route (=1200)

dhcp-range=::0, ra-only, ra-param=high,60,1200
dhcp-range=2001:xxxx:xxxx:xxxx::, ra-only, ra-param=high,60,1200

# "Enable dnsmasq's IPv6 Router Advertisement feature." - Kein weiterer Kommentar:

enable-ra

# DNS-Server, die via DHCPv6 verteilt werden: 
dhcp-option=option6:dns-server,[hier eine IPv6 Adresse eintragen, in Klammern!],[noch:eine::],[noch:eine:],[2001:4860:4860::8888]
dhcp-option=option6:domain-search,fritz.box
dhcp-option=option6:42,[ein::zeit:server:]

# dhcpv4 Subnetzmaske:
dhcp-option=1,255.255.255.0
# Gateway (= IP der Fritzbox)
dhcp-option=3,10.0.30.1
# Nameserver
dhcp-option=6,10.0.30.5,10.0.30.1,8.8.8.8
# Broadcast
dhcp-option=28,10.0.30.255
# Zeitserver (hier die Fritz)
dhcp-option=42,10.0.30.1

# Set the "all subnets are local" flag
dhcp-option=27,1
dhcp-option=option:domain-search,fritz.box
dhcp-authoritative

# The DHCP server needs somewhere on disk to keep its lease database.
# This defaults to a sane location, but if you want to change it, use
# the line below.
dhcp-leasefile=/var/lib/misc/dnsmasq.leases

# Ein paar statische Adressen

dhcp-host=00:24:6d:90:ff:8d,irgendein-name,10.0.12.50,infinite
dhcp-host=00:19:D9:4F:82:4F,noch-ein-name,10.0.12.51,infinite