首页 > 其他分享 >DNS(Bind9) Anycast 数据中心部署 最终版

DNS(Bind9) Anycast 数据中心部署 最终版

时间:2022-10-15 16:32:47浏览次数:54  
标签:10.202 DNS transfer 最终版 Anycast dns te com log

DNS(Bind9) Anycast 数据中心部署 最终版

问题点:

现网使用的是windows ad域控加windows dns的结构,支撑全网设备的加域和域名解析功能,但由于部分终端机不能动态更换dns服务器ip,会出现某台dns服务器宕机,业务中断的情况。现使用dns的虚拟化技术来提高dns的可用性。

技术要点:

dns anycast:将多个dns的ip虚拟成一个独立的ip对外提供服务,全机房均可以访问这个ip,当某一个dns服务器宕机,请求会被发送到剩余存活服务器中最近的一台。 anycast:Anycast实质上是一种网络技术,它借助于网络中动态路由协议实现服务的负载均衡和冗余。 动态路由:动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。

单播,多播,广播,任意播:

Unicast IP 单播

IP地址和主机是一一对应关系。

Multicast IP组播IP:

组播IP拥有特定的IP地址段,当数据包发送给此组播IP地址后,组内成员都能收到此数据包。

Broadcast IP广播IP:

广播的ip是单播网段中最后一个IP地址。数据包发送给此地址会扩散给全广播域的成员。

Anycast IP任意播

从宏观上来说,Anycast类似于Multicast,同一种类型的数据流同时存在多个接收者。而从微观上来说,Anycast又有着Unicast的唯一性。每一个单独的IP会话都能够找到唯一的源主机和目标主机。

Anycast技术具有以下优势:

一、不同客户端将访问不同目的主机,此过程对客户端透明,从而实现了目的主机的负载均衡;

二、当任意目的主机接入的网络出现故障,导致该目的主机不可达时,客户端请求可以在无人为干预的情况下自动被路由到目前可达的最近目的主机,在一定程度上为目标主机提供了冗余性;

三、当目的主机受到DoS攻击而无法到达时,由于网络不可到达,客户端请求也将路由到其他目的主机上,而在DDoS攻击时,由于Anycast的负载均衡效应,避免了单台目的主机承受所有攻击流量,因此在一定程度上为目的主机提高了安全性;

四、因为Anycast利用路由度量到“最近”的目的主机,提高了客户端响应速度。

使用到的软件:

bind9
quagga

架构图:

拓扑图:

安装

yum -y install bind 查看版本

[root@ADClient03 etc]# named -v
BIND 9.9.4-RedHat-9.9.4-61.el7_5.1 (Extended Support Version)

关闭selinux

[root@ADClient03  ~]# cat /etc/selinux/config   
# This file controls the state of SELinux on the system.  
# SELINUX= can take one of these three values:  
#     enforcing - SELinux security policy is enforced.  
#     permissive - SELinux prints warnings instead of enforcing.  
#     disabled - No SELinux policy is loaded.  
#SELINUX=enforcing  
SELINUX=disabled  
# SELINUXTYPE= can take one of three two values:  
#     targeted - Targeted processes are protected,  
#     minimum - Modification of targeted policy. Only selected processes are protected.   
#     mls - Multi Level Security protection.  
SELINUXTYPE=targeted   

配置文件

位置:/etc/named.conf

options {
    listen-on port 53 { any; };
    directory   "/var/named";
    recursion yes;
    allow-query     { any; };

    forwarders {
                10.205.40.137;
                10.206.40.137;
        };
        forward only;
        dnssec-enable yes;
        dnssec-validation yes;
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};
logging {
        channel query_log {
                file "query.log"  versions 3 size 200m; 
                severity dynamic;   #记录信息级别
            print-time yes; #记录时间
                print-category  yes;    #记录类型
    };
    category queries {query_log;};  #请求记录
    category unmatched{query_log;}; #未匹配的查询
    category xfer-in {query_log;};  #接收区域传输
    category xfer-out {query_log;}; #发送区域传输
    category notify {query_log;};   #NOTIFY协议
    category update {query_log;};   #动态更新
    category resolver {query_log;};
    category unmatched {query_log;};
};

zone "_msdcs.te.com" IN {
        type slave;     #类型
        file "slaves/msdcs.te.com.zone";
        masters { 10.202.10.6;10.202.10.7; };
        masterfile-format text;
        allow-transfer{ none; };    
        check-names ignore;
};

