Artfiles & Plesk DNS Slave/Primary Problem

biertragl

Member
Servus. Ich stehe vor folgendem Problem:

Ich habe meine Domains bei artfiles.de bestellt und lasse die derzeit von dort auf meinen Rootserver verweisen. Dort ist Plesk installiert und ich möchte Plesk gerne als Primary DNS einsetzen.

Ich habe jetzt einiges durchprobiert, jedoch komme ich irgendwie nicht weiter.

In Artfiles sind aktuell folgende Einstellungen gemacht:
01.png
Das funktioniert für meinen Webspace wunderbar. Jedoch wenn ich den DNS von Artfiles auf Slave umstellen möchte, gibt's Probleme.

als Nameserver möchte ich nutzen:
ns1.gs-server.de (Primary)
auth2.artfiles.de (Secondary)

Also meines Wissens nach folgende einstellungen bei Artfiles machen:
02.png

Bei Plesk folgendes einstellen:
gs-server.de NS ns1.gs-server.de
gs-server.de NS auth2.artfiles.de
ns1.gs-server.de A 89.163.166.194
gs-server.de A 89.163.166.194

Wenn ich jedoch bei Artfiles dann beim Domainupdate die Nameserver eintrage
03.png

bekomme ich folgenden Fehler:
04.png


Evtl. habe ich auch einfach ein Verständnisproblem, jedenfalls komme ich hier nicht weiter.
Gibt es jemanden unter euch, der die Konstellation Plesk & Artfiles kennt und mir die Lösung
mitteilen kann?

Danke & LG
 

Attachments

  • 01.PNG
    01.PNG
    19.9 KB · Views: 140
  • 02.PNG
    02.PNG
    20.3 KB · Views: 121
  • 03.PNG
    03.PNG
    16.6 KB · Views: 143
  • 04.PNG
    04.PNG
    6.6 KB · Views: 114

danton

Debian User
Das Problem dürfte sein, dass der primäre DNS-Server innerhalb der Domain liegt, für die er zuständig ist. Um nach einem Eintrag in der Domain gs-server.de zu schauen, muß er den DNS-Server kontaktieren und will dazu den Server mit dem FQDN ns1.gs-server.de aufrufen, aber der gehört zu der Domain. Ist das berüchtigte Henne-Ei-Problem. Dafür gibt es eine recht einfache Lösung, sogenannte GLUE-Records, die der Domain-Anbieter beim jeweiligen NIC (also in diesem Fall der Denic) hinterlegt. Der macht im Prinzip nichts anderes, als dort schon mal die IP des primären Nameserver der Zone bekanntzumachen.
Ich weiß nicht, wie es bei Artfiles aussieht, aber mein Domain-Anbieter stellt im Kundenmenü eine entsprechende Möglichkeit bereit, um für Domains GLUE-Records zu erstellen. Gibt aber auch welche, bei denen das manuell über den Support gemacht werden muß.
Falls Artfiles keine GLUE-Records anbietet, bliebe noch der Umweg über eine andere Domain (deshalb benötigt man, wenn man die Nameserver des Anbieters nutzt, keine GLUE-Records), auf die der NS-Eintrag der Zone zeigt.
 

biertragl

Member
ich hab insgesamt 6 domains zur verfügung. (u.a. gamesupporter.de) Verweisen alle auf die gleiche IP.
Wie soll ich das denn am geschicktesten anstellen?

sowas wie gamesupporter.de NS ns1.gs-server.de ?
 

reccon

Member
ich hab insgesamt 6 domains zur verfügung. (u.a. gamesupporter.de) Verweisen alle auf die gleiche IP.
Wie soll ich das denn am geschicktesten anstellen?

sowas wie gamesupporter.de NS ns1.gs-server.de ?

damit konfigurierst du dann aber den Nameserver für die Domain gamesupporter.de und nicht mehr für gs-server.de ?!

Wenn du, wie geschrieben, den Artfiles DNS als Slave benutzen möchtest, musst du die IP(s) vom Artfile DNS Server im Plesk auch freischalten.
(Unter Tools und Einstellungen/DNS-Template/Transferbeschränkungen-Template/Adresse hinzufügen)
Hast du das gemacht?
 

biertragl

