精解Linux RHEL 6.x DNS 服务器

简介:

         精解Linux  RHEL 6.x  DNS 服务器   

=============================================

DNS的原理

、缓存服务器

DNS的测试工具

、DNS主从服务器

、DNS的转发

、DNS的子域授权

、DNS的acl规则和view视图

、DNS的日志系统的使用

=================================================

DNS的原理

DNS (Domain Name Server) 域名解析服务,他可以完成域名与IP地址的互换,可以通过IP地址解析到域名,也可以通过域名解析到IP地址,IP地址是平面结构,且不容易记住,DNS是层次化的结构,便于记忆。

DNS的层次化

 1)根域:根域位于层次结构的最顶部并用小句点“.”表示全球有十三个根服务器,一个主根服务器,十二个辅助根服务器。

2)顶级域:顶级域是按照组织类别或地理位置来划分的

.gov 政府组织
.com 商业组织
.net 网络中心
.org 非营利性组织
.edu 教育部门
.cn  .uk  .us 国家国别的代码,cn表示中国,uk表示英国,us表示美国

3)二级域:由国际域名组织为互联网中的个人或部门指定和登记的二级域

(如51cto.com,sohu.com)


DNS的查询方式

         迭代查询:本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服   务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地 域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询

         递归查询:主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的份,向其他根域名服务器继续发出查询请求报文会给客户端一个准确的返回结果,无论是成功与否。

231851765.png

步骤1:当客户端在IE输入www.baidu.com,客户端去请求本地域服务器解析,此过程为发  

           起递归查询。

步骤2:本地服务器接到查询请求后,查看区域文件,发现不是自己管制的区域,则发

           送给根域进行解析。此过程为迭代查询。

步骤3:根域服务接收到 请求后,查看区域文件,回复请求的主机,去找.com域服务器。此

           过程是迭代查询。

步骤4:本地域服务器,接收到根域服务器的回复后,去找.com域服务器,请求解析。此过

           程序是迭代查询。

步骤5:.com服务器接收到请求之后,查看自己的区域文件,回复主机去找

           baidu.com域服务,此过程是迭代查询。

步骤6:本地域服务器,接收到.com域服务器的回复后,去找baidu.com域服务器,

            请求解析,此过程是迭代查询。

步骤7:baidu.com域服务器接收到请求后,查看自己的区域文件,发现是自己所管制

           的区域,然后查看区域解析文件,把对应的IP地址发送给请求的服务器,此过

            程是迭代查询。

步骤8:本地服务器接收到baidu.com域服务器的回复,把FQDN对应IP地址传送给客

           户端,此过程为递归查询。


   DNS的解析类型

       FQDN:(Fully Qualified Domain Name)完全合格域名,由主机名+域名组成

               (如www.51cto.com)

       正向解决:FQDN----->IP,把完全合格域名,解析为IP地址

       方向解析:IP-------->FQDN,把IP解析为完全合格域名。


Linux服务器实现DNS服务器的软件有bind、powerdns,此博客主要讲bind

   bind的相关软件包

 bind:提供域名服务的主程序和相关文件

   bind-libs:提供域名服务器所依赖的库文件  

   bind-utils:提供了对DNS服务的测试工具程序

   rpm   -qc  包名     查看包安装生成的文件清单

   rpm   -qi   包名     查看包的摘要信息



、缓存服务器

1)安装软件包

        yum -y install  bind

  2)bind配置文件

     安装完后,会用到四个配置文件,四个配置文件的关系

104634472.png

 3)DNS   bind   named的关系  

           DNS是一个服务,是提供域名解析的服务;

           bind是实现这个服务的软件包;

           named是dns这个服务的守护进程

  4)配置缓存服务器的思路

把客户端发送的请求,转发给能解析到的服务器

在主配置文件里面修改 (/etc/named.conf)

111313257.png

开启服务, service  named  start(/etc/rc.d/init.d/named start)

第一次需要开启服务,之后只需要加载配置文件即可

service named reload (rndc reload)

named-checkconf


DNS的测试工具

[root@jie2 data]# rpm -ql bind-utils

/usr/bin/dig             #dig测试命令工具

/usr/bin/host            #host测试命令工具

/usr/bin/nslookup        #nslookup测试命令工具

/usr/bin/nsupdate

/usr/share/man/man1/dig.1.gz

/usr/share/man/man1/host.1.gz

/usr/share/man/man1/nslookup.1.gz

/usr/share/man/man1/nsupdate.1.gz