zone "te.com" IN{
    type slave; #类型
    file "slaves/te.com.zone";  #数据存储位置,请放在slave文件夹下,自动生成
    masters { 10.202.10.6;10.202.10.7; };   #master dns的ip地址
    masterfile-format text;     #将从windows dns 同步过来的数据修改改成text格式
    allow-update-forwarding { any; };   #允许动态更新的ip地址集
    allow-transfer{ none; };    #允许同步的ip地址集
    #request-ixfr yes;  #slave 使用ixfr更新,默认开启
};

zone "GD.com" IN {
        type forward ;
        forwarders{
        10.205.40.155;
};
};

zone "10.202.10.in-addr.arpa" IN{
    type slave;
    file "slaves/10.202.10.db";
    masters { 10.202.10.6;10.202.10.7; };   
    masterfile-format text; 
    allow-transfer{ none; };    
};

zone "10.10.10.in-addr.arpa" IN{
    type slave;
    file "slaves/10.10.10.db";
    masters { 10.202.10.6;10.202.10.7; };   
    masterfile-format text; 
    allow-transfer{ none; };    
};

同步方式:AXFR/IXFR

AXFR:完全区域传输(Full Zone Transfer,AXFR) IXFR:增量区域传输(Incremental Zone Transfer) IXFR的局限性:BIND9之后才支持

IXFR是否开启:默认开启

provide-ixfr provide-ixfr yes|no ; The provide-ixfr option defines whether a master will respond to an incremental zone transfer request(IXFR) (option = yes) or will respond with a full zone transfer (AXFR) (option = no). The default is yes. This statement may be specified in normal server or view clauses or in a global options clause.

request-ixfr request-ixfr yes|no ; Applies to slave zones only. The request-ixfr option defines whether a server will request an incremental zone transfer (IXFR) (option = yes) or will request a full zone transfer (AXFR) (option = no). The default is yes. This statement may be specified in normal server or view clauses or in a global options clause.

资料: DNS BIND Zone Transfers and Updates http://www.zytrax.com/books/dns/ch7/xfer.html

日志验证:
08-Nov-2018 18:16:06.157 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: connected using 10.136.4.99#42010
08-Nov-2018 18:16:06.227 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: Transfer completed: 13 messages, 8167 records, 203502 bytes, 0.069 secs (2949304 bytes/sec)
08-Nov-2018 18:20:48.230 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: connected using 10.136.4.99#55718
08-Nov-2018 18:20:48.298 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: Transfer completed: 2 messages, 796 records, 20049 bytes, 0.068 secs (294838 bytes/sec)
09-Nov-2018 09:56:09.662 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: connected using 10.136.4.99#46531
09-Nov-2018 09:56:09.713 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: Transfer completed: 1 messages, 5 records, 215 bytes, 0.051 secs (4215 bytes/sec)
09-Nov-2018 10:00:40.715 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: connected using 10.136.4.99#48270
09-Nov-2018 10:00:40.775 xfer-in: transfer of 'te.com/IN' from 10.136.4.144#53: Transfer completed: 1 messages, 5 records, 215 bytes, 0.059 secs (3644 bytes/sec)

目前god中已有8000多条信息,经测试,从windows同步到bind中,AXFR单次同步203502 bytes大小的文件,耗时0.069 secs

动态更新

服务器主动将自己的hostname和ip注册到dns中。 通过配置bind中的allow-update-forwarding,可以将注册数据包转发到master上,待master中写入完成过后,通过同步功能同步到slave中。

递归查询

允许递归查询,主动向8.8.8.8进行查询。

日志配置

请参考 参数: http://www.zytrax.com/books/dns/ch7/logging.html log配置例子: https://blog.csdn.net/zhu_tianwei/article/details/45103455

windows dns 添加区域传送区域更新通知两个权限

动态路由

使用ospf技术,利用quagga软件模拟交换机发送ospf报文,和交换机建邻居并宣告虚拟ip对应的路由条目。

yum -y install bind
service named start
chkconfig named on 
named -v
cat /etc/selinux/config ##disable  
yum -y install quagga
service zebra start
chkconfig zebra on 
cp /usr/share/doc/quagga-0.99.22.4/ospfd.conf.sample /etc/quagga/ospfd.conf
chown quagga:quagga /etc/quagga/ospfd.conf
service ospfd start
chkconfig ospfd on

使用vtysh进入quagga

vtysh
conf t
interface eth0
 ip address 10.10.10.10/32
 ip address 10.202.10.10/24
router ospf
 ospf router-id 10.202.10.10
 log-adjacency-changes detail
 network 10.10.10.10/32 area 0.0.0.1
 network 10.202.10.10/24 area 0.0.0.1
