Ubuntu下的DNS服务器客户端

来源:互联网 发布:leetcode面试题js 编辑:程序博客网 时间:2024/06/05 23:54

查看当前DNS

$ cat /etc/resolv.conf

当前测试环境

  • zjc.com -> 192.168.31.100
  • svr.zjc.com -> 192.168.31.101
  • *.blog.zjc.com -> 192.168.31.101
  • vzjc.com -> 192.168.31.100
  • mail.vzjc.com -> 192.168.31.100

DNS服务器

安装

$ sudo apt-get install bind9

配置DNS服务器

设置forwards

$ sudo vim /etc/bind/named.conf.options

去掉 forwarders 的注释,所有本机DNS没有配置的地址会投递到这里配置的DNS服务器上,具体地址可以根据情况配置,这里使用 google 的DNS服务器

forwarders {       8.8.8.8;       8.8.4.4;};

配置正向解析

$ sudo vim /etc/bind/named.conf.local
// /etc/bind/named.conf.localzone "zjc.com" {     type master;     file "/etc/bind/db.zjc-vzjc.com";};zone "vzjc.com" {     type master;     file "/etc/bind/db.zjc-vzjc.com";};zone "31.168.192.in-addr.arpa" {     type master;     file "/etc/bind/db.192.168.31";};
$ sudo vim /etc/bind/db.zjc-vzjc.com
; /etc/bind/db.zjc-vzjc.com;; BIND data file for dev sites;$TTL    604800@       IN      SOA     zjc.com. admin.vzjc.com. (                              1         ; Serial                         604800         ; Refresh                          86400         ; Retry                        2419200         ; Expire                         604800 )       ; Negative Cache TTL@       IN      NS      zjc.com.@       IN      NS      vzjc.com.zjc.com. IN A 192.168.31.100vzjc.com. IN A 192.168.31.100svr.zjc.com. IN A 192.168.31.101*.blog.zjc.com. IN A 192.168.31.101mail.vzjc.com. 14400 IN A 192.168.31.100

在上面的配置中两个
@ IN NS
表示此文件对应的域名为 zjcvzjc两个域名,这两句是必须可少的

如果加上下面的代码

@       IN      A       192.168.21.222@       IN      A       192.168.31.200@       IN      A       192.168.31.244

表示这个文件对应的zjc vzjc 对应的IP地址为 222200244
这里不需要一个域名对应多个IP的配置,所以不加

zjc.com. IN A
vzjc.com. IN A
是必须加的,但是如果加上了上面的代码@ IN A可以不加

配置反向解析

$ sudo vim /etc/bind/db.192.168.31
; /etc/bind/db.192.168.31;; BIND reverse data file for dev domains;$TTL    604800@       IN      SOA     dev. admin.vzjc. (                              1         ; Serial                         604800         ; Refresh                          86400         ; Retry                        2419200         ; Expire                         604800 )       ; Negative Cache TTL;@        IN      NS      zjc.com.@        IN      NS      vzjc.com.100      IN      PTR     zjc.com.100      IN      PTR     vzjc.com.100      IN      PTR     mail.vzjc.com.101      IN      PTR     svr.zjc.com.101      IN      PTR     a.blog.zjc.com.101      IN      PTR     b.blog.zjc.com.

其中的@ IN NS还必须加,但是加什么貌似没什么影响,不加就会导致反向解析出错 - 留待以后研究吧
反向解析通过ip得到的地址配置不能出现 *, 否则会出现配置错误

重启BIND9服务

 $ sudo service bind9 restart

使用DNS服务的机器上

sudo vim /etc/resolv.conf

修改 nameserver 指向配置的DNS服务器的地址

上面的修改每次重启都会被重置,可以修改文件
/etc/resolvconf/resolv.conf.d/base
来实现一次修改,终身不变

重启服务networking服务,刷新DNS

$ sudo service networking restart

测试

$ nslookup

正向解析输入
zjc.com
svr.zjc.com

正向向前解析
www.baidu.com

反向解析
192.168.31.10

思考

  • 反向解析 named.conf.local 文件的配置项ip是反向的,并且以 .in-addr.arpa 结尾
  • 如果出现反向解析错误,那么首先从反向的配置文件出错这方面找原因。例如:出现了*号

参考

http://cloudnil.com/2014/05/14/ubuntu-dns-server-configuration/
http://blog.sina.com.cn/s/blog_545f2b470101apw4.html
http://tieba.baidu.com/p/3372693994

0 0
原创粉丝点击