Member
ja, das ist gemacht. hab zwar alle 3 von denen freigeschaltet, aber das sollte keine Rolle spielen oder?

Ich müsste halt mal wissen, was ich bei Artfiles eintragen soll und was ich bei Plesk eintragen soll, damit das Domainupdate zur Denic endlich klappt und ich den Master habe
 

reccon

Member
Wenn du für gs-server.de den Master haben willst, dann kannst du den ns1 von gamesupporter.de nutzen.

Also im Plesk unter gs-server.de als DNS Einstellung:

gs-server.de NS ns1.gamesupporter.de
gs-server.de NS auth2.artfiles.de

andere NS Einträge rausnehmen.
Der Eintrag für ns1.gamesupporter.de in den DNS Einstellungen von gamesupporter.de sollte bereits existieren, wenn du das standard DNS Template bei Plesk nutzt.

Bei Artfiles dann als Nameserver
ns1.gamesupporter.de
auth2.artfiles.de
 

biertragl

Member
Update bei Artfiles hat nun geklappt, obwohl bei Denic.de auth2.artfiles.de oben steht (darunter dann ns1.gamesupporter.de) aber das sollte ja wurscht sein. Wie Nutze ich jetzt meinen eigenen Nameserver für weitere Domains? gleiche Einstellung nutzen wie bei gs-server.de?

Danke schonmal

Lg
 

danton

Debian User
Im Prinzip ja, nur bei gamesupporter.de müßtest du eine andere Domain wählen oder halt einen GLUE-Record setzen.
 

biertragl

Member
Die gamesupporter.de kann so bleiben. Ich hab vor mit ner hauptdomain ddns zu betreiben. Bisher ging das nur für subdomains, mit dem eigenen NS solle das ja nun auch für Hauptdomains gehen.
 

schtebo

New Member
Hi,
also wenn Du auf Type secondary umstellst, dann sind die Einträge MX/A-Records bei Artfiles überflüssig.
Ich betreibe ein ähnliches Setup, mein eigener Server ist primary und die Secondary sind bei artfiles.
Allerdings ohne Plesk.

D.h. ich habe bei artfiles die Zone: blaa.org

Master:
a.ns.blaa.org.

Seconary:
auth2.artfiles.de.
auth3.artfiles.de.

Ich kann mich noch dran erinnern, dass ich anfangs auch Probleme hatte, weil das Setup bei Artifles die Secondarys nicht übernommen hat.
Musst dann den Support in Anspruch nehmen.

Aber war ja so wie ich das rauslese nun erfolgreich. Aber falls du noch nen Secondary willst, kannst noch auth3.artfiles.de eintragen :)

LG
schtebo
 

biertragl

Member
Eben ging die IP-Umleitung noch per Dyndns, jetzt auf einmal nicht mehr...
hier der auszug aus der named:

Code:
; *** This file is automatically generated by Plesk ***
$TTL	180

@	IN	SOA	auth2.artfiles.de. clanleitung.gsclan.de. (
			2016040705	; Serial
			180	; Refresh
			180	; Retry
			86400	; Expire
			180 )	; Minimum

tragl-home.de.		 IN NS	 auth2.artfiles.de.
tragl-home.de.		 IN NS	 ns1.gamesupporter.de.
ipv4.tragl-home.de.		 IN A	 89.163.166.194
webmail.tragl-home.de.		 IN A	 89.163.166.194
mail.tragl-home.de.		 IN A	 89.163.166.194
tragl-home.de.		 IN A	 93.221.71.35
ftp.tragl-home.de.		 IN CNAME	 tragl-home.de.
www.tragl-home.de.		 IN CNAME	 tragl-home.de.
tragl-home.de.		 IN MX	10 mail.tragl-home.de.
tragl-home.de.		 IN TXT	 "v=spf1 +a +mx -all +a:gsplesk.gs-server.de"

also bei artfiles alles rauslöschen an MX und A-Einträgen, und den Support anhauen, dass die mir den Master umstellen, richtig?

EDIT: In der named von tragl-home.de ist meine Adresse von zu Hause eingetragen, Ping etc. geht aber wieder auf die andere IP, kurz ging es aber nach daheim...

