2014-10-05 13:38:23 +00:00
< style >
#external_dns_settings .heading td {
font-weight: bold;
font-size: 120%;
padding-top: 1.5em;
}
#external_dns_settings .heading.first td {
border-top: none;
padding-top: 0;
}
#external_dns_settings .values td {
border: 0;
padding-top: .75em;
padding-bottom: 0;
2014-10-19 22:47:39 +00:00
}
#external_dns_settings .value {
word-break: break-all;
2014-10-05 13:38:23 +00:00
}
#external_dns_settings .explanation td {
border: 0;
padding-top: .5em;
padding-bottom: .75em;
font-style: italic;
font-size: 95%;
color: #777;
}
< / style >
2014-10-05 14:53:42 +00:00
< h2 > External DNS< / h2 >
2014-10-05 13:38:23 +00:00
2014-10-05 14:53:42 +00:00
< p class = "text-warning" > This is an advanced configuration page.< / p >
< p > Although your box is configured to serve its own DNS, it is possible to host your DNS elsewhere — such as in the DNS control panel provided by your domain name registrar or virtual cloud provider — by copying the DNS zone information shown in the table below into your external DNS server’ s control panel.< / p >
2014-10-05 13:38:23 +00:00
< p > If you do so, you are responsible for keeping your DNS entries up to date! If you previously enabled DNSSEC on your domain name by setting a DS record at your registrar, you will likely have to turn it off before changing nameservers.< / p >
2015-08-28 13:50:02 +00:00
< p class = "alert" role = "alert" >
< span class = "glyphicon glyphicon-info-sign" > < / span >
You may encounter zone file errors when attempting to create a TXT record with a long string.
2021-10-18 11:36:48 +00:00
< a href = "https://tools.ietf.org/html/rfc4408#section-3.1.3" > RFC 4408< / a > states a TXT record is allowed to contain multiple strings, and this technique can be used to construct records that would exceed the 255-byte maximum length.
2015-08-28 13:50:02 +00:00
You may need to adopt this technique when adding DomainKeys. Use a tool like < code > named-checkzone< / code > to validate your zone file.
< / p >
2020-11-16 11:03:41 +00:00
< h3 > Download zonefile< / h3 >
< p > You can download your zonefiles here or use the table of records below.< / p >
< form class = "form-inline" role = "form" onsubmit = "do_download_zonefile(); return false;" >
< div class = "form-group" >
< div class = "form-group" >
< label for = "downloadZonefile" class = "control-label sr-only" > Zone< / label >
< select id = "downloadZonefile" class = "form-control" style = "width: auto" > < / select >
< / div >
< button type = "submit" class = "btn btn-primary" > Download< / button >
< / div >
< / form >
< h3 > Records< / h3 >
2015-08-28 13:50:02 +00:00
2014-10-05 13:38:23 +00:00
< table id = "external_dns_settings" class = "table" >
< thead >
< tr >
< th > QName< / th >
< th > Type< / th >
< th > Value< / th >
< / tr >
< / thead >
< tbody >
< / tbody >
< / table >
< script >
function show_external_dns() {
2020-11-16 11:03:41 +00:00
api(
"/dns/zones",
"GET",
{ },
function(data) {
var zones = $('#downloadZonefile');
zones.text('');
for (var j = 0; j < data.length ; j + + ) {
zones.append($('< option / > ').text(data[j]));
}
});
2014-10-05 13:38:23 +00:00
$('#external_dns_settings tbody').html("< tr > < td colspan = '2' class = 'text-muted' > Loading...< / td > < / tr > ")
api(
"/dns/dump",
"GET",
{ },
function(zones) {
$('#external_dns_settings tbody').html("");
for (var j = 0; j < zones.length ; j + + ) {
var h = $("< tr class = 'heading' > < td colspan = '3' > < / td > < / tr > ");
h.find("td").text(zones[j][0]);
$('#external_dns_settings tbody').append(h);
var r = zones[j][1];
for (var i = 0; i < r.length ; i + + ) {
var n = $("< tr class = 'values' > < td class = 'qname' / > < td class = 'rtype' / > < td class = 'value' / > < / tr > ");
n.find('.qname').text(r[i].qname);
n.find('.rtype').text(r[i].rtype);
n.find('.value').text(r[i].value);
$('#external_dns_settings tbody').append(n);
var n = $("< tr class = 'explanation' > < td colspan = '3' / > < / tr > ");
n.find('td').text(r[i].explanation);
$('#external_dns_settings tbody').append(n);
}
}
})
}
2020-11-16 11:03:41 +00:00
function do_download_zonefile() {
var zone = $('#downloadZonefile').val();
api(
"/dns/zonefile/"+ zone,
"GET",
{},
function(data) {
show_modal_error("Download Zonefile", $("< pre / > ").text(data));
},
function(err) {
show_modal_error("Download Zonefile (Error)", $("< pre / > ").text(err));
});
}
2014-10-05 13:38:23 +00:00
< / script >