用户工具

站点工具


doc:d:dns_local_unbound

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
doc:d:dns_local_unbound [2015/10/02 10:39]
kapo 增加 tcp, udp, ipv4/ipv6 的设定解释
doc:d:dns_local_unbound [2016/03/13 16:31] (当前版本)
Siroh 递归模式
行 1: 行 1:
 +====== 本地缓存 DNS 服务设置 ======
  
 +注意!本文内容仅适用于 FreeBSD 10。
 +
 +===== 基础设置 =====
 +
 +自从 FreeBSD 10 开始,BIND 被弃用。系统默认的 DNS 服务提供者是 unbound。相对于前者,unbound 的设置要更简单一些。本文就是简单介绍如何设置 unbound 作为本地缓存 DNS 服务器。非常简单,步骤如下:
 +
 +<​code>​
 +# echo '​local_unbound_enable="​YES"'​ >> /​etc/​rc.conf
 +# service local_unbound start
 +</​code>​
 +
 +===== 需要注意的几点 =====
 +
 +==== 不要让 PPP 修改你的 /​etc/​resolv.conf ====
 +
 +如果使用 PPP 拨号,包括 PPPoE,你的 /​etc/​ppp/​ppp.conf 不能包含如下 dns 有关的代码:
 +
 +<​code>​
 +enable dns
 +</​code>​
 +
 +如果你的 /​etc/​ppp/​ppp.conf 包含这一行,请注释掉。因为有了这个设置以后,PPP 会自动修改你的 /​etc/​resolv.conf。那么 local_unbound 的工作就失效了。
 +
 +==== 修改 unbound 的配置文件以设置监听界面/地址 ====
 +
 +为了细化 unbound 的配置,可以考虑修改 /​var/​unbound/​unbound.conf 来控制监听的方式:
 +
 +<​code>​
 +# Generated by local-unbound-setup
 +server:
 +        username: unbound
 +        directory: /​var/​unbound
 +        chroot: /​var/​unbound
 +        pidfile: /​var/​run/​local_unbound.pid
 +        auto-trust-anchor-file:​ /​var/​unbound/​root.key
 +
 + interface: 0.0.0.0
 + access-control:​ 10.0.0.0/8 allow
 +
 +include: /​var/​unbound/​forward.conf
 +</​code>​
 +
 +如果将 interface 的值设置为 0.0.0.0,那么 local_unbound 将在所有地址上监听。当然你可以设置为特定的地址,比如只针对内网等等。
 +
 +<​code>​
 +interface: 192.168.1.1
 +</​code>​
 +
 +如果你只希望特定网段的机器访问 local_unbound,那么就设定 access-control 这个字段。
 +
 +<​code>​
 +access-control:​ 192.168.1.0/​24
 +</​code>​
 +
 +==== 指定 unbound 使用 TCP 还是 UDP 通讯 ====
 +
 +unbound 可以提供 TCP 或者 UDP 类型的查询服务。
 +
 +提供 TCP 方式:
 +<​code>​
 +do-tcp: yes (或者 no)
 +</​code>​
 +
 +提供 UDP 方式:
 +<​code>​
 +do-udp: yes (或者 no)
 +</​code>​
 +
 +同时,也可以指定与上游服务器用 TCP 通讯(默认是 UDP):
 +<​code>​
 +tcp-upstream:​ yes (或者 no)
 +</​code>​
 +
 +==== IPv4 还是 IPv6 ====
 +
 +<​code>​
 +do-ipv4: yes (或者 no)
 +do-ipv6: yes (或者 no)
 +</​code>​
 +
 +==== 修改 /​var/​unbound/​forward.conf 以设定上游 DNS 服务器 ====
 +<​code>​
 +# Generated by local-unbound-setup
 +forward-zone:​
 +        name: "​."​
 +        forward-addr:​ 8.8.8.8
 +        forward-addr:​ 8.8.4.4
 +</​code>​
 +
 +这个配置文件一目了然。你可以选择自己喜欢的 DNS 服务器地址填到这里。
 +
 +**上游 DNS 服务器设置不是必须的。如果不设置上游 DNS 服务器,unbound自动运行与递归模式,直接通过13台根 DNS 服务器递归查询,以利于减少 DNS 污染。**
 +==== 修改配置以后别忘了重新启动 local_unbound 服务 ====
 +
 +<​code>​
 +# service local_unbound restart
 +</​code>​
 +
 +===== 解析本地域名 ======
 +
 +unbound 也可以用来解析本地域名。比如你在局域网内有一台邮件服务器位于 10.0.0.6,希望通过域名 mail.home.lan 来访问,只需要在 unbound.conf 里面增加如下几条就可以正反双向解析了。
 +
 +<​code>​
 +private-domain:​ "​home.lan"​
 +local-zone: "​home.lan."​ static
 +local-data: "​mail.home.lan. IN A 10.0.0.6"​
 +local-data-ptr:​ "​10.0.0.6 mail.home.lan"​
 +
 +include: /​var/​unbound/​forward.conf ​  # 确保这一行在最后
 +</​code>​
 +
 +可用命令#​ unbound-checkconf unbound.conf 检查文件是否书写正确。
 +
 +然后重启 local_unbound:
 +<​code>​
 +# service local_unbound restart
 +</​code>​
 +
 +最后说一句,[[http://​www.freebsd.org/​cgi/​man.cgi?​query=service&​apropos=0&​sektion=0&​manpath=FreeBSD+10-current&​arch=default&​format=html|service(8)]] 这个命令很赞。
/data/vhosts/wiki-data/pages/doc/d/dns_local_unbound.txt · 最后更改: 2016/03/13 16:31 由 Siroh