Facebook
Twitter
Google+
Kommentare
0

Letzte Aktion in 2011: Server via IPv6 verfügbar machen

So, damit es nicht heißt mein Blog wäre in 2011 nicht via IPv6 erreichbar gewesen ist meine letzte Aktion dieses Jahr meinen Webserver via IPv6 erreichbar zu machen. Da mein Hoster nun auch endlich IPv6 für virtuelle Server anbietet war das ziemlich einfach: Man mußte im Kundenbereich die IPv6 Konnektivität aktivieren und 10 Minuten warten. Und schon war der Server via IPv6 erreichbar:

$ ifconfig venet0 | grep inet6
inet6-Adresse: 2a01:238:42b6:2a00:e661:84eb:4a08:ee54/128 Gültigkeitsbereich:Global
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine

Dann mußte ich gerade noch den nginx neu kompilieren für die IPv6 Funktionalität (wurde eh mal wieder Zeit, war noch eine alte 0.8.53 Version), sodass ich nun die aktuelle 1.0.11 verwende:

$ wget http://nginx.org/download/nginx-1.0.11.tar.gz
$ tar -xzvf nginx-1.0.11.tar.gz
$ cd nginx-1.0.11
$ ./configure --with-http_ssl_module --without-http_memcached_module --with-http_gzip_static_module --with-ipv6
$ make
$ sudo make install
$ sudo /etc/init.d/nginx restart

Und schon war die neue Version installiert, nun mit IPv6 Unterstützung:

$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.0.11
built by gcc 4.4.5 (Debian 4.4.5-8)
TLS SNI support enabled
configure arguments: --with-http_ssl_module --without-http_memcached_module --with-http_gzip_static_module --with-ipv6

Da ich in der nginx.conf aktuell nur eine server-Directive konfiguriert habe, da ich alles auf den dahinterliegenden Apache weiterleite, und bisher auf allen (sprich einer) IPv4 Adresse gelauscht habe kann ich das einfach ändern auf “alle IPv4+IPv6 Adressen”:

listen [::]:80;

Würde ich nur auf IPv6-Adressen lauschen wollen müßte ich den ipv6only Parameter nutzen:

listen [::]:80 default ipv6only=on;

Da ich nur eine öffentliche IPv6 Adresse habe (und auf localhost nicht lauschen möchte) könnte ich auch folgendes nehmen:

listen [2a01:238:42b6:2a00:e661:84eb:4a08:ee54]:80;

Nach einem erneuten Restart von nginx kann man nun meinen Server anpingen (vorausgesetzt man selbst hat IPv6 Verbindung zuhause, sonst natürlich nicht):

$ ping6 2a01:238:42b6:2a00:e661:84eb:4a08:ee54
PING 2a01:238:42b6:2a00:e661:84eb:4a08:ee54(2a01:238:42b6:2a00:e661:84eb:4a08:ee54) 56 data bytes
64 bytes from 2a01:238:42b6:2a00:e661:84eb:4a08:ee54: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 2a01:238:42b6:2a00:e661:84eb:4a08:ee54: icmp_seq=2 ttl=64 time=0.068 ms

So, was bleibt noch zu tun? Klar, DNS-Records anlegen. Für IPv6 sind das keine A Records sondern AAAA Records. Ich habe die folgenden angelegt:

www.phpgangsta.de AAAA 2a01:238:42b6:2a00:e661:84eb:4a08:ee54
*.phpgangsta.de AAAA 2a01:238:42b6:2a00:e661:84eb:4a08:ee54
ipv6.phpgangsta.de AAAA 2a01:238:42b6:2a00:e661:84eb:4a08:ee54

Damit ist die Domain incl. aller Subdomains nun auch via IPv6 erreichbar. Zur Überprüfung gibt es auch kleine Online Test Scripte mit denen man schauen kann ob eine Domain via IPv6 erreichbar ist. Ein weiteres kleines Online-Tool für IPv6 Ping, Trace und Port Check.

Mailserver:

Da es so einfach und schnell ging habe ich auch noch schnell den Mailserver IPv6 ready gemacht. Dazu einfach die Postfix main.cf öffnen und folgende Zeilen ändern:

inet_interfaces = all
inet_protocols = all

Wer es nicht mag auf allen IP-Adressen zu lauschen kann sie natürlich auch auflisten:

inet_interfaces = 127.0.0.1, 85.214.28.26, 2a01:238:42b6:2a00:e661:84eb:4a08:ee54, ::1
inet_protocols = ipv4, ipv6

Danach den Postfix neustarten, fertig!

telnet 2a01:238:42b6:2a00:e661:84eb:4a08:ee54 25

Eingehende E-Mails können nun also auch über IPv6 empfangen werden. Hier sollte man dann darauf achten dass der DNS-MX-Eintrag richtig ist:

$ dig -t MX phpgangsta.de +short
10 mail.phpgangsta.de.

$ dig -t AAAA mail.phpgangsta.de +short
2a01:238:42b6:2a00:e661:84eb:4a08:ee54

Ob ausgehende E-Mails auch über IPv6 versendet werden kann man testen indem man eine E-Mail an autoreply@v6-mail.com schickt.

In /var/log/mail.log findet sich dann die folgende Zeile:

Dec 31 02:20:51 h1440682 postfix/smtp[8177]: 68FB149CC961: to=<autoreply@v6-mail.com>,
relay=v6-mail.com[2001:470:18:16c::2]:25, delay=3, delays=1/0.01/1.2/0.67, dsn=2.0.0,
status=sent (250 2.0.0 Ok: queued as 9C566E401E0)

Fallstricke, Achtung!

Wenn man IPv6 aktiviert sollte man natürlich über ein paar Dinge nachdenken. Beispielsweise wie die (PHP-) Applikationen mit IPv6 klarkommen, denn in $_SERVER[‚REMOTE_ADDR‘] steht plötzlich eine IPv6 Adresse drin. Auch beim Mailserver muss man aufpassen falls man sich bisher auf IP-Blacklists (sogenannte DNSBLs) verlassen hat, bei IPv6 gibt es die nicht.

Falls man Firewall Regeln definiert hat müssen diese für IPv6 natürlich auch gemacht werden…

——————-

Wie weit seid ihr privat und auf der Arbeit mit IPv6? Sind eure Blogs, Firmenwebserver etc. schon via IPv6 erreichbar?

Ähnliche Artikel:

  1. Zuhause im IPv6 Web surfen (Teil2: Windows)
  2. Zuhause im IPv6 Web surfen (Teil1: Ubuntu)
Über den Autor

PHP Gangsta

Der zweitgrößte deutsche, eher praxisorientierte PHP-Blog von Michael Kliewe veröffentlicht seit Mitte 2009 Artikel für Fortgeschrittene.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen