安全L1-AD.5-全局负载(单站点)

本文详细介绍了全局负载的单站点配置,包括A记录、NS记录、DNS服务、虚拟IP池、DNS映射和调度策略等核心元素。重点阐述了静态就近性、轮询、加权轮询等算法的应用,并给出不同网络环境下的推荐策略。同时,以一个实际案例展示了如何利用SANGFOR AD设备实现智能DNS解析,确保不同运营商用户访问内部WEB服务时返回对应IP地址。此外,还强调了DNS服务器中监听地址的配置以及健康检查的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、全局负载(单站点)基本原理

        1、A记录:

              用来指定主机名(或域名)对应的IP地址。

              LDNS:开通线路时,运营商告诉客户的DNS服务器。 

          2、NS记录:域名服务器记录

                用来指定域名由哪个DNS服务器来进行解析

         NS记录推荐格式: NS:  www.abc.com  ns1.abc.com

                                           A:  ns1.abc.com 212.10.204.26

         AD设备充当DNS服务器,收到外网域名请求时,设备通过调度算法计算出最优链路并将IP返回。

        NS记录推荐格式: NS: www.abc.com  ns1.abc.com

                                         A: ns1.abc.com 212.10.204.26

二、全局负载(单站点)基本元素

        1、DNS服务:

         配置监听地址:即为DNS服务器提供服务的IP地址,一般为WAN口的IP地址。

         2、虚拟IP池:

        一般是一个域名解析的对应IP地址的逻辑分组(一个或者多个IP地址),并且有自己的调度策略。

         DNS映射将域名与虚拟IP池对应起来,调度到虚拟IP池后,再根据虚拟IP池的策略返回相应IP。

         3、DNS映射:

                将域名和对应的虚拟IP池对应起来。

         4、调度策略—DNS映射:

               》静态就近性:DNS映射和虚拟IP池中均可选择静态就近性算法。

                        静态就近性算法规定根据LDNS IP归属来选择某个虚拟IP池(由DNS映射级别决定)或虚拟IP池中某个IP地址(由虚拟IP池级别决定)。

                》轮询:DNS映射和虚拟IP池中均可选择轮询算法。

                        轮流调度某个虚拟 IP 池或者虚拟IP池中某个IP,机会均等。

                 》加权轮询:DNS映射和虚拟IP池中均可选择加权轮询算法。

                        通过权重加权计算结果并调度某个虚拟 IP 池或虚拟IP池中某个IP 。

         5、调度策略—虚拟IP池:

                 》首个可用:首个IP地址通过监视器检测可用则始终返回到这一个IP地址给Local DNS,当此IP地址不可用时,调度到其他IP。

                 》哈希:根据Local DNS的IP地址做哈希运算,不同的Local DNS请求均衡返回链路IP地址。

                》动态就近性:当AD设备接收到客户端Local DNS的域名请求时,设备从所有链路向该Local DNS发起反向探测请求,最快收到回应(包含拒绝)的链路认为最优返回最优的链路的IP给Local DNS 。

                》加权最小连接:当AD接收到Local DNS的域名请求时,根据当前有效链路的一个动态比值(链路的连接数/链路的权重),该比值越小,优先级越高,返回最高优先级的链路的IP给Local DNS 。

                》加权最小流量:当AD接收到Local DNS的域名请求时,根据当前有效链路的一个动态比值(链路的流量/链路的权重),该比值越小,优先级越高,返回最高优先级的链路IP给Local DNS 。

 》》》推荐使用算法:

        (1)如果拥有多条同一个运营商的链路,可考虑使用轮询加权轮询哈希。    

        (2)如果拥有不同运营商的链路,可考虑使用静态就近性算法。    

        (3)如果是入站流量不大且源IP范围大多是国外,可考虑使用动态就近性。    

        (4)如果链路之间的带宽差异比较大,可考虑使用加权最小连接加权轮询

        6、健康检查:

        注意: 如果虚拟IP如果是WAN口上的IP,配置监视器后,虚拟IP是否参与调度取决于此WAN口链路是否在线;

                    如果虚拟IP跟虚拟服务联动,配置监视器后,虚拟IP是否参与调度取决于虚拟服务是否可用。 

         7、DNS记录:

         DNS映射只是针对A记录/AAAA记录的。当AD做DNS服务器时,需要使用其他的DNS记录,可以在AD上配置相关的DNS记录。

         注意:同一域名配置了DNS映射和DNS记录A记录,DNS映射会优先于DNS记录中A记录

