MPLS P节点分片
MPLS P节点分片实现了在MPLS P节点设备上将MPLS报文进行分片的功能,减少了MPLS转发过程中报文丢弃的情况。
产生原因
随着网络规模的扩大和复杂度的提高,不同规格的设备出现在同一组网中。如果入PE节点设定的MTU大于出PE节点设定的MRU,并且出PE节点上设置了如果收到的报文长度超MRU时报文会被丢弃的处理机制,那么当MPLS P节点没有配置分片功能时,入PE节点的报文会直接透传到出PE节点,会出现被丢弃的情况。
实现原理
如图2-10所示,入节点PE1的MTU1大于出节点PE2的MRU2,并且PE2设备设置了接收到的报文长度超过MRU2将会被做丢弃处理。当P节点没有配置分片功能,长度为LENGTH(MTU1>LENGTH>MRU2)的报文经过P节点时会直接透传到PE2。由于LENGTH大于MRU2,PE2将该报文做丢弃处理。当P节点配置分片功能后,长度为LENGTH(MTU1>LENGTH>MRU2)的报文经过P节点时,会被分成长度为MTU(MTU<MRU2)和LENGTH-MTU两个报文转发出去(如果LENGTH-MTU>MTU,则该报文会继续被分片直到分片后的每个报文长度都小于MTU)。 当分片后的报文到达PE2节点时,由于所有的报文长度都小于MRU2,报文没有被丢弃。
MPLS MTU计算方法
LSR针对某个FEC,把所有优选的下一跳设备通告的MTU和本机出接口MTU做比较,取出最小值通告给上游。通告方式为,把计算出来的MTU值放在Label Mapping消息的MTU TLV里面,然后把Label Mapping消息发送给上游。如果MTU发生变动,如本机出接口改变或者配置变更,那么LSR就应该再次通过Label Mapping消息,把重新计算过的MTU通告给它的所有上游。