作者:MeshCloud脉时云CSM 高现起
什么是AnyCast IP?
互联网协议 (IP) 使用三种类型的寻址方案:单播、多播和任播。
单播地址用于标识单个唯一主机。它用于将数据发送到单个目的地。在计算机网络中,单播通信是从网络中的一个点到另一个点的一对一传输。
多播地址用于将数据传送到一组目的地(一对多传输)。IP 多播组地址由专门为多播通信保留的 D 类 IP 地址表示,范围从 224.0.0.0 到 239.255.255.255。发送到多播地址的任何 IP 数据包仅传送到已加入该特定 IP 多播组的主机,从而减少网络流量,从而减少带宽和网络开销。如果主机没有加入该组,接收方将忽略硬件级别的数据包,从而消除该网络元素中的平台软件资源消耗。IPv6 多播取代了 IPv4 支持的广播地址。
Anycast IP 也称为 IP Anycast 或 Anycast 路由,是一种 IP 网络寻址方案,允许多个服务器共享同一个 IP 地址,允许多个物理目标服务器由单个 IP 地址逻辑标识。根据用户请求的位置,任播路由器根据最低成本分析将其发送到网络中的服务器,该分析包括评估跳数、最短距离、最低传输成本和最小延迟测量以优化选择目标服务器。
为什么要用 AnyCast IP?
CDN 服务提供商使用 Anycast 有效地分发内容,以在 CDN 网络中实现更快的网络访问。支持任播的 CDN 将相同的 IP 地址分配给多个边缘服务器,依靠 IP 路由将请求传送到网络中靠近发起请求的客户端的服务器。使用的另一种 CDN 任播方法是基于任播的 CDN 负载平衡提供对复制媒体内容的访问。结合路由协议,Anycast 可以将内容请求最佳地路由到任何一个复制的内容服务器节点,以保持服务的可扩展性。
另一个著名的任播用例是域名系统 (DNS)使用时。DNS 的入口点是通过 DNS 根服务器,可以处理所有 DNS 请求。这些服务器托管为使用任播寻址的 DNS 服务器集群。这有两件事:它允许路由算法确定“最近”的广告位置并向其发送数据包,并在本地 DNS 根服务器可能关闭时创建内置冗余。许多商业 DNS 提供商已切换到 IP 任播环境,以提高 DNS 查询性能和冗余并提供高效的负载平衡。
Anycast 与边界网关协议 (BGP) 的核心路由功能相关联。BGP 任播 IP 地址或前缀从多个位置通告。此路由在 Internet 上传播,使 BGP 能够“通告”对通告前缀的最短路径的认识,并发布多个辅助源路径以到达目标 IP 地址。这使得能够选择“相对靠近”用户数据请求位置的任播服务器。
为什么在右侧图中并没有经过 Oregon 的 PoP 点?
最近的一次分享中,有一个同学对下边这个图片产生了疑问,为什么在 Premier Service Tier 中,从 Google Cloud Region 没有从就近的 Oregon 的 PoP 点经过,而是舍近求远从用户比较近的 PoP 点经过?下边的内容我将试着解释这一问题。
黄色圆点为 Google Cloud Region,蓝色圆点为 Google PoP 点,红色圆点为 用户
Standard Service Tier 图片所示,用户的响应数据从俄勒冈附近的 Region 发出,通过附近的 PoP 点出 Google Cloud 网络,经过互联网节点的不断路由,最终到达用户。该层级网络,在 PoP 点和用户之间,需要经过许多不同的网络、自治系统、ISP,有比较多的路由节点,会存在比较大的延迟和丢包。通俗的说,Standard Service Tier 的数据包在 Google 网络上花费的时间更少,而在公共网络上花费的时间比较多,因此性能更差。
Premier Service Tier 图片所示,用户的响应数据从俄勒冈附近的 Region 发出,通过用户附近的 PoP 点出 Google Cloud 网络,经过用户所在 ISP 运营商网络,直接到达用户。该层级网络,在 Region 和 PoP 点之间,使用到了大量的 Google 内部网络,同时在 PoP 点和用户之间,数据包是直接从 PoP 点通过 ISP 运营商网络直接到达用户,从而拥有更好的网络质量。通俗的说,Premier Service Tier 数据包在 Google 网络上花费的时间更多,反弹更少,因此性能更好。
这和 UniCast IP 、 AnyCast IP 有什么关系?
在 Standard Service Tier 网络中,使用到的公网 IP 为 UniCast IP ,其特点是单播通信,从网络中的一个点到另一个点的一对一传输。上图中,在 PoP 点和用户之间,UniCast IP 需要经过比较多的路由进行转发,拥有更多的跳数,较长的路径,所以整体而言,网络性能等同于其他云厂商。
而在 Premier Service Tier 网络中,使用到的公网 IP 为 AnyCast IP ,AnyCast IP 是一种 IP 网络寻址方案,允许多个服务器共享同一个 IP 地址,允许多个物理目标服务器由单个 IP 地址逻辑标识。同时,任播路由器根据最低成本分析将其发送到网络中的服务器,该分析包括评估跳数、最短距离、最低传输成本和最小延迟测量以优化选择目标服务器。Google Cloud 把 AnyCast IP 地址发布在 176 个 PoP 节点中,同时这些 PoP 节点和 3000+ ISP 厂商做了对等互联,所以在该层级下的用户流量,Google Cloud 会尽可能多的使用 Google 网络,和 ISP 厂商的对等互联则帮助用户流量直接从 PoP 点直接通过 ISP 网络到达用户手里,进而整体的网络性能也会更好。
参考资料:
https://kinsta.com/blog/google-cloud-network/