update readme

This commit is contained in:
Donavan Fritz 2024-02-08 17:47:16 -08:00
parent c4e584301a
commit 64b55c4236

View File

@ -7,7 +7,7 @@
*synthetic* is a [CoreDNS](http://coredns.io) plugin to synthetically handle DNS records with IP addresses embedded. *synthetic* is a [CoreDNS](http://coredns.io) plugin to synthetically handle DNS records with IP addresses embedded.
Named after DNSMASQ's "synth-domain" [option](http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html). Named after DNSMASQ's "synth-domain" [option](http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html).
`synthdomain` aims to provide an easy mechanism for alignment between forward and reverse lookups. `synthetic` aims to provide an easy mechanism for alignment between forward and reverse lookups.
This is a common DNS operational and configuration error as noted in [RFC1912](https://tools.ietf.org/html/rfc1912#section-2.1). This is a common DNS operational and configuration error as noted in [RFC1912](https://tools.ietf.org/html/rfc1912#section-2.1).
This plugin supports works nicely with the file plugin such that records present in the file will take precedence over this plugin. This plugin supports works nicely with the file plugin such that records present in the file will take precedence over this plugin.
@ -15,21 +15,21 @@ This plugin supports works nicely with the file plugin such that records present
### Forward Lookups ### Forward Lookups
Forward Lookups are hostname -> IP address. Forward Lookups are hostname -> IP address.
`synthdomain` supports IPs "embedded" in the DNS hostname. `synthetic` supports IPs "embedded" in the DNS hostname.
For IP addresses embedded in DNS hostnames the general model is `ip-<address>.example.com` For IP addresses embedded in DNS hostnames the general model is `ip-<address>.example.com`
(where "address" can be either IPv4 or IPv6, and "example.com" is a domain of your choosing). (where "address" can be either IPv6 or IPv4, and "example.com" is a domain of your choosing).
In IPv4 the dots are converted to hyphins; In IPv6 the colons are converted to hyphins. In IPv6 the colons are converted to a dash; in IPv4 the dots are converted to a dash.
The following are all considered valid for A or AAAA queries. The following are all considered valid for A or AAAA queries.
* `ip-192-0-2-0.example.com`
* `ip-2001-0db8-0000-0000-0000-0000-0000-0001.example.com` * `ip-2001-0db8-0000-0000-0000-0000-0000-0001.example.com`
* `ip-2001-db8--1.example.com` * `ip-2001-db8--1.example.com`
* `ip-192-0-2-0.example.com`
### Reverse Lookups ### Reverse Lookups
Reverse Lookups are IP -> hostname, and are known as pointer records (PTR). Reverse Lookups are IP -> hostname, and are known as pointer records (PTR).
`synthdomain` will respond to a PTR query and return a result that is also supported by the forward lookup mechanism. `synthetic` will respond to a PTR query and return a result that is also supported by the forward lookup mechanism.
Reverse lookups for IPv6 addresses will return a fully compressed IPv6 address (per [RFC5952](https://tools.ietf.org/html/rfc5952#section-2.2)). Reverse lookups for IPv6 addresses will return a fully compressed IPv6 address (per [RFC5952](https://tools.ietf.org/html/rfc5952#section-2.2)).
## Corefile Configuration Examples ## Corefile Configuration Examples
@ -62,7 +62,7 @@ example.com {
To compile this with CoreDNS you can follow the [normal procedure](https://coredns.io/manual/plugins/#plugins) for external plugins. To compile this with CoreDNS you can follow the [normal procedure](https://coredns.io/manual/plugins/#plugins) for external plugins.
This plugin can be used by adding the following to `plugin.cfg`: This plugin can be used by adding the following to `plugin.cfg`:
``` ```
synthetic:code.fritzlab.net/fritzlab/synthetic synthetic:code.fritzlab.net/dns/synthetic
``` ```
## FAQ ## FAQ