基于MPLS的TLS服务及包流分析

2020-02-19 16:02:18 云杰通信 104

基于MPLS的TLS服务及包流分析

工作原理

当一个用户的以太帧被用户驻地设备(CPE)交换或路由到提供商边缘(PE)路由器后,PE路由器一般通过查看802.1Q头或输入端接口所属的VLAN来决定这个帧属于哪个VLAN。当CPE为路由器时,PE路由器查看该CPE的MAC地址,该帧一旦被确认为有效,则被映射到为该用户定义的快速以太通道(FEC)(用于定义如何转发),通过查找FEC得到输出端口和两个标记:第一个是栈顶标记,即隧道(Tunneling)标记,用于将该帧穿过主干网络;第二个是栈底标记,即虚拟电路(VC)标记,用于出口PE决定如何处理该帧。在增加了两个MPLS标记头后,该帧将被封装到与输出接口相对应的帧格式。主干提供商(P)路由器仅查看栈顶标记来交换标记帧,而栈顶标记通常被出口PE路由器之前的一个P路由器所剥离。出口PE路由器从VC标记中得出如何处理该帧,然后转发到合适的输出端口。

以上我们假设隧道和VC标记交换路径(LSP)已经建立起来。通常,VC LSP是通过标记分发协议(LDP)静态或动态地建立起来的;当需要提供具有流量工程能力的LSP时,可以采用基于约束的LDP(CR-LDP)和资源预留协议流量工程(RSVP-TE)等信令协议动态建立LSP。由于城域网中的带宽资源非协议建立VC LSP是一个不错的方法;而核心网络中的带宽资源却非常宝贵,通常需要采用流量工程来优化网络流量。因此,隧道LSP一般是通过RSVP-TE协议来建立的,一个隧道LSP可以传送多个VLAN内的所有业务;在属于同一个VLAN的用户站点间可以建立一条或多条不同QoS的VC LSP。通过建立层次结构和限制提供了一个可扩展的解决方案。

假设服务提供商为两个不同的用户提供TLS服务:用户A有三个不同的办事处,分别在旧金山、芝加哥和纽约。MSP主干网络已经建立了全网状的三条LSP,并为用户A和用户B的各办事处之间建立了端到端的LSP。用户A已经从旧金山接入点建立了两条VC LSP,一条传送业务到芝加哥,另外一条传送业务到纽约。同样地,在芝加歌和纽约也分别为用户A专门建立了两条LSP。这些全网状的LSP形成一个单独的广播域——VLAN。用户B则只需要在旧金山和纽约之间建立一条VC LSP。用户A和用户B共享旧金山和纽约之间的这条隧道LSP。

需要指出的是,LSP是单向的,实际上需要建立两条反方向的LSP通道。目前有建议指出,可在第一条单向LSP建立起来后,通过扩展LDP和RSVP-TE信令协议自动建立反向LSP通道。

可以通过把建立起来的几对LSP当成一个虚拟接口、并把该虚拟接口增加到一个VLAN的方法来允许透明桥接运行。当一个广播帧或未知帧需要发送时,该帧将被泛洪到该VLAN中的所有LSP路径中。当帧穿过MPLS域时,在LSP经过的所有P路由器执行包复制功能。一旦获得该未知帧的MAC地址,那么目的地为此MAC地址的帧将只发送到相应的LSP中。

MPLS隧道采用层次结构,VC标志只有到达出口PE路由器时才可见,可在该帧所经过的其它LSP路径都是不可见的。出口的PE路由器从VC标志中得出所传送的流量类型(如帧中继、ATM或以太网等)。对于ATM AAL5业务流,该帧需要传送到相应的输出端口并打上相应的虚拟路径标识符/虚拟通道标识符(VPI/VCI);对于以太网业务流,VC标志被用来确定该帧所属的VLAN、输出端口。VC LSP为每个用户建立隔离的VC隧道,提供与帧中继和ATM VC同样级别的性能。

帧传送过程

当一个来自用户站点的以太帧传送到PE路由器时,先被PE路由器打上标记,然后被送到相应的链路中去。在这里我们假设用户边缘设备是以太网交换机,它不会改变任何信息。当帧进入服务提供商网络时,PE路由器增加两个标记头到原始的以太帧中。由于输出端也是一条以太链路,PE路由器将增加另外一个以太帧头。外部的以太帧头包含PE路由器的源地址和下一跳的目的地MAC地址(MPLS以太类型0x8847用于单播,0x8848用于组播)。原以太帧显然没有任何改变,仍然包含着发送者的源地址和实际接收者的目的地址。标记帧的隧道标记将随着传送被P路由器所交换。同样,标记帧的外部源和目的MAC地址也将随着改变,这与传统的路由器工作原理一样。当帧到达MPLS域倒数第二跳时,隧道标记将被弹出,然后标记帧将被发送到出口PE路由器。PE路由器使用VC标记得出输出端口,弹出栈底标记,除去外部以太帧头,这样就把原始的以太帧发送到接收方。

分段与重组

标记堆栈和外部包头信息的增加有可能导致帧的大小超过所允许的范围。如果原始以太帧是1518字节(最大以太帧),则不能增加新的包头,所以当新的帧长度超过最大允许帧长度时,很有必要对帧进行分段。如果巨型帧能够被所通过的LSP路径支持,那么该帧仍可以发送。源发送者通常被要求执行IP最大传输单元(MTU)找出所允许的最大传输帧,或使用缺省的MTU(576字节),但是有些应用程序不满足这类要求,则只有将该巨型帧进行重新分段。包预分段能使巨型帧穿过整个MPLS域,但是接收者需要重组这些IP包。IP包的重拆装将是一个高开销的处理过程,应尽量少进行。

QoS

QoS和服务成本(CoS)能够在TLS服务中通过两种不同的方式来提供,可以采用802.1Q的优先级或基于PE分类的方法来决定第二层帧的优先级。一旦帧的优先级确定,就能够用合适的CoS值进行填充或映射到特定的具有QoS的LSP中。MPLS头包含20bit的标记信息、3bit的CoS字段、1bit的栈底标记和8bit的存活时间(TTL)字段。

在LSP的每一跳中,CoS位被用来决定排队策略。当一条LSP用于传送多种服务类型时,CoS位用于决定特定的队列、排队和丢弃策略。这种模型与MPLS Diff-Serv的E-LSP(EXP Inferred LSP)模型相对应。使用具有不同CoS的多条LSP可以满足流量工程、QoS和保护倒换的需要。

当需要软QoS或CoS时,MSP能基于CoS位依靠P路由器来为高优先级的流量提供低时延业务。如果有必要的话,还可以使用加权公平队列或加权的轮询算法为各种流量提供公平服务。当需要更严格或有保证的服务时,MSP能够提供带宽和时延都满足的不同路径。此外,MSP能指定优先级不同的LSP,以便当较高级别的LSP出现故障时,低优先级的LSP可被预清除而恢复较高级别的LSP(这里指当资源短缺时所采取的措施)。