广告
返回顶部
首页 > 资讯 > 后端开发 > Python >bind实现智能DNS(ACL,view
  • 106
分享到

bind实现智能DNS(ACL,view

智能bindDNS 2023-01-31 02:01:12 106人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

一、功能描述    在实现了DNS主从同步,子域授权之后,还可以针对不同网络内的域名解析请求DNS能够指向不同的主机地址,以实现分流。    假设下图中两台主机互为镜像,要实现来源不同的主机对此域名的解析指向同网段内的镜像主机,而不用穿过路

一、功能描述

   在实现了DNS主从同步,子域授权之后,还可以针对不同网络内的域名解析请求DNS能够指向不同的主机地址,以实现分流。

   假设下图中两台主机互为镜像,要实现来源不同的主机对此域名的解析指向同网段内的镜像主机,而不用穿过路由器,跨段断访问。例如171.16.0.0/24网内对www.sunlinux.com的解析指向172.16.200.6的服务器,而192.168.0.0/24网段内主机对www.sunlinux.com的解析指向192.168.0.6的服务器。可以利用ACL及VIEW规则来实现。

wKiom1MnD0jR4vgnAAMrrhwlv-I575.jpg

二、实现步骤

1、将来源不同的两个网段定义到不同的ACL规则当中。

acl C_class { 192.168.0.0/24; }; 
acl B_class { 172.16.0.0/8; };
acl Other { !192.168.0.0/24; !172.16.0.0/8; any; }; # 除了上面两个网段之外的所有地址
#acl Other { any; }; # 所有地址

2、用view划分DNS。

view classC {                       # 每个view相当于一个独立的DNS
        match-clients { C_class; }; # 匹配规则
        zone "." IN {               # 根DNS、C网主机对非sunlinux.com请求则找根
        type hint;
        file "named.ca";
        };
        zone "sunlinux.com" IN {    # 解析区域
                type master;
                file "sunlinux.com.Czone"; # C网主机对非sunlinux.com请求规则
        };
};
view classB {                       # 若使用view则所有的区域都应该包含在view中
        match-clients { B_class; };
        zone "." IN {               # 根DNS、B网主机对非sunlinux.com请求则找根
        type hint;
        file "named.ca";
        };
        zone "sunlinux.com" IN {
                type master;
                file "sunlinux.com.Bzone"; # B网主机对非sunlinux.com请求规则
        };
};
view anyother {                 
        match-clients { Other; }; # 非限定网段主机
        zone "." IN {
        type hint;
        file "named.ca";
        };
        zone "sunlinux.com" IN {
                type master;
                file "sunlinux.com.Bzone";
        };
};

3、编辑bind配置文件将规则写入。

# vim /etc/named.conf
options {
     directory       "/var/named";  # 数据文件目录
    ...                             # 定义全局信息     
};
logging {
    channel default_debug {
                file "data/named.run";  # 定义日志信息
                severity dynamic;
        };
};
acl C_class { 192.168.0.0/24; }; 
acl B_class { 172.16.0.0/8; };
#acl Other { !192.168.0.0/24; !172.16.0.0/8; any; };
acl Other { any; };
view classC {                    
        match-clients { C_class; };
        zone "." IN {            
        type hint;
        file "named.ca";
        };
        zone "sunlinux.com" IN { 
                type master;
                file "sunlinux.com.Czone";
        };
};
view classB {                    
        match-clients { B_class; };
        zone "." IN {            
        type hint;
        file "named.ca";
        };
        zone "sunlinux.com" IN {
                type master;
                file "sunlinux.com.Bzone";
        };
};
view anyother {                 
        match-clients { Other; };
        zone "." IN {
        type hint;
        file "named.ca";
        };
        zone "sunlinux.com" IN {
                type master;
                file "sunlinux.com.Bzone";
        };
};

4、编辑C网段数据文件。

# vim /var/named/sunlinux.com.Czone
$TTL 600
@       IN      SOA     dns.sunlinux.com.       dnsadmin.sunlinux.com. (
                        20140312
                        1H
                        5M
                        3D
                        6H
                        )
        IN      NS      ns1.sunlinux.com.
        IN      NS      ns2.sunlinux.com.
        IN      MX      10 mail
ns1     IN      A       172.16.251.58
ns2     IN      A       172.16.251.61
www     IN      A       192.168.0.6
mail    IN      A       192.168.0.8

5、编辑B网段数据文件。

[root@localhost ~]# vim /var/named/sunlinux.com.Bzone
$TTL 600
@       IN      SOA     dns.sunlinux.com.       dnsadmin.sunlinux.com. (
                        20140312
                        1H
                        5M
                        3D
                        6H
                        )
        IN      NS      ns1.sunlinux.com.
        IN      NS      ns2.sunlinux.com.
        IN      MX      10 mail
blog    IN      NS      ns3.blog.sunlinux.com.
blog    IN      NS      ns4.blog.sunlinux.com.
ns3.blog IN     A       172.16.251.64
ns4.blog IN     A       172.16.251.67
ns1     IN      A       172.16.251.58
ns2     IN      A       172.16.251.61
www     IN      A       172.16.200.6
mail    IN      A       172.16.200.8
pop     IN      CNAME   mail
ftp     IN      CNAME   www

6、检查配置文件语法错误,并启动。

# service named configtest
zone sunlinux.com.Czone/IN: loaded serial 20140312
zone sunlinux.com.Bzone/IN: loaded serial 20140312
# service named start
Starting named:                                            [  OK  ]

三、测试及验证

B 网段测试结果

# dig -t A www.sunlinux.com @172.16.251.58
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A www.sunlinux.com @172.16.251.58
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6742
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.sunlinux.com.      IN  A
;; ANSWER SECTION:
www.sunlinux.com.   600 IN  A   172.16.200.6 # B网地址
;; AUTHORITY SECTION:
sunlinux.com.       600 IN  NS  ns2.sunlinux.com.
sunlinux.com.       600 IN  NS  ns1.sunlinux.com.
;; ADDITIONAL SECTION:
ns1.sunlinux.com.   600 IN  A   172.16.251.58
ns2.sunlinux.com.   600 IN  A   172.16.251.61
;; Query time: 1 msec
;; SERVER: 172.16.251.58#53(172.16.251.58)
;; WHEN: Tue Mar 18 10:26:12 2014
;; MSG SIZE  rcvd: 118
# dig -t A mail.sunlinux.com @172.16.251.58
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A mail.sunlinux.com @172.16.251.58
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51869
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;mail.sunlinux.com.     IN  A
;; ANSWER SECTION:
mail.sunlinux.com.  600 IN  A   172.16.200.8 # B网地址
;; AUTHORITY SECTION:
sunlinux.com.       600 IN  NS  ns2.sunlinux.com.
sunlinux.com.       600 IN  NS  ns1.sunlinux.com.
;; ADDITIONAL SECTION:
ns1.sunlinux.com.   600 IN  A   172.16.251.58
ns2.sunlinux.com.   600 IN  A   172.16.251.61
;; Query time: 0 msec
;; SERVER: 172.16.251.58#53(172.16.251.58)
;; WHEN: Tue Mar 18 10:26:24 2014
;; MSG SIZE  rcvd: 119

C网段测试结果。

# dig -t A www.sunlinux.com @192.168.0.58
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A www.sunlinux.com @192.168.0.58
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22172
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.sunlinux.com.      IN  A
;; ANSWER SECTION:
www.sunlinux.com.   600 IN  A   192.168.0.6 # C网地址
;; AUTHORITY SECTION:
sunlinux.com.       600 IN  NS  ns2.sunlinux.com.
sunlinux.com.       600 IN  NS  ns1.sunlinux.com.
;; ADDITIONAL SECTION:
ns1.sunlinux.com.   600 IN  A   172.16.251.58
ns2.sunlinux.com.   600 IN  A   172.16.251.61
;; Query time: 1 msec
;; SERVER: 192.168.0.58#53(192.168.0.58)
;; WHEN: Tue Mar 18 10:25:34 2014
;; MSG SIZE  rcvd: 118
# dig -t A mail.sunlinux.com @192.168.0.58
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A mail.sunlinux.com @192.168.0.58
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45957
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;mail.sunlinux.com.     IN  A
;; ANSWER SECTION:
mail.sunlinux.com.  600 IN  A   192.168.0.8 # C网地址
;; AUTHORITY SECTION:
sunlinux.com.       600 IN  NS  ns2.sunlinux.com.
sunlinux.com.       600 IN  NS  ns1.sunlinux.com.
;; ADDITIONAL SECTION:
ns1.sunlinux.com.   600 IN  A   172.16.251.58
ns2.sunlinux.com.   600 IN  A   172.16.251.61
;; Query time: 0 msec
;; SERVER: 192.168.0.58#53(192.168.0.58)
;; WHEN: Tue Mar 18 10:25:39 2014
;; MSG SIZE  rcvd: 119


四、补充说明

   acl:需要先定义后使用。内置ACL{any;none;local;localnet;}可以直接使用。

   view:优先级从上至下,先匹配到的生效。

--结束END--

本文标题: bind实现智能DNS(ACL,view

本文链接: https://www.lsjlt.com/news/187028.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • bind实现智能DNS(ACL,view
    一、功能描述    在实现了DNS主从同步,子域授权之后,还可以针对不同网络内的域名解析请求DNS能够指向不同的主机地址,以实现分流。    假设下图中两台主机互为镜像,要实现来源不同的主机对此域名的解析指向同网段内的镜像主机,而不用穿过路...
    99+
    2023-01-31
    智能 bind DNS
  • 在RHEL 5下通过Bind实现DNS功能的示例分析
    在RHEL 5下通过Bind实现DNS功能的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。DNS的作用及相关概念不属于本文讨论内容,只讲述如何通过RHEL 5.1的...
    99+
    2023-06-17
  • 原生js代码能不能实现call和bind
    这篇文章给大家分享的是有关原生js代码能不能实现call和bind的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。js手动实现call和bind都是谎言网上有很多关于说自己实现ca...
    99+
    2022-10-19
  • Servlet+Ajax如何实现智能搜索框智能提示功能
    小编给大家分享一下Servlet+Ajax如何实现智能搜索框智能提示功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!利用无刷新技术智能变换搜索框的提示,同百度搜...
    99+
    2023-06-08
  • Android Studio实现智能聊天
    本文实例为大家分享了Android Studio实现智能聊天的具体代码,供大家参考,具体内容如下 1、布局activit_main.xml <xml version="1.0"...
    99+
    2022-11-13
  • go-cqhttp智能聊天功能的实现
    目录智能聊天一、 概述二、 使用方法三、 接入程序四、 智能群聊智能聊天 一、 概述 我们将我们的qq聊天机器人的环境配置好后,其就可以开始接收消息啦!那么,我们除了可以接收特定的消...
    99+
    2022-11-11
  • python如何实现智能拆包
    这篇文章主要介绍了python如何实现智能拆包,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。智能拆包迭代地解压值可能会非常耗费时力,Python中有几种不错的方法可以用来解压...
    99+
    2023-06-27
  • Android自定义View实现时钟功能
    最近在练习自定义view, 想起之前面试的时候笔试有道题是写出自定义一个时钟的关键代码. 今天就来实现一下. 步骤依然是先分析, 再上代码. 实现效果 View分析 时钟主要分为五...
    99+
    2022-11-13
  • JavaScript怎么实现智能搜索框
    今天小编给大家分享一下JavaScript怎么实现智能搜索框的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2022-10-19
  • 人工智能-Python实现岭回归
    1 概述 1.1 线性回归 对于一般地线性回归问题,参数的求解采用的是最小二乘法,其目标函数如下: 1.2 岭回归  岭回归(ridge regression) 是一种...
    99+
    2022-11-12
  • 怎么用Python实现智能合约
    智能合约1. 是什么智能合约是一种由计算机程序编写的自动化合约,它可以在没有第三方干预的情况下执行交易和契约条款。智能合约使用区块链技术实现,可以实现不同的功能,例如交易、投票、代币发放和数据存储等。智能合约的执行是基于其代码的逻辑,并且在...
    99+
    2023-05-14
    Python
  • C++实现智能柜管理系统
    本文实例为大家分享了C++实现智能柜管理系统的具体代码,供大家参考,具体内容如下 #define _CRT_SECURE_NO_DEPRECATE #include <...
    99+
    2022-11-13
  • springboot+rabbitmq实现智能家居实例详解
    目录引言一、什么是 MQTT协议?二、为什么要用 MQTT协议?三、MQTT协议介绍MQTT数据包1、固定头2、可变头3、消息体payload消息质量(QoS )1、Qos 02、Q...
    99+
    2022-11-13
  • Ajax如何实现智能提示搜索功能
    这篇文章主要介绍Ajax如何实现智能提示搜索功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、效果图:二、实现过程:  思路: 三、部分代码:html: <div&n...
    99+
    2023-06-08
  • Python实现的简单dns查询功能示例
    本文实例讲述了Python实现的简单dns查询功能。分享给大家供大家参考,具体如下: #!/usr/bin/python import sys,socket def print_array(*arr):...
    99+
    2022-06-04
    示例 查询功能 简单
  • 在PHP中如何实现智能家居?
    随着科技的进步,越来越多的家庭加入了智能家居的大家庭。PHP作为一种流行的编程语言,也可以被用来实现智能家居。本文将介绍如何使用PHP构建智能家居系统。一、智能家居系统的架构智能家居系统通常由以下几个部分组成:传感器:负责采集各种环境数据,...
    99+
    2023-05-14
    智能家居 PHP 实现
  • Android实现九格智能拼图算法
    最近想业余做一款android游戏,发现我国一款古老好玩的智力游戏-九格智能拼图挺好玩的,相信大多80后小时玩过,因此有了开发的想法。 一、九格智能拼图 游戏规则:将一副图片分割为9...
    99+
    2022-11-13
  • 人工智能—Python实现线性回归
    1、概述 (1)人工智能学习           (2)机器学习  (3)有监督学习  (4)线...
    99+
    2022-11-12
  • Android自定义View实现自动吸附功能
    本文实例为大家分享了Android实现自动吸附功能的具体代码,供大家参考,具体内容如下 1.简述 最近开发app过程中要实现拖动view后要可以自动吸附功能,所以需要自定义vi...
    99+
    2022-06-06
    自动 view Android
  • Android自定义View实现简易画板功能
    本文实例为大家分享了Android自定义View实现简易画板的具体代码,供大家参考,具体内容如下 自定义VIew实现简易画板效果,功能包括清空、选择颜色,选择大小,效果如下 画板布...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作