一、OSPF TE 简介
OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在自治系统(AS)中的路由器之间交换路由信息。
OSPF TE (OSPF Traffic Engineering First),即 OSPF 流量工程,是在 OSPF(Open Shortest Path First)协议基础上进行扩展的新特性。它旨在支持 MPLS(Multiprotocol Label Switching)流量工程,特别是用于建立和维护 TE 的标签交换路径(LSP,Label Switched Path)。在 MPLS TE 架构中,OSPF 在信息发布方面起着重要的角色,负责收集和传播与 MPLS 流量工程相关的信息系。除了传统的网络拓扑信息,流量工程还需要知道网络的约束信息,例如带宽、TE 度量值、管理组和亲和属性等。然而,OSPF 现有的功能无法满足这些要求。因此,OSPF TE 通过引入新类型的 LSA(Link State Advertisement)来发布这些约束信息,并利用 CSPF(Constrained Shortest Path First)算法计算满足各种约束条件的路径。
二、OSPF TE 原理
OSPF TE 主要通过以下两个方面来实现流量工程
链路状态广播(LSA)扩展:OSPF TE 扩展了 OSPF 的链路状态广播,以在网络中传输额外的链路信息,如带宽、延迟、成本等。这些信息可用于计算更优化的路由路径。
约束条件最短路径优先(CSPF)算法:CSPF 是 OSPF TE 试用的算法,它基于 Dijkstra 算法,并考虑额外的约束条件,如可用带宽、链路成本等,从而找到最佳的路由路径。
1、TE LSA
OSPF 定义了新的 LSA 类型,成为 TE LSA,用于发布 TE 信息。
包括:
Router Information LSA:发布 Router ID、接口地址、TE Metric 等信息
Link LSA:发布链路带宽、可用带宽、管理组等信息
Inter-AS LSA:用于 ASBR 之间发布 TE 信息
2.TED
每个 OSPF TE Router 都会根据收到 TE LSA 构建一个 TE Database,包含:
网络拓扑信息
链路属性:带宽、管理组、亲和属性等
Router 属性:Router ID、接口地址等
CSPF 算法就是根据 TED 中存储的信息计算流程工程路径
3.CSPF 算法
CSPF(Constrained Shortest Path First)算法是利用 OSPF TE 中发布的约束信息计算满足各种约束条件的路径的算法。该算法在计算路径时考虑了各种约束条件,如带宽限制、管理组约束和亲和属性等。
CSPF 算法首先手机网络中的约束信息,包括链路的带宽和 TE 度量值等。然后,它基于这些约束条件计算出满足要求的最短路径。在计算路径时,CSPF 算法会遵循 OSPF 的工作原理,但同时也考虑到了约束条件,确保选取的路径符合网络中的限制
通过 OSPF TE 和 CSPF 算法的结合,网络可以更好利用带宽资源,并提供更好的服务质量保证。OSPF TE 的扩展使得网络管理员可以更精确地控制流量的路径,并根据不同的约束条件进行灵活的调整。
4.RSVP-TE 建立 LSP
根据 CSPF 计算所得的 ERO,RSVP-TE 协议将建立 TE LSP。ERO 中包含 TE Tunnel 必须经过的中间节点信息,RSVP-TE 根据 ERO 一跳一跳建立 LSP。
三、OSPF TE 架构图
上述架构图描述了 OSPF TE 架构中的两个路由器之间的连接。在该图中,上方是一个普通的 OSPF 路由器,下放是一个 MPLS TE 路由器。OSPF 路由器负责收集和传播网络拓扑信息,而 MPLS TE 路由器负责收集和传播与 MPLS 流量工程相关的信息。
这两个路由器之间通过连接进行通信,以确保 OSPF TE 的信息能够船体并在网络中进行路径计算。这种架构使得 OSPF TE 能够在 OSPF 协议基础上扩展,满足 MPLS 流量工程的需求。
四、OSPF TE 的扩展功能
为了支持 MPLS TE 中的约束信息,OSPF TE 对现有的 OSPF 协议进行了扩展。它 通过引入新类型的 LSA 来传播和发布约束信息。
这些新的 LSA 类型包括以下内容:
带宽 LSA(Bandwidth LSA):带宽 LSA 用于传递链路的贷款信息。它允许路由器了解网络中各个链路的带宽限制,以便进行计算和负载均衡。
TE 度量 LSA(TE Metric LSA):TE 度量 LSA 用于传递链路的 TE 度量值。TE 度量值是用于计算路径优先级和性能的制表。通过 TE 度量 LSA,路由器可以了解网络中各个链路的 TE 度量值,以便选择最佳路径。
管理组 LSA(administratore Group LSA):管理组 LSA 用于传递链路的管理组信息。管理组用于对特定流量进行管理和控制。通过管理组 LSA,路由器可以了解链路的管理组属性,以便对流量进行核实的处理
亲和属性 LSA(Affinity Attribute LSA):亲和属性 LSA 用于纯涤链路之间的亲和属性信息。亲和属性用于指定链路之间的关联性,以便在路径计算中考虑这些关联性。
通过引入这些新的 LSA 类型,OSPF TE 扩展了 OSPF 协议的功能,使得路由器可以传递和计算流量工程相关的约束信息
五、OSPF TE 与 MPLS-TE
OSPF TE 与 MPLS(多协议标签交换)TE 有紧密的关系。MPLS-TE 是一种利用 MPLS 技术实现流量工程的方法。它可以在 IP 网络中建立标签交换路径(LSP),从而实现基于约束条件的路径选择。
OSPF TE 可以为 MPLS-TE 提供所需的链路信息和计算能力。在 OSPF TE 和 MPLS-TE 配合下,可以实现更高效的流量工,提高网络性能。
六、OSPF TE LSA 类型
OSPF 定义了以下 TE LSA 类型:
1.Router Information LSA
Router Information LSA 由 ABR 和 ASBR 生成,发布 Router ID、接口地址和 TE Metric 等信息。用于 CSPF 计算 TE Tunnel 路径。
2.Link LSA
Link LSA 由每一个接口生成,发布本地链路信息,包括:
本地链路 IP 地址
本地接口 IP 地址
TE Metric、Maximum Bandwidth、Maximum Reservable Bandwidth 等
用于 CSPF 计算 TE Tunnel 路径
3.Inter-AS LSA
Inter-AS LSA 由 ASBR 生成,发布到其他 AS 的 TE 信息。用于多 AS 环境下的 TE LSP 建立。
七、OSPF TE 实现
OSPF TE 的实现需要以下步骤:
配置 TE 参数
包括 Router ID、Link Metric、Maximum Bandwidth 等启用 TE 功能
发布 TE LSA 开启 OSPF TE 功能配置 TE 隧道属性
定义 Tunnel ID、源地址、出口地址等使用 RSVP-TE 建立隧道
根据 Tunnel 参数使用 RSVP-TE 协议建立 TE LSP进行链路状态监控
检测网络拓扑变化,负载均衡 TE Tunnel 等
八、OSPF TE 配置案列
上述拓扑图,有四个路由器:R1、R2、R3、R4。他们之间通过连接进行通信。在这个拓扑中,R1 和 R2 连接,R2 和 R3 连接,R2 和 R4 连接
华为设备
#启用OSPF TE <wljslmz> system-view [wljslmz] ospf [进程ID] [wljslmz-ospf-1] traffic-engineering enable #配置链路的TE度量值: [wljslmz-ospf-1] interface [接口类型] [接口号] [wljslmz-ospf-1-interface-GigabitEthernet0/0/1] te-metric [度量值] #配置链路的带宽: [wljslmz-ospf-1-interface-GigabitEthernet0/0/1] bandwidth [带宽值] #配置链路的管理组: [wljslmz-ospf-1-interface-GigabitEthernet0/0/1] admin-group [管理组ID] #配置链路的亲和属性: [wljslmz-ospf-1-interface-GigabitEthernet0/0/1] affinity [亲和属性值] #配置TE的出口策略: [wljslmz-ospf-1] te-policy outbound [出口策略名称] [wljslmz-te-policy-outbound-sample] destination 0.0.0.0 0 [wljslmz-te-policy-outbound-sample] metric [度量值]
思科设备
#启用OSPF TE: wljslmz(config)# router ospf [进程ID] wljslmz(config-router)# traffic-eng area [区域ID] #配置链路的TE度量值: wljslmz(config-router)# interface [接口类型] [接口号] wljslmz(config-if)# ip ospf cost [度量值] #配置链路的带宽: wljslmz(config-if)# bandwidth [带宽值] #配置链路的管理组: wljslmz(config-if)# ip ospf priority [管理组ID] #配置链路的亲和属性 wljslmz(config-if)# mpls traffic-eng affinity [亲和属性值] #配置TE的出口策略: wljslmz(config)# ip cef wljslmz(config)# interface [接口类型] [接口号] wljslmz(config-if)# ip rsvp bandwidth [带宽值]
Juniper 设备
#启用OSPF TE: wljslmz# edit wljslmz# set protocols ospf traffic-engineering #配置链路的TE度量值: wljslmz# edit protocols ospf wljslmz# set interface [接口名] metric [度量值] #配置链路的带宽: wljslmz# edit protocols ospf wljslmz# set interface [接口名] bandwidth [带宽值] #配置链路的亲和属性: wljslmz# edit protocols ospf wljslmz# set interface [接口名] affinity [亲和属性值] #配置TE的出口策略: wljslmz# edit protocols ospf traffic-engineering wljslmz# set export [出口策略名称] wljslmz# edit policy-options policy-statement [出口策略名称] wljslmz# set term 1 then te-metric [度量值]
九、OSPF TE 带来的优势
OSPF TE 通过充分利用网络链路贷款信息和指定链路的优先级,能够提供比传统 OSPF 更好的流量分配和优化。具体来说主要有以下几点:
更合理的负载均衡:当网络存在等价路径时,OSPF TE 能够根据链路带宽信息系,负载到带宽更高的链路上。
更高效利用链路资源:在有线链路资源下,OSPF TE 能够尽量利用高带宽链路,减少低带宽数量的使用。
改善链路利用率:指定链路的优先级,可以控制特定流量通过该链路,大幅提高链路利用率。
减少丢包:通过分配流量到带宽足够的链路上,有效降低丢包率。
指定路径:TE 排他路由能够让特定流量只通过指定链路,满足业务 SLA 要求。
十、OSPF TE 挑战
复杂性:OSPF TE可能很复杂,需要深入了解OSPF协议和流量工程原理。
成本:OSPF TE可能在实施和管理方面成本比较高,需要专门的硬件和软件
可扩展性:OSPF TE可能很难扩展到大型网络中,因为它需要大量的内存和处理能力
OSPF TE 是提高网络性能的强大工具。但是,需要注意的是,OSPF TE 的试试和管理也可能很复杂。因此 OSPF TE 通常只用于需要高性能的网络中。