动态路由协议能够自动发现和生成路由,并在拓扑变化时及时更新路由,可以有效减少管理人员工作量,更适用于大规模网络。
自动发现、学习路由、感知拓扑变更、
1 IGP(Interior Gateway Protocols,内部网关协议):RIP、OSPF、IS-IS、思科EIGRP
2 EGP(Exterior Gateway Protocols,外部网关协议):BGP
1 (Distance Vector Routing Protocols,距离矢量路由协议):RIP
2 (Link-State Routing Protocols,链路状态路由协议):OSPF、IS-IS
由于静态路由由网络管理员手工配置,因此当网络发生变化时,静态路由需要手动调整,这制约了静态路由在现网大规模的应用。
动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中,OSPF(Open Shortest Path First,开放式最短路径优先)协议是使用场景非常广泛的动态路由协议之一。
OSPF在RFC2328中定义,是一种基于链路状态算法的路由协议。
运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。
对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这即是距离矢量算法的本质。
与距离矢量路由协议不同,链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)。
不再通告路由信息,而是LSA。
LSA描述了路由器接口的状态信息,例如接口的开销、连接的对象等。
每台路由器都会产生LSAs,路由器将接收到的LSAs放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过LSDB,掌握了全网的拓扑。
路由器将LSA存放在LSDB中。
LSDB汇总了网络中路由器对于自己接口的描述。
LSDB包含全网拓扑的描述。
查看LSDB:display ospf lsdb
环回接口是一种虚拟的逻辑接口,永远不会中断常用于做测试,本质和普通的接口没有什么区别。
创建环回接口:interface LoopBack 0-1023
区域
OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(AreaID)来标识,区域0称为OSPF的骨干区域。
Router-ID
Router-ID(Router Identifier,RID,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。
Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式。
通告
多台OSPF路由器之间。彼此动态的交换OSPF的hello消息,用来发现和维护邻居关系,将该子网参与到OSPF的动态计算中。
创建OSPF进程和RID:ospf 进程号1-65535 router-id 标识号X.X.X.X
注意:如果只创建进程,RID会自动创建
查看OSPF信息:display ospf brief
在用户视图下重启OSPF进程:reset ospf process
在OSPF进程下创建区域:area 区域号<0-4294967295>
在接口下将接口划入进程中的区域(优先级10):ospf enable 进程号 area 区域号
在OSPF进程下设置默认路由一直通告(优先级150):default-route-advertise always
查看路由器OSPF的邻接状态:display ospf peer brief
在接口下设置OSPF网络类型:ospf network-type ?
broadcast Specify OSPF broadcast network
nbma Specify OSPF NBMA network
p2mp Specify OSPF point-to-multipoint network
p2p Specify OSPF point-to-point network
在接口下修改OSPF开销值:ospf cost 开销值<1-65535>
首先在路由器AR1上配置
system-view
[AR1]ospf 1 router id 1.1.1.1 \\创建OSPF进程和RID
[AR1-ospf-1]quit
[AR1]quit
reset ospf process \\重启OSPF进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
system-view
[AR1]ospf 1
[AR1-ospf-1]area 0 \\创建区域
[AR1-ospf-1-area-0.0.0.0]quit
[AR1-ospf-1]quit
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ospf enable 1 area 0 \\将接口g0/0/0划入进程中的区域
[AR1-GigabitEthernet0/0/0]quit
[AR1]interface LoopBack 0
[AR1-LoopBack0]ospf enable 1 area 0 \\将接口LoopBack 0划入进程中的区域
[AR1-LoopBack0]quit
[AR1]interface LoopBack 1
[AR1-LoopBack1]ospf enable 1 area 0 \\将接口LoopBack 1划入进程中的区域
[AR1-LoopBack1]ospf network-type broadcast \\设置LoopBack 0接口的网络类型为广播
再在路由器AR2上配置
system-view
[AR2]ospf 1 router id 1.1.1.2 \\创建OSPF进程和RID
[AR2-ospf-1]quit
[AR2]quit
reset ospf process \\重启OSPF进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
system-view
[AR2]ospf 1
[AR2-ospf-1]area 0 \\创建区域
[AR2-ospf-1-area-0.0.0.0]quit
[AR2-ospf-1]quit
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ospf enable 1 area 0 \\将接口g0/0/0划入进程中的区域
配置完成后,会从出现很多交互信息
[AR2-GigabitEthernet0/0/0]
Jan 1 2022 14:40:20-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[0]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborE
vent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init)
[AR2-GigabitEthernet0/0/0]
Jan 1 2022 14:40:20-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborE
vent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way)
[AR2-GigabitEthernet0/0/0]
Jan 1 2022 14:40:20-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborE
vent=AdjOk?, NeighborPreviousState=2Way, NeighborCurrentState=ExStart)
[AR2-GigabitEthernet0/0/0]
Jan 1 2022 14:40:20-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[3]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborE
vent=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState=Exchan
ge)
[AR2-GigabitEthernet0/0/0]
Jan 1 2022 14:40:20-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[4]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborE
vent=ExchangeDone, NeighborPreviousState=Exchange, NeighborCurrentState=Loading)
[AR2-GigabitEthernet0/0/0]
Jan 1 2022 14:40:20-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[5]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborE
vent=LoadingDone, NeighborPreviousState=Loading, NeighborCurrentState=Full)
查看邻接状态
[AR2]display ospf peer brief
抓包查看可以看见路由器之间的LSA的交互
查看LSDB
display ospf lsdb
查看LSDB中标识号1.1.1.1的路由器信息
display ospf lsdb router 1.1.1.1
每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的优选路径。
最后,路由器将计算出来的优选路径,加载进自己的路由表(Routing Table)。
每台路由器根据SPF计算结果,将路由加载入路由表。
查看路由器AR2的路由表
[AR2]display ip routing-table
发现有两条OSPF信息,说明配置成功。