!
end
wr
quit

windows 批量添加DNS的A记录和PTR记录

# dnscmd [DNS] /RecordAdd [域] [主机名] A [IP]
dnscmd . /RecordAdd te.com hostA A 172.16.2.1
dnscmd . /RecordAdd te.com hostB A 172.16.2.2
dnscmd . /RecordAdd te.com hostC A 172.16.2.3
dnscmd . /RecordAdd te.com hostD A 172.16.2.4

细节:

  • 10.202.10.6和10.202.10.7是域控,在使用此技术情况下,通过nslookup解析te.com,结果显示10.202.10.6和10.202.10.7,并不会显示10.10.10.10。
  • dns anycast服务器作为辅助域控,虚拟机指向10.10.10.10可以加域和动态更新dns,如果作为转发服务器,只能加域无法动态跟新dns。
  • bind的forwards是顺序询问,直到有一个回复。
  • windows dns 开通通知功能,同步时间更短。
  • windows AD和windows DNS不能分离,因为msdcs中有部分域信息使用hash码,手工不容易配置。
  • 在不修改ospf的hello和dead时间的情况下,dns anycast服务器宕机,受影响主机40s后才能正常访问。

资料

ixfr资料:基本理念可以,但是比较老。 https://yq.aliyun.com/articles/102290 BIND9.11 官方文档资料: https://www.isc.org/bind-9-11-arm/ DNS BIND Zone Transfers and Updates http://www.zytrax.com/books/dns/ch7/xfer.html 参数: http://www.zytrax.com/books/dns/ch7/logging.html log配置例子: https://blog.csdn.net/zhu_tianwei/article/details/45103455 anycast: https://ddiguru.com/blog/118-introduction-to-anycast-dns

标签:10.202,DNS,transfer,最终版,Anycast,dns,te,com,log
From: https://blog.51cto.com/u_9346709/5759218

相关文章

  • Wireshark Lab: DNS v7.0
    0.实验文件地址http://www-net.cs.umass.edu/wireshark-labs/Wireshark_DNS_v7.0.pdf1.nslookup2.ipconfig3.TracingDNSwithWireshark3.1www.ietf.org3......
  • DNS
    一、DNS概念在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名写IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个完整域名只可以对应一......
  • 09-02 搭建并实现智能DNS
    09-02搭建并实现智能DNS1.环境名称IPDNSnode1DNS服务器192.168.100.11/10.0.0.11-node2北京客户端192.168.100.13192.168.100.11node3上海客......
  • 为什么选择高防DNS云解析?(一)
    ​DNS(domainnameserver, 域名服务器)是互联网的一项核心服务,是进行域名与之对应的IP地址之间转换的系统,可将易于记忆的域名转换为方便服务器识别的用于互连通信的数字IP地......
  • 为什么选择高防DNS云解析?(一)
    DNS(domainnameserver, 域名服务器)是互联网的一项核心服务,是进行域名与之对应的IP地址之间转换的系统,可将易于记忆的域名转换为方便服务器识别的用于互连通信的数字IP地......
  • 09-01 简述DNS服务器原理,并搭建主-辅服务器
    简述DNS服务器原理,并搭建主-辅服务器1.DNS服务器原理1.1DNS是什么DNS(DomainNameService)的作用就是根据域名查询IP地址的方式DNS查询类型对于客户端来说是递归查询,对......
  • 配置DNS域名解析服务
    概:  DNS技术作为互联网基础设施中的重要一环,为用户提供不间断、稳定且快速的域名查询服务,保证互联网正常运转。在互联网中,用户基本上都是基于DNS服务,使用域名访问网络上......
  • dnsmasq设置泛域名解析
    [root@10-13-181-14~]#yum-yinstalldnsmasq[root@10-13-181-14~]#systemctlenablednsmasq[root@10-13-181-14~]#rpm-qldnsmasq/etc/dbus-1/system.d/dnsm......
  • 什么是高防DNS?高防DNS有哪些作用?
    传统解析技术在应对DNS劫持、DDoS攻击等情况已经力不从心,为了保障访客获得更畅通的访问体验,高防DNS成为众多政府和企业网站的更优选择。那什么是高防DNS?高防DNS具备哪些特......
  • pfSense使用ddns-go,实现阿里云、腾讯云动态域名解析
    ​​ddns-go​​是一个简单易用的DDNS,能自动更新域名解析到公网IP,支持Alidns(阿里云)、Dnspod(腾讯云)、Cloudflare、华为云、Callback、百度云、porkbun、GoDaddy、Goo......