ISPConfig 3.0.5 – rewrite von IP-Adressen im Mirror-Setup 3


Ich habe zuletzt hier meine Lösung für ein Rewrite von IPv4 und IPv6 auf einem Mirror vorgestellt. Seit gestern ist nun ISPConfig 3.0.5 verfügbar. Der Patch funktioniert auch mit 3.05.1.

Im Gegensatz zu dem einfachen Patch stelle ich hier jetzt ein umfangreicheres Patch-File zur Verfügung, mit dem das Rewrite von IPv6 über das Interface konfiguriert werden kann. Auf ein IPv4-Rewrite über das Interface verzichte ich ganz bewusst, da dies m.W. in der 3.0.6 ohne realisiert werden soll und dafür auch ein komplett anderer Ansatz erforderlich ist.

Ein Rewrite von IPv4-Adressen wird durch den Patch weiterhin über /usr/local/ispconfig/server/lib/config.inc.local.php gesteuert und greift nur, wenn die IP keine Wildcard ist. Siehe dazu am Ende des Posts.

Hinweis
Ich benutze das Rewrite seit einigen Monaten auf meinen Servern. Diese haben alle ein eigenes 64er-Subnet und die vHosts werden auf jedem Mirror richtig geschrieben. Ich gehe davon aus, dass das ganze auch auf anderen System problemlos funktioniert. Es sollte aber nach dem ersten Lauf nachgesehen werden, ob die IPv6 auf dem Mirror auch richtig gesetzt wurde. Zum Beispiel durch

grep "\<VirtualHost \[" /etc/apache2/sites-enabled/100-meinedomain.de.vhost

Bei Problemen (und auch bei nicht-Problemen 😉 ) bitte die Kommentarfunktion nutzen oder mir eine Email an info@schaal-24.de schicken.

Download

Und so funktioniert das ganze:
Unter Serverconfig steht das Feld “IPv6 Prefix” zur Verfügung. Dort wird das IPv6-Prefix des jeweiligen Servers eingetragen (für ein 64er Subnet z.B. 2a01:4f8:150:2262::). Auf einem Mirror wird später beim Schreiben eines vhosts die IPv6 in Teilen mit dem Subnet ersetzt.
Angenommen der Mirror hat das Subnet 2a01:4f8:150:aaaa::, dann wird aus der auf dem Master angelegten IPv6 2a01:4f8:150:2262::1 auf dem Mirror 2a01:4f8:150:aaaa::1.

Solange unter Serverconfig / Web die Option “Rewrite IPv6 on Mirror” die Option für den jeweiligen (Mirror-)Server nicht ausgewählt ist, erfolgt auch kein Rewrite und die IPv6 wird identisch zum Master geschrieben. Man kann also pro Mirror entscheiden, ob die IPv6 umgeschrieben werden soll oder nicht (bspw. für failover-IP).

Beim Anlegen einer neuen IPv6 wird diese gegen das definierte Prefix abgeglichen und muss zu dem Prefix passen. Gleiches gilt auch beim Anlegen eines Prefix – dies muss zu der kürzesten IPv6-Adresse passen.

Installation
Installation oder Update von ISPconfig 3.0.5

In das Verzeichnis von ISPConfig wechseln

cd /usr/local/ispconfig

Sichern der Dateien, die durch den Patch geändert werden:

cp -p interface/lib/classes/tform.inc.php interface/lib/classes/tform.inc.php.orig

cp -p interface/web/admin/form/server_config.tform.php interface/web/admin form/server_config.tform.php.orig

cp -p interface/web/admin/form/server_ip.tform.php interface/web/admin/form/server_ip.tform.php.orig

cp -p interface/web/admin/lib/lang/en_server_config.lng interface/web/admin/lib/lang/en_server_config.lng.orig

cp -p interface/web/admin/lib/lang/en_server_ip.lng interface/web/admin/lib/lang/en_server_ip.lng.orig

cp -p interface/web/admin/templates/server_config_server_edit.htm interface/web/admin/templates/server_config_server_edit.htm.orig

cp -p interface/web/admin/templates/server_config_web_edit.htm interface/web/admin/templates/server_config_web_edit.htm.orig

cp -p server/plugins-available/apache2_plugin.inc.php server/plugins-available/apache2_plugin.inc.php.orig

Den Patch herunterladen und anwenden

wget http://blog.schaal-24.de/files/ispconfig305-rewritev6.patch
patch -Np1 -i ispconfig305-rewritev6.patch

Wenn alles richtig funktioniert hat, sieht die Ausgabe so aus:


patching file interface/lib/classes/tform.inc.php
patching file interface/web/admin/form/server_config.tform.php
patching file interface/web/admin/form/server_ip.tform.php
patching file interface/web/admin/lib/lang/en_server_config.lng
patching file interface/web/admin/lib/lang/en_server_ip.lng
patching file interface/web/admin/templates/server_config_server_edit.htm
patching file interface/web/admin/templates/server_config_web_edit.htm
patching file server/plugins-available/apache2_plugin.inc.php

Rewrite IPv4
In /usr/local/ispconfig/server/lib/config.inc.local.php die IPv4 des jeweiligen Servers (Mirror) eintragen:

<?php
$conf['ipv4_replace']='78.46.84.243';
?>


IPV4 werden nur geändert, wenn lokal eine IPv4 definiert ist und die in ISPConfig gesetzt IP nicht * ist.

Durch das Backup ist ein Restore problemlos möglich. Es müssen lediglich die .orig-Files zurück kopiert werden.


Kommentar erstellen

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

3 Gedanken zu “ISPConfig 3.0.5 – rewrite von IP-Adressen im Mirror-Setup

  • Rich James

    If you just want to update Apache (and use a later version of IS Config than this patch supports) then the following change is sufficient:

    vim /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php

    Add the following 3 lines:

    if (isset($conf[‘ipv4_replace’]) && $conf[‘ipv4_replace’] “” && $data[‘new’][‘ip_address’] ‘*’) {
    $data[‘new’][‘ip_address’] = $conf[‘ipv4_replace’];
    }

    before this line:

    $tmp_vhost_arr = array(‘ip_address’ => $data[‘new’][‘ip_address’], ‘ssl_enabled’ => 0, ‘port’ => 80);

    Then create the config: /usr/local/ispconfig/server/lib/config.inc.local.php:

    • Florian Schaal Beitragsautor

      Be carefull when you apply this patch to newer versions as it overrides some new code. I don´t think that this patch is used very often so i just update my local apache-plugin and use a local config-file. However, this is already implemented (and maintained 😉 ) in the upcoming ispconfig 3.1