正在浏览 DNS 里的文章

 

Google 推出了公共的 DNS 解析服务器(Google Public DNS),可以用来代替 OpenDNS。Google承诺将严格遵循DNS协议,即不阻挡、不劫持和不过滤用户查询。Google Public DNS服务器IP非常好记,过目难忘:

引用

8.8.8.8 google-public-dns-a.google.com
8.8.4.4 google-public-dns-b.google.com

点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
当然,短IP的DNS服务器还有以下这些:

引用

4.3.2.1
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
4.2.2.5
4.2.2.6

概述:

这里摘抄BIND9手册中的一段话“视图是 BIND9 的强大的新功能, 允许名称服务器根据询问者的不同有区别的回答 DNS查询。特别是当运行拆分 DNS 设置而不需要运行多个服务器时特别有用。”手册中说得很明了,只是根据不同的来源DNS服务器做出不同的回应。

应用场合:

(1)    需要将域名分成内网和外网两个不同的区域进行解析
(2)    根据不同的来源IP做出相对于来源IP的解析(电信的用户查询,返回电信网络的服务器地址,网通的查询返回网通服务器地址)

试验环境

DNS服务器环境
CentOS 5.2

所需要的包

bind-chroot-9.3.4 将bind主程序关在家里面
bind-libs-9.3.4 Bind程序运行库
bind-9.3.4 Bind服务器主程序
bind-utils-9.3.4 Bind客户端相关命令
caching-nameserver-9.3.4 named.conf等配置文件的示例

网络环境

DNS

eth0:115.12.65.254

eth1:192.168.0.254

WWW Server

eth0: 115.12.65.3

eth1:192.168.0.250

MailServer

eth0: 115.12.65.4

eth1:192.168.0.251

FtpServer

eth0: 115.12.65.5

eth1:192.168.0.252

配置

mv /etc/named.caching-nameserver.conf /etc/named.conf
#将文件名修改为程序需要的名称,实际上/etc/下的named.caching-nameserver.conf文件是个连接文件,其准确位置在/var/named/chroot/etc/目录中,由于我们安装了bind-chroot包,所有的配置文件都在/var/named/chroot/的相关目录下,这里我只需要将/etc/下的连接文件修改为named.conf文件即可,由于named守护进程查找的就是/etc/下的named.conf所以我这一步一定要做。
vi /etc/named.conf

acl "lan"{192.168.0.0/24;};    //定义本地局域网网段地址ACL

options {
listen-on port 53 { any; };    //这里可以写any或者将DNS主机的两个地址写进去
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; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients      { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
//定义内网的视图
view inside{
match-clients   {"lan";}; //指定匹配的地址
recursion yes;
zone "example.com" {
type    master;
file    "named.lan.example.com";
allow-transfer{none;};
};
zone "0.168.192.in-addr.arpa"{
type master;
file    "named.192.168.0";
};
};

//定义外网的视图
view outside{
match-clients   {"any";};
recursion yes;

zone "example.com"{
type    master;
file    "named.wan.example.com";
allow-transfer{none;};
};
zone "1.0.10.in-addr.arpa"{
type master;
file    " named.115.12.65";
};
};

针对内网
vi /var/named/chroot/var/named/named.lan.example.com

$TTL    86400
@               IN SOA  ns1.      root.ns1. (
42              ; serial (d. adams)
3H              ; refresh
15M             ; retry
1W              ; expiry
1D )            ; minimum
@          IN      NS      ns1.example.com.
@          MX     10      mail.example.com.
ns1         IN      A       192.168.0.254
www        IN      A       192.168.0.250
bbs         IN      CNAME  www
mail         IN      A       192.168.0.251
ftp          IN      A       192.168.0.252

vi /var/named/chroot/var/named/named.192.168.0

$TTL    86400
@               IN SOA  @       root (
42              ; serial (d. adams)
3H              ; refresh
15M             ; retry
1W              ; expiry
1D )            ; minimum

IN      NS      @
254       IN      PTR     ns1.example.com.
250       IN      PTR     www.example.com.
251       IN      PTR     mail.example.com.
252       IN      PTR     ftp.example.com.

针对外网
vi /var/named/chroot/var/named/named.wan.example.com

$TTL    86400
@               IN SOA  ns1.      root.ns1. (
42              ; serial (d. adams)
3H              ; refresh
15M             ; retry
1W              ; expiry
1D )            ; minimum
@          IN      NS      ns1.example.com.
@          MX     10      mail.example.com.
ns1         IN      A       115.12.65.254
www        IN      A       115.12.65.3
bbs         IN      CNAME  www
mail         IN      A       115.12.65.4
ftp          IN      A       115.12.65.5

vi /var/named/chroot/var/named/named.115.12.65

$TTL    86400
@               IN SOA  @       root (
42              ; serial (d. adams)
3H              ; refresh
15M             ; retry
1W              ; expiry
1D )            ; minimum

IN      NS      @
254     IN      PTR     ns1.example.com.
3       IN      PTR     www.example.com.
4       IN      PTR     mail.example.com.
5       IN      PTR     ftp.example.com.

至此dns的配置文件都已经配置好了,接下来就是启动服务了;
service named restart
chkconfig named on    //随系统启动

注意事项:

(1)    视图语句的顺序是很重要的,一位用户的请求将会在它所匹配的第一个视图中被解答。
(2)    在视图语句中定义的域只对匹配视图的用户是可用的。
(3)    通过在多个视图中用相同名称定义一个域,不同域数据可以传给不同的用户。
(4)    许多在 named.conf的options 里的语句中给出的选项也能在视图语句中使用,仅仅用于使用那个视图解答请求的时候。