IPV6鄰居發現報文學習算法
IPv6的鄰節點發現協議的全部功能都由如下報文來完成:ide
l 路由器請求報文;學習
l 路由器公告報文;spa
l 鄰節點請求報文;orm
l 鄰節點公告報文;接口
l 重定向報文。路由
請求報文分爲2類:get
1. 地址衝突檢測(DAD)類鄰節點請求報文。it
2. 鄰居可達性檢測(NUD)類鄰節點請求報文。table
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。
NUD NS報文 |
|
以太層 |
|
源MAC |
目的MAC |
發送方網卡的MAC |
鄰節點的單播MAC地址 |
IP層 |
|
源IP |
目的IP |
發送方接口的單播IPv6地址 |
目標的單播地址 |
鄰居可達性檢測類請求報文中,由於鄰居的信息已是肯定的,因此對應的目的MAC,目的IP都是肯定的單播。內容相對簡單。
鄰節點請求報文通用參數:
報文類型:135
源鏈路層地址選項:該選項非DAD請求報文中打開。報文中帶着本身自己的MAC。
地址解析NS報文 |
|
以太層 |
|
源MAC |
目的MAC |
發送方網卡的MAC |
與目標的請求節點地址相對應的以太網MAC地址(組播MAC) |
IP層 |
|
源IP |
目的IP |
發送方接口的單播IPv6地址 |
目標的請求節點地址(組播IP) |
公告報文分爲2類:
1. 回覆鄰節點請求的公告報文。
2. 自動發送類公告報文。
回覆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 |
節點會主動發送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地址。
未得到linklocal地址 |
|
以太層 |
|
源MAC |
目的MAC |
發送方網卡的MAC |
33:33:00:00:00:02 |
IP層 |
|
源IP |
目的IP |
:: |
鏈路本地範圍全部路由器多播地址FF02::2 |
已經得到linklocal地址 |
|
以太層 |
|
源MAC |
目的MAC |
發送方網卡的MAC |
33:33:00:00:00:02 |
IP層 |
|
源IP |
目的IP |
發送方接口的鏈路本地IPv6地址 |
鏈路本地範圍全部路由器多播地址FF02::2 |
路由請求報文通用參數:
報文類型:133
源鏈路層地址選項
路由器通告報文分爲2種,一種是單播RA,另外一種是組播RA。
RA單播報文 |
|
以太層 |
|
源MAC |
目的MAC |
發送方網卡的MAC |
發送RS請求報文的主機的單播MAC地址 |
IP層 |
|
源IP |
目的IP |
發送方接口的鏈路本地IPv6地址 |
發送RS請求報文的主機的的單播IPv6地址 |
RA組播報文 |
|
以太層 |
|
源MAC |
目的MAC |
發送方網卡的MAC |
33:33:00:00:00:01 |
IP層 |
|
源IP |
目的IP |
發送方接口的鏈路本地IPv6地址 |
FF02::1 |
路由通告報文通用參數:
報文類型:134
當前條數限制:255
管理地址配置標誌:當管理地址配置標誌爲1時,表示接收這個路由器公告報文的主機除了有可能從無狀態地址自動配置協議得到地址外,還必須使用有狀態地址配置協議(DHCPv6)來得到地址。
其餘狀態配置標誌:當其它狀態配置標誌爲1時,表示收到這個路由器通告報文的主機必須使用有狀態地址配置協議(DHCPv6)來得到非地址配置的信息。
。。。
假設節點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位組合在一塊兒就計算出對應的節點地址。
假設節點地址爲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。