Project

General

Profile

Draft 20 version of DNS API » History » Version 12

Brian Gupta, 05/09/2011 05:01 AM
changed proposed Record types to a table

1 1 Brian Gupta
h1. Draft 20 version of DNS API, with working notes
2
3 5 Brian Gupta
h2. Current API
4
5 4 Ohad Levy
|_.DNS |
6 1 Brian Gupta
|/dns|POST|Create a new DNS record|@{"fqdn":string(name/ip), "value":string(ip/reverse), "type":string(A/PTR)}@|
7
|/dns/value|DELETE|remove value(ip or reverse) DNS record||
8
9 2 Brian Gupta
h2. Record types
10 1 Brian Gupta
11 2 Brian Gupta
h3. Should be implemented in next version of DNS API
12 3 Brian Gupta
13 12 Brian Gupta
|_.Path|_.REST Type|_.Description|_.Example Input JSON|_.Notes|
14
|/dns/zone/A|GET/POST/DELETE|A Record - Name to IPv4 address|@{"fqdn":string(name), "value":string(ip), "type":string(A)}@|Supports multiple records|
15
|/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|
16
|/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|
17
|/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|
18
|/dns/zone/TXT|GET/POST/DELETE|TXT - Text string|@{"fqdn":string(name), "value":string("arbitrary text string"), "type":string(TXT)}@|supports multiple records|
19
|/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|
20
|/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|
21 1 Brian Gupta
22 2 Brian Gupta
h3. Deferred:
23 3 Brian Gupta
24 1 Brian Gupta
/dns/zone/SOA (Can not be dynamically deleted, and needs extra code to handle)
25
/dns/zone/NS (Needs manual serial number increment
26
/dns/zone/SRV (Needs more research.. It might be easy enough, but isn't a priority yet)
27
28 11 Brian Gupta
h2. Methods
29
30
GET
31
POST
32
DELETE
33
34 2 Brian Gupta
h2. Ohad notes
35 3 Brian Gupta
36 1 Brian Gupta
GET /dns -> list of dns zones managed by that proxy
37
GET /dns/zone -> list of all zone records
38
GET /dns/zone/record_type list of all dns records with a given type, for
39
example all CNAME would be /dns/1.2.3.4/CNAME
40
GET /dns/zone/record -> details of the specific record.
41
42
POST /dns/zone -> creates a new record
43
DELETE /dns/zone/record -> deletes a record
44
45 8 Brian Gupta
h2. Brian notes
46 3 Brian Gupta
47 1 Brian Gupta
Dynamic DNS RFC http://tools.ietf.org/html/rfc2136
48
Howto: http://caunter.ca/nsupdate.txt
49
50
SOA: https://lists.isc.org/pipermail/bind-users/2003-November/047015.html
51
MX: http://forums.devshed.com/dns-36/using-nsupdate-to-add-an-mx-record-326788.html
52
NS: http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1304925290721+28353475&threadId=702920
53 6 Brian Gupta
54 8 Brian Gupta
h2. Other APIs to investigate
55 6 Brian Gupta
56
http://dyn.com/developer
57 1 Brian Gupta
http://docs.amazonwebservices.com/Route53/latest/APIReference/
58
http://ns.zerigo.com/
59 8 Brian Gupta
60
h2. DNS backends
61
62
NSUPDATE/BIND
63
Amazon/Route53
64
Dynect/DynDNS
65
DNSMadeEasy
66
UltraDNS
67 9 Brian Gupta
ActiveDirectory/Microsoft DNS