3DNS多线路解决方案.docx
- 文档编号:2906823
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:17
- 大小:406.50KB
3DNS多线路解决方案.docx
《3DNS多线路解决方案.docx》由会员分享,可在线阅读,更多相关《3DNS多线路解决方案.docx(17页珍藏版)》请在冰豆网上搜索。
3DNS多线路解决方案
3DNS多链路接入解决方案
杨明非
F5公司北京办事处
2005-1-24
目录
1.前言2
2.需求描述3
3.系统设计3
3.13DNS多链路设计结构图:
4
3.2网络拓扑结构说明5
3.3系统逻辑结构6
3.4同一组服务器对外多地址服务原理7
3.53DNS分配算法及运行机制8
3.5.1RTT算法运行机制:
9
3.5.2地理分布算法11
3.5.3全球可用性算法12
3.6链路健康检查机制12
3.7系统切换时间14
3.8服务器负载均衡14
4.3DNS与现有系统的融合17
4.1改变上级注册授权域DNS服务器地址17
4.2不改变上级注册授权域DNS服务器地址18
5.系统安全性考虑18
6.成功案例19
1.前言
在原Chinanet分为北方ChinaNetcom和南方ChinaTelecom之后。
由于南北网络之间的互联问题。
出现了从南方用户访问北方网站或北方用户访问南方用户访问速度较慢的问题。
其出现的根本原因为南北网络的互通互联接点拥塞,造成用户丢包、延迟较大,从而导致访问缓慢,甚至对于一些应用根本无法访问。
2.需求描述
对于一个运行关键业务的电子商务网站来说,保持用户的访问速度和访问的成功率非常重要。
需要一套系统来解决南方和北方用户的访问问题。
以下是一张实测数据表
测试项目
网通北京ADSL用户访问12月2日凌晨1时
广东电信用户访问,宽带用户,带宽未知,12月2日16:
30
网通北京ADSL用户访问,12月2日16:
00
上海ADSL宽带用户访问,12月2日20:
00
DNSResult
202.xxx.xxx.209
219.xxx.xxx.11
202.xxx.xxx.209
219.xxx.xxx.11
网通
电信
网通
电信
网通
电信
网通
电信
Numberofhits:
72
69
4
76
52
47
19
35
RequestsperSecond
1.20
1.15
0.07
1.27
0.87
0.78
0.32
0.58
SocketConnects
73
70
5
77
53
48
20
36
TotalBytesSent(inKB)
14.19
13.47
0.96
14.96
13.61
12.23
3.87
7.03
BytesSentRate(inKB/s)
0.24
0.22
0.02
0.25
0.23
0.20
0.06
0.12
TotalBytesRecv(inKB)
4148.24
4001.90
256.58
4388.54
3019.94
2703.26
21.73
39.83
BytesRecvRate(inKB/s)
69.12
66.68
4.28
73.12
50.32
45.05
0.36
0.66
表中可以看出,对于同一个站点,一个用户分别从两条线路进行访问,得出的访问速度差异是非常大的。
最大的差值在广东电信分别访问站点的两条线路,其速度差异接近20倍。
3.系统设计
通常用户系统原有结构设计图
在系统原有系统结构中,采用单条接入线路,一个或多个DNS服务器,这些服务器对于同一个域名均解析为同一个地址。
3DNS多链路设计结构图:
非冗余结构:
在非冗余结构下,系统中需要增加一侧接入路由器、两台3DNS设备和一台BIGIP设备作为多线路接入设备。
冗余结构:
在冗余结构中,则采用两台3DNS和两台BIGIP实现了系统的全冗余,同时,在BIGIP下端,可采用防火墙和核心交换机冗余保证系统的进一步可靠性。
网络拓扑结构说明
在原系统接入中,增加一条线路,并采用相应的接入路由器,将两台3DNS服务器分别接在两台接入路由器上,负责用户的DNS访问请求。
引导用户使用最快的链路进行访问站点。
同时,3DNS负责检查两条线路的健康状态,一旦检测到线路的中断,则停止相应线路的地址解析。
在接入路由器之后,采用了F5BIGIP作为多链路接入设备,在BIGIP上配置多个IP对应每条线路分配的IP网段。
这些IP同时对应后端的一台或多台服务器。
实现服务器组的对外统一服务。
根据每个系统的需求,可以采用非冗余结构或者冗余结构。
系统逻辑结构
3DNS上采用DataCenter、VS、和WideIP来标识系统中的各元素,系统逻辑结构图如下:
其中:
3DNS配置:
●VS:
表示各线路真实对外提供服务的IP地址,在本系统中,VS为BIGIP上虚拟的后端服务器地址。
●WideIP:
表示外部用户访问的统一域名,每个WideIP均与相应的两个或多个VS相对应,对于每一个LocalDNS的请求,3DNS均会选择一个或多个相应的VS地址返回。
WideIP主要负责A记录的解析。
●DataCenter:
用于标识线路或数据中心,位于同一条线路侧的所有VS、3DNS均位于同一个DataCenter。
●NameSurfer/BIND:
在3DNS内部用于解析非动态域名,提供标准DNS服务器的所有功能。
包括SOA、NS、MX和A记录的解析。
BIGIP配置:
●VS:
表示对应于各线路的服务地址,该地址为虚拟地址
●Pool:
用于对后端的服务器分组,在同一组内可以是一个或多个服务器组成的负载均衡组。
BIGIP将对VS的访问根据预先定义的算法分配到Pool中的每个Node节点上。
●Node:
标识每一台真实的服务器地址和提供服务的端口。
同一组服务器对外多地址服务原理
由于采用了多条链路接入,则此时必将面临将系统中的一台或多台服务器同时对多条链路提供服务的问题。
在系统设计中,我们采用了F5BIGIP来实现了多出口接入。
如图:
在BIGIP实现多链路接入的时候,采用了BIGIP上的AutoLastHop技术。
对于每条线路,在BIGIP上均配置一个与线路分配网段对应的IP地址,这些IP地址均映射到后端的一台或同一组服务器。
当用户访问不同地址的时候,BIGIP上将建立每个请求与来源设备Mac地址的对应关系表。
即将每个用户的请求连接和上端的路由器MAC地址进行对应,在服务器数据返回的时候,则根据该对应表将返回的数据包发送到相应的路由器,避免了数据往返通路不同的问题。
3DNS分配算法及运行机制
3-DNS控制器采用了完善的负载平衡算法和业界最先进的流量分配方法:
•循环
•全球可用性
•LDNS持续性
•应用可用性
•地理分布
•虚拟服务器容量
•最少连接
•Pkt/sec(数据包/每秒)
•KB/sec(千字节/每秒)
•往返时间
•中继段(hop)
•数据包完整率
•用户定义服务质量(QoS)
•动态比率
•LDNS循环
•比率
•随机
在3DNS的每个WideIP中,可以选择三种算法,这三种算法按照预定的优先级进行排列。
在通常情况下,选择RTT动态计算方法作为系统的优选算法,即所有的LocalDNS请求均被3DNS计算其就近性,以保证绝大部分用户访问的最优化性。
而Topology算法则作为RTT动态计算的补充算法,在RTT计算方式没有结果的时候,将用户请求定义到其本网的线路上。
GlobalAvailability算法作为系统的默认算法,将所有无法计算结果并且不在Topology范围之内的LocalDNS请求,定义到系统的默认线路上。
RTT算法运行机制:
通过3DNS的RTT就近性算法会自动运算生成一个ldns就近分布表,通过这个动态的表,每个客户上来都会提供一个最快速的链路进行访问,由于站点有网通和电信的两条广域网线路。
在3DNS上会针对站点服务器(以为例)解析网通和电信的两个不同的公网地址。
对应于域名,在3DNS上配置wideip:
,对应两个VirtualServer:
VS1:
202.106.83.177,VS2:
219.17.66.100。
分别属于网通和电信两条线路分配的IP地址段。
在3DNS内部,同时定义两个DataCenter分别与网通和电信相对应。
用户的访问流程如下:
访问网银的用户在发起DNS请求时
(1)首先向其所在运营商的LocalDNS发起域名的DNS请求。
步骤2
(2)运营商的LocalDNS服务器通过递归算法查找到工行的主、辅DNS服务器。
步骤3和4。
(3)接受到请求的3DNS首先查询在本地是否有该LocalDNS的就近性表项,如果存在,则直接给LocalDNS返回速度最快的服务器地址。
如果不存在,则通知另外一台3DNS发起对该LocalDNS的查询。
步骤5。
(4)两台3DNS分别对LocalDNS进行Probe。
例如网通侧3DNS查询该LocalDNS的RTT时间为150ms,而电信侧3DNS查询同一LocalDNS的RTT时间为300ms,则此时在两台3DNS内都形成了该LocalDNS的对应就近性表记录。
(5)接受到LocalDNS请求得3DNS根据系统的就近性表返回相应的DataCenter内的WEB服务器地址。
步骤6。
(6)在用户LocalDNS获得地址后,将该地址返回给用户。
步骤7
(7)用户向网站发起访问。
步骤8。
通过以上流程可以看出,通过动态计算方式,可以最为准确的估算出用户LocalDNS与两条线路之间的速度。
通过3DNS之间的信息交互,在两台3DNS上形成就近性表,并根据该表返回用户的最佳访问地址。
3DNS可以选择多种测试方法判断对localDNS的RTT时间,包括:
●DNS_Dot:
向localDNS发起一个包含”.”的测试,也就是向目标LocalDNS请求root清单,该解析一般默认配置的DNS服务器均提供支持。
●DNS_REV:
向localDNS发起LocalDNS本机IP的PTR请求
●UDP:
发起一个UDP的包,看是否回应
●TCP:
发起一个TCP的包看是否回应
●ICMP:
发起一个ICMP的ping包,看是否回应
在以上各检测方式中,无论目标系统返回那种类型的数据包,3DNS均可认为是有效数据包而记录数据包往返时间,最终形成就近性表。
针对一个localDNS的RTT结果:
ldns{
address61.136.178.229
cur_target_state419446729
ttl2419199
probe_protocoltcp
path{
datacenter"CNC"
cur_rtt189850
cur_hops0
cur_completion_rate10000
cur_last_hops0
}
path{
datacenter"TEL"
cur_rtt57209
cur_hops0
cur_completion_rate10000
cur_last_hops0
}
}
通常情况下,我们选择RTT动态算法作为优选算法,只要是3DNS能检测到的地址,一律按照动态算法分配,保证系统最大的灵活性。
在实际的运行环境中,可能存在某些LocalDNS无法检测的情
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DNS 线路 解决方案