Centos 7.5 部署DNS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 7.5 部署DNS相关的知识,希望对你有一定的参考价值。
1 DNS简介
域名系统(Domain Name System, DNS)是互联网的核心应用层协议之一, 它用于查询域名对应的IP地址.在使用域名访问任何网络资源时都需要先进行域名解析。DNS (Domain Name Server) 域名解析服务,他可以完成域名与IP地址的互换,可以通过IP地址解析到域名,也可以通过域名解析到IP地址,IP地址是平面结构,且不容易记住,DNS是层次化的结构,便于记忆。
2 DNS域名
? 层次型的命名机制
– FQDN(完全合格域名)=计算机名+主DNS后缀
– Fully Qualified Domain Name
– 例: mp3.baidu.com
andy.ent.sina.com
news.163.com
3 DNS树状结构图
4 DNS查询类型
4.1 递归查询
DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。
在一个递归查询中,服务器要么返回客户请求的信息的答案,要么返回一个指出该信息不存在的错误消息,DNS服务器不会尝试联系别的服务器以获取信息
4.2 迭代查询
DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止。
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树,因此,也不是同一个解析库
5 DNS解析的工作原理
当用户向网络指定的DNS服务器发起一个域名请求时,通常情况下会有本地由此DNS服务器向上级的DNS服务器发送迭代查询请求;如果该DNS服务器没有要查询的信息,则会进一步向上级DNS服务器发送迭代查询请求,直到获得准确的查询结果为止。
6 DNS之BIND解析配置
BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
操作步骤如下:
6.1 环境准备
[[email protected] ~]# cat /etc/redhat-release #查看系统版本
[[email protected] ~]# uname -r #查看内核版本
[[email protected] ~]# systemctl stop ebtables firewalld #关闭ebtables firewall防火墙
[[email protected] ~]# systemctl disable ebtables firewalld #重启不启动ebtables firewall防火墙
[[email protected] ~]# vim /etc/sysconfig/selinux 设置selinux 状态为disabled
[[email protected] ~]# setenforce 0 # 临时将selinux设置为disabled
[[email protected] ~]# getenforce #检测selinux是否关闭
[[email protected] ~]# ifconfig ens33 | awk -F ‘[ :]+‘ ‘NR==2{print $3}‘ #查看IP地址
[[email protected] ~]# hostname #查看主机名
6.2 安装bind软件
[[email protected] ~]# yum -y install bind
6.3 修改主配置文件
在Linux系统中,bind服务程序的名称为named。首先需要在/etc目录中找到该服务程序的主配置文件,然后把第13行和第19行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。这两个地方一定要修改准确。
[[email protected] ~]# vim /etc/named.conf
6.4 修改解释配置文件
bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数
正向解析参数
反向解析参数
编辑vim /etc/named.rfc1912.zones这个配置文件。设置正向解析和反向解析的文件存放位置。
[[email protected] ~]# vim /etc/named.rfc1912.zones
6.5 修改DNS正向解析文件
[[email protected] ~]# cp -a /var/named/named.localhost /var/named/vancen.com.zone #拷贝正向解析文件模板
[[email protected] ~]#vim /var/named/vancen.com.zone #编辑正向解析配置文件
各选项解释:
$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反向解析文件
[[email protected] ~]# cp -a /var/named/named.loopback /var/named/192.168.1.arpa #拷贝反向解析文件模板
[[email protected] ~]# vim /var/named/192.168.1.arpa #编辑反向解析文件
各选项解释:
$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服务
[[email protected] ~]# systemctl start named #重启named服务
[[email protected] ~]# systemctl enable named #下次重启启动named服务
[[email protected] ~]# systemctl status named #查看named服务状态
Active (running)正在运行状态
6.8 修改网卡DNS解析条目
[[email protected] ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
6.9 重启网卡服务
[[email protected] ~]# systemctl restart network #重启网卡服务
[[email protected] ~]# systemctl status network #查看网卡服务状态
6.10 测试DNS解析
[[email protected] ~]# nslookup
7 部署从服务器
作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速且不间断的域名查询服务。在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。
在本实验中,主服务器与从服务器分别使用的操作系统和IP地址如下:
主机名称 操作系统 IP地址
主服务器 Centos 7.5 192.168.1.242
从服务器 Centos 7.5 192.168.1.202
第1步:在主服务器的区域配置文件中允许该从服务器的更新请求修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序。
[[email protected] ~]# 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; };
};
重启主服务器的DNS服务程序
[[email protected] ~]# systemctl restart named
[[email protected] ~]# systemctl status named
第2步:在从服务器中填写主服务器的IP地址与要抓取的区域信息,然后重启服务。
注意此时的服务类型应该是slave(从),而不再是master(主)。masters参数后面应该为主服务器的IP地址,而且file参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。
[[email protected] ~]# 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";
};
重启DNS服务
[[email protected] ~]# systemctl restart named
[[email protected] ~]# systemctl status named
第3步:检验解析结果。当从服务器的DNS服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。随后修改从服务器的网络参数,把DNS地址参数修改成192.168.1.202,这样即可使用从服务器自身提供的DNS域名解析服务。最后就可以使用nslookup命令顺利看到解析结果了。
[[email protected] ~]# cd /var/named/slaves/
[[email protected] slaves]# ls
192.168.1.arpa vancen.com.zone
修改从DNS服务器的DNS地址
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启network服务
[[email protected] ~]# systemctl restart network
[[email protected] ~]# systemctl status network
测试DNS解析
[[email protected] ~]# nslookup
以上是关于Centos 7.5 部署DNS的主要内容,如果未能解决你的问题,请参考以下文章