dns(domain name server)域名服务,整个解析流程涉及3种服务器,存根解析器/递归解析器/授权服务器。
相关概念

以下分别通过dig/bind/adns三个软件模拟一个完整的递归流程。
名词解释:
stub_resolver: 存根解析器,包括操作系统提供的dns解析库(getaddrinfo)或者用户自己实现的dns解析库(bind),和相关的配置(resolv.conf/hosts)。
recursive_resolver: 递归解析器,接收用户dns请求,完成整个递归解析流程,并将最终结果返回给存根解析器,如bind/unbound等。
authority_server: 授权服务器,维护和保存授权记录信息,并答复用户的dns请求,如bind。
dig: 依赖bind提供的dns解析库和resolv.conf配置文件,完成dns请求的组装、发送和dns响应的接收、解析。
bind: 开源的dns缓存、转发、递归、授权服务器实现。
adns: 个人实现的基于dpdk的高速dns授权服务器。
一个例子

实验拓扑结构

实验服务器配置
bind100
cat /etc/bind/named.conf
1 | |
cat /etc/bind/data/db.ca
1 | |
adns98
cat root-servers.net
1 | |
adns99
cat com
1 | |
adns103
cat jd.com
1 | |