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将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工 ...
随机推荐
- #1369 : 网络流一·Ford-Fulkerson算法 模板题
http://hihocoder.com/problemset/problem/1369?sid=1108721 别人都说先学网络流再学二分图,但是我先学了二分图的,感觉网络流好高端啊. 首先对于原图 ...
- D. Blocks 数学题
Panda has received an assignment of painting a line of blocks. Since Panda is such an intelligent bo ...
- cachecloud:Redis云管理平台
https://github.com/sohutv/cachecloud 一.CacheCloud是做什么的 CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standal ...
- js得到当前页面的url信息
所有的代码都是可用,而且附了图片的,不过是直接用我自己的文章地址,所以有些显示的有点奇怪. 大家可以找个网址试试代码是否可行. 1,设置或获取对象指定的文件名或路径. console.log(wind ...
- hystrix 应用问题
1.问题总结, 如果项目中使用了ThreadLocal,注意hystix创建新线程时,ThreadLocal中存的是之前线程中的数据,在hystix线程中获取不到 2.问题 throwable异常参数 ...
- Java并发(二):基础概念
并发编程的第二部分,先来谈谈发布(Publish)与逸出(Escape); 发布是指:对象能够在当前作用域之外的代码中使用,例如:将对象的引用传递到其他类的方法中,对象的引用保存在其他类可以访问的地方 ...
- 1g免费空间永久使用
云邦互联免费空间(免备案,无广告) [1G免费全能空间,免备案,无广告] 1G全能空间 + 100M数据库(Mysql 5.5 / SQL Server 2005) 支持的脚本:ASP.PHP(5.2 ...
- CF1088D Ehab and another another xor problem
思路: 根据异或的性质一位一位来搞.参考了https://blog.lucien.ink/archives/362/ 实现: #include <bits/stdc++.h> using ...
- 31全志r58平台Android4.4.2下打开USB摄像头
31全志r58平台Android4.4.2下打开USB摄像头 2018/10/26 16:00 版本:V1.0 开发板:SC5806 1.系统编译:(略) 2.需要修改的文件: W:\r58_andr ...
- uvm_reg_block——寄存器模型(七)
这是寄存器模型的顶层 //------------------------------------------------------------------------ // Class: uvm_ ...