Bulk allow-transfer option needed for DNS.

Discussion in 'Feature Requests' started by Bookworm, Jun 24, 2012.

  1. Bookworm

    Bookworm Member

    My fingers are already getting tired.

    Apparently, ISPConfig does Bind9 the hard way.

    Instead of simply using the flat files that Bind works best with, ISPConfig uses a SQL copy AND a flat file copy of the same zones.

    Here's the problem. If you want to update other servers, you have to type the 'allow-transfer' server IP's in manually - in every... single... zone... entry...

    I have _ninety one_ domains I provide DNS for. I'm on page 2, so far.

    I can update the flat files _fast_, and reload Bind so things are working - but ISPConfig doesn't have a "refresh from flat file" option, and if I touch _one_ zone file, ISPConfig will then rewrite _all_ of the options in named.conf.local. I'm assuming it just generates a new file, then overwrites the existing file, rather than doing an update.

    ---

    Suggestion. Either have a global 'allow-transfers' update option, or have an option to allow refreshing the database with the existing flat files. The latter would make the most sense, as it would let people use tools such as 'sed' to make fast changes. The former would be easier to implement.

    As it is, I'm looking at hacking together a quick 'fill in the xfer field of the SOA table' script; even if it takes an hour, it'll be faster than doing it manually.
     
  2. Bookworm

    Bookworm Member

    For those who need to do fast updates, here's the quick and dirty method I used. This only works if the fields are blank - if the fields are already populated, just use a search and replace.

    In phpMyAdmin, go to dbispconfig, and open the 'sql' tab.

    UPDATE `dbispconfig`.`dns_soa` SET `xfer` = '<IP1>, <IP2>'

    <ip1> would be ***.***.***.***, of course.

    That filled in the 68 records I hadn't gotten to in about a quarter of a second.

    ----

    If you need to search and replace, it'll be this.

    UPDATE `dbispconfig`.`dns_soa` SET `xfer` = REPLACE(`xfer`,"<IP1>, <IP2", "<IP1>, <IP2>, <IP3>");

    (Remember to then edit one of the zone records and save it, so that it updates the named.conf.local file)
     
    Last edited: Jun 24, 2012
  3. maumar

    maumar Member

    we implement a till suggestion, i dunno if is useful to you...
    below is what we do

    1. we have a template with

    Code:
    [ZONE]
    origin={DOMAIN}.
    ns=some.dom.tld.
    mbox=domains.dom.tld.
    refresh=3600
    retry=7200
    expire=3600
    minimum=86400
    ttl=3600
    xfer=common-allow-transfer
    
    [DNS_RECORDS]
    
    

    into named.conf.options
    Code:
    acl common-allow-transfer { ip1;ip2;...;}
    
    then in option
    Code:
    options {
    [...]
     allow-transfer {common-allow-transfer; };
    
    and so on....
     
  4. Bookworm

    Bookworm Member

    I'll look into that. I didn't realize there was a global option, all of the documentation talks about doing it per zone. (It still might not last if the ispconfig wipes the configuration files every time you reload)
     
  5. maumar

    maumar Member

    Not at all :)
    I do not touch any zone file, never ever, fr this reason.
    This solution relies on templates, and for this reason is winning.
    Zone files are that of ispconfig and keep the setting ov common-allow-transfer.
     

Share This Page