OSPF(open shortest path first)開放式最短路徑優(yōu)先協(xié)議,它是基于鏈路狀態(tài)的路由協(xié)議,使用IP頭中協(xié)議號89
OSPF的操作或者說原理:
1.發(fā)送HELLO報(bào)文,建立鄰接關(guān)系 用show ip ospf neighbor命令看到state項(xiàng)是FULL則表示已建立鄰接關(guān)系
2.通過泛洪LSA通告形成相同的鏈路狀態(tài)數(shù)據(jù)庫
3.使用SPF算法形成路由表
OSPF使用SPF算法來避免環(huán)路,每臺(tái)路由器都形成以自己為根的樹
OSPF路由器都需要提供一個(gè)路由器ID,CISCO路由器通過兩個(gè)方法來得到它們的router ID
1.路由器首先選取它所有的lookup接口上數(shù)值最高的IP地址
2.如果路由器上沒有配置lookup接口,那么路由器將選取它所有物理接口上數(shù)值最高的IP地址,用作路由器ID的接口不一定要運(yùn)行OSPF協(xié)議
OSPF的HELLO協(xié)議
1.它是發(fā)現(xiàn)鄰居路由器的方法
2.在兩臺(tái)路由器成為鄰居之前需要通過HELLO報(bào)文協(xié)議通告這兩臺(tái)路由器必須相互認(rèn)可的幾個(gè)參數(shù)
3.HELLO報(bào)文在鄰居路由器之間擔(dān)當(dāng)keepalive角色
4.它確保了路由器之間的雙向通信
5.它用來在廣播網(wǎng)絡(luò)或非廣播多址網(wǎng)絡(luò)上選取DR與BDR
HELLO報(bào)文包含的信息
1.始發(fā)路由器的路由器ID
2.始發(fā)路由器接口的區(qū)域ID
3.始發(fā)路由器接口的子網(wǎng)掩碼
4.始發(fā)路由器接口的認(rèn)證類型與認(rèn)證信息
5.始發(fā)路由器的HELLO時(shí)間間隔
6.始發(fā)路由器接口的路由器無效時(shí)間間隔
7.路由器的優(yōu)先級
8.DR與BDR
9.始發(fā)路由器的所有有效鄰居的路由器ID
OSPF的網(wǎng)絡(luò)類型
1.點(diǎn)對點(diǎn)網(wǎng)絡(luò)(point-to-point) 在點(diǎn)到點(diǎn)網(wǎng)絡(luò)上的有效鄰居總是形成鄰接關(guān)系,發(fā)送OSPF報(bào)文的目的地址也總是224.0.0.5(串口)
2.廣播型網(wǎng)絡(luò)(Broadcast) 是多址網(wǎng)絡(luò),要選舉DR與BDR(以太口網(wǎng)絡(luò))
3.非廣播多址(NBMA)網(wǎng)絡(luò) 需要選舉DR與BDR,并且所有的OSPF報(bào)文都是單播的
4.點(diǎn)到多點(diǎn)網(wǎng)絡(luò)(Point-to-Multipoint) 在這種網(wǎng)絡(luò)上不需要選舉DR與BDR
5.虛鏈路(VirtualLinks) 在虛鏈路上OSPF報(bào)文是經(jīng)單播方式發(fā)送的
所有的網(wǎng)絡(luò)都可以歸納為傳送網(wǎng)絡(luò)與末梢網(wǎng)絡(luò)兩種
DR與BDR的選取過程
1.路由器和它的鄰居路由器之間首先成功建立雙向通信,即2-way狀態(tài),接著檢查每臺(tái)鄰居路由器發(fā)送的HELLO報(bào)文的優(yōu)先級、
DR、BDR字段,列出所有具有DR和BDR選取資格的路由器列表,路由器的優(yōu)先級必須大于0才有資格竟選
2.從具有選取資格的路由器的列表中,創(chuàng)建一個(gè)還沒有宣告為DR路由器的所有路由器的子集
3.如果在這個(gè)子集中的一個(gè)或者多個(gè)鄰居路由器,它們在HELLO報(bào)文的BDR字段包含了它們自己的接口地址,那么具有最高優(yōu)
先級的鄰居路由器將宣告為BDR路由器,在優(yōu)先級相同的情況下,具有最高路由器ID的鄰居路由器將被選作BDR路由器
4.如果在這個(gè)子集中沒有路由器宣稱自己是BDR路由器,那么具有最高優(yōu)先級的鄰居路由器將被宣告為BDR路由器,在優(yōu)先級
相同的情況下具有最高路由器ID的鄰居路由器將被選作BDR路由器
5.如果一個(gè)或多個(gè)具有選取資格的路由器在HELLO報(bào)文中DR字段包含它們自己的接口地址,那么具有最高優(yōu)先級的路由器將
被宣告為DR路由器,在優(yōu)先級相同的情況下具有最高路由器ID的鄰居路由器將被選作DR路由器
6.如果沒有路由器宣稱自己是DR路由器,那么新選取的BDR路由器將成為DR路由器
當(dāng)一臺(tái)OSPF路由器啟動(dòng)并去發(fā)現(xiàn)它的鄰居路由器時(shí),它將去檢查有效的DR與BDR路由器,如果網(wǎng)絡(luò)中存在DR與BDR,這臺(tái)路由器將接受DR與BDR,如果不存在再執(zhí)行選取過程
OSPF的五種數(shù)據(jù)包
1.hello數(shù)據(jù)包
2.database deseription(DBD)數(shù)據(jù)庫描述包
3.Link state request(LSR)鏈路狀態(tài)請求
4.Link state update(LSU)LSA包含在LSU中
5.Link-state acknowledgement(LSACK)
HELLO發(fā)送的地址為224.0.0.5
DR/BDR的發(fā)送地址為224.0.0.6
DR-other的發(fā)送地址為224.0.0.5
OSPF計(jì)算COST的公式是cost=10的8次方/帶寬,不過在端口下用ip ospf cost xxx 命令來修改的話就不用這個(gè)公式了
非骨干區(qū)域必須要連到骨干區(qū)域0上來,它可以提高路由的效率與網(wǎng)絡(luò)的穩(wěn)定性,否則則要采用虛鏈路來連接區(qū)域
虛鏈路的條件:
1.虛鏈路必須配置在兩臺(tái)ABR路由器之間
2.配置了虛鏈路所經(jīng)過的區(qū)域必須擁有全部的路由選擇信息,也叫傳送區(qū)域
3.傳送區(qū)域不能是一個(gè)末梢區(qū)域
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
這樣就可以了,區(qū)域2就可以連到骨干區(qū)域0上來了,可用show ip ospf virtual-link
OSPF的區(qū)域
1.普通區(qū)域: 域內(nèi)、域間與類型5的路由 LSA1、LSA2、LSA3、LSA4、LSA5
2.stub區(qū)域: 域內(nèi)、域間 LSA1、LSA2、LSA3、LSA4
3.total stub: 域內(nèi)與一條默認(rèn)的域間路由
4.NSSA : 域內(nèi)、域間與類型7的路由
5.total NSSA:域內(nèi)、類型7、一條默認(rèn)路由
OSPF類型1與類型2的區(qū)別,NSSA區(qū)域重分發(fā)的是E1與E2,非N1與N2,重分發(fā)命令red con sub me 1 met-type 1/2
E2/N2在OSPF傳播的時(shí)候cost永遠(yuǎn)不變
E1/N1會(huì)根據(jù)所通過的網(wǎng)段增加cost值
OSPF的區(qū)域匯總
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:由每臺(tái)路由器產(chǎn)生,這個(gè)通告列出了路由器所有的鏈路與接口,并指出了它們的狀態(tài)與沿每條鏈路方向出站的代
價(jià),這些LSA通告只會(huì)在始發(fā)區(qū)域內(nèi)部泛洪 show ip ospf database router可查看所有路由器LSA通告
2.網(wǎng)絡(luò)LSA:是由DR路由器發(fā)出的LSA通告,它列出了所有與之相連的路由器,包括它本身,也只是在區(qū)域內(nèi)泛洪
show ip ospf database network
3.網(wǎng)絡(luò)匯總LSA:是由ABR路由器發(fā)出的,ABR路由器發(fā)送一個(gè)網(wǎng)絡(luò)匯總LSA到一個(gè)區(qū)域,用來通告該區(qū)域外部的目的地址
show ip ospf database summary 雖然在一個(gè)區(qū)域內(nèi)部OSPF協(xié)議是一個(gè)鏈路狀態(tài)協(xié)議,但是它卻使用了距離矢量的算法
來查找域間路由
4.ASBR匯總LSA:也是由ABR路由器始發(fā)的,ASBR匯總通告除了所通告的目的地是一個(gè)ASBR路由器而不是一個(gè)網(wǎng)絡(luò)外,其它
的與網(wǎng)絡(luò)匯總LSA都是一樣的 show ip ospf database asbr-summary
5.自主系統(tǒng)外部LSA:也叫外部LSA,是由ASBR路由器的,用來通告到達(dá)OSPF自主系統(tǒng)外部的目的地或者是到OSPF自主系統(tǒng)
外部的缺省路由的LSA,外部LSA通告將在整個(gè)自主系統(tǒng)中進(jìn)行泛洪 show ip ospf database external
6.NSSA外部LSA:是指在非純末梢區(qū)域NSSA內(nèi)始發(fā)于ASBR路由器的LSA通告,這個(gè)通告與自主系統(tǒng)外部LSA沒什么區(qū)別,
只是它僅僅在NSSA區(qū)域內(nèi)部泛洪 show ip ospf database nssa-external
OSPF的路由表查找
區(qū)域內(nèi)路徑--------->區(qū)域間路徑------------>E1外部路徑------------->E2外部路徑