IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

一、IPv4與IPv6報頭對比

1、IPv4報頭

IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

(1)版本 :當前 IP 版本,IPv4。

(2)首部長度:指的是 IPv4 報頭長度,20-60 個字節,因為 Option 字段是 0-40 個字

節。

(3)區分服務:用於 Qos 報頭。

(4)總長度:總長度=頭長+載荷長

(5)標識、標誌、 片移位 :用於 IP 報文的分片和重組。

(6)協議:表示上層協議。

(7)首部校驗和:頭校驗和,對報文進行校驗。

2、IPv6 的報頭

IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

(1)traffic class:是 IPv4 的 ToS,用於 QoS 中標識優先級

(2)flow lable:IPv6 中增加了 flow lable(流標籤)字段,用於唯一確定一條 IPv6 數據

流,因為在 IPv4 中確定一條數據流需要使用 5 元組,而確定 TCP/UDP 端口號需要對報文

進行傳輸層解封裝,會消耗設備性能。而流標籤可唯一標識數據流,能夠更好實現 QoS。

(3)payload length:有效載荷長度,用於表示上層協議報文的大小,因為 IPv6 報頭是

固定長 40byte,所以僅需標識上層協議載荷大小即可。

(4)next header:標識上層協議或上層擴展報頭,類似於 IPv4 的 protocol。IPv6 中增加

了擴展報頭用於實現擴展的功能如分片,加密等。

(5)hop limit:跳數限制,用於防環,類似於 IPv4 的 TTL。

(6)IPv6 刪除了 IPv4 中的標識、標誌、分片移位、首部長度、Option、校驗和等字段。

IPv6 之所以移除校驗和,是因為在二層有 FCS 校驗,在四層有 TCP/UDP 做校驗,IPv6 報

文無需校驗,提升了 IPv6 的性能。

(7)擴展報頭:用於實現 IPv6 的擴展功能,比如分片,認證,加密等。

二、NDP

NDP(Neighbor Discovery Protocol)是 ICMPv6 的子協議,由於在 IPv6 中沒有 ARP

協議,所以在 IPv6 上層定義了 NDP 協議實現 ARP 的地址解析,衝突地址檢測等功能以及

IPV6 的鄰居發現功能。

IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

1、NDP 使用 ICMPv6 的相關報文

1)、RS(Router Solicitation):路由器請求報文

2)、RA(Router Advertisement):路由器通告報文

3)、NS(Neighbor Solicitation):鄰居請求報文

4)、NA(Neighbor Advertisement):鄰居通告報文

2、地址解析

IPv6 的地址解析不再使用 ARP,也不再使用廣播方式。

1)、地址解析在三層完成,針對不同的鏈路層協議可以採用相同的地址解析協議

2)、通過 ICMPv6(類型 135 的 NS 及類型 136 的 NA 報文)來實現地址解析。

3)、NS 報文發送使用組播的方式,報文的目的 IPv6 地址為被請求的 IPv6 地址對應的“被

請求節點組播地址”,報文的目的 MAC 為組播 MAC。

4)、採用組播的方式發送 NS 消息相比於廣播的方式更加的高效,也減少了對其他節點

的影響和對二層網絡的性能壓力。

5)、可以使用三層的安全機制(例如 IPSec)避免地址解析攻擊。

6)、在 IPv4 中,可以通過 ARP 就可以由 IP 地址解析到鏈路層地址。

三、地址解析過程(鄰居狀態建立)

IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

(1)R1 會發送一個 NS(鄰居請求報文,屬於 ICMPv6 的消息報文,type=135),該報文

源 IP 為 R1 的接口單播地址 2001::1,目的 IP 為要解析的 R2IPv6 單播地址對應的被請求節

點組播地址 FF02::1:FF00:2(將要解析的 IPv6 單播地址的後 24bit 添加到 FF02::1:FF 後面,

其前綴固定 104bit 為 FF02::1:FFXX:XXXX/104);

二層封裝源 MAC 為 R1 的 MAC,目的 MAC 為該被請求節點組播地址映射的 IPv6 組播

MAC=3333-FF00-0002(IPv6 組播地址映射的組播 MAC,該組播 MAC 前 16bit 固定為

3333,後 32bit 為 IPv6 組播地址後 32bit);

IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

(2)由於 R2 配置了單播地址 2001::2 之後,就默認加入了該單播地址對應的被請求節點

組播地址 FF02::1:FF00:2 的組播組中,所以只要向該組播組發送報文,R2 都可以接受。

(3)當 R2 收到 R1 的 NS 報文之後,通過查看該報文中標識的要解析的地址是不是自己接

口的單播地址。如果是,則單播回應 NA(鄰居通告報文,ICMPv6 的消息報文,

type=136),NA 報文中攜帶了 R2 的 2001::2 地址對應的 MAC 地址。

IPv6和IPv4報,IPv6鄰居發現NDP,及鄰居建立過程,一分鐘瞭解下

(4)R1 通過 R2 回應的 NA 報文可以得知單播地址 2001::2 對應的 MAC 地址。


分享到:


相關文章: