Draft 20 version of DNS API » History » Revision 14
« Previous |
Revision 14/20
(diff)
| Next »
Paul Kelly, 05/09/2011 05:54 AM
Draft 20 version of DNS API, with working notes¶
Current API¶
DNS | |||
---|---|---|---|
/dns | POST | Create a new DNS record | {"fqdn":string(name/ip), "value":string(ip/reverse), "type":string(A/PTR)} |
/dns/value | DELETE | remove value(ip or reverse) DNS record |
Record types¶
Should be implemented in next version of DNS API¶
Path | REST Type | Description | Example Input JSON | Notes |
---|---|---|---|---|
/dns/zone/A | GET/POST/DELETE | A Record - Name to IPv4 address | {"fqdn":string(name), "value":string(ip), "type":string(A)} |
Supports multiple records |
/dns/zone/PTR | GET/POST/DELETE | PTR - Reverse record, IP address to Name | {"fqdn":string(ip/ipv6), "value":string(name), "type":string(PTR)} |
Does not support multiple records |
/dns/zone/CNAME | GET/POST/DELETE | CNAME - DNS Alias | {"fqdn":string(name), "value":string(name), "type":string(CNAME)} |
Bind 9 doesn't support roundrobin cnames, so we should at first limit CNAMEs to a single record |
/dns/zone/AAAA | GET/POST/DELETE | IPv6 A Record - Name to IPv6 address | {"fqdn":string(ipv6), "value":string(name), "type":string(AAAA)} |
IPv6 address, supports multiple records |
/dns/zone/TXT | GET/POST/DELETE | TXT - Text string | {"fqdn":string(name), "value":string("arbitrary text string"), "type":string(TXT)} |
supports multiple records |
/dns/zone/SPF | GET/POST/DELETE | SPF - Sender Policy Framework records | {"fqdn":string(name), "value":string("v=spf1 a:mail.example.com -all"), "type":string(SPF)} |
supports multiple records |
/dns/zone/MX | GET/POST/DELETE | MX - Mail Exchanger records | {"fqdn":string(name), "value":integer(preference), "value":string(ip/name), "type":string(MX)} |
Needs an extra preference number field, supports multiple records |
Deferred:¶
/dns/zone/SOA (Can not be dynamically deleted, and needs extra code to handle)
/dns/zone/NS (Needs manual serial number increment
/dns/zone/SRV (Needs more research.. Looks easy enough http://en.wikipedia.org/wiki/SRV_record, but isn't a priority yet)
Methods¶
GET
POST
DELETE
Ohad notes¶
GET /dns -> list of dns zones managed by that proxy
GET /dns/zone -> list of all zone records
GET /dns/zone/record_type list of all dns records with a given type, for
example all CNAME would be /dns/1.2.3.4/CNAME
GET /dns/zone/record -> details of the specific record.
POST /dns/zone -> creates a new record
DELETE /dns/zone/record -> deletes a record
Brian notes¶
Dynamic DNS RFC http://tools.ietf.org/html/rfc2136
Howto: http://caunter.ca/nsupdate.txt
SOA: https://lists.isc.org/pipermail/bind-users/2003-November/047015.html
MX: http://forums.devshed.com/dns-36/using-nsupdate-to-add-an-mx-record-326788.html
NS: http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1304925290721+28353475&threadId=702920
Other APIs to investigate¶
http://dyn.com/developer
http://docs.amazonwebservices.com/Route53/latest/APIReference/
http://ns.zerigo.com/
DNS backends¶
NSUPDATE/BIND
Amazon/Route53
Dynect/DynDNS
DNSMadeEasy
UltraDNS
ActiveDirectory/Microsoft DNS
Additional features
An API to retrieve the proxy's settings might be useful for consistency checks and diagnostic reasons.
Should foreman also be provided with the ability to push settings out into the proxies, though this might prove to be a security issue?¶
Updated by Paul Kelly over 13 years ago · 20 revisions