local_unbound本地缓存 DNS 服务设置
注意!本文内容仅适用于 FreeBSD 10。
基础设置
自从 FreeBSD 10 开始,BIND 被弃用。系统默认的 DNS 服务提供者是 unbound。相对于前者,unbound 的设置要更简单一些。本文就是简单介绍如何设置 unbound 作为本地缓存 DNS 服务器。非常简单,步骤如下:
echo 'local_unbound_enable="YES"' >> /etc/rc.conf
service local_unbound start
需要注意的几点
不要让 PPP 修改你的 /etc/resolv.conf
如果使用 PPP 拨号,包括 PPPoE,你的 /etc/ppp/ppp.conf 不能包含如下 dns 有关的代码:
enable dns
如果你的 /etc/ppp/ppp.conf 包含这一行,请注释掉。因为有了这个设置以后,PPP 会自动修改你的 /etc/resolv.conf。那么 local_unbound 的工作就失效了。
修改 unbound 的配置文件以设置监听界面/地址
为了细化 unbound 的配置,可以考虑修改 /var/unbound/unbound.conf 来控制监听的方式:
ee /var/unbound/unbound.conf
# 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
如果将 interface 的值设置为 0.0.0.0,那么 local_unbound 将在所有地址上监听。当然你可以设置为特定的地址,比如只针对内网等等。
interface: 192.168.1.1
如果你只希望特定网段的机器访问 local_unbound,那么就设定 access-control 这个字段。
access-control: 192.168.1.0/24
server:
verbosity: 1
statistics-interval: 60
statistics-cumulative: no
extended-statistics: no
num-threads: 1
interface: 127.0.0.1
interface: 10.1.9.3
outgoing-range: 950
num-queries-per-thread: 500
so-rcvbuf: 1m
so-sndbuf: 1m
edns-buffer-size: 4096
msg-buffer-size: 65552
msg-cache-size: 4m
rrset-cache-size: 4m
key-cache-size: 4m
neg-cache-size: 1m
msg-cache-slabs: 4
rrset-cache-slabs: 4
infra-cache-slabs: 4
key-cache-slabs: 4
cache-min-ttl: 0
cache-max-ttl: 86400
infra-cache-numhosts: 10000
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: no
do-daemonize: yes
access-control: 127.0.0.0/8 allow
access-control: 10.1.9.0/24 allow
chroot: "/var/unbound"
username: "unbound"
directory: "/var/unbound"
pidfile: "/var/run/local_unbound.pid"
auto-trust-anchor-file: "/var/unbound/root.key"
use-syslog: yes
log-time-ascii: yes
log-queries: yes
root-hints: ""
hide-identity: no
hide-version: no
use-caps-for-id: no
do-not-query-localhost: yes
prefetch: yes
prefetch-key: yes
dlv-anchor-file: "/var/unbound/dlv.isc.org.key"
local-zone: "localhost." static
local-data: "localhost. 10800 IN NS localhost."
local-data: "localhost. 10800 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800"
local-data: "localhost. 10800 IN A 127.0.0.1"
local-zone: "127.in-addr.arpa." static
local-data: "127.in-addr.arpa. 10800 IN NS localhost."
local-data: "127.in-addr.arpa. 10800 IN SOA localhost. nobody.invalid. 2 3600 1200 604800 10800"
local-data: "1.0.0.127.in-addr.arpa. 10800 IN PTR localhost."
include: /var/unbound/forward.conf
可用命令# unbound-checkconf 检查文件是否书写正确。
unbound-checkconf /var/unbound/unbound.conf
unbound-checkconf: no errors in /var/unbound/unbound.conf
修改 /var/unbound/forward.conf 以设定上游 DNS 服务器
ee /var/unbound/forward.conf
# Generated by local-unbound-setup
forward-zone:
name: .
forward-addr: 8.8.4.4
forward-addr: 8.8.8.8
forward-addr: 208.67.222.222
forward-addr: 208.67.220.220
这个配置文件一目了然。你可以选择自己喜欢的 DNS 服务器地址填到这里。
修改配置以后别忘了重新启动 local_unbound 服务
service local_unbound restart
解析本地域名
unbound 也可以用来解析本地域名。比如你在局域网内有一台邮件服务器位于 10.0.0.6,希望通过域名 mail.home.lan 来访问,只需要在 unbound.conf 里面增加如下几条就可以正反双向解析了。
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 # 确保这一行在最后
然后重启 local_unbound:
service local_unbound restart
最后说一句,service(8) 这个命令很赞。
阅读(2017) | 评论(0) | 转发(0) |