IPv6下,任播地址(Anycast Address)介绍

Anycast 最初是在 RFC1546 中提出并定义的,它的最初语义是,在 IP 网络上通过一个 Anycast 地址标识一组提供特定服务的主机,同时服务访问方并不关心提供服务的具体是哪一台主机(比如 DNS 或者镜像服务),访问该地址的报文可以被 IP 网络路由到这一组目标中的任何一台主机上,它提供的是一种无状态的、尽力而为的服务。目前对于 Anycast 的中文译称主要有,“ 任播 ”、“ 泛播 ”、“ 选播 ” 等,本文一律使用 “ 任播 ” 一词,或者直接使用英文单词 “ Anycast ” 。

  • 任播地址与单播地址使用相同的地址空间
  • 配置时须明确表明是任播地址,以此区别单播和任播
  • 子网路由器任播地址(发送到子网路由器任播地址的报文会被发送到该地址标识的子网中路由意义上最近的一个路由器)
anycast-address
anycast-address

以下是更为详细的解释(摘自百度百科):

Anycast

Anycast 指 IPv6 协议中一个发送方同最近的一组接收方之间的通信。Anycast 的定义是:当一个单播地址被分配到多于一个的接口上时,发到该接口的报文被网络路由到由路由协议度量的 “ 最近 ” 的目标接口上。 Anycast 允许源结点向一组目标结点中的一个结点发送数据报,而这个结点由路由系统选择,对源结点透明;同时,路由系统选择 “ 最近 ” 的结点为源结点提供服务,从而在一定程度上为源结点提供了更好的服务也减轻了网络负载。正是 Anycast 这一通信模式的特点,使它在 IP 网络中具有了应用前景。首先,分布的服务共享相同的 IP 地址,同时在 IP 层进行透明的服务定位,这使得各种网络服务特别是应用层服务具有更强的透明性,比如 DNS(Domain Name System,域名系统),在 IPv6 网络中它可以共享一个熟知的 IP 地址,用户不需要特殊配置也不用关心访问的是哪一台 DNS 服务器;其次,路由系统选择了 “ 最近 ” 的服务,缩短了服务响应的时间,同时减轻了网络负载;最后,相同的服务在网络上冗余分布,路由系统可以提供机制选择负载相对轻的带宽相对高的路径来转发报文,这样就给用户带来了两个方面的好处:

  1. 减弱了分布式拒绝服务攻击(DDoS:Distributed Denial of Service)对用户带来的影响。当 Anycast 组中某一个成员或者几个成员受到攻击时,负责报文转发的路由器可以根据各个组成员的响应时间来决定报文应该转发到哪个成员上,这样受到攻击的成员由于没有响应,所以报文就不会被转发到那里,同时,由于 Anycast 提供的服务访问透明性,组成员也相对较难受到 DDoS 攻击。
  2. 减弱了网络拥塞给用户带来的影响。同上面的道理,当 Anycast 的某些组成员处在拥塞的网段时,它的响应时间就较长,报文可以被转发到响应较好的成员那里。

Anycast 与 Multicast 和 Unicast 是三种通信方式,其中 Multicast 是指一个发送方同多个接收方之间的通信;Unicast 是指单个发送方和单个接收方之间的通信。Anycast 的用途之一是用一个主机进行组内所有主机路由表的更新工作。IPv6 可以自动判断最近的网关,然后将数据包传给此网关。反过来,此主机可以对组内所有的主机进行 Anycast,直到完成整个路由表的更新工作。

Multicast

Multicast 的中文译名是多播,它是指网络中一个节点发出的信息被多个节点收到。与此相对的有 Unicast 和 Broadcast,前者是指一个节点发出的信息只被一个节点收到,后者是指一个节点发出的信息被子网内所有节点收到。实际上,在数据链路层和网络层都有 Multicast,通常所说的 Multicast 大多是针对 IP 的。这种技术用于多媒体应用、多用户交互(如聊天室)、软件分发等,相比与传统的 Unicast 可以大大提高效率。在子网内实现 Multicast 较为简单,跨越子网时需要路由器、网关等设备的支持。

Unicast

Unicast(单播):在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。指网络中从源向目的地转发单播流量的过程。单播流量地址唯一。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放;管理人员也被迫购买硬件和带宽来保证一定的服务质量。文字单播方式下,只有一个发送方和一个接收方。与之比较,组播是指单个发送方对应一组选定接收方的一种通信,任意播是指任意发送方对应一组较为接近的接收方间的一种通信。早期的点对点通信含义类似于单播。

其他相关文章:

打赏作者
这里是 “ CCIE 工程师社区 ” 官方的捐款通道,您是否可以考虑请我们喝杯咖啡呢?

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

Was this article helpful?

Related Articles

Leave A Comment?

This site uses Akismet to reduce spam. Learn how your comment data is processed.