ND

IPv6 ND 提供機制來解決鄰近nodes間相互作用的下列問題:

Router Discovery - Hosts如何查尋到連接在link上的router?

Prefix Discovery - Hosts如何得知哪些prefix是屬於link上可直接傳送的位址?(Nodes利用prefix是否為on-link來決定直接傳送封包或透過router傳送封包到目的地)

Parameter Discovery - How to get link related parameter by each node? ex: link MTU,Hop Limit值

Address Autoconfiguration - 提供機制來允許hosts對每個interface自動配置參數。ex:IPv6位址,link MTU等

Address resolution - 如何從鄰近nodes的IPv6位址解析到其link層地址

Next-hop determination - 如何將欲傳送的封包的目的地對應到next-hop位址? 對於非鄰近(off-link)目的位址,Next-hop位址是router的位址。對於鄰近的(on-link)目的位址,next-hop位址就是目的位址本身

Neighbor Unreachability Detection - 如何偵測鄰近的nodes的可達性?對於不可達的nodes,可嘗試用位址解析機制來確認是否還可達。此外,如果link上有2個以上的routers,還可以透過更換default router來解決鄰近router不可達問題。

Duplicate Address Detection(DAD) - node如何確定它欲使用的位址是否已經被鄰近的其它node使用了?

Redirect(重新導向) - 當link上有2個以上routers時,Router如何告知host使用更佳的next-hop (即別的router)將封包送達特定的目的位址?

ND利用 ICMPv6 packet structure並且定義新的ICMPv6 type 133~137 分別來解決鄰近nodes間相互作用的問題。ND messages include

  • ICMPv6 header

  • 零到多個 ND options

ND 包括 5 種messages:

在具有multicast能力的link上 (RA 發送的時機點)

  • 每個router週期性地send RA來宣告他的可用性

  • 當host發出RS message時,router也會立即發送RA message

Hosts藉由收到的RA, 建立一個table稱為Default Router List。當host發現目前的default router unreachable 或不可用(router可能宣佈不再當router或者router的lifetime已經到期) 時, 可利用default router list找到其它可用的router後,更換default router

RA 包含零到多個prefix,每個prefix包括個別的on-link及autonomous flags,用來指定此prefix的用途。Hosts利用on-link flag值為1的prefix,建立一個列表稱為prefix list。發送封包時用prefix list決定直接送到目的地或者透過router轉送。Autonomous flag用來告知host是否使用此prefix自建Global或Unique Local Address。

Node透過發送NS 要求目標透過NA message來回應它的link層地址。NS的IP 目標位址為目標的Solicited-node multicast address,回應的NA message的IP 目標位址為NS message的來源位址。

Summary

DAD

  • Implement by NA, NS

Reference:

Last updated