- Unbound是一个缓存DNS解析器。 根区 (.) 内建的权威命名器列表,即所谓的根区域。
- 在接收到 DNS 查询时,它将向根域名服务器查询,并在几乎所有情况下都将接收到顶级域(TLD)权威域名服务器的授权。然后,它会要求域名服务器给出答案。同时将递归地继续,直到找到答案或没有答案可用(NXDOMAIN)。
- 出于性能和效率的原因,该答案被缓存了一段时间(答案的生存时间或TTL)。然后将从缓存中回答第二个相同名称的查询。Unbound也可以做DNSSEC验证。
简介
unbound [-h] [-d] [-p] [-v] [-c cfgfile]
unbound.conf
描述
- Unbound是一个缓存DNS解析器。 根区 (.) 内建的权威命名器列表,即所谓的根区域。
- 在接收到 DNS 查询时,它将向根域名服务器查询,并在几乎所有情况下都将接收到顶级域(TLD)权威域名服务器的授权。然后,它会要求域名服务器给出答案。同时将递归地继续,直到找到答案或没有答案可用(NXDOMAIN)。
- 出于性能和效率的原因,该答案被缓存了一段时间(答案的生存时间或TTL)。然后将从缓存中回答第二个相同名称的查询。Unbound也可以做DNSSEC验证。
- To use a locally running Unbound for resolving put
nameserver 127.0.0.1
into resolv.conf(5) - 如果使用 nsd(8) 需要权威的DNS,需要谨慎的设置,因为权威的命名者和解析器使用相同的端口号(53).
- unbound.conf 用于配置 unbound(8)。
- 文件格式具有(属性 和 值)。有些属性内部有属性。符号是:attribute: value。注释以 “#” 开头,最后一行结束。空行被忽略,就像行开头的空白一样。
- 实用程序 unbound-checkconf(8) 可用于在使用前检查 unbound.conf。
文件格式
- 属性之间必须有空格。属性以冒号 ‘:’ 结尾。属性后面跟着包含(属性 或 值的属性)。
- 可以使用 include: directive 来包含文件。它可以出现在任何地方,它接受一个文件名作为参数。处理继续进行,就好像从包含的文件中复制到配置文件中一样。
- 如果还使用 chroot ,使用包含文件的完整路径名,那么如果启动守护进程的目录等于它的 chroot/working 目录,或者在包含目录 :dir的include 语句之前指定,则包含名称的相对路径名可以工作。
- 通配符可以用于包含多个文件,请参见glob(7)。
EXAMPLE
选项
Server Options
zones Options
- 默认区域是localhost,反向127.0.0.1和:1,onion, test, invalid和AS112区域。
- AS112区是反向DNS专用区和预留IP地址,互联网上的服务器无法提供正确答案。
- 默认情况下,它们被配置为指定的nxdomain(没有反向信息)的答案。
- 可以通过指定自己的名称的 ‘local-zone’,或者使用 ‘nodefault’类型来关闭默认值。下面是默认区域内容的列表:
Remote Control Options
- 在远程控制 : 子句中是远程控制设施的声明。如果启用此功能,则可以使用 unbound-control(8) 实用程序向正在运行的 unbound 服务器发送命令。
- 服务器使用这些子句为连接设置SSLv3 / TLSv1安全性。unbound-control(8) 实用程序还会读取远程控制部分中的选项。
- 要设置正确的自签名证书,请使用 unbound-control-setup(8) 实用程序。
Stub Zone Options
- 可以有多个 Stub Zone :子句。每个都有一个名称: 和 0或更多的主机名或IP地址。
- 对于 Stub Zone,使用这个 nameservers 列表。类。服务器应该是权限服务器,而不是递归;unbound为存根区域执行递归处理。
- Stub Zone 可用于配置解析器使用的权威数据,而解析器不能使用公共 internet 服务器访问这些数据。这对于公司本地数据或私有区域非常有用。
- 在不同的主机(或不同的端口)上设置权威服务器。输入 Stub Zone stub-addr 的配置项:<主机的ip地址[@port]>。然后,unbound 解析器可以访问数据,而无需参考公共internet。
- 这个设置允许 DNSSEC 签名的区域由该权威服务器提供,在这种情况下,可以将一个可信的密钥条目与公钥一起放入config中,这样 unbound 就可以验证数据。并在私有区域的回复上设置广告位(权威服务器不设置广告位)。这个设置使 unbound 能够回答私有区域的查询,甚至可以设置AD位(‘可信’),但是这些回复没有设置AA(‘权威性’)位。
- 考虑添加服务器:对域不安全的声明:对于本地区域:如果区域是本地服务区域,则为该区域的名称 nodefault。
- 不安全条款阻止DNSSEC使该区域无效。本地区域nodefault(或透明)子句使(反向)区域绕过unbound对RFC1918区域的过滤。
Forward Zone Options(转发区域)
- 可以有多个 forward-zone: 条目。每个都有一个名称:和0或更多的主机名或IP地址。
- 对于 forward zone,这个 nameservers 列表用于将查询转发到。列出为 forward-host:和 forward-addr: 的服务器必须处理查询的进一步递归。因此,这些服务器不是权限服务器,而是(就像 unbound 一样)
- 递归服务器; unbound 不会对转发区域执行递归,它允许远程服务器执行
SEE
- nbound.conf(5), unbound-checkconf(8), nsd(8).
示例
- 安装 unbound 解析服务器
- 配置 unbound.conf 配置静态解析 DNS
- Forward Zone 配置转发 DSN 服务器
- 所有操作都在 Forward Zone 主机上配置,并将 domain-insecure: “holoem.com“ 指定为不验证域 (虽然这样做不安全),使 holoem.com 域能通过转发,否则转发将失败
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 | cat /etc/unbound/conf.d/example.com.conf > /etc/unbound/local.d/forward-zone-example-com.conf # 将文件内容重定向到新文件 forward-zone-example-com.conf 中,并插入如下内容 # forward-zone: # name: "example.com" # forward-addr: 192.0.2.68 # forward-zone: # name: "example.org" # forward-host: fwd.example.com forward-zone: # 定义转发域 name: "." # 定义需要转发的域名,“.” 代表将所有域名转发出去 forward-addr: 10.10.1.200 # 定义转发域名的IP地址:Linux DSN域 forward-addr: 10.12.1.201 # 定义转发域名的IP地址:Windows DNS 域 vim /etc/unbound/unbound.conf # 编辑配置文件 server: # 在 server 选项下 配置如下参数: interface: 0.0.0.0 # 监听所有接口的IP地址 access-control: 0.0.0.0/0 allow # 允许所有网络可以访问 # access-control: 10.10.1.0/24 allow 允许 10.10.1.0 的子网可以访问 username: "" # 指定用户名为:空 directory: "/etc/unbound" # 指定 unbound 工作 目录 pidfile: "/var/run/unbound/unbound.pid" # 指定 PID 存放文件路径 # port: 53 include: /etc/unbound/local.d/*.conf # 指定 local.d 目录中的后缀为“.conf” 的文件为加载的配置文件 # Ignore chain of trust. Domain is treated as insecure. # domain-insecure: "example.com" domain-insecure: "" # 将("" 默认所有)域名指定为不验证的域,虽然这样做不安全 module-config: "iterator" # 配置模块,将验证器遗失(丢弃) vim /etc/unbound/local.d/block-example-com.conf # 编辑 local zone 配置文件,输入如下内容 local-zone: "example.com." static # 指定域 holoem.com 为静态解析 local-data: "example.com. MX 5 mail.example.com." # 定义邮件交换服务器域名 local-data: "example.com. NS dns.example.com." # 定义 DNS服务器域名 local-data: "example.com. IN SOA dns.example.com roo.example.com. 1000 1000 500 4000 86400" local-data: "www.example.com. A 10.12.1.201" local-data: "ftp.example.com. A 10.12.1.201" local-data: "mail.example.com. A 10.12.1.201" local-data: "tftp.example.com. A 10.12.1.201" local-data: "nfs.example.com. A 10.12.1.201" # 定义相关域名的解析条目 unbound-checkconf systemctl restart unbound # 检查配置文件,并重启 unbound 服务 host www.example.com www.example.com has address 10.12.1.201 host www.holoem.com www.holoem.com has address 10.10.1.200 host vcsw.lszyzx.com vcsw.lszyzx.com has address 10.12.1.100 # 可以看到客户机,即能解析 example.com 内部域名,也能解析(Linux)外部域名 holoem.com,也能解析(Windows)外部域名 |
No comments:
Post a Comment