add note on delegation
This commit is contained in:
		
							parent
							
								
									e52e45641e
								
							
						
					
					
						commit
						8131de4a08
					
				
							
								
								
									
										168
									
								
								HOW_DELEGATION_WORKS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								HOW_DELEGATION_WORKS.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,168 @@
 | 
			
		||||
DNS Delegation
 | 
			
		||||
==============
 | 
			
		||||
 | 
			
		||||
Tracing NS records trying to understand DNS delegation better.
 | 
			
		||||
 | 
			
		||||
Root Servers
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
The root servers will return the TLD records for any domain
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
dig A @m.root-servers.net www.example.daplie.me
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
; <<>> DiG 9.8.3-P1 <<>> A @m.root-servers.net www.aj.daplie.me
 | 
			
		||||
; (1 server found)
 | 
			
		||||
;; global options: +cmd
 | 
			
		||||
;; Got answer:
 | 
			
		||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34843
 | 
			
		||||
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 5, ADDITIONAL: 10
 | 
			
		||||
;; WARNING: recursion requested but not available
 | 
			
		||||
 | 
			
		||||
;; QUESTION SECTION:
 | 
			
		||||
;www.aj.daplie.me.		IN	A
 | 
			
		||||
 | 
			
		||||
;; AUTHORITY SECTION:
 | 
			
		||||
me.			172800	IN	NS	c0.nic.me.
 | 
			
		||||
me.			172800	IN	NS	b0.nic.me.
 | 
			
		||||
me.			172800	IN	NS	a0.nic.me.
 | 
			
		||||
me.			172800	IN	NS	b2.nic.me.
 | 
			
		||||
me.			172800	IN	NS	a2.nic.me.
 | 
			
		||||
 | 
			
		||||
;; ADDITIONAL SECTION:
 | 
			
		||||
a0.nic.me.		172800	IN	A	199.253.59.1
 | 
			
		||||
a2.nic.me.		172800	IN	A	199.249.119.1
 | 
			
		||||
b0.nic.me.		172800	IN	A	199.253.60.1
 | 
			
		||||
b2.nic.me.		172800	IN	A	199.249.127.1
 | 
			
		||||
c0.nic.me.		172800	IN	A	199.253.61.1
 | 
			
		||||
a0.nic.me.		172800	IN	AAAA	2001:500:53::1
 | 
			
		||||
a2.nic.me.		172800	IN	AAAA	2001:500:47::1
 | 
			
		||||
b0.nic.me.		172800	IN	AAAA	2001:500:54::1
 | 
			
		||||
b2.nic.me.		172800	IN	AAAA	2001:500:4f::1
 | 
			
		||||
c0.nic.me.		172800	IN	AAAA	2001:500:55::1
 | 
			
		||||
 | 
			
		||||
;; Query time: 141 msec
 | 
			
		||||
;; SERVER: 202.12.27.33#53(202.12.27.33)
 | 
			
		||||
;; WHEN: Tue Oct  3 15:47:25 2017
 | 
			
		||||
;; MSG SIZE  rcvd: 343
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
GTLD Servers
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
The GTLD Servers will return the glue records for the nameserver which hosts the SLD in question
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
dig A @b0.nic.me www.aj.daplie.me
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
; <<>> DiG 9.8.3-P1 <<>> A @b0.nic.me www.aj.daplie.me
 | 
			
		||||
; (1 server found)
 | 
			
		||||
;; global options: +cmd
 | 
			
		||||
;; Got answer:
 | 
			
		||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52062
 | 
			
		||||
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 0
 | 
			
		||||
;; WARNING: recursion requested but not available
 | 
			
		||||
 | 
			
		||||
;; QUESTION SECTION:
 | 
			
		||||
;www.aj.daplie.me.		IN	A
 | 
			
		||||
 | 
			
		||||
;; AUTHORITY SECTION:
 | 
			
		||||
daplie.me.		86400	IN	NS	ns2.redirect-www.org.
 | 
			
		||||
daplie.me.		86400	IN	NS	ns1.redirect-www.org.
 | 
			
		||||
 | 
			
		||||
;; Query time: 29 msec
 | 
			
		||||
