hello-dns/resolver.md
bert hubert e2950ae08e rebase
2018-04-01 18:31:41 +02:00

1.6 KiB

            <meta charset="utf-8" emacsmode="-*- markdown -*-">
                        **A warm welcome to DNS**

Note: this page is part of the 'hello-dns' documentation effort.

Resolver

Writing a modern resolver is the hardest part of DNS. A fully standards compliant DNS resolver is not a resolver that can be used in practice.

In reality, resolvers are expected to process malformed queries coming from clients (stub-resolvers). Furthermore, many authoritative servers respond incorrectly to modern DNS queries. Zones are frequently misconfigured on authoritative servers but still expected to work correctly.

Meanwhile, operators desire top performance, with individual CPU cores expected to satisfy the DNS needs of hundreds of thousands of users.

To top this off, a modern DNS resolver will have to validate DNSSEC correctly. This may be among the hardest challenges of any widely used Internet protocol.

Excellent resolvers that are freely available and open source include:

So in short, before attempting to write a DNS resolver, ponder if you really need to.

Resolver algorithm

TBC..