1、1 印月962月 本標準非經本局同意得翻印 中華民國國家標準 CNS 總號 號 ICS 35.100.30 X126715069經濟部標準檢驗局印 公布日期 修訂公布日期 962月27日 月日 (共20頁)IPv6 不具狀態的位址自動組態設定 IPv6 stateless address autoconfiguration 1. 適用範圍 本標準適用於網際網路社群 (internet community)的網際網路標準進程協定,以及懇求討論和建議以供改進。針對標準化狀態和本協定的狀況,請參照 “網際網路正式協定標準 (internet official protocol standards,
2、STD 1)“的目前版本。 本標準規定在網際網路協定第 6 版 (internet protocol version 6, IPv6)中,主機 (host)決定如何自動設定其介面之組態所採取的步驟。自動組態設定 (autoconfiguration)之過程包括建立一個鏈路本地位址 (link-local address)以及在鏈路上驗證其唯一性,決定何種資訊宜被自動設定組態 (位址、其他資訊、或兩者 ),於位址 之情況下,這些位址是否宜透過不具狀態機制 (stateless mechanism) 、具狀態的機制 (stateful mechanism)、或兩者來獲得。本標準定義產生 一個鏈路本
3、地位址之過程、以及經由不具狀態的位址之自動組態設定來產生場域本地位址 (site-local address)和全域位址(global address)之過程,以及重複位址偵測 (duplicate address detection)的程序。使用具狀態的協定之自動組態設定,其細節將於他處規定。 IPv6 協定定義具狀態位址自動組態設定 (stateful address autoconfiguration)和不具狀態的位址自動組態設定 (stateless address autoconfiguration)兩種機制。不具狀態的自動組態設定需要非手動之主機組態設定、最小限度 (如果存在 )之
4、路由器組態設定(router)、和沒有額外的伺服器 (server)。不具狀態的機制允許主機使用由本地可用的資訊與路由器所告示 (advertise)的資訊之組合來產生它自己的位址。路由器告示前綴(prefix)識別與一個鏈路結合的子網路 (subnet),當主機產生在子網路上唯一地識別一個介面的 “介面識別符 (interface identifier)“時。該位址係由這兩者所 組合而形成。當路由器不存在時,主機只能產生鏈路本地位址。然而,針對允許在附接於相同鏈路上的節點 (node)間之通訊來說,該鏈路本地位址是足夠的。 於具狀態自動組態設定之模型中,主機從一伺服器獲得介面位址及 /或組態
5、的資訊與參數。伺服器要維護的資料庫為記錄哪些位址已經被指定給哪些主機。具狀態的自動組態設定協定允許主機從一個伺服器獲得位址、其他組態設定資訊、或兩者。不具狀態與具狀態自動組態設定兩者彼此互補。例如,主機能夠使用不具狀態的自動組態來設定它自己的位址組態,但是使用具狀態自動組態設定以獲得其他資訊。用於 IPv6 之具狀態自動組態設定是未來工作的主題 DHCPv6。 當一個場域並不特別地涉及主機使用之精確的位址時,可使用不具狀態的方式,只要它們是唯一的而且是正確地可選路的。當一個場域需要透過精確的位址指定俾以更嚴緊的控制時,可使用具狀態的方式。具狀態的和不具狀態的位址自動組態設定2 CNS 1506
6、9, X 1267 兩者可以同時被使用。於路由器告示訊息 (router advertisement message)中,DISCOVERY場域管理者將透過設定適當的欄位來規定要使用何種 型式的自動組態設定。 IPv6 位址於一段固定的 (有可能是無窮的 )長度之時間為一個介面所專用。每一個位址都有一結合的生命期 (lifetime),以指示該位址被繫結至一介面的時間有多久。當生命期逾期時,繫結 (binding) (與位址 )將變成無效的,而且該位址可以被重新指定給網際網路中在其他地方的另一個介面。為了能順利地處理位址繫結的逾期,當指定一個位址給一個介面時,該位址經歷了兩個截然不同的階段。最
7、初,一個位址是 “優選的 (preferred)“,此意謂它在任意通訊的用途是不受限制的。後來,一個位址預期其目前介面之繫結將變成無效而變成 “不宜用的 (deprecated)“。當處於不宜用的狀態時,一個位址的使用將受到阻礙,但是並不嚴格地予以禁止。當可能時,新的通訊 (例如:新的 TCP 連接之開啟 )宜使用優選的位址。不宜用的位址宜僅由業已正在使用該位址之應用且 在不造成服務中斷 (service disruption)切換至另一位址有困難的情況下一直使用。 為了確保所有已設定組態的位址在一個給定的鏈路上可能是唯一的,節點在指定它們給一個介面之前,將先進行在位址方面的 “重複位址偵測
8、“演算法 (algorithm)。此種重複位址偵測演算法被履行於所有的位址,與它們究竟是透過不具狀態的抑或具狀態的自動組態設定而獲得該位址毫無關係。本標準將定義這種重複位址偵測演算法。 在本標準中所規定的自動組態設定之過程僅適用於主機而不適用於路由器。因為主機之自動組態設定使用由路由器所告示之資訊,而路由器則需要利用某些其他的方法來設定組態。然而,路由器被預期將使用於本標準所描述的機制來產生鏈路本地位址。此外,於指定位址給一個介面之前,路由器被預期所有的這些位址均能先成功地通過於本標準中所描述的重複位址偵測程序。 2. 用語釋義 (1) IP:網際網路協定第 6 版。 IPv4 和 IPv6
9、這兩個用語僅於需避免混淆的上下文裡才使用。 (2) 節點 (node):實作 IP 協定的一種裝置。 (3) 路由器 (router):轉送明確地非定址於其本身的 IP 封包 (packet)之節點。 (4) 主機 (host):不是路由器的任何節點。 (5) 上一層 (upper layer):直接位於 IP 上面之協定層。一些範例為:諸如 TCP 和 UDP的傳送協定,諸如 ICMP 協定的控制協定,諸如 OSPF 的選路協定,以及諸如IPX、 AppleTalk、或 IP 本身等將 “穿隧 “於 (亦即,囊封於 )IP 之上的網際網路或較低層協定。 (6) 鏈路 (link):一種通訊設
10、施 (facility)或媒介,於其上之節點能在鏈路層 (亦即,直接在 IP 協定下面的層 )通訊。一些範例為:乙太網路 (簡單型或橋接型 )、點對點協定 (point-to-point protocol, PPP)鏈路、 X.25、訊框中繼 (frame relay)、或 ATM等網路,以及網際網路 (或更高 )層 “隧道 (tunnel)“,諸如於 IPv4 或 IPv6 本身上的隧道。 3 CNS 15069, X 1267 (7) 介面 (interface):附接至一鏈路的節點之附屬裝置。 (8) 封包 (packet): IP 標頭 (header)加上酬載 (payload)。
11、(9) 位址 (address):用於一個介面或一組介面的一個 IP 層識別符 (identifier)。 (10) 單播位址 (unicast address):用於一個單一介面的一種識別符。被發送給單播位址的封包係被遞送至由該位址所識別的介面。 (11) 多播位址 (multicast address):用於一組介面 (典型上屬於不同的節點 )的一種識別符。被發送給多播位址的封包係被遞送至由該位址所識別的所有介面。 (12) 任播位址 (anycast address):用於一組介面的一個識別符 (典型上屬於不同的節點 ),被發送到一個任播位址的封包將被遞送到該位址所識別的這些介面之一(根
12、據選路協定的距離測量而給最近的那一個 )。參照 ADDR-ARCH。 (13) 懇求節點的多播位址 (solicited-node multicast address):一種多播位址,鄰節點懇求訊息 (neighbor solicitation message)被遞送到該位址。用於計算此種位址的演算法在 DISCOVERY中給定。 (14) 鏈路層位址 (link-layer address):用於一個介面的一種鏈路層識別符,其範例包括用於乙太網路鏈路之 IEEE 802 位址和用於整體服務數位網路 (ISDN)鏈路之E.164 位址。 (15) 鏈路本地位址 (link-local addr
13、ess):具有鏈路唯一範圍的一種位址,它能夠被用來抵達附接於相同鏈路的鄰近節點。所有的介面皆有一個鏈路本地單播位址。 (16) 場域本地位址 (site-local address):具有其範圍被局限於 本地場域的一種位址。 (17) 全域位址 (global address):具有無限制範圍的一種位址。 (18) 通訊 (communication):於各個節點之間的任何封包之交換。於封包交換之持續期間,必需將用於交換的每一個節點之位址保持不變。其範例是 TCP 連接或UDP 請求 /回應。 (19) 暫行位址 (tentative address):在將一個位址指定給一個介面之前,先行驗證
14、其於鏈路上的唯一性之一種位址。通常暫行位址並不被認 為已指定給某一介面。介面會丟棄所收到而定址於一個暫行位址的封包,但是對於暫行位址則會接受與重複位址偵測相關聯的鄰節點探索 (neighbor discovery)封包。 (20) 優選的位址 (preferred address):被指定給一個介面的一種位址,其由上一層協定的使用是不受限制的。優選的位址可以被用作發送自 (或發送至 )該介面之封包的來源 (或者目的地 )位址。 (21) 不宜用的位址 (deprecated address):被指定給一個介面的一種位址,其使用會受到阻礙的,但是並不予以禁止。在新的通訊中,一個不宜用的位址不宜再
15、被當作一個來源位址使用,但是,發送自或發送至不宜用的位址之封包將如同所預期般被遞送。對於特定的上一層活動 (例如,現行的 TCP 連接 ),在通訊時切換至一個優選的位址將產生艱難,所以一個不宜用的位址可以繼續被當作一個來源位址使用。 (22) 有效的位址 (valid address):優選的或不宜用的位址。有效的位址可以出現為一個封包的來源或目的地位址,而且,預期網際網路選路系統會把要發送給有4 CNS 15069, X 1267 效位址的封包遞送到它們所期望的接收者 (recipient)。 (23) 無效的位址 (invalid address):不指定給任何介面的一種位址。當一個有效位
16、址的有效生命期逾期時,它將變成無效的位址。無效的位址不宜出現為一個封包的目的地 或來源位址。在前一種情況中,網際網路選路系統將不能遞送此封包,在後一種情況中,封包的接收者將不能對它作出回應。 (24) 優選的生命期 (preferred lifetime):一個有效的位址被優選的時間之長度 (亦即,直到不宜用的時候 )。當優選的生命期逾期時,其位址將變成不宜用的。 (25) 有效的生命期 (valid lifetime):位址保持於有效狀態的時間之長度 (亦即,直到無效的時候 )。因此,有效的生命期必須大於或等於優選的生命期。當有效的生命期逾期時,其位址將變成無效的。 (26) 介面識別符 (
17、interface identifier):用於介面的一種鏈路相依之識別符,其每一鏈路至少是唯一的 ADDR-ARCH。不具狀態的位址自動組態設定係組合一介面識別符與一前綴以形成一個位址。從位址自動組態設定之觀點,介面識別符是一種已知長度的位元串 (bit string)。介面識別符的精確長度及其被建立之方法定義於分離的鏈路型式特定的文件中,包括與 IP 傳輸於一種特定的鏈路型式上相關聯的議題 (例如, IPv6-ETHER)。在許多情況中,該識別符與介面的鏈路層位址將是相同的。 2.1 需求 當下列這些關鍵字 (keyword)在本標準中出現時,包括:必須 (MUST)、不 得 (MUST
18、NOT)、必需的 (REQUIRED)、應 (SHALL)、不應 (SHALL NOT)、宜 (SHOULD)、不宜 (SHOULD NOT),建議的 (RECOMMENDED)、可以 (MAY)、及選項的(OPTIONAL),它們宜要如同在 KEYWORDS中所描述般予以解譯。 3. 設計目標 不具狀態的自動組態設定係依照下列的目標來設計: (1) 在連接機器到網路之前,由於不宜需 要個別機器的手動組態設定,所以對於每一個它的介面需要某種機制以允許主 機取得或建立唯一的位址。位址自動組態設定假設每一個介面都能夠為該介面提供唯一的識別符 (亦即, “介面識別符 “)。在最簡單的情況中,介面識別
19、符係由 介面的鏈路層位址所組成。介面識別符能夠與前綴組合以形成一個位址。 (2) 由一組附接於單一鏈路的機器所組成的小場域 (small site)不宜需要存在一個具狀態的伺服器或者路由器以作為通訊的先決條件。隨插即用 (plug-and-play)的通訊係透過鏈路本地位址的使用來達成 。鏈路本地位址有一個習知的前綴,以識別一組節點所附接的 (單一 )分享式鏈路。主機藉由附加它的介面識別符到鏈路本地之前綴而形成一個鏈路本地位址。 (3) 含有多重網路和 路由器的大場域 (large site)宜不需要存在具狀態的位址組態之伺服器。為了產生場域本地位址或全 域位址,主機必須決定前綴,以識別它們所
20、附接的子網路。路由器產生週期性 路由器告示,包括表列在鏈路上有作用之前綴集合的選項。 5 CNS 15069, X 1267 (4) 位址組態宜方便一個場域的機器能優 雅的重新編號。例如,當一個場域切換至新的網路服務供應商 (network service provider)時,該場域可能想要對所有它的節點重新編號。重新編號係透過將位 址租給介面以及將多重位址指定給相同的介面來達成。租用生命期提供一種機制,透過此機制場域將逐步淘汰 (phase out)舊的前綴。在新的位址與正被逐步淘 汰的位址兩者同時工作期間,將多重位址指定給一個介面以提供過渡時期 (transition period)。
21、(5) 系統管理者必需有規定宜使用不具狀 態的自動組態設定、具狀態的自動組態設定、或兩者之能力。路由器告示包括規定主機宜使用哪些機制的旗標 (flag)。 4. 協定概觀 當介面自動設定其本身之組態時,本節提供要採取的典型步驟之概觀。自動組態設定僅在具多播能力的鏈路上被履行,且當一個具多播能力的介面被致能時開始,例如,在系統起動 (startup)期間。節點 (主機和路由器 )藉由產生用於介面的鏈路本地位址以開始自動組態設定之過程,而鏈路本地位址則藉由附加介面識別符到習知的鏈路本地之前綴來形成。 然而,在鏈路本地位址能被指定給一個介面並且被使用以前,一個節點必須試圖驗證該 “暫行 “位址並非已
22、經處於由鏈 路上的另一個節點使用中。尤其是,它發送鄰節點懇求訊息中含有暫行位址以作為標的 (target)。如果另一個節點已經正在使用該位址,則它將回送鄰節點告示來說明這種情形。如果另一個節點也正在試圖使用相同的位址,則它也將發送鄰節點懇求給該目標。鄰節點懇求被 (再 )傳輸之精確次數,以及介於兩次連續懇求間的延遲時間 (delay time)為鏈路特定的且可以由系統管理予以設定。 如果節點決定它的暫行鏈路本地位址並非唯一的,則自動組態設定即會停止,而且需要介面的手動組態設定。為了能簡化在這種情況下之復原,針對管理者而言,供給替代的介面識別符來置換預設的識別符應是可能的,其方法是使用新的 (大
23、概是唯一的 )介面識別符,使得自動組態設定機制因而能夠適用。另一種替代方法是,鏈路本地位址和其他的位址將需要以手動方式來設定組態。 一旦節點確定了它的暫行鏈路本地位址是唯一的,則它將指定該位址給此介面。節點在此點上與鄰近節點有 IP 層次的連接性 (connectivity)。剩餘的自動組態設定步驟僅由主機來履行;路由器的 (自動 )組態設定並不屬本標準之範圍。 自動組態設定的下一個階段涉及獲得路由器告示或者決定沒有路由器存在。如果有路由器存在,則它們將發送路由器告示以規定主機宜做什麼種類的自動組態設定。如果沒有路由器存在,則具狀態的自動組態設定宜予調用。 路由器週期地發送路由器告示,但是,於
24、連續的兩次告示之間的延遲通常比履行自動組態設定之主機將要等待的時間更長 DISCOVERY。為了能迅速地獲得告示,主機發送一個或多個路由器懇求給所有路由器的多播群組。路由器告示包含兩面旗標以指示何種型式之具狀態的自動組態設定 (如果存在 )宜被履行。 “受管理的位址組態“旗標指示主機是否宜使用具狀態的自動組態設定來獲得位址。 “其他具狀態的組態 “旗標指示主機是否宜使用具狀態的自動組態設定來獲得附加的資訊 (位址除外 )。 6 CNS 15069, X 1267 路由器告示也包含零或多個前綴資訊之選項,含有由不具狀態的位址自動組態設定所使用的資訊以產生場域本地位址和全域位址。宜注意的是於路由器
25、告示中不具狀態的與具狀態的位址自動組態設定兩種欄位的處理係互不相依,而且主機可以同時使用具狀態的和不具狀態的位址自動組態設定兩者。一個前綴資訊之選項欄位,即 “自主的位址組態旗標 (autonomous address-configuration flag)“,指示選項是否恰好適用於不具狀態的自動組態設定。如果它適用,則附加的選項欄位包含一個與生命期之值一起的子網路前綴,該值指示來自前綴所建立的位址保留給優選的和有效的位址有多長。 因為路由器週期地產生路由器告示,所以主機將連續地接收新的告示。主機將如同在上面所描述般處理包含於每一個告示中的資訊,並增加和更新在先前的告示中所收到的資訊。 為了安
26、全起 見,所有的位址在它們指定給一個介面之前都必須先行測試唯一性。然而,在透過不具狀態的自動組態設定所建立的位址之情況下,一個位址的唯一性主要是由從介面識別符所形成的位址部分來決定。因此,如果節點業已驗證了鏈路本地位址的唯一性,則從相同的介面識別符所建立的附加位址不需要個別地予以測試。相對地,手動方式或者經由具狀態的位址自動組態設定所獲得的所有位址宜個別地測試其唯一性。為 了使場域方便相信履行重複位址偵測的額外負擔 (overhead)超過它的益處,重複位址偵測的使用能夠透過每一介面的組態旗標之管理的設定使其去能。 為了加速自動組態設定之過程,主機可以產生它的鏈路本地位址 (和驗證它的唯一性
27、)與等待路由器之告示並行處理。因為路由器對路由器之懇求可能會延遲幾秒鐘才作出回應,所以這兩個步驟如果採依序地處理,則完成自動組態設定所需的總時間可能會嚴重地加長。 4.1 場域重新編號 藉由提供一個機制給逾時的位址, 而此位址係指定給在主機中的介面,則位址的租用使場域方便重新編號。現在 ,當一個連接是開啟時,上一層的協定諸如TCP 提供不支援改變端點 (end-point)的位址。如果一個端 點位址變成無效,則現行的連接打斷了,而且對無效位址的所有通訊亦告失效。甚 至當應用層(application)使用 UDP 作為傳輸協定 (transport protocol)時,這些位址在封包交換期間
28、通常必須保持相同。 將有效位址分開成優選的和不宜用 的兩類,以提供指示至上一層的方法,一個有效的位址不久之後可能變成無效 ,而且使用這些位址的未來通訊也將失效,在通訊結束以前,位址的有效生命 期將會先行逾期。為了避免這種情境,更高的層宜使用一個優 選的位址 (假設存在一個足夠的範圍 )來增加這種可能性:一個位址於通訊的持續期間將保持有 效的。當重新編號發生時,為了使失效的通訊之衝擊減到最少,系統管理者應 設定適當的前綴生命期。於不宜用的時期宜有足夠地長,當位 址變成無效的時候,大部分 (如果並非全部 )通訊是使用新的位址。 IP 層被預期為其上層 (包括應用層 )提供方法以選擇最適當的來源位址
29、來給特殊的目的地和可能地其他約束。在開 始一個新的通訊以前,應用層可以決定要選7 CNS 15069, X 1267 擇來源位址本身,或者可以棄置該 位址而不予規定,在此情況中,於上面的網路層將使用由 IP 層所提供的機制在應用層的利益上來選擇一個合適的位址。 詳細的位址選擇規則並不屬本標準之範圍。 5. 協定規格 於具多播能力的介面上,自動組態設定係以每一個介面為基礎來履行。對於多重本家主機 (multihomed host),在每一個介面上獨立地履行自動組態設定。自 動組態設定主要適用於主機,但有兩個例外。路由器被預期使用下面所概述的程序來產生鏈路本地位址。此外,路由器於指定某些位址給一個
30、介面以前,在所有的位址上先行履行重複位址偵測。 5.1 節點組態變數 一個節點必須允許由系統管理以下 面的自動組態設定相關聯之變數為每一個多播介面設定組態: DupAddrDetectTransmits:當在一個暫行位址上履行重複位址偵測時所發送的連續鄰節點懇求訊息之次數。一個 0 的值指示在暫行位址上沒有履行重複位址偵測。一個 1 的值指示後面沒有跟隨再傳輸的單一傳輸。 預設: 1,但是也許會被一個鏈路型式特定的值所置換,該值是在包括 IP 在一種特殊鏈路型式上傳輸所關聯的議題之文件中 (例如, IPv6-ETHER)。 自動組態設定亦假設變數 RetransTimer 的存在,如同在 DI
31、SCOVERY中所定義。為了自動組態設 定之目的, RetransTimer 規定在重複位址偵測期間所履行的連續鄰節點懇求傳輸之間的延遲 (如果 DupAddrDetectTransmits 大於 1),以及節點在發送最後的鄰節點懇求以後 ,且於結束重複位址偵測過程以前,該節點要等待的時間。 5.2 自動組態設定相關聯之變數 主機保持與自動組態設定相關的一 些資料結構和旗標。我們將在下面介紹概念性變數 (conceptual variable)和顯示如何使用它 們來履行自動組態設定。這些特定的變數僅用作展示之目的,實作 上並沒要求需有它們,只要它的外部行為與在本標準中所描述一致 (consis
32、tent)即可。 除了鏈路本地位址 的形成和使用重複位址偵測以外,路由器如何 (自動 )設定它們的介面組態並不屬本標準之範圍。 主機保持下述以每一個介面為基礎之變數: (1) ManagedFlag:從最近所收到的路由器告示訊息之 M 旗標欄位 (亦即, “受管理的位址組態 “旗標 )複製而來。該旗標指示位址是否要使用具狀態的自動組態設定之機制來設定組態。它於 FALSE 狀態著手進行。 (2) OtherConfigFlag:從最近所收到的路由器告示訊息之 O 旗標欄位 (亦即, “其他具狀態的組態 “旗標 )複製而來。該旗標指示除了位址以外的資訊是否要使用具狀態的自動組態設定之機制來獲得。
33、它於 FALSE 狀態著手進行。 此外,當 ManagedFlag 的值為 TRUE 時, OtherConfigFlag 的值也是內隱地TRUE。對於主機使用具狀態的位址之自動組態設定只是請求位址而已,也沒有8 CNS 15069, X 1267 接受其他的組態資訊,這不是有效的組態。 主機也保持一個與它們相對應的生 命期一起的位址表列。位址表列包含自動設定組態之位址與以手動方式設定組態的那些位址兩者。 5.3 鏈路本地位址之建立 只要介面變成致能時,節點即形成 鏈路本地位址。在下列任何的事件以後,一個介面可能變成致能: (1) 該介面於系統起動時間被初始化。 (2) 於暫時性介面失效以後或
34、者正由系統管理暫時地去能以後,該介面被重新初始化。 (3) 該介面第一次附接至鏈路。 (4) 在管理上已被去能以後,該介面由系統管理使其變成致能。 鏈路本地位址係藉由事先加錄公認適當長度 ) 的鏈路本地前綴 FE80:0 ADDR-ARCH至介面識別符而形成。如果介面識別符具有 N 位元的長度,則以該介面識別符取代鏈路本地前綴之最右邊的 N 個零位元。如果介面識別符的長度多於 118 位元,則自動組態設定將失效,並且需採手動組態設定。注意:典型上,介面識 別符將是 64 位元長,而且以 EUI-64 識別符為基礎,如同於ADDR-ARCH中所描述。 鏈路本地位址具有一個無限之優選的和有效的生命
35、期;它從未曾逾時。 5.4 重複位址之偵測 於指定單播位址給一個其 DupAddrDetectTransmits 變數大於零之介面以前,先行在這些位址上履行重複位址偵測 。不論單播位址是透過具狀態的、不具狀態的、或者手動組態設定來獲得,重 複位址偵測必須在所有的這些單播位址上發生,但是具有下列情況的例外: (1) 重複位址之偵測不得於任播位址上履行。 (2) 每一個個別的單播位址宜測試其唯一性。然而,當使用不具狀態的位址自動組態設定時,位址之唯一性僅由介面識別符唯一地決定,假設子網路前綴正確地被指定 (亦即,如果一 個介面的所有位址均從相同的識別符產生,則不是所有的位址皆重複,就是 它們全都沒
36、有重複 )。因此,針對從相同的介面識別符所形成的一組位址,檢查從該識別符所產生的鏈路本地位址在鏈路上是唯一的,這是足夠的。在這種情況下,鏈路本地位址必須測試其唯一性,但是,如果沒偵測到任何的重複位址,則實作上對從相同的介面識別符所衍生的附加位址可以選擇跳過重複位址偵測。 用於偵測重複位址之程序係使用鄰節點懇 求和告示等訊息,如同在下面所描述。如果一個重複位址在程序期間 被探索到,則不能將該位址指定給介面。如果該位址是從介面識別符所衍生, 則需要指定新的識別符給此一介面,否則用於該介面的所有 IP 位址將需要以手動方式來設定其組態。注意:用來偵測重複的方法不完全是可靠的,而且重複位址有可能仍然存
37、在 (例如,當履行重複位址之偵測時,如果鏈路被分割了 )。 9 CNS 15069, X 1267 適用於重複位址偵測程序上的一個 位址稱為是暫行的,直到程序成功地完成為止。一個暫行位址在傳統意義上並不被認為是 “已指定給一個介面 “。亦即,該介面在標的位址 (target address)欄位裡必須接受 含有暫行位址的鄰節點懇求和告示等訊息,但是處理這樣的封包 不同於其標的位址與指定給該介面之位址相匹配的那些封包。被定址為暫行位址的其他封包宜默默地予以丟棄。 下述亦宜注意:為了防範多重節點 同時使用相同的位址,於指定一個位址給一個介面之前,必須先行履行重複位 址偵測。如果一個節點與重複位址偵
38、測並行地開始使用一個位址,而另一個節 點卻已經在使用該位址,則履行重複位址偵測的節點將錯誤地處理於另一個節點所預期的訊務 (traffic),導致像重置開放的TCP 連接一樣的可能負面之結果。 下列的章節描述節點履行驗證位址 之唯一性的一些特定測試。在節點已經發送DupAddrDetectTransmits 次鄰節點懇求以後,如果在 RetransTimer 毫秒之內仍沒有任何測試指示有重複位址存在 ,則認為這個位址是唯一的。一旦位址被決定是唯一的,則它便可以被指定給一個介面。 5.4.1 訊息確認 不能通過在 DISCOVERY中所規定的有效性核對之鄰節點 懇求或告示的訊息,節點必須默默地丟
39、棄任何的 這種訊息。通過這些有效性核對之懇求稱為有效的懇求或有效的告示。 5.4.2 發送鄰節點懇求訊息 介面在發送鄰節點懇求以前,它 必須參加這些暫行位址的所有節點之多播位址和懇求節點之多播位址。前 者確保該節點已經使用該位址從其他的節點接收鄰節點告示;而後者確保 試圖同時使用相同位址的兩個節點偵測彼此的存在。 為了查核位址,節點將發送 DupAddrDetectTransmits 次鄰節點懇求,每一次被隔開 RetransTimer 毫秒。將懇求的標的位址設定成要被查核的位址,將 IP 之來源設定成未規定的位址,並且將 IP 之目的地設定成標的位址的懇求節點之多播位址。 於介面 (再 )初
40、始化之後,如果鄰節點懇求是第一 個要從該介面發送的訊息,則此節點宜延遲介於 0 與 MAX_RTR_SOLICITATION_DELAY 間之隨機延遲 (random delay)來發送該訊息,如同於 DISCOVERY中所規定。當許多節點在鏈路上同時起動時,如此可用於減輕壅塞 (congestion),例如在電力失效以後,而且當多於一個節點在 相同時間對相同的位址正試圖懇求時,可以協助避免發生競賽情況 (race condition)。為了改進重複位址之偵測演算法的強健性 (robustness),當延遲初始 的鄰節點懇求之傳輸時,一個介面必須接收和處理要發送給暫行位址之 所有節點的多播位址
41、或者懇求節點的多播位址的資料包 (datagram)。 5.4.3 接收鄰節點懇求訊息 當在一個介面上收到有效的鄰節 點懇求之訊息時,節點之行為係取決於標10 CNS 15069, X 1267 的位址是否為暫行的 。如果標的位址不是暫行的 (亦即,它被指定給接收介面 ),該懇求將如同在 DISCOVERY中所描述般來處理。如果標的位址是暫行的,而且 來源位址是單播位址,則懇求的發送者 (sender)是在標的上履行位址解析 (address resolution);該懇求宜默默地予以忽略。否則,處理將如同下述般地發生。在所有的情況 下,針對暫行位址,節點不得對鄰節點懇求作出回應。 如果鄰節點
42、懇求的來源位址是未 規定的位址,則懇求是來自履行重複位址之偵測的節點。如果懇求是來自 另一個節點,則暫行位址是重複的且不宜被使用 (在任一個節點 )。如果懇求是來自節點本身 (由於該節點回送 (loop back)多播封包 ),則懇求不指示重複位址之存在。 實作者應注意:許多介面提供一 種方法給上層俾能選擇地致能和去能多播封包的回送。此種可以防範因重 複位址之偵測而不能正確地工作的設施之實作細節。其進一步的討論參照附錄。 下列的測試識別一個暫行位址不是唯一的一些條件: (1) 如果於發送一個鄰節點懇求之前先收到用於暫行位址的鄰節點懇求,則該暫行位址是重複的。當兩個節點同時進行重複位址之偵測時,
43、這種情況即發生了,只是傳輸初始的懇求之時間不同而已 (例如,在傳輸初始的懇求以前,藉由選擇不同的隨機延遲之值 )。 (2) 如果所收到的鄰節點懇求之實際數目超過基於回送之語義所預期的數目 (例如,該介面雖不回送封 包,但還是收到了一個或多個懇求 ),則暫行位址是重複的。當兩個節點同時地進行重複位址之偵測,並在大略相同的時間傳輸懇求時,這個情況便發生了。 5.4.4 接收鄰節點告示訊息 當在一個介面上收到有效的鄰節 點告示之訊息時,節點之行為係取決於標的位址是否為暫行的,或者與指定給該介面的單播位址 或任播位址相匹配。如果標的位址被指定給接收介面,則該懇 求將如同在 DISCOVERY中所描述般
44、來處理。如果標的位址是暫行的,則該暫行位址不是唯一的。 5.4.5 當重複位址之偵測失效時 如上面所述,一個被決定了是重 複的暫行之位址不得被指定給介面,且該節點宜記錄系統管理錯誤。如果 該位址是從介面識別符所形成的一個鏈路本地位址,則該介面宜被去能。 5.5 全域的和場域本地的位址之建立 全域的和場域本地的位址係由介面 識別符附加到適當長度的前綴而形成。前綴是從在路由器告示中所包含的前綴 資訊之選項獲得。全域的和場域本地的位址之建立以及在本節所描述的其他參 數之組態宜是本地可設定的組態。然而,如下所描述之處理必須藉由預設使之致能。 5.5.1 懇求路由器告示 路由器告示係週期地發送給所有節點
45、的多播位址。為了 能迅速地獲得告11 CNS 15069, X 1267 示,主機發送出如同在 DISCOVERY中所描述的路由器懇求。 5.5.2 路由器告示欠缺 如果一個鏈路沒有路由器,則主 機必須試圖使用具狀態的自動組態設定來獲得位址和其他的組態資訊。在 這種情況下,實作上可以提供一種方法使具狀態的自動組態之調用 (invocation)去能,但是其預設宜被致能。從自動組態設定的觀點,在業已發送了 少許的路由器懇求以後,如果沒有收到任何的路由器告示,則該鏈路沒有路由器,如同在 DISCOVERY中所描述。 5.5.3 路由器告示之處理 當收到有效的路由器告示 (如同在 DISCOVERY
46、中所定義 )時,主機複製告示之 M 位元的值到 ManagedFlag 裡。如果 ManagedFlag 值從 FALSE 改變成TRUE,而且該主機尚未進行具狀態的位址自動組態設定之協定,則該主機宜調用此具狀態的位址自動組態 設定之協定,以請求位址資訊和其他的資訊。如果 ManagedFlag 值從 TRUE 改變成 FALSE,則該主機宜繼續進行此具狀態的位址自動組態設定,亦即, ManagedFlag 的值之變化並無作用。如果旗標的值保持不變,則沒有特 殊的動作會發生。尤其是,如果一個主機是由於較早的告示而業已參與了具狀態的協定,則該主 機不得重新調用(reinvoke)具狀態的位址組態
47、。 告示的 O 旗標欄位是以類似的方式來 處理。主機複製 O 旗標的值到OtherConfigFlag 裡。如果 OtherConfigFlag 的值從 FALSE 改變成 TRUE,則該主機宜調用此具狀態的自動 組態設定之協定,以請求資訊 ( 如果ManagedFlag 被設定成 FALSE,則不含位址 )。如果 OtherConfigFlag 的值從TRUE 改變成 FALSE,則該主機宜繼續進行此具狀態的位址自動組態設定之協定,亦即, OtherConfigFlag 值之變化並無作用。如果旗標的值保持不變,則沒有特殊的動作會發生。 尤其是,如果一個主機是由於較早的告示而業已參與了具狀態的
48、協定,則該主機不得重新調用具狀態的組態。 針對於路由器告示中的每一個前綴資訊之選項: (1) 如果自主的旗標沒被設定,則不予理會該前綴資訊之選項。 (2) 如果前綴為鏈路本地的前綴,則默默地忽略該前綴資訊之選項。 (3) 如果優選的生命期大於有效的生命期,則不予理會該前綴資訊之選項。在這種情況下,節點可以希望記錄一個系統管理錯誤。 (4) 如果所告示的前綴與已經在表列中的位址之前綴不匹配,而且此一有效的生命期並不是 0,則組合所告示的前綴與鏈路的介面識別符形成一個位址 (並將其添加至此表列中 ),如下所示: (128 N)位元 N位元 鏈路前綴 介面識別符 12 CNS 15069, X 12
49、67 如果前綴長度和介面識別符的長度之總和不等於 128 位元,則前綴資訊之選項必須予以忽略。在這種情 況下,實作上可以希望記錄一個系統管理錯誤。確保路由器告示中所包含的 前綴長度與用於該鏈路型式的介面識別符長度一致是系統管理者的責任。注意:典型地,介面識別符將是 64 位元長,且基於EUI-64 識別符,如同在 ADDR-ARCH中所描述。 如果一個位址被成功地形成 ,則該主機會將其添加到指定給該介面之位址的表列中,以初始化來自前綴資訊之選項中它的優選的和有效的生命期之值。 (5) 在與介面關聯之位址的表列中,如果所告示的前綴與一個已自動設定組態之位址的前綴相匹配 (亦即,位址經由不 具狀態的位址或具狀態的位址自動組態設定而獲得 ),則要履行之特定 的動作取決於所收到的告示之有效的生命期,以及與先前已自動設定組態之位址所關聯的生命期 (在下列的討論中稱之為 StoredLifetime): (a) 如果所收到的生命期大於 2 小時或者大於 Stored Lifetime,則更新相對應的位址所儲存之生命期。 (b) 如果 StoredLifetime 少於或等於 2 小時,而且所收到的生命期少於或等於 StoredLifetime,除
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1