DNS服务器全面解析--转
引用地址:http://pangge.blog.51cto.com/6013757/1273087
基础认知篇
DNS服务的概述
DNS是Domain Name System 的缩写,即域名系统。DNS服务主要功能是将域名转换为相应的IP地址,提供DNS服务的系统就是DNS服务器。形如它能够把www.baidu.com这样的域名转换为61.135.169.125这样的IP地址;没有DNS,浏览baidu.com这个网站时,就必须用61.135.169.125这么难记的数字来访问。
DNS服务器可以分为3种,即主域名服务器(Master DNS)、辅助域名服务器(Slave DNS)、缓存服务器。
uMaster DNS:本身提供DNS 服务,并且本身含有区域数据文件。
uSlave DNS:和Master一起提供DNS服务,当Master服务器上的配置信息修改的时候,会同步更新到Slave服务器上
u缓存服务器:没有自己的区域数据文件,只是帮助客户端向外部DNS请求查询,然后将查询的结果保存到它的缓存中。
在linux系统下DNS服务的功能是通过bind软件实现的,几乎每个linux发行版都自带了这个DNS服务软件。下面将具体讲述DNS服务的安装、配置和使用。
服务器搭建篇
第一部分:主DNS服务的搭建实现(包含知识点阐述)
环境介绍:CentOS6.4-x86_64
bind版本:bind 9.8.2-0.17.rc1.el6
一.安装bind软件:
CentOS系统下安装bind时,一般都需要同时安装bind-utils、bind-chroot、ypbind、bind-libs和caching-nameserver几个支持bind的软件包。
注:bind-chroot:安装上这个包之后让named进程有限的活动在/var/named/chroot/中防止黑客攻击导致服务器的崩溃。这里就不安装了,因为安装之后除了路径改变之后其他均不变。所以为了更好的熟悉过程就暂时不装了。
上面的几个软件包都可以从系统光盘中查找,可以通过指向yum源进行安装:
[root@localhost ~]#yum install bind
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
查看安装软件生成的配置文件 [root@localhost ~] # rpm -qc bind /etc/logrotate .d /named /etc/named .conf #主配置文件 /etc/named .iscdlv.key /etc/named .rfc1912.zones #事先定义好的区域文件 /etc/named .root.key #实现事务签名的密钥文件 /etc/rndc .conf /etc/rndc .key /etc/sysconfig/named /var/named/named .ca /var/named/named .empty /var/named/named .localhost /var/named/named .loopback |
二.配置DNS服务
l 准备工作:
dig(域信息搜索器)命令是个用于询问 DNS 域名服务器的灵活的工具。他执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为DNS 问题的故障诊断,因为他灵活性好、易用、输出清楚。虽然通常情况下 dig 使用命令行参数,但他也能够按批处理模式从文档读取搜索请求。不同于早期版本,dig 的 BIND9 实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试 /etc/resolv.conf 中列举的任何服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行 NS 查询。
dig命令格式:
dig –t 资源记录类型名称@server-ip |
dig –x IP @server-ip 反向解析 |
dig –t axfr zone 验证完全区域传送 |
dig –t ixfr zone 验证增量区域传输(通常需要指定序列号) |
l 配置工作:
主配置文件:named.conf,主要作用是定义区域,定义各区域的全局配置,定义视图,定义日志,注意每个完整语句都要使用分号结尾,否则视为语法错误。
bind安装完毕之后,主程序目录默认为/var/named。
1).named.conf文件详解
1
2
3
4
5
6
7
8
|
[root@localhost ~] # vim /etc/named.conf // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind * /sample/ for example named configuration files. 在named.conf配置文件中主要使用” // ”进行注释信息,还可以使用/*、*/将多行注释 |
1
2
3
4
5
6
7
8
9
|
options { listen-on port 53 { 127.0.0.1; }; #由于这里监听的地址是本机所以启动之后只会本机当服务器端本机当客户端进行通信;所以要改成外部地址或注释不要。 listen-on-v6 port 53 { ::1; }; #这里是IPV6的监听地址也可注释 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 { localhost; }; #DNS定义完成之后允许谁来访问,这里定义的为只允许本地查询,所以可以注释不要。 #这是定义全局选项的,定义之后对所有区域都生效哦。 |
1
2
3
4
5
6
|
logging { channel default_debug { file "data/named.run" ; severity dynamic; }; #定义日志选项的 |
1
2
3
4
5
|
zone "." IN { type hint; file "named.ca" ; }; #定义区域文件的 |
1
2
3
|
include "/etc/named.rfc1912.zones" ; include "/etc/named.root.key" ; #包含其他文件,意思就是可以将这些文件读取进来 |
2).定义本地区域文件解析
首先更改/etc/named.rfc1912.zones主区域配置文件,在文件尾部新增下面一段内容:
1
2
3
4
5
|
zone "magedu.com" IN { type master; file "magedu.com.zone" ; #定义的是相对路径 allow-update { none; }; }; |
上面这段设置是用zone关键字来定义的一个正向区域,对应的域名为magedu.com。在这里type类型有三种,他们分别为master、slave、hint,含义如下:
master:表示定义的主域名服务器
slave:表示定义的是辅助域名服务器
hint:表示是互联网中的根域名服务器
file用来指定存放DNS记录的文件(一般都是区域名称.zone),allow-update定义是否允许客户主机或服务器自行更新DNS记录,上面指定的这个正向区域不允许更新DNS记录。
1
2
3
4
5
|
zone "18.16.172.in-addr.arpa" IN { type master; file "172.16.18.zone" ; }; #这段设置是定义一个IP为172.16.18.*的反向区域 |
3).定义区域数据文件:
[root@localhost ~]# cd /var/named/ #切换到区域文件存放目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@localhost named] # vim magedu.com.zone #编辑正向区域文件 $TTL 86400 #一天的时间秒钟计算,看你的需求你需要多少写多少 @ IN SOA dns.magedu.com. admin.magedu.com. ( 2013081401 2H 10M 7D 6H ) IN NS dns #若不写全会自动同步名称,若不写全不能以”.”结尾 IN MX 10 mail dns IN A 172.16.18.20 mail IN A 172.16.18.2 www IN A 172.16.18.6 www IN A 172.16.18.7 #若一个主机名两个地址可以实现“负载均衡“ ftp IN CNAME www |
下面我们分析一下我们已经设定好的magedu.com正向区域数据文件的格式和含义:
可以看出,区域数据文件的内容很简单。
第一行是一个TTL设定,定义区域数据文件里面的各项记录的宏,缺少此行不影响使用,但是会出现警告信息。
第二行是一个SOA记录的设定,“@“代表相应的域名,也就是在/etc/named.rfc1912.zones,如在这里表示magedu.com,IN表示后面的数据使用的是Internet标准。SOA表示目前区域授权开始。每一个区域数据文件只能有一个SOA,不能重复,并且必须是所负责的zone中第一个”记录“。在SOA后面分别指定这个区域的授权主机名称和管理者的邮箱。
注:授权主机名和管理员信箱后面都要有一个”.”。由于”@”在区域数据文件中有其他含义,因此管理员邮箱地址中用”.”代替“@“符号。
接下来包含在括弧内的5组数字是作为服务器同步信息而设置的,含义如下:
第一段表示配置文件的修改版本,格式是年月日加上修改的次数,每次修改这个配置文件时都应该修改这个数值,因为当DNS进行信息同步时,会比较这个数值的值。如果这个数值比自身的数值大,就进行更新,否则忽略更新。(这个设置很重要,如果修改区域数据后没有更新该值,那么所做的更改就不会同步到其他DNS服务器)
第二段表示用来设定DNS服务器进行同步的间隔时间又称刷新时间。只通知给本区域解析库文件中定义NS记录的所有主机;
第三段表示同步更新失败之后,在进行重试的间隔时间。
第四段表示同步更新失败之后,多长时间清除对应的记录,又称过期时间
第五段表示否定的TTL值
接下来是对域名解析的具体设置,第1列表示不同的主机域名,但是省略了后面的域信息(若为空白表示与上面域名相同)。例如:”www”其实是www.magedu.com等。“IN“后面的指令含义说明如下:
NS:用来定义这个主机是个域名服务器,是个区域名称
MX:定义邮件服务器,这里需要定义优先级的哦!这里定义的交换级别为10
A:定义了一个A记录,即域名到IP的记录
CNAME:定义了域名的别名
[root@localhostnamed]# cp magedu.com.zone 172.16.18.zone #定义反向区域文件
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@localhost named] # vim 172.16.18.zone #编辑反向区域文件 $TTL 86400 @ IN SOA dns.magedu.com. admin.magedu.com. ( 2013081401 2H 10M 7D 6H ) IN NS dns.magedu.com. #这里必须写全,不然会默认成dns.18.16.172 20 IN PTR dns.magedu.com. 2 IN PTR mail.magedu.com. 6 IN PTR www.magedu.com. 7 IN PTR www.magedu.com. |
分析:可以看出,反向区域文件基本结构和正向区域数据文件基本完全相同,只不过这里多出了一个PTR选项。PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息。最后四行的第一列表示是主机的IP地址,只不过省略了网络地址部分,系统会自动补全,如20对应的是172.16.18.20.
至此,DNS文件配置部分已经基本配置完成,从过程可以看出DNS配置文件对格式的要求非常严格。因此,在以后的配置中要格外的小心。
4).定义区域文件的权限关系:
1
2
3
4
5
6
7
8
9
10
11
|
[root@localhost named] # ls -l total 36 -rw-r--r-- 1 root root 470 Jul 28 13:56 172.16.18.zone drwxrwx--- 2 named named 4096 Jul 28 10:51 data drwxrwx--- 2 named named 4096 Jul 28 13:52 dynamic -rw-r--r-- 1 root root 504 Jul 28 13:56 magedu.com.zone -rw-r----- 1 root named 1892 Feb 18 2008 named.ca -rw-r----- 1 root named 152 Dec 15 2009 named.empty -rw-r----- 1 root named 152 Jun 21 2007 named.localhost -rw-r----- 1 root named 168 Dec 15 2009 named.loopback drwxrwx--- 2 named named 4096 Feb 22 11:10 slaves |
在这里我们通过编辑创建的magedu.com.zone文件,然后将该文件的权限属组更改成系统默认设定权限,这个授权很重要,要不然DNS无法正常工作。
1
2
3
4
|
[root@localhost named] # chmod 640 magedu.com.zone [root@localhost named] # chmod 640 172.16.18.zone [root@localhost named] # chown :named magedu.com.zone [root@localhost named] # chown :named 172.16.18.zone |
这里的named属组属主都是创建DNS时系统默认创建的。
5).检查区域文件语法错误与否:
1
2
3
4
5
6
7
8
|
[root@localhost named] # named-checkconf #检查主配置文件语法,无信息输出说明配置成功 [root@localhost named] # named-checkzone "magedu.com" /var/named/magedu.com.zone #检查zone语法错误与否 zone magedu.com /IN : loaded serial 2013081401 OK [root@localhost named] # named-checkzone "18.16.172.in-addr.arpa" /var/named/172.16.18.zone zone 18.16.172. in -addr.arpa /IN : loaded serial 2013081401 OK |
三.测试DNS配置
在对DNS文件的所有配置完成后,需要重启服务,以使配置生效。由于我们这里还未启动过服务所以执行如下命令启动DNS服务:
1
2
3
|
[root@localhost etc] # service named start #启动服务 Generating /etc/rndc .key: [ OK ] #也许读取速度会很慢,稍等! Starting named: [ OK ] |
建议:若之前启动过服务,配置完成之后想重新启动新数据,建议不要使用restart重启,因为这样可能导致网络服务断掉,所以要使用reload重新载入信息。
1
2
|
[root@localhost named] # service named reload Reloading named: [ OK ] |
下面我们使用dig命令对DNS正向区域解析情况进行测试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@localhost named] # dig -t A www.magedu.com @172.16.18.20 #解析A记录 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.magedu.com @172.16.18.20 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 44158 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.magedu.com. IN A ;; ANSWER SECTION: www.magedu.com. 86400 IN A 172.16.18.6 www.magedu.com. 86400 IN A 172.16.18.7 ;; AUTHORITY SECTION: magedu.com. 86400 IN NS dns.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 86400 IN A 172.16.18.20 ;; Query time : 1 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 14:31:54 2013 ;; MSG SIZE rcvd: 98 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost named] # dig -t NS magedu.com @172.16.18.20 #解析NS记录 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t NS magedu.com @172.16.18.20 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 41920 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; QUESTION SECTION: ;magedu.com. IN NS ;; ANSWER SECTION: magedu.com. 86400 IN NS dns.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 86400 IN A 172.16.18.20 ;; Query time : 1 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 14:39:00 2013 ;; MSG SIZE rcvd: 62 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
root@localhost named] # dig -t SOA magedu.com @172.16.18.20 #解析SOA记录 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t SOA magedu.com @172.16.18.20 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 60898 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;magedu.com. IN SOA ;; ANSWER SECTION: magedu.com. 86400 IN SOA dns.magedu.com. admin.magedu.com. 2013081401 7200 600 604800 21600 #这里全部以秒为单位进行显示 ;; AUTHORITY SECTION: magedu.com. 86400 IN NS dns.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 86400 IN A 172.16.18.20 ;; Query time : 1 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 14:44:34 2013 ;; MSG SIZE rcvd: 104 |
下面我们使用dig命令对DNS反向区域解析情况进行测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@localhost named] # dig -x 172.16.18.20 #反向区域解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -x 172.16.18.20 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 13525 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;20.18.16.172. in -addr.arpa. IN PTR ;; ANSWER SECTION: 20.18.16.172. in -addr.arpa. 86400 IN PTR dns.magedu.com. ;; AUTHORITY SECTION: 18.16.172. in -addr.arpa. 86400 IN NS dns.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 86400 IN A 172.16.18.20 ;; Query time : 1 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 15:56:49 2013 ;; MSG SIZE rcvd: 101 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@localhost named] # dig -t axfr 18.16.172.in-addr.arpa #反向完全区域解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t axfr 18.16.172. in -addr.arpa ;; global options: +cmd 18.16.172. in -addr.arpa. 86400 IN SOA dns.magedu.com. admin.magedu.com. 2013081401 7200 600 604800 21600 18.16.172. in -addr.arpa. 86400 IN NS dns.magedu.com. 2.18.16.172. in -addr.arpa. 86400 IN PTR mail.magedu.com. 20.18.16.172. in -addr.arpa. 86400 IN PTR dns.magedu.com. 6.18.16.172. in -addr.arpa. 86400 IN PTR www.magedu.com. 7.18.16.172. in -addr.arpa. 86400 IN PTR www.magedu.com. 18.16.172. in -addr.arpa. 86400 IN SOA dns.magedu.com. admin.magedu.com. 2013081401 7200 600 604800 21600 ;; Query time : 5 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 16:02:04 2013 ;; XFR size: 7 records (messages 1, bytes 220) |
从上面的输出信息可以看出,DNS都可以正确解析,说明我们的配置没有问题,DNS服务器已经正常工作了。
小拓展:如何不用指向本机就能做本地解析??
#直接将DNS指向本机即可
1
2
3
4
|
[root@localhost named]# vim /etc/resolv.conf # Generated by NetworkManager nameserver 172.16 . 18.20 #直接将DNS指向本机即可 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost named] # dig -t axfr magedu.com #正向完全区域解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t axfr magedu.com ;; global options: +cmd magedu.com. 86400 IN SOA dns.magedu.com. admin.magedu.com. 2013081401 7200 600 604800 21600 magedu.com. 86400 IN NS dns.magedu.com. magedu.com. 86400 IN MX 10 mail.magedu.com. dns.magedu.com. 86400 IN A 172.16.18.20 ftp .magedu.com. 86400 IN CNAME www.magedu.com. mail.magedu.com. 86400 IN A 172.16.18.2 www.magedu.com. 86400 IN A 172.16.18.6 www.magedu.com. 86400 IN A 172.16.18.7 magedu.com. 86400 IN SOA dns.magedu.com. admin.magedu.com. 2013081401 7200 600 604800 21600 ;; Query time : 1 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 15:00:08 2013 ;; XFR size: 9 records (messages 1, bytes 231) |
第二部分:创建从DNS服务器(主从同步实现)
说明:如果有多台DNS服务器,必须为每个DNS服务器建立NS记录,否则主DNS将无法向其发送通知.
从服务器IP地址:172.16.18.1
u正向区域从服务器创建过程:
1、安装Bind软件(同上,不再演示)
2、设置配置文件
1
2
3
4
5
|
[root@stu18 ~] #vim /etc/named.conf 注释掉options段中如下选项 //listen-onport 53 { 127.0.0.1; }; //listen-on-v6port 53 { ::1; }; //allow-query { localhost; }; |
3、编辑区域配置文件
1
2
3
4
5
6
|
[root@stu18 ~] # vim /etc/named.rfc1912.zones #添加如下: zone "magedu.com" IN { type slave; file "slaves/magedu.com.zone" ; masters {172.16.18.20;}; }; |
4、检查配置文件语法错误与否
1
|
[root@stu18 ~] # named-checkconf |
5、切换之主服务器,给此服务器添加一个NS记录
1
2
3
4
5
6
|
[root@localhost ~] # vim /var/named/magedu.com.zone 2013081402 #添加完成后记得将配置文件版本号改动一下哦!! IN NS ns2 #添加NS记录 IN MX 10 mail mail IN A 172.16.18.2 ns2 IN A 172.16.18.1 #添加A记录 |
6、检查主服务器上解析文件语法错误与否:
1
2
3
|
[root@localhost ~]# named-checkzone "magedu.com" / var /named/magedu.com.zone zone magedu.com/IN: loaded serial 2013081401 OK |
7、将主服务器上的数据同步一下
1
2
|
[root@localhost named] # service named reload Reloading named: [ OK ] |
8、检测NS记录是否同步完成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@localhost named] # dig -t NS magedu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t NS magedu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 64614 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; QUESTION SECTION: ;magedu.com. IN NS ;; ANSWER SECTION: magedu.com. 86400 IN NS dns.magedu.com. magedu.com. 86400 IN NS ns2.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 86400 IN A 172.16.18.20 ns2.magedu.com. 86400 IN A 172.16.18.1 ;; Query time : 2 msec ;; SERVER: 172.16.18.20 #53(172.16.18.20) ;; WHEN: Sun Jul 28 17:09:09 2013 ;; MSG SIZE rcvd: 96 |
9、切换至从服务器,启动服务
1
2
3
|
[root@stu18 ~]# service named start Generating /etc/rndc.key: [ OK ] Starting named: [ OK ] |
10、查看数据文件是否已同步
1
2
3
|
[root@stu18 ~] # cd /var/named/slaves/ [root@stu18 slaves] # ls magedu.com.zone #自动同步自动创建指定名称 |
11、查看数据解析情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[root@stu18 slaves] # dig -t A www.magedu.com #解析A记录 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.magedu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 6485 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.magedu.com. IN A ;; ANSWER SECTION: www.magedu.com. 86400 IN A 172.16.18.6 www.magedu.com. 86400 IN A 172.16.18.7 ;; AUTHORITY SECTION: magedu.com. 86400 IN NS ns2.magedu.com. magedu.com. 86400 IN NS dns.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 86400 IN A 172.16.18.20 ns2.magedu.com. 86400 IN A 172.16.18.1 ;; Query time : 1 msec ;; SERVER: 172.16.18.1 #53(172.16.18.1) ;; WHEN: Sun Aug 11 17:46:16 2013 ;; MSG SIZE rcvd: 132 |
u反向区域从服务器创建:
说明:创建过程与正向基本相同。
1)编辑区域配置文件
1
2
3
4
5
6
|
[root@stu18 ~] # vim /etc/named.rfc1912.zones 添加如下: zone "18.16.172.in-addr.arpa" IN { type slave; file "slaves/172.16.18.zone" ; masters {172.16.18.20;}; }; |
保存配置过程,之后不要立即重启哦!!
下面的过程就不重复进行了,相信你的能力和我一样完全可以胜任这一切!!
总结:当主从DNS服务器联通之后,改动主服务器上的数据后,重新载入配置文件会将数据立即同步到从服务器上(这里笔者也不再演示了)。谨记:改动解析文件后一定将配置文件版本号更改一下!!
拓展:关于DNS安全的防护
当我们创建完成之后任何一个外界服务器都可以到我们的主服务器上进行区域传送这样会导致我们的网络结构丢失,因此我们不能让外部服务器同步,只允许从服务器同步;我们该怎么做到呢??
使用allow-transfer {IP;} 只允许谁(IP)传送。任何人不允许传送使用{none;}
例如:定义只允许172.16.18.1进行传送
1
2
3
4
5
6
|
[root@localhost ~]# vim /etc/named.rfc1912.zones zone "magedu.com" IN { type master; file "magedu.com.zone" ; allow-transfer { 172.16 . 100.17 ;}; #相当于定义一个白名单 }; |
第三部分:DNS子域授权(优化部分)
DNS本来的数据结构就是一个层级结构,犹如一个倒立的树状结构,由一点出发,一层层的向下分成了多个分支,而这些分支就是其上级域的子域,其上级域就是相对的父域,子域是从父域中划出来的一个域,子域中的DNS服务器负责这个子域中的地址解析,从而减轻了父域中DNS服务器的压力,这不仅提高了解析服务的效率,同样也提高了解析服务的稳定性,此部分我们就是学习如何给一个域划分出一个子域,并让这个子域中的DNS服务器能够进行子域中的域名解析服务,这个过程也叫做子域授权。
正向子域授权实现方式:
主父服务器:172.16.18.20
从服务器:172.16.18.1
子域服务器:172.16.251.144
首先设置子域的地址名称
1
2
3
4
|
[root@localhost] # vim /var/named/magedu.com.zone #添加如下 dep1 IN NS dns.dep1 dns.dep1 IN A 172.16.251.144 #注:记得更改版本号!! |
然后将数据再同步一下
1
2
|
[root@localhost named] # rndc reload server reload successful |
最后建立子域服务器:
1、安装bind并启动服务
1
2
|
安装过程详见其上... [root@station144 ~]# service named start |
2、编辑主配置文件
1
2
3
4
5
|
[root@stu18 ~] # vim /etc/named.conf 注释掉options段中如下选项: //listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; }; //allow-query { localhost; }; |
3、更改区域文件
1
2
3
4
5
|
[root@station144 named] # vim /etc/named.rfc1912.zones zone "dep1.magedu.com" IN { type master; file "dep1.magedu.com.zone" }; |
4、定义区域数据文件
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@station144 named] # vim dep1.magedu.com.zone $TTL 1200 @ IN SOA dns.dep1.magedu.com. admin.dep1.magedu.com. ( 2013081401 1H 10M 3D 2H ) IN NS dns IN MX 10 mail dns IN A 172.16.251.144 mail IN A 172.16.251.145 www IN A 172.16.251.145 |
5、更改区域数据文件的权限属组
1
2
|
[root@station144 named] # chown:named dep1.magedu.com.zone [root@station144 named] # chmod 640dep1.magedu.com.zone |
6、检查语法错误与否
1
2
3
4
|
[root@station144 named] # named-checkconf [root@station144 named] # named-checkzone "dep1.magedu.com" dep1.magedu.com.zone zone dep1.magedu.com /IN : loaded serial 2013081401 OK |
7、重新启动服务,同步数据
1
|
[root@station144 named] # rndc reload |
8、测试解析(本机解析)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@station144 named] # dig -t A www.dep1.magedu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.dep1.magedu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 42286 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.dep1.magedu.com. IN A ;; ANSWER SECTION: www.dep1.magedu.com. 1200 IN A 172.16.251.145 ;; AUTHORITY SECTION: 1、 dep1.magedu.com. 1200 IN NS dns.dep1.magedu.com. ;; ADDITIONAL SECTION: dns.dep1.magedu.com. 1200 IN A 172.16.251.144 ;; Query time : 1 msec ;; SERVER: 172.16.251.144 #53(172.16.251.144) ;; WHEN: Tue Aug 13 00:00:15 2013 ;; MSG SIZE rcvd: 87 |
9、切换至父服务器测试解析
1
2
|
[root@localhost named] # dig -t NS www.dep1.magedu.com 结果显示:可以正常解析 父域可以直接查找子域文件进行解析 |
10、子域解析父服务器
1
2
|
[root@station144~]# dig -t A www.magedu.com 结果显示:无法正常进行解析 不能向上直接解析,只能通过根来解析 |
11、利用转发实现子域解析父域
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
[root@station144 named] # vim /etc/named.rfc1912.zones #添加下列文本 zone "magedu.com" IN { type forward; forward only; forwarders {172.16.18.20;}; }; 保存 [root@station144 named] # rndc reconfig 重新配置信息 结果: [root@station144 named] # dig -t A www.magedu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.magedu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 62754 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.magedu.com. IN A ;; ANSWER SECTION: www.magedu.com. 85622 IN A 172.16.18.6 www.magedu.com. 85622 IN A 172.16.18.7 ;; AUTHORITY SECTION: magedu.com. 85622 IN NS dns.magedu.com. magedu.com. 85622 IN NS ns2.magedu.com. ;; ADDITIONAL SECTION: dns.magedu.com. 85622 IN A 172.16.18.20 ns2.magedu.com. 85622 IN A 172.16.18.1 ;; Query time : 1 msec ;; SERVER: 172.16.251.144 #53(172.16.251.144) ;; WHEN: Tue Aug 13 01:31:17 2013 ;; MSG SIZE rcvd: 132 |
12、利用子域解析网络其他主机
1
2
3
4
5
|
[root@station144 named] # vim /etc/named.conf 在options(全局变量)中定义访问网关地址即可。 recursion yes ; forward only; forwarders { 172.16.0.1; }; 保存 [root@station144 named] # rndc reconfig 重新配置信息 |
注:这里如果解析www.magedu.com会通过172.16.18.20进行解析,说明在/etc/named.rfc1912.zones中定义的内容优先级别高。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root@station144 named] # dig -t A www.google.com.hk #解析谷歌进行测试 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.google.com.hk ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 49163 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;www.google.com.hk. IN A ;; ANSWER SECTION: www.google.com.hk. 300 IN CNAME www-wide.l.google.com. www-wide.l.google.com. 300 IN A 74.125.128.199 ;; AUTHORITY SECTION: google.com. 172800 IN NS ns2.google.com. google.com. 172800 IN NS NS1.google.com. google.com. 172800 IN NS ns3.google.com. google.com. 172800 IN NS ns4.google.com. ;; ADDITIONAL SECTION: ns2.google.com. 172800 IN A 216.239.34.10 NS1.google.com. 345600 IN A 216.239.32.10 ns3.google.com. 172800 IN A 216.239.36.10 ns4.google.com. 172800 IN A 216.239.38.10 ;; Query time : 1196 msec ;; SERVER: 172.16.251.144 #53(172.16.251.144) ;; WHEN: Tue Aug 13 01:44:40 2013 ;; MSG SIZE rcvd: 222 |
反向子域授权方式
反向区域子域授权方式和正向过程基本类似这里也不过多阐述,如有疑问请留言,笔者将以最大的努力帮看客们排忧解难。。。
DNS服务器全面解析--转的更多相关文章
- AD域内DNS服务器如何解析公网域名
原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...
- DNS服务器的解析
---恢复内容开始--- DNS前言: 英特网作为域名和IP地址相互映射的一个分不式数据库,能够使用户更方便的访问互联网.而不用去记住能够被机器直接读取的IP地址的过程叫做域名解析(或主机名解析).D ...
- dns服务器正向解析配置
DNS服务器的配置 一.安装软件 1.安装bind.bind-utils软件,起服务,设置开机启动. bind-utils软件用于提供nslookup功能,用于测试dns是否搭建成功,能够正常解析. ...
- Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析
从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP ...
- Service系统服务(四):搭建单区域DNS服务器、特殊DNS解析、配置DNS子域授权、搭建并测试缓存DNS
一.搭建单区域DNS服务器 目标: 本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站.测试阶段主要提供以下正向记录: svr7.tedu.cn ---> ...
- DNS服务器(一)正向解析
一.DNS简介 在日常生活中人们习惯便用域名访问服务器,但机器间互相只认IP地址,域名与1P地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工 ...
- DNS原理及其解析过程 精彩剖析
本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...
- 烂泥:dnsmasq搭建简易DNS服务器
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介绍一个比较简单的DNS服务器dnsmasq.这款软件,已经被我成功使用到公 ...
- 配置DNS服务器
一.配置基本的DNS 服务器(包含正向解析和反向解析)域名:abc.com服务器IP:10.1.2.11 1. 编辑主配置文件/etc/named.conf---------------------- ...
随机推荐
- HW7.15
public class Solution { public static void main(String[] args) { double[][] set1 = {{1, 1}, {2, 2}, ...
- mysql系统表加trigger和对特定的库禁用 DDL 语句
给 mysql 系统表加上 trigger 1 Reply 默认情况下,mysql 是不能给系统表,例如 mysql.user 加上触发器的.会提示 ERROR 1465 (HY000): Trigg ...
- leveldb
[LevelDB] LevelDB is a fast key-value storage library that provides an ordered mapping from string k ...
- Pylint
[Pylint] pylint的调用命令: pylint [options] module_or_package 使用 Pylint 对一个模块 module.py 进行代码检查: 1. 进入这个模块 ...
- Altium Designer 6三维元件库建模教程
一.AD6.9 PCB编辑环境下如何使用STEP模型的方法. 在PCB 封装库中添加对应的3D模型,然后选择update pcb 即可 方法:在PCB library 页面,点击place -- 3d ...
- oracle学习 一 (持续更新中)
首先你需要创建一个表空间,然后,再创建一个用户名,用户名要给他指定一个表空间,并且给这个用户赋予权限, DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有 ...
- hdoj 5375 Gray Code
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 编码规则:tmp = XOR(gr[i],gr[i-1]); 算是找规律的题目吧,考虑?前后字符 ...
- hdoj 5288 OO’s Sequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5288 //*************头文件区************* #include<ios ...
- magiczoom 插件去版本(放大镜效果)
在放大镜效果中代码中有 Please upgrade to full version of Magic Zoom Plus™ 去除办法: 在 magiczoom 去版本 magiczoomplus.j ...
- Spring REST实践之Spring Boot
Spring Boot基本描述 可以利用http://start.spring.io网站的进行Spring Boot的初始化构建.这个初始化构建器允许你输入工程基本信息.挑选工程支持的功能,最后会生成 ...