任播(英语:anycast)是一种网路定址和路由的策略,使得资料可以根据路由拓扑来决定送到“最近”或“最好”的目的地。

路由形式

单播

任播

多播

广播

地域性广播

任播是与单播unicast)、广播broadcast)和多播multicast)不同的方式。

  • 在单播中,在网路位址和网路节点之间存在一一对应的关系。
  • 在广播和多播中,在网路位址和网路节点之间存在一对多的关系:每一个发送位址对应一群接收可以复制资讯的节点。
  • 在任播中,在网路位址和网路节点之间存在一对多的关系:每一个位址对应一群接收节点,但在任何给定时间,只有其中之一可以接收到传送端来的资讯。

网际网路中,通常使用边界网关协议(BGP)来实现任播。

在过去,任播适合无连线协议通常建立在用户数据报协议(UDP)多于连线导向协议(如会记录状态的传输控制协议(TCP))。然而,也有很多情况是传输控制协议(TCP)使用任播的,包含运载网路如Prolexic使用传输控制协议任播。

因此,任播通常用于提供高可靠性和负载均衡

DNS中任播位址的使用

IPv6过渡期中任播位址的使用

IPv4IPv6的过渡过程中,任播定址可能可以被用来发展提供IPv4相容到IPv6主机。6to4使用一个IP位址为192.88.99.1的预设闸道器(参见RFC 3068)。这允许多个实作6to4闸道器的提供者而不用主机知道每一个单独提供者的闸道器位址。

任播实作的安全性

任播允许任何一个被中继路由器接受其路由资讯的运作者蓄意挟持任播位址。尽管第一眼看到会认为这不安全,但这与原来IP封包的路由方式无异,其安全性没有任何不同。对传统IP路由而言,谨慎地过滤传递路由通告以对付中间人攻击黑洞攻击是很重要的。

任播的可靠性

任播是正常高可靠性,它可以提供自动故障复原。任播应用典型是外部"心跳"监视。

阻断服务攻击和任播

在网路上,任播可以用来帮助抵御分散式阻断服务攻击(DDoS)并减少它们的效率。既然流量是导到最近的而非攻击者程式能控制的节点,洪水攻击流量将被分散到最近的节点。这通常意味著并非所有的节点被影响。这通常是一个布署任播位址的重要理由。

这种分散攻击技巧是否有效却是充满疑问的,因为单播位址是很容易得到的,至少在IPv6中如此。RFC 2373定义了"IPv6封包的来源位址不可以是任播位址"。所以,ping一个"任播"位址的话,既然其回传必须从一个单播位址来的,则会传回最近的单播位址。于是,只要绕过任播位址,攻击者可以攻击任何地方的单一节点。同样的方法适用于相同,但非全部的IPv4任播位址。[1]

区域和全域节点

在某些情况下网际网路的任播发展,在区域和全域节点间存在差异。

参见

参考资料

  1. ^ IEEE. IP anycast point-to-(any)point communication (PDF). Internet Computing, IEEE. 2002-08-07, 6 (2): 94 – 98. doi:10.1109/4236.991450. 

外部链接