IPV6鄰居發現報文學習
IPv6的鄰節點發現協議的所有功能都由以下報文來完成:
l 路由器請求報文;
l 路由器公告報文;
l 鄰節點請求報文;
l 鄰節點公告報文;
l 重定向報文。
一.鄰節點請求報文詳細分析
請求報文分爲2類:
1. 地址衝突檢測(DAD)類鄰節點請求報文。
2. 鄰居可達性檢測(NUD)類鄰節點請求報文。
1.地址衝突檢測(DAD)類鄰節點請求報文分析
DAD NS報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 與目標的請求節點地址相對應的以太網MAC地址(組播MAC) |
IP層 | |
源IP | 目的IP |
:: | 目標的請求節點地址(組播IP) |
DAD類NS報文以太層,IP層參數值的說明:
報文例子是DAD NS報文
源MAC:發出該NS報文的網卡的MAC,例如報文示例的00:0C:29:ED:92:F2
目的MAC:與目標的請求節點地址相對應的以太網MAC地址(組播MAC),例如報文示例的33:33:FF:BC:DE:F1,它是目標的請求節點地址1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1對應的以太網MAC地址。有一個對應算法,補充介紹。
源IP:發送NS報文的源IP。例如報文示例的 ::。其中::爲DAD報文發送NS報文專用。
目的IP:發送到哪個IP上,這裏是目標的請求節點地址。例如報文示例的FF02::1:FFBC:DEF1。有一個對應的算法,補充介紹。
Target Address:請求的IP地址。例如報文示例的1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1。
2.鄰居可達性檢測(NUD)類鄰節點請求報文分析
NUD NS報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 鄰節點的單播MAC地址 |
IP層 | |
源IP | 目的IP |
發送方接口的單播IPv6地址 | 目標的單播地址 |
鄰居可達性檢測類請求報文中,因爲鄰居的信息已經是確定的,所以對應的目的MAC,目的IP都是確定的單播。內容相對簡單。
鄰節點請求報文通用參數:
報文類型:135
源鏈路層地址選項:該選項非DAD請求報文中打開。報文中帶着自己本身的MAC。
3. 地址解析請求報文分析
地址解析NS報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 與目標的請求節點地址相對應的以太網MAC地址(組播MAC) |
IP層 | |
源IP | 目的IP |
發送方接口的單播IPv6地址 | 目標的請求節點地址(組播IP) |
二.鄰節點公告報文詳細分析
公告報文分爲2類:
1. 回覆鄰節點請求的公告報文。
2. 自動發送類公告報文。
1. 回覆鄰節點請求的公告報文分析
回覆NUD請求的NA報文/回覆地址解析
回覆NUD請求的NA報文/回覆地址解析 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | NS請求的最初發送者的單播MAC地址(即NS報文中源MAC) |
IP層 | |
源IP | 目的IP |
發送方接口的單播IPv6地址 | NS請求的最初發送者的單播IP地址(即NS報文中的源IP) |
回覆DAD請求的NA報文
回覆DAD請求的NA報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | NS請求的最初發送者的單播MAC地址(即NS報文中源MAC) |
IP層 | |
源IP | 目的IP |
發送方接口的單播IPv6地址 | FF02::1 |
2.自動發送類公告報文分析
節點會主動發送NA報文,公告自己的信息。免費ARP?
自發發送NA報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 33:33:00:00:00:01 |
IP層 | |
源IP | 目的IP |
發送方接口的單播IPv6地址 | FF02::1 |
特殊MAC:33:33:00:00:00:01,這是與鏈路本地範圍所有節點多播地址相對應的以太網MAC地址。
特殊IP:FF02::1,這是鏈路本地範圍所有節點多播地址。
鄰節點公告報文通用參數:
報文類型:136
三.路由器請求報文詳細分析
分爲2種,一種是接口未獲得linklocal地址,另一種是接口已經獲得linklocal地址。
1. 接口未獲得linklocal地址RS報文分析
未獲得linklocal地址 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 33:33:00:00:00:02 |
IP層 | |
源IP | 目的IP |
:: | 鏈路本地範圍所有路由器多播地址FF02::2 |
2. 接口獲得linklocal地址RS報文分析
已經獲得linklocal地址 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 33:33:00:00:00:02 |
IP層 | |
源IP | 目的IP |
發送方接口的鏈路本地IPv6地址 | 鏈路本地範圍所有路由器多播地址FF02::2 |
路由請求報文通用參數:
報文類型:133
源鏈路層地址選項
四.路由器通告報文詳細分析
路由器通告報文分爲2種,一種是單播RA,另一種是組播RA。
1. 單播RA報文分析
RA單播報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 發送RS請求報文的主機的單播MAC地址 |
IP層 | |
源IP | 目的IP |
發送方接口的鏈路本地IPv6地址 | 發送RS請求報文的主機的的單播IPv6地址 |
2. 組播RA報文
RA組播報文 | |
以太層 | |
源MAC | 目的MAC |
發送方網卡的MAC | 33:33:00:00:00:01 |
IP層 | |
源IP | 目的IP |
發送方接口的鏈路本地IPv6地址 | FF02::1 |
路由通告報文通用參數:
報文類型:134
當前條數限制:255
管理地址配置標誌:當管理地址配置標誌爲1時,表示接收這個路由器公告報文的主機除了有可能從無狀態地址自動配置協議獲得地址外,還必須使用有狀態地址配置協議(DHCPv6)來獲得地址。
其他狀態配置標誌:當其它狀態配置標誌爲1時,表示收到這個路由器通告報文的主機必須使用有狀態地址配置協議(DHCPv6)來獲得非地址配置的信息。
。。。
補充
算法補充
根據節點IP計算對應節點地址(組播IP)
假設節點IP爲1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1,那麼它對應的節點地址爲FF02::1:FFBC:DEF1
IPv6地址對應節點IPv6地址(組播) | |
IPv6地址 | 1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1 |
對應節點IPv6地址(組播) | FF02::1:FFBC:DEF1 |
算法內容:
IPv6地址對應的節點IPv6組播地址,有固定前綴FF02::1:FF,剩餘部分爲原地址的後24位。
將固定前綴與原地址的後24位組合在一起就計算出對應的節點地址。
根據節點IP計算對應的以太網MAC
假設節點地址爲1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1,那麼它對應的MAC爲33:33:FF:BC:DE:F1
IPv6地址對應組播MAC地址 | |
IPv6地址 | 1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1 |
對應節點IPv6地址(組播) | FF02::1:FFBC:DEF1 |
對應組播MAC | 33:33:FF:BC:DE:F1 |
算法內容:
MAC都是48位,對應的組播MAC有固定前綴33:33,剩餘部分爲要發送的地址的後32位。
將固定前綴與對應節點IPv6地址的低32位組合在一起就計算出對應的以太MAC。