DNS Konfiguration über SQL

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von stefanr, 18. Nov. 2010.

  1. stefanr

    stefanr Member

    Hallo,

    ich müsste viele DNS Einstellungen für alle Domains umstellen zB "Zonentransfer zu diesen IPs erlauben (mit Beistrich getrennte Liste)"

    von 123.123.123.123,321.321.321.321 auf 456.456.456.456,654.654.654.654

    jetzt ist die Frage kann ich das über einen SQL Befehl auf dem Server direkt ändern und werden die Einstellungen übernommen? Es müsste dann auch noch die Serial geändert werden, die Frage ist technisch machbar worauf muss ich noch achten?

    vielen Dank für alle Antworten

    Stefan
     
  2. Till

    Till Administrator

    Du musst die ispconfig mysql Klasse verwenden und daraus die Funktionen datalogInsert und datalogUpdate um die Änderungen in der DB durchruführen. Sonst werden die Änderungen von ispconfig ignoriert da sie nur durchgeführt werden wenn sie auch im Trnsaktionslog stehen.

    Die Serial ist nur eine Zahl die hochgezählt werden muss.
     
  3. stefanr

    stefanr Member

    Hallo Till,

    danke für die Info, könntest du mir dazu noch einen Hinweis geben? Das Thema ist wieder einmal aktuell.

    vielen Dank für deine Mühe

    Gruß

    STEFAN
     
  4. Till

    Till Administrator

    Lade Dir mal die aktuelle SVN Version runter und schau Dir die Datei interface/web/tools/dns_resync.php an.
     
  5. stefanr

    stefanr Member

    Hallo Till,

    vielen Dank für die schnelle Antwort. Da ich nur ein Produktiv System habe
    und dort ja die SVN Version nicht eingesetzt werden sollte meine Frage wie
    ich am besten an die beschriebene Datei komme?

    Gruß

    STEFAN
     
  6. Till

    Till Administrator

    apt-get install subversion
    cd /tmp
    svn export svn://svn.ispconfig.org/ispconfig3/trunk

    Datei suchen und irgendwohin kopieren, dann:

    rm -rf /tmp/trunk
     
  7. stefanr

    stefanr Member

    Hi,

    das hat super geklappt hätte ich ja auch mal selbst drauf kommen können.
    Die dns_resync.php ruft eine templates/dns_resync.htm leider kann ich die
    nicht finden und somit bleibt beim Aufruf der dns_resync.php die Seite leer.

    Habe ich noch einen Denkfehler oder gibt es noch einen Hinweis. Denn so
    wie ich das verstanden habe, kann ich dann meine Änderungen mit mysql
    machen und sollte danach die dns_resync.php aufrufen um die Änderungen
    zu überprüfen und eine neue serial generieren zu lassen.

    Gruß

    STEFAN
     
  8. Till

    Till Administrator

    Die template Datei ist im template Unterverzeichnis. Es war ja auch so gemeint dass du Dir die Datei mal als Beispiel für Deine eigenen Scripte ansehen solltest.

    Das kannst Du natürlich auch machen. dann brauchst Du aber noch das template sowie die menu und lng Datei aus den entsprechenden Unterverzeichnissen des tools Verzeichnisses.
     
  9. stefanr

    stefanr Member

    Hallo Till,

    danke für den Hinweis, da ich nicht der aller beste Programmierer bin wollte ich mich kurz
    versichern das ich auf dem richtigen Weg bin.

    PHP:
    // Resyncing dns zones
    if(isset($_POST['resync']) && $_POST['resync'] == 1) {
            
    $zones $app->db->queryAllRecords("SELECT id,origin,serial FROM dns_soa WHERE active = 'Y'");
            if(
    is_array($zones)) {
                    foreach(
    $zones as $zone) {
                            
    $records $app->db->queryAllRecords("SELECT id,serial FROM dns_rr WHERE zone = ".$zone['id']." AND active = 'Y'");
                            if(
    is_array($records)) {
                                    foreach(
    $records as $rec) {
                                            
    $new_serial $app->validate_dns->increase_serial($rec["serial"]);
                                            
    $app->db->datalogUpdate('dns_rr'"serial = '".$new_serial."'"'id'$rec['id']);

                                    }
                            }
                            
    $new_serial $app->validate_dns->increase_serial($zone["serial"]);
                            
    $app->db->datalogUpdate('dns_soa'"serial = '".$new_serial."'"'id'$zone['id']);
                            
    $msg .= "Resynced: ".$zone['origin'].'<br />';
                    }
            }

    }

    in der FETT markierten Zeile müsste ich doch noch meine xfer eintragen so dass diese angepasst wird oder? Also etwa so

    $app->db->datalogUpdate('dns_rr', "serial = '".$new_serial."'", 'id', $rec['id']); ->
    $app->db->datalogUpdate('dns_rr', 'xfer= 123.123.123.123,321.321.321.312', "serial = '".$new_serial."'", 'id', $rec['id']);

    Bin ich damit auf dem richtigen Wege oder komplett falsch?

    Gruß

    STEFAN
     

Diese Seite empfehlen