五、DNS与bind

发布时间:2020-07-21 14:51:15 作者:少年不在了
来源:网络 阅读:1448

  5.1、DNS简介

  DNS服务可以为用户提供域名和IP之间的自动转换。通过DNS,用户只需输入机器的域名即可访问相关的服务,而无需使用那些难以记忆的IP地址。DNS帮助用户在互联网上寻找路径,在互联网上的每一个计算机都拥有一个唯一的地址,称作'IP地址'。由于IP地址是一串数字,难以记忆,而DNS允许用户使用一串有意义的字符串'即域名'取代,由域名转换成相应IP地址的这个过程称为域名解析。

  DNS域名又称为DNS命名空间,它是以层次树状结构进行管理的,其最顶层是根域。根域在整个DNS命名空间是唯一的,而根域下可以分为多个子域,每个子域又可以分为多个子域。例如,Internet命名空间具有多个顶级域名(top-level domain names,TLD),如org,net,com等。而cn顶级域名又可以有多个子域,如edu、net、org和com等。

五、DNS与bind

  一个完整的域名由顶级域以及各子域的名称所组成,各部分之间用圆点'.'分隔开来。其中最后一个 '.'称为根域,可省略,其左边部分称为顶级域名;第二个点'.'的左边部分称为二级域名(SLD);二级域左边部分称为三级域名;以此类推。例如www.sina.com.cn.中cn是一级域名,com是二级域名,sina是三级域名。全球一共有13个根域,其IP地址分别是:

[root@mylinux ~]# dig
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11096
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 15
;; QUESTION SECTION:
;.                              IN      NS
;; ANSWER SECTION:
.                       66583   IN      NS      e.root-servers.net.
.                       66583   IN      NS      f.root-servers.net.
.                       66583   IN      NS      b.root-servers.net.
.                       66583   IN      NS      a.root-servers.net.
.                       66583   IN      NS      m.root-servers.net.
.                       66583   IN      NS      i.root-servers.net.
.                       66583   IN      NS      k.root-servers.net.
.                       66583   IN      NS      j.root-servers.net.
.                       66583   IN      NS      d.root-servers.net.
.                       66583   IN      NS      c.root-servers.net.
.                       66583   IN      NS      l.root-servers.net.
.                       66583   IN      NS      g.root-servers.net.
.                       66583   IN      NS      h.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net.     3580244 IN      A       198.41.0.4
b.root-servers.net.     3576238 IN      A       192.228.79.201
c.root-servers.net.     3580290 IN      A       192.33.4.12
d.root-servers.net.     3575852 IN      A       199.7.91.13
e.root-servers.net.     3523146 IN      A       192.203.230.10
f.root-servers.net.     3590994 IN      A       192.5.5.241
g.root-servers.net.     3549348 IN      A       192.112.36.4
h.root-servers.net.     3586059 IN      A       198.97.190.53
i.root-servers.net.     3534085 IN      A       192.36.148.17
j.root-servers.net.     3562264 IN      A       192.58.128.30
k.root-servers.net.     3562350 IN      A       193.0.14.129
l.root-servers.net.     3534062 IN      A       199.7.83.42
m.root-servers.net.     3561115 IN      A       202.12.27.33
a.root-servers.net.     3574439 IN      AAAA    2001:503:ba3e::2:30
b.root-servers.net.     3565057 IN      AAAA    2001:500:84::b
;; Query time: 7 msec
;; SERVER: 10.225.30.181#53(10.225.30.181)
;; WHEN: Tue May 23 20:33:36 2017
;; MSG SIZE  rcvd: 492

  Internet域名空间的顶级域是由ICANN(英特网名称与数字地址分配机构)负责管理,这是一个近年来成立的负责管理Internet域名即地址系统的非营利机构。顶级域分为通用和国家两大类。

通用顶级域名说明通用顶级域名说明
com商业机构biz商业机构
net网络服务组织name个人
org非营利性组织pro专用人士
edu
教育机构coop商业合作社
gov
政府机构aero航空运输业
mil
军事机构museum博物馆行业
int
国际组织travel旅游行业
info
信息行业job招聘和求职市场

  除美国以外的国家或地区需要使用国家域名,国家域名使用双字母来进行标识。常见国家顶级域名有

国家顶级域名说明国家顶级域名说明
cn中国jp日本
hk
中国香港uk英国
tw
中国台湾kr韩国
mo
中国澳门de德国
sg
新加坡fr法国
us
美国ru俄罗斯

  5.2、DNS工作原理

  在DNS出现之前,通常是通过计算机上维护一个hosts文件(/etc/hosts)的方式来实现主机名和IP地址之间的解析。管理员在hosts文件中记录所有需要访问的主机的主机名与IP地址,当需要进行解析的时候系统会自动查询hosts文件,并找出匹配的解析关系。采用这种方式,每台主机上都必须维护一个hosts文件。网络中每增加一台计算机就必须手工修改hosts文件,添加新的计算机主机名和IP地址对应的记录。

  随着计算机网络的快速发展,网络中计算机数量随之快速增长,这种依赖hosts文件来实现主机名和IP地址之间解析的方式无法满足网络发展的需求。DNS提供了完整解决方案。

五、DNS与bind

  DNS服务器采用C/S方式进行工作。其具体工作流程为:

1、当需要进行DNS解析时,系统会向本地DNS服务器发出解析请求,由本地DNS服务器进行域名和IP地址的解析工作。

