上一遍由于篇幅的问题,介绍和配置实例放一块,字数有点超,每次发表,总不成功,没办法,只好分开发表。本篇主要介绍本地DNS服务器的配置,主从服务器配置,泛域名解析,以及一个可远程控制本地DNS服务器的命令rndc。
配置本地DNS服务器示例
比如我新注册了一个域名,希望172.16.32.100这台主机可以负责该域名的解析,我该如何实现呢?
langdu.com,新域名 172.16.32.0/24,该网段分给该域名使用
ns1 172.16.32.100 #域名服务器名称及IP
www 172.16.32.20 172.16.32.21 #www服务及IP
mail 172.16.32.22 #邮件服务及IP
ftp 别名为www #别名
- 编辑# vim /etc/named.conf配置文件,添加如下内容:
- vim /etc/named.conf
- options {
- directory "/var/named" ;
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN {
- type master; #指定主服务器
- file "named.localhost";
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "named.loopback";
- };
- zone "langdu.com" IN { #新添加区域
- type master;
- file "langdu.com.zone";
- };
- 以上添加完成后,编辑# vim /var/named/langdu.conf.zone文件,添加如下内容
- $TTL 600 #宏,表示TTL值为600,全局使用,单位默认为秒
- langdu.com. IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040101
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1 #域名与第一行相同时可不写,表示直接继承上一行的区域名
- IN MX 10 mail # 同上,mail还可以写成mail.langdu.com.
- ns1 IN A 172.16.32.100
- mail IN A 172.16.32.22
- www IN A 172.16.32.21
- www IN A 172.16.32.20
- ftp IN CNAME www
- *.langdu.com. IN A 172.16.32.21 #表示泛域名解析,下边会具体介绍
- named-checkconf #检查配置文件有没有语法错误,下面每次的修改都需要进行检查,下面每次修改后检查命令不在给出,各位在实际操作中一定要检查没有错了在执行下面的命令
- named-checkzone "langdu.com" /var/named/langdu.com.zone #检查区域文件有没有错误
- service named start #以上检查正常后重启服务即可生效
- dig -t A www.langdu.com #使用该命令请求解析www.langdu.com这台主机
假如现在我想添加反向查询172.16.32.0这个网段,该怎么办呢?
- 编辑# vim /etc/named.conf配置文件,添加如下内容:
- zone "32.16.172.in-addr.arpa" IN { #反向区域名
- type master;
- file "172.16.32.zone"; #保存的区域数据文件
- };
- 编辑/var/named/172.16.32.zone输入如下内容:
- $TTL 600
- @ IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040101
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1.langdu.com.
- 100 IN PTR ns1.langdu.com.
- 22 IN PTR mail.langdu.com.
- 21 IN PTR www.langdu.com.
- 20 IN PTR www.langdu.com.
- #其中@表示直接继承区域名,也可以写成:32.16.172.in-addr.arpa.
- #下面一行前面为空表示自动继承上一行中区域名,当与上一行的去域名相同时可不写,想写的话可写成32.16.172.in-addr.arpa.
- named-checkconf #检查配置文件有没有语法错误
- named-checkzone "32.16.172.in-addr.arpa" /var/named/172.16.32.zone #检查区域文件有没有错误
- service named start #以上检查正常后重启服务即可生效每次修改完成后,都必须执行这三个命令
- dig -t PTR 172.16.32.21 #反向查询172.16.32.21
再来看一种情况,我们现在配置的主机是我们本地的域名服务器,就是说我们只负责我们本地的解析,但如果有个用户让我们的这个域名服务器去解析www.sohu.com,我们的主机会做出何种响应呢,会不会去解析呢?我们使用如下命令来试一下。
- dig -t A www.sohu.com @172.16.32.100 #通过该主机去查询www.sohu.com的IP等相关信息,@表示指定通过其后边的主机来查询
我们看到这个解析过程是可以得到答案的。其实dig默认是替所有主机解析的,只要有主机发来要解析的请求。dig命令中有一个选项recurse,该选项默认是启动的,就是说,我们来看下下面这个命令。
- dig +recurse -t A www.sohu.com @172.16.32.100 #该命令与上边的命令得到的结果一样,为了看效果,你也可以换一个网址重新测试下,如换成www.baidu.com的,看得到的结果是否一样
- 现在我可以使用另一个选项norecurse,实现不给www.sohu.com递归查询,命令如下:
- dig +norecurse -t A www.126.com @172.16.32.100 #这里我们换了一个网址,否则在上边的命令执行过后,我们系统上会有缓存,影响我们的结果,你也可以先执行该命令,然后再执行上边的两个命令,这样就可以使用同一个网址了
我们上边已经介绍过了,使用dig命令时,ANSWER SECTION选项出现的信息才是我们想要的答案,其他都是辅助信息。可以看到,当我们使用了norecurse选项后,我们本地的域名解析服务器就不在递归查询了。而是告诉该用户这个FQDN(FQDN:Qualified Domain Name,完全限定域名)归.com.管理,让该用户去找.com.来解析,自己不在负责解析。我们现在从.com.中选择一个域名服务器,再来查询一下。
- dig +norecurse -t A www.126.com @a.gtld-servers.net #为了看效果,我们同样加上norecurse选项
从上边命令的执行结果我们看到,我们依然没有得到我们想要的结果,系统仅返回给我们该FQDN的本地域名服务器,及各IP地址。现在我们在通过该FQDN的本地域名服务器,在来查询一下。我们从里边随便选一个试试,看结果会怎么样。
- dig +norecurse -t A www.126.com @ns1.nease.net #通过其本地的域名服务器查询其本地的FQDN解析情况
这次,出现了ANSWER SECTION选项的信息,这就是我们想要的答案,因此,当我们使用了norecurse选项时,当我们使用@指定某个主机来解析时,除非该主机是其本地的域名服务器,否则,我们是得不到我们想要的结果的。假如你就是不想得到ANSWER SECTION选项的信息,我就是想看其他选项的信息,那就另当别论了。怎么样,通过以上几个命令,现在你应该已经了解norecurse了吧。我们在来看dig命令中另一个有趣的选项。那就是trace。先来看个命令吧。
- dig +trace -t A www.baidu.com @172.16.32.100 #通过本主机追踪查询www.baidu.com的解析过程
从执行结果可以看到,因为我们的本地域名服务器不负责该域名的解析,所以会直接从根.查询,根域名服务器告诉我们可以从.com那里查询到,.com的域名服务器又告诉我们可以从baidu.com处查询,最后才返回给我们最终结果。这就是trace的作用。从中我们还可以看到递归是如何进行的。
泛域名解析
经常上网的人可能会遇到这样的情况,我在输入某个网址时,不小心输错了一个字符,但依然有结果返回,比如:我不小心想输入baidu的网址,结果写成wwww.baidu.com,但我依然可以打开百度首页,这是为什么呢?这里我们引入另一个概念,那就是
泛域名解析。
要实现泛域名解析,只需要在区域文件中添加一行信息即可实现泛域名解析。比如,当用户输入的信息错误时,我统统指向我的www服务器。则可在区域文件langdu.com.zone中添加如下一行信息:
- vim /var/named/langdu.com.zone
- $TTL 600
- langdu.com. IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040101
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1
- IN MX 10 mail
- ns1 IN A 172.16.32.100
- mail IN A 172.16.32.22
- www IN A 172.16.32.20
- www IN A 172.16.32.21
- ftp IN CNAME www
- *.langdu.com. IN A 172.16.32.20 :添加该行信息,即可实现泛域名解析
- 上面修改完成后,接下来的三个命令是什么你懂得!!! 执行完这三个命令我们来查询下。
- dig -t A fin.langdu.com @172.16.32.100 #区域文件中没有fin,使用本主机查询看能否实现泛域名解析
从上边的执行结果可以看到,能够实现泛域名解析。
我们知道,在实际的网络中,我们本地的DNS服务器除了本地的主机外,是不应该为别的主机提供递归域名解析的,因为如果我们的服务器为所有用户都提供递归查询,假如有外部的某个用户发起恶意的查询或***,我们的DNS服务器会很快挂掉的。所以我们必须设置我们的本地DNS服务器不随便为外部的主机提供递归。下面我们来看一下如何定义为谁递归。
- 在我们的配置文件/etc/named.conf中,在options中有这么一行信息:
- recursion yes; :表示为所有用户提供递归,不管有没有该选项,默认递归是开启的
- 我们可以去掉该选项,设置为谁递归,如可添加下面一行信息:
- options {
- directory "/var/named";
- allow-recursion { 172.16.0.0/16; }; :表示只给该网段的用户提供递归
- };
- 我们使用下面的命令测试一下,想要看到效果。
- dig -t A www.baidu.com @172.16.32.100 #该FQDN不归我们本地的DNS服务器解析,我们使用不同网段的IP看下我们指定的主机能否为我们递归查询
- 同样,我们还可以设置允许为谁查询,如我们添加添加下面一行信息:
- options {
- directory "/var/named";
- allow-query { 172.16.0.0/24; }; :表示仅给该网段的用户提供查询请求
- };
- 在实际的网络中,我们一般很少使用该选项。因为你只允许某些用户来查询,其他用户查询不了,就没法访问了。
我们继续介绍dig命令中,有两个选项我们经常也会用到,axfr和ixfr。
axfr:完全区域传送,同步所有数据
ixfr:增量区域传送,只同步没有的数据。如:
- dig -t axfr langdu.com #完全区域传送,可得到该区域内的所有数据
使用该命令可得到对方区域的所有数据,假如允许任何用户使用该命令这样是很危险的,所以,我们只允许我们的从服务器使用该命令,其他不允许使用。但我如何去定义谁可以使用该命令,谁不可使用该命令呢?我们可以再配置文件/etc/named.conf的options中添加一项内容,比方说我允许172.16.32.101这台主机传送,可写为:
- options {
- directory "/var/named";
- allow-recursion { 172.16.0.0/16; };
- allow-transfer { 172.16.32.10; }; :新添加内容,表示仅允许该主机传送
- };
- 在options选项中添加表示全局使用,我们可以将该选项添加到指定的区域中,表示仅允许传送某一区域的数据。如我们修改我们的配置文件/etc/named.conf里的内容:
- options {
- directory "/var/named";
- allow-recursion { 172.16.0.0/16; }; :表示仅允许该网段的用户递归
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN {
- type master;
- file "named.localhost";
- allow-transfer { none; }; :新添加内容,表示不允许任何人传送该区域数据
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "named.loopback";
- allow-transfer { none; }; :新添加内容,表示不允许任何人传送该区域数据
- };
- zone "langdu.com" IN {
- type master;
- file "langdu.com.zone";
- allow-transfer { 172.16.32.10; }; :新添加内容,表示仅允许该IP传送该区域数据
- };
- zone "32.16.172.in-addr.arpa" IN {
- type master;
- file "172.16.32.zone";
- };
- dig -t axfr langdu.com
- 可以看到没有任何结果,因为我们本主机IP为172.16.32.100,我们设置的仅172.16.32.20允许传送,所以我们是无法得到该区域的所有数据的。
主、从服务器
既然是主从服务器,肯定需要两台主机了,这里我们本机做主服务器,另一台IP为172.16.32.10的主机作为从服务器。在从服务器上需安装bind97及bind97工具包。在从服务上,我们使用ls -lh命令查看/var/named目录发现,该目录属主为root,属组为named,权限为750,即属组没有写权限,因为如果作为从服务器,我们需要将主服务器的数据文件同步到从服务器上,既然没有写权限,数据文件肯定不能存放在该目录下,但我们发现该目录下有个slaves,属主属组均为named,且权限为770,所以,我们将主服务器上同步过来的数据保存到该目录下。
- 修改从服务器上的配置文件/etc/named.conf:
- vim /etc/named.conf
- options {
- directory "/var/named";
- allow-recursion { 172.16.0.0/16; };
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN {
- type master;
- file "named.localhost";
- allow-transfer { none; }; :表示不允许任何人传送
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "named.loopback";
- allow-transfer { none; };
- };
- zone "langdu.com" IN {
- type slave; #设定为从服务器
- file "slaves/langdu.com.zone"; #这里是相对路径
- masters { 172.16.32.100; }; #标明主服务器是谁
- allow-transfer { none; };
- };
- zone "32.16.172.in-addr.arpa" IN {
- type slave; #设定为从服务器
- file "slaves/172.16.32.zone"; #这里是相对路径
- masters { 172.16.32.100; }; #标明主服务器是谁
- allow-transfer { none; };
- };
- 默认情况下该配置文件属主属组均为root,这里我们将其属组修改为named。
- 一切工作完成后,记得先检查,无误后重启named服务。这里不再给出命令。
现在我们回到我们的主服务器上,查看下主服务器的日志。
- tail /var/log/messages #查看主服务器上的日志,发现出现如下信息
- Apr 2 18:32:05 liqiang named[6952]: zone 32.16.172.in-addr.arpa/IN: loaded serial 2013040101
- Apr 2 18:32:05 liqiang named[6952]: zone langdu.com/IN: loaded serial 2013040101
- Apr 2 18:32:05 liqiang named[6952]: zone localhost/IN: loaded serial 0
- Apr 2 18:32:05 liqiang named[6952]: running
- Apr 2 18:32:05 liqiang named[6952]: zone 32.16.172.in-addr.arpa/IN: sending notifies (serial 2013040101)
- Apr 2 18:32:05 liqiang named[6952]: zone langdu.com/IN: sending notifies (serial 2013040101)
- Apr 2 18:32:15 liqiang named[6952]: client 172.16.32.10#39300: transfer of '32.16.172.in-addr.arpa/IN': AXFR started #完全区域传送开始
- Apr 2 18:32:15 liqiang named[6952]: client 172.16.32.10#39300: transfer of '32.16.172.in-addr.arpa/IN': AXFR ended #完全区域传送结束
- Apr 2 18:32:16 liqiang named[6952]: client 172.16.32.10#55631: transfer of 'langdu.com/IN': AXFR started #完全区域传送开始
- Apr 2 18:32:16 liqiang named[6952]: client 172.16.32.10#55631: transfer of 'langdu.com/IN': AXFR ended #完全区域传送结束
从上边结果可以看到,主服务器完成了数据传送,我们再来看一下从服务器上的日志。
- tail /var/log/messages #查看从服务器上的日志,出现如下信息
- Mar 30 08:34:31 practice named[15728]: zone 32.16.172.in-addr.arpa/IN: Transfer started.
- Mar 30 08:34:31 practice named[15728]: transfer of '32.16.172.in-addr.arpa/IN' from 172.16.32.100#53: connected using 172.16.32.10#39300
- Mar 30 08:34:31 practice named[15728]: zone 32.16.172.in-addr.arpa/IN: transferred serial 2013040101
- Mar 30 08:34:31 practice named[15728]: transfer of '32.16.172.in-addr.arpa/IN' from 172.16.32.100#53: Transfer completed: 1 messages, 9 records, 259 bytes, 0.071 secs (3647 bytes/sec)
- Mar 30 08:34:31 practice named[15728]: zone 32.16.172.in-addr.arpa/IN: sending notifies (serial 2013040101)
- Mar 30 08:34:32 practice named[15728]: zone langdu.com/IN: Transfer started.
- Mar 30 08:34:32 practice named[15728]: transfer of 'langdu.com/IN' from 172.16.32.100#53: connected using 172.16.32.10#55631
- Mar 30 08:34:32 practice named[15728]: zone langdu.com/IN: transferred serial 2013040101
- Mar 30 08:34:32 practice named[15728]: transfer of 'langdu.com/IN' from 172.16.32.100#53: Transfer completed: 1 messages, 13 records, 299 bytes, 0.045 secs (6644 bytes/sec)
- Mar 30 08:34:32 practice named[15728]: zone langdu.com/IN: sending notifies (serial 2013040101)
通过以上两个日志我们看到,完全区域传送完成。且我们去从服务器上/var/named/slaves目录下查看,有这两个区域文件,打开查看后,发现其写法也更规范。完全传送实现了,那增量传送能不能实现呢?我们去修改一下主服务器上区域文件的信息。
- 先修改主服务器上的配置文件:
- vim /etc/named.conf
- options {
- directory "/var/named";
- allow-recursion { 172.16.0.0/16; };
- notify yes; #添加该行,表示有修改时通知从服务器
- };
- 修改主服务器的区域文件,先修改langdu.com.zone:
- vim langdu.com.zone #修改该文件
- $TTL 600
- langdu.com. IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040102 ;修改后记得将版本号加1
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1
- IN NS ns2
- IN MX 10 mail
- ns1 IN A 172.16.32.100
- ns2 IN A 172.16.32.10
- mail IN A 172.16.32.22
- www IN A 172.16.32.20
- www IN A 172.16.32.21
- ftp IN CNAME www
- now IN A 172.16.32.23 ;添加该行信息
- langdu.com. IN A 172.16.32.21
- *.langdu.com. IN A 172.16.32.20
- 在修改172.16.32.zone
- vim 172.16.32.zone #修改该文件
- $TTL 600
- @ IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040102 ;修改后记得将版本号加1
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1.langdu.com.
- IN NS ns2.langdu.com.
- 100 IN PTR ns1.langdu.com.
- 10 IN PTR ns2.langdu.com.
- 22 IN PTR mail.langdu.com.
- 21 IN PTR www.langdu.com.
- 20 IN PTR www.langdu.com.
- 23 IN PTR now.langdu.com. #新添加内容
- 修改完成后,检查然后重启服务。
我们在一块来看一下日志吧。
- tail /var/log/messages #查看主服务器的日志
- Apr 2 18:41:39 liqiang named[6952]: reloading configuration succeeded
- Apr 2 18:41:39 liqiang named[6952]: reloading zones succeeded
- Apr 2 18:41:39 liqiang named[6952]: zone 32.16.172.in-addr.arpa/IN: loaded serial 2013040102
- Apr 2 18:41:39 liqiang named[6952]: zone langdu.com/IN: loaded serial 2013040102
- Apr 2 18:41:39 liqiang named[6952]: zone 32.16.172.in-addr.arpa/IN: sending notifies (serial 2013040102) #发送通知,标明新版本号
- Apr 2 18:41:39 liqiang named[6952]: zone langdu.com/IN: sending notifies (serial 2013040102)
- Apr 2 18:41:39 liqiang named[6952]: client 172.16.32.10#52251: transfer of '32.16.172.in-addr.arpa/IN': AXFR-style IXFR started
- Apr 2 18:41:39 liqiang named[6952]: client 172.16.32.10#52251: transfer of '32.16.172.in-addr.arpa/IN': AXFR-style IXFR ended
- Apr 2 18:41:40 liqiang named[6952]: client 172.16.32.10#48890: transfer of 'langdu.com/IN': AXFR-style IXFR started #增量传送开始
- Apr 2 18:41:40 liqiang named[6952]: client 172.16.32.10#48890: transfer of 'langdu.com/IN': AXFR-style IXFR ended #增量传送结束
可以看到,主服务器向从服务器发送了修改通知。最后四行显示增量传送也完成了。我们再来看一下从服务器的区域文件内容,看是否有我们添加的内容。
- cat langdu.com.zone #查看该文件,记住我们当前是处于/var/named/slaves目录下
- $ORIGIN .
- $TTL 600 ; 10 minutes
- langdu.com IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040102 ; serial
- 3600 ; refresh (1 hour)
- 300 ; retry (5 minutes)
- 172800 ; expire (2 days)
- 21600 ; minimum (6 hours)
- )
- NS ns1.langdu.com.
- NS ns2.langdu.com.
- A 172.16.32.21
- MX 10 mail.langdu.com.
- $ORIGIN langdu.com.
- * A 172.16.32.20
- ftp CNAME www
- mail A 172.16.32.22
- now A 172.16.32.23 ;我们刚才新添加的内容也显示正常
- ns1 A 172.16.32.100
- ns2 A 172.16.32.10
- www A 172.16.32.20
- A 172.16.32.21
- 再来看一下反向区域文件。
- cat 172.16.32.zone
- $ORIGIN .
- $TTL 600 ; 10 minutes
- 32.16.172.in-addr.arpa IN SOA ns1.langdu.com. admin.langdu.com. (
- 2013040102 ; serial
- 3600 ; refresh (1 hour)
- 300 ; retry (5 minutes)
- 172800 ; expire (2 days)
- 21600 ; minimum (6 hours)
- )
- NS ns1.langdu.com.
- NS ns2.langdu.com.
- $ORIGIN 32.16.172.in-addr.arpa.
- 10 PTR ns2.langdu.com.
- 100 PTR ns1.langdu.com.
- 20 PTR www.langdu.com.
- 21 PTR www.langdu.com.
- 22 PTR mail.langdu.com.
- 23 PTR now.langdu.com. ;新加内容
下面看一个命令,该命令可实现控制我们的DNS服务器。
rndc,域名服务器控制工具,使用该命令可实现控制本地主机的DNS服务器,也可实现控制远程主机的DNS服务器,但最好不要使用,会增加风险,这里我们仅简单介绍下如何使用,但不建议运行其他主机控制DNS服务器。首先需要生成rndc的配置文件,我们通过如下命令实现:
- rndc-confgen > /etc/rndc.conf #表示生成配置文件
- 我们看一下其配置文件的内容:
- cat /etc/rndc.conf
- key "rndc-key" { ;该配置文件生成的密钥文件/etc/rndc.key没有用,可删除,这里我们删除,不用此文件。
- algorithm hmac-md5;
- secret "okzisTdkFy5dOW9QMU1QtQ==";
- };
- options {
- default-key "rndc-key"; ;默认生成的密钥,随机生成,各不相同
- default-server 127.0.0.1; ;默认的服务器IP
- default-port 953; ;默认工作的端口号
- };
- # key "rndc-key" {
- # algorithm hmac-md5;
- # secret "okzisTdkFy5dOW9QMU1QtQ==";
- # };
- #
- # controls {
- # inet 127.0.0.1 port 953
- # allow { 127.0.0.1; } keys { "rndc-key"; };
- # };
- 其中这部分#注释内容需添加到named.conf文件中。
- 先介绍几个选项,待会我们可以使用:
- rndc [-c /etc/rndc.conf] status #可查看服务状态信息
- rndc [-c /etc/rndc.conf] flush #清空缓存
- rndc [-c /etc/rndc.conf] stop #停止服务
- rndc [-c /etc/rndc.conf] notify "ZONE_NAME" #通知该区域
首先将上边说的注释部分添加到我们的named.conf配置文件中,检查无误后重启named服务。
- vim /etc/named.conf #编辑该文件,添加如下内容
- key "rndc-key" {
- algorithm hmac-md5;
- secret "okzisTdkFy5dOW9QMU1QtQ==";
- };
- controls {
- inet 127.0.0.1 port 953
- allow { 127.0.0.1; } keys { "rndc-key"; };
- 检查后重启服务。命令是什么你懂的。不会自己去上边找。
- rndc -c /etc/rndc.conf status #使用该命令查询服务信息,下面是显示的信息
- version: 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 #版本
- CPUs found: 1 #CPU个数
- worker threads: 1 #工作的进程数
- number of zones: 16 #区域个数
- debug level: 0
- xfers running: 0 #有没有增量区域传送
- xfers deferred: 0
- soa queries in progress: 0
- query logging is OFF
- recursive clients: 0/0/1000
- tcp clients: 0/100
- server is up and running #服务开启,且正在运行
- rndc notify "langdu.com" #指定配置文件可省,这里我们省略,通知langdu.com区域,当某个区域修改时可使用该命令通知从服务器
- rndc flush #表示清空缓存
- rndc stop #停止服务
- netstat -tunlp #可使用该命令查询下,我们的53号端口都已停止
- service named restart #重启服务
如果想让别的主机控制我们的DNS服务器,可修改named.conf中的信息,如现在我想让172.16.32.10控制我们本地这台主机的DNS服务器,可修改为:
- vim /etc/named.conf
- controls {
- inet 172.16.32.100 port 953 ;修改IP地址为DNS服务器的IP
- allow { 172.16.32.10; } keys { "rndc-key"; }; ;设定由哪个主机控制我们的DNS服务器,密钥是多少
- };
- 检查后重启服务。
- netstat -tunlp #可使用该命令查询下,我们的953端口已经开启
- 因我们的远程主机上没有该主机的密钥,要想实现其他主机控制我们的DNS服务器,我们指定的主机需也有该主机的rndc.conf文件才行。
- scp /etc/rndc.conf 172.16.32.10:/root/ #将本主机的rndc.conf文件传送到我们的远程主机上,并保存到/root目录下
- rndc -c /etc/rndc.conf status #使用该命令查询远程主机的服务信息,因为我们两个主机的时间没有同步,所以会报错
下一篇介绍子域授权、智能解析和DNS的日志系统。敬请关注。