1、1 印月965月 本標準非經本局同意得翻印 中華民國國家標準 CNS 總號 號 ICS 35.100.30 15081X1269經濟部標準檢驗局印 公布日期 修訂公布日期 965月14日 月日 (共68頁) 用於網際網路協定第 6 版(IPv6)之鄰節點探索 Neighbor discovery for IP version 6 (IPv6) 1. 適用範圍 本標準適用於網際網路社群 (internet community)的網際網路標準之進程協定,並徵詢討論和建議以供改進。針對標準化狀態和本協定的狀況,請參照 “網際網路正式協定標準 “ (internet official protocol
2、 standards, STD 1)的目前版本。 本標準規定用於網際網路協定 (internet protocol, IP)第 6 版 (IPv6)之鄰節點探索(neighbor discovery, ND)協定。於相同鏈路 (link)上的 IPv6 節點 (node)使用鄰節點探索以探索彼此的存在、以 決定彼此的鏈路層位址 (link-layer address)、尋得路由器(router)、和維護通往有作用的鄰節點之路徑 (path)的可抵達性 (reachability)資訊。 原本的 IPv6 概念性發送演算法並未在等同的 IPv6 路由器之間進行負載分享,因此所建議的方案,在實用上
3、可能會有問題。所以,本標準更新的概念性發送演算法使得訊務發送到不同的目的地時可在路由器之間以有效的方式分配之。 本標準定義網際網路協定第6版(internet protocol version 6,IPv6)之鄰節點探(neighbor discovery,ND)協定(protocol)。節點(主機和由器)使用鄰節點探決定供鄰節點使用之鏈層位址,以及迅速地清除這些已變成無效的快取值(cached value),而這些鄰節點已知其駐存(reside)於所附接之鏈上。主機(host)也用鄰節點探尋找有意願代為轉送封包的鄰近由器(router)。最後,節點使用此協定積極地追蹤哪些鄰節點為可抵達的,而
4、哪些鄰節點為無法抵達的,以及偵測已改變的鏈層位址。當一由器或通往由器的徑(path)失效時,主機將積極地查尋功能性替代方案。 除非已有規定,否則 (包含於一種特殊的鏈路型式上操作 IP 的文件中 )本標準適用於所有的鏈路型式。然而,因為 ND 利用鏈路層多播 (multicast)作為它的一些服務,在某種鏈路型式上 (例如:非廣播多重接取 (NBMA)鏈路 ),將被規定 (包含在一種特殊的鏈路型式上 IP 操作的適當文件中 )可能實作這些服務的替代協定或機制。描述於本標準中的服務並不直接相依於多播,諸如轉向 (redirect)、下一個中繼段 (next-hop)之決定、鄰節點無法抵達性之偵測
5、等,期望如同在本標準中的規定來提供。至於如何在 NBMA 鏈路上使用 ND 的細節為進一步研究的範圍。 在 ND中之概念性發送演算法與 ROUTERSEL 中之選項的延伸,當對離鏈的目的地已沒有目的地快取紀錄項存在或當透過一個現存路由器通訊發生中斷時,則會選擇下一個中繼段。通常,一個路由器被選到後,第一次訊務被送到特定的目的地 IP位址後,其後的訊務會繼續使用相同的路由器送到相同的目的地位址,除非有某種原因需改變到不同的路由器例如,收到轉向訊息或發現該路由器無法抵達。 2 CNS 15081, X 1269 另外,如 ADDRSEL中所述的,下一個中繼段之選擇也可影響來源位址的選擇,且因此間接
6、地至較小的程度也可影響用作輸入向訊務的路由器。 在基礎發送演算法與選項的延伸之中,一個主機有時候為目的地位址有多個等同的路由器之選擇。亦即,當所有其他因素都相等,且主機必須使用一些實作特定的方法來打破同分的情形。 通常,當有一個以上等同的路由器時,主機會想要將其去訊的訊務分配給這些路由器。這樣可在多個路由器間分享負載,並為主機的訊務提供較好的效能。 另一方面,在一些情形下分享負載是不想要的,像是單一路由器有足夠的容量且單一路由器使訊務型樣更容易預測,特別是,這樣可以幫助診斷連接性問題可超過第一個中繼段路由器之範圍。 ND不要求具備任何有關這方面的行為,只規定一個實作總是可選擇相同的路由器例如,
7、表列中的第一個或以循環的方式在路由器之間輪流選擇。此二項建議是有問題的。 顯然地,總是選擇相同的路由器並不能提供負載分享。一些使用天真的打破平分技術的負載分享會有一些問題,諸如 MULTIPATH所討論的循環及隨機方法。由於其決定不是逐封包,當目的地快取可提供一些穩定性,快取紀錄項被逐出或逾時,經過一段時間,仍會造成不穩定或不可預測的路徑,因而降低效能及使得更難以診斷問題所在。循環式選擇亦可造成主機間同步問題,在最差的情形下,某個時刻的負載會集中在某個路由器上。 本標準其餘章節中關鍵字必須 (MUST)、不得 (MUST NOT)、需要 (REQUIRED)、應(SHALL) 、不應 (SHA
8、LL NOT) 、宜 (SHOULD) 、不宜 (SHOULD NOT) 、建議(RECOMMENDED)、可 (MAY)與選項的 (OPTIONAL)之意義說明於 RFC 2119 中。 這些作家願意告知 IPNGWG 工作群組的貢獻,尤其是 (以英文字母先後次序 )Ran Atkinson、 Jim Bound、 Scott Bradner、 Alex Conta、 Stephen Deering、 Richard Draves、Francis Dupont、 Robert Elz、 Robert Gilligan、 Robert Hinden、 Allison Mankin、 Dan M
9、cDonald、 Charles Perkins、 Matt Thomas 及 Susan Thomson 等。 1.1 負載分享 當一個主機從多個等同的由器中選擇時,它宜支援某方法所作的選擇,即為同的目的地分配負載到等同的由器而是總是選擇同一由器(表中的第一個)。本標準對支援負載分享預設值是否宜被啟用或關閉持任何場。再者,一個想在由器間分配負載的主機宜使用以雜湊為基礎的方案(至少)將目的地IP位址納入考,如MULTIPATH中所述選擇一由器供其使用。 注意,只要該目的地快取紀項中目的地位址被刪除,一已知目的地位址的訊務將使用相同的由器。以雜湊為基礎的方案,只要等同由器的清單仍然是相同變的話,
10、則已知目的地位址之訊務,則將使用相同的由器,即使該目的地快取紀項已被刪除。 2. 用語釋義 2.1 一般用語 3 CNS 15081, X 1269 (1) IP( internet protocol):網際網路協定第 6 版。 IPv4 和 IPv6 這兩個用語僅於需避免混淆的上下文裡才使用。 (2) ICMP 協定( internet control message protocol):用於網際網路協定第 6 版的網際網路訊息控制協定。 ICMPv4 和 ICMPv6 這兩個用語僅於需避免混淆的上下文裡才使用。 (3) 節點 (node):實作 IP 的一種裝置。 (4) 路由器 (rou
11、ter):明確地非定址於它自己的一種轉送 IP 封包之節點。 (5) 主機 (host):不是路由器的任何節點。 (6) 上一層 (upper layer):直接位於 IP 上面之協定層。一些範例為:諸如 TCP 和UDP 的傳送協定,諸如 ICMP 協定的控制協定,諸如 OSPF 的選路協定,以及諸如 IPX、 AppleTalk、或 IP 本身等將 “穿隧 “於 (亦即,囊封於 ) IP 之上的網際網路或較低層協定。 (7) 鏈路 (link):一種通訊設施或媒介,於其上之節點能在鏈路層 (亦即,直接在 IP下面的層 ) 通訊。一 些範例為:乙太網路 ( 簡單型或橋接型 ) 、點對點協定(
12、point-to-point protocol, PPP)鏈路、 X.25、訊框中繼 (frame relay)、或非同步傳送模式( ATM)等網路,以及網際網路 (或更高 )層 “隧道 “,諸如於 IPv4 或IPv6 本身上的隧道。 (8) 介面 (interface):附接至一鏈路的節點配件。 (9) 鄰節點 (neighbor):被附接至相同鏈路的那些節點。 (10) 位址 (address):用於一個介面或一組介面的一個 IP 層識別符 (identifier)。 (11) 任播位址 (anycast address):用於一組介面的一個識別符 (典型上屬於不同節點 ),被發送到一個
13、任播位址的封包將被遞送到該位址所識別的這些介面之一 (根據選路協定的距離測量而給最近的那一個 )。參照 ADDR-ARCH。 備考: 一個任播 位址在語法上與單播位址 (unicast address)是難以區別的,因此,發送封包到任播位址的節點,它們通常不知道一個任播位址正在被使用。遍及本標準的其餘部分,參考至單播位址的也適用於任播位址,在那些情況中,此節點是不瞭解一個單播位址實際上是一個任播位址。 (12) 前綴 (prefix):由一個位址的某些初始位元所組成的位元串。 (13) 鏈路層位址 (link-layer address):用於一個介面的一種鏈路層識別符,其範例包括用於乙太網路
14、鏈路之 IEEE 802 位址和用於整體服務數位網路 (ISDN)鏈路之 E.164 位址。 (14) 掛鏈 (on-link):於一規定的鏈路上指定給介面的 一個位址。如果下列任一成立,則節點會認為該位址是掛鏈: 它由鏈路的一個前綴所包含,或 鄰近的路由器規定該位址為轉向訊息的標的,或 收到用於該 (標的 )位址之鄰節點告示 (neighbor advertisement)訊息,或 從該位址收到任何鄰節點探索之訊息。 4 CNS 15081, X 1269 (15) 離鏈 (off-link):與 “掛鏈 “相反;於所規定的鏈路上沒指定給任何介面的一個位址。 (16) 最長前綴匹配 (lon
15、gest prefix match):在一組前綴中決定哪一個前綴 (如果存在 )包含標的位址的過程。如果於前綴中的所有位元與標的位址之最左邊的位元相匹配,則此一標的位址由該前綴所包含。當若干前綴包含一位址時,最長前綴是相匹配的那個前綴。 (17) 可抵達性 (reachability):通往一鄰節點的單向 “轉送 “路徑之功能性是否為正確的。尤其是,被發送給鄰節點的封包是否抵達此一鄰近機器上的 IP 層,且是否被這個接收 IP 層正確地處理。針對鄰近的路由器,可抵達性意指由一個節點的 IP 層所發送的封包可被遞送到路由器的 IP 層,且該路由器的確正在轉送這些封包 (亦即,它是被設定組態成路由
16、器,而非主機 )。針對主機,可抵達性意指由一個節點的 IP 層所發送的封包可被遞送到鄰節點主機的 IP 層。 (18) 封包 (packet): IP 標頭 (header)加上酬載 (payload)。 (19) 鏈路 MTU:最大傳輸單位 (maximum transmission unit, MTU),即最大之封包大小,以八位元組為單位,它能完整地被運載於鏈路上。 (20) 標的 (target):有關位址解析資訊所尋找的一種位址,或者當一個位址正被轉向時,它是新的第一個中繼段 (first-hop)位址。 (21) 代理器 (proxy):代表另 一個節點對鄰節點探索之詢問訊息作出回應
17、的路由器。扮演著代表一個業已移動至離鏈之 行動節點 (mobile node)的路由器,它能潛在地扮演該行動節點的代理器。 (22) ICMP 協定目的地無法抵達指示 (destination unreachable indication):回送至封包的原始發送者之一種錯誤指示,此封包為由於在 ICMPv6中所概述的理由而不能被遞送的。如果錯誤發生於除了發起這個封包的節點以外之節點,即產生了 ICMP 協定錯誤訊息。如果錯誤發生於發起的節點,則不需實作來實際地產生和發送 ICMP 協定錯誤封包給來源的節點,只要透過一個適當的機制通知上一層發送者即可 (例如:從程序呼叫回送數值 )。然而,注意:
18、在某些情況下,透過取用此一引起問題的封包 (offending packet)、產生一個ICMP 協定錯誤訊息、然後透過同屬的錯誤處理常式 (routine) (在本地 )來遞送它,一個實作可以發現它方便回送錯誤給發送者。 (23) 隨機延遲 (random delay):當發送出訊息時,有時候需要延遲傳輸一段隨機數量的時間以防止若干節點恰於同一 時間傳輸,或防止長久範圍的週期性傳輸彼此同步 SYNC。當需要一個隨機組件時,一節點採下述方法計算實際的延遲:所計算的延遲形成一個均勻分佈的隨機值 (uniformly-distributed random value),且落於所規定的最小與最大延遲
19、時間之間。實作者必須小心以確保所計算的隨機 組件之精細度 (granularity)和所使用的計時器之解析度 (resolution)兩者均高得足以確保若干節點延遲相同數量的時間之機率很小。 5 CNS 15081, X 1269 (24) 隨機延遲種子 (random delay seed) :如果一個擬隨機數產生器(pseudo-random number generator)被用於計算隨機延遲組件,則此一產生器於被使用之前宜 以一個唯一的種子予以初始化 (initialization)。注意:單獨使用介面符記 (interface token)以作為種子是不夠的,因為介面符記並非總是唯一
20、的。為了減少重複的介面符記 引發相同種子被使用的可能性,此種子宜計算自許多輸入來源 (例如:機器組件 ),這些輸入來源即使是在完全相同 “盒子 “上,亦很有可能是不同的。例如:此種子可能藉由 CPU 的系列號碼與一個介面符記相組合而形成。 2.2 鏈路型式 不同的鏈路層具有不同的性質。涉及鄰節點探索的鏈路層有: (1) 多播 (multicast):在鏈路層支援固有的機制之一種鏈路,以將封包發送給所有鄰節點之所有節點 (即廣播 )或其子集。 (2) 點對點 (point-to-point):恰好連接兩個介面的一種鏈路。點對點的鏈路被假設具有多播能力和具有一個鏈路本地位址。 (3) 非廣播多重接
21、取 (non-broadcast multi-access, NBMA):有兩個以上的介面能夠與它附接的一種鏈路,但是該鏈路並不支 援固有形式的多播或廣播 (例如: X.25、 ATM、訊框中繼等等 )。 備考: 所有的鏈路型式 (包括 NBMA)都被期望能提供用於 IP 的多播服務 (例如:使用多播伺服器 (server),但是, ND 是否宜使用這樣的設施或某種替代機制,以提供相當於 ND 的服務,這是有待進一步研 究的議題。 (4) 分享式媒介 (shared media):允許在許多節點 中直接通訊的一種鏈路,但是,針對所有掛鏈的目的地 (destination),附接的節點是以它們沒
22、有完整的前綴資訊的此種方法來設定組態。亦即,在 IP 層次,相同鏈路上的這些節點也許不知道它們是鄰節點,而它們在預設上是透過路由器來通訊。其範例為諸如SMDS 和 B-ISDN 等大型 (交換式 )公眾數據網路,亦即熟知的 “大型雲朵 “。參照 SH-MEDIA。 (5) 可變的 MTU:不具有明確定義之 MTU 的一種鏈路 (例如: IEEE 802.5 符記環 )。許多鏈路 (例如:乙太網路 )有一個由鏈路層協定所定義的或由描述 IP協定如何運行於鏈路層上的特定文件所定義的一種標準 MTU。 (6) 非對稱的可抵達性 (asymmetric reachability):為一種鏈路,鏈路之非
23、反射的可抵達性 (non-reflexive reachability)及 /或非遞移的可抵達性 (non-transitive reachability)為正常操作的一部分。 (非反射的可抵達性意指封包可以從 A 抵達 B,但是封包卻不能從 B 抵達 A,非遞移的可抵達性意指封包可以從 A 抵達 B,封包可以從 B 抵達 C,但是封包卻不能從 A 抵達 C)。許多無線電鏈路即表現出這些性質。 2.3 位址 鄰節點探索利用許多定義於 ADDR-ARCH的不同位址,包括: (1) 所有節點的多播位址 (all-nodes multicast address):要抵達所有節點的本地鏈6 CNS 1
24、5081, X 1269 路範圍位址。 FF02:1 (2) 所有路由器多播位址 (all-routers multicast address):要抵達所有路由器的本地鏈路範圍位址。 FF02:2 (3) 懇求節點的多播位址 (solicited-node multicast address):為一種本地鏈路範圍的多播位址,它是以懇求的標的位 址之一個函數來計算,此一函數是描述於ADDR-ARCH中。選擇該函數使得 IP 位址僅於高次序 (high-order)的位元為不同的,例如:由於若干個高次序的 前綴與不同供應者結合,將對映至相同的懇求節點之位址,當一節點必須加入時,因而可減少多播位址的
25、數量。 (4) 本地鏈路位址 (link-local address):具有鏈路唯一範圍的一種單播位址,它能夠被用來抵達鄰節點。在路由器上的所有介面皆必須有一個本地鏈路位址。同樣地, ADDRCONF在主機上的介面需要有一個本地鏈路位址。 (5) 未規定位址 (unspecified address):指出缺少位址的一種保留之位址值 (例如:位址不清楚 )。它從未被使 用作為一個目的地位址,但是,如果發送者還不知道自己的位址,即可以被 使用作為一個來源位址 (例如:於位址自動組態(autoconfiguration)期間 ADDRCONF,當驗證一個位址為未被使用時 )。未規定位址的一個值為
26、0:0:0:0:0:0:0:0。 2.4 需求 當下列這些關鍵字 (keyword)在本標準中出現時,包括:必須 (MUST)、不 得 (MUST NOT)、必需的 (REQUIRED)、應 (SHALL)、不應 (SHALL NOT)、宜 (SHOULD)、不宜 (SHOULD NOT),建議的 (RECOMMENDED)、可以 (MAY)、及選項的(OPTIONAL),它們宜要如同在 KEYWORDS中所描述般予以解譯。 本標準也利用內部的概念性變數 (conceptual variable)來描述協定之行為,且一個實作必須允許系統管理者去改變 外部的變數。提供特定的變數名稱、它們的值如何
27、改變以及其設定如何影響協 定之行為等以展示協定之行為。只要一個實作的外部行為與本標準中所描述者 一致,則該實作之格式不需與此處所描述之格式完全相同。 3. 協定概述 本協定解決有關附接於相同鏈路節點之間交互作用的問題。它定義解決下列問題的機制: (1) 路由器探索:主機如何定位駐存於所附接鏈路上的路由器。 (2) 前綴探索:主機如何探索位址的前綴 集,針對所附接的鏈路,這些前綴定義哪些目的地是掛鏈。 (節點使用前綴來區別駐存於掛鏈的目的地與透過路由器僅可抵達的那些目的地 )。 (3) 參數探索:節點如何學習將像鏈路 MTU 這樣的鏈路參數或像中繼段限制值這樣的網際網路參數放入去訊封包 (out
28、going packet)裡。 (4) 位址自動組態設定:針對一個介面,節點如何自動地設定一個位址的組態。 7 CNS 15081, X 1269 (5) 位址解析:對於僅被給定目的地 IP 位址的一個掛鏈之目的地 (例如:一個鄰節點 ),位址解析即為節點如何決定該目的地之鏈路層位址。 (6) 下一個中繼段之決定:用於映射 (map)一個 IP 目的地位址至鄰節點的 IP 位址之演算法 (algorithm),而目的地的訊務 (traffic)宜被發送給該鄰節點。下一個中繼段可能是路由器或目的地本身。 (7) 鄰節點無法抵達性之偵測:節點如何 決定一個鄰節點不再是可抵達的。針對被用作路由器的鄰
29、節點,能夠測試替代 的預設路由器。針對路由器和主機兩者,位址解析能夠再次地被履行。 (8) 重複位址之偵測:一個節點如何決定 它期望去使用的一個位址,而該位址猶未處於另一個節點使用中。 (9) 轉向:一個路由器如何通知主機有關 較佳的第一個中繼段節點俾以抵達特定的目的地。 鄰節點探索定義五種不同的 ICMP 協定封包型式:成對路由器懇求 (router solicitation)和路由器告示 (router advertisement)等訊息,成對鄰節點懇求 (neighbor solicitation)和鄰節點告示等訊息,和一個轉向訊息。這些訊息適合下述之目的: (1) 路由器懇求:當一個介
30、面變成致能時 ,主機可以發送出路由器懇求,以請求路由器直接地產生路由器告示,而非在它們的下一次所安排的時間才產生。 (2) 路由器告示:路由器或週期地或於回 應路由器懇求訊息時,將它們的存在與各種鏈路參數和網際網路參數一起告示 。路由器告示包含被用作掛鏈的決定之前綴及 /或位址組態、被建議的中繼段限制值,等。 (3) 鄰節點懇求:由一個節點發送以決定 鄰節點的鏈路層位址,或透過一個快取的鏈路層位址來驗證一個鄰節點仍然為 可抵達的。鄰節點懇求也被用作重複位址之偵測。 (4) 鄰節點告示:對鄰節點懇求訊息的一 種回應。一個節點也可以發送非懇求的鄰節點告示以發佈鏈路層位址的改變。 (5) 轉向:路由
31、器用來通知主機有關較佳的第一個中繼段以供抵達目的地。 在具多播能力的鏈路 (multicast-capable link)上,每一個路由器會週期地多播一個路由器告示封包,以發佈它的可用性 (availability)。一個主機從所有的路由器那裡收到路由器告示,以建立預設的路由器之表列。路由器產生路由器告示往往足以使主機在幾分鐘之內即學習到有關它們的存在,但是卻往往不足以依賴沒有告示來偵測路由器的失效,一個分離的鄰節點無法抵達性之偵測演算法提供失效偵測。 路由器告示包含被使用於掛鏈的決定之前綴表列及 /或自主的位址組態;與這些前綴結合的旗標 (flag)規定一個特殊前綴所要的用途。這些主機使用被
32、告示於掛鏈的前綴以建立和維持一個表列,該表列被用來決定封包的目的地何時為掛鏈或者遠在路由器那邊。注意:即使一個目的地並沒有被告示於掛鏈的任何前綴所涵蓋,它也有可能掛鏈。在這種情況下,路由器能夠發送轉向訊息以通知發送者:目的地就是鄰節點。 路由器告示 (和每一前綴的旗標 )允許路由器通知主機如何去履行位 址之自動組態設8 CNS 15081, X 1269 定。例如:路 由器能夠規定主機是否宜使用具狀態的 (DHCPv6)及 /或自主的 (不具狀態的 )位址組態。位址組態相關聯的資訊之精確語義學及用法是在 ADDRCONF中規定的。 路由器告示訊息也包含諸如中繼段限制的網際網路參數,以及 (選項
33、地 )諸如鏈路MTU 的鏈路參數,該中繼段限制為主機宜使用於去訊的封包。如此將有利於重要參數的集中化管理,能夠在路由器上設定且自動地傳遞給所有所附接的主機。 節點利用多播一個鄰節點懇求以要求標的節點回送其鏈路層位址來完成位址的解析。鄰節點懇求訊息係多播給此標的位址之懇求節點的多播位址,而標的以單播鄰節點告示訊息回送其鏈路層位址。單一的請求回應配對之封包對於啟動者和標的兩者來說要解決彼此間的鏈路層位址是足夠的;因啟動者將其鏈路層位址包含於鄰節點懇求中。 鄰節點懇求訊息也能夠被用來決定一個以上的節點是否已經被指定為相同的單播位址。用於重複位址之偵測的鄰節點懇求訊息之用法於 ADDRCONF中規定。
34、 鄰節點無法抵達性之偵測係偵測一個鄰節點的失效,或通往鄰節點的轉送路徑的失效。這麼做需要正面確認 (positive confirmation),即發送給鄰節點的 封包實際上正抵達該鄰節點,且它的 IP 層正在正確地予以處理。鄰節點無法抵達性之偵測所使用的確認來自兩個來源。當可能時,上一層協定提供 一個連接正在取得 “轉送進行(forward progress)“的正面確認,亦即,先前所發送之資料得知已被正確地遞送 (例如:前不久收到新的確認 )。透過如此 “暗示 “,當正面確認仍未即將來臨時,一個節點將發送單播的鄰節點懇求訊息,以懇求鄰節點告示,當作來自下一個中繼段的可抵達性之確認。為了減少
35、不必要的網路訊務,探查訊息只發送給鄰節點,而節點正積極地發送封包給該鄰節點。 除了提出上面所述之一般問題以外,鄰節點探索也處理下列這些情況: (1) 鏈路層位址改變:知 道它的鏈路層位址改變的節點能夠多播一些 (非懇求的 )鄰節點告示封包給所有的節點,以迅速地更新 已經變成無效之快取的鏈路層位址。注意:非懇求的 告示之發送只是效能之增強而已 (例如:不可靠的 )。鄰節點無法抵達性之偵測演算法可確保所 有的節點都將可靠地探索新的位址,但是其延遲也許會稍微更長些。 (2) 輸入向 (inbound)的負載平衡 (load balance):具有重複介面的節點可能想要透過在相同鏈路上的多重網路介面對
36、來訊 封包的接收實施負載平衡,這些節點有指定多重鏈路層位址給相同的介面。例 如:單一網路驅動器能將多重網路介面卡表示為一個具有多重鏈路層位址之單一的邏輯介面。 負載平衡係藉由允許路由器從路由器告示封包省略來源鏈路層位址來處理,因而迫使鄰節點使用鄰節點懇求訊息來學習路由器的鏈路層位址。此時所回送的鄰節點告示訊息可能包含鏈路層位址,這就相依於誰發出此一懇求而有所不同。 (3) 任播位址:任播位址識別提供一種等效服務之一組節點中的一個節點,且於相同鏈路上的多重節點可能被設定組態以認識相同的任播位址。鄰節點探索係藉由針對相同的標的使節點期望收到若干個鄰節點告示來處理任播。用於任播位址的所9 CNS 1
37、5081, X 1269 有告示均被加標籤而成為不可覆蓋的告示 (non-override advertisement)。如此調用特定的規則以決定於潛在地多重告示中何者宜被使用。 (4) 代理器告示:有意願去接受封包的路 由器代表一個標的位址不能對鄰節點懇求作出回應,此一標的位址能夠發出不 可覆蓋的鄰節點告示。目前雖沒有規定代理器的使用,但是告示的代理器能潛 在地被用來處理像具有移動的離鏈之行動節點般的情況。然而,例如:沒打算 成為一個一般機制以處理節點就不會實作這種協定。 3.1 與 IPv4 的比較 IPv6 鄰節點探索協定相當於 IPv4 協定 ARP ARP、 ICMP 路由器探索 R
38、DISC、和 ICMP 轉向 ICMPv4的組合。在 IPv4 中,雖然主機需求 HR-CL並不規定某些用於失效的閘道器偵測之 可能的演算法 (鄰節點無法抵達性之偵測處理的一些問題子集 ),但通常沒有與鄰節點無法抵達性之偵測的協定或機制取得一致。 鄰節點探索協定提供對 IPv4 協定集的許多改進: 路由器探索是基礎協定集的一部 分;無需針對這些主機去 “窺探 (snoop)“選路的協定。 路由器告示載送鏈路層位址;無需附加的封包交換來解決路由器的鏈路層位址。 路由器告示載送一鏈路的前綴;無需有一個分離的機制來設定 “netmask“的組態。 路由器告示允許位址自動組態設定。 路由器能夠告示一個
39、 MTU 以供主機於鏈路上使用,以確保在缺少明確定義之MTU 的鏈路上所有的節點使用相同的 MTU 值。 位址解析多播 “伸展 “超過四十億 (232)多播位址,大大地減少在除了標的以外的節點上與位址解析相關聯的中斷 (interrupt)。此外,非 IPv6 的機器完全不宜被中斷。 轉向包含新的第一個中繼段之鏈路 層位址;當收到一個轉向時並不需有分離的位址解析。 若干前綴能夠與相同的鏈路結合。 根據預設,主機從路由器告示學習所有掛鏈的前綴。然而,路由器可能被設定 組態以從路由器告示中省略一些或所有的前綴。在這種情況下,主機認為這些目的地是離鏈的,並且將訊務發送給 路由器,因而路由器就能夠適當
40、地發出轉向。 不同於 IPv4, IPv6 轉向的接收者認為新的下一個中繼段是於掛鏈。在 IPv4 中,規定不在 掛鏈的下一個中繼段之轉向,一個主機將根據鏈路的網路遮罩 (mask)而忽略這些轉向。 IPv6 的轉向機制類似於規定在 SH-MEDIA中的 XRedirect 設施。於非廣播和分享型介質鏈路中 ,它被期望成為有用的,而在該鏈路中,針對節點要知道於掛鏈的目的地之所有前綴,這是不受歡迎或不可能的。 鄰節點無法抵達性之偵測是基礎的 一部分,於失效的路由器存在時將重大地改進封包遞送的堅固性 (robustness),部分地失效或分割的鏈路和節點改變了它們的鏈路層位址。例如:行動節點能夠移
41、動離鏈,不會由於失效的 (stale) ARP 快取記憶體 (cache)而遺失任何連接能力 (connectivity)。 10 CNS 15081, X 1269 不同於 ARP,鄰節點探索偵測半鏈路 (half-link)失效 (使用鄰節點無法抵達性之偵測 )且避免發送訊務給鄰節點,由於鄰節點之雙向連接能力是不存在的。 不同於 IPv4 之路由器探索,路由器告示訊息不含優選 (preference)欄位。此一優選欄位不需要處理不同 “穩定性 “的路由器;鄰節點無法抵達性 之偵測將偵測失效的路由器並切換至工作中的那個路由器。 如果場所發生重新編號以使用新的整體前綴 (global pref
42、ix),則使用鏈路本地位址來唯一地識別路由器 (針對路由器告示和轉向等訊息 ),將使得主機保持路由器的結合成為可能。 使用中繼段限制等於 255 的技巧,鄰節點探索係可避免離鏈的發送者意外地或故意地發送 ND 訊息。在 IPv4 中離鏈的發送者能夠發送 ICMP 轉向和路由器告示等兩種訊息。 將位址解析放置於 ICMP 協定層使得該協定成為比 ARP 協定具有更高的介質獨立 (media-independent),且使適當地使用標準的 IP 鑑別 (authentication)和安全(security)機制 IPv6-AUTH, IPv6-ESP成為可能。 3.2 支援的鏈路型式 鄰節點探索
43、以不同的性質來支援鏈路。於存在某些性質時,只有 ND 協定機制的一個子集被完全地規定於本標準中: (1) 點對點:鄰節點探索處理這 種鏈路就如同多播鏈路一般。 (多播能夠瑣細地被提供於點對點的鏈路上, 且介面能夠被指定鏈路本地位址。 )鄰節點探索之實作宜如同在本標準中所描述。 (2) 多播:鄰節點探索之實作宜如同在本標準中所描述。 (3) 非廣播的多重接取 (NBMA):轉向、鄰節點無法抵達性之偵測 、和下一個中繼段決定等之實作宜如同在本標準中所描述。在 NBMA 鏈路上,位址解析、以及用於遞送路由器懇求和告示等機制不在本標準中規定。注意:如果主機支援預設路由器的一個表列之手動組態,則主機能夠
44、從轉向訊息動態地獲得它們的鄰節點之鏈路層位址。 (4) 分享式媒介:轉向訊息使用 SH-MEDIA中的 XRedirect 訊息塑模,以簡化協定在分享之媒介鏈路上的使用。 本標準不涉及僅與路由器有關之分享之媒介的議題,諸如: 路由器在一個分享之媒介鏈路上如何交換可抵達性資訊。 路由器如何決定主機的鏈路層位址,它需要發送轉向訊息給主機。 路由器如何決定這是用於所收到封包的第一個中繼段之路由器。 此協定為可延伸的 (透過新選項的定義 ),以便將來可能有其他的解決方案。 (5) 可變的 MTU:鄰節點探索允許路由器規定用於鏈路的 MTU,此時鏈路上所有的節點皆使用此 MTU。鏈路上所有的節點必須使用
45、相同的 MTU(或最大的接收單位 ),使多播得以正確 地工作。否則當多播時,一個發送者可能不知道哪個節點將收到該封包,它不能決定所有接收者能夠處理的最小封包之尺寸。 (6) 非對稱的可抵達性:鄰節點探索偵測缺少對稱的可抵達性;一個節點避免利11 CNS 15081, X 1269 用沒有對稱的連接能力之路徑通往鄰節點。 鄰節點無法抵達性之偵測將典型地識別這種半鏈路,但節點將避免使用它們。 這個協定未來能夠大概地被延伸以便在缺少反射的 (reflexive)和遞移的(transitive)連接能力之環境中尋得能生存的路徑。 4. 訊息格式 4.1 路由器懇求訊息格式 主機發送路由器懇求以激勵路由
46、器迅速地產生路由器告示。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1型式 碼 核對和 保留的 選項的 (1) IP協定位: (a) 來源位址( source address):被指定給發送介面的一種 IP 位址,或者,如果未指定任何位址給發送介面,則為未規定的位址。 (b) 目的地位址( destination address):典型上為所有路由器的多播位址。 (c) 中繼段限制( hop limit): 255。 (d) 鑑別標頭( authentication header):用於 IP 鑑
47、別標頭的安全結合如果存在於發送者與目的地位址之間,則發送者宜包含此一標頭。 (2) ICMP 協定欄位: (a) 型式( type): 133。 (b) 碼( code): 0。 (c) 核對和 (Checksum): ICMP 協定之核對和;參照 ICMPv6。 (d) 保留的:此一欄位未使用。它必須由發送者初始化為零,且必須被接收者忽略。 (3) 有效的選項: 來源鏈路層位址( source link-layer address):如果已知,則為發送者的鏈路層位址。如果來源位址是未規定的位址則不得被包含,否則它宜被包含在具有位址的鏈路層上。 這個協定的未來版本可能會定義新的選項型式。接收者
48、必須默默地忽略它們不認識的任何選項,且繼續處理該訊息。 4.2 路由器告示訊息格式 路由器週期地發送出路由器告示訊息,或者對路由器懇求作出回應。 12 CNS 15081, X 1269 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 型式 碼 核對和 目前的中繼段限制 M O 保留的 路由器之生命期 (lifetime) 可抵達的時間 再傳輸計時器 選項的 (1) IP協定位: (a) 來源位址:必須是指定給介面的鏈路本地位址,這個訊息是從該介面發送的。 (b) 目的地位址:典型上,為一種調用路由
49、器懇求的來源位址或所有節點的多播位址。 (c) 中繼段限制: 255。 (d) 鑑別標頭:如果 IP 鑑別標頭的安全結合如果存在於發送者與目的地位址之間,則發送者宜包含此一標頭。 (2) ICMP 協定欄位: (a) 型式: 134。 (b) 碼: 0。 (c) 核對和: ICMP 協定之核對和;參照 ICMPv6。 (d) 目前中繼段限制: 8 位元無正負號的整數。預設值宜被放置於去訊 IP 封包中 IP 標頭的中繼段計數欄位。值為 0 意謂未被 (此路由器 )規定。 (e) M: 1 位元的 “被管理位址組態 “旗標。當 M 位元被設定時,主機除了使用不具狀態的位址自動組態來設定任何位址自動組態以外,亦使用位址自動組態之被管理 (具狀態的 )協定。這個旗標的用法描述於 ADDRCONF中。 (f) O: 1 位元的 “其他具狀態的組態 “旗標。當 O 位元被設定時,主機使用其他 (非位址 )資訊的自動組態之被管理的 (具狀態的 )