前言:
整个Internet大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件服务等服务器都使用了域名形式的地址,如www.baidu.com、mail.163.com等。很显然这种地址形式都比使用119.75.217.109、202.108.33.74的IP地址形式更加直观,更容易被用户记住。但是这数以亿计的域名是怎样转换成IP进行连接通信的呢?
DNS域名结构图
DNS域名解析服务
(1)DNS系统的作用
(2)BIND的安装和控制
(3)构建缓存域名服务器
(4)子域
(5)构建主从DNS域名解析服务器
(6)构建智能DNS域名解析服务器
(7)DNS排错
——————————————————————————————————————————————————————————————————
一、DNS系统的作用
1、DNS服务器概述
FQND格式是完整的域名格式,常在域名后面加”.”(根域),如:www.baidu.com.
DNS系统在网络中的作用就是维护这一个地址数据库,其中纪录了各种主机域名;与IP地址
的对应关系,以便为客户程序提供正向或返乡的地址查询服务,即正向解析与反向解析。
(1)正向解析:根据域名查IP地址,是DNS服务常用的基本功能。
(2)反向解析:根据IP查域名,不是很常用,应用于例如反垃圾邮件的验证等
每台DNS服务器都复制管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。
2、DNS服务器的常见分类
根据地址解析的方向不同,DNS区域相应的分为正向区域(包含域名到IP地址的解析纪录)和
反向区域(包含IP地址到域名的解析纪录)。
根据管理的区域地址数据的来源不同,DNS系统可以分为不同的类型:
(1)缓存域名服务器
只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率,但是没有自己控
制的区域数据。构建缓存域名服务器时,必须设置根域名或指定其他DNS服务器作为解析来源。
(2)主域名服务器
维护某一个特定DNS区域的地址数据库,对其中的解析纪录具有自主控制权,是指定
区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所有负责区域的地址数据
文件
(3)从域名服务器
与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询过结果都是一样的。
以上所述主、从服务器的角色,只是针对某一特定的DNS区域来说的。例如,同一台DNS服务器,可以是“.chinaunix.net”区域的主域名服务器,同时也可以是“.cublog.cn”区域的从域名服务器。
3、DNS服务器的查询模式
(1)DNS服务器递归查询过:当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的
高速缓存中查询出结果,反馈给客户机,此过程称为递归查询过,即Client-Server。
(2)DNS服务器迭代查询:当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的
高速缓存中查询发现没有结果,此时该DNS服务器以DNS服务器以DNS客户的身份向其他DNS服务器发送解析请求或向根域名服务器发送请求,此过程陈伟迭代查询,即Server-Server。
——————————————————————————————————————————————————————————————————
二、BIND的安装和控制
1、RPM包的主要作用
bind:提供了域名服务器的主要程序及相关文件
bind-utils:提供了对DNS服务器的测试工具程序,如nslookup、dig等
bind-libs:提供了bind、bind-utils需要使用的库函数
bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot文件夹作为BIND的根目录)以提高安全性。也称为jail(监牢)机制
BIND安装以为,会自动增加一名为named的系统服务
安装示例:
[root@localhost ~]#rpm -qa |grep -w bind
bind-license-9.9.4-37.el7.noarch
bind-libs-lite-9.9.4-37.el7.x86_64
bind-libs-9.9.4-37.el7.x86_64
bind-utils-9.9.4-37.el7.x86_64
bind-chroot-9.9.4-37.el7.x86_64
bind-9.9.4-37.el7.x86_64
[root@localhost ~]#yum install -y bind bind-utils bind-chroot
2、主配置文件/etc/named.conf
[root@localhost ~]#cd /etc/
[root@localhost ~]#vim named.conf
options { #全局配置
listen-on port 53 { 127.0.0.1;localhost; }; #监听端口绑定的IP,这里显示绑定了本机所有IP
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any;}; #允许到本机查询解析纪录的主机,any表示所有主机都可以在本机查询解析纪录
allow-transfer {none;};
recursion yes;
dnssec-enable no;
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN { #区域配置
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
保存退出
[root@localhost ~]#named-checkconf /etc/named.conf #语法检查,/etc/named.conf可写可不写
3、区域数据文件
(1)区域数据文件的作用
用于存放某个DNS区域的地址解析纪录(正向或反向)
[root@localhost ~]#cd /var/named/
[root@localhost named]# ls
chroot data named.ca named.localhost slaves
dynamic named.empty named.loopback
[root@localhost named]# vim /etc/named.rfc1912.zones
zone "zym.com" {
type master; #指明此区域数据的主是com,且一个区域的主只有一个
file "zym.com.zone"; #区域数据文件的文件名
};
[root@localhost named]# vim zym.com.zone #创建一个区域数据文件zym.com.zone
$TTL 1D #正向解析数据的缓存生存周期,1D表示1天
@ 2D IN SOA dns1 admin.zymcom. ( #@表示域名,SOA认证授权(主、从服务器),dns1当前DNS
解析服务器名,admin.zym.com.邮箱地址
000001 #serial序号,手动更改后,需要把版本号数值增大,主从同步看数据变没变,首先看序号 ,
序号是整数数值,不能超过10位,启始数值随便定。
1D #refresh 更新间隔时间,主从同步,隔一段时间就需要同步一次
1H #retry 更新失败再次尝试间隔时间,这里表示1小时
1W #expire 若一直更新失败,那么到1周后放弃从服务器提供解析服务
3H #minimum 客户端请求解析失败缓存时间,在此时间内,服务器不再查询,直接将
之前查询的结果返回给用
)
NS dns1 #NS指明,当前作用域是由dns1提供了DNS服务器,纪录了所有dns服务器
zhang NS dns2 #dns2为dns1指派DNS子域名解析服务器,zym为dns2的域名
www CNAME websrv #www为websrv域名的别名
websrv A 172.18.24.7 #域名为websrv的主机或服务器的IP为172.18.24.7,A指明IP为IPv4类型
dns2 A 172.18.24.26 #dns2服务器的ip地址为172.18.24.6
[root@localhost named]# named-checkzone zym.com /var/named/zym.com.zone #区域数据文件修改后检查更新
zone com.zone/IN: loaded serial 000001
OK
(4)、区域数据配置文件的特殊应用
a、基于域名解析的负载均衡
同一个域名对应到多个IP地址
www A 172.18.24.15
www A 172.18.24.16
www A 172.18.24.17
b、泛域名解析:避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
找不到精确对应的A纪录时,使用“*”进行匹配
* A 172.18.24.18
——————————————————————————————————————————————————————————————————
三、构建缓存域名服务器
缓存域名服务器通常假设在公司的局域网内,主要目的是提高域名接续的速度,减少对互联网的出口流量。
在一个小型企业的内部网络中,可单独建立一台(或集成在网关主机中)缓存域名服务器,为各部门的员工计算机
提供DNS解析服务。
——————————————————————————————————————————————————————————————————
四、子域
子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权
类似根域授权tld:
.com.IN NS ns1.com.
.com.IN NSns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
magedu.com. 在.com的名称服务器上,解析库中添加资源记录
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
glue record:粘合记录,父域授权子域的记录
——————————————————————————————————————————————————————————————————
五、构建主从DNS域名解析服务器
主从域名服务器概述
主域名服务器通常架设在internet环境中,提供某一个域几个域内的主机名与IP地址的查询服务。为了分担域名查询的压力、提供区域数据的备份,有时还会另外架设一台从域名服务器,与主域名服务器同时提供服务。
与主域名解析服务器提供完全相同的DNS解析服务,通常用于DNS服务的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询结果都是一样的。
搭建主从DNS域名解析服务器在我另外一篇博客http://blog.csdn.net/zhangym199312/article/details/78058230里写的很详细,感兴趣的朋友可以去参考指正
——————————————————————————————————————————————————————————————————
六、构建智能DNS域名解析服务器
1、智能DNS域名解析服务器概述
(1)智能DNS是域名服务再业界首创的智能解析服务。能自动判断访问者的IP地址并解析出对应的IP地址,使网通用户会访问到网通服务器,电信用户会访问到电信服务器。
(2)智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择。
(3)比方一个企业的站点三个运营商的带宽都有:电信、网通、移动,同样有三个来自不同运营商网络的访问用户,那电信访问企业网址的时候,智能DNS会自动根据IP判断,再从电信返回给电信用户,其他的也同理。
(4)但也会遇到一个问题,就是三个用户所使用的望楼运营商的DNS同步了解析企业站点所用的智能DNS,不然用户有可能无法访问到企业站点,一般会出现在智能DNS刚生效的时候,这种情况下一般可以请求网络运营商主动同步智能DNS的解析表;或者等待最多72小时,DNS会自动同步。
2、智能DNS服务器拓扑图
——————————————————————————————————————————————————————————————————
七、DNS排错
常见的错误,以及解决方法如下:
#dig A example.com
•; DiG9.9.4-RedHat-9.9.4-14.el7 A example.com
•;; global options: +cmd
•;; Got answer:
•;; HEADER opcode: QUERY, status: NOERROR, id: 30523
•…
•SERVFAIL:Thenameserverencountered a problem while processing the query.
•可使用dig +trace排错,可能是网络和防火墙导致
NXDOMAIN:The queried name does not exist in the zone.
•可能是CNAME对应的A记录不存在导致
REFUSED:The nameserverrefused the client’s DNS request due to policy restrictions.
•可能是DNS策略导致
NOERROR不代表没有问题,也可以是过时的记录
•查看是否为权威记录,flags:aa标记判断
•被删除的记录仍能返回结果,可能是因为*记录存在
•如:*.example.com.INA172.25.254.254
•注意“.”的使用
•避免CNAME指向CNAME记录,可能产生回环
test.example.com. IN CNAME lab.example.com.
lab.example.com. IN CNAME test.example.com.
•正确配置PTR记录,许多服务依赖PTR,如sshd,MTA
•正确配置轮询round-robin记录
总结: