本文共 5646 字,大约阅读时间需要 18 分钟。
域名系统(Domain Name System, DNS)是互联网的核心应用层协议之一, 它用于查询域名对应的IP地址.在使用域名访问任何网络资源时都需要先进行域名解析。DNS (Domain Name Server) 域名解析服务,他可以完成域名与IP地址的互换,可以通过IP地址解析到域名,也可以通过域名解析到IP地址,IP地址是平面结构,且不容易记住,DNS是层次化的结构,便于记忆。
4.1 递归查询
DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。在一个递归查询中,服务器要么返回客户请求的信息的答案,要么返回一个指出该信息不存在的错误消息,DNS服务器不会尝试联系别的服务器以获取信息4.2 迭代查询DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止。注意:正反向解析是两个不同的名称空间,是两棵不同的解析树,因此,也不是同一个解析库当用户向网络指定的DNS服务器发起一个域名请求时,通常情况下会有本地由此DNS服务器向上级的DNS服务器发送迭代查询请求;如果该DNS服务器没有要查询的信息,则会进一步向上级DNS服务器发送迭代查询请求,直到获得准确的查询结果为止。
BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
操作步骤如下:6.1 环境准备[root@DNS-servre ~]# cat /etc/redhat-release #查看系统版本[root@DNS-servre ~]# uname -r #查看内核版本[root@DNS-servre ~]# systemctl stop ebtables firewalld #关闭ebtables firewall防火墙[root@DNS-servre ~]# systemctl disable ebtables firewalld #重启不启动ebtables firewall防火墙[root@DNS-servre ~]# vim /etc/sysconfig/selinux 设置selinux 状态为disabled[root@DNS-servre ~]# setenforce 0 # 临时将selinux设置为disabled[root@DNS-servre ~]# getenforce #检测selinux是否关闭[root@DNS-servre ~]# ifconfig ens33 | awk -F '[ :]+' 'NR==2{print $3}' #查看IP地址[root@DNS-servre ~]# hostname #查看主机名6.2 安装bind软件[root@DNS-servre ~]# yum -y install bind6.3 修改主配置文件在Linux系统中,bind服务程序的名称为named。首先需要在/etc目录中找到该服务程序的主配置文件,然后把第13行和第19行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。这两个地方一定要修改准确。[root@DNS-servre ~]# vim /etc/named.conf6.4 修改解释配置文件bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数正向解析参数反向解析参数编辑vim /etc/named.rfc1912.zones这个配置文件。设置正向解析和反向解析的文件存放位置。[root@DNS-servre ~]# vim /etc/named.rfc1912.zones6.5 修改DNS正向解析文件[root@DNS-servre ~]# cp -a /var/named/named.localhost /var/named/vancen.com.zone #拷贝正向解析文件模板[root@dns-server ~]#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反向解析文件[root@DNS-servre ~]# cp -a /var/named/named.loopback /var/named/192.168.1.arpa #拷贝反向解析文件模板[root@DNS-servre ~]# 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服务[root@DNS-servre ~]# systemctl start named #重启named服务[root@DNS-servre ~]# systemctl enable named #下次重启启动named服务[root@DNS-servre ~]# systemctl status named #查看named服务状态Active (running)正在运行状态6.8 修改网卡DNS解析条目[root@dns-server ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens336.9 重启网卡服务[root@dns-server ~]# systemctl restart network #重启网卡服务[root@dns-server ~]# systemctl status network #查看网卡服务状态6.10 测试DNS解析[root@DNS-servre ~]# nslookup作为重要的互联网基础设施服务,保证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.zoneszone "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服务程序[root@DNS-servre ~]# systemctl restart named[root@DNS-servre ~]# systemctl status named第2步:在从服务器中填写主服务器的IP地址与要抓取的区域信息,然后重启服务。注意此时的服务类型应该是slave(从),而不再是master(主)。masters参数后面应该为主服务器的IP地址,而且file参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。[root@DNS-slave ~]# vim /etc/named.rfc1912.zoneszone "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服务[root@DNS-slave ~]# systemctl restart named[root@DNS-slave ~]# systemctl status named 第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修改从DNS服务器的DNS地址[root@DNS-slave ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33重启network服务[root@DNS-slave ~]# systemctl restart network[root@DNS-slave ~]# systemctl status network测试DNS解析[root@DNS-slave ~]# nslookup转载于:https://blog.51cto.com/10802692/2163521