因特網通訊協定第 6 版 (IPv6) 是因特網網路層的標準通訊協定套件。 IPv6 旨在解決目前版本的因特網通訊協定套件(稱為 IPv4)關於位址耗盡、安全性、自動設定、擴充性等許多問題。 IPv6 擴充因特網的功能,以啟用新類型的應用程式,包括點對點和行動應用程式。 以下是目前 IPv4 通訊協定的主要問題:
地址空間的快速耗盡。
這導致使用將多個私人地址對應至單一公用IP位址的網路位址翻譯工具(NAT)。 此機制所建立的主要問題是處理額外負荷,而且缺乏端對端連線能力。
缺乏階層支援。
由於其固有預先定義的類別組織,IPv4 缺乏真正的階層式支援。 無法以真正對應網路拓撲的方式來建構IP位址。 這個關鍵的設計缺陷創造了需求,使大型路由表得以將 IPv4 封包傳送到互聯網上的任何位置。
複雜的網路設定。
使用 IPv4 時,地址必須以靜態方式指派,或使用 DHCP 之類的設定通訊協定。 在理想情況下,主機不需要依賴 DHCP 基礎結構的管理。 相反地,他們可以根據他們所在的網路區段來設定自己。
缺少內建的驗證和機密性。
IPv4 不需要支援任何提供交換數據驗證或加密的機制。 這會隨著 IPv6 而變更。 因特網通訊協定安全性 (IPSec) 是 IPv6 支援需求。
新的通訊協定套件必須滿足下列基本需求:
- 具低資源消耗的大型路由和地址配置。
- 各種連線情況的自動設定。
- 內建的驗證和機密性。
IPv6 尋址
使用 IPv6 時,地址長度為 128 位。 如此大型地址空間的其中一個原因是將可用的位址細分為反映因特網拓撲的路由網域階層。 另一個原因是將裝置連線到網路的網路適配器位址(或介面)對應。 IPv6 具有固有的功能,可解析其最低層級的位址,也就是網路介面層級,而且也有自動設定功能。
文字表示法
以下是用來將 IPv6 位址表示為文字字串的三種傳統形式:
冒號十六進位格式:
這是慣用的格式
n:n:n:n:n:n:n:n
。 每個n
都代表位址八個16位元素之一的十六進位值。 例如:3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562
。壓縮格式:
由於地址長度,通常會有包含長度為零之長字串的位址。 若要簡化這些位址的撰寫,請使用壓縮格式,其中單一連續的0個區塊序列是以雙冒號符號表示(
::
)。 此符號只能在位址中出現一次。 例如,壓縮格式的多播位址FFED:0:0:0:0:BA98:3210:4562
為FFED::BA98:3210:4562
。 壓縮格式的單播位址3FFE:FFFF:0:0:8:800:20C4:0
為3FFE:FFFF::8:800:20C4:0
。 壓縮格式的回送位址0:0:0:0:0:0:0:1
為::1
。 壓縮格式中未指定的位址0:0:0:0:0:0:0:0
為::
。混合形式:
此表單結合了IPv4和IPv6位址。 在此情況下,位址格式為
n:n:n:n:n:n:d.d.d.d
,其中每個 n 代表六個 IPv6 高階 16 位位址元素的十六進位值,而每個 d 代表 IPv4 位址的十進位值。
位址類型
位址中的前置位會定義特定的 IPv6 位址類型。 包含這些前置位元的可變長度字段稱為格式前綴(FP)。
IPv6 單播位址分成兩個部分。 第一個部分包含位址前置詞,而第二個部分則包含介面標識碼。 表達 IPv6 位址/前置詞組合的簡潔方式如下:ipv6-address/prefix-length。
以下是具有 64 位前置詞的位址範例。
3FFE:FFFF:0:CD30:0:0:0:0/64
。
此範例中的前置詞是 3FFE:FFFF:0:CD30
。 位址也可以以壓縮形式撰寫,做為 3FFE:FFFF:0:CD30::/64
。
IPv6 定義下列位址類型:
單播位址:
單一介面的標識碼。 傳送至此位址的封包會傳遞至已識別的介面。 單播位址會以高階八位的值來區分多播位址。 多播位址的高位元組具有FF的十六進位值。 除此八位的任何其他值都被用來識別單播位址。 以下是不同類型的單播位址:
連結本機位址:
這些位址會用於單一鏈接,並且具有下列格式:
FE80::*InterfaceID*
。 連結上的節點之間會使用連結-本機位址,以進行自動位址設定、鄰近探索,或沒有路由器時使用。 當系統尚未取得較大範圍的位址時,主要會在啟動時使用連結本機位址。站點本地位址:
這些位址會用於單一網站,且格式如下:
FEC0::*SubnetID*:*InterfaceID*
。 網站本地位址用於站點內的地址設定,不需要全域前置詞。- 全域 IPv6 單播位址:
這些位址可以透過因特網使用,並具有下列格式:
*GlobalRoutingPrefix*::*SubnetID*:*InterfaceID*
。多播位址:
一組介面的標識碼(通常屬於不同的節點)。 傳送至此位址的封包會傳遞至位址所識別的所有介面。 多播位址類型會取代IPv4廣播位址。
Anycast 位址:
一組介面的標識碼(通常屬於不同的節點)。 傳送至此位址的封包只會傳遞至位址所識別的一個介面。 這是路由計量所識別的最接近介面。 任何任播位址都是從單播位址空間取得,而且在語法上無法區分。 尋址介面根據其組態區分單播地址與任播地址。
一般而言,節點一律會有連結本機位址。 它可能有網站本地位址和一或多個全域地址。
IPv6 路由
彈性路由機制是IPv6的優點。 由於 IPv4 網路識別碼的配置方式,因此因特網骨幹上的路由器必須維護大型路由表。 這些路由器必須知道所有路由,以轉送可能導向至因特網上任何節點的封包。 IPv6 能夠匯總位址,可讓您彈性尋址,並大幅減少路由表的大小。 在這個新的尋址架構中,中繼路由器必須只追蹤其網路的本機部分,以適當地轉送訊息。
鄰居發現
鄰近探索所提供的一些功能如下:
- 路由器探索: 這可讓主機識別本機路由器。
- 位址解析: 這可讓節點解析對應下一個躍點位址的連結層位址(取代位址解析通訊協定 [ARP])。
- 地址自動設定: 這使設備能自動設定站點本地和全域位址。
芳鄰探索會針對IPv6 (ICMPv6) 訊息使用因特網控制訊息通訊協定,包括:
- 路由器公告: 路由器會在類周期性地傳送或回應路由器請求時傳送。 IPv6 路由器會使用路由器公告來公告其可用性、地址前綴和其他參數。
- 路由器請求: 由主機傳送,要求連結上的路由器立即傳送路由器公告。
- 芳鄰請求: 由節點傳送位址解析、重複位址偵測,或確認鄰居仍可連線。
- 芳鄰廣告: 由節點傳送以回應芳鄰請求,或通知鄰居連結層地址的變更。
- 重定向: 由路由器傳送,以顯示針對發送節點的特定目的地的較佳下一個躍點位址。
IPv6 自動設定
IPv6 的其中一個重要目標是支持節點隨插即用。 也就是說,應該可以將節點插入IPv6網路,並自動設定它,而不需要人為介入。
自動設定類型
IPv6 支援下列型態的自動設定:
有狀態自動配置:
這種類型的設定需要某種程度的人為介入,因為它需要IPv6的動態主機設定通訊協定 (DHCPv6) 伺服器,才能安裝和管理節點。 DHCPv6 伺服器會保留其提供組態信息的節點清單。 它也會維護狀態資訊,讓伺服器知道每個位址在使用的時間長度,以及何時可能可供重新指派。
無狀態自動設定:
這種類型的設定適用於小型組織和個人。 在此情況下,每個主機都會從接收的路由器公告內容判斷其位址。 使用 IEEE EUI-64 標準來定義位址的網路識別碼部分,合理假設連結上主機位址的唯一性。
不論地址的判斷方式為何,節點都必須確認其潛在位址對本機連結是唯一的。 這可藉由將芳鄰請求訊息傳送至潛在位址來完成。 如果節點收到任何回應,它會知道位址已在使用中,而且必須判斷另一個位址。
IPv6 行動性
行動裝置的激增帶來了新的需求:裝置必須能夠任意變更 IPv6 因特網上的位置,並且仍然維持現有的連線。 為了提供這項功能,行動節點會獲派一個歸屬位址,一律可以連線到該位址。 當行動節點在家中時,它會連線到家庭連結,並使用其家庭位址。 當行動節點遠離家時,通常是路由器的主代理程式會在行動節點與其通訊的節點之間轉送訊息。
停用或啟用 IPv6
若要使用 IPv6 通訊協定,請確定您執行的是支援 IPv6 的作系統版本,並確定作系統和網路類別已正確設定。
設定步驟
下表列出各種組態
OS已啟用了IPv6嗎? | 已啟用程式代碼 IPv6? | 說明 |
---|---|---|
❌ 否 | ❌ 否 | 可以剖析 IPv6 位址。 |
❌ 否 | ✔️ 是的 | 可以剖析 IPv6 位址。 |
✔️ 是的 | ❌ 否 | 可以使用名稱解析方法剖析 IPv6 位址,並使用未標示為過時的名稱解析方法來解析 IPv6 位址。 |
✔️ 是的 | ✔️ 是的 | 可以使用所有方法剖析和解析 IPv6 位址,包括那些標示為過時的方法。 |
默認會啟用 IPv6。 若要在環境變數中設定此參數,請使用 DOTNET_SYSTEM_NET_DISABLEIPV6
環境變數。 如需詳細資訊,請參閱 .NET 環境變數:DOTNET_SYSTEM_NET_DISABLEIPV6。
另請參閱
- .NET 中的網路功能
- .NET 中的 套接字
- System.AppContext