ICMPv6
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
ICMPv6協議是IPv6協議族中的一個基礎協議,它合併rIPv4中的ICMP(控制報文協議)、IGMP(組成員協議)、ARP(地址解析協議)、RARP(反向地址解析協議)和RA(路廣播)等多個協議的功能。ICMPv6協議在IPv6網路中主要通過ICMPv6信息報文(InformationalMessage)和錯誤報文Error表1ICMPv6協議中部份信息報文(InformationalMessage)313錯誤報文(ErrorMessage)Message)的交換來實現以下核心功能:
1.路由首碼信息的獲取
2.地址解析
5.差錯控制
由此看出,ICMPv6協議控制著IPv6網路中的地址生成、地址解析、路由選擇、以及差錯控制等關鍵環節,因此對ICMPv6協議的安全性進行深入分析尤為重要。
(一)通告網路錯誤。比如,某台主機或整個網路由於某些故障不可達。如果有指向某個埠號的TCP或UDP包沒有指明接受端,這也由ICMP報告。
(二)通告網路擁塞。當路由器緩存太多包,由於傳輸速度無法達到它們的接收速度,將會生成“ICMP源結束”信息。對於發送者,這些信息將會導致傳輸速度降低。當然,更多的ICMP源結束信息的生成也將引起更多的網路擁塞,所以使用起來較為保守。
(三)協助解決故障。ICMP支持Echo功能,即在兩個主機間一個往返路徑上發送一個包。Ping是一種基於這種特性的通用網路管理工具,它將傳輸一系列的包,測量平均往返次數並計算丟失百分比。
(四)通告超時。如果一個IP包的TTL降低到零,路由器就會丟棄此包,這時會生成一個ICMP包通告這一事實。TraceRoute是一個工具,它通過發送小TTL值的包及監視ICMP超時通告可以顯示網路路由。
ICMPv6除了具備IPv4ICMP的基本功能外,還包含以下兩個功能:
(1)組播收聽發現協議(MLD,MulticastListenerDiscovery)
該協議完成子網內的組播成員管理。MLD協議定義了3條ICMPv6消息:
組播收聽查詢消息:組播路由器向子網內的組播收聽者發送此消息,以獲取組播收聽者的狀態。
組播收聽者報告消息:組播收聽者向組播路由器彙報當前狀態,包括離開某個組播組。
組播收聽者離開消息:組播收聽者通告組播路由器自己已經離離開某個組播組。
(2)鄰居發現協議(NeighborDiscovery)
鄰居發現協議實現了IPv6種的地址解析協議(ARP)、ICMPv6路由器發現協議以及ICMPv6重定向消息的功能,用來管理同一鏈路上結點間的通信。
該協議定義五條ICMPv6消息:
路由器通告消息:該路由器以組播方式向所在鏈路發送,宣告其可用性及其相關的輓留過配置參數。該消息發送有兩種方式,一種是非請求、周期性的路由器通告;另一種是請求的路由器通告,即收到主機發出的路由器請求後作為應答發出。
路由器請求消息:該消息由主機向本地路由器發出,要求其立即發送路由器通告消息。
鄰居請求消息:結點發送鄰居請求消息來請求鄰居的鏈路層地址,以驗證它先前所獲得並保存在緩存中的鄰居鏈路層地址的可達性,或者驗證自己的地址在本地鏈路上是否唯一。
鄰居通告消息:結點在收到鄰居請求消息或鏈路層地址改變時,發送鄰居通告消息,向鄰結點通告自己的鏈路地址信息。
重定向消息:路由器發送重定向消息告訴主機重新定向它發送分組到目的結點的路徑。