OSPF(open shortest path first)開放式最短路徑優先協議,它是基於鏈路狀態的路由協議,使用IP頭中協議號89
OSPF的操做或者說原理:
1.發送HELLO報文,創建鄰接關係 用show ip ospf neighbor命令看到state項是FULL則表示已創建鄰接關係
2.經過泛洪LSA通告造成相同的鏈路狀態數據庫
3.使用SPF算法造成路由表
OSPF使用SPF算法來避免環路,每臺路由器都造成以本身爲根的樹
OSPF路由器都須要提供一個路由器ID,CISCO路由器經過兩個方法來獲得它們的router ID
1.路由器首先選取它全部的lookup接口上數值最高的IP地址
2.若是路由器上沒有配置lookup接口,那麼路由器將選取它全部物理接口上數值最高的IP地址,用做路由器ID的接口不必定要運行OSPF協議
OSPF的HELLO協議
1.它是發現鄰居路由器的方法
2.在兩臺路由器成爲鄰居以前須要經過HELLO報文協議通告這兩臺路由器必須相互承認的幾個參數
3.HELLO報文在鄰居路由器之間擔當keepalive角色
4.它確保了路由器之間的雙向通訊
5.它用來在廣播網絡或非廣播多址網絡上選取DR與BDR
HELLO報文包含的信息
1.始發路由器的路由器ID
2.始發路由器接口的區域ID
3.始發路由器接口的子網掩碼
4.始發路由器接口的認證類型與認證信息
5.始發路由器的HELLO時間間隔
6.始發路由器接口的路由器無效時間間隔
7.路由器的優先級
8.DR與BDR
9.始發路由器的全部有效鄰居的路由器ID
OSPF的網絡類型
1.點對點網絡(point-to-point) 在點到點網絡上的有效鄰居老是造成鄰接關係,發送OSPF報文的目的地址也老是224.0.0.5(串口)
2.廣播型網絡(Broadcast) 是多址網絡,要選舉DR與BDR(以太口網絡)
3.非廣播多址(NBMA)網絡 須要選舉DR與BDR,而且全部的OSPF報文都是單播的
4.點到多點網絡(Point-to-Multipoint) 在這種網絡上不須要選舉DR與BDR
5.虛鏈路(VirtualLinks) 在虛鏈路上OSPF報文是經單播方式發送的
全部的網絡均可以概括爲傳送網絡與末梢網絡兩種
DR與BDR的選取過程
1.路由器和它的鄰居路由器之間首先成功創建雙向通訊,即2-way狀態,接着檢查每臺鄰居路由器發送的HELLO報文的優先級、
DR、BDR字段,列出全部具備DR和BDR選取資格的路由器列表,路由器的優先級必須大於0纔有資格竟選
2.從具備選取資格的路由器的列表中,建立一個尚未宣告爲DR路由器的全部路由器的子集
3.若是在這個子集中的一個或者多個鄰居路由器,它們在HELLO報文的BDR字段包含了它們本身的接口地址,那麼具備最高優
先級的鄰居路由器將宣告爲BDR路由器,在優先級相同的狀況下,具備最高路由器ID的鄰居路由器將被選做BDR路由器
4.若是在這個子集中沒有路由器宣稱本身是BDR路由器,那麼具備最高優先級的鄰居路由器將被宣告爲BDR路由器,在優先級
相同的狀況下具備最高路由器ID的鄰居路由器將被選做BDR路由器
5.若是一個或多個具備選取資格的路由器在HELLO報文中DR字段包含它們本身的接口地址,那麼具備最高優先級的路由器將
被宣告爲DR路由器,在優先級相同的狀況下具備最高路由器ID的鄰居路由器將被選做DR路由器
6.若是沒有路由器宣稱本身是DR路由器,那麼新選取的BDR路由器將成爲DR路由器
當一臺OSPF路由器啓動並去發現它的鄰居路由器時,它將去檢查有效的DR與BDR路由器,若是網絡中存在DR與BDR,這臺路由器將接受DR與BDR,若是不存在再執行選取過程
OSPF的五種數據包
1.hello數據包
2.database deseription(DBD)數據庫描述包
3.Link state request(LSR)鏈路狀態請求
4.Link state update(LSU)LSA包含在LSU中
5.Link-state acknowledgement(LSACK)
HELLO發送的地址爲224.0.0.5
DR/BDR的發送地址爲224.0.0.6
DR-other的發送地址爲224.0.0.5
OSPF計算COST的公式是cost=10的8次方/帶寬,不過在端口下用ip ospf cost xxx 命令來修改的話就不用這個公式了
非骨幹區域必需要連到骨幹區域0上來,它能夠提升路由的效率與網絡的穩定性,不然則要採用虛鏈路來鏈接區域
虛鏈路的條件:
1.虛鏈路必須配置在兩臺ABR路由器之間
2.配置了虛鏈路所通過的區域必須擁有所有的路由選擇信息,也叫傳送區域
3.傳送區域不能是一個末梢區域
OSPF虛鏈路的配置例子:
拓樸:R0-------R1-----------R2------------R3 R0與R1間是area0.R1與R2間是area1.R2與R3間是area2,R1的router ID
是1.1.1.1,R2的router ID是2.2.2.2
配置:R1上area 1 virtual-link 2.2.2.2
R2上area 1 virtual-link 1.1.1.1
這樣就能夠了,區域2就能夠連到骨幹區域0上來了,可用show ip ospf virtual-link
OSPF的區域
1.普通區域: 域內、域間與類型5的路由 LSA一、LSA二、LSA三、LSA四、LSA5
2.stub區域: 域內、域間 LSA一、LSA二、LSA三、LSA4
3.total stub: 域內與一條默認的域間路由
4.NSSA : 域內、域間與類型7的路由
5.total NSSA:域內、類型七、一條默認路由
OSPF類型1與類型2的區別,NSSA區域重分發的是E1與E2,非N1與N2,重分發命令red con sub me 1 met-type 1/2
E2/N2在OSPF傳播的時候cost永遠不變
E1/N1會根據所經過的網段增長cost值
OSPF的區域彙總
OSPF的域間路由彙總,在ABR上作
area x range a.b.c.d e.f.g.h 如area 1 range 10.0.0.0 255.255.192.0
OSPF的域外路由彙總,通常在ASBR上作,也可在ABR上作
summary-address a.b.c.d e.f.g.h 如summary-address 11.0.0.0 255.255.252.0
OSPF的6種LSA
1.路由器LSA:由每臺路由器產生,這個通告列出了路由器全部的鏈路與接口,並指出了它們的狀態與沿每條鏈路方向出站的代
價,這些LSA通告只會在始發區域內部泛洪 show ip ospf database router可查看全部路由器LSA通告
2.網絡LSA:是由DR路由器發出的LSA通告,它列出了全部與之相連的路由器,包括它自己,也只是在區域內泛洪
show ip ospf database network
3.網絡彙總LSA:是由ABR路由器發出的,ABR路由器發送一個網絡彙總LSA到一個區域,用來通告該區域外部的目的地址
show ip ospf database summary 雖然在一個區域內部OSPF協議是一個鏈路狀態協議,可是它卻使用了距離矢量的算法
來查找域間路由
4.ASBR彙總LSA:也是由ABR路由器始發的,ASBR彙總通告除了所通告的目的地是一個ASBR路由器而不是一個網絡外,其它
的與網絡彙總LSA都是同樣的 show ip ospf database asbr-summary
5.自主系統外部LSA:也叫外部LSA,是由ASBR路由器的,用來通告到達OSPF自主系統外部的目的地或者是到OSPF自主系統
外部的缺省路由的LSA,外部LSA通告將在整個自主系統中進行泛洪 show ip ospf database external
6.NSSA外部LSA:是指在非純末梢區域NSSA內始發於ASBR路由器的LSA通告,這個通告與自主系統外部LSA沒什麼區別,
只是它僅僅在NSSA區域內部泛洪 show ip ospf database nssa-external
OSPF的路由表查找
區域內路徑--------->區域間路徑------------>E1外部路徑------------->E2外部路徑