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


4 comments:

Anonymous said...

wieso machst Du router advertisements mit dnsmasq, wenn die FB router bleibt (auch für IPv6, wenn ich es richtig gesehen habe)?


Anonymous said...

Weil ich insbesondere einen anderen DNS Server advertisen möchte. Das kann die Fritz box nicht.

Anonymous said...

hier läuft das Konstrukt ohne enable-ra, d.h. Fritzbox sendet M- und O-Flag, dnsmasq auf raspberry ist dhcp für IPv4 und IPv6, gibt per DHCP die DNS und NTP (beides der PI) für beide Protokolle aus. Ich hab' das Gefühl, dass das die einfachere "richtigere" Konfiguration ist, allerdings verstehe ich immer weniger von dem IPv6 Kram, je länger ich mich damit beschäftige.

Anonymous said...

Hi Fritz,

danke für diesen Beitrag. Ich habe hier dnsmasq aufgesetzt, allerdings bleibt ra-param völlig wirkungslos. ra-param=low,60,48 habe ich gesetzt, die RAs kommen mit medium und einer Lifetime von 1800 Sekunden. Das Intervall ist vollkommen krumm und schwankend, jedenfalls keine 60 Sekunden.