RSVP-TE技术

RSVP-TE技术

为了解决LDP不支持流量工程的问题,MPLS中引入了RSVP-TE控制面。

传统路由是依据目的IP进行查找转发,且只关心下一跳怎么走,而并不关心流量的完整路径。而RSVP-TE引入了源路由的概念:当流量进入RSVP网络后,在源节点就会计算出完整的每一跳路径(显式路径)

如同导航软件在计算行驶路线前需要收集道路信息并知晓当前路况,计算源路由的先决条件则是需要收集全网拓扑信息及链路状态信息。RSVP-TE通过扩展IGP协议收集了这些信息(IS-IS扩展了TLV字段,OSPF则是用特定的LSA)

知晓路况信息是第一步,具体选择走哪条线路,还要取决于选路算法。一如导航软件根据我们的要求(时间优先,距离优先,不走高速等)选择最优路线,RSVP-TE流量调度也可以依据业务的要求:如延时低于50ms、带宽大于10G等规划出最优的转发路径。

1.RSVP-TE优势

相比于传统的路由协议基于目的IP的简单转发,RSVP-TE最大的优势在于收集了整网拓扑和链路状态信息,因此可以根据业务的需要灵活地选择流量的转发路径(为流量指定一条显式路径)

2.RSVP-TE劣势

RSVP-TE听上去是一个完美的流量调度解决方案,应该大受欢迎。然而现实很骨感:部署RSVP-TE的案例并不多,并且在为数不多的RSVP-TE案例中,大部分也只用到了RSVP-TE的快速重路由功能,而非流量调度功能。究其原因,无外乎以下三点:

• 过于复杂:RSVP信令非常复杂,每个节点都需要维护一个庞大的链路信息数据库

• 扩展性受限:为了准确预留带宽,RSVP-TE要求所有IP流量都需要通过隧道转发,节点之间建立Full-mesh隧道导致扩展性差,大规模部署几无可能;

• 不支持ECMP(Equal-Cost Multipath Routing,等价多路径):现代IP网络中,ECMP是一个最基础的需求。而从源路由的机制我们可以看到,RSVP-TE只会选择一条最优路径进行转发。如果想要实现流量分担,还需要在相同的源和目的之间预先建立多条隧道。

SRTE(segment routing traffic-eng)在运营商和超大型网络中应用越来越热门,大家都说对比RSVP-TE,SRTE有很多优势。

先说RSVP-TE,RSVP-TE在进行路径计算和路径选择的时候,可以使用explicit-path(显示路径)或dynamic(动态计算),其中dynamic使用的是CSPF算法(基于约束的SPF算法),现在在SRTE的胶片中称为Circuit optimization (电路优化)的算法,如下图:

1.png

l 这个说法学过RSVP-TE的同学很容易理解,这个主要是RSVP这个协议的特性,在路径建立的时候,需要逐跳发送RSVP的PATH/RESV消息,所以称其为circuit-based的算法,这个实际上跟Frame-relay(帧中继)和ATM(异步传输模式)的PVC(永久虚电路)很像,PVC需要手工逐跳建立。

l 这种算法基于约束条件(带宽、亲和属性和TE-cost值等),这个在SRTE中称为优化(optimization),实际上就是因为这些约束条件,不选择IGP计算出来的路径。

l 计算出来的结果是non-ECMP的path,这个指的是单条RSVP-TE的tunnel同一时间,只能使用一条路径,所以RSVP-TE的算法本身不支持ECMP(等价多路径),如果要让RSVP-TE支持ECMP功能,需要从头端建立到达尾端的多条隧道。

l 另外说计算出来的路径SID-List很大(在RSVP-TE里面,计算出来的路径称为ERO(显示路由)),这个主要原因是RSVP这个协议是逐跳的

好,我们下面来看看SRTE的算法,SRTE在选择路径的时候,也是可以使用explicit-path和dynamic计算(当然还有集中式计算PCE等),它用的算法称为SR optimization(中文经常听到称为SR原生的优化算法),如下图:

2.png

l 它的特点是No more circuit!意思是不需要像RSVP-TE一样逐跳建立隧道,他的路径是在头端发送数据包的时候,压入SID-LIST的标签(数据平面携带路径),所以不需要像RSVP-TE那样需要周期性的维护状态(因为RSVP是soft-state的协议)。但是SRTE压标签的时候,可能会压太多层标签,所以可能需要进行分段。

