BIND实现智能DNS的原理是通过view的方式,首先判断客户请求的来源,然后返回不同的IP

规划:为za.com域进行智能解析

分2个网段,192.168.1.0/24网段的请求解析到192.168.1.100主机上, 其它网段解析到172.16.1.100主机,这里172.16.1.100模拟外网。

这和一般公司的模式很接近,为公司内部提供内部私网地址的解析,避免路由器性能浪费。为外部提供公网地址的解析。

ns服务器的IP地址为192.168.1.251和172.16.1.251

ns从服务器的IP地址为192.168.1.252和172.16.1.252

一、安装配置主DNS服务器

# yum install bind-chroot bind-utils –y #安装bind-chroot和bind-utils

在 (/usr/share/doc/bind-9.9.4/)这个目录下有我们BIND配置文件的模板,将其拷贝到其伪根目录下即可:

cp /usr/share/doc/bind-9.9.4/sample/etc/* /var/named/chroot/etc
cp -a /usr/share/doc/bind-9.9.4/sample/var/* /var/named/chroot/var

建立要使用的配置文件,然后进行修改

# vim /etc/named.conf

#首先定义控制列表,这里定义了内网的网段

acl innet {

127.0.0.0/8;

192.168.1.0/24;

};

#全局配置,精简一点,只配置数据文件目录位置

options {

directory       "/var/named";

};

#创建内网用户的view

view in {

match-clients      { innet; };            #定义用户为控制列表中所定义的

recursion yes;  #允许内网用户进行递归查询

#下面是定义根区域和本地区域的正反解析

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 "za.com" IN {

type master;

file "za.com.in";

allow-transfer { none; }; #不允许区域传送

allow-update { none; }; #不允许更新

}

#定义内部网络反向解析

  

  zone "0.168.192.in-addr.arpa" IN
  {
    type master;
    file "za.com.in.resv";
  };

};

#定义外部网络用户解析

view out {

match-clients      { any; }; #允许所有用户(这里之所以允许所有用户,

是因为bind对配置文件是从上往下读取解析的,

匹配不到上面view所定义的acl,

才会到这个view中来)

recursion no;  #不允许外部网络用户进行递归查询(我们不是免费的公共dns)

zone "za.com" IN {

type master;

file "za.com.out";

allow-transfer { none; };

allow-update { none; };

}

  zone "1.16.172.in-addr.arpa" IN
  {
    type master;
    file "za.com.out.resv";
  };

};

# named-checkconf  #配置完成后注意检查配置文件的语法错误

至此就配置好了主配置文件,接下来创建区域数据文件

# cd /var/named/

# vim za.com.in #创建内部网络客户解析区域文件及反向解析文件

#这里就随便建立几个记录了

#正向解析

$TTL 1D
@ IN SOA @ admin.za.com.(
2017010101
1D
1H
1W
3H )
IN NS dns.za.com.

dns IN A 172.16.1.251
www IN A 172.16.1.100

#反向解析

$TTL 86400
@ IN SOA @ admin.za.com.(
2017010101
1D
1H
1W
3H )
IN NS dns.za.com.
251 IN PTR dns.za.com.
100 IN PTR www.za.com.

#创建外部网络客户解析区域文件及反向解析文件

#正向解析

$TTL 1D
@ IN SOA dns.za.com. admin.za.com.(
2017010101
1D
1H
1W
3H )
@ IN NS dns.za.com.
@ IN MX 10 mail.za.com.

dns IN A 192.168.1.251
www IN A 192.168.1.100

#反向解析

$TTL 86400
@ IN SOA @ admin.za.com.(
2017010101
1D
1H
1W
3H )
IN NS dns.za.com.
251 IN PTR dns.za.com.
100 IN PTR www.za.com.

至此所有配置都已经完成

检查下配置有无出错

①命令 named-checkconf 可以查看BIND的主配置文件的错误:

named-checkconf /var/named/chroot/etc/named.conf

②命令 named-checkzone 可以查看zone配置文件的错误:

 named-checkzone cnblogs.com.zone /var/named/chroot/var/named/za.com.in 

检查无错误后启动服务

systemctl start named-chroot

systemctl start named

打开防火墙的53及953端口:

firewall-cmd --zone=public --add-port=53/tcp --permanent

firewall-cmd --zone=public --add-port=953/tcp --permanent

firewall-cmd --zone=public --add-port=53/udp --permanent

firewall-cmd --reload

二 、设置从DNS服务器

重复第一个步骤,给从DNS服务器安装bind-chroot软件,然后设置开机启动并将它开启。做好后,就修改从DNS服务器的主配置文件/etc/named.conf。从DNS的主配置文件与主DNS的基本相同,因此直接把配置复制过去就行,但zone语句需要进行修改。如下所示,从DNS的named.conf配置文件中的zone语句:

zone "za.com" IN {

type slave;                                    //指明本服务器是这个域的从DNS服务器

file "slaves/za.com.in";              //从DNS的zone配置文件一定要放置在工作目录下的slaves目录中

masters { 172.16.1.251; };                         //指定这个域的主DNS服务器的IP

};

与主DNS不同的是,从DNS上的zone配置文件不需要手动建立,它会通过同步自动建立。因此,从DNS上的配置文件这样就设置好了。

Linux实现内容分发的主备模式的智能DNS的更多相关文章

  1. Centos7.6部署k8s v1.16.4高可用集群(主备模式)

    一.部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6. ...

  2. Nginx+keepalived(高可用主备模式)

    Nginx+keepalived(高可用主备模式) 环境:centos6.7 准备:两台服务器(虚拟机).两台应用(Tomcat).Nginx.keepalived server1:192.168.2 ...

  3. 【 Keepalived 】Nginx or Http 主-备模式

    一.主-备模式: 操作系统:centos 6.4 x64 ka1: 192.168.2.10 ka2: 192.168.2.11 vip: 192.168.2.200 ka1-master服务器配置 ...

  4. springboot整合ActiveMQ 2(主备模式,负载均衡)

    基本使用,https://www.tapme.top/blog/detail/2018-09-05-10-38 主备模式,https://www.tapme.top/blog/detail/2018- ...

  5. centos7 搭建双网卡bond1(主备模式)实例

    前景须知: 在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程. 应用情景:实现网络的高可用,防止一条网线或交换机故障影响 ...

  6. MySQL主备模式的数据一致性解决方案

     根据阿里交易型业务的特点,以及在双十一这样业内罕有的需求推动下,我们在官方的MySQL基础上增加了非常多实用的功能.性能补丁.而在使用MySQL的过程中,数据一致性是绕不开的话题之一.本文主要从阿里 ...

  7. Mssql主备见证的弊端及主备模式主down掉怎么恢复

    mssql主备见证有个没有解决的问题,mssql的主备是针对单个库的,有时候单个或多个库主备切换了,但是整个主数据库并没有挂掉,并且还运行着其他的库,程序检测到的数据库连接是正常的,只是部分库连接不了 ...

  8. python监控服务器的主备模式

    #-*- coding:utf8 -*-import paramikoimport re def check_active_ac(intervals=1): client = paramiko.Tra ...

  9. 好记性不如烂笔头-linux学习笔记6keepalived实现主备操作

    Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工 ...

随机推荐

  1. 升级到spring security5遇到的坑-密码存储格式

    遇到的问题 将spring security oauth2(包括spring security)升级到最新,代码没有改动,运行项目没有报错,但是页面登陆时报错:There is no Password ...

  2. 在MasterPage中检验session是否存在~

    在母板頁中檢查user是否登入過,這樣就不用在每個頁中去作檢驗.在其Init事件中寫入如下代碼:     protected void ContentPlaceHolder1_Init(object  ...

  3. 开机报错 the connected AC adapter has a lower wattage than the recommended model which was shipped with the system。

    机型:联想Thinkpad T410 报错场景:在电脑插上电源充电情况下开机,会自动进入bios setup utility提示你需要重新设置日期时间.date/time 报错提示:The conne ...

  4. vue2.0:(八-2)、外卖App弹窗部分sticky footer

    什么是sticky-footer ? 如果页面内容不够长的时候,页脚块粘贴在视窗底部,如果内容足够长时,页脚块会被内容向下推送.那具体要怎么做呢?下面以外卖App为例: 第一种方法:这个自己用过,是好 ...

  5. 环境变量—《linux命令行与shell脚本编程大全》

    环境变量部分: 1.查看全局变量:printenv/env 2.显示单个环境变量的值:echo 如echo $HOME 3.显示为某个特定进程设置的所有环境变量:set 4.设置全局变量:创建局部环境 ...

  6. npm相关命令

    npm install npm install log4js npm list npm list log4js #查看模板安装版本 npm install log4js@1.0.1 #指定模块版本安装 ...

  7. javaScript的注释、变量和基本数据类型

    上一级写了javaScript是用来操作文档对象元素的,这一次带大家看看javaScriput的注释.变量和基本数据类型. 1.注释:注释是什么呢?注释其实就是阻止浏览器解析某一行或者多行代码或描述的 ...

  8. Modelsim与Simulink协同仿真

    当使用硬件描述语言(HDL)完成电路设计时,往往需要编写Testbench对所设计的电路进行仿真验证,测试设计电路的功能是否与预期的目标相符.而编写Testbench难度之大,这时可以借助交互式图形化 ...

  9. BZOJ 3992: [SDOI2015]序列统计 NTT+快速幂

    3992: [SDOI2015]序列统计 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 1155  Solved: 532[Submit][Statu ...

  10. 《spss统计分析与行业应用案例详解》:实例十二 卡方检验

    卡方检验的功能与意义 SPSS的卡方检验是非参数检验方法的一种,其基本功能足通过样本的 频数分布来推断总体是否服从某种理论分布或某种假设分布,这种检验过程是通过分析实际的频数与理论的频数之间的差别或是 ...