命令的使用用法:

    dig [option] 资源记录类型名称    [@server-ip]  

  option:

[ -t type] 指定类型

 [-x addr]  指定IP

资源记录类型名称:

       NS :对应DNS服务器的FQDN

       A 代表"主机名称"与"IP"地址的对应关系, 作用是把名称转换成IP地址

       PTR:代表"IP地址"与"主机名"的对应关系,作用刚好与A记录相反

     [@server-ip]:

                 不写IP,默认是本地服务器的IP

                 用@server-ip,指定服务器的IP

    eg:dig -t A www.51cto.com @172.16.0.1


host [option] 资源记录类型名称   [server-ip]

eg:host -t A www.51cto.com 172.16.0.1


nslookup   FQDN   [server-ip]

   eg: nslookup www.51cto.com 172.16.0.1


112556385.png

120321122.png


120340709.png


、DNS主从服务器

131724866.png

Master的配置

134815460.png

135023450.png

140555325.png

140406880.png


132403460.png

配置完成后,检查语法是否错误,然后加载配置文件即可。

142659201.png

Slave的配置

134815460.png


144050944.png

[root@jie3 ~]# cd /var/named/slaves/

[root@jie3 slaves]# ls

jie.com.zone

[root@jie3 slaves]#

小结:在实际工作中,可以把Master作为正向区域的主,反向作为slave的从。


、DNS的转发


150417404.png

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
31
32
###jie.com服务器的主配置文件###########
options {
//   listen-on port 53 { 127.0.0.1; };
//   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     { localhost; };
     recursion  yes ;
         forward   only;       // 只允许转发
         forwarders { 172.16.122.4; };   // 转发到ltt.com服务上
//   dnssec- enable  yes ;         // 关于安全的文件都注释掉
//   dnssec-validation  yes ;
//   dnssec-lookaside auto;
     /* Path to ISC DLV key */
     bindkeys- file  "/etc/named.iscdlv.key" ;
//   managed-keys-directory  "/var/named/dynamic" ;
};
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" ;
######区域文件和区域解析文件还是之前的文件内容##############



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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
##########ltt.com服务器的主配置文件######################
options {
//   listen-on port 53 { 127.0.0.1; };
//   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     { localhost; };
//   recursion  yes ;
      allow-recursion { 172.16.22.2; };    // 只为jie.com服务器进行递归查询
//   dnssec- enable  yes ;
//   dnssec-validation  yes ;
//   dnssec-lookaside auto;
     /* Path to ISC DLV key */
     bindkeys- file  "/etc/named.iscdlv.key" ;
//   managed-keys-directory  "/var/named/dynamic" ;
};
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" ;
##############ltt.com服务器的区域配置文件的部门内容###################
zone  "ltt.com"  IN {
       type  master;
       file  "ltt.com.zone" ;
};
#################ltt.com服务器的区域解析文件的内容###################
cat  /var/named/ltt .com.zone
$TTL 1D
@   IN SOA  dns.ltt.com. admin.ltt.com. (
                     0   ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
     IN NS   dns.ltt.com.
dns     IN A  172.16.122.4
www     IN A  172.16.122.40
www     IN A  172.16.122.140
www     IN A  172.16.122.240
ftp      IN A  172.16.122.200
mail    IN A  172.16.122.250
###注意文件的属组和权限######################3

[root@PC ~]# grep -v "^#"  /etc/resolv.conf  | grep -v "^$"

search com

nameserver 172.16.22.2

[root@PC ~]# host -t A www.ltt.com

www.ltt.com has address 172.16.122.240

www.ltt.com has address 172.16.122.40

www.ltt.com has address 172.16.122.140


小结:实际工作中,你的转发的IP一般设置为运营商的DNS服务器的IP地址,运营商的DNS服务器可以接受你的转发


、DNS的子域授权

162618883.png



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#######父域的主配置文件和区域配置文件还是之前的不需要改动######
#########修改区域解析库文件vim /var/named/jie.com.zone#########
$TTL 6400
@   IN SOA  dns.jie.com.  admin.jie.com. (
                  2013081401 ;serial numbel
                   2h        ;refresh  time
                   5m        ;retry  time
                   7d        ;expire  time
                   1d        ;minimum
)
              IN NS  dns.jie.com.
dns.jie.com. IN A   172.16.22.2
www          IN A   172.16.22.2
www          IN A   172.16.22.20
www          IN A   172.16.22.200
ftp           IN A   172.16.22.220
son          IN A   172.16.122.4    #添加子域的A记录
              IN NS  son.jie.com.    #添加子域的NS记录
dns          IN A   172.16.122.4



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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
###子域的主配置文件/etc/named.conf#########
options {
//   listen-on port 53 { 127.0.0.1; };
//   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     { localhost; };
         recursion  yes ;
     dnssec- enable  yes ;
     dnssec-validation  yes ;
     dnssec-lookaside auto;
     /* Path to ISC DLV key */
     bindkeys- file  "/etc/named.iscdlv.key" ;
     managed-keys-directory  "/var/named/dynamic" ;
};
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" ;
#####子域的区域配置文件/etc/named.rfc1912.com添加一点内容########
zone  "son.jie.com"  IN {
        type  master;
        file  "son.jie.com.zone" ;
};
########子域的区域解析库文件/var/named/son.jie.com.zone添加一点内容####
$TTL 1D
@   IN SOA  dns.son.jie.com. admin.son.jie.com. (
                     0   ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
             IN NS  dns.son.jie.com.
dns         IN A  172.16.122.4
www         IN A  172.16.122.40
www         IN A  172.16.122.140
www         IN A  172.16.122.240
ftp          IN A  172.16.122.200
mail        IN A  172.16.122.250

父域的测试:父域是直接可以解析子域的,子域默认是不能解析父域

[root@jie2 named]# host -t A www.son.jie.com

www.son.jie.com has address 172.16.122.240

www.son.jie.com has address 172.16.122.40

www.son.jie.com has address 172.16.122.140


子域也能解析父域,①可以把子域的DNS指向父域,②在子域上面做转发,父域接收子域的转发请求

、DNS的acl规则和view视图

170728625.png


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
###jie.com服务器的主配置文件######
options {
//   listen-on port 53 { 127.0.0.1; };
//   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     { localhost; };
     recursion  yes ;
     dnssec- enable  yes ;
     dnssec-validation  yes ;
     dnssec-lookaside auto;
     /* Path to ISC DLV key */
     bindkeys- file  "/etc/named.iscdlv.key" ;
     managed-keys-directory  "/var/named/dynamic" ;
};
logging {
         channel default_debug {
                 file  "data/named.run" ;
                 severity dynamic;
         };
};
include  "/etc/named.rfc1912.zones" ;
include  "/etc/named.root.key" ;
######区域配置文件######################
view LAN {
zone  "."  IN {   #把主配置文件的根域放到了区域配置文件中
     type  hint;
     file  "named.ca" ;
};
zone  "localhost.localdomain"  IN {
     type  master;
     file  "named.localhost" ;
     allow-update { none; };
};
zone  "localhost"  IN {
     type  master;
     file  "named.localhost" ;
     allow-update { none; };
};
zone  "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"  IN {
     type  master;
     file  "named.loopback" ;
     allow-update { none; };
};
zone  "1.0.0.127.in-addr.arpa"  IN {
     type  master;
     file  "named.loopback" ;
     allow-update { none; };
};
zone  "0.in-addr.arpa"  IN {
     type  master;
     file  "named.empty" ;
     allow-update { none; };
};
match-clients { 172.16.22.0 /16 ; };   #当匹配这个网段的IP访问jie.com服务器时,返回172.16.22.128
zone  "jie.com"  IN {
         type  master;
         file  "lan.jie.com" ;
  };
};
view WAN {
  match-clients {  any; };   #其他任何网段访问时返回1.1.1.128
  zone  "jie.com"  IN {
        type  master;
        file  "wan.jie.com" ;
};
};
#######区域解析库文件的内容#################
#############/var/named/lan.jie.com#####################
$TTL 1D
@   IN SOA  dns.jie.com. admin.jie.com. (
                     0   ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
     IN NS   dns.jie.com.
dns     IN A  172.16.22.128
www     IN A  172.16.22.128
ftp      IN A  172.16.22.128
mail    IN A  172.16.22.128
www     IN A  172.16.22.1
#############/var/named/wan.jie.com#####################
$TTL 1D
@   IN SOA  dns.jie.com. admin.jie.com. (
                     0   ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
     IN NS   dns.jie.com.
dns     IN A  1.1.1.128
www     IN A  1.1.1.128
ftp      IN A  1.1.1.128
mail    IN A  1.1.1.128
www     IN A  1.1.1.1


验证:

[root@LanPC ~]# ifconfig | grep -A 1 eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:9C:14:36  

         inet addr:172.16.22.3  Bcast:172.16.255.255  Mask:255.255.0.0

[root@LanPC ~]# host -t A www.jie.com 172.16.22.2

Using domain server:

Name: 172.16.22.2

Address: 172.16.22.2#53

Aliases:


www.jie.com has address 172.16.22.128

www.jie.com has address 172.16.22.1


[root@WanPC ~]# ifconfig | grep -A 1 eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D1:6F:09  

         inet addr:192.168.0.4  Bcast:192.168.255.255  Mask:255.255.0.0

[root@WanPC ~]# host -t A www.jie.com 172.16.22.2

Using domain server:

Name: 172.16.22.2

Address: 172.16.22.2#53

Aliases:


www.jie.com has address 1.1.1.1

www.jie.com has address 1.1.1.128


、DNS的日志系统的使用


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
31
32
33
34
35
36
37
####此实验是接着上面的实验内容####################
#######修改主配置文件####################
options {
//   listen-on port 53 { 127.0.0.1; };
//   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     { localhost; };
     recursion  yes ;
     dnssec- enable  yes ;
     dnssec-validation  yes ;
     dnssec-lookaside auto;
     /* Path to ISC DLV key */
     bindkeys- file  "/etc/named.iscdlv.key" ;
     managed-keys-directory  "/var/named/dynamic" ;
};
logging {
         channel default_debug {
                   file  "data/named.run" ;
                    severity  dynamic;
               };
            channel querylog {
                 file  "/var/log/bindquery.log"  versions 3 size 10M;
                 severity dynamic;
                  print- time  yes ;
                  print-category  yes ;
                  print-severity   yes ;
         };
           category  queries { querylog; };
};
include  "/etc/named.rfc1912.zones" ;
include  "/etc/named.root.key" ;
##########其它文件不需要修改
touch  /var/log/bindquery .log
chown  named:named  /var/log/bindquery .log



验证:

[root@LanPC ~]# host -t A ftp.jie.com 172.16.22.2

Using domain server:

Name: 172.16.22.2

Address: 172.16.22.2#53

Aliases:


ftp.jie.com has address 172.16.22.128

[root@LanPC ~]# host -t A www.jie.com 172.16.22.2

Using domain server:

Name: 172.16.22.2

Address: 172.16.22.2#53

Aliases:


www.jie.com has address 172.16.22.1

www.jie.com has address 172.16.22.128



[root@jie2 log]# cat /var/log/bindquery.log

08-Aug-2013 06:27:51.720 queries: info: client 172.16.22.3#36432: view LAN: query: ftp.jie.com IN A + (172.16.22.2)

08-Aug-2013 06:27:52.406 queries: info: client 172.16.22.3#34500: view LAN: query: ftp.jie.com IN A + (172.16.22.2)

08-Aug-2013 06:27:52.880 queries: info: client 172.16.22.3#34935: view LAN: query: ftp.jie.com IN A + (172.16.22.2)

08-Aug-2013 06:31:27.921 queries: info: client 172.16.22.3#38660: view LAN: query: ftp.jie.com IN A + (172.16.22.2)

08-Aug-2013 06:31:34.402 queries: info: client 172.16.22.3#52686: view LAN: query: www.jie.com IN A + (172.16.22.2)


可以生成日志


小结:DNS实现CDN会用到view,理清楚配置文件之间的关系。当服务开启不了时多查看日志(/var/log/messages),注意配置文件的语法格式。博客内容有点多,望各位博友能多多指点










本文转自 jie783213507 51CTO博客,原文链接:http://blog.51cto.com/litaotao/1272989,如需转载请自行联系原作者
目录
相关文章
|
10天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
13天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
28 4
|
18天前
|
域名解析 网络协议 Linux
使用 Webmin+bind9快速搭建私有DNS服务器
使用 Webmin+bind9快速搭建私有DNS服务器
54 1
|
28天前
|
Linux Shell 网络安全
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
40 1
|
6天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1179 6
|
14天前
|
监控 负载均衡 网络协议
DNS服务器的搭建之初体验
通过这些步骤,你可以在初次搭建DNS服务器时获得基本的体验,了解如何为域名提供解析服务,促进网络的正常运行。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
35 7
|
17天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
18天前
|
Linux
Linux安装bind9搭建自己的域名服务器
Linux安装bind9搭建自己的域名服务器
11 0
|
20天前
|
网络协议 Linux
Linux自建DNS
Linux自建DNS
11 0
|
20天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0

相关产品

  • 云解析DNS