OSPF路由協議
OSPF路由協議概述
內部網關協議和外部網關協議
- 自治系統(
AS
):每一個區域就是一個自治系統 - 內部網關協議(
IGP
):每一個區域內的協議叫內部網關協議 - 外部網關協議(
EGP
):區域之間的網絡連接協議叫做外部網關協議
OSPF
(開放式最短路徑優先)是一個內部網關協議(簡稱IGP
),用於在單一自治系統(AS
)內決策路由。是對鏈路狀態路由協議的一種實現,隸屬內部網關協議(IGP
),故運作於自治系統內部。
OSPF工作過程
- 鄰居列表
- 鏈路狀態數據表
- 路由表
建立鄰接關係⟶鏈路狀態數據庫(學習鏈路狀態信息)⟶最短路徑樹(Dijkstra
算法)⟶路由表
OSPF區域
- 爲了適應大型的網絡,
OSPF
在AS
內劃分多個區域 - 每個
OSPF
路由只維護所在區域的完整鏈路狀態信息
區域ID
- 區域
ID
可以表示成一個十進制的數字 - 也可以表示成一個
IP
AREA 0(骨幹區域)
-
Area 0
屬於核心(骨幹區域),骨幹區域有且只有一個,每一個區域都和骨幹區域相連 - 負責區域間路由信息傳播
Router ID
OSPF
區域內唯一識別路由器的IP
地址
Router ID選取規則
- 選取路由器
loopback
接口上數值最高的IP
地址 - 如果沒有
loopback
接口,在物理端口種選取IP
地址最高的 - 也可以使用
router-id
命令指定Router ID
DR和BDR
-
DR
:負責發送信息到其他所有OSPF
路由器 BDR
:負責監控備份DR的狀態,並在當前DR
發生故障時接替其角色-
DR
失效BDR
頂替DR
- 其他路由器(
DRothers
)只和DR
及BDR
形成鄰接關係
DR和BDR的選舉方法
- 自動選舉
DR
和BDR
- 網段上
Router ID
最大的路由器將被選舉爲DR
,第二大的將被選舉爲BDR
- 網段上
- 手工選擇
DR
和BDR
- 優先級範圍是
0~255
,數值越大,優先級越高,默認爲我 - 如果優先級相同,則需要比較
Router ID
- 如果路由器的優先級被設置爲
0
,它將不參與DR
和DBR
的選舉
- 優先級範圍是
DR和BDR的選舉過程
- 路由器的優先級可以影響一個選舉過程,但是它不能強制更換已經存在的
DR
或BDR
路由器
OSPF的組播地址
- 224.0.0.5:負責將信息發送給下面的路由器
- 224.0.0.6:負責接受下面路由的信息
OSRF的度量值爲COST
COST=10的8次方/BW
(百兆/帶寬)- 最短路徑是基於接口指定的代價(
cost
)計算的
OSPF的數據報類型
OSPF數據包
- 承載在
IP
數據包內,使用協議號89
OSPF的包類型
OSPF 的包類型 |
描述 |
---|---|
Hello 包 |
用於發現和維持鄰居關係,選舉DR 和BDR |
數據庫描述包(DBD ) |
用於向鄰居發送摘要信息以同步鏈路狀態數據庫 |
鏈路狀態請求包(LSR ) |
在路由器收到包含新信息的DBD 後發送,用於請求更詳細的信息 |
鏈路狀態更新包(LSU ) |
收到LSR後發送鏈路狀態通告(LAS ),一個LSU 數據包可能包含幾個LSA |
鏈路狀態確認包(LSAck ) |
確認已經收到LSU ,每個LSA 需要被分別確認 |
OSPF啓動的第一個階段是使用Hello報文建立雙向通信的過程
Down
狀態:未激活狀態,信息交互,後激活
Init
狀態:初始化狀態,發送信息進行交換
2-Way
狀態:信息交互,並選出DR
和BDR
,單並未確認DR
和BDR
啓動的第二個階段是建立完全鄰接關係
ExStart
狀態:準啓動狀態,並確認DR
和BDR
;
Exchange
狀態:交換狀態,傳輸DBD
和LSAck
數據包
Loading
狀態:傳輸LSR
、LSU(LSA)
、LSAck
包
Full
狀態:恆定狀態,收斂
OSPF將網絡劃分爲四種類型
- 點到點網絡(
Point-to-Point
) - 廣播多路訪問網絡(
Broadcast Multiaccess,BMA
) - 非廣播多路訪問網絡(
None Broadcast Multiaccess,NBMA
) - 點到多點網絡(
Point-to-Multipoint
)
從以下幾方面考慮OSPF的使用
- 網絡規模
- 網絡拓撲
- 其他特殊要求
- 路由器自身要求
OSPF的特點
- 可適應大規模網絡
- 路由變化收斂速度塊
- 無路由環
- 支持變長子網掩碼VLSM
- 支持區域劃分
- 支持以組播地址發送協議報
OSPF與RIP的比較
OSPF |
RIP v1 |
RIP v2 |
---|---|---|
鏈路狀態路由協議 | 距離矢量路由協議 | 距離矢量路由協議 |
沒有跳數的限制 | RIP 的15 跳限制,超過15 跳 |
的路由被認爲不可達 |
支持可變長子網掩碼(VLSM) |
不支持可變長子網掩碼(VLSM) |
支持可變長子網掩碼(VLSM) |
收斂速度塊 | 收斂速度慢 | 收斂速度慢 |
使用組播發送鏈路狀態更新 | 週期性廣播更新整個路由表 | 週期性廣播更新整個路由表 |
OSPF配置命令
啓動OSPF路由進程
router ospf process-id
指定OSPF協議運行的接口和所在的區域
network address inverse-mask area area-id
(反碼)
修改接口的優先級
ip ospf priority priority
修改接口的Cost值
ip ospf cost cpst
查看路由表
show ip route
查看鄰居列表及其狀態
show ip ospf neighbor
查看OSPF的配置
show ip ospf
查看OSPF接口的數據結構
show ip ospf interface type number
現實場景中哪個做DR哪個先啓動
OSPF多區域原理與配置
生成OSPF多區域的原因
- 改善網絡的可擴展性
- 快速收斂
OSPF的三種通信量
區域通信量
- 單個區域的路由之間交換數據包構成的通信量
域間通信量 (ABR
路由)
- 不同區域的路由器之間交換數據包構成的通信量
外部通信量 (ASBR
路由)
OSPF
域內的路由器與OSPF
區域外或另一個自治系統內的路由器之間交換數據包構成的通信量
OSPF路由類型
- 區域邊界路由器
ABR
- 自治系統邊界路由器
ASBR
OSPF區域類型
- 骨幹區域
Area 0
-
非骨幹區域——根據能夠學習的路由種類來區分
- 標準區域
- 末梢區域
(stub)
- 完全末梢
(Totally stubby)
區域 - 非純末梢區域
(NSSA)
- 不同的末梢區域中跑的是不同的是
LSA
OSPF鏈路狀態數據庫的組成
- 每個路由器都創建了由每個接口、對應的相鄰節點和接口速度組成的數據庫
- 鏈路狀態數據庫中沒個條目稱爲
LSA
(鏈路狀態通告),常見的有六種LSA
類型
鏈路狀態通告(LSA)類型
類型代碼 | 描述 | 用途 |
---|---|---|
Type 1 |
路由器LSA |
由區域內的路由器發出的(所有路由器都會發出)(交互鏈路狀態) |
Type 2 |
網絡LSA |
由區域內的DR發出的(宣告網絡狀態信息)(1和2每個區域都有) |
Type 3 |
網絡彙總LSA |
ABR 發出的,其他區域的彙總鏈路通告(區域間路由信息彙總,跨區域傳輸) |
Type 4 |
ASBR 彙總LSA |
ABR 發出的,用於通告ASBR信息(告訴其他路由ASBR 位置) |
Type 5 |
AS 外部LSA |
ASBR 發出的,用於通告外部路由(通告外部路由網段信息,收集外部網段信息) |
Type 7 |
NSSA 外部LSA |
NSSA 區域內的ASBR 發出的,用於通告本區域連接的外部路由(只在NSSA 區域內存在) |
每一種區域種允許泛洪的LSA
區域類型 | 1&2 |
3 |
4&5 |
7 |
---|---|---|---|---|
骨幹區域(區域0 ) |
允許 | 允許 | 允許 | 不允許 |
非骨幹區域,非末梢區域 | 允許 | 允許 | 允許 | 不允許 |
末梢區域 | 允許 | 允許 | 不允許 | 不允許 |
完全末梢區域 | 允許 | 不允許* |
不允許 | 不允許 |
NSSA |
允許 | 允許 | 不允許 | 允許 |
OSPF常用查看命令
命令 | 功能 |
---|---|
show ip route |
查看路由表信息(直連/學習) |
show ip route ospf |
只查看OSPF 學習到的路由 |
show ip protocol |
查看OSPF 協議配置信息 |
show ip ospf |
查看OSPF 是如何配置的以及ABR 的信息 |
show ip ospf database |
查看LSDB 內的所有LSA 數據信息 |
show ip ospf interface |
查看接口上OSPF 配置的信息 |
show ip ospf neighbor |
查看OSPF 鄰居和鄰接的狀態 |
show ip ospf neighbor detail |
查看OSPF 鄰居的詳細信息(包括DR/BDR ) |
debug ip ospf adj |
查看路由器”鄰接”的整個過程 |
debug ip ospf packet |
查看每個OSPF 數據包的信息 |
clear ip route |
清空路由表 |
路由器對路由條目的選擇
- 路由器只把最優的路由條目添加到路由表
-
選擇路由條目的依據
- 管理距離
- 度量值
- 負載均衡的路由條目
末梢區域和完全末梢區域
-
滿足以下條件的區域
- 只有一個默認路由作爲其區域的出口
- 區域不能作爲虛鏈路的穿越區域
Stub
區域裏無自治系統邊界路由器ASBR
- 不是骨幹區域
Area 0
-
末梢區域
- 沒有
LSA4、5、7
通告
- 沒有
- 完全末梢區域
- 除一條LSA3的默認路由通告外,沒有
LSA3、4、5、7
通告
- 除一條LSA3的默認路由通告外,沒有
OSPF高級配置
理解路由重分發
- 一個單一
IP
路由協議是管理網絡中IP
路由的首選方案 Cisco IOS
能執行多個路由協議,每一個路由協議和該路由協議所服務的網絡屬於同一個自治系統Cisco IOS
使用路由重分發特性以交換由不同協議創建的路由信息
路由重分發的考慮
- 度量值(帶寬)
- 管理距離
重分發到OSPF域中路由的路徑類型
- 類型1的外部路徑 (
Type 1 external path, E1
) - 類型2的外部路徑 (
Type 2 external path, E2
)
路由器A有兩條到達外部目的網絡10.1.2.0的路徑
-
E1類型
- 路徑
A-B-D
的代價是25(20+5)
(優先) - 路徑
A-C-D
代價爲48(18+30)
- 路徑
- E2類型
- 路徑
A-B-D
的代價是20
- 路徑
A-C-D
的代價爲18
(優先)
- 路徑
路由重分發配置命令
redistribute protocol [metric metric-value] [metric-type type-value] [subnets]
NSSA區域
NSSA區域是OSPF RFC的補遺
- 定義了特殊的
LSA
類型7
- 提供類似
stub area
和totally stubby area
的優點 - 可以包含
ASBR
OSPF鏈路狀態通告
LSA(NSSA EXternal LSA,NSSA外部LSA)
NSSA區域重分發路由類型
N1
、N2
- 經過
NSSA
區域ABR
後轉換爲E1
、E2
(7
變成5
)
配置NSSA區域命令
area area-id nssa [no-summary]
OSPF的路徑類型
- 區域內路徑
- 區域外路徑
- 類型1的外部路徑
- 類型2的外部路徑
OSPF的路徑類型的優先級
- 區域內路徑: 優先級
1
- 區域間路徑: 優先級
2
- E1外部路徑: 優先級
3
- E2外部路徑: 優先級
4
1
表示最高的優先級,4
表示最低的優先級
OSPF虛鏈路
-
虛鏈路
- 值一條通過一個非骨幹區域連接到骨幹區域的鏈路
-
虛鏈路的目的
- 通過一個非骨幹區域連接一個區域到骨幹區域
- 通過一個非骨幹區域連接一個分段的骨幹區域
-
配置虛鏈路的規則及特點
- 虛鏈路必須配置在兩臺
ABR
路由器之間 - 傳送區域不能是一個末梢區域
- 虛鏈路的穩定性取決於其經過的區域的穩定性
- 虛鏈路有助於提供邏輯冗餘
- 虛鏈路必須配置在兩臺
- 虛鏈路的配置命令
area area-id vrtual-link router-id
總結:
OSPF域中路由的路徑類型
- E1(N1)
- E2(N2)
OSPF的四種路由類型
- DR
- BDR
- ABR
- ASBR
OSPF的五大區域
- 骨幹區域
- 標準區域
- 末梢區域
- 存末梢區域
- 非存末梢區域
OSPF的五大數據包類型
- hello
- DBD
- LSR
- LSU(LSA)
- LSACK
OSPF的六種LSA
- 路由器LSA
- 網絡LSA
- 網絡彙總LSA
- ASBR彙總LSA
- AS外部LSA
- NSSA外部LSA
OSPF的七種狀態
- Down
- init
- 2-Way
- Exstart
- Exchange
- loading
- ful