IP 以全零結尾:有效(對於 /128)或可能與任播混淆?

IP 以全零結尾:有效(對於 /128)或可能與任播混淆?

Host Europe 分配了一個我剛從他們那裡租用的虛擬機,其 IP 位址以全零 ( 2xxx:xxxx:xxxx:xxxx::/128) 結尾。

我聲稱這可能是互通性問題,因為最後 64 位元全零的位址通常是子網路路由器的任播位址,我擔心其他節點可能會特別對待它。

他們的支援說:“從語法上講,它只是一個子網任播地址,但您可以毫無問題地使用它,因為我們使用 /128 子網大小。”(我的翻譯)

我只是半信半疑。有沒有什麼東西可以讓節點專門處理這種類型的地址,或者我真的可以像常規地址一樣使用它嗎?

答案1

我聲稱這可能是互通性問題,因為最後 64 位元全零的位址通常是子網路路由器的任播位址,

對於一個子網,介面ID全零將是子網路任播。雖然理論上它被定義為IPv6 全球單播的64 位,但實際上,子網前綴長度定義了接口ID 的長度- 它通常是64 位,因為這是減去/64 前綴後剩下的,但是/ 128 位址沒有子網,也沒有介面 ID(這將是 0 位元 IID)。

我擔心其他節點可能會特殊對待它。

與 IPv4 全 1「子網路廣播」位址的情況類似,子網路路由器任播(或 IPv6 中定義的任何其他類型的本地子網路任播)只有在實際到達所述子網路的路由器後才有意義。僅子網路路由器有能力的首先給予它任何有用的治療;不在該子網路中的主機或路由器不能執行任何其他操作,只能將其作為常規單播位址向前路由。因此,如果位址是“通過”您的主機靜態路由的,那麼只有您自己的電腦才是它的“子網路路由器”,而其他節點實際上沒有發言權。

(這似乎反映了 IPv4 有類別尋址,其中傳遞的節點可能「知道」192.168.4.255 是特殊的,因為它是 C 類位址......但儘管有這些知識,它們仍然無法做任何事情否則,無論如何都會像普通位址一樣路由它。

答案2

可以在 IPv6 主機上設定單主機網路並進行路由。儘管一個子網路路由器位址在這裡毫無意義,應該被禁用,但仍然存在關於您是否可以獲得適當的 /64 以及他們的地址規劃是否已準備好的問題。

IPv6 連結確定是一個協定的東西,所以不需要像 v4 那樣在同一子網路中有路由器 IP 位址。通過其他一些連結網路的流量工作正常,幾乎可以肯定是預設網關的連結本地位址。

RFC 中記錄了一個類似的長前綴事物,其論點是以下實踐:RFC 6164 中點對點上的 /127s。人們認為這會破壞東西,但它確實有效。這些建議包括,如果要從 1 /64 中分配多個前綴,則不應使用全零介面 ID。 “否則,節點可能會收到它們不打算接收的資料包。”如果您是 /64 中唯一的客戶,這一點就不那麼重要了,但我不會解釋他們的回應來保證這一點。

至少可以說,每個租用的虛擬機器一個地址並不是很慷慨。有一些用例可以為您自己的容器或基於 IP 的虛擬主機分配 IP。但是,這需要將整個前綴路由到您的主機,而大多數提供者都沒有這樣做。如果他們還沒有這樣做,那麼出於地址規劃的原因,他們保留整個 /64 可能是一個好主意,即使只有一個 IP 連接到您的來賓。有足夠的地址空間來支持這一點。

擁有盡可能短的虛榮地址固然很好,但這並不是真正必要的。2001:db8:c6ad:a661::1文字形式只比 稍長2001:db8:c6ad:a661::。無論哪種方式,DNS 中的名稱長度都是相同的。

相關內容