Centos 7.5 部署DNS

1 DNS简介

域名系统(Domain Name System, DNS)是互联网的核心应用层协议之一, 它用于查询域名对应的IP地址.在使用域名访问任何网络资源时都需要先进行域名解析。DNS (Domain Name Server) 域名解析服务,他可以完成域名与IP地址的互换,可以通过IP地址解析到域名,也可以通过域名解析到IP地址,IP地址是平面结构,且不容易记住,DNS是层次化的结构,便于记忆。

2 DNS域名

Centos 7.5 部署DNS
• 层次型的命名机制
– FQDN(完全合格域名)=计算机名+主DNS后缀
– Fully Qualified Domain Name
– 例: mp3.baidu.com
andy.ent.sina.com
news.163.com

3 DNS树状结构图

Centos 7.5 部署DNS

4 DNS查询类型

4.1 递归查询
DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。
在一个递归查询中,服务器要么返回客户请求的信息的答案,要么返回一个指出该信息不存在的错误消息,DNS服务器不会尝试联系别的服务器以获取信息
Centos 7.5 部署DNS
4.2 迭代查询
DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止。
Centos 7.5 部署DNS
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树,因此,也不是同一个解析库

5 DNS解析的工作原理

当用户向网络指定的DNS服务器发起一个域名请求时,通常情况下会有本地由此DNS服务器向上级的DNS服务器发送迭代查询请求;如果该DNS服务器没有要查询的信息,则会进一步向上级DNS服务器发送迭代查询请求,直到获得准确的查询结果为止。

Centos 7.5 部署DNS

