术语解答:GSLB (Global Server Load Balance)全局负载。
之前已经引入过GSLB作为双中心入口承载全局负载择优选路功能的宏观技术实现,这篇文章我们将进一步揭露在实现高可用的质量保障下,一个域名映射多个互联网IP时,用户最终是用哪个地址来进行访问的。
01
IPv4地址的珍贵属性
Precious Attributes
为满足互联网业务高可用,同时秉承不浪费的原则,当前我们为生产业务每条专线都分配了一个IPv4互联网地址,测试业务也分配一个IPv4地址保证可用。对于特殊需求业务额外分配同等数量的IPv6地址进行互联网访问。那么,当前我们拥有的IPv4地址到底有多珍贵呢?
域名机构(IANAICANN)与美国政府的爱恨情仇不在这里赘述,最终呈现的结果就是当前的域名所属权是ICANN社区社群管理,而该机构也将地址的划分权分配给了5个区域互联网注册管理机构(RIR),下图中数字表示各RIR拥有的/8 IPv4地址个数。
基于IANA官网进行二次加工
随着大量移动终端的出现,IPv4地址也面临枯竭的局面,下图为个人整理出来的IPv4枯竭时间轴。
02
GSLB域名寻址算法
Addressing Algorithm
上面说明了IPv4地址的珍贵性,下面来细说下在域名有多个映射地址的场景下,通过什么算法机制来返回给用户IPv4地址呢?
第一原则肯定是就近原则,比如说移动用户返回移动,以此类推。如果没有识别出来该用户的归属,那就按照第二原则两条带宽高的专线轮询返回地址。
二话不说直接抓包来说明下:源地址2xx.x.x5.20的用户要访问E信,从报文结果来看最后域名返回的地址是39的移动地址。
互联网全局来查,用户也确实是移动用户:
那么这中间的算法是怎么计算的呢,继续上图为证:
可以看到,GSLB根据就近原则会把每一条记录都进行计算,39地址最终得分100,另外两条专线地址得分都是not higher,所以最终39地址高分通过,GSLB将39地址返回给用户。
上面这种情况是最标准的情况,就近原则同进同出。但是如果没有识别出来专线运营商,又是怎么计算的呢,继续来一条网工的传统手艺,抓包上图为证:
上图的算法逻辑是:因为没有识别出来用户的运营商,所以按照第二原则两条带宽高的专线轮询返回地址,在分别计算移动和电信连个专线的得分都是75后;最后又比对了一下联通的得分,发现联通是80分超过上面两种计算方式,所以最终GSLB返回了211联通的地址。经过查询,该用户地址也确实是联通的:
通过以上庖丁解牛的分析,想必大家对GSLB的算法原理有了初步的印象,在一边感叹算法精密的同时,伴随IPv4地址全球逐渐枯竭的现状,我们后期也会酌情采取地址复用的优化策略来保证资源存量,所以当前的IPv4地址大家且用且珍惜。
文章作者 / 赵旭彤
封面设计 / Lina
原文始发于微信公众号(EBCloud):双中心GSLB域名寻址算法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论