PowerDNS-Weiterleitung

Aus sourceDESK Wiki
Version vom 6. November 2016, 13:33 Uhr von Richard Reiber (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Diese Anleitung beschreibt die Konfiguration von URL-Weiterleitungen für PowerDNS-Server. Diese Funktionalität ist optional. == Benötigte Software == Wir b…“)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Diese Anleitung beschreibt die Konfiguration von URL-Weiterleitungen für PowerDNS-Server. Diese Funktionalität ist optional.

Benötigte Software

Wir benötigen einen installierten PowerDNS-Server auf Basis einer MySQL-Datenbank.

Des Weiteren wird ein Webserver benötigt, der unter einer festen IP-Adresse für jeden Hostnamen das gleiche Verzeichnis ausliefert. Dieser Webserver muss PHP beherrschen, des Weiteren muss von diesem Webserver aus der Zugriff auf die PowerDNS-Datenbank möglich sein. Es spricht nichts dagegen, dass direkt einer der PowerDNS-Nameserver als Webserver verwendet wird.

Einrichtung

Die PowerDNS-Datenbank muss angepasst werden. Dies muss nur in der Datenbank geschehen, die von sourceDESK verwendet wird. Es müssen folgende Kommandos ausgeführt werden:

CREATE TABLE `redirects` (
  `hostname` VARCHAR(255) NOT NULL,
  `type` enum('REDIRECT','FRAME') NOT NULL DEFAULT 'REDIRECT',
  `target` VARCHAR(255) NOT NULL
);
 
ALTER TABLE `redirects`
ADD PRIMARY KEY `hostname` (`hostname`);

Nun muss auf dem Webserver eine Datei namens index.php im Hauptverzeichnis für den Webserver erstellt werden. Diese hat folgenden Inhalt:

<?php
$db = new MySQLi("HOSTNAME", "USERNAME", "PASSWORD", "DATABASE");
if($db->connect_errno) die("Technical error.");
 
$sql = $db->query("SELECT * FROM redirects WHERE hostname LIKE '" . $db->real_escape_string($_SERVER['HTTP_HOST']) . "'");
if($sql->num_rows != 1) die("Hostname unknown.");
$info = $sql->fetch_object();
 
if(substr($info->target, 0, 4) != "http")
	$info->target = "http://" . $info->target;
 
if($info->type == "REDIRECT"){
	header('Location: ' . $info->target);
	exit;
}
?>
<iframe src="<?=$info->target; ?>" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;">Your browser doesn't support iframes</iframe>

Hier müssen noch die Datenbank-Zugangsdaten (HOSTNAME, USERNAME, PASSWORD, DATABASE) durch die Zugangsdaten der durch sourceDESK verwendeten PowerDNS-Datenbank ersetzt werden.

Konfiguration

In sourceDESK muss in den Einstellungen für den PowerDNS-Treiber die IPv4-Adresse des Webservers hinterlegt werden. Optional kann hier auch zusätzlich eine IPv6-Adresse eingetragen werden.

Damit ist die Konfiguration abgeschlossen. In den DNS-Einstellungen erscheinen nun die neuen Typen URL und IFRAME.