AliDNS(www.AliDNS.com)最近上线了。 我看到同事说更换local DNS后,访问淘宝明显加快了。 以我现在的理解能力,我认为在DNS分析步骤中缩短的时间应该是毫秒级别,浏览器和淘宝集团之间的延迟应该不会变。 但是试了一下,还是觉得明显加快了。 在好奇心的驱使下,学习了下Anycast技术。 当然,AliDNS采用集群缓存共享设计以减少cache miss,从而减少IP分析的时延也是访问速度加快的原因之一。
学IPv4的时候接触了Unicast和Multicast,学IPv6的时候增加了Anycast的概念,但说实话,当时我真的不理解什么是Anycast。 好了,不管怎样,概念性的先来上一段。
‘在IP网络中,用一个Anycast地址标识提供特定服务的主机组,服务访问方不关心提供服务的主机是DNS或镜像服务等,访问该地址的消息是IP网络
如果必须看两次以上上面的话才能理解的话,我很容易说出来。 比如说VIP。 VIP群集中是一组“提供特定服务的主机”,浏览器不关心具体由哪个服务器提供服务,而是通过LB设备将消息分发到其中一个服务器(对应:消息通过IP网络)
有两个区别
1. VIP依赖LB设备实现分发,Anycast依赖路由器
2. VIP频段状态,相同的连接必须发布到同一后端服务器,但路由器现在不能,所以只适合DNS这样的无状态协议
只需依赖路由器即可实现Anycast,无需购买额外的硬件设备。 但是很少有人做过Anycast,是因为Anycast必须协助BGP。 有玩BGP能力的是笨蛋金鱼呢。
既然在玩BGP,就一定有多个AS。 在每个AS中引入相同的集群,对外提供相同的服务,每个AS对外声明相同的IP。 这样配置后,用户将优先访问离其根最近的节点。 以前我得去三个路口以外的商店买水果,现在每个路口都成了一模一样的水果店。 不会不舒服吗?
当然,回到AliDNS,使用Anycast,用户不仅可以找到最近的DNS服务器,而且添加群集缓存共享的元素,一定会缩短DNS分析的延迟,但淘宝访问速度很快其实,这里有另一个逻辑:
1 .一级cache集群对外创建Anycast并发布一对vip (这里是223.5.5.5和223.6.6.6 ),用户将该vip配置为其本地DNS服务器。
2 .一级cache在得到用户请求后,首先检查自己内存中是否有结果,否则将请求转发到按照用户所属网络运营商类别,将该运营商网络的二级cache服务器集群的view
3 .接下来,辅助缓存服务器检查是否在它所属的群集上缓存了结果。 如果整个辅助缓存服务群集没有有效的缓存结果,请从此cache DNS服务器启动递归请求,等待结果返回,然后将其存储在辅助缓存群集中。此 cache dns 和用户属于同一个运营商因此得到的结果是 CDN 友好的结果
33558 www.Ali DNS.com/tech/Ali-pu B- DNS-introl.html
因此,关键原因在于获得了CDN的友好IP。
添加Anycast的一些优缺点。
1. Anycast地址不能用作源地址。 很明显,不能保证回复信息会回到原路。
2 .安全问题,非法服务器可以使用假的Anycast地址声明服务,但实际上不提供服务。 也就是说,变为DOS。
好处:
1 .滴滴涕。 当一个AS提供的服务被***时,路由器可以将消息路由到另一个AS。
2 .故障or网络拥塞。 同上。
但是路由器怎么知道服务有异常? LB设备有体检服务,路由器上也有吗?
补充Anycast实现:
转载于3:https://blog.51cto.com/Wilber 1202/1424134