Centos 搭建unbound简单的DNS缓存服务器
一、编译安装
1.安装依赖包
yum -y install gcc openssl-devel expat-devel libevent-devel
2.下载安装包,编译安装 下载地址:https://unbound.net/download.html
./configure --prefix=/usr/local/unbound --with-pthreads --with-libevent --with-ssl
--with-pthreads:支持多线程;
--with-libevent:允许使用大的传出端口范围。
--with-ssl:用于生成秘钥文件
二、配置unbound.conf文件
server:
verbosity: 1
num-threads: 2 #线程数
interface: 127.0.0.1 #监听地址(一般写本机内网ip)
interface: ::0
port: 53 #端口
so-reuseport: yes #为每个线程的传入查询打开专用侦听套接字。可以更均匀地将传入查询分布到线程
cache-min-ttl: 600 #解析最小缓存时间
cache-max-ttl: 43200 #解析最大缓存时间
outgoing-range: 8192
access-control: 10.0.0.0/8 allow #访问控制(允许10段ip访问本机)
access-control: 127.0.0.1/8 allow #允许本机访问
access-control: ::0/0 allow #允许ipv6网段访问
prefetch: yes #消息缓存元素在它们到期之前被预取以保持缓存是最新的
do-ip4: yes
do-ip6: yes
do-udp: yes
do-tcp: yes
so-rcvbuf: 8m
so-sndbuf: 8m
msg-cache-size: 64m #消息缓存的字节数。 默认值为4 MB。
rrset-cache-size: 128m #RRset缓存的字节数。
outgoing-num-tcp: 256 #为每个线程分配的传出TCP缓冲区数
incoming-num-tcp: 1024 #为每个线程分配的传入TCP缓冲区数
#include: "zone.conf" #zone.conf文件内容为解析内容,如local-data: "m.baidu.com A 192.168.10.1",也可以使用下面注释的方式配置解析
# local-data: "m.baidu.com 600 A 192.168.10.1" #其中600为解析缓存时间
#python:
remote-control: #这个区间为unbound控制设置。配置如下内容可以控制unbound服务,利用unbound-control命令对该服务执行开启、关闭、重启等操作。
control-enable: yes
control-interface: 127.0.0.1
control-port: 8953
server-key-file: "/usr/local/unbound/etc/unbound/unbound_server.key"
server-cert-file: "/usr/local/unbound/etc/unbound/unbound_server.pem"
control-key-file: "/usr/local/unbound/etc/unbound/unbound_control.key"
control-cert-file: "/usr/local/unbound/etc/unbound/unbound_control.pem"
forward-zone: #这个区间为转发设置
name:"."
forward-addr:223.5.5.5
forward-addr:119.29.29.29
forward-addr:202.96.134.133
5.启动服务
首先执行./sbin/unbound-checkconf检查配置文件语法,确认无误后进行下一步;
执行/sbin/unbound-control-setup生成秘钥,之后才能使用/sbin/unbound-control命令;
最后执行./sbin/unbound启动服务。
6.测试解析结果
dig m.baidu.com @127.0.0.1
由于bind搭建的dns服务器.解析量过大,路由器维护的nat条目数过大,会导致路由器CPU过高,可以通过搭建unbound(172.29.13.239)来实现dns解析缓存
bind dns搭建
1.yum -y install bind*
2.vim /etc/named.conf
options {
listen-on port 53 { any; }; 让所有的用户监听53端口
listen-on-v6 port 53 { ::1; };
allow-query { any; }; 允许所有人访问
forwarders {
172.29.13.239;
};
include "/etc/named.rfc1912.zones"; 头文件
named-checkconf /etc/named.conf 验证语法
3.vim /etc/named.rfc1912.zones
zone "lihu.com" IN {
type master;
file "lihu.com.zone";
allow-update { none; };
allow-transfer { none; };
};
zone "8.29.172.in-addr.arpa" IN {
type master;
file "172.29.8.zone";
allow-update { none; };
allow-transfer { none; };
};
named-checkconf /etc/named.conf 验证语法
4.vim /var/named/lihu.com.zone (正向解析,注意".")
$TTL 600
@ IN SOA ns.lihu.com. admin.lihu.com. (
2018032701
3H
10M
3D
1D )
IN NS ns
IN MX 10 mail
ns IN A 172.29.8.5
mail IN A 172.29.8.5
5.vim /var/named/172.29.8.zone (反向解析,注意“.”)
$TTL 600
@ IN SOA ns.lihu.com. admin.lihu.com. (
2018032701
3H
10M
3D
1D )
IN NS ns.lihu.com.
5 IN PTR ns.lihu.com.
5 IN PTR mail.lihu.com.
named-checkzone "lihu.com" lihu.com.zone
named-checkzone "8.29.172.in-addr.arpa" 172.29.8.zone 验证zone及配置
service named start