动态路由OSPF协议
概念
普通情况下,路由器连接必须手动去添加到某个网段的下一跳地址,每多一个网段,都需要多次手动添加到达这个网段的下一条地址,所以需要OSPF动态路由协议
OSPF协议让路由器之间自己去学习对方,自动获取到达网段的路径(构建出网络拓扑),以及在路径中选择一个相比之下最短的路径作为下一跳的地址
OSPF协议相比RIP协议不会有限制“跳数”(到达某个网段最多只能经过x个下一跳)
三张表
OSPF协议拥有三张表:邻居表、拓扑表和路由表
邻居表
显示着和路由器直接相连的路由器的ID、IP、状态、角色以及网段内的DR和BDR等信息
[Huawei-ospf-110-area-0.0.0.0]dis ospf peer
OSPF Process 110 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 10.0.12.1(GigabitEthernet0/0/0)'s neighbors
Router ID: 2.2.2.2 Address: 10.0.12.2
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.12.2 BDR: 10.0.12.1 MTU: 0
Dead timer due in 32 sec
Retrans timer interval: 5
Neighbor is up for 00:00:24
Authentication Sequence: [ 0 ]
拓扑表
显示着路由器所学习到的网段和路由器等信息,拓扑表中的每一条记录被称为(LSA)
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 338 36 80000004 1
Router 1.1.1.1 1.1.1.1 341 36 80000004 1
Network 10.0.12.2 2.2.2.2 338 32 80000002 0
路由表
显示着路由器学习到的网段、到达这个网段的下一跳IP、下一跳路由器的ID、所在的OSPF区域以及到达这个网段所需花费的距离(记录的路径是最小路径)
[Huawei]dis ospf routing
OSPF Process 110 with Router ID 1.1.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.0.12.0/24 1 Transit 10.0.12.1 1.1.1.1 0.0.0.0
Total Nets: 1
Intra Area: 1 Inter Area: 0 ASE: 0 NSSA: 0
AR1设置命令
sys
router id 1.1.1.1 #给路由器重命名
int g0/0/0 #指定路由器的接口
ip add 10.0.12.1 24 #给路由器指定接口设置IP地址
ospf 110
area 0
network 10.0.12.1 0.0.0.255 #将路由器宣告进OSPF110的area0区域
AR2设置命令
sys
router id 2.2.2.2
int g0/0/0
ip add 10.0.12.2 24
ospf 110
area 0
network 10.0.12.2 0.0.0.255
OSPF协议的报文
Hello
- 用于路由器之间互相发现彼此,建立邻居关系
DBDs(database descriptor packets)
-
在两个路由器之间选取master和slave
-
交换彼此之间的拓扑表的摘要
LSRs(link state Request)
- 请求发送缺失的拓扑表信息,拓扑表(LSDB)里面的每一条记录叫LSA(link state advertisement)
LSU(link state Update)
- 获取到缺失的拓扑表信息,对自身的拓扑表以及路由表进行更新
LSAcks
- 确认已收到更新的信息
路由器的种类
IR:区域内路由器
ABR:区域间路由器(ospf区域)
BR:骨干区域的路由器
ASBR:自治系统边界路由器(OSPF和其它区域)
区域类型
标准区域
- 周围连接着其他OSPF区域的区域,标准区域中的路由器的路由表中拥有所有区域的网段,包括和OSPF区域连接的其他非OSPF区域的网段。图中area0就需要记录180条路由信息
- 标准区域中路由器的拓扑表中的LSA(每条记录),有Type1、2、3、4、5
末梢区域(stub)
-
可能只和一个OSPF区域有连接,其余不和任何其他区域有连接,末梢区域只通过一个路由器前往其他网段,所以ospf区域以外的所有网段都可以用默认路由代替(0.0.0.0),所以路由表中只需要记录ospf所有区域网段数量+1
-
末梢区域中路由器的拓扑表中有Type1、2、3
完全末梢区域
-
只和一个OSPF区域有连接,其余不和任何其他区域有连接,末梢区域只通过一个路由器前往其他网段,所以本区域以外的所有网段都可以用默认路由代替(0.0.0.0),所以路由表中只需要记录ospf所有区域网段数量+1
-
完全末梢区域中路由器的拓扑表中有Type1、2、3(Type3只有一条)
非完全末梢区域(nssa(not so stubby area))
-
不仅和一个OSPF区域有连接,还和其他区域有连接,和其连接的其他区域的网段需要记录,而和其他OSPF区域连接的其他区域的网段可以用默认路由记录(0.0.0.0),所以路由表中需要记录ospf区域网段+和本区域连接的其它区域的网段+1,图中area88需要记录81条路由信息
-
非完全末梢区域中路由器的拓扑表中有Type1、2、3、7(其中Type3 20条、Type7 51条)
完全NSSA
-
和自己连接的其他非ospf区域的区域不和与自己有链接的ospf区域连接,所以本区域以外的ospf区域以及和本区域以外的ospf区域连接的其他区域都可以用默认路由记录(0.0.0.0),所以路由表中需要记录本区域内网段+和自己连接的其他非OSPF区域网段+1
-
完全NSSA中路由器的拓扑表中有Type1、2、3、7(其中Type3只有一条)
OSPF协议的两个路由器通信过程
发现彼此
down:还没有启动的时候。
init:有了邻居,但还没有完全同步;
2-way:知道了彼此,并且知道了对方【知道自己】
了解彼此的缺陷
修补彼此的缺陷
[Huawei-ospf-110-area-0.0.0.0]
Dec 9 2023 09:54:22-08:00 Huawei %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes
event: neighbor status changed. (ProcessId=28160, NeighborAddress=2.12.0.10, Ne
ighborEvent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init
)
[Huawei-ospf-110-area-0.0.0.0]
Dec 9 2023 09:54:31-08:00 Huawei %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes
event: neighbor status changed. (ProcessId=28160, NeighborAddress=2.12.0.10, Ne
ighborEvent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way)
[Huawei-ospf-110-area-0.0.0.0]
Dec 9 2023 09:54:43-08:00 Huawei %%01OSPF/4/NBR_CHANGE_E(l)[3]:Neighbor changes
event: neighbor status changed. (ProcessId=28160, NeighborAddress=2.12.0.10, Ne
ighborEvent=AdjOk?, NeighborPreviousState=2Way, NeighborCurrentState=ExStart)
[Huawei-ospf-110-area-0.0.0.0]
Dec 9 2023 09:55:00-08:00 Huawei %%01OSPF/4/NBR_CHANGE_E(l)[4]:Neighbor changes
event: neighbor status changed. (ProcessId=28160, NeighborAddress=2.12.0.10, Ne
ighborEvent=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState
=Exchange)
[Huawei-ospf-110-area-0.0.0.0]
Dec 9 2023 09:55:00-08:00 Huawei %%01OSPF/4/NBR_CHANGE_E(l)[5]:Neighbor changes
event: neighbor status changed. (ProcessId=28160, NeighborAddress=2.12.0.10, Ne
ighborEvent=ExchangeDone, NeighborPreviousState=Exchange, NeighborCurrentState=L
oading)
[Huawei-ospf-110-area-0.0.0.0]
Dec 9 2023 09:55:00-08:00 Huawei %%01OSPF/4/NBR_CHANGE_E(l)[6]:Neighbor changes
event: neighbor status changed. (ProcessId=28160, NeighborAddress=2.12.0.10, Ne
ighborEvent=LoadingDone, NeighborPreviousState=Loading, NeighborCurrentState=Ful
l)
区域内路由器的通信
[Huawei]dis ospf peer
OSPF Process 110 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 10.0.9.1(GigabitEthernet0/0/0)'s neighbors
Router ID: 2.2.2.2 Address: 10.0.9.2
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.9.1 BDR: 10.0.9.2 MTU: 0
Dead timer due in 30 sec
Retrans timer interval: 0
Neighbor is up for 00:00:00
Authentication Sequence: [ 0 ]
Router ID: 3.3.3.3 Address: 10.0.9.3
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.9.1 BDR: 10.0.9.2 MTU: 0
Dead timer due in 29 sec
Retrans timer interval: 5
Neighbor is up for 00:00:46
Authentication Sequence: [ 0 ]
Router ID: 4.4.4.4 Address: 10.0.9.4
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.9.1 BDR: 10.0.9.2 MTU: 0
Dead timer due in 38 sec
Retrans timer interval: 0
Neighbor is up for 00:00:47
Authentication Sequence: [ 0 ]
同一网段的路由器中会选出一个DR和BDR,网段内所有数据都是通过DR进行交换 (DR和BDR可以方便管理网段内数据包的流通,减少资源浪费,提高性能)
图中AR10是DR,AR11是BDR。非DR和BDR的路由器AR12和AR13只会发现彼此,并不会彼此交换数据,他们在彼此的邻居表中都是2-way的状态,而DR和BDR都是full的状态
DR有更新时,会发送LSU给网段内所有其他路由器,也就是发到组播地址(224.0.0.5)
BDR有更新时,也会发送LSU给网段内所有其他路由器,也就是发到组播地址(224.0.0.5)
非DR和BDR有更新时,只会发送LSU给网段内的DR和BDR,也就是发到组播地址(224.0.0.6)
DR和BDR发送回应包时都是发送到224.0.0.5(网段内全部路由器),非DR和BDR发送回应包时都是发送到224.0.0.6(网段内DR和BDR)
LSA的Type(拓扑表里面每条记录的类型)
[Huawei-ospf-110]dis ospf lsdb
OSPF Process 110 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 251 36 80000004 1 -->Type1(路由器)
Router 1.1.1.1 1.1.1.1 18 48 8000000A 1
Router 3.3.3.3 3.3.3.3 420 36 80000004 1
Network 10.0.13.1 1.1.1.1 417 32 80000002 0 -->Type2(区域内其它网段)
Network 10.0.12.1 1.1.1.1 374 32 80000002 0
Sum-Net 10.44.34.0 3.3.3.3 426 28 80000001 1 -->Type3(区域间其它网段)
Sum-Net 10.44.46.0 3.3.3.3 287 28 80000002 2
Sum-Net 10.55.25.0 2.2.2.2 251 28 80000001 1
Sum-Asbr 6.6.6.6 3.3.3.3 42 28 80000001 2 -->Type4(到达(通往外部自治系统网段的路由器))
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.18.0 1.1.1.1 18 36 80000001 1 -->Type5(外部自治系统的网段)
External 192.168.67.0 6.6.6.6 44 36 80000001 1
区域类型的实验
STUB(末梢)
AR2和AR5
ospf 110
area 55
stub
AR5的拓扑表
改变前:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.55
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 34 36 80000005 1
Router 5.5.5.5 5.5.5.5 33 36 80000004 1
Network 10.55.25.5 5.5.5.5 33 32 80000002 0
Sum-Net 10.44.34.0 2.2.2.2 93 28 80000001 3
Sum-Net 10.0.13.0 2.2.2.2 93 28 80000001 2
Sum-Net 10.0.12.0 2.2.2.2 93 28 80000001 1
Sum-Net 10.44.46.0 2.2.2.2 93 28 80000001 4
Sum-Asbr 1.1.1.1 2.2.2.2 93 28 80000001 1
Sum-Asbr 6.6.6.6 2.2.2.2 93 28 80000001 4
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.67.0 6.6.6.6 1068 36 80000005 1
External 192.168.18.0 1.1.1.1 1043 36 80000005 1
改变后:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.55
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 22 36 80000005 1
Router 5.5.5.5 5.5.5.5 19 36 80000005 1
Network 10.55.25.5 5.5.5.5 20 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 79 28 80000001 1
Sum-Net 10.44.34.0 2.2.2.2 79 28 80000001 3
Sum-Net 10.0.13.0 2.2.2.2 79 28 80000001 2
Sum-Net 10.0.12.0 2.2.2.2 79 28 80000001 1
Sum-Net 10.44.46.0 2.2.2.2 79 28 80000001 4
变成末梢区域后,Type4和Type5类型的LSA不存在了,和OSPF区域连接的其他区域的网段内被合并成了一个默认路由(0.0.0.0)
完全STUB(完全末梢)
AR2和AR5
ospf 110
area 55
stub no-summary
AR5的拓扑表
改变前:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.55
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 34 36 80000005 1
Router 5.5.5.5 5.5.5.5 33 36 80000004 1
Network 10.55.25.5 5.5.5.5 33 32 80000002 0
Sum-Net 10.44.34.0 2.2.2.2 93 28 80000001 3
Sum-Net 10.0.13.0 2.2.2.2 93 28 80000001 2
Sum-Net 10.0.12.0 2.2.2.2 93 28 80000001 1
Sum-Net 10.44.46.0 2.2.2.2 93 28 80000001 4
Sum-Asbr 1.1.1.1 2.2.2.2 93 28 80000001 1
Sum-Asbr 6.6.6.6 2.2.2.2 93 28 80000001 4
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.67.0 6.6.6.6 1068 36 80000005 1
External 192.168.18.0 1.1.1.1 1043 36 80000005 1
改变后:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.55
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 12 36 80000005 1
Router 5.5.5.5 5.5.5.5 2 36 80000005 1
Network 10.55.25.5 5.5.5.5 2 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 64 28 80000001 1
变成完全末梢区域后,除了本区域内的网段,其他ospf区域内的网段和其他ospf区域连接的其他区域的网段都被合并成了一个默认路由(0.0.0.0)
NSSA(非完全末梢)
AR3、AR4和AR6
ospf 110
area 44
nssa
AR6的拓扑表
改变前:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.44
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 5 48 8000000F 1
Router 6.6.6.6 6.6.6.6 15 36 8000000A 1
Router 3.3.3.3 3.3.3.3 15 36 8000000C 1
Network 10.44.34.4 4.4.4.4 5 32 80000002 0
Network 10.44.46.6 6.6.6.6 252 32 80000007 0
Sum-Net 10.0.13.0 3.3.3.3 12 28 80000007 1
Sum-Net 10.0.12.0 3.3.3.3 12 28 80000007 2
Sum-Net 10.55.25.0 3.3.3.3 12 28 80000009 3
Sum-Asbr 1.1.1.1 3.3.3.3 12 28 80000006 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.67.0 6.6.6.6 15 36 80000006 1
External 192.168.18.0 1.1.1.1 1795 36 80000005 1
改变后:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.44
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 14 48 80000008 1
Router 6.6.6.6 6.6.6.6 22 36 80000003 1
Router 3.3.3.3 3.3.3.3 304 36 80000005 1
Network 10.44.34.4 4.4.4.4 304 32 80000002 0
Network 10.44.46.4 4.4.4.4 14 32 80000002 0
Sum-Net 10.0.13.0 3.3.3.3 364 28 80000001 1
Sum-Net 10.0.12.0 3.3.3.3 364 28 80000001 2
Sum-Net 10.55.25.0 3.3.3.3 364 28 80000001 3
NSSA 192.168.67.0 6.6.6.6 24 36 80000001 1
NSSA 0.0.0.0 3.3.3.3 364 36 80000001 1
变成NSSA区域后,Type4和Type5不存在了,多出了Type7,与其他OSPF区域连接的其他区域的网段被合并成了一个Type7的信息,与自己连接的其他区域的网段变成了Type7信息
完全NSSA
AR3、AR4和AR6
ospf 110
area 44
nssa no-summary
AR6的拓扑表
改变前:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.44
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 5 48 8000000F 1
Router 6.6.6.6 6.6.6.6 15 36 8000000A 1
Router 3.3.3.3 3.3.3.3 15 36 8000000C 1
Network 10.44.34.4 4.4.4.4 5 32 80000002 0
Network 10.44.46.6 6.6.6.6 252 32 80000007 0
Sum-Net 10.0.13.0 3.3.3.3 12 28 80000007 1
Sum-Net 10.0.12.0 3.3.3.3 12 28 80000007 2
Sum-Net 10.55.25.0 3.3.3.3 12 28 80000009 3
Sum-Asbr 1.1.1.1 3.3.3.3 12 28 80000006 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.67.0 6.6.6.6 15 36 80000006 1
External 192.168.18.0 1.1.1.1 1795 36 80000005 1
改变后:
[Huawei]dis ospf lsdb
OSPF Process 110 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.44
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 134 48 80000010 1
Router 6.6.6.6 6.6.6.6 132 36 80000004 1
Router 3.3.3.3 3.3.3.3 176 36 8000000B 1
Network 10.44.34.3 3.3.3.3 176 32 80000002 0
Network 10.44.46.6 6.6.6.6 132 32 80000002 0
Sum-Net 0.0.0.0 3.3.3.3 195 28 80000001 1
NSSA 192.168.67.0 6.6.6.6 177 36 80000001 1
NSSA 0.0.0.0 3.3.3.3 193 36 80000003 1
变成完全NSSA区域后,相比NSSA区域,还将除了本区域的其他OSPF区域的网段合并成了一个Type3