l 算法本身支持ECMP,看上图上,可以看到SRTE在计算的时候,从节点1去往节点3有3条等价路径,那么在Candidate-Path(候选路径)的计算中,这三条路都会被选择(当然实际实验时稍有偏差,但可以出结果)。这个跟RSVP-TE不一样,RSVP-TE要做ECMP的时候,需要做多条隧道,更麻烦一些。

l 在生成路径的时候,Small SID-List。从上图中可以看到,最后在头端生成的路径是<7,3>,压标签的时候,只会压入节点7和节点3的标签,这样做的好处是1.支持ECMP,2.压标签的时候标签尽可能少,在转发的时候能符合链路的MTU需求。

总的来说,RSVP-TE和SRTE算法的基本区别在这里,另外SRTE有更多的约束条件,Cost值的类型可以设置,功能要比RSVP-TE要多。

 

路径计算组件

IS-IS和OSPF通过SPF计算出到达网络各个节点的最短路径。MPLS TE则是使用CSPF算法计算出到达某个节点的最优路径。CSPF(Constrained Shortest Path First)是带有约束条件的SPF算法,从SPF算法衍生来的。

LSP 建立

LSP 可以静态和动态建立。动态建立 LSP 是使用标签分发协议(比如 LDP)建立,静态就是手工配置,所以静态 LSP 不需要使用任何标签分发协议,没有必要交互任何控制信息,资源开销小。由于静态 LSP 是由手工配置的,无法随着网络拓扑变化而收敛,当网络出现故障后还需要管理员干预,管理相对比较麻烦。也许你会心想,既然显得毫无用处,我为什么还要写这么多来描述静态的方式。这是因为静态 LSP 可以避免像 LDP 故障导致 MPLS 业务流量丢失的情况,静态可以保障 MPLS 中关键应用的数据业务连续性。

公网隧道可以是LSP隧道、MPLS TE隧道和GRE隧道。当公网隧道为LSP隧道或MPLS TE隧道时,公网标签为MPLS LSP标签(MPLS TE隧道的CR-LSP也是采用LSP标签);当公网隧道为GRE隧道时,公网标签为GRE封装。

MPLS TE的四个构件

  1.报文转发组件

  MPLS TE报文转发组件是基于标签的,通过标签沿着某条预先建立好的LSP进行报文转发。由于LSP隧道的路径可以指定,因而可以避免IGP的弊端。

  2.信息发布组件

  除了网络的拓扑信息外,流量工程还需要知道网络的负载信息。为此,引入信息发布组件,通过对现有的IGP进行扩展,比如在IS-IS协议中引入新的TLV,或者在OSPF中引入新的LSA,来发布链路状态信息,包括最大链路带宽、最大可预留带宽、当前预留带宽、链路颜色等。

  通过IGP扩展,在每个路由器上,维护网络的链路属性和拓扑属性,形成流量工程数据库TED,利用TED,可以计算出满足各种约束的路径。

3.路径选择组件

  MPLS TE技术通过显式路由来指定数据转发的路径,即在每个入口路由器上指定LSP隧道经过的路径,这种显式路由可以是严格的,也可以是松散的。可以指定必须经过某个路由器,或者不经过某个路由器,可以逐跳指定,也可以指定部分跳。此外,还可以指定带宽等约束条件。

  路径选择组件通过CSPF算法,利用TED中的数据来计算满足指定约束的路径。CSPF算法是最短路径优先算法的变种,它首先在当前拓扑结构中删除不满足条件的节点和链路,然后再通过SPF算法来计算。

  4.信令组件

  信令组件用来预留资源,建立LSP。LSP隧道的建立可以通过CR-LDP,或RSVP-TE协议完成。这两种信令都可以支持LSP的建立、显式路由、资源信息携带等功能。以RSVP-TE为例,为了能够建立LSP隧道,对RSVP协议进行扩展,在RSVP PATH消息中引入LabelRequest对象,支持发起标签请求;在RSVPRESV消息中引入Label对象支持标签分配,这样就可以建立LSP隧道了。为了支持显式路由,在RSVP RESV消息中引入ExplicitRoute对象。

原文地址:https://www.cnblogs.com/dream397/p/13359236.html