Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148198
  • 博文数量: 50
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 485
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-22 09:19
个人简介

FreeBSD,Postfix,SendMail

文章分类

全部博文(50)

文章存档

2015年(50)

我的朋友

分类: BSD

2015-01-01 20:20:44

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) 这个命令很赞。
阅读(1752) | 评论(0) | 转发(0) |
0

上一篇:FreeBSD On ZFS

下一篇:Squid 推荐书籍

给主人留下些什么吧!~~