RHCE培训笔记——DNS View的实现

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

DNS视图能够智能地自动判断访问者的IP地址,然后根据不同的访问者把域名分别解析成不同的IP地址,从而让不同的IP指向在不不同网络上的主机,例如使网通用户会访问到网通服务器,电信用户会访问到电信服务器。


DNS视图的实现,主要用到acl和view两个字段。以下实验平台为Centos 6.2,环境为:

DNS服务器

主机名:itpro    IP地址:192.168.56.53

客户端测试机A

主机名:pca     IP地址:192.168.56.101

客户端测试机B

主机名:pcb     IP地址:192.168.56.202


注:这是在内网做的实验,用的是同一网段的IP;不过,这里假设成三个网段里的三台设备:itpro是公网里的dns服务器,pca是连接电信网络的客户机,pcb是连接联通网络的客户机。


一、DNS服务器的配置


有关bind和bind-chroot的安装及使用,前一篇《RHCE培训笔记——DNS基础》已经介绍,这里不再详述。


为避免路径过长或因切换路径等而作多余的啰嗦,本文是在root目录下进行的,请注意。实际操作建议在伪目录中进行。


1.修改主配文件

内容修改后,如下:

[root@itpro ~]# cat /etc/named.conf

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
//  named.conf
options {
         listen-on port 53 { any; };
         listen-on-v6 port 53 { any; };
         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; };
         recursion  yes ;
         dnssec- enable  yes ;
         dnssec-validation  yes ;
         dnssec-lookaside auto;
         /* Path to ISC DLV key */
         bindkeys- file  "/etc/named.iscdlv.key" ;
         managed-keys-directory  "/var/named/dynamic" ;
};
logging {
         channel default_debug {
                 file  "data/named.run" ;
                 severity dynamic;
         };
};
acl cncnet { 192.168.56.101; };   #注,定义联通网段,这里只指定一个IP地址
acl telecomnet { 192.168.56.202; };   #注,定义电信网段,这里只指定一个IP地址
view telecom {
zone  "."  IN {
       type  hint;
       file  "named.ca" ;
};
// 注,这个zone在named.conf里默认是有的,使用view语句后,
// 要把它删掉(删掉后好像没影响,不过这是一个hint类型的zone,保留了),
// 或放进view里,否则在重启named时会有如下报错,
// “when using  'view'  statements, all zones must be  in  views”
         match-clients { telecomnet; };
         recursion  yes ;
         include  "/etc/named.rfc1912.zones" ;
};
view cnc {
         match-clients { cncnet; };
         recursion  yes ;
         zone  "sq.com"  IN {
                 type  master;
                 file  "cnc.sq.com.zone" ;
                 allow-update { none; };
         };
         zone  "100.40.125.in-addr.arpa"  IN {
                 type  master;
                 file  "cnc.sq.com.local" ;
                 allow-update { none; };
         };
};
include  "/etc/named.root.key" ;


注:view cnc{}本是想写成类似view telecom{}那样的格式,如

view cnc {

       match-clients { cncnet; };

       recursion yes;

       include "/etc/named.cnc.zones";

};

并拷贝/etc/named.rfc1912.zones文件(及其权限),创建/etc/named.cnc.zones文件,再在named.cnc.zones文件里重新定义zone内容。

但配置完成后,在重启named时报错,说找到到named.cnc.zones这个文件,

[root@itpro ~]# service named restart

Stopping named:                                            [  OK  ]

Starting named:

Error in named configuration:

/etc/named.conf:63: open: /etc/named.cnc.zones: file not found

                                                          [FAILED]

将named.cnc.zones改为named.rfc1913.zones,也是找不到,由此可以确实,默认的named.rfc1912.zones文件,其名字应该是有意义的,或者是在哪个配置里进行了注册之类,不过尚未找出具体原委。没办法,只好将view cnc的zone内容,写进named.conf这个主配置文件里。其实干脆把telecom{}区域的所有配置内容也写到这个主配置文件里,会更直观。


2.配置named.rfc1912.zones文件

这个配置文件,被view telecom {}用到,

内容修改后如下:

[root@itpro ~]# cat /etc/named.rfc1912.zones

1
2
3
4
5
6
7
8
9
10
11
12
//  named.rfc1912.zones:
……省略部分内容……
zone  "sq.com"  IN {
         type  master;
         file  "sq.com.zone" ;
         allow-update { none; };
};
zone  "200.96.202.in-addr.arpa"  IN {
         type  master;
         file  "sq.com.local" ;
         allow-update { none; };
};


注:在文件内容后面追加以上内容。


3.针对联通用户的域名及反向域名解析记录

在/var/named/目录下,分别以named.localhost和named.loopback为模板,创建cns.sq.com.zone和cns.sq.com.local两个文件。注意,拷贝模板时,要使用cp –p命令以保留模板属性。


以下是两数据文件修改后的内容:

[root@itpro ~]# cat /var/named/cnc.sq.com.zone

1
2
3
4
5
6
7
8
9
10
$TTL 1D
@       IN SOA  ns.sq.com root (
                                         2       ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
          NS     ns.sq.com.
ns      A       192.168.56.101
www     A       125.40.100.111

[root@itpro ~]#

[root@itpro ~]# cat /var/named/cnc.sq.com.local

1
2
3
4
5
6
7
8
9
10
$TTL 1D
@       IN SOA  ns.sq.com. root (
                                         2       ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
         NS      ns.sq.com.
ns      A       192.168.56.101
111     PTR     www.sq.com.


4.针对电信用户的域名及反向域名解析记录

在/var/named/目录下,分别以amed.localhost和named.loopback为模板,创建sq.com.zone和sq.com.local两个文件。注意,拷贝模板时,要使用cp –p命令以保留模板属性。


以下是两数据文件修改后的内容:

[root@itpro ~]# cat /var/named/sq.com.zone

1
2
3
4
5
6
7
8
9
10
$TTL 1D
@       IN SOA  ns.sq.com root (
                                         3       ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
          NS     ns.sq.com.
ns      A       192.168.56.101
www     A       202.96.200.111

[root@itpro ~]#

[root@itpro ~]# cat /var/named/sq.com.local

1
2
3
4
5
6
7
8
9
10
$TTL 1D
@       IN SOA  ns.sq.com. root (
                                         3       ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
         NS      ns.sq.com.
ns      A       192.168.56.101
111     PTR     www.sq.com.



二、测试


先将客户机pca、pcb的dns都指向DNS服务器192.168.56.53。


1.在主机pca(192.168.0.101)上测试(假设此机使用的是联通的网络)

[root@itpro ~]# nslookup www.sq.com

Server:         192.168.56.101

Address:        192.168.56.101#53


Name:   www.sq.com

Address: 125.40.100.111  #注,解析出的是联通的地址


[root@ pca ~]# nslookup 125.40.100.111

Server:         192.168.56.101

Address:        192.168.56.101#53


111.100.40.125.in-addr.arpa     name = www.sq.com.


2.在主机pcb(192.168.0.202)上测试(假设此机使用的是电信的网络)

[root@itsec ~]# nslookup www.sq.com

Server:         192.168.56.101

Address:        192.168.56.101#53


Name:   www.sq.com

Address: 202.96.200.111  #注,解析出的是电信的地址


[root@ pcb ~]# nslookup 202.96.200.111

Server:         192.168.56.101

Address:        192.168.56.101#53


111.200.96.202.in-addr.arpa     name = www.sq.com.


以上结果正确,实验完满结束。



本文转自Sunshyfangtian 51CTO博客,原文链接:http://blog.51cto.com/sunshyfangtian/1197511,如需转载请自行联系原作者



相关文章
|
7月前
|
Dart 数据安全/隐私保护
Dart笔记:Dart 语言中的存取器及其用法解析
Dart笔记:Dart 语言中的存取器及其用法解析
86 0
|
7月前
|
缓存 网络协议 算法
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析
222 0
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
497 37
http数据包抓包解析课程笔记
http数据包抓包解析课程笔记
|
4月前
|
JSON 开发框架 JavaScript
【Azure Developer】使用.Net Core解析JSON的笔记
【Azure Developer】使用.Net Core解析JSON的笔记
|
4月前
|
数据采集 运维 监控
运维笔记:流编辑器sed命令用法解析
运维笔记:流编辑器sed命令用法解析
69 5
|
4月前
|
开发者 API 开发框架
Xamarin 在教育应用开发中的应用:从课程笔记到互动测验,全面解析使用Xamarin.Forms构建多功能教育平台的技术细节与实战示例
【8月更文挑战第31天】Xamarin 作为一款强大的跨平台移动开发框架,在教育应用开发中展现了巨大潜力。它允许开发者使用单一的 C# 代码库构建 iOS、Android 和 Windows 应用,确保不同设备上的一致体验。Xamarin 提供广泛的 API 支持,便于访问摄像头、GPS 等原生功能。本文通过一个简单的教育应用示例——课程笔记和测验功能,展示了 Xamarin 在实际开发中的应用过程。从定义用户界面到实现保存笔记和检查答案的逻辑,Xamarin 展现了其在教育应用开发中的高效性和灵活性。
50 0
|
6月前
|
存储 编解码
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
《FFmpeg开发实战》书中介绍了音视频编码历史,重点讲述H.264的成功在于其分为视频编码层和网络抽象层。H.264帧类型包括SPS(序列参数集,含视频规格参数),PPS(图像参数集,含编码参数)和IDR帧(立即解码刷新,关键帧)。SPS用于计算视频宽高和帧率,PPS存储编码设置,IDR帧则标志新的解码序列。书中还配以图片展示各帧结构详情,完整内容可参考相关书籍。
268 7
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
|
4月前
|
Go
【go笔记】使用标准库flag解析命令行参数
【go笔记】使用标准库flag解析命令行参数
|
7月前
|
Java 编译器 Go
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析(一)
本文主要梳理自第六届字节跳动青训营(后端组)-Go语言原理与实践第一节(王克纯老师主讲)。
195 1

相关产品

  • 云解析DNS
  • 推荐镜像

    更多