1 DNS简介

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

2 DNS域名

centos设置域名解析hosts centos 域名解析_运维


• 层次型的命名机制

– FQDN(完全合格域名)=计算机名+主DNS后缀

– Fully Qualified Domain Name

– 例: mp3.baidu.com

andy.ent.sina.com

news.163.com

3 DNS树状结构图

centos设置域名解析hosts centos 域名解析_开发工具_02

4 DNS查询类型

4.1 递归查询

DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。

在一个递归查询中,服务器要么返回客户请求的信息的答案,要么返回一个指出该信息不存在的错误消息,DNS服务器不会尝试联系别的服务器以获取信息

centos设置域名解析hosts centos 域名解析_开发工具_03


4.2 迭代查询

DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止。

centos设置域名解析hosts centos 域名解析_DNS_04


注意:正反向解析是两个不同的名称空间,是两棵不同的解析树,因此,也不是同一个解析库

5 DNS解析的工作原理

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

centos设置域名解析hosts centos 域名解析_centos设置域名解析hosts_05

6 DNS之BIND解析配置

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任之重可想而知,因此建议大家在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。

操作步骤如下:

6.1 环境准备

[root@DNS-servre ~]# cat /etc/redhat-release #查看系统版本

centos设置域名解析hosts centos 域名解析_DNS_06


[root@DNS-servre ~]# uname -r #查看内核版本

centos设置域名解析hosts centos 域名解析_开发工具_07


[root@DNS-servre ~]# systemctl stop ebtables firewalld #关闭ebtables firewall防火墙

[root@DNS-servre ~]# systemctl disable ebtables firewalld #重启不启动ebtables firewall防火墙

centos设置域名解析hosts centos 域名解析_centos设置域名解析hosts_08


[root@DNS-servre ~]# vim /etc/sysconfig/selinux 设置selinux 状态为disabled

centos设置域名解析hosts centos 域名解析_awk_09


[root@DNS-servre ~]# setenforce 0 # 临时将selinux设置为disabled

[root@DNS-servre ~]# getenforce #检测selinux是否关闭

centos设置域名解析hosts centos 域名解析_开发工具_10


[root@DNS-servre ~]# ifconfig ens33 | awk -F '[ :]+' 'NR==2{print $3}' #查看IP地址

centos设置域名解析hosts centos 域名解析_运维_11


[root@DNS-servre ~]# hostname #查看主机名

centos设置域名解析hosts centos 域名解析_开发工具_12


6.2 安装bind软件

[root@DNS-servre ~]# yum -y install bind

centos设置域名解析hosts centos 域名解析_awk_13


6.3 修改主配置文件

在Linux系统中,bind服务程序的名称为named。首先需要在/etc目录中找到该服务程序的主配置文件,然后把第13行和第19行的地址均修改为any,分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求。这两个地方一定要修改准确。

[root@DNS-servre ~]# vim /etc/named.conf

centos设置域名解析hosts centos 域名解析_centos设置域名解析hosts_14


6.4 修改解释配置文件

bind服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数

centos设置域名解析hosts centos 域名解析_centos设置域名解析hosts_15


正向解析参数

centos设置域名解析hosts centos 域名解析_开发工具_16


反向解析参数

编辑vim /etc/named.rfc1912.zones这个配置文件。设置正向解析和反向解析的文件存放位置。

[root@DNS-servre ~]# vim /etc/named.rfc1912.zones

centos设置域名解析hosts centos 域名解析_运维_17


6.5 修改DNS正向解析文件

[root@DNS-servre ~]# cp -a /var/named/named.localhost /var/named/vancen.com.zone #拷贝正向解析文件模板

centos设置域名解析hosts centos 域名解析_centos设置域名解析hosts_18


[root@dns-server ~]#vim /var/named/vancen.com.zone #编辑正向解析配置文件

centos设置域名解析hosts centos 域名解析_DNS_19


各选项解释:

$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设置域名解析hosts centos 域名解析_运维_20


[root@DNS-servre ~]# vim /var/named/192.168.1.arpa #编辑反向解析文件

centos设置域名解析hosts centos 域名解析_awk_21


各选项解释:

$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设置域名解析hosts centos 域名解析_awk_22


Active (running)正在运行状态

6.8 修改网卡DNS解析条目

[root@dns-server ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33

centos设置域名解析hosts centos 域名解析_运维_23


6.9 重启网卡服务

[root@dns-server ~]# systemctl restart network #重启网卡服务

[root@dns-server ~]# systemctl status network #查看网卡服务状态

centos设置域名解析hosts centos 域名解析_开发工具_24


6.10 测试DNS解析

[root@DNS-servre ~]# nslookup

centos设置域名解析hosts centos 域名解析_awk_25

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设置域名解析hosts centos 域名解析_awk_26


重启主服务器的DNS服务程序

[root@DNS-servre ~]# systemctl restart named

[root@DNS-servre ~]# systemctl status named

centos设置域名解析hosts centos 域名解析_运维_27


第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设置域名解析hosts centos 域名解析_运维_28


重启DNS服务

[root@DNS-slave ~]# systemctl restart named

[root@DNS-slave ~]# systemctl status named

centos设置域名解析hosts centos 域名解析_awk_29


第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设置域名解析hosts centos 域名解析_DNS_30


修改从DNS服务器的DNS地址

[root@DNS-slave ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

centos设置域名解析hosts centos 域名解析_运维_31


重启network服务

[root@DNS-slave ~]# systemctl restart network

[root@DNS-slave ~]# systemctl status network

centos设置域名解析hosts centos 域名解析_DNS_32


测试DNS解析

[root@DNS-slave ~]# nslookup

centos设置域名解析hosts centos 域名解析_开发工具_33


转载于:https://blog.51cto.com/10802692/2163521