Open Shortest Path First(OSPF) Basics
在1個大型網絡中,假如不是所有的設備都是Cisco的,EIGRP明顯就不行,因為它是私有的.所以就可以使用OSPF協議或者路由redistribution(路由協議之間的翻譯服務).OSPF使用Dijkstra算法,是1種鏈路狀態協議.OSPF匯聚快速,支持多個耗費相同的路徑.和EIGRP不同的是,OSPF只支持IP路由.OSPF也能夠設計網絡為層次化的,這樣就把1個大的網絡分割成幾個小的網絡,叫做區域(area).這是OSPF最好的設計方法.把OSPF設計成層次化的好處是:
1.減少路由成本(overhead)
2.加速匯聚
3.把大網絡分割成小的區域
下面是1個典型的OSPF設計圖,如下:
注意這個圖,BR為骨幹router(backbone router,BR),連接到這個骨幹的為區域0或者骨幹區域(backbone area),OSPF必須要有個區域0所有的router應該盡可能的連接到這個區域.連接其他區域到骨幹區域的為區域邊界router(area border router,ABR),ABR必須至少有1個接口位於區域0中.OSPF運行在1個AS中,而且能夠連接多個AS,連接多個AS的router為自治系統邊界router(autonomous system boundary router,ASBR)
OSPF Terminology
來看一些OSPF的術語:
1.link:網絡或分配給網絡的router的接口.當接口被加到OSPF的進程中以後,OSPF把它認為成是1條連接(link)
2.Router ID(RID):用來鑒別router的IP地址,Cisco通過使用迴環(loopback)接口的最高的IP地址來鑒別router.如果迴環接口沒有配置IP地址,OSPF將選擇所有物理接口中最高的IP地址
3.neighbors:2個或多個擁有連接到某個網絡的接口的router
4.adjacency:允許直接進行路由更新的運行了OSPF的2個router的關係.不像EIGRP,OSPF直接和建立了adjacency關係的鄰居共享路由信息.並不是所有的鄰居都是djacency關係,這個取決於網絡類型和router的配置
5.neighborship database:所有運行OSPF的能夠接收Hello信息的router的名單列表.各種信息,包括RID和狀態等,都保持在每個router的neighborship
database中
6.topology database:包含了從鏈路狀態通告(link state advertisement,LSA)包得來的信息.router把它輸入到Dijkstra算法中算出最短路徑
7.link state advertisement:共享在運行了OSPF的router之間的鏈路狀態和路由信息.router和與它建立了adjacency關係的交換LSA包
8.designated router(DR):多路訪問網絡中為避免router間建立完全相鄰關係而引起大量開銷,OSPF在區域中選舉一個DR,每個router都與之建立完全相鄰關係.router用Hello信息選舉一個DR.在廣播型網絡裏Hello信息使用多播地址224.0.0.5週期性廣播,併發現鄰居.在非廣播型多路訪問網絡中,DR負責向其他router逐一發送Hello信息
9.backup designated router(BDR):多路訪問網絡中DR的備用router,BDR從擁有adjacency關係的router接收路由更新,但是不會轉發LSA更新
10.OSPF areas:連續的網絡和router的分組.在相同區域的router共享相同的area ID.因為1個router1次可以成為1個以上的區域的成員, area ID和接口産生關聯,這就允許了某些接口可以屬於區域1,而其他的屬於區域0.在相同的區域的router擁有相同的拓撲表.當你配置OSPF的時候,記住必須要有個區域0,而且這個一般配置在連接到骨幹的那個router上.區域扮演著層次話網絡的角色
11.boradcast(multi-access):廣播型(多路訪問)網絡.比如以太網,允許多個設備連接,訪問相同的網絡;而且提供廣播的能力.在這樣的網絡中必須要有1個DR和BDR
12.nonbroadcast multi-access(NBMA):這類網絡類型有幀中繼(Frame Relay),X.25和異步傳輸模式(Asynchronous Transfer Mode,ATM),這類網絡允許多路訪問,但是不提供廣播能力
13.point-to-point:點對點網絡.一個物理上的串行電路連接或者是邏輯上的,不需要DR和 BDR,鄰居是自動發現的
14.point-to-multipoint:點對多點網絡.不需要DR和BDR
SPF Tree Calculation
在1個區域內,每個router計算最佳最短的路徑,這個計算是基於拓撲數據庫裏的信息和最短路徑優先(shortest path first,SPF)算法的
SPF算法是OSPF的基礎.當router啟動後,它就初始化路由協議數據結構,然後等待下層協議關於接口已可用的通知信息.當router確認接口已準備好,就用OSPF Hello信息來獲取鄰居信息,即具有在共同的網絡上接口的router.router向鄰居發送Hello包並接收它們的Hello包.除了幫助學習鄰居外,Hello包也有keep-alive的功能
在多路訪問網絡中,Hello選出一個DR和一個BDR.DR負責為整個網絡生成LSA,它可以減少網絡通信量和拓撲數據庫的大小
當兩個相鄰router的鏈結狀態數據庫同步後,就稱為鄰接.在多路訪問網絡中,DR決定哪些router應該相鄰接,拓撲數據庫在鄰接router間進行同步.鄰接控制路由協議包的分發,只在鄰接點間交換
每個router週期性地發送LSA,提供其鄰接點的信息或當其狀態改變時通知其它router.通過對已建立的鄰接關係和鏈結狀態進行比較,失效的router可以很快被檢測出來,網絡拓撲相應地更動.從LSA生成的拓撲數據庫中,每個router計算最短路徑樹,以自己為根.這個最短路徑樹就生成了路由表
Cisco使用基於帶寬的度,而其他廠商是用不同的標準來痕量度的.Cisco痕量度的公式為100,000,000/帶寬(bps).比如100Mbps的快速以太網接口的耗費就為1,10Mbps的就為10,64Kbps的耗費為1563.可以使用ip ospf cost命令來修改耗費,值的範圍是1到65535
1.減少路由成本(overhead)
2.加速匯聚
3.把大網絡分割成小的區域
下面是1個典型的OSPF設計圖,如下:
注意這個圖,BR為骨幹router(backbone router,BR),連接到這個骨幹的為區域0或者骨幹區域(backbone area),OSPF必須要有個區域0所有的router應該盡可能的連接到這個區域.連接其他區域到骨幹區域的為區域邊界router(area border router,ABR),ABR必須至少有1個接口位於區域0中.OSPF運行在1個AS中,而且能夠連接多個AS,連接多個AS的router為自治系統邊界router(autonomous system boundary router,ASBR)
OSPF Terminology
來看一些OSPF的術語:
1.link:網絡或分配給網絡的router的接口.當接口被加到OSPF的進程中以後,OSPF把它認為成是1條連接(link)
2.Router ID(RID):用來鑒別router的IP地址,Cisco通過使用迴環(loopback)接口的最高的IP地址來鑒別router.如果迴環接口沒有配置IP地址,OSPF將選擇所有物理接口中最高的IP地址
3.neighbors:2個或多個擁有連接到某個網絡的接口的router
4.adjacency:允許直接進行路由更新的運行了OSPF的2個router的關係.不像EIGRP,OSPF直接和建立了adjacency關係的鄰居共享路由信息.並不是所有的鄰居都是djacency關係,這個取決於網絡類型和router的配置
5.neighborship database:所有運行OSPF的能夠接收Hello信息的router的名單列表.各種信息,包括RID和狀態等,都保持在每個router的neighborship
database中
6.topology database:包含了從鏈路狀態通告(link state advertisement,LSA)包得來的信息.router把它輸入到Dijkstra算法中算出最短路徑
7.link state advertisement:共享在運行了OSPF的router之間的鏈路狀態和路由信息.router和與它建立了adjacency關係的交換LSA包
8.designated router(DR):多路訪問網絡中為避免router間建立完全相鄰關係而引起大量開銷,OSPF在區域中選舉一個DR,每個router都與之建立完全相鄰關係.router用Hello信息選舉一個DR.在廣播型網絡裏Hello信息使用多播地址224.0.0.5週期性廣播,併發現鄰居.在非廣播型多路訪問網絡中,DR負責向其他router逐一發送Hello信息
9.backup designated router(BDR):多路訪問網絡中DR的備用router,BDR從擁有adjacency關係的router接收路由更新,但是不會轉發LSA更新
10.OSPF areas:連續的網絡和router的分組.在相同區域的router共享相同的area ID.因為1個router1次可以成為1個以上的區域的成員, area ID和接口産生關聯,這就允許了某些接口可以屬於區域1,而其他的屬於區域0.在相同的區域的router擁有相同的拓撲表.當你配置OSPF的時候,記住必須要有個區域0,而且這個一般配置在連接到骨幹的那個router上.區域扮演著層次話網絡的角色
11.boradcast(multi-access):廣播型(多路訪問)網絡.比如以太網,允許多個設備連接,訪問相同的網絡;而且提供廣播的能力.在這樣的網絡中必須要有1個DR和BDR
12.nonbroadcast multi-access(NBMA):這類網絡類型有幀中繼(Frame Relay),X.25和異步傳輸模式(Asynchronous Transfer Mode,ATM),這類網絡允許多路訪問,但是不提供廣播能力
13.point-to-point:點對點網絡.一個物理上的串行電路連接或者是邏輯上的,不需要DR和 BDR,鄰居是自動發現的
14.point-to-multipoint:點對多點網絡.不需要DR和BDR
SPF Tree Calculation
在1個區域內,每個router計算最佳最短的路徑,這個計算是基於拓撲數據庫裏的信息和最短路徑優先(shortest path first,SPF)算法的
SPF算法是OSPF的基礎.當router啟動後,它就初始化路由協議數據結構,然後等待下層協議關於接口已可用的通知信息.當router確認接口已準備好,就用OSPF Hello信息來獲取鄰居信息,即具有在共同的網絡上接口的router.router向鄰居發送Hello包並接收它們的Hello包.除了幫助學習鄰居外,Hello包也有keep-alive的功能
在多路訪問網絡中,Hello選出一個DR和一個BDR.DR負責為整個網絡生成LSA,它可以減少網絡通信量和拓撲數據庫的大小
當兩個相鄰router的鏈結狀態數據庫同步後,就稱為鄰接.在多路訪問網絡中,DR決定哪些router應該相鄰接,拓撲數據庫在鄰接router間進行同步.鄰接控制路由協議包的分發,只在鄰接點間交換
每個router週期性地發送LSA,提供其鄰接點的信息或當其狀態改變時通知其它router.通過對已建立的鄰接關係和鏈結狀態進行比較,失效的router可以很快被檢測出來,網絡拓撲相應地更動.從LSA生成的拓撲數據庫中,每個router計算最短路徑樹,以自己為根.這個最短路徑樹就生成了路由表
Cisco使用基於帶寬的度,而其他廠商是用不同的標準來痕量度的.Cisco痕量度的公式為100,000,000/帶寬(bps).比如100Mbps的快速以太網接口的耗費就為1,10Mbps的就為10,64Kbps的耗費為1563.可以使用ip ospf cost命令來修改耗費,值的範圍是1到65535
OSPF使用wildmask來進行配置,如下:
RouterA(config)#router
ospf 1
RouterA(config-router)#network
10.0.0.0 0.255.255.255 area 0
如上,0.255.255.255為wildmask,0的部分表示必須精確匹配,255表示為任意匹配.network 10.0.0.0 0.255.255.255 area 0這個命令的作用是:鑒定OSPF操作的接口,而且也會加進OSPF LSA通告的範圍呢.OSPF使用這個命令查找所有處在10.0.0.0的網絡裏的接口,然後把它們放進區域0
來看1個配置實例,如圖:
RouterA(config)#router
ospf 1
RouterA(config-router)#network
10.0.0.0 0.255.255.255 area 0
如上,0.255.255.255為wildmask,0的部分表示必須精確匹配,255表示為任意匹配.network 10.0.0.0 0.255.255.255 area 0這個命令的作用是:鑒定OSPF操作的接口,而且也會加進OSPF LSA通告的範圍呢.OSPF使用這個命令查找所有處在10.0.0.0的網絡裏的接口,然後把它們放進區域0
來看1個配置實例,如圖: