安装

1、安装unbound yum install unbound -y
2、首先生成dnsmasq-china-list加速国内域名解析,到github下载这个仓库:
git clone https://github.com/felixonmars/dnsmasq-china-list.git
3、进入到git clone的仓库,修改 Makefile 文件里面的第一行 SERVER=119.29.29.29,改为你觉得最合适的国内缓存 DNS 服务器,当然用Makefile里默认的114.114.114.114也可以
4、执行make unbound,会在此目录下生成一份accelerated-domains.china.unbound.conf文件,cp这个文件到/etc/unbound目录下
cp dnsmasq-china-list/accelerated-domains.china.unbound.conf /etc/unbound/
5、下载named.cache到/etc/unbound目录下,下载地址如下:ftp://ftp.internic.net/domain/named.cache
6、修改配置文件/etc/unbound/unbound.conf,如下:

num-threads: 2 # 线程数可以修改为物理核心数
interface: 0.0.0.0 # 侦听所有 IPv4 地址
interface: ::0 # 侦听所有 IPv6 地址
so-reuseport: yes # 如果开了多线程,就写 yes
msg-cache-size: 64m # 本机可以设置 4m 或者更小
rrset-cache-size: 128m # 本机可以设置 4m 或者更小
cache-max-ttl: 3600 # 建议设置一个不太大的值...专治各种运营商 DNS 缓存不服
outgoing-num-tcp: 256 # 限制每个线程向上级查询的 TCP 并发数
incoming-num-tcp: 1024 # 限制每个线程接受查询的 TCP 并发数
# 下面这四个不需要解释了吧,不想用那个就写 no
do-ip4: yes
do-ip6: yes
do-udp: yes
do-tcp: yes
val-permissive-mode: yes  #启用此功能将禁用所有DNSSEC安全
tcp-upstream: no # 默认是 no,隧道状态比较稳的话也不需要写 yes。一些情况下强制使用 tcp 连上游的话写 yes
access-control: 0.0.0.0/0 allow # 本机用的话建议设置 127.0.0.0/8 allow,局域网用适当调整
root-hints: "/etc/unbound/named.cache" # 没有的话在 
hide-identity: yes # 不返回对 id.server 和 hostname.bind 的查询。
hide-version: yes # 不返回对 version.server 和 version.bind 的查询。
harden-glue: yes # 建议打开
module-config: "ipsecmod validator iterator" # 禁用 DNSSEC 检查,如果上游不支持 DNSSEC 就关掉。注意这个选项有可能在其他 include 的文件里
unwanted-reply-threshold: 10000000 # 针对各种网络不服,数值为建议值,具体可以自己修改看看效果
prefetch: yes # 蛮好用的,开着吧
minimal-responses: yes # 省带宽,开着吧。本机用可以关掉
include: "/etc/unbound/foreigndns.conf"       #国外的域名走这个加速
forward-zone:
    name: "."
    forward-addr: 119.29.29.29                                            #没有指定的默认走这个

添加本地解析:

[root@dns local.d]# cp -p block-example.com.conf kubernetes.conf
[root@dns local.d]# vim kubernetes.conf 

# entries in this file override toe global DNS
#
# Example blocking email going out to example.com
#
#       local-data: "example.com. 3600 IN MX 5 127.0.0.1"
#       local-data: "example.com. 3600 IN A 127.0.0.1"
#正向解析
local-data: "kubemaster01. IN A 192.168.19.44"
local-data: "kubework01. IN A 192.168.19.45"
local-data: "kubework02. IN A 192.168.19.46"
local-data: "kubework03. IN A 192.168.19.47"

#反向解析
local-data-ptr: "192.168.19.44 kubemaster01"
local-data-ptr: "192.168.19.45 kubework01"
local-data-ptr: "192.168.19.46 kubework02"
local-data-ptr: "192.168.19.47 kubework03"

7、为你的为你的服务器和客户端生成一个self-signed的证书和private key,生成的文件位于/etc/unbound文件夹,执行命令:
unbound-control-setup
8、检查一下配置文件有没有报错:unbound-checkconf
9、没有报错的重启一下unbound服务:systemctl restart unbound.service

附:国外域名列表

文档更新时间: 2020-06-18 15:39   作者:子木