aboutsummaryrefslogtreecommitdiff
path: root/plugin/dns64/README.md
blob: ef3d9086753b3a0240a640d20940e061022c0c72 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# dns64

## Name

*dns64* - enables DNS64 IPv6 transition mechanism.

## Description

From Wikipedia:

> DNS64 describes a DNS server that when asked for a domain's AAAA records, but only finds
> A records, synthesizes the AAAA records from the A records.

The synthesis in only performed if the query came in via IPv6.

This translation is for IPv6-only networks that have [NAT64](https://en.wikipedia.org/wiki/NAT64).

See [RFC 6147](https://tools.ietf.org/html/rfc6147) for more information.

## Syntax

~~~
dns64 [PREFIX] {
  [translate_all]
}
~~~

* [PREFIX] defines a custom prefix instead of the default `64:ff9b::/96`.
* `translate_all` translates all queries, including respones that have AAAA results.

## Examples

Translate with the default well known prefix. Applies to all queries.

~~~
dns64
~~~

Use a custom prefix.

~~~
dns64 64:1337::/96
# Or
dns64 {
    prefix 64:1337::/96
}
~~~

Enable translation even if an existing AAAA record is present.

~~~
dns64 {
    translate_all
}
~~~

* `prefix` specifies any local IPv6 prefix to use, instead of the well known prefix (64:ff9b::/96)

## Bugs

Not all features required by DNS64 are implemented, only basic AAAA synthesis.

* Support "mapping of separate IPv4 ranges to separate IPv6 prefixes"
* Resolve PTR records
* Follow CNAME records
* Make resolver DNSSEC aware. See: [RFC 6147 Section 3](https://tools.ietf.org/html/rfc6147#section-3)