APNIC文摘— IPv6連結本地位址到底有什麼問題?(上)

本APNIC文摘原標題為What’s the deal with IPv6 link-local addresses?,由RIPE NCC研究工程師Philip Homburg撰文。

本文將分上下兩集,分別說明IPv6連結本地位址(link-local address)的特殊性,以及對RIPE NCC管理的全球網路量測系統RIPE Atlas之影響。

  1. 什麼是「鏈路本地位址」?

「連結本地位址」是電腦網路中一種特別的位址,僅限於網段(network segment)或廣播網域(broadcast domain)中,電腦主機的互相溝通使用。由於連結本地位址僅限本地使用,不同的網段中就算使用一樣的連結本地位址也不會造成干擾。但也因此,路由器理論上不會轉發帶有連結本地位址的封包。

IPv6的連結本地位址和IPv4不同。IPv4的連結本地位址只有在動態主機配置協定(Dynamic Host Configuration Protocol,DHCP)沒有提供位址的情形才會出現。換句話說,IPv4的連結本地位址只會單獨出現。IPv6連結本地位址則相反,它一定會跟IPv6位址一起出現。而且IPv6路由也常利用連結本地位址向其他主機發布通告。

  1. IPv6連結本地位址和插座應用程式介面(Socket Application Interface,Socket API)

若僅照字面上翻譯,Socket就是「插座」的意思。要理解這個功能為何叫作「插座」,可以類比電話系統來解釋。在電話系統中,只要設定好電話插座的號碼,任何一部電話都可透過這個插座和其他電話通訊;電話如何撥接、路由設定等功能均由電話公司負責,使用者完全不需有任何相關知識。

網路上的 Socket 就像電話插座,每個 Socket 都有自己的特殊號碼(IP number + TCP port);使用者只要知道對方的 Socket 號碼就可以直接通訊,不用考慮訊務經過何種網路、主機放在什麼地方,這些都是ISP業者的工作。

一般而言,電腦的內核程式(kernel)會替傳出去的連結或封包選定適合的介面(interface)。但若內核程式選擇失敗,或使用者想要自行選擇介面時,就必須刻意選擇介面上的本地位址;因為不同介面上的位址應該都是獨一無二、互不相同,使用者可以利用這種方式,間接設定透過希望的介面傳送連結/封包。

但是,這個方法套用到IPv6可能行不通。

(圖片來源:APNIC部落格)

如上圖所示,同一個Router的4個介面都使用一樣的IPv6連結本地位址。換句話說,要在插座API上使用IPv6連結本地位址,使用者一定要自己先設定好想要的介面。這跟以前的網路路由方式很不一樣:只知道IP位址已經不夠了。

*台灣網路資訊中心(TWNIC)與亞太網路資訊中心(APNIC)合作,定期精選APNIC Blog文章翻譯摘要,提供中心部落格讀者了解目前亞太地區網路發展之最新趨勢。原文標題為What’s the deal with IPv6 link-local addresses?

回到頂端