路由重定向
路由重定向的概念
路由重定向是基於路由器發送的,那肯定是使用RA報文。
當一個網關設備發現數據包進來的接口和出去的接口是一個接口的時候,網關設備意識到這個路徑不是最優的,走了冤枉路,其實可以不用通過自己的,就通過重定向報文告訴發送這個數據包的主機,你下次再給目標IP發送報文的時候不用將目標IP填寫成“我”,直接填寫成最優的下一跳即可。
好,我們仔細想一下,這對網關設備的要求就高了,要求路由器能判斷出數據包的轉發路徑不是最優的路徑,這怎么判斷呢?如上所說,其實很簡單,就是收到這個數據包的接口與路由后發送這個數據的接口是一個接口。
對於主機而言收到重定向報文意味着什么?
其實對於主機而言收到重定向報文意味着向在自己的路由表上添加一條主機路由,下一跳就是重定向報文當中告訴主機的下一跳。
那你說,在這個報文是否可以采取一些攻擊的機制,比如給主機一些錯誤的重定向報文,讓主機瞎重定向,讓主機無法正常使用?是可以的,在IPV4當中就用路由重定向攻擊這一種攻擊方式,其實主要是利用了IPV4當中路由重定向的時候缺乏安全驗證機制,在IPV6則加強了IPV4的路由重定向缺乏安全驗證機制的問題,主機變得警覺了,不再輕易別人(網關路由器)說的話了!從這些看,IPV4就相當於網絡的兒童時代,而IPV6就像是網絡的青年時代,不再那么容易輕易相信別人了。
路由重定向需要滿足的條件
想要路由器發送重定向報文,還要滿足一些條件的,
- 網關設備發送重定向的目標設備一定要是將自己視為下一跳的主機,換句話說,就是一定和自己處於同一個局域網當中的目標主機。
- 數據包的目標地址不能是一個組播地址。
- 入接口和路由后的出接口是一個接口的。
必須滿足以下這么幾個條件,主機才會相信:
- 源地址必須是link-local地址,也就是說重定向的RA報文的源地址是路由器的link-local地址,這用於讓主機根據自己已經保存到信息與重定向指定源IP做對比。
- HOP LIMIT字段等於255,意味着這個報文不能被其它路由器轉發。
- ICMP校驗必須有效
- ICMP code得是0
- ICMP的報文長度必須是40字節或以上
- 所有包含的選項長度必須大於0
報文分析
重點關注類型是137,以及以下兩個字段