2、本地DNS服务器收到用户请求后,则会将自身的DNS数据库进行查找匹配的域名和IP记录。如果找到则把结果返回给客户端并完成解析工作;如果没有找到则把请求转发给根服务器。

3、根域DNS服务器查到所对应顶级域,将结果返回本地DNS服务器;本地DNS服务器根据顶级域地址向顶级域发起请求,顶级域DNS服务器查到二级域对应地址返回给本地DNS服务器;本地DNS服务器根据二级域地址向二级域DNS服务器发送请求,二级域DNS服务器查到三级域对应地址返回给本地DNS服务器;以此类推,直到本地DNS服务器找到最终要解析的域名所对应的IP地址

4、最终本地DNS服务器把结果返回给客户端

5、如果经过查找后依然无法找到所需要的解析记录,则有本地DNS服务器向客户端返回无法解析的错误信息。

  上面的工作流程为正向解析,即FQDN-->IP,反向解析为IP-->FQND正反向解析是两个不同的名称空间,是两棵不同的解析树;不应该存放同一个数据库。FQDN(Full Qualified Domain Name, 完全限定域名)。

  5.3、DNS服务器的安装

  bind是一款代码的DNS服务器软件,它是由伯克利大学编写,全名(Berkeley Internet Name Domain)伯克利英特网域名,是目前世界上使用最为广泛的DNS服务器软件。

  Centos6.5中自带了bind软件。但是为了使用最新版的bind软件,可以从官方网站http://www.isc.org/上下载该软件软代码进行安装,也可以直接使用yum安装。

[root@mylinux home]# yum install bind -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * epel: mirrors.tuna.tsinghua.edu.cn
 * epel-debuginfo: mirrors.tuna.tsinghua.edu.cn
 * epel-source: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.hust.edu.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.8.2-0.62.rc1.el6_9.2 will be installed
--> Processing Dependency: portreserve for package: 32:bind-9.8.2-0.62.rc1.el6_9.2.x86_64
--> Running transaction check
---> Package portreserve.x86_64 0:0.0.4-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================
 Package            Arch          Version                           Repository      Size
=========================================================================================
Installing:
 bind               x86_64        32:9.8.2-0.62.rc1.el6_9.2         updates        4.0 M
Installing for dependencies:
 portreserve        x86_64        0.0.4-11.el6                      base            23 k

Transaction Summary
=========================================================================================
Install       2 Package(s)

Total download size: 4.0 M
Installed size: 7.3 M
Downloading Packages:
(1/2): bind-9.8.2-0.62.rc1.el6_9.2.x86_64.rpm                     | 4.0 MB     00:42     
(2/2): portreserve-0.0.4-11.el6.x86_64.rpm                        |  23 kB     00:00     
-----------------------------------------------------------------------------------------
Total                                                     87 kB/s | 4.0 MB     00:47     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : portreserve-0.0.4-11.el6.x86_64                                       1/2 
  Installing : 32:bind-9.8.2-0.62.rc1.el6_9.2.x86_64                                 2/2 
  Verifying  : portreserve-0.0.4-11.el6.x86_64                                       1/2 
  Verifying  : 32:bind-9.8.2-0.62.rc1.el6_9.2.x86_64                                 2/2 

Installed:
  bind.x86_64 32:9.8.2-0.62.rc1.el6_9.2                                                  

Dependency Installed:
  portreserve.x86_64 0:0.0.4-11.el6                                                      

Complete!

启动和关闭bind

 安装完成后可以开启bind服务,bind通过named命令进行启动,一般让其后台运行。

[root@mylinux named]# service named start
Generating /etc/rndc.key:[  OK  ]
Starting named: [  OK  ]
[root@mylinux named]# ss -tunlp | grep :53    #查看DNS监听的端口,默认只监听本机
udp    UNCONN     0      0              127.0.0.1:53                    *:*      users:(("named",1538,512))
udp    UNCONN     0      0                    ::1:53                   :::*      users:(("named",1538,513))
tcp    LISTEN     0      3                    ::1:53                   :::*      users:(("named",1538,21))
tcp    LISTEN     0      3              127.0.0.1:53                    *:*      users:(("named",1538,20))

5.4、bind服务器配置

  bind的主要配置文件包括named.conf和相应的区域文件,bind中各种配置的更改都是通过这个文件完成,修改完成后需要重新启动bind服务使配置生效。其主要配置文件有:

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf, /etc/named.rfc1912.zones(请求注解文档)

区域解析库文件:/var/named/zone_name.zone(至少包含根、本地、回环这三个区域文件)

    named.ca  named.localhost  named.loopback

  named.conf是bind的主要配置文件,里面存储了大量的bind自身的设置信息。bind安装完成后并不会自动创建该配置文件,用户需要通过命令手工生成。 默认显示内容为

[root@mylinux etc]# cat name.conf 
 key "rndc-key" {
        algorithm hmac-md5;
        secret "9WzbeVyRhvPUak0Irw6pLA==";
 };
 
 controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
 };
[root@mylinux etc]#

  named.conf配置文件由配置语句和注释语句组成。每条配置语句以分号';'结尾,多条配置语句组成语句块;注释语句使用两个左斜杠'//'作为注释符。named.conf配置文件所支持的配置语句有:

