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

外部連結