三、全局负载(单站点)典型场景

        网络环境:

                 某客户线路1电信100M,线路2联通100M,内网有2台服务器提供WEB服务。

         网络需求:

                (1)已经从域名服务商注册域名www.abc.com。 希望外网用户通过域名www.abc.com访问到内部WEB服务,不同运营商的用户返回不同的地址,外网电信用户解析域名www.abc.com返回电信IP,联通用户解析域名www.abc.com返回联通IP。

                (2)任何一条线路故障后,域名解析的结果要返回正常线路的地址。

        解决方案:

               (1)部署SANGFOR AD设备到网络出口,这样可以检测到链路健康状况,某条链路坏了自动切换到正常链路。 

                (2)用SANGFOR AD单站点全局负载功能AD充当DNS服务器,通过静态就近性算法,根据LDNS IP归属来选择合适的IP返回,从而实现智能DNS解析,联通用户返回联通地址,电信用户返回电信地址。

        配置思路:

                (1)在域名提供商处设置域名的NS记录指向AD的IP。(非AD设备的配置)

                (2)配置DNS服务器。

                (3)域名发布。配置DNS映射以及虚拟IP池。

                (4)配置LDNS集合。

                (5)完成静态就近性的配置(映射级别)。

????? 该案例中,如果该客户不希望改动网络,故以单臂模式部署连到三层交换机,那此时DNS服务器中监听地址需要填写什么?

        答:DNS服务器中监听地址需要填写AD设备WAN口IP,一般为客户环境的私网IP。且要注意出口防火墙两条线路需要做相应的端口映射到内网AD的WAN口。

#include<bits/stdc++.h> using namespace std; const int maxn = 1e6 + 100; bool flag = 0; long long n,q,te; long long block, be[maxn], l[maxn], ad1[maxn],a[maxn],b[maxn]; void blad(int l1, int r1, int val) { for (int i = l1; i <= r1; i++) { a[i] += val; } for (int i = l[be[l1]]; i <= l[be[l1] + 1] - 1; i++) { b[i] = a[i]; } if (be[l1] != block + 1)sort(b + l[be[l1]], b + l[be[l1]] + block); else sort(b + l[be[l1]], b + l[be[l1]] + te); } void ad(int l1, int r1, int val) { if (be[l1] == be[r1]) { blad(l1, r1, val); return; } blad(l1, l[be[l1] + 1] - 1, val); blad(l[be[r1]], r1, val); for (int j = be[l1] + 1; j < be[r1]; j++) { ad1[j] += val; } return; } int qz(int l, int r, int val) { int ans = 0; if (ad1[be[l]] >= val)return (r - l + 1); ans = lower_bound(b + l, b + r + 1, val-ad1[be[l]]) - b; //cout << l << r << ans<<endl; if (b[ans] >= val - ad1[be[l]]) { //cout << ans<<" "<<213123<<endl; return r - ans + 1; } else { //cout << 222; return 0; } } int blqz(int l1, int r1, int val) { int ans = 0; for (int i = l1; i <= r1; i++) { if (a[i] +ad1[be[i]] >= val)ans++; } return ans; } int query(int l1, int r1, int val) { int ans = 0; if (be[l1] == be[r1]) { for (int i = l1; i <= r1; i++) { if (a[i] + ad1[be[i]] >= val)ans++; } return ans; //cout << l1 << "到" << r1 << "有" << ans << endl; } ans += blqz(l1, l[be[l1] + 1] - 1, val); //cout << l1 << "到" << l[be[l1] + 1] - 1 << "有" << ans << endl; ans += blqz(l[be[r1]], r1, val); //cout << l[be[r1]] << "到" << r1 << "有" << ans << endl; for (int i = be[l1] + 1; i < be[r1]; i++) { //cout << l[i] << " " << l[i] + block - 1 << endl; //if (qz(l[i], l[i] + block - 1, val) < 0)cout << "出错了" << endl; if (i != block + 1)ans += qz(l[i], l[i] + block - 1,val); else ans += qz(l[i], l[i] + te - 1, val); } //cout << l[be[l1] + 1] << "到" << l[be[r1]]-1 << "有" << ans << endl; return ans; } int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin >> n >> q; block = sqrt(n); if (block * block != n)flag = 1; for (int i = 1; i <= n; i++) { cin >> a[i]; b[i] = a[i]; be[i] = (i - 1) / block + 1; if (be[i] != be[i - 1])l[be[i]] = i; //cout << l[2] << endl; } for (int i = 1; i <= block; i++) { sort(b + l[i], b + l[i] + block); //cout << l[be[i]] << endl; } te = n - block * block; if (te>0)sort(b + l[block+1], b + l[block + 1] + te); l[be[n] + 1] = n + 1; //int x1 = lower_bound(b + 1, b + 1 + n, 5)-b; //cout << x1 << endl; //for (int i = 1; i <= n; i++)cout << b[i] << " "; char c; int x, y, z; for (int i = 1; i <= q; i++) { cin >> c >> x >> y >> z; if (c == 'A') { cout << query(x, y, z)<<endl; } else { ad(x, y, z); } } return 0; }有什么错误吗
最新发布
07-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒憨憨吖~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值