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等。
一个完整的域名由顶级域以及各子域的名称所组成,各部分之间用圆点'.'分隔开来。其中最后一个 '.'称为根域,可省略,其左边部分称为顶级域名;第二个点'.'的左边部分称为二级域名(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服务器采用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配置文件
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
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;
}
视图
内网: 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 ]
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。