EDIT2: Anbei noch der Auszug aus dem Domainupdate:
Code:
07.04.2016 17:50   Update OK
<registry-request
xmlns="http://registry.denic.de/global/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:domain="http://registry.denic.de/domain/1.0"
xmlns:dnsentry="http://registry.denic.de/dnsentry/1.0">
<domain:update><domain:handle>tragl-home.de</domain:handle>
<domain:ace>tragl-home.de</domain:ace>
<domain:contact role="holder">DENIC-213-AF-0000000000000123741</domain:contact>
<domain:contact role="admin-c">DENIC-213-AF-0000000000000123741</domain:contact>
<domain:contact role="tech-c">DENIC-213-AF-0000000000000123741</domain:contact>
<domain:contact role="zone-c">DENIC-213-AF-0000000000000123741</domain:contact>
<dnsentry:dnsentry xsi:type="dnsentry:NS">
<dnsentry:owner>tragl-home.de</dnsentry:owner>
<dnsentry:rdata>
<dnsentry:nameserver>ns1.gamesupporter.de</dnsentry:nameserver>
</dnsentry:rdata>
</dnsentry:dnsentry>
<dnsentry:dnsentry xsi:type="dnsentry:NS">
<dnsentry:owner>tragl-home.de</dnsentry:owner>
<dnsentry:rdata>
<dnsentry:nameserver>auth2.artfiles.de</dnsentry:nameserver>
</dnsentry:rdata>
</dnsentry:dnsentry>
</domain:update><ctid>domain:update:169432</ctid>
</registry-request>



<registry-response xmlns="http://registry.denic.de/global/1.0" xmlns:tr="http://registry.denic.de/transaction/1.0">
<tr:transaction>
<tr:stid>6785b7c7-fcd8-11e5-9f56-27b69e6d7e78</tr:stid>
<tr:ctid>domain:update:169432</tr:ctid>
<tr:result>success</tr:result>
<tr:message level="warning" code="33300102912">
<tr:text>Predelegation Check warning</tr:text>
<tr:argument>WARNING: 110 Retry value out of range (expected, found) ([23..60], 180)</tr:argument>
</tr:message>
<tr:message level="warning" code="33300102912">
<tr:text>Predelegation Check warning</tr:text>
<tr:argument>WARNING: 111 Expire value out of range (expected, found) ([604800..3600000], 86400)</tr:argument>
</tr:message>
<tr:message level="warning" code="33300102912">
<tr:text>Predelegation Check warning</tr:text>
<tr:argument>WARNING: 109 Retry value out of range (expected, found) ([900..28800], 180)</tr:argument>
</tr:message>
<tr:message level="warning" code="33300102912">
<tr:text>Predelegation Check warning</tr:text>
<tr:argument>WARNING: 108 Refresh value out of range (expected, found) ([3600..86400], 180)</tr:argument>
</tr:message>
</tr:transaction>
</registry-response>

Die sieht alles gut aus, bis auf die TTL aber die hab ich ja extra niedrig gestellt..
 
Last edited by a moderator:

biertragl

Member
Also das Problem besteht leider weiterhin... das Skript trägt die neue IP morgens früh in der Datenbank von Plesk ein und die config für den Nameserver wird neu geschrieben, jedoch lande ich entweder auf der IP von Plesk oder auf der alten vom Vortag. Wenn ich in Plesk manuell die IP reinhaue, dann hab ich sofort Verbindung zu mir nach Hause.

Betrifft komischerweise nur die Hauptdomains, Subdomains funktionieren wie sie sollen. Jemand eine Ahnung?
 

reccon

Member
Wenn der Morgens die IP automatisch aktualisiert hat, frag doch mal die beiden Nameserver ab und guck welche IP sie auflösen....

dig @ns1.gamesupporter.de tragl-home.de
dig @auth2.artfiles.de tragl-home.de
 

reccon

Member
Und wenn du die neue IP manuell im Plesk eingibst, spuckt der auth2 die richtige aus?
War es wirklich die IP vom Vortag oder irgendeine?
Steht der auth2 auf Slave oder auf Secondary?

Die Frage ist, synchronisieren sich die DNS Server langsam, oder gar nicht.
 

biertragl

