≡ Menü

Statische IP Adresse per DHCP mit dnsmasq vergeben

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.confsorgt 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 😉

{ 0 comments… add one }

Trackbacks

Leave a Comment

*