6 DNS之BIND解析配置

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
操作步骤如下:
6.1 环境准备
[root@DNS-servre ~]# cat /etc/redhat-release #查看系统版本
Centos 7.5 部署DNS
[root@DNS-servre ~]# uname -r #查看内核版本
Centos 7.5 部署DNS
[root@DNS-servre ~]# systemctl stop ebtables firewalld #关闭ebtables firewall防火墙
[root@DNS-servre ~]# systemctl disable ebtables firewalld #重启不启动ebtables firewall防火墙
Centos 7.5 部署DNS
[root@DNS-servre ~]# vim /etc/sysconfig/selinux 设置selinux 状态为disabled
Centos 7.5 部署DNS
[root@DNS-servre ~]# setenforce 0 # 临时将selinux设置为disabled
[root@DNS-servre ~]# getenforce #检测selinux是否关闭
Centos 7.5 部署DNS
[root@DNS-servre ~]# ifconfig ens33 | awk -F '[ :]+' 'NR==2{print $3}' #查看IP地址
Centos 7.5 部署DNS
[root@DNS-servre ~]# hostname #查看主机名
Centos 7.5 部署DNS
6.2 安装bind软件
[root@DNS-servre ~]# yum -y install bind
Centos 7.5 部署DNS
6.3 修改主配置文件
在Linux系统中,bind服务程序的名称为named。首先需要在/etc目录中找到该服务程序的主配置文件,然后把第13行和第19行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。这两个地方一定要修改准确。
[root@DNS-servre ~]# vim /etc/named.conf
Centos 7.5 部署DNS
6.4 修改解释配置文件
bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数
Centos 7.5 部署DNS
正向解析参数
Centos 7.5 部署DNS
反向解析参数
编辑vim /etc/named.rfc1912.zones这个配置文件。设置正向解析和反向解析的文件存放位置。
[root@DNS-servre ~]# vim /etc/named.rfc1912.zones
Centos 7.5 部署DNS
6.5 修改DNS正向解析文件
[root@DNS-servre ~]# cp -a /var/named/named.localhost /var/named/vancen.com.zone #拷贝正向解析文件模板
Centos 7.5 部署DNS
[root@dns-server ~]#vim /var/named/vancen.com.zone #编辑正向解析配置文件
Centos 7.5 部署DNS
各选项解释:
$TTL 1D #生存周期为1天
@ IN SOA vancen.com. root. vancen.com. (
#授权信息开始: #DNS区域的地址 #域名管理员的邮箱(不要用@符号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H;)minimum #无效解析记录的缓存时间
NS DNS-server. vancen.com. #域名服务器记录
DNS-server IN A 192.168.1.242 #地址记录(DNS-server.vancen.com.)
FTP IN A 192.168.1.112 #地址记录(ftp.vancen.com.)
www IN A 192.168.1.242 #地址记录(www.vancen.com.)
oa IN A 192.168.1.224 #地址记录(oa.vancen.com.)
blog IN A 192.168.1.202 #地址记录(blog.vancen.com.)
6.6 修改DNS反向解析文件
[root@DNS-servre ~]# cp -a /var/named/named.loopback /var/named/192.168.1.arpa #拷贝反向解析文件模板
Centos 7.5 部署DNS
[root@DNS-servre ~]# vim /var/named/192.168.1.arpa #编辑反向解析文件
Centos 7.5 部署DNS
各选项解释:
$TTL 1D #生存周期为1天
@ IN SOA vancen.com. root. vancen.com. (
#授权信息开始: #DNS区域的地址 #域名管理员的邮箱(不要用@符号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H;)minimum #无效解析记录的缓存时间
NS DNS-server. vancen.com. #域名服务器记录
DNS-server IN A 192.168.1.242 #地址记录(ns. vancen.com.)
242 PTR ns.vancen.com. #PTR为指针记录,仅用于反向解析中。
242 PTR www.vancen.com. #PTR为指针记录,仅用于反向解析中。
200 PTR blog.vancen.com. #PTR为指针记录,仅用于反向解析中。
112 PTR ftp.vancen.com. #PTR为指针记录,仅用于反向解析中。
224 PTR oa. vancen.com. #PTR为指针记录,仅用于反向解析中。
6.7 重启DNS服务
[root@DNS-servre ~]# systemctl start named #重启named服务
[root@DNS-servre ~]# systemctl enable named #下次重启启动named服务
[root@DNS-servre ~]# systemctl status named #查看named服务状态
Centos 7.5 部署DNS
Active (running)正在运行状态
6.8 修改网卡DNS解析条目
[root@dns-server ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
Centos 7.5 部署DNS
6.9 重启网卡服务
[root@dns-server ~]# systemctl restart network #重启网卡服务
[root@dns-server ~]# systemctl status network #查看网卡服务状态
Centos 7.5 部署DNS
6.10 测试DNS解析
[root@DNS-servre ~]# nslookup
Centos 7.5 部署DNS

7 部署从服务器

作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速且不间断的域名查询服务。在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。
在本实验中,主服务器与从服务器分别使用的操作系统和IP地址如下:
主机名称 操作系统 IP地址
主服务器 Centos 7.5 192.168.1.242
从服务器 Centos 7.5 192.168.1.202
第1步:在主服务器的区域配置文件中允许该从服务器的更新请求修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序。
[root@dns-server ~]# vim /etc/named.rfc1912.zones
zone "vancen.com" IN {
type master;
file "vancen.com.zone";
allow-update { 192.168.1.202; };
};

zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.arpa";
allow-update { 192.168.1.202; };
};

Centos 7.5 部署DNS
重启主服务器的DNS服务程序
[root@DNS-servre ~]# systemctl restart named
[root@DNS-servre ~]# systemctl status named
Centos 7.5 部署DNS
第2步:在从服务器中填写主服务器的IP地址与要抓取的区域信息,然后重启服务。
注意此时的服务类型应该是slave(从),而不再是master(主)。masters参数后面应该为主服务器的IP地址,而且file参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。
[root@DNS-slave ~]# vim /etc/named.rfc1912.zones
zone "vancen.com" IN {
type slave;
masters { 192.168.1.242; };
file "slaves/vancen.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
masters {192.168.1.242; };
file "slaves/192.168.1.arpa";
};
Centos 7.5 部署DNS
重启DNS服务
[root@DNS-slave ~]# systemctl restart named
[root@DNS-slave ~]# systemctl status named
Centos 7.5 部署DNS
第3步:检验解析结果。当从服务器的DNS服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。随后修改从服务器的网络参数,把DNS地址参数修改成192.168.1.202,这样即可使用从服务器自身提供的DNS域名解析服务。最后就可以使用nslookup命令顺利看到解析结果了。
[root@DNS-slave ~]# cd /var/named/slaves/
[root@DNS-slave slaves]# ls
192.168.1.arpa vancen.com.zone
Centos 7.5 部署DNS
修改从DNS服务器的DNS地址
[root@DNS-slave ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
Centos 7.5 部署DNS
重启network服务
[root@DNS-slave ~]# systemctl restart network
[root@DNS-slave ~]# systemctl status network
Centos 7.5 部署DNS
测试DNS解析
[root@DNS-slave ~]# nslookup

Centos 7.5 部署DNS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章