Login


 
Newsletter
Werbung
Do, 5. April 2012, 15:00

Dynamisches DNS-Update im lokalen IPv4/IPv6-Netzwerk

Dynamische DNS-Updates in einem lokalen Netzwerk, in dem IPv4 und IPv6 parallel eingesetzt werden, sind mit verschiedenen Nameservern und in verschiedenen Szenarien möglich. Dabei kommen einige einfache Daemonen zu Hilfe.

Client anpassen

Damit die Namensauflösung funktioniert, müssen die IPv6-Clients mit zwei Programmen ergänzt werden: ninfod und radvc.

Ninfod muss heruntergeladen, kompiliert und installiert werden. Dies geht mit den Kommandos

./configure –prefix /usr
make
sudo make install

Es ist wichtig, dass das Paket libssl-dev (Ubuntu) zuvor installiert wurde. Diese SSL-Bibliothek ist zwar nicht notwendig, der Code enthält jedoch vier Zeilen, die Funktionen dieser Bibliothek aufrufen.

Bei nicht Debian-basierten Linux-Distributionen ist der Aufwand ein wenig größer. Wenn die Initialisierung des Systems mit systemd erfolgt, muss die Datei /lib/systemd/system/ninfod.service mit nachstehendem Inhalt angelegt werden:

[Unit]
Description=Ninfod
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/ninfod

[Install]
WantedBy=network.target

Mit nachstehenden Kommandos ist ninfod freizuschalten und zu starten.

systemctl enable ninfod.service 
systemctl start ninfod.service 

Danach sollte ninfod automatisch beim Booten laufen.

Die nächste Komponente radvc ist ebenfalls zu kompilieren und zu installieren. Ein Aufruf von ./configure erübrigt sich, sudo make install sollte genügen. Bei vielen Distributionen liegt radvd als fertiges Paket vor.

Server einrichten

Auf der Server-Seite sind die Komponenten radvd und bind zu installieren. Beide liegen als fertige Pakete für die meisten Linux-Distributionen vor.

Die Konfiguration von radvd ist denkbar einfach. Die Datei /etc/radvd.conf muss editiert werden und wie folgt aussehen:

interface eth0
{
	AdvSendAdvert on;
	prefix 2001:db8:cafe:dead::/64
	{
	    AdvOnLink on;
		AdvAutonomous on;
		AdvRouterAddr on;
	};
	# Recursive DNS server
	RDNSS 2001:db8:cafe:dead::1 {
	};
	# DNS Search List
	DNSSL dynamisch {
	};
};

Verschiedene Werte sind an die lokalen Gegebenheiten anzupassen.

eth0 ist durch den Namen der verwendete Ethernet-Schnittstelle, an die die Clients angeschlossen sind, zu ersetzen.

2001:db8:cafe:dead::/64 ist das Adressen-Präfix für alle Systeme des lokalen Netzwerks.

2001:db8:cafe:dead::1 ist die IPv6-Adresse des Nameservers (die händisch konfigurierte Adresse der Schnittstelle eth0 in diesen Beispiel)

localnet ist der Domain-Name, der von named verwaltet wird. Ein anderer Name kann auch eingetragen werden, aber Domains wie pro-linux.de. xyz.net oder .info sollten nicht verwendet werden, dies würde zu Problemen beim Zugriff auf externe Ressourcen führen.

Die Konfiguration von named ist ein wenig komplizierter, bedarf aber nur weniger Zusatzeinträge in der Datei /etc/named.conf. In der Regel sollte die vorhandene Datei mit nachstehende Ergänzungen versehen werden:

Im Bereich option (Am Anfang der Datei)

    forwarders {
        2001:4860:4860::8888; // Google IPv6
        8.8.8.8;              // Google IPv4
        192.168.0.1;          // NS für eigene Router
    };

Unter Forwarders sind die Nameserver einzutragen, die relevant sind. Normalerweise wird der Router eingetragen (192.168.0.1 im Beispiel) oder andere öffentliche Nameserver wie im Beispiel aufgeführt. Ohne diesen Abschnitt werden DNS-Anfragen an die Root-Nameserver geschickt, dies sollte vermieden werden.

Am Ende der Datei

zone "localnet" IN {
	type master;
	file "localnet.zone";
	allow-query { any; };
	allow-update { 10.0.0.1; 127.0.0.1; ::1 };
};

In der Zeile allow-update definiert man die Adressen, über den ein Update des Nameservers zulässig ist. 10.0.0.1 ist die Adresse des DHCPv4-Servers für die IPv4-Geräte des lokalen Netzwerks.

Updates der DNS-Einträge werden nur durch den DHCP-Server (IPv4) oder ninsd (IPv6) vorgenommen.

Danach ist noch die Datei localnet.zone anzulegen. In der Datei /etc/named.conf steht üblicherweise im Abschnitt Option ein Eintrag directory <pfad>. Diese neue Datei ist im entsprechenden Verzeichnis mit nachstehendem Inhalt zu erzeugen:

$ORIGIN .
$TTL 259200
dynamic IN	SOA	ns.localnet. root.ns.localnet. (
				2009020774 ; serial
				3600      ; refresh (1 hours)
				600       ; retry (10 minutes)
				86400     ; expire (1 day)
				1800      ; minimum (30 min)
			)
			NS	ns.localnet.
$ORIGIN		localnet.
ns			AAAA	2001:db8:cafe:dead::1

Wieder sind einige Stellen an die eigenen Gegebenheiten anzupassen.

ns ist der Name des Nameservers, localnet der Domain-Name des LAN und 2001:db8:cafe_dead::1 die Adresse des Nameservers. Diese Adresse muss auf jeden Fall angepasst werden und muss natürlich mit der Eintragung in der Datei /etc/radvd.conf übereinstimmen.

Ein kleines Problem kann mit den Zugriffsrechten von named entstehen. Üblicherweise wird named mit einer eigenen Kennung (Besitzer und Gruppe) gestartet. Das Verzeichnis, das diese Datei beinhaltet, muss einen Schreibzugriff für den named-Prozess erlauben, die Datei localnet.zone muss ebenfalls beschreibbar sein. Gegebenenfalls sind die Zugriffsrechte anzupassen.

Als letztes ist ninsd zu installieren. Genau so wie für radvc reicht es aus, als root make install aufzurufen. Dabei soll nicht verschwiegen werden, dass ninsd einen Parameter, nämlich den Namen der überwachten Netzwerkschnittstelle benötigt. Dieser Name wird beim Installieren abgefragt und muss natürlich der übrigen Konfiguration entsprechen, in unseren Beispiel wäre es eth0.

Nach diesen Vorbereitungsarbeiten und einem Start sämtlicher Dienste sollten die Systeme des lokalen Netzwerks namentlich erreichbar sein.

Kommentare (Insgesamt: 3 || Alle anzeigen || Kommentieren )
Pro-Linux
Gewinnspiel
Neue Nachrichten
Werbung