阿里云高防IP的Anycast和Unicast

less than 1 minute read

阿里云的高防IP目前只有国际版采用的是Anycast,中国大陆的话还是Unicast。 正常的Unicast网络,也就是我们平时熟悉的单播网络,不同地域部署的服务器IP都是不一样的。 Anycast 网络不一样的是,不通地域部署的服务器IP都是一样的。

举个例子:在Unicast 网络中,DNS服务器会根据客户端的源地址进行地域判定,然后响应对应的A记录。 比如: 不同地区的客户解析某个域名, 北京用户可能拿到的是1.1.1.1, 纽约的客户可能是2.2.2.2。 这种场景下,对于攻击者来说, 其实没有做任何的隔离。攻击者可以攻击北京服务器地址1.1.1.1,也可以攻击纽约的服务器地址2.2.2.2。

但在Anycast网络环境下,不同地区的客户获取到的解析地址都是一样的。比如,假设北京的服务器和纽约的服务器地址都是2.2.2.2。 客户端是通过BGP路由就近访问 2.2.2.2,北京的攻击者DDoS攻击2.2.2.2, 就只能引流到北京的服务器。 纽约的攻击者就只会攻击到纽约机房的服务器。 这样下来,攻击就分摊出去了,让攻击者无法集中将一个点的带宽打满。 这个就是目前Anycast的实现逻辑:通过在不同地域部署相同IP的服务器,然后不同地域客户通过相同的IP访问到的服务器是就近的机房提供的。

中国大陆的话,因为是Unicast,目前只在杭州部署,阿里云国内高防IP的服务器集群和清洗集群是统一在杭州的。

如果既想要高防又想要利用CDN,那就建议部署DDoS高防和CDN联动,无攻击的情况下走CDN加速到源站; 有攻击的情况下切换到高防IP清洗流量,然后回源。 如果仅仅是接入高防IP的情况下,想加速用户的访问,目前是没有办法实现的。