文档章节

使用Bind 9 的DNS-views实现IP地址分区域解析

孤灯赏读
 孤灯赏读
发布于 2016/08/20 09:48
字数 803
阅读 169
收藏 1

IP区域查询http://www.ip.cn

一、简介

在实际的网络应用中,我们有时希望对于同一个Domain Name能够根据不同的请求IP地址/区域,解析到不同的对应IP地址,比如:有时对于企业内部网络和外部网络希望对同一域名解析到不同的IP地址以达到安全目的或者应用目的,又比如为了解决中国南北方电信/网通互访速度差异问题,您也会希望电信用户解析到的域名IP是位于电信网络中的服务器,网通用户亦然,使用户能够访问到临近的最快的服务器。而这些应用都可以通过对DNS的简单配置达到,使用DNS达到这一目的有以下的优点:

原文来自http://zqli.cublog.cn

1.低成本-无需添加任何专用设备,只需通过简单配置即可;

2.灵活性强-可随时增加/删除解析规则;

3.有一定的可扩展能力-如果搭配Round Robin DNS可无缝快速的配置简单的负载均衡。

 

 

二、DNS-views配置

1、原理

使用DNS提供的view指令可以实现根据不同的IP范围来对同一个域名进行解析。

 

注意:view指令只在BIND9存在,以前的BIND8是没有view指令的!

2、配置示例

(1)环境假想

操作系统:Red Hat Enterprise Linux Server release 5 (Tikanga)

BIND版本:BIND 9.3.3rc2

主DNS服务器:192.168.0.2

从DNS服务器:192.168.0.3

域名:leotest.com

我们希望CN的IP列表所解析到www.leotest.com的IP地址为:192.168.0.100,非CN的IP列表内的IP则解析到:192.168.0.200

原文来自http://zqli.cublog.cn

 

安装Bind:

# rpm -ivh bind-9.3.3-7.el5.i386.rpm

 

[root@rhel5 etc]# cat named.conf

include "/var/named/acl.conf";

options

{

        query-source    port 53;

        query-source-v6 port 53;

        directory "/var/named"; // the default

        dump-file               "data/cache_dump.db";

        statistics-file         "data/named_stats.txt";

        memstatistics-file      "data/named_mem_stats.txt";

};

logging

{

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

view "internal"

{

        match-clients { CN; };

        recursion yes;

        include "/etc/named.root.hints";

 

        zone "my.internal.zone" {

                type master;

                file "my.internal.zone.db";

        };

        zone "my.slave.internal.zone" {

                type slave;

                file "slaves/my.slave.internal.zone.db";

                masters { /* put master nameserver IPs here */ 127.0.0.1; } ;

                        };

        zone "my.ddns.internal.zone" {

                type master;

                allow-update { key ddns_key; };

                file "slaves/my.ddns.internal.zone.db";

                       };

zone "leotest.com" {

                type master;

                file "leotest.com.zone";

                allow-transfer {

                192.168.0.3;

                };

                };

};

key ddns_key

{

        algorithm hmac-md5;

        secret          "ZQFSVQ9sMquZsdb3Twg9q231SwF1f1KBhG74JMlaiPaumD6NeOA626FQ1DOa";

};

view    "external"

{

        match-clients { any; };

        recursion yes;

        include "/etc/named.root.hints";

        zone "my.external.zone" {

                type master;

                file "my.external.zone.db";

        };

zone "leotest.com" {

                type master;

                file "leotest.com.zone.ext";

                allow-transfer {

                192.168.0.3;

                };

                };

};

 

[root@rhel5 named]# cat acl.conf

acl "CN" {

58.248.0.0/13;

210.52.0.0/16;

};

可以在这个文件里添加更多的IP地址段,上面只是做为例子。

 

[root@rhel5 named]# cat leotest.com.zone

$ttl 38400

@      IN     SOA    ns.leotest.com.  root.ns.leotest.com.(

               2007072600 ; serial

               28800 ; refresh

               14400 ; retry

               3600000 ; expire

               86400 ; default_ttl

               )

@         NS     ns.leotest.com.

@         MX  5  mail.leotest.com.

        IN      A  192.168.0.100

www    IN      A  192.168.0.100

mail     IN      A  192.168.0.100

 

[root@rhel5 named]# cat leotest.com.zone.ext

$ttl 38400

@      IN     SOA    ns.leotest.com.  root.ns.leotest.com.(

               2007072600 ; serial

               28800 ; refresh

               14400 ; retry

               3600000 ; expire

               86400 ; default_ttl

               )

@         NS     ns.leotest.com.

@         MX  5  mail.leotest.com.

        IN      A  192.168.0.200

www    IN      A  192.168.0.200

mail     IN      A  192.168.0.200

 

下面是从DNS(192.168.0.3)的设置

[root@mail named]# cat /etc/named.conf

include "/var/named/acl.conf";

options

{

        query-source    port 53;

        query-source-v6 port 53;

        directory "/var/named"; // the default

        dump-file               "data/cache_dump.db";

        statistics-file         "data/named_stats.txt";

        memstatistics-file      "data/named_mem_stats.txt";

};

logging

{

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

view "internal"

{

        match-clients           { CN; };

        recursion yes;

        include "/etc/named.root.hints";

        include "/var/named/internal.conf";

};

key ddns_key

{

        algorithm hmac-md5;

        secret "COD951PjWgXORWEdLNbN1xAzuZ5eRrdzXmhCZp09ykYoczacYxPe27sImK49";

};

view    "external"

{

        match-clients           { any; };

        recursion yes;

        include "/etc/named.root.hints";

        include "/var/named/external.conf";

};

 

[root@mail named]# cat internal.conf

zone "leotest.com" {

                type slave;

                file "slaves/leotest.com.zone";

                masters {192.168.0.2;};

                };

 

[root@mail named]# cat external.conf

zone "leotest.com" {

                type slave;

                file "slaves/leotest.com.zone.b";

                masters {192.168.0.2;};

                };

 

acl.conf与主DNS服务器上的配置文件一样。

本文转载自:http://blog.chinaunix.net/uid-7953959-id-2543259.html

共有 人打赏支持
孤灯赏读
粉丝 0
博文 20
码字总数 18683
作品 0
潍坊
运维
私信 提问
Ubuntu Bind9泛域名解析配置

bind9简介 BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括 域名服务器 (named) DNS解析库函数 DNS服务器运行调试所用...

墨鱼ID
2013/03/26
0
0
DNS服务器(四):DNS视图及bind中rndc的使用

一、DNS服务器视图功能的实现 DNS服务器有一个高级的功能,能够实现不同的用户访问同一个域名,把域名解析成不同的IP地址,使用户能够访问离他最近的服务器上的数据,这就是DNS服务器的视图功...

wubinary
2014/03/18
0
0
DNS服务器(二):使用bind实现主从DNS服务器数据同步

一、bind简介 Linux中通常使用bind来实现DNS服务器的架设,bind软件由isc(www.isc.org)维护。在yum仓库中可以找到软件,配置好yum源,直接使用命令yum install bind就可以安装。当前bind的稳...

wubinary
2014/03/14
0
0
TCP/IP学习笔记(9)-DNS域名系统

前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地...

linuxprobe16
2018/10/15
0
0
CentOS6.3mini上安装Bind9.8.2

安装bind的目的是想实现单位内部域名解析,以及通过内部dns服务器加快外部dns查询。 例如,我单位内部架设如下几台服务器: 192.168.1.1 web服务器 192.168.1.20 bbs服务器 计划通过架设内部...

静雅思听
2013/03/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

腾讯面试:一条SQL语句执行得很慢的原因有哪些?

说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实...

java菜分享
31分钟前
9
0
Java 基本功 之 CAS

本文首发于个人公众号《andyqian》, 期待你的关注! 前言 在Java并发编程中,我们经常使用锁对竞争资源予以并发控制,以解决资源竞争的问题。但无论是使用 Lock 还是 Synchronized,随着锁机...

andyqian
35分钟前
4
0
信号量与条件变量的区别

注意信号量与条件变量的区别 信号量内容可见:http://www.cnblogs.com/charlesblc/p/6142868.html 信号量、共享内存,以及消息队列等System V IPC三剑客主要关注进程间通信; 而条件变量、互...

shzwork
46分钟前
1
0
在VirtualBox 6.0中安装fedora 30

操作系统安装完毕后首先进行更新。 sudo dnf update 重启虚拟机后,安装VirtualBox依赖的软件包。 sudo dnf install kernel-headers kernel-devel dkms gcc 最后,安装“增强功能”。...

gugudu
54分钟前
1
0
861. Score After Flipping Matrix

为了获得最大值,我们必须保证每一行列下标小的1尽可能的多(最高位的1尽可能多)。 首先,考虑我们可以进行的操作有 翻转列,进行列操作 翻转行,进行行操作 通过行操作 我们总是可以使得第...

reter
55分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部