根據(jù) RFC 2462,所有 IPv6 節(jié)點都自動為每個接口配置一個鏈接本地地址。IPv6 主機還可以使用路由器發(fā)現(xiàn)(交換路由器請求和路由器公告消息)確定其他地址和配置設(shè)置。由路由器發(fā)送的路由器公告消息中包含托管地址配置 (M) 標(biāo)記和其他有狀態(tài)配置 (O) 標(biāo)記,這些標(biāo)記指示主機是否應(yīng)使用 DHCPv6 獲取其他地址或配置設(shè)置。
IPv6 自動配置的類型
除了鏈接本地地址,主機還可以使用無狀態(tài)自動配置根據(jù)收到的路由器公告消息配置地址和其他設(shè)置。這些消息可以包含一個或多個前綴信息選項,接收主機可以使用這些選項派生無狀態(tài)地址。
同樣,有狀態(tài)自動配置指通過使用 DHCPv6 獲取地址來配置地址和其他設(shè)置。當(dāng)主機收到的路由器公告消息的 M 標(biāo)記設(shè)置為 1 時,該主機使用有狀態(tài)自動配置。
最后,主機還可以同時使用無狀態(tài)和有狀態(tài)自動配置,也就是既使用路由器公告中包含的地址,也使用從 DHCPv6 服務(wù)器獲取的地址。
自動配置地址的狀態(tài)
如果自動配置地址處于暫定狀態(tài),則表示重復(fù)地址檢測 (DAD) 正驗證其性。有關(guān)如何執(zhí)行 DAD 的信息,請參閱側(cè)欄的“RFC 2462 IPv6 自動配置過程”。處于有效狀態(tài)的地址經(jīng)過驗證是的,并且可以用于發(fā)送和接收單播通信。有效狀態(tài)包括首選狀態(tài)和已否決狀態(tài)。如果處于首選狀態(tài),則地址可以用于進行無限制通信。如果處于已否決狀態(tài),則地址不能用于新通信,但是使用該地址的現(xiàn)有通信可以繼續(xù)進行。
RFC 2462 IPv6 自動配置過程
以下步驟描述了 RFC 2462 中定義的 IPv6 主機的自動配置過程:
● 通過擴展標(biāo)識符 (EUI)-64 接口標(biāo)識符 (ID) 派生一個暫定鏈接本地地址。
● 通過發(fā)送鄰居請求消息對該暫定鏈接本地地址執(zhí)行 DAD,鄰居請求消息中的目標(biāo)地址設(shè)置為該暫定鏈接本地地址。
● 如果收到響應(yīng)鄰居請求消息而發(fā)送的鄰居公告消息,則該暫定鏈接本地地址是重復(fù)地址。停止地址自動配置。此時,必須對主機執(zhí)行手動配置。
● 如果沒有收到為響應(yīng)鄰居請求消息而發(fā)送的鄰居公告消息,則該暫定鏈接本地地址是的。將此接口上的地址狀態(tài)更改為首選。
● 發(fā)送路由器請求消息。
● 如果沒有收到路由器公告消息,則使用 DHCPv6 獲取地址和其他配置參數(shù)。
● 如果收到了路由器公告消息,則為包含的前綴配置暫定地址,并對每個暫定地址執(zhí)行重復(fù)地址檢測。如果地址是的,則將此接口上的地址狀態(tài)更改為首選。
● 如果路由器公告消息中的 M 標(biāo)記設(shè)置為 1,則使用 DHCPv6 獲取其他有狀態(tài)地址。
● 如果路由器公告消息中的 M 標(biāo)記設(shè)置為 0 并且 O 標(biāo)記設(shè)置為 1,則使用 DHCPv6 獲取其他配置參數(shù)。
公告路由器或 DHCPv6 服務(wù)器指定地址前綴的有效生命周期和首選生命周期。超出地址的首選生命周期后,地址進入已否決狀態(tài)。自動配置地址的首選生命周期在收到路由器公告后會刷新,還可以通過更新 DHCPv6 地址配置刷新。圖 1 顯示了自動配置地址的狀態(tài)以及它們與首選生命周期和有效生命周期的關(guān)系。
圖 1 自動配置地址的狀態(tài)
除了自動配置鏈接本地地址之外,只能對 IPv6 主機指定地址自動配置。IPv6 路由器必須通過其他方式獲取地址和配置參數(shù),例如通過手動配置。
側(cè)欄中的“RFC 2462 IPv6 自動配置過程”描述了 RFC 2462 定義的詳細的主機 IPv6 地址自動配置過程。
Windows Vista 中的 IPv6 自動配置行為
運行 Windows Vista® 或 Windows Server® 2008(以前代號為“Longhorn”)的計算機默認情況下會為非臨時自動配置的 IPv6 地址(包括公用地址和鏈接本地地址)生成隨機接口 ID,而不是基于 EUI-64 的接口 ID。公用 IPv6 地址是全局地址,它在 DNS 中注冊,服務(wù)器應(yīng)用程序(例如 Web 服務(wù)器)通常將其用于傳入的連接。您可以通過以下命令禁用此默認行為:
netsh interface ipv6 set global randomizeidentifiers=disabled
禁用后,IPv6 使用基于 EUI-64 的接口 ID。
利用隨機派生的接口 ID,重復(fù)鏈接本地地址的機會很小。因此,運行 Windows Vista 或 Windows Server 2008 的計算機不用等待 DAD 完成即可使用其派生的鏈接本地地址發(fā)送路由器請求消息。這稱為樂觀 DAD;路由器發(fā)現(xiàn)和 DAD 同時執(zhí)行,從而節(jié)省了接口初始化過程的時間。
如果沒有收到路由器公告,運行 Windows Vista 或 Windows Server 2008 的計算機不會嘗試通過 DHCPv6 執(zhí)行有狀態(tài)地址自動配置。
IPv6 自動配置的類型
除了鏈接本地地址,主機還可以使用無狀態(tài)自動配置根據(jù)收到的路由器公告消息配置地址和其他設(shè)置。這些消息可以包含一個或多個前綴信息選項,接收主機可以使用這些選項派生無狀態(tài)地址。
同樣,有狀態(tài)自動配置指通過使用 DHCPv6 獲取地址來配置地址和其他設(shè)置。當(dāng)主機收到的路由器公告消息的 M 標(biāo)記設(shè)置為 1 時,該主機使用有狀態(tài)自動配置。
最后,主機還可以同時使用無狀態(tài)和有狀態(tài)自動配置,也就是既使用路由器公告中包含的地址,也使用從 DHCPv6 服務(wù)器獲取的地址。
自動配置地址的狀態(tài)
如果自動配置地址處于暫定狀態(tài),則表示重復(fù)地址檢測 (DAD) 正驗證其性。有關(guān)如何執(zhí)行 DAD 的信息,請參閱側(cè)欄的“RFC 2462 IPv6 自動配置過程”。處于有效狀態(tài)的地址經(jīng)過驗證是的,并且可以用于發(fā)送和接收單播通信。有效狀態(tài)包括首選狀態(tài)和已否決狀態(tài)。如果處于首選狀態(tài),則地址可以用于進行無限制通信。如果處于已否決狀態(tài),則地址不能用于新通信,但是使用該地址的現(xiàn)有通信可以繼續(xù)進行。
RFC 2462 IPv6 自動配置過程
以下步驟描述了 RFC 2462 中定義的 IPv6 主機的自動配置過程:
● 通過擴展標(biāo)識符 (EUI)-64 接口標(biāo)識符 (ID) 派生一個暫定鏈接本地地址。
● 通過發(fā)送鄰居請求消息對該暫定鏈接本地地址執(zhí)行 DAD,鄰居請求消息中的目標(biāo)地址設(shè)置為該暫定鏈接本地地址。
● 如果收到響應(yīng)鄰居請求消息而發(fā)送的鄰居公告消息,則該暫定鏈接本地地址是重復(fù)地址。停止地址自動配置。此時,必須對主機執(zhí)行手動配置。
● 如果沒有收到為響應(yīng)鄰居請求消息而發(fā)送的鄰居公告消息,則該暫定鏈接本地地址是的。將此接口上的地址狀態(tài)更改為首選。
● 發(fā)送路由器請求消息。
● 如果沒有收到路由器公告消息,則使用 DHCPv6 獲取地址和其他配置參數(shù)。
● 如果收到了路由器公告消息,則為包含的前綴配置暫定地址,并對每個暫定地址執(zhí)行重復(fù)地址檢測。如果地址是的,則將此接口上的地址狀態(tài)更改為首選。
● 如果路由器公告消息中的 M 標(biāo)記設(shè)置為 1,則使用 DHCPv6 獲取其他有狀態(tài)地址。
● 如果路由器公告消息中的 M 標(biāo)記設(shè)置為 0 并且 O 標(biāo)記設(shè)置為 1,則使用 DHCPv6 獲取其他配置參數(shù)。
公告路由器或 DHCPv6 服務(wù)器指定地址前綴的有效生命周期和首選生命周期。超出地址的首選生命周期后,地址進入已否決狀態(tài)。自動配置地址的首選生命周期在收到路由器公告后會刷新,還可以通過更新 DHCPv6 地址配置刷新。圖 1 顯示了自動配置地址的狀態(tài)以及它們與首選生命周期和有效生命周期的關(guān)系。
圖 1 自動配置地址的狀態(tài)
除了自動配置鏈接本地地址之外,只能對 IPv6 主機指定地址自動配置。IPv6 路由器必須通過其他方式獲取地址和配置參數(shù),例如通過手動配置。
側(cè)欄中的“RFC 2462 IPv6 自動配置過程”描述了 RFC 2462 定義的詳細的主機 IPv6 地址自動配置過程。
Windows Vista 中的 IPv6 自動配置行為
運行 Windows Vista® 或 Windows Server® 2008(以前代號為“Longhorn”)的計算機默認情況下會為非臨時自動配置的 IPv6 地址(包括公用地址和鏈接本地地址)生成隨機接口 ID,而不是基于 EUI-64 的接口 ID。公用 IPv6 地址是全局地址,它在 DNS 中注冊,服務(wù)器應(yīng)用程序(例如 Web 服務(wù)器)通常將其用于傳入的連接。您可以通過以下命令禁用此默認行為:
netsh interface ipv6 set global randomizeidentifiers=disabled
禁用后,IPv6 使用基于 EUI-64 的接口 ID。
利用隨機派生的接口 ID,重復(fù)鏈接本地地址的機會很小。因此,運行 Windows Vista 或 Windows Server 2008 的計算機不用等待 DAD 完成即可使用其派生的鏈接本地地址發(fā)送路由器請求消息。這稱為樂觀 DAD;路由器發(fā)現(xiàn)和 DAD 同時執(zhí)行,從而節(jié)省了接口初始化過程的時間。
如果沒有收到路由器公告,運行 Windows Vista 或 Windows Server 2008 的計算機不會嘗試通過 DHCPv6 執(zhí)行有狀態(tài)地址自動配置。