Segelschiff auf dem Mittelmeer (Kopfgrafik)/grafiken/tux-md-347-260.png

Persönliche Begrüßung für IPv6-Besucher

Autor: Michael · veröffentlicht 6.5.2016 12:00 Uhr · zuletzt geändert 6.5.2016 12:36 Uhr · Tags: linux

Ein zunehmender Anteil des weltweiten Internetverkehrs läuft inzwischen über das "neue" IPv6-Verbindungsprotokoll. Trotzdem sind viele Server, auch von den weltweit populärsten Internetseiten, noch immer nicht dafür fit. Für mich als Hobbyadministrator™ ergibt sich hier ein spannendes Betätigungsfeld, sind doch einige Dinge etwas komplexer als in der jahrelang gut vertrauten IPv4-Welt (mit einfach zu merkenden Adressen :-). Aber spannend ist es allemal, das eigene Heimnetzwerk fit zu machen für die Zukunft und dann nicht mehr auf umständliche Hilfskonstrukte wie Portforwarding, Network Address Translation und DynDNS-Dienste angewiesen zu sein. Irgendwann kam bei mir die Frage auf, ob es einen einfachen Weg gibt, die eigenen Internetseitenbesucher, die die Inhalte schon über eine IPv6-Verbindung abrufen, individuell zu begrüßen. Viele Lösungen setzen auf eine serverseitige Skriptsprache wie PHP, die beispielsweise einen entsprechenden Begrüßungstext einfügen kann wenn die Anfrage von einer IPv6-Adresse stammt. Für rein statisch servierte Seiten wie diese hier ohne zwischengeschalteten Parser kommt das aber nicht in Frage - es geht aber trotzdem über einen einfachen Umweg.

Mein Vorschlag funktioniert wie folgt: Neben dem üblichen Cascading Stylesheet wird ein zusätzliches Stylesheet in die Seite eingefunden, welches nicht relativ verlinkt wird sondern über einen absoluten Pfad, der nur über IPv6 erreichbar ist. Das kann einerseits über die IPv6-Adresse des Servers geschehen

<link rel="stylesheet" type="text/css" href="http://[2a02:e00:fffd:9a::4edc]/css/ipv6.css" />

Wenn man seine Inhalte aber über eine verschlüsselte Verbindung serviert ist hierfür die Einrichtung einer Subdomain erforderlich, die im DNS-Server keinen A-, sondern nur einen AAAA-Eintrag auf die entsprechende IP-Adresse erhält. Übrigens, wie man für eine solche, exklusive IPv6-Adresse ein Zertifikat von Let's Encrypt bekommen kann, habe ich hier beschrieben.

Somit ist sichergestellt, dass die Inhalte für IPv4-only Clients nicht abrufbar sind. In diesem zweiten Stylesheet können dann Formatierungen definiert werden, die dann nur für IPv6-Clients Relevanz haben. Und damit ist der wesentliche Teil der Aufgabe dann auch schon erledigt. Wir schreiben unseren Begrüßungstext ganz normal beispielsweise in einen div-Container namens ipv6begruessung in den Quelltext der gewünschten Seite. Im allgemeinen Stylesheet (das relativ verlinkte) definieren wir dann eine Höhe von 0px für diesen Container. Im IPv6-Stylesheet überschreiben wir diesen Wert mit einer konkreten Höhenangabe (beispielsweise 140px) und der Eigenschaft !important. Und schon ist die persönliche Ansprache im Betrachtungsmodus nur für IPv6-Besucher zu sehen. Übrigens werfen alle von mir getesteten Browser, die über eine reine IPv4-Verbindung das verlinkte Stylesheet nicht abrufen können, keine Fehlermeldung aus sondern ignorieren den Eintrag einfach stillschweigend.

Fragen? Anregungen? Kommentare? Lass es mich wissen!