路由協(xié)議可以說是整個網(wǎng)絡(luò)層的核心要素,但對于一般的網(wǎng)絡(luò)用戶來講,可能僅僅停留在各種培訓(xùn)資料上或一些模擬器上的應(yīng)用,當然這足以應(yīng)付一般的通級考試。但最后用在實際的網(wǎng)絡(luò)環(huán)境中少至又少,一個是因為對于小型企業(yè)及單位來講,用戶量及規(guī)模不大,最多配置一臺高級出口路由再加接入層交換機即可。
圖1 網(wǎng)絡(luò)環(huán)境
不過對于理解領(lǐng)會網(wǎng)絡(luò)路由協(xié)議的核心精髓只能停留在表面上了,以下根據(jù)本人的實際應(yīng)用,在真實環(huán)境中通過數(shù)據(jù)包分析逐步探尋路由協(xié)議的核心,當然從最基礎(chǔ)的RIP路由協(xié)議說起了。
RIP動態(tài)路由協(xié)議對應(yīng)一般小型局域網(wǎng)來說可以足以應(yīng)付了,在大型網(wǎng)絡(luò)中逐步退出了。但畢竟在它網(wǎng)絡(luò)路由發(fā)展的歷程上留下了足跡,有人認為現(xiàn)在不必研究它了,但作為初入網(wǎng)絡(luò)大門的用戶來講,對于任何一種歷史上存在的網(wǎng)絡(luò)協(xié)議都有研究的價值。下面通過兩個實驗配置來加以分析研究。
圖2 RIPv1廣播有類路由
實驗?zāi)康模和ㄟ^路由協(xié)議配置實現(xiàn)網(wǎng)絡(luò)1與網(wǎng)絡(luò)2互通。
實驗過程:在未配置路由協(xié)議查看路由器Router-A的路由表如下所示:只有兩個直連路由及接口地址。
當然這里也多了一條RIP動態(tài)路由,但它描述的是通向網(wǎng)絡(luò)172.16.0.0的數(shù)據(jù)路徑直接到Router-A 的接口192.168.8.1上。如果這樣,很明顯數(shù)據(jù)是無法到達網(wǎng)絡(luò) 1(172.16.6.0)上的。通過抓包數(shù)據(jù)也發(fā)現(xiàn)宣告的路由信息也是如此,如圖2所示。
圖3 RIPV2組播無類路由
實驗分析:在早期的網(wǎng)絡(luò)時代規(guī)模不大,IP地址還沒有出現(xiàn)緊張不夠用的狀態(tài),所以當時開發(fā)的RIP1是一個有類路由協(xié)議,即所有的更新包中不含子網(wǎng)掩碼,不支持VLSM,所以就要求網(wǎng)絡(luò)中所有設(shè)備必須使用相同的子網(wǎng)掩碼,通俗說RIP1沒有子網(wǎng)地址的概念。
例如,如果標準的B類地址中16 bit的主機號不為0,那么RIP1無法區(qū)分非零部分是一個子網(wǎng)號,或者是一個主機地址。比如在上述實驗中,在Router-A上雖然接入的是172.16.6.0的網(wǎng)絡(luò),但對于RIP1來講它只能識別172.16.0.0 B類地址的網(wǎng)絡(luò),所以發(fā)出的路由信息也是如此。
當然到了RIP2以后,以上的缺陷就被完善了。通過抓到的數(shù)據(jù)包可以清楚的看到了,重新配置動態(tài)路由協(xié)議RIP2后得到如下的路由表信息
通過抓到的數(shù)據(jù)包可以清楚的看到了此時發(fā)出的路由信息增加了子網(wǎng)掩碼信息了(如圖3)。
RIP版本2的路由更新攜帶了子網(wǎng)掩碼,所以支持VLSM。
通過以上實驗得以驗證RIPV1與RIPV2的區(qū)別所在:
1.RIPv1以廣播地址255.255.255.255發(fā)送更新;路由在跨越主類網(wǎng)絡(luò)邊界(一個路由器上有多個主類網(wǎng)段才是主類網(wǎng)絡(luò)邊界)時,會自動匯總成主類網(wǎng)絡(luò);不支持VLSM,更新時不攜帶掩碼信息。
2.RIPv2:以組播地址224.0.0.9發(fā)送更新; 默認情況下路由在跨越主類網(wǎng)絡(luò)邊界時,還是會自動匯總,但是也可以關(guān)閉自動匯總,進行手動匯總;RIPv2支持VLSM,更新發(fā)送時攜帶掩碼信息;
這個有點類似于ARP協(xié)議欺騙包,因為早期的協(xié)議之初都是基于信任的基礎(chǔ)這上,這個RIP2路由協(xié)議包的宣告都是基于正常的合理通信網(wǎng)絡(luò),但一旦網(wǎng)絡(luò)中有惡意網(wǎng)絡(luò)計算機設(shè)備發(fā)送一個假的的RIP2路由協(xié)議包(錯誤的路徑指向),這樣就會導(dǎo)致整個網(wǎng)絡(luò)路徑的錯誤了。以上面的網(wǎng)絡(luò)環(huán)境為例,如果在VLAN1中有這樣一臺設(shè)備發(fā)送了一個虛假的RIP2路由協(xié)議包,就會出現(xiàn)如下所示的路由表。
圖4 網(wǎng)絡(luò)環(huán)境
細心的朋友會發(fā)現(xiàn)較之前多了一條路由指向,且轉(zhuǎn)發(fā)接口是一臺電腦的IP地址 192.168.8.8(如圖4所示),且它的網(wǎng)絡(luò)地址的子網(wǎng)掩碼比先前的要長,因為最長子網(wǎng)掩碼匹配原則,即IP網(wǎng)絡(luò)中當路由表中有多條條目可以匹配目的IP時,一般就采用掩碼最長(最精確)的一條作為匹配項并確定下一跳(也叫最長前綴匹配,是路由器在查找路由表進行選路的算法),系統(tǒng)會優(yōu)先考慮子網(wǎng)掩碼長的網(wǎng)絡(luò)地址,這樣所有到172.16.6.0網(wǎng)絡(luò)的數(shù)據(jù)包都會轉(zhuǎn)發(fā)到接口192.168.8.8,當然就會導(dǎo)致網(wǎng)絡(luò)不通了。
不僅僅是網(wǎng)絡(luò)不通,如果在PC1上它實現(xiàn)路由轉(zhuǎn)接,它再把數(shù)據(jù)正確轉(zhuǎn)發(fā)到Router-A上,這樣對于用戶來講,整個網(wǎng)絡(luò)仍然是通的,只不過多了一些延遲。那么PC1就可以截獲所有到Router-A的數(shù)據(jù)了。
以上兩個簡單的實例只是網(wǎng)絡(luò)路由協(xié)議最基礎(chǔ)的配置,對于一般用戶可以練練手而已,但深入探討的內(nèi)容還很多,比如VLAN相關(guān)、鏈路聚合、認證相關(guān)、可靠性、安全性、QoS、IPv6隧道、GRE隧道等包括一些典型功能場景配置。后續(xù)逐步通過真實環(huán)境,分析協(xié)議數(shù)據(jù)包來探個究竟。