天天看點

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

NDP鄰居發現協定

Neighbor Discovery Protocol

NDP使用:ICMPv6封包中【RS、RA、NS、NA、重定向】五種消息

RS+RA可實作

  • 路由器發現
  • 無狀态自動配置
  • 字首重編址

NS+NA可實作

  • MAC位址解析
  • DAD(重複位址檢測)
  • 鄰居狀态跟蹤(NUD鄰居不可達檢測)

RS                               Options

RA          M O              Options

NS                               Target IP        Options

NA         R S O             Target IP        Options

RS:路由器請求(Type=133)

Router Solicitation

  • 路由器收到RS消息,立即回複RA消息
【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

RA:路由器通告(Type=134)

Router Advertisement

  • R       周期性(200s~600s随機)發送RA

                收到RS後,立即回複RA

華為路由器預設不發送RA,[R] undo ipv6 nd ra halt啟用

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

Cur Hop Limit:跳數限制

Managed位:是否DHCPv6配IP          

        0=無狀态自動配置IP(預設)

        1= DHCPv6配置IP

Other-flag位:是否DHCPv6配其他參數(生存時間、鄰居重傳時間、MTU、DNS等)

        0=無其他參數(預設)

        1=DHCPv6配其他參數

  • M、O後,空一位,再接下來2位是Router Preference位,把路由器分為low、medium(預設)、high三個優先級。當多個路由器回複RA消息時,靠此優先級決定哪個路由器成為網關,若優先級相同,則負載分擔

Router Lifetime:作為網關有效時間(預設1800s)

Reachable Time:到達時間(機關:ms)檢測可達性、延遲(類似ping時延)

Retrans Time:重傳計時器(機關:ms)表示主機重傳RS消息的時間

Options:攜帶字首、MAC、優選生存期(Preferred Lifetime)、有效生存期(Valid

Lifetime)、MTU等參數

路由器發現

路由器收到RS,立即回複RA

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

PC也可以是R

無狀态自動配置(SLAAC)

StateLess Address Auto Configuration

LAN中裝置收到RA消息(option攜帶字首64bit),其他裝置可以自動生成IPv6位址

位址格式 = RA字首 + EUI-64

[PC-G] ipv6 address auto global

  • PC獲得位址後,還需要DAD
  • [PC-G] ipv6 address auto global default,将R的Link-Local位址作為自己網關,産生預設路由(UNR協定類型)

字首重編址

R周期性(200s~600s随機)發送RA

字首重編址作用

  1. 在SLAAC時,R改變字首,PC跟着改
  2. R周期發RA(帶着字首),使PC位址始終處于優選生存期

位址生存期

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

無狀态自動配置,通過DAD後,接口擁有了IPv6位址

  • 路由器周期性發RA,保證主機IP處于優選生存期

NS:鄰居請求(Type=135)

  • MAC位址解析、NUD、DAD
【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

Target Address:對方的IP

Options:      我的MAC位址(作為MAC位址解析時)

                     DAD、NUD的NS消息沒有Options字段

NS的目的位址:  MAC位址解析、DAD中,被請求節點多點傳播位址

                            NUD中,單點傳播位址

NA:鄰居通告(Type=136)

R        收到NS後,立即回複NA          單點傳播

R        MAC改變,發送NA                  FF02::1    O置位

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

R位:置位表示:我是路由器(在NUD中用于檢測R是否變為主機)

S位:回應NA的NS(S置位)

Override位:MAC改變位

Options:我的MAC位址

MAC位址解析(ARP)

  • IPv6接口會為自己每個單點傳播位址(包括Link-local)建立一個被請求節點多點傳播位址

被請求節點多點傳播位址 = FF02::1:FFxx:xxxx(單點傳播末24位)

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定
  • 可能存在多個單點傳播位址最後24位相同的情況,被請求節點多點傳播位址相同

        此時根據NS封包中的Target Address判斷發送給誰

  • 和ARP不同的一點在于

        ARP Reply中 Target IP=R1

        NS中             Target Address=2::2

        Target MAC辨別的是對哪個MAC位址進行解析,是以始終不變

設計IPv6 ARP的時候,因為不知道目的MAC 是以需要填充多點傳播MAC;因為使用了多點傳播MAC,是以必須有一個三層多點傳播IP。于是就為每個IP設計了被請求節點多點傳播位址。

為什麼不直接設計基于2層的ARPv6?

答:因為ARP Request廣播,IPv6的廣播域中可能存在大量(虛拟)終端,轉發效率不高

IPv6取消了廣播,設計了被請求節點多點傳播位址=MAC位址解析、DAD的DIP

       二層MAC                           =     3333-XXXX-XXXX

       三層被請求節點多點傳播位址    =     FF02::1:FFxx:xxxx

                                                        ~單點傳播IPv6位址

MAC末位是從IPv6單點傳播映射下來的,大大減少會解封裝該2層封包的PC數量

IPv4 —— ARP表項

IPv6 —— 直接檢視ipv6鄰居dis ipv6 neighbors(顯示的為link-local和MAC對應關系)

DAD重複位址檢測(免費ARP)

Duplicate Address Detection

  • DAD類似免費ARP

                IP改變、VRRP主備切換時,向自己IP的被請求節點多點傳播位址發送NS

                但MAC位址改變時,直接發送NA(O置位)

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

DAD      NS源位址=::                   NS目的位址=試驗位址的被請求節點多點傳播位址

              NA目的位址=FF02::1

  • 預配位址稱為試驗位址(tentative address)
  • R1發送NS後,設定計時器,逾時未收到NA,則使用該位址。

        該位址狀态由試驗→已配置設定(assigned)

NUD鄰居不可達檢測

Neighbor Unreachable Detection

NUD是指:IPv6路由器之間互動NS、NA,以跟蹤鄰居狀态

IPv6鄰居狀态機(鄰居狀态跟蹤)

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定
  • [R] display ipv6 neighbors   //檢視路由器鄰居表(ARP表)
  • MAC位址解析、DAD的NS的DIP=被請求節點多點傳播位址

        NUD的NS消息目的位址是鄰居單點傳播位址

重定向(Type=137)

【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

重定向原理

  • 重定向隻對主機有效,對路由器無效  
    【HCIE-R&S 天梯路】NDPNDP鄰居發現協定
  • R1發現流量入接口=出接口,則發送給主機一個重定向封包,告訴主機更優下一跳

Path MTU發現

路徑上資料包>MTU

        IPv4:分片

        IPv6:丢包(IPv6僅在源節點分片、目的節點重組)

  • IPv6要求MTU≥1280Byte
【HCIE-R&S 天梯路】NDPNDP鄰居發現協定

 源節點發自己接口MTU的封包,如果路徑上有更小的MTU,則會傳回ICMP錯誤封包(類型=資料包過大,同時攜帶更小的MTU)

  • 動态PMTU探測對外連結路MTU值,老化時間=10min

優點:可以減少因MTU帶來的丢包

缺點:通信前需要PMTU發現,增加時延

[R]   ipv6 pathmtu x::x

繼續閱讀