Hosts, nsswitch.conf, mdns, Multikastdns

Die Hostsdatei bei Dualstack und aktiven IPV6 soll so ausehen:

127.0.0.1 localhost
#127.0.1.1 box.iteas.at box
::1     box.iteas.at box localhost ip6-localhost ip6-loopbac
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Der ersten Localhosteintrag für IPV4 sollte man bei IPV6 noch noch stehen lassen. Manche Programme wie z.B. Webmin oder Backuppc sind sonst im Webinterface sehr langsam. Wichtig ist das man in der resolv.conf keine Domain oder Searcheintrag hat. IPV4 und IPV6 solle immer nur über einen eindeutigen FQDN erreichbar sein. Alles andere wäre eine große und unötige Fehlerquelle.

Hostsdatei eines PVE4 Proxmoxservers mit „nur IPV6“

127.0.0.1 localhost.localdomain localhost
2001:470:1e0c:567:eb4:7aaf:ee37:e7c7	pveserver.linux.at pveserver pvelocalhost localhost
::1     ip6-localhost ip6-loopback localhost.localdomain localhost
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Die Einträge können natürlich je nach Verwendung abweichen und variieren. Hier wurde das Hauptaugenmerk auf IPV6 gelegt. Ohne das hier die eigene IP mit dem Hostnamen in der Datei stehe werden einige Services nicht gestartet. Wie z.B. Clusterservice, Quorum, usw. Diese Services sind auch nicht für den dynamischen Betrieb gedacht. Würde man diese Maschine mit DHCP oder nur RADVD an ein anderes Netzwerk hängen, würde dies Probleme machen, da der lokale Hostseintrag (eigene IP und eigener Hostname) schon überhaupt nicht mehr zum Netzwerk passt. Ohne Netzwerkkabel kann man jeder Zeit booten.

Noch eine sehr blöde Annahme wäre, wenn man hochfährt, benutzt LDAP, hat die LDAPserver auch in der Hosts eingetragen, man erreicht die LDAPserver von dem anderen Netzwerk auch, darf aber auf die LDAPservices nicht zugreifen, dann benötigt der Bootvorgang sehr sehr lange. Das heist wenn man sie mit so einer Konfig wo anderes ranhängen muss, warum auch immer, am besten zuerst ohne Netzwerk booten, danach Kabel anstecken.

Multikastdns ist eine einfach Methode um in einem internen Netzwerk über DNSnamen zu kommunizieren. Über mDNS kann auch der DNSserver in die resolvconf geschrieben werden. Wenn man seine IPV6 Adressen mit Routing bei RADVD aktivieren bezieht ist dies essentiell. Die Defaultzeile für DNS sieht in der /etc/nsswitch.conf so aus:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 #kann nur mit LOCAL Domänen verwendet werden.

Diese Zeile muss abgeändert werden sobald sich die LAN Domäne mit der AVAHI Domäne gleicht. Ansonsten hat man DNS-Konflikte.

hosts: files dns mdns4  # IPV4
hosts: files dns mdns6  # IPV6
hosts: files dns mdns  # IPV4 und IPV6 ist aber wegen des hohen Timeouts nicht zu empfehlen.

Möchte man mdns bevorzugt behandlen (für Specials und Tests) muss es so aussehen:

hosts: files mdns6 dns

Der Clientdienst für mDNS ist defaultmäßig nicht installiert (avahi-dnsconfd). So könnte natürlich jeder sofort seinen DNSserver übertragen, so könnten einfach falsche DNS Informationen übergeben werden. Entgegenwirken kann man hierfür mit DNSzertifikaten, auch die MDNS.allow spielt hier eine Rolle.

/etc/mdns.allow
local
psenner.at
iteas.at

Man kann sich nur zu diesen Domänen verbinden die hier eingetragen sind.

Als Server kann jeder Rechner agieren der Avahi installiert hat. Man muss lediglich in der /etc/avahi/avahi-daemon.conf folgende Zeile einkommentieren.

[publish]
#disable-publishing=no
#disable-user-service-publishing=no
#add-service-cookie=no
#publish-addresses=yes
#publish-hinfo=yes
#publish-workstation=yes
#publish-domain=yes
publish-dns-servers=<IP-Adresse>
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no

Nach einem Neustart des Avahidienstes hat auch gleich jeder Rechner im Netzwerk den neuen DNS Server; und das ohne DHCP.