DNS的负载均衡和递归与迭代查询

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: DNS的负载均衡和递归与迭代查询

DNS的负载均衡和递归与迭代查询

一、DNS的负载均衡

//DNS服务器资源解析记录的类型:  
//     NS:DNS服务器声明记录
//     A:正向解析记录
//     CNAME:解析记录的别名
//     PTR:反向解析记录

// 我们可以配置多个服务器来实现负载均衡

[root@tk ~]# cat /var/named/test.cn.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
test.cn. NS     tk
tk      A       10.0.0.200
www     A       10.0.0.201
www     A       10.0.0.202
[root@tk ~]#  systemctl  restart named

二、 DNS的泛域名解析


//  DNS的泛域名解析,就是都匹配不到的时候,此时就会匹配到*的地址
[root@tk ~]# cat /var/named/test.cn.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
test.cn. NS     tk
tk      A       10.0.0.200
www     A       10.0.0.201
www     A       10.0.0.202
*       A       1.1.1.1
[root@tk ~]#

// 我们进行测试
[root@gitlab ~]# nslookup abc.test.cn
Server:         10.0.0.200
Address:        10.0.0.200#53

Name:   abc.test.cn
Address: 1.1.1.1

[root@gitlab ~]# nslookup www.test.cn
Server:         10.0.0.200
Address:        10.0.0.200#53

Name:   www.test.cn
Address: 10.0.0.201
Name:   www.test.cn
Address: 10.0.0.202

[root@gitlab ~]#

三、 DNS的解析记录的别名


// 解析别名可以让我们此时的解析结果与其他的域名一样
[root@tk ~]# cat /var/named/test.cn.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
test.cn. NS     tk
tk      A       10.0.0.200
www     A       10.0.0.201
www     A       10.0.0.202
abc     A       10.0.0.203
*       A       1.1.1.1
bieming CNAME   abc
[root@tk ~]#

[root@gitlab ~]# nslookup abc.test.cn
Server:         10.0.0.200
Address:        10.0.0.200#53

Name:   abc.test.cn
Address: 10.0.0.203

[root@gitlab ~]# nslookup bieming.test.cn
Server:         10.0.0.200
Address:        10.0.0.200#53

bieming.test.cn canonical name = abc.test.cn.
Name:   abc.test.cn
Address: 10.0.0.203

[root@gitlab ~]#

四、递归查询


 // 虚拟机B:构建DNS服务器负责b.test.cn
[root@gitlab ~]# yum -y install  bind  bind-chroot
[root@gitlab named]# cat /etc/named.conf
//
// named.conf
options {
        directory       "/var/named";
};
zone "b.test.cn" IN {
        type master;
        file "b.test.cn.zone";
};

[root@gitlab named]# cat b.test.cn.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
b.test.cn.      NS      gitlab
gitlab  A       10.0.0.205
www     A       10.10.10.10
[root@gitlab named]#

[root@gitlab named]# systemctl restart named
 
虚拟机A:子域授权

[root@tk ~]# cat /var/named/test.cn.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
test.cn. NS     tk
b.test.cn. NS   gitlab
tk      A       10.0.0.200
gitlab  A       10.0.0.205
www     A       10.0.0.201
www     A       10.0.0.202
abc     A       10.0.0.203
*       A       1.1.1.1
bieming CNAME   abc
[root@tk ~]#
[root@tk ~]# systemctl restart named

// 虚拟机B:测试
[root@gitlab named]# nslookup  www.b.test.cn
Server:         10.0.0.200
Address:        10.0.0.200#53

Non-authoritative answer:
Name:   www.b.test.cn
Address: 10.10.10.10


五、迭代查询


[root@tk ~]# cat /etc/named.conf
//
// named.conf
//
options {
        directory "/var/named";
        // 禁用递归查询
        recursion no;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone "test.cn" IN {
        type master;
        file "test.cn.zone";
};
zone "test1.cn" IN {
        type master;
        file "test1.cn.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

[root@tk ~]#

[root@tk ~]# systemctl restart named
// 在B主机上进行测试
[root@gitlab named]# dig @10.0.0.200 www.b.test.cn

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.8 <<>> @10.0.0.200 www.b.test.cn
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33847
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.b.test.cn.                 IN      A

;; AUTHORITY SECTION:
b.test.cn.              86400   IN      NS      gitlab.test.cn.

;; ADDITIONAL SECTION:
gitlab.test.cn.         86400   IN      A       10.0.0.205

;; Query time: 2 msec
;; SERVER: 10.0.0.200#53(10.0.0.200)
;; WHEN: Thu Dec 23 00:24:37 CST 2021
;; MSG SIZE  rcvd: 79

[root@gitlab named]#
相关文章
|
2月前
|
负载均衡 算法 Java
Spring Cloud全解析:负载均衡算法
本文介绍了负载均衡的两种方式:集中式负载均衡和进程内负载均衡,以及常见的负载均衡算法,包括轮询、随机、源地址哈希、加权轮询、加权随机和最小连接数等方法,帮助读者更好地理解和应用负载均衡技术。
|
2月前
|
存储 Cloud Native 关系型数据库
Ganos实时热力聚合查询能力解析与最佳实践
Ganos是由阿里云数据库产品事业部与飞天实验室共同研发的新一代云原生位置智能引擎,集成于PolarDB-PG、Lindorm、AnalyticDB-PG和RDS-PG等核心产品中。Ganos拥有十大核心引擎,涵盖几何、栅格、轨迹等多种数据处理能力,实现了多模多态数据的一体化存储、查询与分析。本文重点介绍了Ganos的热力瓦片(HMT)技术,通过实时热力聚合查询与动态输出热力瓦片,无需预处理即可实现大规模数据秒级聚合与渲染,适用于交通、城市管理、共享出行等多个领域。HMT相比传统网格聚合技术具有高效、易用的优势,并已在多个真实场景中验证其卓越性能。
50 0
|
10天前
|
前端开发 JavaScript 开发者
揭秘前端高手的秘密武器:深度解析递归组件与动态组件的奥妙,让你代码效率翻倍!
【10月更文挑战第23天】在Web开发中,组件化已成为主流。本文深入探讨了递归组件与动态组件的概念、应用及实现方式。递归组件通过在组件内部调用自身,适用于处理层级结构数据,如菜单和树形控件。动态组件则根据数据变化动态切换组件显示,适用于不同业务逻辑下的组件展示。通过示例,展示了这两种组件的实现方法及其在实际开发中的应用价值。
19 1
|
30天前
|
域名解析 网络协议 安全
DNS查询工具简介
DNS查询工具简介
|
2月前
|
域名解析 网络协议 安全
DNS查询工具简介
DNS查询工具简介
|
20天前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色
|
2月前
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
167 3
|
3月前
|
SQL 关系型数据库 MySQL
|
3月前
|
前端开发 开发者
Vaadin Grid的秘密武器:打造超凡脱俗的数据展示体验!
【8月更文挑战第31天】赵萌是一位热爱UI设计的前端开发工程师。在公司内部项目中,她面临大量用户数据展示的挑战,并选择了功能强大的Vaadin Grid来解决。她在技术博客上分享了这一过程,介绍了Vaadin Grid的基本概念及其丰富的内置功能。通过自定义列和模板,赵萌展示了如何实现复杂的数据展示。
41 0
|
3月前
|
SQL 数据库

相关产品

  • 云解析DNS
  • 推荐镜像

    更多