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: