Linux实现内容分发的主备模式的智能DNS
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的更多相关文章
- Centos7.6部署k8s v1.16.4高可用集群(主备模式)
一.部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6. ...
- Nginx+keepalived(高可用主备模式)
Nginx+keepalived(高可用主备模式) 环境:centos6.7 准备:两台服务器(虚拟机).两台应用(Tomcat).Nginx.keepalived server1:192.168.2 ...
- 【 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服务器配置 ...
- springboot整合ActiveMQ 2(主备模式,负载均衡)
基本使用,https://www.tapme.top/blog/detail/2018-09-05-10-38 主备模式,https://www.tapme.top/blog/detail/2018- ...
- centos7 搭建双网卡bond1(主备模式)实例
前景须知: 在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程. 应用情景:实现网络的高可用,防止一条网线或交换机故障影响 ...
- MySQL主备模式的数据一致性解决方案
根据阿里交易型业务的特点,以及在双十一这样业内罕有的需求推动下,我们在官方的MySQL基础上增加了非常多实用的功能.性能补丁.而在使用MySQL的过程中,数据一致性是绕不开的话题之一.本文主要从阿里 ...
- Mssql主备见证的弊端及主备模式主down掉怎么恢复
mssql主备见证有个没有解决的问题,mssql的主备是针对单个库的,有时候单个或多个库主备切换了,但是整个主数据库并没有挂掉,并且还运行着其他的库,程序检测到的数据库连接是正常的,只是部分库连接不了 ...
- python监控服务器的主备模式
#-*- coding:utf8 -*-import paramikoimport re def check_active_ac(intervals=1): client = paramiko.Tra ...
- 好记性不如烂笔头-linux学习笔记6keepalived实现主备操作
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工 ...
随机推荐
- 优化vue-cli构建的文件体积
vue-router 懒加载优化 先安装 babel 动态引入插件 npm install --save-dev babel-plugin-syntax-dynamic-import 修改router ...
- 第十六章 提升用户体验 之 设计实现routes
1. 概述 ASP.NET MVC route 用来把URL映射到方法中的action,是用户和程序之间的桥梁. 本章内容包括:定义route处理URL Pattern.应用route限制.忽略URL ...
- JAVA 框架之面向对象设计原则
面向对象设计原则: 单一职责原则 SRP : 一个类或者行为只做一件事 . 降低代码冗余,提高可重用性,可维护性,可扩展性,可读性 使用组合形式 里氏替换原则 LSP : 所有引用基类 ...
- zblog去除底部版权信息 “请勿修改或删除主题版权及作者信息”
场景:使用了免费模板,但底部带作者版权.删除版权信息的代码后访问前台弹窗:请勿修改或删除主题版权及作者信息... 1. 删除版权信息代码 使用notepad++搜索功能,搜索版权信息:如ABC,找到相 ...
- 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:2.技术简介之MinaFilter(1)
欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 Filter filter:过滤器?(不知道是不是这么翻译,算了知道意思就好了╮(╯▽╰)╭),这种东西在很多语言中 ...
- js修改文档的样式
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Java ...
- UVALive 3523 Knights of the Round Table 圆桌骑士 (无向图点双连通分量)
由于互相憎恨的骑士不能相邻,把可以相邻的骑士连上无向边,会议要求是奇数,问题就是求不在任意一个简单奇圈上的结点个数. 如果不是二分图,一定存在一个奇圈,同一个双连通分量中其它点一定可以加入奇圈.很明显 ...
- HTML5中的webSocket、ajax、http
本文原链接:https://cloud.tencent.com/developer/article/1115496 https://cloud.tencent.com/developer/articl ...
- python_94_类变量实例变量
class Role: n=123#类变量 name='我是类name' list=[] def __init__(self,name,role,weapon,life_value=100,money ...
- linux简单常用命令
除了yum命令,还有些简单的命令,在此记录一下,加深记忆: free -h 查询内存和交换分区. rpm -qa | grep libaio 查看当前环境是否安装某rpm软件包