Manchmal ist es nötig, dass ein Gerät im Netzwerk immer die gleiche IP-Adresse bekommt. Manche Devices könnte man theoretisch mit einer festen IP konfigurieren. Hat man aber sowieso einen DHCP-Server für die – normalerweise ja dynamische – Adressvergabe laufen, sollte man auch die festen IPs durch diese zentrale Instanz vergeben lassen. Mit dem „kleinen“ DNS/DHCP-Server dnsmasq ist das schnell erledigt.
Ich setzte für mein kleines Netzwerk auf dnsmasq als DNS- und DHCP-Server, der auf meinem Linux „meine Cloud“-Server mitläuft.
Die Grundlegenden Paramter werden alle in der Datei /etc/dnsmasq.conf
hinterlegt. In meinem Netz gibt es dabei für den DHCP-Server die Regelung, dass ich den unteren Bereich der IPs (x.x.x.1 bis x.x.x.49) nicht per DHCP vergebe. Um den DHCP-Server zu aktivieren benötigt dnsmasq sowieso den entsprechenden Parameter:
dhcp-range=192.168.0.50,192.168.0.250,12h
Somit bleiben die unteren Adressen von der automatischen vergabe also erstmal unberücksichtig.
Um nun eine IP-Adresse aus dem festen Bereich immer einem bestimmten Gerät zuzuweisen gibt es mehrere Möglichkeiten. Die einfachste ist, die IP-Adresse an die MAC-Adresse des Gerätes zu binden. Diese ist ja weltweit eindeutig* und fix* an das Interface des Gerätes gekoppelt.
dhcp-host=xx:xx:xx:xx:xx:xx,Philips-Hue,192.168.0.15
Diese Anweisung in der dnsmasq.conf
sorgt dafür, dass eine DHCP-Anfrage der Philips Hue Bridge mit der MAC-Adresse xx:xx:xx:xx:xx:xx von dnsmasq immer mit der IP 192.168.0.15 beantwortet und im DNS mit dem Namen Philips-Hue eingetragen wird.
Dies war z.B. in meinem Netz notwendig, um die Hue-Lampen über mein Heimautomatisierungs-Portal auf Basis von openhab steuern zu können. openhab hat die Hue-Bridge ohne die fixe IP leider nicht automatisch gefunden.
Eine weitere Möglichkeit, das gleiche zu erreichen, ohne die Einträge alle in die dnsmasq.conf
zu schreiben, ist die Verwendung der Datei /etc/ethers
. Dort kann man die Zuordnung der MAC-Adressen zu den jeweiligen IPs ebenfalls hinterlegen. Die Hostnamen für den DNS trägt man dann in die /etc/hosts
ein. Man darf aber nicht vergessen den Paramter
read-ethers
in der dnsmasq.conf
zu entkommentieren.
*Es lebe die Virtualisierung 😉
Trackbacks