Member
Servus und danke für die Rückmeldung. Artfiles hat mich auf eine Idee gebracht und ich habe das mal getestet -> Die Serial wird nicht erneuert. Das sollte Plesk eigentlich ja selbst erledigen über DNSMNG --update, tut es aber nicht.

Anbei mal 2 Screens, der named-Datei

EDIT: scheinbar macht der auth2 ohne Änderung der SN kein Update.
 

Attachments

  • 01.PNG
    01.PNG
    26.1 KB · Views: 116
  • 02.JPG
    02.JPG
    53.2 KB · Views: 102
Last edited by a moderator:

reccon

Member
Du hast ja geschrieben dass es funktioniert wenn du das direkt in Plesk machst. Also scheint es Plesk ja richtig zu machen, nur dein automatisches "Script" halt nicht.
 

danton

Debian User
Das Verhalten ist so korrekt, solange die Serial der Zone sich nicht ändern, hat sich per Definition die Zone nicht geändert.
 

biertragl

Member
Also Plesk ändert die Serial definitiv. Das Skript trägt bei Aufruf über die Fritzbox die neue IP in die Datenbank ein und über einen cronjob wird dann die namefile aktualisiert. Nur leider ohne neue Serial :(

Anbei mal das Webscript:

PHP:
<?php

include 'mysql_config.php';

$dynDomains = array('tragl-home.de','tragl.gs-server.de','gs-server.de');

$newIP = $_SERVER['REMOTE_ADDR'];
$DoUpdateFile = "updatefile/doupdate";

if(!isset($_GET['domain'])){
    die('Parameter "domain" not set');
}
// Check if the requested domain is in our list of domains we want to keep updated.
if(! in_array($_GET['domain'], $dynDomains)){
    die('Requested domain is not in the list of maintained dyn domains.');
}

// Check if IP is really an IP (should always be the case, but just to be safe...)
if($newIP == "" || !preg_match_all("/(\d{1,3}\.){3}\d{1,3}/", $newIP, $matches )){
    die();    
}    

// We need to append a dot (.) to the end of the requested domain
$dyndns = $_GET['domain'] . '.';

$query = "SELECT id, val FROM dns_recs WHERE host = '$dyndns' AND type = 'A';";

$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

$rowId = $row['id'];
$oldIP = $row['val'];

if($oldIP == $newIP){
    echo "No update. IP has not changed since last update: " . $newIP;
    echo "good ".$newIP;
    die();
}

// Update IP
$updateQuery = "UPDATE dns_recs SET val = '$newIP', displayVal = '$newIP' WHERE id = $rowId;";

$updated = mysql_query($updateQuery ) or die (mysql_error());

$updateDomain = $_GET['domain'] . ";";
# Create do-update file to notice cron job to update the DNS entry
file_put_contents($DoUpdateFile, $updateDomain, FILE_APPEND);

echo "good ".$newIP;

?>

Hier das Script, das per Cronjob ausgeführt wird:
Code:
#!/bin/bash

# we need bash here, because sh does no longer link to bash in debian
# and we want to use posix commands

# log file
logfile='/var/log/dynamicdns/dnsupdate.log'

# update file
updatefile='/var/www/vhosts/gs-server.de/ddns.gs-server.de/updatefile/doupdate'

## do things

# check the update file exists. If not, do not update DNS record

if [ ! -s $updatefile ]
then
       echo "$(date -R) Update file doesn't exist. No update necessary. Quitting." >> "$logfile"
       exit
fi

domainList=`cat $updatefile`

# Split domain list by ;
IFS=';' read -ra domainsArr <<< "$domainList"

# Iterate over all domains in the array and update them one by one
for domain in "${domainsArr[@]}"; do

echo "$(date -R) Updating DNS entry for $domain" >> "$logfile"

# Update DNS entry for $domain via PLESK
/opt/psa/admin/bin/dnsmng --update $domain

done

# delete update file
rm $updatefile

könnte man hier die Aktualisierung / Hochzählung der Serial einbauen?
Die Serial wird soweit ich das sehen kann in der Tabelle "dns_zone" gespeichert. serial_format = YYYYMMDDNN serial = 2016041302 (aktuell)

es müsste ja theoretisch reichen, wenn er aus 2016041302 eine 2016041303 macht oder?

EDIT: Die Quelle der Scripts:
 
Last edited by a moderator:
Top