引言:路由協議可以說是整個網絡層的核心要素,但對于一般的網絡用戶來講,可能僅僅停留在各種培訓資料上或一些模擬器上的應用,以下根據筆者的實際應用,在真實環境中通過數據包分析逐步探尋路由協議的核心,首先從最基礎的RIP路由協議說起。
RIP動態路由協議一般針對小型局域網,在大型網絡中逐步退出了。有人認為現在不必研究它了,但筆者認為任何一種歷史上存在的網絡協議都有研究的價值。下面通過兩個實驗配置分析研究。
網絡環境如圖1所示。
實驗目的:通過路由協議配置實現網絡1與網絡2互通。
實驗過程:在未配置路由協議查看路由器Router-A的路由表如下所示:只有兩個直連路由及接口地址。


圖1 網絡結構拓撲圖


在Router-A上做如下配置(因沒有指定rip版本,默認采用版本rip 1)


很明顯這里多了一條RIP動態路由,指明通向網絡2(192.168.10.0)的數據路徑直接到Switch-A的接口192.168.8.254上。
在Switch-A上查看路由表如下:


圖2 動態路由信息

當然這里也多了一條RIP動態路由,但它描述的是通向網絡172.16.0.0的數據路徑直接到Router-A 的接口192.168.8.1上。如果這樣,很明顯數據是無法到達網絡 1(172.16.6.0)上的。通過抓包數據也發現宣告的路由信息也是如此。如圖2所示。
實驗分析:在早期的網絡時代規模不大,IP地址還沒有出現緊張不夠用的狀態,所以當時開發的RIP1是一個有類路由協議,即所有的更新包中不含子網掩碼,不支持VLSM,所以就要求網絡中所有設備必須使用相同的子網掩碼,通俗說RIP1沒有子網地址的概念。例如,如果標準的B類地址中16 bit的主機號不為0,那么RIP1無法區分非零部分是一個子網號,或者是一個主機地址。比如在上述實驗中,在Router-A上雖然接入的是172.16.6.0的網絡,但對于RIP1來講它只能識別172.16.0.0 B類地址的網絡,所以發出的路由信息也是如此。
當然到了RIP2以后,以上的缺陷就被完善了。通過抓到的數據包可以清楚的看到了,重新配置動態路由協議RIP2后得到如下的路由表信息

通過抓到的數據包可以清楚的看到了此時發出的路由信息增加了子網掩碼信息了,如圖3所示。
通過以上實驗得以驗證RIPV1與RIPV2的區別所在:
(1)RIPv1以廣播地址255.255.255.255發送更新;路由在跨越主類網絡邊界(一個路由器上有多個主類網段才是主類網絡邊界)時,會自動匯總成主類網絡;不支持VLSM,更新時不攜帶掩碼信息。
(2)RIPv2:以組播地址224.0.0.9發送更新;默認情況下路由在跨越主類網絡邊界時,還是會自動匯總,但是也可以關閉自動匯總,進行手動匯總;RIPv2支持VLSM,更新發送時攜帶掩碼信息。
有點類似于ARP協議欺騙包,因為早期的協議之初都是基于信任的基礎這上,這個RIP2路由協議包的宣告都是基于正常的合理通信網絡,但一旦網絡中有惡意網絡計算機設備發送一個假的的RIP2路由協議包(錯誤的路徑指向),這樣就會導致整個網絡路徑錯誤。以上面的網絡環境為例,如果在VLAN1中有這樣一臺設備發送了一個虛假的RIP2路由協議包,就會出現如下所示的路由表。

圖3 路由信息中增加了子網掩碼信息

圖4 路由信息中增加了子網掩碼信息

細心的朋友會發現較之前多了一條路由指向,且轉發接口是一臺電腦的IP地址 192.168.8.8(如圖4所示),且它的網絡地址的子網掩碼比先前的要長,因為最長子網掩碼匹配原則,即IP網絡中當路由表中有多條條目可以匹配目的ip時,一般就采用掩碼最長(最精確)的一條作為匹配項并確定下一跳,系統會優先考慮子網掩碼長的網絡地址,這樣所有到172.16.6.0網絡的數據包都會轉發到接口192.168.8.8,當然就會導致網絡不通了。
如果在PC1上實現路由轉接,再把數據正確轉發到Router-A上,這樣整個網絡仍然是通的,只不過多了一些延遲。那么PC1就可以截獲所有到Router-A的數據了。
以上的實例只是網絡路由協議最基礎的配置,但深入探討的內容還很多。如VLAN相關、鏈路聚合、認證相關、可靠性、安全性、QOS、IPV6隧道等包括一些典型功能場景配置,后續逐步通過真實環境,分析協議數據包來探個究竟。