一、OSPF介紹
OSPF優點:無環路、收斂快、擴充套件性好、支援認證
二、工作原理:
圖中RTA、RTB、RTC每個路由器都會生成一個LSA, 通過LSA泛洪進行互相傳送相互學習,形成LSDB (鏈路狀態通告資料庫),LSDB資料庫中存了各路由器的LSA鏈路狀態通告。然後每個路由器拿這個資料庫通過SPF算舉動進行計算(SPF最短路徑樹演算法),跟據最短路徑數型成路由表。
LSA鏈路狀態通告,包含:RouterID、網路\掩碼資訊(路由資訊)、領居(誰跟我鏈在一起的)、網路型別、cost開銷值 【領居、網路型別、cost形成拓撲】
Router-ID 是一個IPV4地址格式的唯一標識,每個RouterID 是唯一的,不能相同
RouterID:1、手動配置 2、自動選擇(不手動配的話他會自動生產一個,先從環回介面、如果沒有配環回介面,就從物理介面選擇)
LSDB資料庫: 存了各路由器的LSA鏈路狀態通告。
三、OSPF建立鄰居關係和鄰接關係
OSPF報文型別有5種:
HELLO報文,
DD(Database Description)報文,
LSR(LSA Request)報文
LSU(LSA Update)報文
LSACK(Link State Acknowledgment)報文
第一過程:
HELLO報文, 作用打招呼,用來發現、建立和維持OSPF鄰居關係, HELLOW報文是組播的型式傳送 224.0.0.5,只有相鄰的路由器啟動了OSPF都會收到HELLOW報文。沒問動OSPF的不會收到。
RTA使用HELLO發現相鄰的RTB和RTC路由器是否開啟OSPF,如果啟動了會傳送HELLO報文 並先會協商一些協議(RouterID \ 傳送HELLO報文時間等)、建立連線、每隔10秒時間會相互傳送一次HELLO報文維持連線,如要4倍的時間收不到相鄰的HELLO報文,就預設為鄰居不線上,會自動在路由表中把它刪掉
第二過程:
DD(Database Description)報文 。 資料描述報文
通過HELLO報文形成鄰居後,路由器使用DD報文來進行主從路由器的選舉和資料庫摘要資訊的互動。
DD報文:包含LSA的頭部資訊,用來描述LSDB的摘要資訊
根據RourtID大小來確認路由器的主從關係,圖上RTB是主,RTA是從
前三個DD報文確定主從關係,互相交換大家所知道的路由
確證主從關係後,兩路由器就形成鄰居關係
第三過程:
確定鄰居關係後,主路由會先傳送一個LSR的請求報名給從路由器,從路由器就把LSU的報文發給主路由,主路由收到後就會向從路由傳送一個LSACK確認報文進行確認。
反之從路由器也會發一個LSR的請求報名給主路由器,主路由器就把LSU的報名發給從路由器,從路由器收到後也會向主路由器傳送一個LSACK確認報文進行確認。
兩個主從的路由器只起到誰先請求的作用,不是說以哪個發的報文為準(誰說了算)。
LSR(LSA Request)報文, 用於向對方請求所需要的LSA
LSU(LSA Update)報文, 用於向對方傳送其所需要的LSA
LSACK(Link State Acknowledgment)報文 ,用於向對方傳送收到LSA的確認
LSACK報文確認完成後,兩路由器間就會形成鄰接關係。
四、OSPF配置
[RTA]ospf 1 router-id 1.1.1.1 #router id 在實際操作中為了嚴謹,必須要手動新增router-id。1指的是程式號
[RTA-ospf-1]area 0 #區域0 預設把路由器放到區域0裡面
[RTA-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 #宣告直連網段 反掩碼
router-id可以全域性配置,但優先順序別較低。配置命 令: [R1]router id 11.11.11.11
反掩碼計算:255.255.255.255減去當前掩碼.。如:255.255.252.0 的反掩碼是255.255.255.255 - 255.255.252.0=0.0.3.255
程式號:程式號是本地有效,若不同的路由器之間OSPF對接,兩臺路由器的OSPF程式號可以不同,這是不會有任何問題的,但是為了保證網路配置的規範性和標準化,建議還是採用相同的程式號。
配置案例1:
1)配置路由器名字和各路由器介面ip
R1:
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
R2:
[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.254
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24
R3:
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.1 24
2)配置環回介面
interface LoopBack0
R1:
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
R2:
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
R3:
[R3]interface LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
3)配置ospf
配router-Id 和區域 並宣告直連網路
R1:
[R1]ospf 1 router-id 1.1.1.1 #建立ospf的程式 1和新增router-id
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255 #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 #宣告環回地址
R2:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
4)配置完後,PC1可以ping通PC2,同時也能ping通各路由的環回地址
常用命令:
檢視OSPF協議相關執行引數 display ospf brief
檢視OSPF鄰居表 display ospf peer
檢視LSDB表 display ospf lsdb
檢視OSPF路由 display ospf routing
重啟ospf程式 reset ospf process
五、鄰居狀態機
上圖描述:
還沒建立鄰居關係,還沒開啟ospf狀態 (初始化狀態)
當開始ospf時,往外發hello報文尋找鄰居關係時,狀態為lnit
當兩個路由器都 收到對方發的hello報文後,形成2-way狀態,等同於鄰居狀態(2-Way狀態是最終的鄰居狀態)
----------------------------------------------------------------------------------------
成為鄰居關係後,大家都向外發DD報文選主從關係,變成ExStart狀態
確定主從關係後,成為Exchange狀態,各自傳送目錄資訊
目錄資訊(DD)資訊互動完後,變成Loading狀態,大家相互傳送LSR和LSU資訊和LSACK資訊
LSACK確認完後變成FULL狀態。FULL狀態是鄰接關係的最高狀態。
六、OSPF支援的網路類形
廣播型別和點對點類形
預設情況下,OSPF認為網線把兩裝置連線在一起的都是乙太網的網路類形是廣播類形。
兩裝置用串列埠線連線起來的是PPP類形的網路是點對點網路。
預設情況下,OSPF認為幀中繼NBMA、ATM的網路型別是P2MP
七、DR&BDR
DR可以減少廣播型網路中的鄰接關係的數量
如果大型網路中,每個路由器都建鄰接關係太多,當某個路由資訊發生變化時,同步時會產生大量的流量,佔用頻寬。
N*(N-1)/2,計算路由器建立鄰居關係的數量,N指路由器。
如果4個路由器都需要建6個鄰接關係。當路由器越多時建立的鄰接關係太多。
任命DR(老大),BDR(老二),其它都是DRother(小弟),像上圖
RTA和RTB是DRothers(小弟)他們不需要建立鄰接關係,只需要建立鄰居關係即可
RTC(BDR 老二)和RTD(DR老大)和小弟間形成鄰接關係就行,這樣可減少鄰接關係數量
DR&BDR的選舉
DR是基於埠的路由器優先順序的值進行選舉的。
埠優先順序由0-255,1是預設值,數值越大越優先。但0特殊優先順序,如果路由器優先順序是0,它就不參於選舉。
如果路由器埠優先順序一樣,就拿router-id進行比較
在OSPF中,如果一個網路己從埠或router-id優先順序中選舉出DR,如這個路由器埠優先順序為100,後又新增了一個新的路由器,他的埠優先順序為255,但也不能成為DR或DBR,只能當個小弟。
當DR(老大)路由器掛了,再由BDR(老二)當DR,BDRothers(小弟)中再根據埠或優先順序再選舉哪個可以成為BDR。
DR和BDR是基於路由器的埠去選舉的,同一個路由器不同介面在不同網路中狀態是不一樣的(有的是DR,有的是BDR,有的是DRother)
上圖中R8路由器的在上面的網路中EG/0/0/0介面是DR, 而在下面的網路介面E0/0/0就不是DR而是DRother
OSPF開銷值
OSPF的開銷計算公式為頻寬參考值/頻寬(介面頻寬)、
可通過bandwidth-reference命令來設定頻寬參考值
手動配置開銷值(開銷值1-65535)
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf cost 20
手動配置設定頻寬參考值,(用得少,一般都直接設定開銷值)
[R1]ospf
[R1-ospf-1]bandwidth-reference 100000
八、OSPF認證
認證有兩種 方式:MD5和密文
華為ARG3系列路由器執行OSPF時,支援兩種認證方式:區域認證和介面認證
命令:
[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 Ehong
OSPF認證實驗1:
1)、配置路由器名字和各路由器介面ip
R1:
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
R2:
[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.254 ^
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24
R3:
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.1 24
2)配置環回介面
interface LoopBack0
R1:
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
R2:
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
R3:
[R3]interface LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
3)配置ospf
配router-Id 和區域 並宣告直連網路
R1:
[R1]ospf 1 router-id 1.1.1.1 #建立ospf的程式 1和新增router-id
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255 #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 #宣告環回地址
R2:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
配置完後要進行測試保證網路是通的,如果PC1可以ping通PC2,同時也能ping通各路由的環回地址,那就對路由器介面進行加密認證
4)配置OSPF認證加密
R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 ehong
R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
配置完畢