语句说明
acl定义一个主机匹配列表,用于访问控制或其它用途
controls定义rndc工具与bind服务进程的通信
include把其他文件中的内容包含进来
key
定义加密秘钥
logging
定义系统日志信息
lwres
把named配置为轻量级解释器
masters定义主域名列表
options
设置全局选项
statistics-channels
定义bind的统计信息的通信通道
server
定义服务器的属性
trusted-keys
定义信任的DNSSEC密钥
view
定义视图
zone
定义区域

acl语句,用于定义地址匹配列表,其格式为:

acl string { 
    address_match_element; 
    ... 
};

  bind默认定义了一些地址匹配列表

地址匹配列表说明
any匹配任何主机
none不匹配任何主机
localhost匹配系统上所有网卡的IPv4和IPv6的地址
localnets
匹配任何与系统有接口的主机的IPv4和IPv6的地址

controls语句,用于定义rndc工具与bind服务进程的通信,系统管理员可以通过rndc向bind进行发出命令,并接受由bind返回的结果。其格式为:

controls {
    inet ( ipv4_address | ipv6_address | * )
        [ port ( integer | * ) ]
    allow { address_match_element; ... }
        [ keys { string; ... } ];
    unix unsupported; // not implemented
};

include语句,用于把语句中所制定的文件的内容添加进named.conf配置文件中,该语句格式为:

include filename

key语句,用于定义TSIG或命令通道所使用的加密秘钥,其格式为:

key domain_name {
     algorithm string;
     secret string;
};

option语句,用于设置影响整个DNS服务器的全局选项,该语句在named.conf配置文件中只能出现一次。如果没有设置该语句,bind将使用默认的option值。该语句支持选项非常多,常用选项有:

options {
    directory quoted_string;
    forward ( first | only );
    forwarders [ port integer ] {
                     ( ipv4_address | ipv6_address ) [ port integer ]; ...
                };
    query-source ( ( ipv4_address | * ) | [ address ( ipv4_address | * ) ] ) 
[ port ( integer | * ) ];
    query-source-v6 ( ( ipv6_address | * ) | [ address ( ipv6_address | * ) ]
 ) [ port ( integer | * ) ];
    statistics-interval integer;

  directory选项用于定义服务器的工作目录,在配置文件中所指定的所有相对路径都是相对于该路径来定义的。该目录也是服务器中大部分输出文件(如name.run)的存储位置。系统默认使用'.'(即bind启动的目录)作为工作目录,一般把bind的工作目录设置为/var/named,如

directory  '/var/named';

  forwarders选项用于指定DNS请求的转发到其他的DNS服务器上,该选项默认为空,也就是不进行转发 。选项值可以是一个IP地址或主机名,也可以是多台主机的列表,如

forwarders {192.168.191.2;192.168.191.100;192.168.191.105;}

  forward选项仅在forwarders选项不为空时生效,该选项用于控制DNS服务器的请求转发操作。如果选项为first,则DNS服务器会先把请求转发给forwarders选项中所指定的远端DNS服务器。如果远端DNS服务器无法响应请求,则bind将尝试自行解析该请求;如果选项值为only,则bind至转发请求,并不进行处理。

  query-source和query-source-v6选项分别用于设置DNS服务器所使用的IPv4和IPv6的IP地址和端口号。默认端口号为53,如果指定其他端口,将无法与全局的DNS服务器通信。

  statistics-interval选项用于指定DNS服务器记录统计信息的时间间隔,单位为分钟,默认为60,最大值为40320,如果选项为0,则服务器不记录统计信息。

server语句,bind有可能与其他的DNS服务器进行通信,但是并非所有的DNS服务器都运行同一个版本的bind。server语句可以设置远程服务器的特征信息,以使双方能够正常通信。该语句的格式为:

server ( ipv4_address[/prefixlen] | ipv6_address[/prefixlen] ) {
                bogus boolean;
                edns boolean;
                edns-udp-size integer;
                max-udp-size integer;
                provide-ixfr boolean;
                request-ixfr boolean;
                keys server_key;
                transfers integer;
                transfer-format ( many-answers | one-answer );
                transfer-source ( ipv4_address | * )
                     [ port ( integer | * ) ];
                transfer-source-v6 ( ipv6_address | * )
                     [ port ( integer | * ) ];
                support-ixfr boolean; // obsolete
           };

view语句,该语句可以使bind根据客户端地址来决定需要返回的域名解析结果,也就是说,不同的主机通过同一台DNS服务器对同一个域名解析,会得到不同的解析结果。其格式为:

view string 
    optional_class{
        match-clients { address_match_element; ... };
                match-destinations { address_match_element; ... };
                match-recursive-only boolean;
                key string {
                     algorithm string;
                     secret string;
                };
                zone string optional_class {
                     ...
                };
    }

  每一条view语句定义了一个客户端集合所能看到的视图,如果客户端匹配试图中的match-clients选项所定义的客户端列表,那么bind将根据该视图返回解析结果。例如,希望对内网用户和外网用户进行区分,使他们访问同一个域名时会得到不同的结果。可以使用view语句定义不同的视图,在两个视图中分别定义不同的属性,以达到效果。

view 'internal'{
        match-clients { 172.0.0.0/8; };
        recursion yes;
        zone 'example.com'{
            type master:
            file 'example-internal.zone';
        };
    };
view 'external'{
        match-clients { any; };
        recursion no;
        zone 'example.com'{
            type master:
            file  'example-external.zone';
        };
    };

zone语句,该语句是named.conf文件的核心部分。每一条zone语句定义一个区域,用户可以在区域中设置该区域相关的选项。在bind中可以设置多种类型的区域,如表所示。不同类型的区域,其zone语句的d定义有所不同。

区域类型说明
master主DNS区域
slave从DNS区域,由主DNS区域控制
forward将解析请求转发给其他服务器
hint
根DNS服务器集
stub
与从区域类似,但只保存DNS服务器的名字
zone 'domain_name' IN{
      type master;
      file 'path';
}; 

zone '.' IN{
      type hint;
      file 'path';
};

  其中,根域的名称为'.',type选项定义区域的类型,根域所对应的类型代码为hint。file选项定义了该区域所使用的区域文件,在该文件中可以定义与该区域文件相关的各种属性。主DNS区域是bind中最基本的区域类型,它又可以分为正向解析区域和反向解析区域两种。如下面定义了一个域名为test.com的正向解析区域,使用区域文件为test.zone。

zone 'test.com' IN {
      type master;
      file 'test.zone';
      allow-update {none;};
};

  反向解析主区域的例子为:

zone '1.168.192.in-addr.arpa' IN {
      type master;
      file 'test.local';
      allow-update {none;};
};

检查该配置文件语法错误的命令有:

Service named-checkconfig          #检查配置错误     
service name-checkzone             #检查区域错误

  named.ca是一个特殊的区域文件,该文件中记录了Internet上的根DNS服务器的名称和IP地址。DNS服务器接收到客户端发来的解析请求后,如果在本地找不到匹配的DNS记录,则把请求发送到该文件中所定义的根DNS服务器上进行逐级查找。在该文件中总共定义13个根DNS服务器。

[root@mylinux var]# cat named.ca 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t NS . @a.root-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1193
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;.                              IN      NS
;; ANSWER SECTION:
.                       518400  IN      NS      e.root-servers.net.
.                       518400  IN      NS      h.root-servers.net.
.                       518400  IN      NS      l.root-servers.net.
.                       518400  IN      NS      i.root-servers.net.
.                       518400  IN      NS      a.root-servers.net.
.                       518400  IN      NS      d.root-servers.net.
.                       518400  IN      NS      c.root-servers.net.
.                       518400  IN      NS      b.root-servers.net.
.                       518400  IN      NS      j.root-servers.net.
.                       518400  IN      NS      k.root-servers.net.
.                       518400  IN      NS      g.root-servers.net.
.                       518400  IN      NS      m.root-servers.net.
.                       518400  IN      NS      f.root-servers.net.
;; ADDITIONAL SECTION:
e.root-servers.net.     518400  IN      A       192.203.230.10
e.root-servers.net.     518400  IN      AAAA    2001:500:a8::e
h.root-servers.net.     518400  IN      A       198.97.190.53
h.root-servers.net.     518400  IN      AAAA    2001:500:1::53
l.root-servers.net.     518400  IN      A       199.7.83.42
l.root-servers.net.     518400  IN      AAAA    2001:500:9f::42
i.root-servers.net.     518400  IN      A       192.36.148.17
i.root-servers.net.     518400  IN      AAAA    2001:7fe::53
a.root-servers.net.     518400  IN      A       198.41.0.4
a.root-servers.net.     518400  IN      AAAA    2001:503:ba3e::2:30
d.root-servers.net.     518400  IN      A       199.7.91.13
d.root-servers.net.     518400  IN      AAAA    2001:500:2d::d
c.root-servers.net.     518400  IN      A       192.33.4.12
;; Query time: 68 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Thu May 25 03:26:39 2017
;; MSG SIZE  rcvd: 508

正向解析区域文件

 正向解析区域文件用于映射域名和IP地址,文件中包含该文件区域的所有参数,包括域名,IP地址、刷新时间、重试时间、和超时等。

资源记录(Resource Record, RR)格式:

NAME(类型)   [TTL](缓存时长)   IN  RRT(DNS资源记录类型) VALUE(数据)

1、SOA(Start Of Authority):   起始授权记录,只能有一个

  name: 区域名称, 通常可以简写为@,例如:magedu.com.

  value: 主DNS服务器的FQDN

  注意:SOA必须是区域数据库文件第一条记录

@  600 IN  SOA  ns.magedu.com.  dnsadmin.magedu.com.(
serial number;    序列号,十进制数字,不超过10位,通常使用日期,如2014031001
refresh time  ;   刷新时间,即每隔多久到主服务器检查一次
retry time    ;   重试时间,应该小于refresh time
expire time  ;    过期时间
negative answer ttl  ;否定答案的ttl
)

2、NS(Name Server): ZONE NAME --> FQDN   名称服务器,可以有多个

name: 区域名称,通常可以简写为@

value: DNS服务器的FQDN(可以使用相对名称)

@  600 IN  NS  ns

3、MX(Mail eXchanger): ZONE NAME --> FQDN 邮件交换器

name: 区域名称,用于标识smtp服务器

value: 包含优先级和FQDN,优先级:0-99, 数字越小,级别越高;

@ 600 IN MX   10   mail

4、A(address):FQDN-->IPv4  5、AAAA:FQDN-->IPv6

name: FQDN(可以使用相对名称)

value: IP

www  600 IN  A  192.168.1.2

6、PTR(pointer):IP-->FQDN只能定义在反向区域数据文件中

name: IP, 逆向的主机地址,例如172.16.100.7的name为7.100,

完全格式为7.100.16.172.in-addr.arpa.

value: FQDN

7.100 600  IN  PTR  www.maged.com.

7、CNAME(Canonical NAME): FQDN-->FQDN别名记录

name: FQDN

value: FQDN

ftp IN CNAME  www

一个完整的正向解析区域文件:

$TTL 1D
@  IN  SOA  test.com.  root.test.com.(
    0    
    1D   
    1H
    1W
    3H
)
IN   NS      dns.test.com.
IN   MX  10    mail1.test.com.
IN   MX  10    mail2.test.com.
www    IN A 192.168.1.101
mail1  IN A 192.168.1.102
mail2  IN A 192.168.1.103
dns    IN A 192.168.1.104

反向解析区域文件

  用于定义IP地址到域名的解析,它采用与正向解析文件类似的选项和格式。但由于是进行反向解析,所以该文件是使用PTR指针记录,而不是主机记录。下面是一个反向解析的例子

$TTL 86400
@    IN    SOA    test.com.    root.test.com.(
    20031001
    7200
    3600
    43200
    86400
)
IN    NS    dns.test.com.
101    IN    PTR    www.test.com.
102    IN    PTR    mail1.test.com.
103    IN    PTR    mail2.test.com.
104    IN    PTR    dns.test.com.

DNS服务器类型

主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;

从DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;

     序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;

     刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;

     重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;

     过期时长:从服务器始终联系不到主服务器时,从服务器角度,停止提供服务。

缓存名称服务器:非权威答案。

主从服务器同步的方式:

  域:Domain(逻辑概念)区域:Zone(物理概念)

  区域传送:

    全量区域传送:传送整个解析库。AXFR

    增量区域传送:传递解析库变化的那部分内容。IXFR

rndc命令

  rndc: Remote Name Domain Controller远程管理BIND的工具,默认与bind安装在一起,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能。监听端口(953/tcp)。

  rndc与bind通过密钥进行连接互信。

    rndc: 持有一半密钥,保存于rndc的配置文件中

    BIND:持有一半密钥,保存于主配置文件中

rndc的配置文件/etc/rndc.conf

在CentOS或RHEL系统中配置文件为: 密钥文件/etc/rndc.key

命令格式:rndc COMMAND   

reload: 重载主配置文件和区域解析库文件

reload zone: 重载区域解析库文件

retransfer zone: 手动启动区域传送过程,而不管序列号是否增加;

notify zone: 重新对区域传送发通知;

reconfig: 重载主配置文件

querylog: 开启或关闭查询日志;

trace: 递增debug级别;

trace LEVEL: 指定使用的级别

flush: 清空服务器的缓存

flushname name: 清空指定名称相关的缓存

5.5、各种DNS服务器的配置方法

缓存名称服务器

  缓存名称服务器配置十分简单,只需要通过yum安装后,对主配置文件进行一些修改即可。

[root@mylinux named]# 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.
//
options {
//      listen-on port 53 { 127.0.0.1; };      开放监听端口,或者添加外网地址
//      listen-on port 53 { 0.0.0.0; };
        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
//      dnssec-validation yes;
        /* Path to ISC DLV key */
//      bindkeys-file "/etc/named.iscdlv.key";
//      managed-keys-directory "/var/named/dynamic";
};
....
[root@mylinux named]# service named restart                    #重启服务
Stopping named: [  OK  ]
Starting named: [  OK  ]
[root@mylinux named]# dig -t A www.baidu.com @192.168.191.128   #测试解析结果

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t A www.baidu.com @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55532
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5

;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          1200    IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       300     IN      A       111.13.100.91
www.a.shifen.com.       300     IN      A       111.13.100.92

;; AUTHORITY SECTION:
a.shifen.com.           1200    IN      NS      ns4.a.shifen.com.
a.shifen.com.           1200    IN      NS      ns3.a.shifen.com.
a.shifen.com.           1200    IN      NS      ns5.a.shifen.com.
a.shifen.com.           1200    IN      NS      ns2.a.shifen.com.
a.shifen.com.           1200    IN      NS      ns1.a.shifen.com.

;; ADDITIONAL SECTION:
ns5.a.shifen.com.       1200    IN      A       119.75.222.17
ns3.a.shifen.com.       1200    IN      A       61.135.162.215
ns2.a.shifen.com.       1200    IN      A       180.149.133.241
ns4.a.shifen.com.       1200    IN      A       115.239.210.176
ns1.a.shifen.com.       1200    IN      A       61.135.165.224

;; Query time: 1102 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 21:12:03 2017
;; MSG SIZE  rcvd: 260

主DNS服务器

  配置主DNS服务器时,需要在主配置文件中定义区域,以及配置解析数据库文件。

[root@mylinux named]# vim /etc/named.rfc1912.zones 
        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; };
};
zone "mylinux.com" IN {                                       ;添加的区域mylinux.com
        type master;
        file "mylinux.com.zone";
        allow-update { none; };
};
"/etc/named.rfc1912.zones" 46L, 1022C written                          
[root@mylinux named]# named-checkconf  /etc/named.rfc1912.zones    #检查配置文件是否错误
[root@mylinux named]# vim /var/named/mylinux.com.zone              #解析数据库文件

$TTL 1D
@  IN  SOA  test.com.  root.test.com.(
    0
    1D
    1H
    1W
    3H
)
@       IN      NS  dns
@       IN      MX  10  mail1
@       IN      MX  10  mail2
dns     IN      A   192.168.1.104
www     IN      A   192.168.1.101
mail1   IN      A   192.168.1.102
mail2   IN      A   192.168.1.103

"mylinux.com.zone" 15L, 269C written                                   
[root@mylinux named]# named-checkzone @ /var/named/mylinux.com.zone #检查数据解析是否错误
zone ./IN: loaded serial 0
OK
[root@mylinux named]# service named restart                         #重启服务
Stopping named: [  OK  ]
Starting named: [  OK  ]
[root@mylinux named]# dig -t A www.mylinux.com @192.168.191.128     #测试解析结果

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t A www.mylinux.com @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12794
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.mylinux.com.               IN      A

;; ANSWER SECTION:
www.mylinux.com.        86400   IN      A       192.168.1.101

;; AUTHORITY SECTION:
mylinux.com.            86400   IN      NS      dns.mylinux.com.

;; ADDITIONAL SECTION:
dns.mylinux.com.        86400   IN      A       192.168.1.104

;; Query time: 1 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 21:39:52 2017
;; MSG SIZE  rcvd: 83

