任播(英语: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. 

外部链接

编辑