Difference between revisions of "IPv6"
From Univention Wiki
m (hat „Unterstützung von IPv6“ nach „IPv6“ verschoben) |
(Links durch Vorlagen eingefügt.) |
||
Line 5: | Line 5: | ||
Dabei wird zunächst erläutert, welche Änderungen manuell auf einem bestehenden UCS-System vorgenommen werden müssten. Zusätzlich wird auf die Komponente '''ipv6-experimental''' eingegangen, mit der sich diese Änderungen über Univention Configuration Registry-Variablen steuern lassen und die das Anlegen von IPv6-Adressen und IPv6 DNS-Zonen im Univention Directory Manager ermöglicht. | Dabei wird zunächst erläutert, welche Änderungen manuell auf einem bestehenden UCS-System vorgenommen werden müssten. Zusätzlich wird auf die Komponente '''ipv6-experimental''' eingegangen, mit der sich diese Änderungen über Univention Configuration Registry-Variablen steuern lassen und die das Anlegen von IPv6-Adressen und IPv6 DNS-Zonen im Univention Directory Manager ermöglicht. | ||
− | Der Status der Entwicklung der Unterstützung von IPv6 ist im Bugzilla über den | + | Der Status der Entwicklung der Unterstützung von IPv6 ist im Bugzilla über den {{Bug|17387}} festgehalten. |
== Einleitung == | == Einleitung == | ||
Line 32: | Line 32: | ||
repository/online/component/ipv6-experimental/parts=unmaintained | repository/online/component/ipv6-experimental/parts=unmaintained | ||
− | Mehr Informationen dazu gibt es im UCS 2.3-Handbuch unter ''Hinzufügen von Komponenten'' -''Repositories''. Alternativ können folgende Zeilen manuell in die Datei ''/etc/apt/sources.list'' eingetragen werden: | + | Mehr Informationen dazu gibt es im {{Handbuch UCS 2.3|UCS 2.3-Handbuch}} unter ''Hinzufügen von Komponenten'' -''Repositories''. Alternativ können folgende Zeilen manuell in die Datei ''/etc/apt/sources.list'' eingetragen werden: |
deb http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/all/ | deb http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/all/ | ||
Line 459: | Line 459: | ||
dns/ptr_record | dns/ptr_record | ||
dns/alias | dns/alias | ||
+ | |||
+ | [[Kategorie:Administration]] |
Revision as of 16:35, 18 January 2011
Contents
Internet Protokoll Version 6
Auf dieser Seite wird erläutert, welche Anpassungen im Univention Corporate Server (UCS) vorgenommen werden müssen, damit IPv6 bestmöglich unterstützt wird.
Dabei wird zunächst erläutert, welche Änderungen manuell auf einem bestehenden UCS-System vorgenommen werden müssten. Zusätzlich wird auf die Komponente ipv6-experimental eingegangen, mit der sich diese Änderungen über Univention Configuration Registry-Variablen steuern lassen und die das Anlegen von IPv6-Adressen und IPv6 DNS-Zonen im Univention Directory Manager ermöglicht.
Der Status der Entwicklung der Unterstützung von IPv6 ist im Bugzilla über den Bug #17387 festgehalten.
Einleitung
IPv6 wird vom Linux Kernel schon lange unterstützt. Der Befehl ifconfig zeigt auf einem normalen Linux-System mit Kernel 2.6 immer zumindest auch eine lokale inet6-Adresse pro Schnittstelle an, wenn das Kernel-Modul ipv6 geladen ist. Dies ist auch auf Standard UCS-Systemen der Fall.
Im Unterschied zu den 32 Bit-langen IPv4 Adressen sind IPv6-Adressen 128 Bit lang. Die ersten Bits kennzeichnen das Adresspräfix und werden zum Beispiel zur Aufteilung in Subnetze genutzt, die weiteren Bits werden als Interface Identifier bezeichnet. Eine IPv6-Adresse könnte beispielsweise 2001:db8:0100:0000:0000:0000:0000:0002 lauten. Die führenden Nullen können weggelassen werden und mehrere aufeinander folgende Blöcke mit Nullen können durch :: abgekürzt werden. So verkürzt sich die Schreibweise in diesem Fall auf 2001:db8:100::2. Die grösstmögliche Vereinfachung ergibt sich bei der localhost-Adresse, die ::1 lautet.
Es gibt verschiedene Möglichkeiten, private IPv6-Adressen zu erstellen, bei Beispielen in dieser Dokumentation wird das Präfix 2001:db8</tt> verwendet, das für Dokumentationszwecke gedacht ist und nicht ins Internet geroutet werden sollte.
Viele Dienste benutzen 'auf IPv6 abgebildete IPv4-Adressen' (IPv4-mapped IPv6 addresses), die sich aus dem Präfix ::ffff: und der IPv4-Adresse zusammensetzen. So wird zum Beispiel aus der IPv4-Adresse 1.2.3.4 die IPv6-Adresse ::ffff:1.2.3.4.
Im Prinzip gibt es drei Möglichkeiten, das Internetprotokoll einzusetzen: nur IPv4, nur IPv6 oder beides gemischt (dual-stack). Der momentane Stand der vorherrschenden Netzstrukturen lässt meistens eine gemischte Struktur sinnvoll erscheinen, da viele Netzkomponenten (Hard- und Software) IPv6 noch nicht oder nur unvollständig unterstützen.
Pakete
Im Folgenden wird auf eine Auswahl von Diensten eingegangen und kurz beschrieben, welche Anpassungen auf einem UCS System vorzunehmen sind, um IPv6 bestmöglich zu unterstützen.
Für jeden Dienst werden im ersten Teil der nächsten Kapitel die manuellen Anpassungen erläutert. So kann in einem bestehenden UCS-System ohne die Nutzung der Komponente IPv6 genutzt werden.
Im zweiten Teil der nächsten Kapitel wird auf die Komponente ipv6-experimental eingegangen. Die darin enthaltenen Pakete nehmen einige Anpassungen vor, um IPv6-Funktionen über Univention Configuration Registry-Variablen steuern und IPv6-Adressen und IPv6 DNS-Zonen im Univention Directory Manager anlegen und bearbeiten zu können.
Falls auf dem UCS 2.3 Zielsystem das Online Repository apt.univention.de eingetragen ist, lassen sich mit folgendem Kommando die notwendigen Repository-Einträge für die ipv6-Einbindung in die apt-Quelllisten eintragen:
ucr set repository/online/component/ipv6-experimental=yes \ repository/online/component/ipv6-experimental/parts=unmaintained
Mehr Informationen dazu gibt es im Template:Handbuch UCS 2.3 unter Hinzufügen von Komponenten -Repositories. Alternativ können folgende Zeilen manuell in die Datei /etc/apt/sources.list eingetragen werden:
deb http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/all/ deb http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/i386/ deb http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/amd64/ deb http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/extern/ deb-src http://apt.univention.de/2.3/unmaintained/component/ ipv6-experimental/source/
Anschließend kann das System mit dem folgenden Kommando aktualisiert werden:
univention-actualise --dist-upgrade
Netzwerkschnittstellen
Manuelle Anpassungen
Zum Anlegen einer statischen IPv6-Adresse - zum Beispiel 2001:db8:100::2 für die Schnittstelle eth0 - muss in der Datei /etc/univention/templates/files/etc/network/interfaces am Ende Folgendes angefügt werden:
# statische IPv6-Adresse iface eth0 inet6 static address 2001:db8:100::2 # optional: Netzmaske netmask 64
Danach sollten die Änderungen angewendet werden:
ucr commit /etc/network/interfaces
und die Netzwerkschnittstelle oder das Netzwerk neu gestartet werden mit:
invoke-rc.d networking restart
Im Anschluss zeigt der Befehl ifconfig dann zusätzlich eine globale IPv6-Adresse, in diesem Beispiel also:
inet6 addr: 2001:db8:100::2/64 Scope:Global
Komponente ipv6-experimental
Paket: univention-config-registry
Nach der Installation können diese neuen Univention Configuration Registry-Variablen verwendet werden:
UCR-Variable | Erklärung |
---|---|
interfaces/eth.*/ipv6/address | statische IPv6-Adresse für diese Schnittstelle in /etc/network/interfaces anlegen |
interfaces/eth.*/ipv6/netmask | IPv6-Netzmaske für diese Schnittstelle in /etc/network/interfaces anlegen |
ipv6/gateway | Standard IPv6-Gateway in /etc/network/interfaces anlegen |
Apache2
Manuelle Anpassungen
IPv6 wird beim Apache Webserver seit der Version 2.0.14 unterstützt und ist in der Voreinstellung aktiviert. Apache verwendet intern IPv4-mapped IPv6 Adressen, um sowohl IPv4 als auch IPv6 unterstützen zu können.
Um Apache das Antworten auf IPv6-Anfragen zu verbieten, müssen die Listen-Einträge in den folgenden Dateien geändert werden:
/etc/univention/templates/files/etc/apache2/ports.conf
# Listen 80 = http-port IPv4 and IPv6 Listen 0.0.0.0:80
/etc/univention/templates/files/etc/apache2/mods-available/ssl.conf
# Listen 443 = https-port IPv4 and IPv6 Listen 0.0.0.0:443
Nach der Aktivierung der Änderungen mit
ucr commit /etc/apache2/ports.conf /etc/apache2/mods-available/ssl.conf
sollte der Webserver neu gestartet werden:
invoke-rc.d apache2 restart
Komponente ipv6-experimental
Paket: univention-apache
Nach der Installation steht die neue Univention Configuration-Variable apache2/ipv6 zur Verfügung. Die Variable ist zunächst auf yes gesetzt und bildet damit das normale Verhalten von Apache ab. Dadurch wird Listen 80 in /etc/apache2/ports.conf und Listen 443 in /etc/apache2/mods-available/ssl.conf eingetragen.
Das Setzen der Univention Configuration-Variable apache2/ipv6 auf no zwingt Apache dazu, nur noch auf IPv4-Anfragen zu hören, indem den oben genannten Ports 0.0.0.0: vorangestellt wird.
Nachdem die Variable geändert wurde, muss Apache neu gestartet werden:
invoke-rc.d apache2 restart
Informationen zur IPv6-Notation
In den Konfigurationsdateien von Apache für spezielle Listen-Einträge oder in Virtual Host-Einträgen und in Web-Browsern muss die IPv6-Adresse in eckige Klammern gesetzt werden.
Beispiele:
http://[2001:db8:100::3]/index.html
Listen [2001:db8::a00:20ff:fea7:ccea]:80
DNS: Bind
Manuelle Anpassungen
Damit der ISC Nameserver bind9 IPv6 versteht, muss in den Konfigurationsdateien die Option listen-on-v6 hinzugefügt werden:
/etc/univention/templates/files/etc/bind/named.conf
options { directory "/var/cache/bind"; also-notify { 127.0.0.1; } listen-on-v6 { any; }; };
/etc/univention/templates/files/etc/bind/named.conf.proxy
options { directory "/var/cache/bind"; listen-on-v6 { any; }; };
Damit horcht der Nameserver auf Port 53 auf IPv6 Adressen. Der Eintrag lässt sich noch verfeinern, zum Beispiel:
listen-on-v6 { any; }; listen-on-v6 port 1234 { ;!2001:db8::/32; any; };
Damit horcht er auf Port 53 auf beliebige IPv6-Adressen und auf Port 1234 auf IPv6-Adressen, die nicht dem Präfix 2001:db8::/32 entsprechen.
Die IPv6-Funktionalität lässt sich auch komplett unterbinden:
listen-on-v6 { none; };
Neue Zonendateien können wie üblich angelegt und zum Beispiel mit
include "/etc/bind/neue_zone.conf";
am Ende der Datei /etc/univention/templates/files/etc/bind/named.conf einbezogen werden. Danach sollten die Änderungen wie gewohnt mit
ucr commit /etc/bind/named.conf /etc/bind/named.conf.proxy
übernommen werden.
Nachdem das Template geändert wurde, muss bind neu gestartet werden:
invoke-rc.d univention-bind restart
und
invoke-rc.d univention-bind-proxy restart
Komponente ipv6-experimental
Pakete: univention-bind
Die neue Univention Configuration-Variable bind/ipv6 wird bei der Installation angelegt und auf no gesetzt. Das Setzen der Univention Configuration-Variable bind/ipv6 auf yes aktiviert IPv6 in bind9.
Nachdem die Variable geändert wurde, muss der Nameserver neu gestartet werden:
invoke-rc.d univention-bind restart
und
invoke-rc.d univention-bind-proxy restart
Mail: Cyrus
Manuelle Anpassungen
Der Cyrus IMAP Server unterstützt IPv6 laut Changelog seit Version 2.2, für die Unterstützung sind keine Änderungen notwendig.
Um die IPv6-Unterstützung abzuschalten, muss in der Datei /etc/imapd/cyrus.conf den Diensten imap, imaps, pop, pops und sieve unter SERVICES die Option proto=tcp4 angehängt werden. Die Änderung betrifft die folgenden Dateien.
Wenn univention-mail-cyrus-kolab2 installiert ist:
/etc/univention/templates/files/etc/imapd/cyrus.conf.d/20_SERVICES_spool
Wenn univention-mail-cyrus installiert ist:
/etc/univention/templates/files/etc/cyrus.conf
In diesen Dateien müssen die entsprechenden Zeilen gesucht werden, für imap lautet sie zum Beispiel:
print '\timap cmd="/usr/lib/cyrus/bin/imapd -C /etc/imapd/imapd.conf \ -U 30" listen="%simap" prefork=0 maxchild=%s' % (bindprefix, maxchild)
Für diese Zeile sollte dann diese Änderung vorgenommen werden:
print '\timap cmd="/usr/lib/cyrus/bin/imapd -C /etc/imapd/imapd.conf \ -U 30" listen="%simap" prefork=0 maxchild=%s proto=tcp4;% (bindprefix, maxchild)
Um alle Fälle zu berücksichtigen, müssen alle Zeilen geändert werden, die folgendermassen beginnen:
print '\timap print '\timaps print '\tpop3 print '\tpop3s print'\tsieve bzw. print' sieve
Danach sollten die Änderungen übernommen werden:
ucr commit /etc/cyrus.conf
Und im Anschluss muss cyrus neu gestartet werden:
invoke-rc.d cyrus2.2 restart
Komponente ipv6-experimental
Pakete: univention-mail-cyrus / univention-mail-cyrus-kolab2
Die Univention Configuration-Variable mail/cyrus/ipv6 wird bei der Installation angelegt und auf yes gesetzt. Das Setzen der Univention Configuration-Variable mail/cyrus/ipv6 auf no deaktiviert IPv6 in Cyrus.
Nachdem die Variable geändert wurde, muss cyrus neu gestartet werden:
invoke-rc.d cyrus2.2 restart
Informationen zur Option 'proto'
Es gibt für proto= diese Werte: tcp, udp, tcp4, udp4, tcp6 und udp6. Mit der Option proto=tcp6 kann cyrus also zum Beispiel auch dazu gezwungen werden, nur IPv6 zu nutzen.
DHCP
Der ISC DHCP-Server unterstützt IPv6 erst ab Version 4. Da es noch keine stabilen Debian-Pakete dieser Version gibt und mit der Umstellung umfangreiche weitere Änderungen notwendig werden, wird damit vorerst kein DHCPv6 möglich sein.
Der Router Advertisement Daemon (radvd) ist auf UCS-Systemen nicht als DHCP-Ersatz geeignet, da er nur Präfix, MTU und Router-Adresse verteilt und somit nicht alle Funktionalitäten des Managementsystems abgebildet werden können.
LDAP
OpenLDAP unterstützt seit Version 2.1.22 IPv6, somit also auch auf aktuellen UCS Systemen.
Dem LDAP Daemon slapd können die folgenden Optionen mitgegeben werden, um das Verhalten zu beeinflussen:
-4 nur auf IPv4-Adressen hören -6 nur auf IPv6-Adressen hören
Der Einsatz dieser Optionen ist nicht getestet worden und wird zur Zeit nicht empfohlen.
Mail: Postfix
Manuelle Anpassungen
In Postfix ist IPv6 zunächst deaktiviert, es kann aber in der Konfigurationsdatei eingeschaltet werden.
Zum Aktivieren von IPv6 muss zum Beispiel folgender Parameter in der Konfigurationsdatei main.cf gesetzt werden:
inet_protocols = all
Die zu ändernden Vorlagen von main.cf befinden sich je nach installiertem Postfix-Paket an folgenden Stellen:
Pakete univention-mail-postfix und univention-mail-postfix-forward:
/etc/univention/templates/files/etc/postfix/main.cf
Paket univention-mail-postfix-kolab2:
/etc/univention/templates/files/etc/postfix/main.cf.d/10_general
Zunächst müssen die Änderungen übernommen werden:
ucr commit /etc/postfix/main.cf
Danach sollte Postfix neu gestartet werden:
invoke-rc.d postfix restart
Komponente ipv6-experimental
Pakete: univention-mail-postfix / univention-mail-postfix-forward / univention-mail-postfix-kolab2
Eine neue Univention Configuration-Variable postfix/ipv6 wird bei der Installation angelegt und auf no gesetzt. Das Setzen der Univention Configuration-Variable postfix/ipv6 auf yes aktiviert IPv6 in Postfix.
Nachdem die Variable geändert wurde, muss Postfix neu gestartet werden:
invoke-rc.d postfix restart
Hinweis: Mit Setzen der Univention Configuration-Variable postfix/ipv6 auf yes wird die Option inet_protocols=all in der Datei /etc/postfix/main.cf gesetzt.
Informationen zum Parameter inet_protocols
Für den Parameter inet_protocols in der main.cf gibt es folgende Optionen:
inet_protocols = ipv4 | Standard: nur IPv4 aktivieren |
inet_protocols = all | IPv4 aktivieren; IPv6 aktivieren, falls unterstützt |
inet_protocols = ipv4, ipv6 | IPv4 und IPv6 aktivieren |
inet_protocols = ipv6 | nur IPv6 aktivieren |
Samba
Manuelle Anpassungen
Laut Release Notes sind die Netzwerkfunktionen seit Samba 3.2 voll IPv6-fähig und in Microsoft Windows und Unix IPv6 - Umgebungen getestet worden. Auch Samba nutzt intern IPv4-mapped IPv6 Adressen.
Damit sollte Samba als Memberserver in einer Active Directory - Domäne mit IPv6 kommunizieren können. Da Windows in einer NT-Domäne aber selbst nur IPv4 unterstützt, wird Windows wohl immer auf IPv4 zurückfallen.
Wenn Samba dazu gezwungen werden soll, nur auf IPv4-Anfragen zu antworten, muss Folgendes am Ende der smb.conf - Vorlage angefügt werden:
/etc/univention/templates/files/etc/samba/smb.conf.d/01univention-samba_main
; only IPv4-addresses will serve SMB requests: interfaces = 255.255.255.255/0 127.0.0.1 bind interfaces only = yes
Damit wird Samba nur an die gefundenen IPv4 Adressen gebunden.
Achtung: Diese Modifikation darf nur vorgenommen werden, wenn die Univention Configuration Registry-Variablen samba/interfaces oder samba/interfaces/bindonly nicht gesetzt sind.
127.0.0.1 ist für smbpasswd und swat notwendig.
Die Änderungen sollen übernommen werden mit:
ucr commit /etc/samba/smb.conf
Auch Samba muss zur Aktivierung neu gestartet werden:
invoke-rc.d samba restart
Komponente ipv6-experimental
Paket: univention-samba
Die Univention Configuration-Variable samba/ipv6 wird angelegt und auf yes gesetzt. Das Setzen der Univention Configuration-Variable samba/ipv6 auf no zwingt Samba dazu, SMB-Anfragen nur noch auf IPv4-Adressen zu bearbeiten, wenn die Variablen samba/interfaces oder samba/interfaces/bindonly nicht gesetzt sind.
Nachdem die Variable geändert wurde, muss samba neu gestartet werden:
invoke-rc.d samba restart
Hinweis: Das Setzen der Univention Configuration-Variable samba/ipv6 auf no fügt in der Datei /etc/samba/smb.conf die oben genannten Zeilen hinzu.
Weitere Informationen zu Samba
Durch die beschriebenen Anpassungen ändert sich Sambas Verhalten folgendermassen:
Standard-Verhalten (Univention Configuration-Variable samba/ipv6=yes):
# netstat -anp| grep smbd tcp 0 0 10.200.2.2:45407 10.200.2.2:389 VERBUNDEN 26783/smbd tcp6 0 0 :::139 :::* LISTEN 26783/smbd tcp6 0 0 :::445 :::* LISTEN 26783/smbd
Nur IPv4 (Univention Configuration-Variable samba/ipv6=no):
# netstat -anp| grep smbd tcp 0 0 10.200.2.2:139 0.0.0.0:* LISTEN 27092/smbd tcp 0 0 127.0.0.1:139 0.0.0.0:* LISTEN 27092/smbd tcp 0 0 10.200.2.2:445 0.0.0.0:* LISTEN 27092/smbd tcp 0 0 127.0.0.1:445 0.0.0.0:* LISTEN 27092/smbd tcp 0 0 10.200.2.2:58839 10.200.2.2:389 VERBUNDEN 27092/smbd
Univention Directory Manager
Pakete: univention-directory-manager / univention-directory-manager-modules
Abhängig von: python2.4
Nach der Installation der Pakete lassen sich IPv6-Adressen mit der Univention Directory Manager Kommandozeilenschnittstelle (CLI) oder im Web-Interface anlegen oder ändern, dabei wird auf gültige IPv4, IPv6 und IPv4-mapped IPv6 - Adressen geprüft. Beim Erstellen und Bearbeiten von IP-Adressen mit dem Univention Directory Manager wird bei erkannter IPv4-Adresse das LDAP Attribut aRecord und bei erkannter IPv6-Adresse das Attribut aAAARecord gesetzt.
Im Univention Directory Manager CLI findet also bei folgenden Befehlen eine Prüfung auf IPv4 oder IPv6 statt:
udm dns/host_record create [...] udm dns/host_record modify [...] --append udm dns/host_record modify [...] --remove
Ein Ersetzen der alten Einträge wird erreicht durch:
dm dns/host\_record modify [...] --set
In folgendem Beispiel wird ein Managed Client mit IPv6-Adresse angelegt:
udm computers/managedclient create \ --position="cn=computers,dc=firma,dc=de" \ --set name="testclient101" \ --set ip="2001:db8:100::101"
Einen Eintrag für die Vorwärtsauflösung kann mittels folgendem Befehl angelegt werden:
udm dns/host_record create \ --superordinate="zoneName=ucs.local,cn=dns,dc=firma,dc=de" \ --set name="testclient101" \ --set a="2001:db8:100::101"
Auch die DNS Zonen-Einstellungen für IPv6-Adressen können im Univention Directory Manager Web-Interface im Modul Rechnerverwaltung, Karteikarte DNS vorgenommen werden. Die entsprechendende Zone muss vorher im Modul DNS hinzugefügt werden. Als Typ sollte Reverse Lookup Zone ausgewählt werden, als Subnetz kann zum Beispiel der Teil einer IPv6-Adresse eingetragen werden: 2001:db8:100. Damit die Reverse Zone berechnet und angelegt (in diesem Beispiel also: 0.0.0.0.0.0.1.0.8.b.d.0.1.0.0.2.ip6.arpa), die dann in der Rechnerverwaltung genutzt werden kann.
Die entsprechenden Module im Univention Directory Manager CLI lauten:
dns/forward_zone dns/reverse_zone dns/ptr_record dns/alias