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…
Reference in New Issue