RIP路由協議
RIP路由協議(Routing Information Protocols,路由信息協議)是使用最廣泛的距離向量協議,它是由施樂(Xerox)在70年代開發的。當時,RIP是XNS(Xerox Network Service,施樂網路服務)協定簇的一部分。TCP/IP版本的RIP是施樂協議的改進版。RIP最大的特點是,無論實現原理還是配置方法,都非常簡單。度量方法RIP的度量是基於跳數(hops count)的,每經過一台路由器,路徑的跳數加一。如此一來,跳數越多,路徑就越長,RIP演算法會優先選擇跳數少的路徑。RIP支持的最大跳數是15,跳數為16的網路被認為不可達。
路由更新RIP路由協議中路由的更新是通過定時廣播實現的。缺省情況下,路由器每隔30秒向與它相連的網路廣播自己的路由表,接到廣播的路由器將收到的資訊添加至自身的路由表中。每個路由器都如此廣播,最終網路上所有的路由器都會得知全部的路由資訊。正常情況下,每30秒路由器就可以收到一次路由資訊確認,如果經過180秒,即6個更新週期,一個路由項都沒有得到確認,路由器就認為它已失效了。如果經過240秒,即8個更新週期,路由項仍沒有得到確認,它就被從路由表中刪除。上面的30秒,180秒和240秒的延時都是由計時器控制的,它們分別是更新計時器(_updateTimer)、無效計時器(Invalid Timer)和刷新計時器(Flush Timer)。
路由迴圈距離向量類的演算法容易產生路由迴圈,RIP路由協定是距離向量演算法的一種,所以它也不例外。如果網路上有路由迴圈,資訊就會迴圈傳遞,永遠不能到達目的地。為了避免這個問題,RIP等距離向量演算法實現了下面4個機制。
水準分割(split horizon)。水準分割保證路由器記住每一條路由資訊的來源,並且不在收到這條資訊的埠上再次發送它。這是保證不產生路由迴圈的最基本措施。
毒性逆轉(poison reverse)。當一條路徑資訊變為無效之後,路由器並不立即將它從路由表中刪除,而是用16,即不可達的度量值將它廣播出去。這樣雖然增加了路由表的大小,但對消除路由迴圈很有幫助,它可以立即清除相鄰路由器之間的任何環路。
觸發更新(trigger update)。當路由表發生變化時,更新報文立即廣播給相鄰的所有路由器,而不是等待30秒的更新週期。同樣,當一個路由器剛啟動RIP路由協議時,它廣播請求報文。收到此廣播的相鄰路由器立即應答一個更新報文,而不必等到下一個更新週期。這樣,網路拓撲的變化會最快地在網路上傳播開,減少了路由迴圈產生的可能性。
抑制計時(holddown timer)。一條路由資訊無效之後,一段時間內這條路由都處於抑制狀態,即在一定時間內不再接收關於同一目的地址的路由更新。如果,路由器從一個網段上得知一條路徑失效,然後,立即在另一個網段上得知這個路由有效。這個有效的資訊往往是不正確的,抑制計時避免了這個問題,而且,當一條鏈路頻繁起停時,抑制計時減少了路由的浮動,增加了網路的穩定性。
即便採用了上面的4種方法,路由迴圈的問題也不能完全解決,只是得到了最大程度的減少。一旦路由迴圈真的出現,路由項的度量值就會出現計數到無窮大(_countto Infinity)的情況。這是因為路由資訊被迴圈傳遞,每傳過一個路由器,度量值就加1,一直加到16,路徑就成為不可達的了。RIP路由協議選擇16作為不可達的度量值是很巧妙的,它既足夠的大,保證了多數網路能夠正常運行,又足夠小,使得計數到無窮大所花費的時間最短。
鄰居有些網路是NBMA(Non-Broad_cast MultiAccess,非廣播多路訪問)的,即網路上不允許廣播傳送資料。對於這種網路,RIP就不能依賴廣播傳遞路由表了。解決方法有很多,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一台特定的路由器。
RIP路由協議的缺陷RIP雖然簡單易行,並且久經考驗,但是也存在著一些很重要的缺陷,主要有以下幾點:
過於簡單,以跳數為依據計算度量值,經常得出非最優路由;度量值以16為限,不適合大的網路;安全性差,接受來自任何設備的路由更新;不支援無類IP位址和VLSM(Variable Length Subnet Mask,變長子網路遮罩);收斂緩慢,時間經常大於5分鐘;消耗帶寬很大。
RIP路由協定是一個經典的網路協定,在應用中也是比較廣泛的,所以對於網路工程師來說,應該是最熟悉不過的了。
路由更新RIP路由協議中路由的更新是通過定時廣播實現的。缺省情況下,路由器每隔30秒向與它相連的網路廣播自己的路由表,接到廣播的路由器將收到的資訊添加至自身的路由表中。每個路由器都如此廣播,最終網路上所有的路由器都會得知全部的路由資訊。正常情況下,每30秒路由器就可以收到一次路由資訊確認,如果經過180秒,即6個更新週期,一個路由項都沒有得到確認,路由器就認為它已失效了。如果經過240秒,即8個更新週期,路由項仍沒有得到確認,它就被從路由表中刪除。上面的30秒,180秒和240秒的延時都是由計時器控制的,它們分別是更新計時器(_updateTimer)、無效計時器(Invalid Timer)和刷新計時器(Flush Timer)。
路由迴圈距離向量類的演算法容易產生路由迴圈,RIP路由協定是距離向量演算法的一種,所以它也不例外。如果網路上有路由迴圈,資訊就會迴圈傳遞,永遠不能到達目的地。為了避免這個問題,RIP等距離向量演算法實現了下面4個機制。
水準分割(split horizon)。水準分割保證路由器記住每一條路由資訊的來源,並且不在收到這條資訊的埠上再次發送它。這是保證不產生路由迴圈的最基本措施。
毒性逆轉(poison reverse)。當一條路徑資訊變為無效之後,路由器並不立即將它從路由表中刪除,而是用16,即不可達的度量值將它廣播出去。這樣雖然增加了路由表的大小,但對消除路由迴圈很有幫助,它可以立即清除相鄰路由器之間的任何環路。
觸發更新(trigger update)。當路由表發生變化時,更新報文立即廣播給相鄰的所有路由器,而不是等待30秒的更新週期。同樣,當一個路由器剛啟動RIP路由協議時,它廣播請求報文。收到此廣播的相鄰路由器立即應答一個更新報文,而不必等到下一個更新週期。這樣,網路拓撲的變化會最快地在網路上傳播開,減少了路由迴圈產生的可能性。
抑制計時(holddown timer)。一條路由資訊無效之後,一段時間內這條路由都處於抑制狀態,即在一定時間內不再接收關於同一目的地址的路由更新。如果,路由器從一個網段上得知一條路徑失效,然後,立即在另一個網段上得知這個路由有效。這個有效的資訊往往是不正確的,抑制計時避免了這個問題,而且,當一條鏈路頻繁起停時,抑制計時減少了路由的浮動,增加了網路的穩定性。
即便採用了上面的4種方法,路由迴圈的問題也不能完全解決,只是得到了最大程度的減少。一旦路由迴圈真的出現,路由項的度量值就會出現計數到無窮大(_countto Infinity)的情況。這是因為路由資訊被迴圈傳遞,每傳過一個路由器,度量值就加1,一直加到16,路徑就成為不可達的了。RIP路由協議選擇16作為不可達的度量值是很巧妙的,它既足夠的大,保證了多數網路能夠正常運行,又足夠小,使得計數到無窮大所花費的時間最短。
鄰居有些網路是NBMA(Non-Broad_cast MultiAccess,非廣播多路訪問)的,即網路上不允許廣播傳送資料。對於這種網路,RIP就不能依賴廣播傳遞路由表了。解決方法有很多,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一台特定的路由器。
RIP路由協議的缺陷RIP雖然簡單易行,並且久經考驗,但是也存在著一些很重要的缺陷,主要有以下幾點:
過於簡單,以跳數為依據計算度量值,經常得出非最優路由;度量值以16為限,不適合大的網路;安全性差,接受來自任何設備的路由更新;不支援無類IP位址和VLSM(Variable Length Subnet Mask,變長子網路遮罩);收斂緩慢,時間經常大於5分鐘;消耗帶寬很大。
RIP路由協定是一個經典的網路協定,在應用中也是比較廣泛的,所以對於網路工程師來說,應該是最熟悉不過的了。
RIP v1與RIP v2路由協議對比分析
一、RIP V1
1、有類路由協議
2、不支持變長子網掩碼(VLSM)
3、更新方式為廣播
4、不支持認證
5、每個更新包最大支持25條路由條目
6、路由表查詢方式由大類-->小類(即先查詢主類網絡,再查詢子網號)
7、不支持不連續子網
8、不支持全0、全1子網
二、RIP V2
1、無類路由協議
2、支持變長子網掩碼(VLSM)
3、路由更新方式為多播,目的地址為224.0.0.9
4、支持明文及密文認證(思科私有)
5、每個更新包視認證方式不同,支持路由條目數為24或23條
6、路由表查詢機制是由小類-->大類(按位查詢,最長匹配、精確匹配,先檢查32位掩碼的)
7、支持不連續子網
8、支持全0、全1子網
因為無論是哪種版本的RIP路由協議,都是同屬於距離矢量路由協議的,所以周期性的更新,全路由表擴散,易產生路由環路等問題都是一樣的。
一、RIP V1
1、有類路由協議
2、不支持變長子網掩碼(VLSM)
3、更新方式為廣播
4、不支持認證
5、每個更新包最大支持25條路由條目
6、路由表查詢方式由大類-->小類(即先查詢主類網絡,再查詢子網號)
7、不支持不連續子網
8、不支持全0、全1子網
二、RIP V2
1、無類路由協議
2、支持變長子網掩碼(VLSM)
3、路由更新方式為多播,目的地址為224.0.0.9
4、支持明文及密文認證(思科私有)
5、每個更新包視認證方式不同,支持路由條目數為24或23條
6、路由表查詢機制是由小類-->大類(按位查詢,最長匹配、精確匹配,先檢查32位掩碼的)
7、支持不連續子網
8、支持全0、全1子網
因為無論是哪種版本的RIP路由協議,都是同屬於距離矢量路由協議的,所以周期性的更新,全路由表擴散,易產生路由環路等問題都是一樣的。
RIP version 2
RIP v1 的主要缺點是它沒有傳送遮罩訊息,這可由RIP路由封包結構可看出,RIP路由封包中只傳送網段號碼及距離。這點使得RIPv1無法應用於classless﹝無級式﹞網路。
由於路由封包傳送時使用廣播號碼,這會影響網路上其他設備的效率;此外,路由封包傳送時缺乏認證機制,這使得破壞者很容易傳送錯誤的路由資訊給路由器,而影響網路穩定。
RIP v1 的主要缺點是它沒有傳送遮罩訊息,這可由RIP路由封包結構可看出,RIP路由封包中只傳送網段號碼及距離。這點使得RIPv1無法應用於classless﹝無級式﹞網路。
由於路由封包傳送時使用廣播號碼,這會影響網路上其他設備的效率;此外,路由封包傳送時缺乏認證機制,這使得破壞者很容易傳送錯誤的路由資訊給路由器,而影響網路穩定。
--------- Static Route --------------
en
Conf t
ip route 192.168.3.0 255.255.255.0 192.168.2.2 ( 或 serial 0/0/0)
do show
ip route <==檢查
Router Table
-------------------------------------------
Rip 的時間:
1. Periodically sending the routing table to neighbors: 30 秒.
2. Invalid Timer: 如果對方於 180秒內均無回應,則視為 Invalid router,但該Route 仍存在於 Route table.
3. Flush Timer: 如果 Invalid Router 持續 超過 240 秒,則該Route 將會被 Route Table 移除.
4.
Holddown Timer: 持續未回應 180秒到 240秒間的時間稱為 Holddown Timer: 如果 cost
較少的會被接受,而Cost較高者不會被接受.
Rip 重要的問題:
1. Class Ful : 故無法支援 VLSM(Variable Length Subnet
Mask): 切子網段
CIDR(Classless Inter-Domain Routing): 合併子網段成一個網段.
2.不支援不連續網段:
3.會自動作子網 summary: 其目的在減少Route Table 的Rule.但容易造成Loading balance
的錯誤.
4. Rip 使用 UDP 520 Port , 使用 Boardcast 傳送 全部 route 的資料.
RIP2 則使用 Multicast (224.0.0.9)
Eigrp 則使用 Multicast(224.0.0.10)
Ospf 在 DbOther 找 DBRoot
則使用(224.0.0.6)
而
DbRoot在回覆給 DBOther 時使用 (224.0.0.5)
Max Hop
Counte 則為 15,超過則視為不可到逹.
5. Rip I 可以接收 Rip I 及 Rip II 的封包,而 Rip II 只可以接受
Rip II 的封包.
6. Rip I 在傳送 Update 給其它 Router 時,會依下列規則:
1. 如所經過的網段為同個網段(Same Major Network),則其subnet mask
會帶過去.
2. 如所經過的網段為非同個網段時,則只會帶 Classful 的 subnet mask
過去.
3. 所以如為不連續網段,則會造成 Equal cost load balance
的錯誤情況.
7. Rip I 及 Rip II 每個Update 封包可以帶最多 25個route rules.
---------
Rip Route -----------------
en
Conf T
Route
Rip
network 192.168.1.0 <==因為Rip
是 ClassFul , 所以不用指定 subnet mask,系統自動判斷為class-c
network
192.168.2.0 <==因為Rip
是 ClassFul , 所以不用指定 subnet mask,系統自動判斷為class-c
do show ip route
do
show ip protocol
----
限制 內網 FastEthernet 不要傳送 update 資訊 ---
Passive-interface FastEthernet
0/0
end
show ip protocol
---- 限制 內網 FastEthernet 不要傳送 update 資訊
---
---
在 Rip 設定傳送 default gateway ---
en
Conf T
Ip
route 0.0.0.0 0.0.0.0 192.30.2.2 (
或 Serial 0/0/0)
default-information originate
end
debug ip
rip
undebug all
Show ip route
--- 在 Rip 設定傳送 default gateway
---
---------------------------------------
-------
修改技巧 ------
---修改ip---
en
conf t
int s0/0/0
ip add 172.30.2.1
255.255.255.0
shutdown
等待出現
%LINK-5-CHANGE: Interface serial0/0/0, cha......
no shutdown <==重新生效.
-----------------------------------------------
----取消 route rip
------
no router rip
--------------------------------
------------------------------------------------------------------------------------------------
Rip 在 Route Table 中長的什麼樣子,請看一下下面的說明:
------------------------------------------------------------------------------------------------
R 192.168.5.0/24 [120/2] via 192.168.2.2, 00:00:23,
Serial 0/0/0
------------------------------------------------------------------------------------------------
1. R :指出為 Rip
2. 192.168.5.0 : 要到 192.168.5.0 網段)
3. /24 : 指出 submask.
4. [120/2] : 120指出 Rip 在 Cisco 的 AD 值, 而 2 則指出其 Metric cost 為 2 ,在 Rip下這個
Cost 指的是 Hop count
5. 00:00:23 : 上次Update 至目前己過 23秒,表示再過7秒就會再次啟動
update.
6. Serial 0/0/0 : 指出下一跳 ( next hop)所經過的
Interface是那一個.
------------------------------------------------------------------------------------------------
將 所設定的 route 丟至其它Router 的作法:
1. R2(confit)#ip route 192.168.0.0 255.255.0.0
null
2. R2(Config-router)#redistribute static
------------------------------------------------------------------------------------------------
Rip II 與 Rip I 的不同 :
------------------------------------------------------------------------------------------------
1. 在 Rip II 的封包內,有 subnet mask 的欄位,故可以帶 subnet mask.
2. 另多一個
next-hop 的欄位,可以指出最佳的出口.
3. Rip II 只可以接收 Rip II 的封包. Rip I 則可以接收 Rip I 及 Rip
II 的封包.
4. 一樣支援 auto summary, 可以用
R1(config)# router rip
R1(config-router) no auto-summary 取消 auto summary
5. 進入 Version 的作法:
R1(Config)#router rip
R1(Config-router)#version 2
en
Conf t
ip route 192.168.3.0 255.255.255.0 192.168.2.2 ( 或 serial 0/0/0)
do show
ip route <==檢查
Router Table
-------------------------------------------
Rip 的時間:
1. Periodically sending the routing table to neighbors: 30 秒.
2. Invalid Timer: 如果對方於 180秒內均無回應,則視為 Invalid router,但該Route 仍存在於 Route table.
3. Flush Timer: 如果 Invalid Router 持續 超過 240 秒,則該Route 將會被 Route Table 移除.
4.
Holddown Timer: 持續未回應 180秒到 240秒間的時間稱為 Holddown Timer: 如果 cost
較少的會被接受,而Cost較高者不會被接受.
Rip 重要的問題:
1. Class Ful : 故無法支援 VLSM(Variable Length Subnet
Mask): 切子網段
CIDR(Classless Inter-Domain Routing): 合併子網段成一個網段.
2.不支援不連續網段:
3.會自動作子網 summary: 其目的在減少Route Table 的Rule.但容易造成Loading balance
的錯誤.
4. Rip 使用 UDP 520 Port , 使用 Boardcast 傳送 全部 route 的資料.
RIP2 則使用 Multicast (224.0.0.9)
Eigrp 則使用 Multicast(224.0.0.10)
Ospf 在 DbOther 找 DBRoot
則使用(224.0.0.6)
而
DbRoot在回覆給 DBOther 時使用 (224.0.0.5)
Max Hop
Counte 則為 15,超過則視為不可到逹.
5. Rip I 可以接收 Rip I 及 Rip II 的封包,而 Rip II 只可以接受
Rip II 的封包.
6. Rip I 在傳送 Update 給其它 Router 時,會依下列規則:
1. 如所經過的網段為同個網段(Same Major Network),則其subnet mask
會帶過去.
2. 如所經過的網段為非同個網段時,則只會帶 Classful 的 subnet mask
過去.
3. 所以如為不連續網段,則會造成 Equal cost load balance
的錯誤情況.
7. Rip I 及 Rip II 每個Update 封包可以帶最多 25個route rules.
---------
Rip Route -----------------
en
Conf T
Route
Rip
network 192.168.1.0 <==因為Rip
是 ClassFul , 所以不用指定 subnet mask,系統自動判斷為class-c
network
192.168.2.0 <==因為Rip
是 ClassFul , 所以不用指定 subnet mask,系統自動判斷為class-c
do show ip route
do
show ip protocol
----
限制 內網 FastEthernet 不要傳送 update 資訊 ---
Passive-interface FastEthernet
0/0
end
show ip protocol
---- 限制 內網 FastEthernet 不要傳送 update 資訊
---
---
在 Rip 設定傳送 default gateway ---
en
Conf T
Ip
route 0.0.0.0 0.0.0.0 192.30.2.2 (
或 Serial 0/0/0)
default-information originate
end
debug ip
rip
undebug all
Show ip route
--- 在 Rip 設定傳送 default gateway
---
---------------------------------------
-------
修改技巧 ------
---修改ip---
en
conf t
int s0/0/0
ip add 172.30.2.1
255.255.255.0
shutdown
等待出現
%LINK-5-CHANGE: Interface serial0/0/0, cha......
no shutdown <==重新生效.
-----------------------------------------------
----取消 route rip
------
no router rip
--------------------------------
------------------------------------------------------------------------------------------------
Rip 在 Route Table 中長的什麼樣子,請看一下下面的說明:
------------------------------------------------------------------------------------------------
R 192.168.5.0/24 [120/2] via 192.168.2.2, 00:00:23,
Serial 0/0/0
------------------------------------------------------------------------------------------------
1. R :指出為 Rip
2. 192.168.5.0 : 要到 192.168.5.0 網段)
3. /24 : 指出 submask.
4. [120/2] : 120指出 Rip 在 Cisco 的 AD 值, 而 2 則指出其 Metric cost 為 2 ,在 Rip下這個
Cost 指的是 Hop count
5. 00:00:23 : 上次Update 至目前己過 23秒,表示再過7秒就會再次啟動
update.
6. Serial 0/0/0 : 指出下一跳 ( next hop)所經過的
Interface是那一個.
------------------------------------------------------------------------------------------------
將 所設定的 route 丟至其它Router 的作法:
1. R2(confit)#ip route 192.168.0.0 255.255.0.0
null
2. R2(Config-router)#redistribute static
------------------------------------------------------------------------------------------------
Rip II 與 Rip I 的不同 :
------------------------------------------------------------------------------------------------
1. 在 Rip II 的封包內,有 subnet mask 的欄位,故可以帶 subnet mask.
2. 另多一個
next-hop 的欄位,可以指出最佳的出口.
3. Rip II 只可以接收 Rip II 的封包. Rip I 則可以接收 Rip I 及 Rip
II 的封包.
4. 一樣支援 auto summary, 可以用
R1(config)# router rip
R1(config-router) no auto-summary 取消 auto summary
5. 進入 Version 的作法:
R1(Config)#router rip
R1(Config-router)#version 2