Skip to content

DNS域名解析服服务器搭建

bind

大型公司需要自建复杂的域名解析系统,存储解析记录,包括了设置根域、顶级域、二级域等区域功能

DNS的域名解析都是UDP/53,主从之间数据传输默认使用TCP/53

==Bind==是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley (伯克利)分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows 平台。

1、安装bind

yum install bind bind-utils -y

bind软件是dns服务器的主软件 bind-utils 是提供dns解析的命令,如dig,这个命令

2、关闭selinux

关闭后可以使用gentenforce查看是否是Disabled

3、关闭防火墙或放行对应端口

4、创建DNS文件

①先操作主配置文件,然后修改子配置文件(二级域名的配置文件)

vi /etc/named.conf

options {
	listen-on port 53 { 127.0.0.1; any; }; # 允许dns服务端,运行在0.0.0.0:53 上,any==>0.0.0.0
	allow-query     { localhost;any; }; # 还差一个允许客户端的递归查询
	...
}

可以netstat -tunlp查看53端口是否被占用

②查看主配置文件导入了子配置文件:域配置文件

/etc/named.conf文件的59行左右提示了:include "/etc/named.rfc1912.zones";

创建域名的域配置文件:vi /etc/named.rfc1912.zones

# 定义二级域名,以及二级域名的配置文件
zone "xxxx.cn" IN {
    type master;
    file "xxxx.cn.zone";
    allow-update { none; };
};

③创建二级域名的 主机记录配置文件

需要以主机记录的格式去创建,且必须存放在 /var/named/目录下才行

# cp -p 保持原文件的属性,拷贝模板文件改成自己的文件,该文件必须位于/var/named目录下
cp -p /var/named/named.localhost /var/named/laoliulinux.cn.zone


vi /var/named/laoliulinux.cn.zone
$TTL 1D				# 定义一个TTL默认值为1天,下面数据直接引用此值
@	IN SOA	@ rname.invalid. ( # @ 代表二级域名本身xxxx.cn
					0	; serial # 主机记录的序列号
					1D	; refresh # 更新间隔
					1H	; retry # 更新失败后重试间隔
					1W	; expire # 过期时常
					3H )	; minimum # 否定记录保持时常
	NS	@
	A	172.16.1.61
	AAAA	::1

④添加A记录

资源类型: A (IPv4)、AAAA (IPv6):定义FQON的IP

​ NS:定 义DNS服务器的FQON

​ SOA:起始授权 (每个zone首先要定文此值)

​ MX:定义邮件记录,有优先级概念(0-99),值越小优先级越高。

​ CNAME:定 义别名

​ PTR:反向记录

vi /var/named/laoliulinux.cn.zone
$TTL 1D				# 定义一个TTL默认值为1天,下面数据直接引用此值
@	IN SOA	@ rname.invalid. ( # @ 代表二级域名本身xxxx.cn
					0	; serial # 主机记录的序列号
					1D	; refresh # 更新间隔
					1H	; retry # 更新失败后重试间隔
					1W	; expire # 过期时常
					3H )	; minimum # 否定记录保持时常
	NS	@
	A	xxx.xxx.xxx.xxx
	AAAA	::1

# 主机记录	记录类型	记录值
www   A   172.16.1.61
linux A   172.16.1.61

⑤启动bind程序

systemctl start named

# 检查named程序状态
netstat -tunlp |grep named
ps -ef|grep named

⑥在需要解析的主机上设置DNS解析地址即可

Linux:在/etc/resolv.conf设置

nameserver xxx.xxx.xxx.xxx

可以使用nslookup 域名查看对应的解析信息

修改过后需要重启服务:

systemctl start named

dnsmasq

轻量级域名系统,提供域名、ip的对应解析关系,需要提供上游权威dns服务器地址

这是一个轻量级,很容易就实现dns服务器的一个软件,部署简单,不像bind那么复杂,重量级

很多软件,大型软件的集群,内部需要部署dns环境,都是通过dnsmasq

1、安装dnsmasq

yum install dnsmasq -y

2、创建dnsmasq配置文件,设置上游dns服务器地址,设置本地域名解析记录vi /etc/dnsmasq.conf

修改如下参数即可:

1.指定上游dns服务器地址,指定一个配置文件即可,默认去/etc/resolv.conf去找,避免修改后无法找到上游DNS服务器,可以指定另一个配置文件

2.指定运行地址是内网环境

3.需要指定你想要添加的本地 域名解析记录,默认 /etc/hosts文件

# 定义dnsmasq从哪里获取上游DNS服务器的地址,默认是从/etc/resolv.conf获取
resolv-file=/etc/resolv.dnsmasq.conf
#定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址
listen-address=xxx.xxx.xxx.xxx
#本地域名配置文件(不支持泛域名),添加内部需要解析的地址和域名(重新加载即可生效)
#默认读取/etc/hosts
strict-order
addn-hosts=/etc/hosts.dnsmasq.conf
# #记录dns查询日志服务器
# 1og-queries
# 1og-facility=/var/1og/dnsmasq.log
#包含其他文件夹下所有配置文件
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

获取非空白和非注释行grep -Ev '^($|#)' 文件名

3、创建对应的数据文件

echo "nameserver 223.5.5.5" > /etc/resolv.dnsmasq.conf # 上游DNS服务器地址,与上面的配置位置对应

cat >/etc/hosts.dnsmasq.conf <<EOF
# 地址 				域名
xxx.xxx.xxx.xxx xxxx.cn
...
EOF

4、启动dnsmasq服务

systemctl start dnsmasq

5、测试该dnsmasq是否可用,你还得主动的指定本地dns配置文件的记录,使用这个dnsmasq的服务端地址(172.16.1.61)