ISPConfig und IPv6 im Mirror-Setup 1


Ich verwende ISPConfig auf mehreren Servern als Mirror-Setup. Da IPv6 immer mehr im Kommen ist, stellte sich die Frage, wie ich Apache dazu bekomme, bei jedem vHost auf jedem Mirror auf eine eigene IPv6 zu reagieren. Man kann natürlich in der Apache-Config analog zu der Definition bei IPv4 auch einen vHost auf alle IPv6 lauschen lassen.

Da aber IPv6-Adressen (noch) wie Sand am Meer vorhanden sind, musste folglich eine Lösung her, dass jeder vHost auf jedem Server eine eigene IPv6 bekommen kann.

Anlegen und für eine Webdomain auswählen lassen sich die Adressen problemlos über das Interface. Diese wird dann in die Datenbanken der einzelnen Server geschrieben.

Ich habe bspw. die Subnets 2a01:4f8:150:2262::/64 (Master-Server) und 2a01:4f8:120:1084::/64 (Mirror-Server).

In der vHost-Config auf dem Mirrro-Server steht dann die IPv6 des Master-Servers (da nur diese in de DB steht).  Auf diese IPv6 reagiert der Mirror natürlich nicht.

Die Lösung ist eigentlich recht einfach: die IPv6 muss lediglich beim Schreiben des vHost entsprechend des Subnets des Servers angepasst werden.

Wird eine Website mit der IPv6 2a01:4f8:150:2262::aaaa angelegt, dann wird das Prefix (2a01:4f8:150:2262::) auf dem Mirror-Sever durch das eigene Prefix (2a01:4f8:150:2262::) ersetzt.

Zunächst wird das entsprechende Subnet in /usr/local/ispconfig/server/lib/config.inc.local.php definiert:
<?php
$conf['ipv6_subnet']='2a01:4f8:150:2262::';
?>

Dazu müssen in apache2_plugin.inc.php lediglich ein paar Zeilen bei ‘Add vhost for IPv6 IP’ eingefügt werden. Und zwar direkt nach if($data[‘new’][‘ipv6_address’] != ”) { (bei ISPConfig-3.0.4.6.tar.gz ist Zeile 1052)
if (isset($conf['ipv6_subnet']) && $conf['ipv6_subnet'] <> '') {
$explode_v6prefix=explode(':',$conf['ipv6_subnet']);
$explode_v6=explode(':',$data['new']['ipv6_address']);
for ( $i = 0; $i <= count($explode_v6prefix)-3; $i++ ) {
$explode_v6[$i] =  $explode_v6prefix[$i];} $data['new']
['ipv6_address'] = implode(':',$explode_v6);
}


<?php
//** IP-handling

$conf['ipv6_subnet']='2a01:4f8:120:1084::';
$conf['ip_repl_ast']='ip';
?>


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Ein Gedanke zu “ISPConfig und IPv6 im Mirror-Setup