本节我将分别对DNS的子域授权、DNS配置转发器、DNS配置转发区域以及DNS的view进行讲解,本节本来是想跟上一节内容一起讲解的,但是由于字数问题我就又分了单独一节来讲。
实验环境:Centos6.5x86_64 主DNS服务器 ns.magedu.com 172.16.6.20 子DNS服务器 ns.sub.magedu.com 172.16.6.50 子域授权(这里只讲解正向解析)
子域授权,顾名思义就是在一个域的基础上又创建子域,当然这个子域必须在父域中进行声明,下面我们就来看下他是怎么实现的。
父域中配置
首先得在父域的解析库文件中添加子域的NS记录以及A记录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| [iyunv@localhost ~]# vim /var/named/magedu.com.zone
$TTL 3600
@ IN SOA ns.magedu.com. admin.magedu.com (
2014080609 版本每次务必改
1H
10M
7D
1D )
IN NS ns
IN NS ns2
sub IN NS ns.sub 添加子域服务器的NS记录
IN MX 10 mail
ns IN A 172.16.6.20
ns2 IN A 172.16.106.20
ns.sub IN A 172.16.6.50 添加子域服务器的A记录
mail IN A 172.16.6.21
www IN A 172.16.6.22
web IN CNAME www
|
还是版本的问题,每次修改之后必须得改。
子域服务器配置
子域服务器中的/etc/named.conf文件还是跟父域中的一样,只要是修改/etc/named.rfc1912.zones
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| [iyunv@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-dra ... -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 "sub.magedu.com" IN {
type master;
file "sub.maedu.com.zone";
};
|
配置好之后检查语法
1
| [iyunv@localhost ~]# named-checkconf
|
配置子域服务器中的解析库文件
1
2
3
4
5
6
7
8
9
10
11
12
13
| [iyunv@localhost ~]# vim /var/named/sub.magedu.com.zone
$TTL 3360
@ IN SOA sub.magedu.com. admin.magedu.com. ( 注意子域的名称
2014080601
1H
10M
1W
2D )
IN NS ns
IN MX 10 mail
ns IN A 172.16.6.50
www IN A 172.16.6.52
mail IN A 172.16.6.51
|
配置好之后别忘了语法检查
1
2
3
| [iyunv@localhost ~]# named-checkzone "sub.magedu.com" /var/named/sub.magedu.com.zone
zone sub.magedu.com/IN: loaded serial 2014080601
OK
|
确认无误之后就可以进行重新加载了
1
2
| [iyunv@localhost ~]# rndc reload
server reload successful
|
配置好之后就可以进行测试了
对www.sub.magedu.com 进行测试,结果返回正确结果172.16.6.52
这样一个子域授权就正式完成了并且可以运行了。
DNS配置转发器
下面我们用DNS来配置一个转发器,一旦该服务器本身不能解析,则器会将请求转发给转发器指向的服务器进行解析。
这里我们就对子域服务进行配置转发功能。
转发器的设置非常简单,只需要对/etc/named.conf进行配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| [iyunv@localhost ~]# vim /etc/named.conf
只需要对options进行修改
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 { localhost; };
recursion yes;
forward only; 注意格式:这里的only表示转发后无论返回什么答案都选择相信
forwarders { 172.16.6.20; }; 设置转发的服务器
//dnssec-enable yes;
//dnssec-validation yes;
//dnssec-lookaside auto;
/* Path to ISC DLV key */
//bindkeys-file "/etc/named.iscdlv.key";
};
|
配置完成不要忘记重读配置文件
1
| [iyunv@localhost ~]# rndc reconfig
|
好了,下面我们来测试一下
我们选择对www.magedu.com进行测试,他不属于子域服务器的管辖范围
测试成功,返回正确值172.16.6.22
DNS配置转发区域
为了体现区别,这里我们把刚刚配置转发器的两项给注释掉。
我们不但可以配置转发,而且还可以控制想要转发的区域。
1
2
3
4
5
6
7
| [iyunv@localhost ~]# vim /etc/named.rfc1912.zones
加入一个zone
zone "magedu.com" IN {
type forward;
forward only;
forwarders { 172.16.6.20; };
};
|
配置后重读配置文件
1
| [iyunv@localhost ~]# rndc reconfig
|
配置成功后进行测试。
view视图功能
我们知道网通和电信之间进行相互访问速度比较慢,那是因为每一次相互访问都会经过北京的一个机房中唯一的一个通信机房,而带宽是非常有限,因此为了避免没有意义的相互访问,这里我们就引入了view的概念,即脑裂。
下面我们就来配置下:
需要注意的是在写视图时,所有的zone都必须在view里面,所有要把/etc/named.conf里的根的zone也要放到view里去。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| [iyunv@localhost ~]# vim /etc/named.rfc1912.zones
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
acl mwjnet {
172.16.0.0/16;
}; 这里创建一个访问控制列表
view local {
match-clients { mwjnet; }; view调用控制列表mwjnet
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
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 "sub.magedu.com" IN {
type master;
file "sub.magedu.com.zone"; 这里文件中定义了www.sub.magedu.com.指向的地址为
}; 172.16.6.52
zone "magedu.com" IN {
type forward;
forward only;
forwarders { 172.16.6.20; };
};
};
view tel {
match-clients { any; };
zone "sub.magedu.com" IN {
type master;
file "magedu.com.2"; 这里文件中定义了www.sub.magedu.com. 指向的地址为
}; 为2.3.4.5
};
|
配置完成之后先检测语法
1
| [iyunv@localhost ~]# named-checkconf
|
生成相应的解析库文件,这里只须生成/var/named/magedu.com.2
1
2
3
4
5
6
7
8
9
10
| $TTL 3360
@ IN SOA sub.magedu.com. admin.magedu.com. (
2014080701
1H
10M
1w
3D )
IN NS ns
ns IN A 172.16.6.50
www IN A 2.3.4.5
|
检测语法并重新加载
当然还要修改权限以及数组,这里我就没有附上操作了
1
2
3
4
5
| [iyunv@localhost ~]# named-checkzone "sub.magedu.com" /var/named/magedu.com.2
zone sub.magedu.com/IN: loaded serial 2014080701
OK
[iyunv@localhost ~]# rndc reload
server reload successful
|
下面就可以进行测试了
用192网段的地址主机
结果为2.3.4.5
当用172.16网段的主机时
得到的地址为172.16.6.52
这样结果就跟我们预想的一样,不同的网段去到同一个服务器上找到的地址不同,这样我们的视图功能就已经完成并且可以使用。
本节的内容就讲到这里了,讲的不好的地方希望大家多提建议,不对的地方非常欢迎指正,谢谢!
|