NLnet实验室名称服务器守护程序(NSD)是权威的DNS名称服务器(只负责解析域名)。它被开发用于在速度,可靠性,稳定性和安全性非常重要的环境中的操作。
NSD拥有纯粹的设计理念,优先考虑原始性能。这意味着,如果您每秒处理数十万甚至数百万个查询,则NSD是世界领先的实现。这使得名称服务器非常适合顶级域实现,DNS根服务器以及需要快速和优化的权威名称服务器的任何人。当前,三台DNS根服务器和许多顶级域注册表使用NSD作为其服务器实现的一部分。
据说开源代码托管平台Github就是在用NSD和Unbound。
NSD有两款程序,一款是NSD是权威服务器,只负责域名解析,另一款是Unbound只负责验证,递归,缓存解析器,
,可以参考:https://www.nlnetlabs.nl/documentation/unbound/unbound.conf/ 来设置 local-zone 。注意Unbound并不能直接设置域名的zone文件,其实unbound也是也可以设置 local-zone 来实现域名的DNS解析,不推荐,
一般情况下:Unbound在外围,负责 解析/递归/缓存
NSD权威域名服务器中设置的域名记录,怎么理解呢?就是用户查询域名的A记录,实际上是请求的Unbound服务器,然后Unbound在请求NSD权威域名服务器,这点和反代很像。
目前本站DNS解析由两台Powerdns和一台NSD共同完成并实现 DDOS攻击秒级切换至高防服务器 。
NSD官网:https://www.nlnetlabs.nl/projects/nsd/about/
更多参考:
基于运营商的分布式DNS搭建
自建DNS权威服务器全过程(多域名解析)
利用powerdns自建DNS服务器
Centos7安装NSD和Unbound主从DNS解析多域名
一、安装部署NSD
###安装EPEL源
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
###安装nsd软件
yum install nsd
###生成nsd所需的密钥文件
nsd-control-setup
二、编辑NSD配置文件 vi /etc/nsd/nsd.conf
server:
ip-address: 1.1.1.1 #DNS服务器外网IP
do-ip4: yes #监听ipv4
port: 53 #端口
username: nsd #使用nsd用户运行
zonesdir: "/etc/nsd" #配置文件目录
logfile: "/var/log/nsd.log" #日志文件
pidfile: "/run/nsd/nsd.pid" #进程pid文件
remote-control:
control-enable: yes #运行管理主机控制,这点和bind有点相似
control-interface: 127.0.0.1 #运行管理主机IP
control-port: 8952 #管理端口
server-key-file: "/etc/nsd/nsd_server.key" #一系列密钥文件:nsd-control-setup 生成的
server-cert-file: "/etc/nsd/nsd_server.pem"
control-key-file: "/etc/nsd/nsd_control.key"
control-cert-file: "/etc/nsd/nsd_control.pem"
zone:
name: "toydns.com" #域名zone文件,这点和bind也很像,bind也需要zone文件
zonefile: "toydns.com.zone"
zone:
name: "kaifashuo.com"
zonefile: "kaifashuo.com.zone"
三、配置域名的 toydns.com.zone / kaifashuo.com.zone
的zone文件,zone文件的作用就是记录域名的 A/AAAA/MX/TXT
记录
###toydns.com.zone 文件
[root@ns3 nsd]# cat toydns.com.zone
$ORIGIN toydns.com.
$TTL 1800
@ IN SOA toydns.com. admin.toydns.com. (
2019092301 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
1800 ; ttl
)
; Name servers
IN NS ns1.toydns.com.
; A records for name servers
ns1 IN A 1.1.1.1
###kaifashuo.com.zone 文件
[root@ns3 nsd]# cat kaifashuo.com.zone
$ORIGIN kaifashuo.com.
$TTL 1800
@ IN SOA kaifashuo.com. admin.kaifashuo.com. (
2019092301 ; serial number
3600 ; refresh
900 ; retry
1209600 ; expire
1800 ; ttl
)
; Name servers
IN NS ns1.toydns.com.
; A records for name servers
ns1 IN A 1.1.1.1
; Additional A records
@ IN A 2.2.2.2
www IN A 3.3.3.3
四、开放防火墙53端口
firewall-cmd --zone=public --add-service=dns --permanent
or
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --reload
四、使用dig命令验证,dig命令需要安装bind-utils软件,命令: yum install bind-utils -y
[root@ns3 nsd]# dig -qt=a kaifashuo.com @1.1.1.1 (注意:这里是你的外网IP地址,并不是127.0.0.1,因为我们在nsd.conf配置中监听的外网IP地址)
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -qt=a kaifashuo.com @37.228.150.60
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 16013
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;t=a. IN A
;; AUTHORITY SECTION:
. 86375 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2019092900 1800 900 604800 86400
;; Query time: 18 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Sun Sep 29 09:48:26 CST 2019
;; MSG SIZE rcvd: 107
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65460
;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 3, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;kaifashuo.com. IN A
;; ANSWER SECTION:
kaifashuo.com. 1800 IN A 2.2.2.2
;; AUTHORITY SECTION:
kaifashuo.com. 1800 IN NS ns1.toydns.com.
还没有任何评论,你来说两句吧