[root@mylinux named]# dig -t A mail1.mylinux.com @192.168.191.128

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t A mail1.mylinux.com @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37024
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;mail1.mylinux.com.             IN      A

;; ANSWER SECTION:
mail1.mylinux.com.      86400   IN      A       192.168.1.102

;; AUTHORITY SECTION:
mylinux.com.            86400   IN      NS      dns.mylinux.com.

;; ADDITIONAL SECTION:
dns.mylinux.com.        86400   IN      A       192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 21:40:37 2017
;; MSG SIZE  rcvd: 85

[root@mylinux named]# dig -t A mail2.mylinux.com @192.168.191.128

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t A mail2.mylinux.com @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41030
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;mail2.mylinux.com.             IN      A

;; ANSWER SECTION:
mail2.mylinux.com.      86400   IN      A       192.168.1.103

;; AUTHORITY SECTION:
mylinux.com.            86400   IN      NS      dns.mylinux.com.

;; ADDITIONAL SECTION:
dns.mylinux.com.        86400   IN      A       192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 21:40:48 2017
;; MSG SIZE  rcvd: 85

[root@mylinux named]#

反向解析

  反向解析区域名称一般以in-addr.arpa结尾,例如172.16.100.-->100.16.172.in-addr.arpa.

[root@mylinux named]# vim /etc/named.
named.conf           named.iscdlv.key     named.root.key       
named.confbak        named.rfc1912.zones  
[root@mylinux named]# vim /etc/named.rfc1912.zones 

        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; };
};
zone "mylinux.com" IN {
        type master;
        file "mylinux.com.zone";
        allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN {             #定义反向区域
        type master;
        file "100.168.192.arpa";
"/etc/named.rfc1912.zones" 51L, 1127C 
[root@mylinux named]# named-checkconf            #检查配置文件
[root@mylinux named]# vim 100.168.192.arpa       #定义反向区域数据文件
$TTL 1D
@  IN  SOA  mylinux.com.  root.mylinux.com.(
    0
    1D
    1H
    1W
    3H
)
@       IN      NS    dns.mylinux.com.
1       IN      PTR   www.mylinux.com.
3       IN      PTR   mail1.mylinux.com.
4       IN      PTR   mail2.mylinux.com.
2       IN      PTR   dns.mylinux.com.
"100.168.192.arpa" 13L, 259C written                                   
[root@mylinux named]# named-checkzone "100.168.192.in-addr.arpa" 100.168.192.arpa
zone 100.168.192.in-addr.arpa/IN: loaded serial 0   #检查数据区域文件语法错误
OK
[root@mylinux named]# service named reload          #重载服务
Reloading named: [  OK  ]
[root@mylinux named]# dig -x 192.168.100.1 @192.168.191.128   #测试解析结果

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -x 192.168.100.1 @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35918
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;1.100.168.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
1.100.168.192.in-addr.arpa. 86400 IN    PTR     www.mylinux.com.

;; AUTHORITY SECTION:
100.168.192.in-addr.arpa. 86400 IN      NS      dns.mylinux.com.

;; ADDITIONAL SECTION:
dns.mylinux.com.        86400   IN      A       192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 22:33:34 2017
;; MSG SIZE  rcvd: 107

[root@mylinux named]# dig -x 192.168.100.2 @192.168.191.128

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -x 192.168.100.2 @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42216
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;2.100.168.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
2.100.168.192.in-addr.arpa. 86400 IN    PTR     dns.mylinux.com.

;; AUTHORITY SECTION:
100.168.192.in-addr.arpa. 86400 IN      NS      dns.mylinux.com.

;; ADDITIONAL SECTION:
dns.mylinux.com.        86400   IN      A       192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 22:33:42 2017
;; MSG SIZE  rcvd: 103

[root@mylinux named]# dig -x 192.168.100.3 @192.168.191.128

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -x 192.168.100.3 @192.168.191.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27136
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;3.100.168.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
3.100.168.192.in-addr.arpa. 86400 IN    PTR     mail1.mylinux.com.

;; AUTHORITY SECTION:
100.168.192.in-addr.arpa. 86400 IN      NS      dns.mylinux.com.

;; ADDITIONAL SECTION:
dns.mylinux.com.        86400   IN      A       192.168.1.104

;; Query time: 0 msec
;; SERVER: 192.168.191.128#53(192.168.191.128)
;; WHEN: Thu May 25 22:33:46 2017
;; MSG SIZE  rcvd: 109

主从DNS服务器的配置

1、从服务器应该为一台独立的名称服务器

2、主服务器的区域解析库中必须有一条NS记录指向从服务器

3、从服务器主需要定义区域,而无需提供解析库文件,库文件放在/var/named/slaves/目录中

4、主服务器需要允许从服务器做区域传送

从服务器的配置

[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.
//
options {
        listen-on port 53 { 192.168.191.128; 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
//
// 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.
//
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     { any; };              #允许查询
        recursion yes;
//      dnssec-enable yes;
//      dnssec-validation yes;
        /* Path to ISC DLV key */
//      bindkeys-file "/etc/named.iscdlv.key";
//      managed-keys-directory "/var/named/dynamic";
};
logging {
"/etc/named.conf" 43L, 1005C written                                   
[root@localhost ~]# service named restart    #启动服务
Stopping named: [  OK  ]
Starting named: [  OK  ]
[root@localhost ~]# ss -tunlp | grep :53     #查看监听端口
udp    UNCONN     0      0        192.168.191.129:53                    *:*      users:(("named",1432,513))
udp    UNCONN     0      0              127.0.0.1:53                    *:*      users:(("named",1432,512))
udp    UNCONN     0      0                    ::1:53                   :::*      users:(("named",1432,514))
tcp    LISTEN     0      3                    ::1:53                   :::*      users:(("named",1432,22))
tcp    LISTEN     0      3        192.168.191.129:53                    *:*      users:(("named",1432,21))
tcp    LISTEN     0      3              127.0.0.1:53                    *:*      users:(("named",1432,20))
[root@localhost ~]# vim /etc/named.rfc1912.zones    #定义从服务器配置文件

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

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; };
};
zone "mylinux.com" IN {                    #从服务器域文件
        type slave;
        masters { 192.168.191.128;};
        file "slaves/mylinux.com.zone";
"/etc/named.rfc1912.zones" 48L, 1080C written    
[root@localhost ~]# service  named start
Starting named: named: already running[  OK  ]

在主DNS服务器中必须要有从服务器的NS记录,才会通知从服务器读取数据,否则不会通知。

[root@mylinux named]# service named reload     #重载DNS主服务器
Reloading named: [  OK  ]
[root@mylinux named]# tail /var/log/messages   #查看日志信息
May 25 23:15:25 mylinux named[2037]: received control channel command 'reload'
May 25 23:15:25 mylinux named[2037]: loading configuration from '/etc/named.conf'
May 25 23:15:25 mylinux named[2037]: using default UDP/IPv4 port range: [1024, 65535]
May 25 23:15:25 mylinux named[2037]: using default UDP/IPv6 port range: [1024, 65535]
May 25 23:15:25 mylinux named[2037]: sizing zone task pool based on 8 zones
May 25 23:15:25 mylinux named[2037]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
May 25 23:15:25 mylinux named[2037]: reloading configuration succeeded
May 25 23:15:25 mylinux named[2037]: reloading zones succeeded
May 25 23:15:25 mylinux named[2037]: zone mylinux.com/IN: loaded serial 3
May 25 23:15:25 mylinux named[2037]: zone mylinux.com/IN: sending notifies (serial 3)

查看从服务器是否读取到数据

[root@localhost slaves]# cat /var/named/slaves/mylinux.com.zone 
$ORIGIN .
$TTL 86400      ; 1 day
mylinux.com             IN SOA  mylinux.com. root.mylinux.com. (
                                3          ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
                        NS      dns.mylinux.com.
                        NS      dns2.mylinux.com.
                        MX      10 mail1.mylinux.com.
                        MX      10 mail2.mylinux.com.
$ORIGIN mylinux.com.
dns                     A       192.168.1.104
dns2                    A       192.168.191.129
mail1                   A       192.168.1.102
mail2                   A       192.168.1.103
www                     A       192.168.1.101

子域授权

  在父域的资源记录文件中添加如下项:授权的子区域名称;子区域的名称服务器;子区域的名称服务器的IP地址:

mylinux.com.        IN  NS      ns.mylinux.com.   (授权的子域服务器名称)
mylinux.com.        IN  NS      ns2.mylinux.com. 
ns.mylinux.com.     IN  A       192.168.100.1     (子域服务器的IP地址)
ns2.mylinux.com.    IN  A       192.168.100.2

转发服务器

  被转发的服务器需要能够为请求者做递归,否则,转发请求不予进行。

  全部转发,凡是对非本机所负责的区域请求,都进行转发给指定服务器

配置文件中添加配置:
    options {
        forward only|first;
        forwarders { IP; };
    }

  区域转发,仅转发对特定的区域的请求至服务器

配置文件中添加区域配置:
    zone "特定区域" IN {        
        type forward;
        forwarders { IP; }
        forward only|first;
    }

视图

五、DNS与bind

内网:

  server1.company.com  172.20.1.1

  server2.company.com  172.20.1.2

  server3.company.com  172.20.1.3

  server4.company.com  172.20.1.4

外网:

  ftp.company.com   61.124.100.1

  www.company.com   61.124.100.2

  mail.company.com  61.124.100.3

  配置如图所示的网络DNS网络拓扑结构,内网用户可以使用正向解析所有内网计算机以及外网的服务器,反向解析内网服务器,允许递归查询;外用用户只能正向解析外网服务器,不能解析内网服务器,不允许使用递归查询。使用视图时,就必须所有的zone都归类到view中。

配置区域文件

[root@mylinux ~]# vim /etc/named.rfc1912.zones 
view "internal" {
        match-clients {172.20.1.0/24; };
        recursion yes ;
        zone "localhost" IN {
                type master;
                file "localhost-internal.zone";
                allow-update {none;};
        };
        zone "0.0.127.in-addr.arpa" IN {
                type master;
                file "localhost-internal.arpa";
                allow-update { none;} ;
        };
        zone "company.com" IN {
                type master;
                file "company-internal.zone";
                allow-update {none;};
        };
        zone "1.20.127.in-addr.arpa" IN {
                type master;
                file "company-internal.arpa";
                allow-update { none;} ;
        };
};
view "external" {
        match-clients { any; };
        recursion no ;
        zone "." IN {
                type hint;
                file "root.ca";
        };
        zone "company.com" IN {
                type master;
                file "company-external.zone";
                allow-update { none; };
        };
};
[root@mylinux ~]# named-checkconf

localhost-internal.zone数据解析文件

[root@mylinux named]# vim localhost-internal.zone 
$TTL    86400
@       IN      SOA     localhost.      root.localhost(
                42
                3H
                15M
                1W
                1D
        )
@       1D      IN      NS      dns.localhost.
dns     1D      IN      A       127.0.0.1
[root@mylinux named]# named-checkzone 'localhost' /var/named/localhost-internal.zone 
zone localhost-internal/IN: loaded serial 42
OK

localhost-inter.arpa反向解析文件

[root@mylinux named]# vim localhost-internal.arpa 
$TTL    86400
@       IN      SOA     localhost.      root.localhost(
                42
                3H
                15M
                1W
                1D
        )
@       1D      IN      NS      localhost.
1       1D      IN      PTR     localhost.
[root@mylinux named]# named-checkzone '0.0.127.in-addr.arpa' /var/named/localhost-internal.arpa 
zone 0.0.127.in-addr.arpa/IN: loaded serial 42
OK

company-internal.zone解析文件

[root@mylinux named]# vim company-internal.zone
$TTL    1D
@       IN      SOA     company.com.    root.company.com. (
                1054654658
                3H
                5M
                1W
                1D)
        IN      NS      dns.company.com.
        IN      MX      5       mail.com.com.
ftp     IN      A       61.124.100.1
www     IN      A       61.124.100.2
mail    IN      A       61.124.100.3
dns     IN      A       172.20.1.11
servel1     IN      A   172.20.1.1
servel2     IN      A   172.20.1.2
servel3     IN      A   172.20.1.3
servel4     IN      A   172.20.1.4
"company-internal.zone" [New] 17L, 403C written                        
[root@mylinux named]# named-checkzone 'company.com' /var/named/company-internal.zone
zone company-internal/IN: loaded serial 1054654658
OK
[root@mylinux named]#

company-internal.arpa反向解析文件

[root@mylinux named]# vim company-internal.arpa 
        IN      MX      5       mail.com.com.
ftp     IN      A       61.124.100.1
www     IN      A       61.124.100.2
mail    IN      A       61.124.100.3
dns     IN      A       172.20.1.11
servel1     IN      A   172.20.1.1
servel2     IN      A   172.20.1.2
servel3     IN      A   172.20.1.3
1       IN      PTR     server1.company.com.
$TTL    1D
@       IN      SOA     company.com.    root.company.com. (
                1054654658
                3H
                5M
                1W
                1D)
@       IN      NS      dns.company.com.
1       IN      PTR     server1.company.com.
2       IN      PTR     server2.company.com.
3       IN      PTR     server3.company.com.
4       IN      PTR     server4.company.com.
11      IN      PTR     dns.company.com.

"company-internal.arpa" 13L, 256C written                              
[root@mylinux named]# named-checkzone '1.20.127.in-addr.arpa' /var/named/company-internal.arpa 
zone 1.20.127.in-addr.arpa/IN: loaded serial 1054654658
OK

company-external.zone解析文件

[root@mylinux named]# vim company-external.zone 
$TTL    1D
@       IN      SOA     company.com.    root.company.com. (
                1054654658
                3H
                5M
                1W
                1D)
        IN      NS      dns.company.com.
        IN      MX      5       mail.com.com.
ftp     IN      A       61.124.100.1
www     IN      A       61.124.100.2
mail    IN      A       61.124.100.3
dns     IN      A       172.20.1.11
"company-external.zone" 13L, 263C written                              
[root@mylinux named]# named-checkzone 'company-external' /var/named/company-external.zone 
zone company-external/IN: loaded serial 1054654658
OK

重启即可测试:

[root@mylinux named]# service named restart
Stopping named: [  OK  ]
Starting named: [  OK  ]


推荐阅读:
  1. linux dns server bind9 内网域名解析
  2. DNS服务器之Bind

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

dns 域名 解析

上一篇:详解Javascript如何实现秒表计时游戏

下一篇:目录和文件管理 理论讲解

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》