DNS Server 4 forward 区域类型
我们大家都知道我们的DNS服务器的区域类型有4种:master(主)slave(从) hint(根) forward(转发)
在前面3节的学习中master slave hint的区域类型我们大家都已经很熟悉了,下面我就想给介绍一下
转发数据类型forward.不过在讲之前,我想让大家考虑一下上一节为什么我们在子域名服务器上就不能
dig通父域的服务器呢,这是因为在我们的DNS系统中一般来说子域服务器是无法知道其父域DNS是谁的,
想想看,我们在配置子域授权时,什么地方提到过子域可以知道父域DNS主机ip地址的地方,要想实现
这样跨域的解析就要用到forward 也就是说当我们的子域DNS在接到www.yayu.com时,不是将其交给
根域,而是交给我们定义好的一个域 yayu.com。
需要在我们的子域DNS服务器ns.tech.yayu.com上的/etc/named.conf中添加
zone “yayu.com” IN {
type forward;
forwarders { 192.168.106.3; }; 这里指向服务的DNS服务器
forward only; 这里也可以写成forward frist ,区别在下面讲解
}
forward only:表示让我们的192.168.106.3 进行递归转发,也就是我给了92.168.106.3
,192.168.106.3就会给我最终的答案默认是递归转发
forward first:表示我首先交给192.168.106.3进行递归转发,如果不成功,我就是用迭代
自己开始从根开始一步一步的查询
在我们的ns.tech.yayu.com主机上
]#vim /etc/named.conf
options {
directory "/var/named";
version "1.1";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "yayu.com" IN {
type forward;
forwarders { 192.168.106.3; };
forward only;
};
zone "tech.yayu.com" IN {
type master;
file "tech.yayu.com.zone";
};
]#rndc reload
]#dig -t A www.yayu.com
这时就会有结果了 flags中也是没有a的
现在有一个问题我的ns.tech.yayu.com不能联通外网,,但是和我ns.tech.yayu.com
在同一个网段的主机bs.tech.yayu.com 能够上外网其地址是192.168.106.7我们怎么样
实现ns.tech.yayu.com能够dig同外网呢?
方法就是在我们ns.tech.yayu.com的/etc/named.conf文件中在option中定义forward
,也就是定义全局转发,不过全局转发的优先级是低于域转发,如果能够匹配到域转发,就以
域转发,否则最后才使用全局转发。
在 ns.tech.yayu.com 这台主机上
]#vim /etc/named.conf
options {
directory "/var/named";
forward only;
forwarders { 192.168.106.7; };
version "1.1";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "yayu.com" IN {
type forward;
forwarders { 192.168.106.3; };
forward only;
};
zone "tech.yayu.com" IN {
type master;
file "tech.yayu.com.zone";
};
]#rndc reload
]#dig -t A www.yayu.com
]#dig -t A www.tech.yayu.com
]#dig -t A www.sina.com 这些都是能够成功的
基于acl的访问DNS 来控制传送、查询、递归。 不过我们系统中已经定义3个主机 any none localhost
分别表示任意的 没有一个 只有本地的主机。
]#vim /etc/named.conf
acl "slaves" {
192.168.106.2; 我们可以定义多个acl
192.168.106.4;
};
options {
directory "/var/named";
forward only;
forwarders { 192.168.106.7; };
allow-rescursion { slaves; }; 准许递归只能写在这个地方
version "1.1";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "yayu.com" IN {
type forward;
forwarders { 192.168.106.3; };
forward only;
allow-query { slaves; }; 准许谁查询
};
zone "tech.yayu.com" IN {
type master;
file "tech.yayu.com.zone";
allow-transfer { none; }; 准许谁进行传送 传送分为全局传送axfr 和增量传送 ixfr
};
]#rndc reload
这样基于acl的DNS也就做好了!
本文出自 “近水楼台,向阳花木” 博客,转载请与作者联系!