Univention Bugzilla – Bug 28473
IPv6-Stack im Installer defekt
Last modified: 2012-12-12 21:10:08 CET
Aktuell ist es mind. mit amd64 nicht möglich, eine Dualstack-Master-Installation durchzuführen. Eine reine IPv6-Installation wurde noch nicht getestet. IPv4-Adresse: 10.200.18.16/255.255.255.0 IPv6-Adresse: 2001:4dd0:ff00:8c42:ff18::16/80 Gateway: 2001:4dd0:ff00:8c42:ff18::1 DNS-Server: 2001:4dd0:ff00:8c42:ff18::1 (siehe auch Screenshot) Unser IPv6-Gateway (2001:4dd0:ff00:8c42:ff18::1) ist erreichbar und antwortet auch auf DNS-Anfragen (getestet mit meinem Notebook). Während der Installation benötigt der Joinvorgang plötzlich SEHR lange. Alle UDM-Aufrufe benötigen sehr viel Zeit. Bei der Untersuchung ist aufgefallen, dass es nicht möglich ist, das IPv6-Gateway anzupingen oder DNS-Anfragen zu stellen. Anscheinend funktioniert die Neighbour-Discovery nicht. Es wurde per tcpdump auf dem IPv6-Gateway UND auf der joinenden Master-Instanz mitgeschnitten, welcher ICMPv6-Pakete über eth0 wandern. Man kann dabei sehen, dass die Instanz ständig versucht, die MAC-Adresse des Gateways aufzulösen. Der Neighbour-Eintrag wird auch als "INCOMPLETE" angezeigt (Screenshot: ip neigh). Neighbor solicitation und neighbor advertisement werden von tcpdump sowohl auf dem IPv6-Gateway als auch auf der betroffenen Instanz aufgezeichnet. D.h. die Pakete gehen korrekt hin und her, werden aber nicht in der lokalen Neighbor Tabelle eingetragen. 10:53:23.416425 IP6 2001:4dd0:ff00:8c42:ff18::16 > ff02::1:ff00:16: ICMP6, neighbor solicitation, who has 2001:4dd0:ff00:8c42:ff18::16, length 32 10:53:23.440366 IP6 2001:4dd0:ff00:8c42:ff18::16 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has ipv6.knut.univention.de, length 32 10:53:23.440396 IP6 ipv6.knut.univention.de > 2001:4dd0:ff00:8c42:ff18::16: ICMP6, neighbor advertisement, tgt is ipv6.knut.univention.de, length 32 Sogar das Anpingen des eigenen, lokalen Interfaces schlägt fehl.
Created attachment 4648 [details] IPv6 settings
Created attachment 4649 [details] ipconfig
Man beachte den hohen Wert an dropped RX packets.
Dies lässt sich reproduzieren: Während der Installation funktioniert v6 nicht mehr. Symptom: ip -6 route list table local hat keinen Eintrag für die eigene v6-Adresse obwohl ip a sie als konfiguriert listet. Im chroot funktioniert ifdown eth0 nicht, weil "interface not configured", und ifup eth0 funktioniert nicht, weil die Adresse nicht zugewiesen werden kann. Repariert werden kann es mit ip a flush eth0 ifup eth0 Dann funktioniert wieder alles wie vorher. Vermutung: Der Installer konfiguriert die Schnittstelle, aber im chroot ist nicht bekannt, dass eth0 konfiguriert ist. Darum wird beim ifdown nichts getan, insbesondere nicht die Adresse entfernt, weshalb ifup fehl schlägt. (ifdown/ifup wird bei der Installation durch den interfaces.py-UCR-Hook durchgeführt)
Während der Installation des Pakets univention-base-files wird versucht, das IPv6-Interface erneut zu konfigurieren. Da die IPv6-Adresse bereits am Interface vorhanden ist, schlägt ein Befehl im Skript ifup fehl, so dass dieses abbricht und ein halb-konfiguriertes IPv6-Interface übrig bleibt. Wie von Janek beschrieben ist die lokale Routingtabelle defekt. Workaround wäre "ifconfig $interface down; ifup $interface". Da Probleme in Verbindung mit dem Netinstaller zu erwarten wären, wird stattdessen in 25_install_config_registry.sh die Rekonfiguration von Netz-Interfaces über die UCR-Variable interfaces/restart/auto=no via --force deaktiviert. Dies sollte keine Defaultwerte beeinflussen. In 95_cleanup.sh wird der forcierte Wert anschließend wieder entfernt. Vermutete Ursache: anderes Verhalten von Kernel 3.2; mit UCS 3.0 ist das Problem nicht aufgetreten. Nebenänderung: neben der base.conf wird jetzt auch die base-ldap.conf und die base-forced.conf von der Installer-Ramdisk in das zu installierende System kopiert. Für die QA: IPv6-only-System konfigurieren und nach der Netzconfiguration auf zweites Terminal wechseln und dort die Adresse unseres IPv6-Gateways daueranpingen. Es sollte während der Installation keine Aussetzer geben. Changelogeintrag wurde erstellt univention-installer (8.0.33-1) unstable; urgency=low
Kann erst sinnvoll getestet werden, wenn Bug #29216 durch ist.
(In reply to comment #5) > Für die QA: > IPv6-only-System konfigurieren und nach der Netzconfiguration auf zweites > Terminal wechseln und dort die Adresse unseres IPv6-Gateways daueranpingen. Es > sollte während der Installation keine Aussetzer geben. OK: Funktioniert jetzt. Changelogeintrag passt, Verified.
Ich habe jetzt zusätzlich noch interfaces/restart/auto für den normalen UCR Layer zurückgesetzt. Ansonsten wird der Wert während der DHCP Konfiguration zwischengespeichert und gesetzt. also ucr set -force interfaces/restart/auto=no ... old="$(ucr get interfaces/restart/auto)" ucr set interfaces/restart/auto=foo do stuff ucr set interfaces/restart/auto="$old" ... ucr unset -force interfaces/restart/auto Würde das per ucr CLI gemacht, dann würde das vielleicht sogar noch funktionieren, es wird aber IMHO über das Python Interface gemacht. In der QA sollte nochmal IPv6 und System Setup getestet werden.
Im Installer funktioniert es, daher VERIFIED. Nach der Installation durch das System Setup hat auf einem DC Master die DNS/RDNS Auflösung für IPv6 jedoch nicht funktioniert -> ausgelagert nach Bug #29769.
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".