Part.1
引 言
本文主要介绍了OSPF的协议内容及其在列车网络中的应用。目前针对IP v4协议使用的是OSPF Version 2(RFC2328);针对IP v6协议使用OSPF Version 3(RFC2740)。如无特殊说明,本文中所指的OSPF均为OSPF Version 2。
Part.2
背 景
在OSPF(Open Shortest Path First,开放式最短路径优先)技术出现之前,网络中更多地使用RIP等路由协议,这些协议本身存在许多不足,如最大支持的跳数有限、收敛速度较慢、可扩展性差、可能出现环路等。随着互联网的不断发展,网络的规模不断增大,用户对网络可靠性的要求逐渐增加,还出现了各种不同架构的复杂网络环境,旧有的各种IGP协议已经不再满足需求。为了解决这些问题,1998年互联网工程任务组(IETF)发布了RFC 2328,定义了OSPF V2协议标准。OSPF协议包含且不限于以下的多项优点:
支持CIDR技术
CIDR,即无类别域间路由,是一种用于更好地分配IP地址和创建更灵活的网络拓扑结构的技术,能避免IP地址浪费、减少路由表大小、提高路由选择的效率。OSPF协议明确支持CIDR,这使得它能够在现代IP网络中更好地工作。
标记外部路由信息
OSPF能够标记从外部网络(如其他自治系统)引入的路由信息。这种标记有助于路由器在做出路由决策时区分内部和外部路由,从而优化路由选择。
路由更新认证
为了保障路由信息的安全性,OSPF提供了路由更新的认证机制。这可以防止未经授权的路由器向网络注入虚假的路由信息,从而避免路由环路和其他潜在的网络问题。
利用IP多播
在发送和接收路由更新时,OSPF利用IP多播地址(如224.0.0.5和224.0.0.6)来减少网络带宽的占用。
快速响应拓扑变化
OSPF协议设计得非常高效,能够迅速响应网络拓扑的变化。当网络中的链路状态发生变化时,OSPF会立即重新计算路由表,以确保网络中的路由信息是最新的和准确的。
低路由协议流量
尽管OSPF能够迅速响应拓扑变化,但它产生的路由协议流量却相对较小。这得益于OSPF的链路状态数据库同步机制和SPF算法的高效性。通过减少不必要的路由更新和冗余信息,OSPF能够降低网络中的路由协议流量,从而提高网络的性能和稳定性。
数年来,IETF的OSPF工作组对OSPF协议不断完善,提高了协议的工作效率、减少了路由流量,并增强了网络的安全性。目前,OSPF协议已经成为一种高效、可靠且安全的动态路由协议,被广泛应用于现代TCP/IP互联网环境中。
Part.3
OSPF的主要技术内容
OSPF网络类型
OSPF定义了四种网络类型,其详细内容如下表表示:
表1 OSPF网络类型
网络类型 | Point to point | Broadcast(默认) | Non-broadcast multi-access (NBMA) | Point to multipoint |
描述 | 单独连接一对路由器的网络,不选举DR1和BDR2 | 可以同时连接多于两台设备的网络,如以太网、令牌环网、FDDI3 | 诸如X.25、帧中继、ATM等,可以同时连接两台以上的路由器,但是这种网络没有广播数据包的能力 | 点到多点网络是NBMA网络的一个特殊设置,可以看作是一群点到点链路的集合,因此在该种网络上不必选举DR和BDR |
每个网络支持的最大路由器数 | 2 | 无限制 | 无限制 | 无限制 |
是否支持自动发现邻居 | 是 | 是 | 否 | 是 |
发现和Hello报文被发送到 | 224.0.0.5 | 224.0.0.5 | 邻居的IP | 224.0.0.5 |
与邻居沟通的报文被发送到 | 224.0.0.5 | 单播 | 单播 | 单播 |
LSAs报文被发送到 | 224.0.0.5 | DR/BDR独有: 224.0.0.6 全部可用: 224.0.0.5 | 单播 | 单播 |
注:
DR(Designated Router):在一个多路访问网络中,DR是唯一负责与其他路由器交换链路状态信息的路由器。它会将接收到的链路状态更新(LSU)转发给所有非DR/BDR的路由器,从而减少网络中的广播流量。
BDR(Backup Designated Router):BDR是DR的备份,当DR失效时,BDR会立即接管DR的职责,确保网络的正常运行。
FDDI(Fiber Distributed Data Interface,光纤分布式数据接口):一种使用光纤作为传输介质的高速令牌环网标准。
OSPF路由器类型
在OSPF协议中,整个网络的区域架构如下图所示:
图3.1 OSPF区域架构
参照该图,根据部署位置和功能,路由器被划分为以下类型:
内部路由器(Internal Router)
内部路由器是指其所有直接连接的网络都属于同一个区域的路由器,这些路由器运行基本路由算法的一个副本。它们不处理跨区域的路由信息,只负责在其所属区域内进行路由决策。
骨干路由器(Backbone Router)
骨干路由器是有一个接口连接到骨干区域的路由器,这包括所有连接到多个区域的路由器(即区域边界路由器)。在OSPF中,骨干区域通常被用作连接其他所有区域的中心枢纽。
区域边界路由器(Area Border Router,ABR)
区域边界路由器是连接到多个区域的路由器,它们为每个连接的区域运行基本路由算法的一个副本。区域边界路由器会将其连接的区域中的拓扑信息进行压缩,然后分发给骨干区域,骨干区域再将这些信息分发给其他区域。
自治系统边界路由器
(Autonomous System Boundary Router,ASBR)
自治系统边界路由器是与属于其他自治系统的路由器交换路由信息的路由器,这样的路由器在整个自治系统中广播自治系统外部路由信息。自治系统边界路由器的分类完全独立于前面的分类。它们可以是内部路由器或区域边界路由器,并且可能参与或不参与骨干区域。
OSPF的工作过程
运行OSPF的路由器工作过程状态机如下图:
图3.2 OSPF状态机
配置系统参数
首先要对支持OSPF协议的路由器进行系统配置,包括路由器接口配置、网络区域配置,Hello报文的发送时间间隔、Dead间隔等。
建立并维护邻居关系
在完成配置后,该路由器会首先向网络中发送Hello报文,以和其他相邻的支持OSPF的路由器建立邻居关系。建立成功后,Hello报文将会充当心跳报文,以维持和相邻路由器的邻居关系。在建立邻居关系后,还会进行DR和BDR的选举。涉及的状态有:DOWN、ATTEMPT、INIT、2-WAY。
确认邻接关系
对已经建立邻居关系的路由器,二者会检查相互的配置情况,确认是否进一步建立邻接关系。涉及的参数配置包括Hello时间间隔、Dead时间间隔、区域编号、认证情况(如果启用)、链路MTU大小、子网掩码等等。只有建立邻接关系的路由器之间才会相互交换路由信息。
交换路由信息
检查配置完成后,两台路由器会开始协商主从关系,并进行路由信息交换。涉及的状态有:EXSTART、EXCHANGE、LOADING。该过程中,双方会发送数据库描述包DD(Database Description)报文,主要描述链路状态信息,其依次承载了主从协商的信息以及数条LSA(Link State Advertisement)的摘要信息;在通过对端的DD报文得知本机未拥有的LSA后,会回应LSR(Link State Request)报文以请求完整信息;收到LSR请求的一方会发送带有路由详细信息的LSU(Link State Update),而收到LSU的另一方会回应LSAck。
完成路由信息交换
在两台路由器完成所有的路由信息交换后,二者成功建立完全的邻接关系。他们的邻接关系会在后续的OSPF通信中被广而告之。涉及的状态有:FULL。
OSPF数据包类型
OSPF定义了以下五种协议数据包类型:
Hello包
Hello包被周期性地从各个接口(包括虚链路)发出,用来建立和维护邻居关系。
图3.3 Hello包抓包示例
数据库描述包 DD
DD数据包会在邻接关系初始化后开始发送。它们描述了链路状态数据库的摘要信息(只包含LSA的头部信息)。
图3.4 DD包抓包示例
链路状态请求包 LSR
在交换数据库描述包之后,路由器便知道其自身链路状态数据库缺少哪些LSA,以及哪些LSA是过期的。这时就可以发送链路状态请求包LSR来请求对方发送缺少的LSA和最新的LSA。
图3.5 LSR包抓包示例
链路状态更新包 LSU
LSA的泛洪是通过此类型的包实现的。每一个链路状态更新包可能包含多条LSA信息。这里的LSA信息是完整的。
图3.6 LSU包抓包示例
链路状态确认包 LSAck
为了确保LSA的泛洪是可靠的,LSA信息必须被显式的确认。该类型的数据包用于对LSA信息作确认。
图3.7 LSAck包抓包示例
OSPF LSA类型
OSPF定义了11种LSA,所有类型的LSA都以一个20字节的通用LSA头部开始。这些不同类型的LSA共同描述了OSPF域内的网络拓扑结构。所有的LSA都保存在LSDB中。SPF算法根据LSDB中的信息计算出最佳路径。以下介绍几种常见的LSA。
路由器LSA(Router-LSA,Type-1 LSA)
每一台OSPF路由器生成一条路由器LSA。该LSA描述了路由器的接口状态,以及每一个接口的出站代价。
图3.8 Type-1 LSA示例
网络LSA(Network-LSA,Type2- LSA)
网络LSA是DR为了描述连接到多路访问网络并且和DR建立了完全邻接关系的路由器而生成的,包括DR本身。
图3.9 Type-2 LSA示例
汇总LSA(Summary-LSA,Type-3 LSA)
此类LSA描述了区域间的网络,由ABR生成。对于末梢区域,汇总LSA同样被用于描述默认路由。
图3.10 Type-3 LSA示例
ASBR汇总LSA
(ASBR Summary-LSA,Type-4 LSA)
此类LSA也是由ABR生成。ASBR汇总LSA通告的是一台区域外部的ASBR路由器,而不像汇总LSA通告的是区域外的网络。
自治系统外部LSA
(AS-External-LSA,Type-5 LSA)
由ASBR生成。此类LSA描述AS外部的网络,并可以泛洪到所有非末梢区域中去。
图3.11 Type-4,5 LSA示例
NSSA外部LSA
(NSSA-External-LSA,Type-7 LSA)
此类LSA由NSSA区域内的ASBR生成,也用来描述AS外部的网络。NSSA外部LSA仅仅在始发他们的NSSA区域内进行泛洪,而不像自治系统外部LSA可以泛洪到所有非末梢区域。
RFC 2370定义了3种新的LSA,称作不透明LSA(Opaque LSA)。这3种新的LSA为OSPF的扩展性提供了通用的机制。它们可以携带用于OSPF的信息,也可以直接携带应用的信息。
OSPF区域类型
OSPF允许将相邻的网络和主机进行分组。这样一个包含有接口连接到其中任一网络的路由器的组,被称为一个区域(Area)。每个区域都运行着基本链路状态路由算法的一个独立副本。
骨干区域(Backbone Area)
OSPF骨干区域(Backbone Area)是特殊的OSPF区域0(通常写作Area 0.0.0.0,因为OSPF区域ID通常以IP地址的格式表示)。OSPF骨干区域总是包含所有的ABR。骨干区域负责在非骨干区域之间分发路由信息,且必须是连通的。
图3.12 OSPF骨干区域示例
常规区域(Regular Area)
在OSPF协议中,常规区域是指那些非骨干(即非Area 0或0.0.0.0)且没有特定特征的区域。这些区域负责生成和接收Type-3 LSA和Type-5 LSA。骨干区域是常规区域的一种特殊类型。
图3.13 OSPF常规区域示例
末梢区域(Stub Area)
Stub区域是一种特殊的OSPF区域类型,它不接受来自自治系统外部的路由广告,并且区域内的路由完全基于一条默认路由。当数据包需要发送到Stub区域外部时,它们会被发送到ABR。ABR会删除来自内部路由器的Type-4 LSA和Type-5 LSA,并向这些内部路由器发送一条指向0.0.0.0的默认路由,从而将自己转变为内部路由器对外沟通的默认网关。
图3.14 OSPF末梢区域示例
完全末梢区域(Totally Stubby Area)
完全Stub区域与Stub区域类似,都不接受来自自治系统外部的路由广告。但完全Stub区域在此基础上还进一步限制了区域间(Inter-Area)路由的汇总,即不允许将Type-3 LSA汇总进入完全Stub区域。
图3.15 OSPF完全末梢区域示例
不完全末梢区域(Not-So-Stubby Area,NSSA)
NSSA是一种特殊的Stub区域类型,它允许以有限的方式将Type-5 LSA引入Stub区域,但仍然不能从其他区域接收Type-5 LSA路由。
图3.16 OSPF不完全末梢区域示例
Part.4
车载网络OSPF解决方案
车载通讯网络是智能交通系统和列车自动驾驶技术的关键组成部分。这些网络不仅需要快速、可靠地传输数据,以支持列车间的实时通信、列车与基础设施之间的交互,还需要具备高度的灵活性和可扩展性,以适应不断变化的车辆数量和通信需求。
车载网络的基本架构如下:
图4.1 使用OSPF动态路由技术的车载通讯网络解决方案
威努特提供的OSPF动态路由车载通讯网络方案描述如下:
每列车司机室各放一台车载三层交换机并启用OSPF协议。
所有车载三层交换机与地面三层交换机连接的端口设置为同一个VLAN。每列车上每台车载三层交换机的对地通讯端口都设置成不同的IP地址如上图所示。
车载网络内部与司机室的两台车载三层交换机连接,使用VRRP协议将两台三层交换机虚拟成一个网关。
由于OSPF使用动态路由协议,车载设备与地面通讯会学习到两条路由,一条走车头,一条走车尾。实际的列车环境中,一般仅启用车尾无线,而不启用车头无线,经过车头的路由不可达,所以数据会从车尾传到地面。当车尾无线故障切换到车头时,OSPF会侦测到车尾路由不可达,超时(一般为秒级,约等于设置的OSPF Dead时间)后学习到新的车头路由,因而自动切换到车头无线进行通讯。从而解决无线与交换机切换不同步的问题。
轨旁三层交换机同时也需启用OSPF协议与列车网络进行三层通讯。
轨旁设备需要将轨旁三层交换机相连接口IP设置为默认网关。
在车载网络里,威努特的OSPF动态路由方案优势突出。列车运行时网络拓扑经常发生变化,OSPF快速收敛的特质能及时更新路由,保障数据实时准确传输;随着新技术的引入,列车网络规模逐渐扩大,OSPF的区域划分与层次化设计能力便于管理各种规模的网络,能轻松应对网络规模增长;列车通信承载行车关键信息,要求网络稳定高效,OSPF路由技术可快速稳定传输数据,提升通信可靠性,保障列车安全运行。
渠道合作咨询 田先生 15611262709
稿件合作 微信:shushu12121
📍发表于:中国 北京