document types and rename some fixtures
This commit is contained in:
		
							parent
							
								
									0768e17bfa
								
							
						
					
					
						commit
						ed591d91f7
					
				
							
								
								
									
										198
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										198
									
								
								README.md
									
									
									
									
									
								
							| @ -149,7 +149,7 @@ Capturing Packets | ||||
| 
 | ||||
| We have a command line tool for that! See [dig.js](https://git.daplie.com/Daplie/dig.js). | ||||
| 
 | ||||
| ``` | ||||
| ```bash | ||||
| # Install | ||||
| npm install -g 'git+https://git@git.daplie.com/Daplie/dig.js.git' | ||||
| 
 | ||||
| @ -160,6 +160,199 @@ dig.js A daplie.com --output . | ||||
| dig.js --mdns PTR _services._dns-sd._udp.local --output . | ||||
| ``` | ||||
| 
 | ||||
| Resource Record Examples | ||||
| ======================== | ||||
| 
 | ||||
| * SOA | ||||
| * NS | ||||
| * A | ||||
| * AAAA | ||||
| * CNAME | ||||
| * MX | ||||
| * TXT | ||||
| * SRV | ||||
| * PTR | ||||
| 
 | ||||
| SOA | ||||
| --- | ||||
| 
 | ||||
| I'm pretty sure that the SOA only goes in the `authority` section | ||||
| (except when SOA is queried explicitly) | ||||
| and that it's only given as a response to any empty set | ||||
| (where `RCODE == NXDOMAIN`) | ||||
| to affirm "yes, I am responsible for this domain but, no, I don't have a record for it". | ||||
| 
 | ||||
| If another nameserver has been delegated authority for a particular subdomain | ||||
| a set of `NS` records should be returned instead. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "yahoo.com", | ||||
|   "type": 6, | ||||
|   "typeName": "SOA", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 599, | ||||
|   "primary": "ns1.yahoo.com", | ||||
|   "admin": "hostmaster.yahoo-inc.com", | ||||
|   "serial": 2017092539, | ||||
|   "refresh": 3600, | ||||
|   "retry": 300, | ||||
|   "expiration": 1814400, | ||||
|   "minimum": 600 | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| NS | ||||
| --- | ||||
| 
 | ||||
| I'm also pretty sure that the NS only goes in the `authority` section | ||||
| (except when NS is queried explicitly) | ||||
| and that it's given as a successful response | ||||
| (`RCODE == SUCCESS`) | ||||
| to any query type | ||||
| (`A` or `AAAA`, `MX`, `TXT`, or `SRV`) | ||||
| where the answer sections is an empty set because the records in | ||||
| question have been delegated to another nameserver. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "google.com", | ||||
|   "type": 2, | ||||
|   "typeName": "NS", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 82790, | ||||
|   "data": "ns3.google.com" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| A | ||||
| --- | ||||
| 
 | ||||
| The most common type of record. Returns the IPv4 address for a given domain. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "www.linode.com", | ||||
|   "type": 1, | ||||
|   "typeName": "A", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 291, | ||||
|   "address": "72.14.191.202" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| AAAA | ||||
| ---- | ||||
| 
 | ||||
| Returns the IPv6 address for a given domain. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "irc6.geo.oftc.net", | ||||
|   "type": 28, | ||||
|   "typeName": "AAAA", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 59, | ||||
|   "address": "2607:f8f0:610:4000:211:11ff:fe1c:7bec" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| CNAME | ||||
| ----- | ||||
| 
 | ||||
| The CNAME is used to look up the IP address for the given alias. | ||||
| (the alias is often referred to incorrectly as a CNAME but it is, in fact, the alias) | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "www.nodejs.org", | ||||
|   "type": 5, | ||||
|   "typeName": "CNAME", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 3600, | ||||
|   "data": "nodejs.org" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| MX | ||||
| --- | ||||
| 
 | ||||
| Mail Exchange Records show the alias that should be looked up to know where incoming mail should | ||||
| be sent. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "microsoft.com", | ||||
|   "type": 15, | ||||
|   "typeName": "MX", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 197, | ||||
|   "priority": 10, | ||||
|   "exchange": "microsoft-com.mail.protection.outlook.com" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| TXT | ||||
| --- | ||||
| 
 | ||||
| Often used for outgoing mail validations, public keys, lots of arbitrary stuff. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "aol.com", | ||||
|   "type": 16, | ||||
|   "typeName": "TXT", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 1926, | ||||
|   "data": [ "v=spf1 ptr:mx.aol.com ?all" ] | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| SRV | ||||
| --- | ||||
| 
 | ||||
| A way to associate a service with a port and other relevant information. | ||||
| Used for federated / dencentralized protocols (like XMPP) and mDNS/DLNA/UPnP/DNS-SD type stuff. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "_xmpp-server._tcp.gmail.com", | ||||
|   "type": 33, | ||||
|   "typeName": "SRV", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 900, | ||||
|   "priority": 5, | ||||
|   "weight": 0, | ||||
|   "port": 5269, | ||||
|   "target": "xmpp-server.l.google.com" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| PTR | ||||
| --- | ||||
| 
 | ||||
| Used for mDNS/DNS-SD type discoveries and anti-spam reverse lookup verification for mail servers. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "name": "_pdl-datastream._tcp.local", | ||||
|   "type": 12, | ||||
|   "typeName": "PTR", | ||||
|   "class": 1, | ||||
|   "className": "IN", | ||||
|   "ttl": 255, | ||||
|   "data": "Canon MF620C Series._pdl-datastream._tcp.local" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Contributing and Development | ||||
| ============================ | ||||
| 
 | ||||
| @ -204,7 +397,8 @@ Ideally you should have some idea of what the result file should look | ||||
| like and should place that in `test/fixtures/<domain>.<tld>.<type>.json` | ||||
| 
 | ||||
| ```bash | ||||
| node bin/capture-query.js --name www.google.com --type CNAME | ||||
| npm install -g dig.js | ||||
| dig.js --name www.google.com --type CNAME --output ./samples/ | ||||
| ``` | ||||
| 
 | ||||
| 3) Create `parser/type.cname.js` | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user