红帽7 DNS服务

DNS 域名解析服务

这是一项用于管理和解析域名与 IP 地址对应关系的技术,简单来说,就是能够接受用户输入的域名或 IP 地址,然后自动查找与之匹配(或者说具有映射关系)的 IP 地址或域名,即将域名解析为 IP 地址(正向解析),或将 IP 地址解析为域名(反向解析)。这样一来,我们只需要在浏览器中输入域名就能打开想要访问的网站了。DNS 域名解析技术的正向解析也是我们最常使用的一种工作模式。

最常见的域名后缀有.com(商业组织)、.org(非营利组织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等。DNS 技术作为互联网基础设施中重要的一环,为了为网民提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,提供了下面三种类型的服务器

主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系。

从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。

缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。

简单来说,主服务器是用于管理域名和 IP 地址对应关系的真正服务器,从服务器帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询域名,从而减轻主服务器的负载压力。DNS 域名解析服务采用分布式的数据结构来存放海量的“区域数据”信息,在执行用户发起的域名查询请求时,具有递归查询迭代查询两种方式。所谓递归查询,是指 DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果 DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。而迭代查询则是指,DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台 DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,这样依次反复,直到返回查询结果。

最高级、最权威的根 DNS 服务器总共有 13 台,分布在世界各地,其管理单位、具体的地理位置,以及 IP 地址如表所示

名称 管理单位 地理位置 IP地址
A INTERNIC.NET 美国-弗吉尼亚州 198.41.0.4
B 美国信息科学研究所 美国-加利弗尼亚州 128.9.0.107
C PSINet公司 美国-弗吉尼亚州 192.33.4.12
D 马里兰大学 美国-马里兰州 128.8.10.90
E 美国航空航天管理局 美国加利弗尼亚州 192.203.230.10
F 因特网软件联盟 美国加利弗尼亚州 192.5.5.241
G 美国国防部网络信息中心 美国弗吉尼亚州 192.112.36.4
H 美国陆军研究所 美国-马里兰州 128.63.2.53
I Autonomica公司 瑞典-斯德哥尔摩 192.36.148.17
J VeriSign公司 美国-弗吉尼亚州 192.58.128.30
K RIPE NCC 英国-伦敦 193.0.14.129
L IANA 美国-弗吉尼亚州 199.7.83.42
M WIDE Project 日本-东京 202.12.27.33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

安装 bind 服务程序

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。

[root@localhost Desktop]# yum install bind-chroot
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分输出信息………………
Installing:
bind-chroot x86_64 32:9.9.4-14.el7 rhel 81 k
Installing for dependencies:
bind x86_64 32:9.9.4-14.el7 rhel 1.8 M
Transaction Summary
===============================================================================
Install 1 Package (+1 Dependent package)
Total download size: 1.8 M
Installed size: 4.3 M
Is this ok [y/d/N]: y
Downloading packages:
-------------------------------------------------------------------------------
Total 28 MB/s | 1.8 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 32:bind-9.9.4-14.el7.x86_64 1/2
Installing : 32:bind-chroot-9.9.4-14.el7.x86_64 2/2
Verifying : 32:bind-9.9.4-14.el7.x86_64 1/2
Verifying : 32:bind-chroot-9.9.4-14.el7.x86_64 2/2
Installed:
bind-chroot.x86_64 32:9.9.4-14.el7
Dependency Installed:
bind.x86_64 32:9.9.4-14.el7
Complete!

在 bind 服务程序中有下面这三个比较关键的文件

主配置文件(/etc/named.conf):只有 58 行,而且在去除注释信息和空行之后,实际有效的参数仅有 30 行左右,这些参数用来定义 bind 服务程序的运行。

区域配置文件(/etc/named.rfc1912.zones):用来保存域名和 IP 地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应 IP 地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。

数据配置文件目录(/var/named):该目录用来保存域名和 IP 地址真实对应关系的数据配置文

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

[root@localhost Desktop]# vim /etc/named.conf 
...........省略..............
 8 //
  9 
 10 options {
 11         listen-on port 53 { any; };
 12         listen-on-v6 port 53 { ::1; };
 13         directory       "/var/named";
 14         dump-file       "/var/named/data/cache_dump.db";
 15         statistics-file "/var/named/data/named_stats.txt";
 16         memstatistics-file "/var/named/data/named_mem_stats.txt";
 17         allow-query     { any; };
 18 
 19         /* 
 20          - If you are building an AUTHORITATIVE DNS server, do NOT enable re    cursion.
 21          - If you are building a RECURSIVE (caching) DNS server, you need to     enable 
............省略..............

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

 

 正向解析

 在 DNS 域名解析服务中,正向解析是指根据域名(主机名)查找到对应的 IP 地址。也就是说,当用户输入了一个域名后,bind 服务程序会自动进行查找,并将匹配到的 IP 地址返

给用户。这也是最常用的 DNS 工作模式。

 第一步:编辑区域配置文件。该文件中默认已经有了一些无关紧要的解析参数,旨在让用户有一个参考。我们可以将下面的参数添加到区域配置文件的最下面,当然,也可以将该
文件中的原有信息全部清空,而只保留自己的域名解析信息。

[root@localhost Desktop]# vim /etc/named.rfc1912.zones 
zone "test.com" IN {
type master;
file "test.com.zone";
allow-update {none;};
};

第二步:编辑数据配置文件。我们可以从/var/named 目录中复制一份正向解析的模板文件(named.localhost),然后把域名和 IP 地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a 参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让 bind服务程序顺利读取文件内容

[root@localhost Desktop]# cd /var/named/
[root@localhost named]# ls -al named.localhost 
-rw-r-----. 1 root named 152 Jun 21  2007 named.localhost
[root@localhost named]# cp -a named.localhost test.com.zone
[root@localhost named]# systemctl restart named
[root@localhost named]# vim test.com.zone 
$TTL 1D
@       IN SOA  test.com. root.test.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.test.com.
ns      IN A    192.168.10.10
www     IN A    192.168.10.10
$TTL 1D #生存周期为1天        
@ IN SOA test.com. root.test.com. (  
  #授权信息开始: #DNS区域的地址 #域名管理员的邮箱(不要用@符号)  
        0;serial #更新序列号
        1D;refresh #更新时间
        1H;retry #重试延时
        1W;expire #失效时间
        3H;)minimum #无效解析记录的缓存时间
  NS ns.test.com. #域名服务器记录
ns IN A 192.168.10.10 #地址记录(ns.test.com.)
  IN MX 10 mail.test.com. #邮箱交换记录
mail IN A 192.168.10.10 #地址记录(mail.test.com.)
www IN A 192.168.10.10 #地址记录(www.test.com.)
bbs IN A 192.168.10.20 #地址记录(bbs.test.com.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第三步:检验解析结果。为了检验解析结果,一定要先把 Linux 系统网卡中的 DNS 地址参数修改成本机 IP 地址,这样就可以使用由本机提供的 DNS 查询服务了。nslookup 命令用于检测能否从 DNS 服务器中查询到域名与 IP 地址的解析记录,进而更准确地检验 DNS 服务器是否已经能够为用户提供服务

[root@localhost named]# systemctl restart network
[root@localhost named]# nslookup 
> www.test.com
Server:        192.168.10.10
Address:    192.168.10.10#53

Name:    www.test.com
Address: 192.168.10.10

 

反向解析

在 DNS 域名解析服务中,反向解析的作用是将用户提交的 IP 地址解析为对应的域名信息

第一步:编辑区域配置文件。反向解析是把 IP 地址解析成域名格式,因此在定义 zone(区域)时应该要把 IP 地址反写,比如原来是 192.168.10.0,反写后应该就是 10.168.192,而且只需写出 IP 地址的网络位即可。

[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "test.com" IN {
type master;
file "test.com.zone";
allow-update {none;};
};
zone "10.168.192.in-addr.arpa" IN{
type master;
file "192.168.10.arpa";
};

第二步:编辑数据配置文件。首先从/var/named 目录中复制一份反向解析的模板文件(named.loopback),然后把下面的参数填写到文件中。其中,IP 地址仅需要写主机位。

$TTL 1D        
@ IN SOA test.com. root.test.com. (
        0;serial
        1D;refresh
        1H;retry
        1W;expire
        3H);minimum
  NS ns.test.com.  
ns A 192.168.10.10  
10 PTR ns.test.com. #PTR为指针记录,仅用于反向解析中。
10 PTR mail.test.com.  
10 PTR www.test.com.  
20 PTR bbs.test.com.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[root@localhost named]# cp -a named.loopback 192.168.10.arpa
[root@localhost named]# vim 192.168.10.arpa
$TTL 1D
@       IN SOA  test.com. root.test.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.test.com.
ns      IN A    192.168.10.10
10      PTR     www.test.com.
[root@localhost named]# systemctl restart named

 第三步:检验解析结果。由于上面已经把系统网卡中的 DNS 地址参数修改成了本机 IP 地址,因此可以直接使用 nslookup 命令来检验解析结果。

[root@localhost named]# nslookup 
> 192.168.10.10
Server:        192.168.10.10
Address:    192.168.10.10#53

10.10.168.192.in-addr.arpa    name = www.test.com.

 

 部署从服务器

 在 DNS 域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率

 主服务器与从服务器分别使用的操作系统与 IP 地址信息

主机名称 操作系统 IP地址
主服务器 RHEL 7 192.168.10.10
从服务器 RHEL 7 192.168.10.20

 

 

 

 

第一步:在主服务器的区域配置文件中允许该从服务器的更新请求,即修改 allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的 DNS 服务程序。

[root@localhost Desktop]# vim /etc/named.rfc1912.zones 
zone "test.com" IN { type master; file "test.com.zone"; allow-update { 192.168.10.20; }; }; zone "10.168.192.in-addr.arpa" IN { type master; file "192.168.10.arpa"; allow-update { 192.168.10.20; }; };
[root@localhost Desktop]# systemctl restart named

第二步:在从服务器中填写主服务器的 IP 地址与要抓取的区域信息,然后重启服务。注意此时的服务类型应该是 slave(从),而不再是 master(主)。masters 参数后面应该为主服务器的 IP 地址,而且 file 参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。(主配置文件的11和17行同上配置)

[root@localhost Desktop]# vim /etc/named.rfc1912.zones 
zone "test.com" IN {
type slave;
master { 192.168.10.10; };
file "slaves/test.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/192.168.10.arpa";
};

第三步:检验解析结果。当从服务器的 DNS 服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。随后修改从服务器的网络参数,把 DNS 地址参数修改成 192.168.10.20,这样即可使用从服务器自身提供的 DNS 域名解析服务。最后就可以使用 nslookup 命令顺利看到解析结果了

[root@localhost slaves]# ls
192.168.10.arpa test.com.zo
[root@localhost slaves]# nslookup 
> www.test.com
Server: 192.168.10.20
Address: 192.168.10.20#53
Name: www.test.com
Address: 192.168.10.10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-11-11 16:09  烛爻  阅读(522)  评论(0编辑  收藏  举报