RIP:
一、路由信息協議(Routing Information Protocol,縮寫:RIP)採用距離矢量算法,以跳數做爲網絡度量值,網絡直徑不超過15跳,適合於中小型網絡。16跳時認爲網絡不可達。
二、使用UDP報文進行路由信息的交換,使用的端口號爲520。目前RIP共有三個版本,RIPv1(無子網無認證、廣播), RIPv2(可無類別域間路由、MD5認證、組播224.0.0.9), RIPng(適用於IPv6)。
三、運行原理:
初始化——RIP初始化時,會從每一個參與工做的接口上發送請求數據包。該請求數據包會向全部的RIP路由器請求一份完整的路由表。請求信息(能夠是請求一條路由的信息),應答信息(必定是所有的路由)
接收請求——RIP有兩種類型的消息,響應和接收消息。請求數據包中的每一個路由條目都會被處理,從而爲路由創建度量以及路徑。RIP採用跳數度量,值爲1的意爲着一個直連的網絡,16爲網絡不可達。路由器會把整個路由表做爲接收消息的應答返回。
接收到響應——路由器接收並處理響應,它會經過對路由表項進行添加,刪除或者修改做出更新。
常規路由更新和定時——路由器以30秒一次地將整個路由表以應答消息地形式發送到鄰居路由器。
觸發路由更新——當某個路由度量發生改變時,路由器只發送與改變有關的路由,並不發送完整的路由表(注意了)。
四、定時器:
路由器收到新路由或者現有路由地更新信息時(Update定時器決定間隔),會設置一個180秒地超時時間(Timeout定時器)。若是180秒沒有任何更新信息,路由的跳數設爲16。路由器以度量值16宣告該路由直到刷新計時器從路由表中刪除該路由。
刷新計時器(Garbage-Collect定時器)的時間設爲240秒,或者比Timeout定時器多60秒。過了這個時間即刪除路由。
Cisco還用了第三個計時器,稱爲抑制計時器(Suppress定時器)。接收到一個度量更高的路由以後的180秒時間就是抑制計時器的時間,在此期間,路由器不會用它接收到的新信息對路由表進行更新,這樣可以爲網路的收斂提供一段額外的時間。
五、防止路由環路:
計數到無窮(定義16跳)、水平分割(從某接口來的數據包不發回此接口)、毒性逆轉(從某接口收到數據包後定義該路由爲16併發回)、觸發更新(一旦某條路由的度量值改變,即立馬發送更新報文)。
六、路由表字段:
目的地址、下一跳地址、出接口、度量值、路由時間、路由標記。
七、擴展:
TRIP(Triggered RIP,觸發路由信息協議)是RIP協議在WAN(Wide Area Network,廣域網)上的擴展:爲了將路由管理開銷減到最小,路由信息被看成觸發更新發送而不是按期廣播。
八、參考地址:http://www.h3c.com.cn/Products___Technology/Technology/Router/Other_technology/Technology_recommend/200805/605876_30003_0.htm
http://baike.baidu.com/link?url=eoIWw1jihoV2W9jUVeK9UamVeTLzpMYvC_bANoQ5ZB1whqdjRzt-v4nJMN-e2H1_p7vZTWxcans80ACJKV4y7q
php
OSPF:
一、OSPF(Open Shortest Path First,開放最短路徑優先)是基於鏈路狀態的內部網關協議,目前針對IPv4協議使用的是OSPFv2,OSPFv3支持IPv6。支持各類規模的網絡,最多可支持幾百臺路由器,從SPF算法自己保證了不會生成自環路由。
二、數據包:
Hello-用於創建和維護相鄰的兩個OSPF路由器的關係,該數據包是週期性地發送的。
Database Description-用於描述整個數據庫,該數據包僅在OSPF初始化時發送。
Link state request-用於向相鄰的OSPF路由器請求部分或所有的數據,這種數據包是在當路由器發現其數據已通過期時才發送的。
Link state update-這是對link state請求數據包的響應,即一般所說的LSA數據包。
Link state acknowledgment-是對LSA數據包的響應。
三、鏈路狀態算法:
當路由器初始化或當網絡結構發生變化(例如增減路由器,鏈路狀態發生變化等)時, 路由器會產生鏈路狀態廣播數據包LSA(Link-State Advertisement), 該數據包裏包含路由器上全部相連鏈路,也即爲全部端口的狀態信息。
全部路由器會經過一種被稱爲刷新(Flooding)的方法來交換鏈路狀態數據。 Flooding是指路由器將其LSA數據包傳送給全部與其相鄰的OSPF路由器, 相鄰路由器根據其接收到的鏈路狀態信息更新本身的數據庫,並將該鏈路狀態信息轉送給與其相鄰的路由器, 直至穩定的一個過程。
當網絡從新穩定下來,也能夠說OSPF路由協議收斂下來時, 全部的路由器會根據其各自的鏈路狀態信息數據庫計算出各自的路由表。 該路由表中包含路由器到每個可到達目的地的Cost以及到達該目的地所要轉發的下一個路由器(next-hop)。
OSPF路由協議針對每個區域分別運行一套獨立的計算法則,對於ABR來講, 因爲一個區域邊界路由器同時與幾個區域相聯,所以一個區域邊界路由器上會同時運行幾套OSPF計算方法, 每個方法針對一個OSPF區域。
四、路由器分類:
內部路由器:
區域邊界路由器:具備相連的每個區域的網絡結構數據, 而且瞭解如何將該區域的鏈路狀態信息廣播至骨幹區域,再由骨幹區域轉發至其他區域。
AS邊界路由器:與AS外部的路由器互相交換路由信息的OSPF路由器。
指定路由器-DR:處於一個網段的中心地位,同一網段上的OSPF路由器創建相鄰關係。產生所處的網段的所有路由鏈路數據包network link,並flooding。
Hello數據包在一個廣播性網段上選出一個ID最大的路由器做爲指定路由器DR, 而且選出ID次大的路由器做爲備份指定路由器BDR。網段上的其他全部路由器都只與DR及BDR創建相鄰關係。ID是指向該路由器的標識,通常是指該路由器的環回端口或是該路由器上的最小的IP地址。
五、故事:
能夠把整個網絡(一個自治系統AS)當作一個王國,這個王國能夠分紅幾個區(area),如今咱們來看看區域內的某一我的(你所在的機器root)是怎樣獲得一張世界地圖(routing table)的。
首先,你得跟你周圍的人(同一網段如129.102)創建基本聯繫。你大叫一聲「我在這!」(發HELLO報文),因而,周圍的人知道你的存在,他們也會大叫,這樣你知道周圍大概有哪些人,你與他們之間創建了鄰居(neighbor)關係,固然,他們之間也有鄰居關係。
在大家這一羣人中,最有威望(Priority優先級)的人會被推薦爲首領(Designated Router)首領與你之間是上下級關係(adjacency鄰接),它會與你創建單線聯繫,而不准你與其它鄰居有過多交往,他會說:「那樣作的話,街上太擠了」。
你只好經過首領來知道更多的消息了,首先,大家互通消息,他告訴你他知道的全部地圖的地名,你也會告訴他你現知道的地名,固然上也許只有你一個點。(Database Description數據庫描述報文)
你發現地名錶中有你缺乏的或比你新的東西,你會問他要一份更詳細的資料,他發現你的地名錶中有他須要的東西,他也會向你索求新資料。(Link State Request鏈接狀態請求報文)
固然,大家堅決果斷地將一份詳細資料發送給對方。(Link State Update鏈接狀態升級報文)收到地圖後,互相致謝表示收到了。(Link State Ack鏈接狀態響應報文)
如今,你已經盡你所能獲得一份地圖(Link State DataBase鏈接狀態數據庫),你去查找地圖把到全部地方的路挑一條最近(shortest path最短路)的,記爲一張表格(routing table路由表),固然之後查這份表格就知道到目的地的一條最近的路了。地圖也要收好,萬一表格上的某條路不通了能夠經過圖去找一條新的路。
其實跟你有聯繫的,只是周圍一羣人,外面的消息要經過首領來知道。由於你的地圖是跟首領的一致,咱們假設你是首領,你要去畫一份世界地圖。你命令全部手下向你通報消息,你能夠知道你這一羣人的任何一點點小動靜(event事件)。你手下還會有同時屬於兩羣人的傢伙(同一區內兩網段),他會告訴你另外一羣人的地圖,固然也會把大家這一羣人的地圖泄露,(不過,無所謂啦)。這樣,整個區的地圖你知道了(對於不知道的那也沒辦法,咱們盡力了)。
經過不停地交換地圖,如今,整個區的人都有一樣的地圖了,住在區邊境上的人責無旁貸地把這個區的地圖(精確到每一羣人)發送到別的區,把別的區信息發送進來。國王會把這些邊境的人命名爲骨幹(backbone area)。經過骨幹人士的不懈努力,如今,整個國家的地圖你都瞭解得一清二楚了。
有些人「裏通外國」(AS Boundary Router自治系統邊界路由器) ,他們知道一些「出國」(AS External route自治系統外部路由)的路,固然他們會把這些祕密公之與衆(import 引入),經過信息的傳遞,如今,你已經有一張完整的「世界地圖」了。
OSPF是這樣標記最短的路的:對於某個目的地,首先,考慮是否有同一區內部到目的地的路(intra area區域內),若是有,則在其中取一條離你最近的(花費最小),寫進你的表格中,這個目的地多是到本羣體某我的也多是到其餘羣體的,對於通過其餘區域的路由,你會不予考慮,跟本身人(同區域)打交道總比與外人(其餘區域)打交道好;若是沒有本區的路,你只好經過別的區域了(區域間),你只要在地圖上找最近的就是了;若是你發現目的地在國外,你也只能先把它標記到你的表格上,期待何時王國擴張到那,你就能夠把它標記到國內地圖上了。
OSPF就是這樣,給你一份「世界地圖」,而且在上面標記了最短的路,如此而已罷了。
六、參考地址:
http://bbs.net130.com/showthread.php?t=32963
http://hi.baidu.com/oplee123/item/6caf7962efd7d09dc5d24918
http://www.h3c.com.cn/Products___Technology/Technology/Router/Other_technology/Technology_recommend/200805/605874_30003_0.htm
算法
EIGRP:
一、內置三張表:路由表、拓撲表、鄰居表。可行路由在路由表(最優),而後是拓撲表(可行後繼),最後是鄰居表(相鄰路由器)。
二、使用組播地址爲224.0.0.10的hello包(持續發送,對方的hold Time爲等待對方發送hello的時間,超過即表明死亡)發現和維護鄰居關係;
Update包更新變化,需ACK確認;
Query包查詢相鄰路由表,Reply包回覆查詢;
ACK包是沒有數據的hello包,對Update\Query\Reply進行確認。
三、路由過程:
首先,EIGRP路由器之間創建鄰接關係,相互發送Full Update消息,在Update消息中包含有全部網段的路由信息。
接收到Update以後則根據這些路由信息中的metric(鄰居通告的metric + 自身到鄰居的metric)計算出metric最小的那條路由裝載進路由表,咱們稱這個最小的metric爲FD(可行距離),而後將剩下的RD(通告距離)< 該FD的路由做爲可行後繼路由裝入拓撲表,也就是說要想進入拓撲表,必須知足可行性條件:RD< FD。
一旦該EIGRP路由器檢測到某條路由失效了,則從拓撲表裏查找可行後繼路由FS,若是有FS,則在最短的時間內用這條FS來替換當前失效的路由信息,並向鄰居發出Partial Update通知鄰居這條新路由;
若是拓撲表裏沒有FS呢,則向鄰居路由器發出Query消息,問問鄰居有沒有辦法到達那個目的網段,若是鄰居路由表或拓撲表中有去往那個目的地的路由,鄰居就會單播發送Reply來回應,Reply中包含了有效路由的詳細信息,本地路由器收到後,從新計算metric,放入路由表;
若是鄰居也明確知道本身沒辦法到達那個目的地,那麼在迴應的Reply中就是「我也不知道」,本地路由器會將這條失效路由從路由表刪除;若是鄰居路由器也須要向鄰居查詢才能知道去往那個目的地的信息,那麼它會保留收到的Query,向它的全部鄰居發送新的Query,等待Reply,如此,1查10,10查百。。。。。。
接下來就涉及到Active狀態了,如上所述的狀況,當本地路由器發現某條路由失效時,則將該路由置入Active狀態,向鄰居查詢可用信息,鄰居向它的鄰居再發Query。。。咱們應該知道,EIGRP發出的Query消息是必須獲得Reply回覆的,若是得不到Reply,該路由將一直處於Active狀態,若是Active Timer超時,則發生了Stuck-in-Active,路由器會武斷的認爲鄰居路由器發生了問題,而直接把鄰居down掉,產生了誤判!
爲了防止該問題的發生,可使用timers active disable命令關掉活動計時器。
四、路由表負載均衡:
EIGRP的metric的計算公式很是複雜,通常狀況下兩條路由metric是不可能相同的。可是EIGRP能夠將metric相近的路由一塊兒放入路由表(最優的兩條),進行負載均衡。
traffic-share balanced是按照metric百分比進行負載均衡,metric小的傳輸的數據多;
traffic-share min是僅僅使用metric小的那條路由傳輸數據,另外一條儘管被放入了路由表,可是並不使用它;
默認時,忽略metric,僅僅根據數據包來輪流使用兩條路由
五、其餘說明:
使用3層IP協議號88來標識EIGRP數據包
EIGRP passive-interface 被置爲EIGRP被動接口,則該接口再也不發送和接收hello、Update消息。
經過配置EIGRP stub區域能夠限制EIGRP Query消息的傳播範圍,通常設置網絡的末梢節點爲EIGRP stub區域,可是Update消息仍是會發的。 若是在必定時間內沒有從某個鄰居那收到ACK,則向該鄰居單播重傳16次,若仍是沒有ACK確認,則認爲鄰居失效了;EIGRP在發出去的數據包中都包含有一個序列號,只有收到含有相同序列號的ACK確認消息時纔會肯定數據包已經到達鄰居路由器;
六、參考原地址:http://hi.baidu.com/oplee123/item/86bb1ae32e203ba0cf2d4f18數據庫