;; SERVER: 199.253.60.1#53(199.253.60.1)
 | 
			
		||||
;; WHEN: Tue Oct  3 15:48:41 2017
 | 
			
		||||
;; MSG SIZE  rcvd: 86
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If the nameserver were "in bailiwick" then it's A/AAAA records would be returned in an additional section.
 | 
			
		||||
 | 
			
		||||
SLD Nameservers
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
There are three main conditions:
 | 
			
		||||
 | 
			
		||||
* Exists
 | 
			
		||||
* Doesn't exist (but lives here)
 | 
			
		||||
* Delegated
 | 
			
		||||
 | 
			
		||||
There's also the condition of *"doesn't exist (and doesn't live here)"*, but we'll save that for another day
 | 
			
		||||
(or try `dig @ns1.google.com A yahoo.com`).
 | 
			
		||||
 | 
			
		||||
### Exists
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
dig A @ns2.redirect-www.org www.aj.daplie.me
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
; <<>> DiG 9.8.3-P1 <<>> A @ns2.redirect-www.org www.aj.daplie.me
 | 
			
		||||
; (1 server found)
 | 
			
		||||
;; global options: +cmd
 | 
			
		||||
;; Got answer:
 | 
			
		||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52373
 | 
			
		||||
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
 | 
			
		||||
;; WARNING: recursion requested but not available
 | 
			
		||||
 | 
			
		||||
;; QUESTION SECTION:
 | 
			
		||||
;www.aj.daplie.me.		IN	A
 | 
			
		||||
 | 
			
		||||
;; ANSWER SECTION:
 | 
			
		||||
www.aj.daplie.me.	300	IN	A	45.56.59.142
 | 
			
		||||
 | 
			
		||||
;; Query time: 83 msec
 | 
			
		||||
;; SERVER: 66.172.33.29#53(66.172.33.29)
 | 
			
		||||
;; WHEN: Tue Oct  3 15:57:14 2017
 | 
			
		||||
;; MSG SIZE  rcvd: 50
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Doesn't Exist (but would)
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
dig A @ns2.redirect-www.org doesntexist.aj.daplie.me
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
; <<>> DiG 9.8.3-P1 <<>> A @ns2.redirect-www.org doesntexist.aj.daplie.me
 | 
			
		||||
; (1 server found)
 | 
			
		||||
;; global options: +cmd
 | 
			
		||||
;; Got answer:
 | 
			
		||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19993
 | 
			
		||||
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
 | 
			
		||||
;; WARNING: recursion requested but not available
 | 
			
		||||
 | 
			
		||||
;; QUESTION SECTION:
 | 
			
		||||
;doesntexist.aj.daplie.me.	IN	A
 | 
			
		||||
 | 
			
		||||
;; AUTHORITY SECTION:
 | 
			
		||||
daplie.me.		1	IN	SOA	ns1.redirect-www.org. hostmaster.daplie.me. 2017020100 10800 3600 1209600 1800
 | 
			
		||||
 | 
			
		||||
;; Query time: 68 msec
 | 
			
		||||
;; SERVER: 66.172.33.29#53(66.172.33.29)
 | 
			
		||||
;; WHEN: Tue Oct  3 15:59:25 2017
 | 
			
		||||
;; MSG SIZE  rcvd: 109
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Delegated Subdomain
 | 
			
		||||
 | 
			
		||||
Should look something like this, I'm pretty sure:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
;; QUESTION SECTION:
 | 
			
		||||
;john.daplie.me.		IN	A
 | 
			
		||||
 | 
			
		||||
;; AUTHORITY SECTION:
 | 
			
		||||
john.daplie.me.		86400	IN	NS	ns2.dns-host.org.
 | 
			
		||||
john.daplie.me.		86400	IN	NS	ns1.dns-host.org.
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
I think that in practice anything matching `*.john.daplie.me` would be delegated,
 | 
			
		||||
but I but you could do something weird like host `whatever.john.daplie.me` on the original
 | 
			
		||||
nameserver by A) answering to it directly on the main nameserver and B) delegating
 | 
			
		||||
from `whatever.john.daplie.me` back to the original nameserver in case the resolving
 | 
			
		||||
client makes intelligent assumptions and caching.
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user