多协议标签交换 (MPLS) : MPLS

6PE FAQ :6PE为什么使用两个MPLS标签在数据层面?

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

本文解释Cisco IOS� IPv6供应商边缘路由器(6PE)为什么在数据层面使用两个多协议标签交换(MPLS)标签。

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

注意: 贡献用卢克De Ghein, Cisco TAC工程师。

Q. 6PE为什么使用两个MPLS标签在数据层面?

A. 6PE使用两个标签:

  • 顶部标签是传输标签,分配逐跳由标签转发协议(LDP)或由MPLS流量工程(TE)。

  • 底部标签是内部BGP分配由边界网关协议(BGP)和通告的标签(iBGP)在服务商边缘路由器之间。

当6PE发布,一个主要需求是MPLS核心路由器都(P路由器)没有必须是IPv6-aware。需求驱动了对两个标签的需要在数据层面。有两个原因为什么6PE需要两个标签。

PHP功能

如果使用了仅传输标签,并且,如果使用了Penultimate Hop Popping (PHP),倒数第二的跳跃路由器(P路由器)会需要了解IPv6。

使用PHP,此倒数第二的跳跃路由器会需要删除MPLS标签和转发数据包作为IPv6数据包。此P路由器将需要知道数据包是IPv6,因为P路由器将需要使用正确第2层封装类型IPv6。(封装类型为IPv6和IPv4是不同的;例如,对于以太网,封装类型是IPv6的0x86DD,而它是IPv4的0x0800。)如果倒数第二的跳跃路由器不是IPv6-capable,可能将放置IPv4的第2层封装类型IPv6数据包的。出口PE路由器然后相信数据包是IPv4。

有处理在IPv4和IPv6报头的存活时间(TTL)。在IPv6,字段呼叫跳限制。IPv4和IPv6字段在报头的不同的位置。并且,在IPv4报头的报头校验和也将需要更改;没有IPv6的报头校验和字段。如果倒数第二的跳跃路由器不是IPv6-capable,将造成IPv6数据包是畸形的,因为路由器期望查找报头的TTL字段和报头校验和字段。

由于这些差异,倒数第二的跳跃路由器会需要知道它是IPv6数据包。此路由器如何知道数据包是IPv6数据包,因为没有分配标签到IPv6转发等效类(FEC),并且那里不MPLS报头的封装字段?它可能为第一个单位元组扫描,在标签栈并且确定后数据包是IPv6,如果值是6。然而,那暗示倒数第二的跳跃路由器需要是IPv6-capable。

此方案可能工作,如果使用明确NULL标签(因此没有PHP)。然而,决策是要求PHP。

负载平衡

在P路由器的典型的负载均衡按照此进程。P路由器去标签栈的末端并且确定它是否是IPv4数据包通过查看第一个单位元组在标签栈以后。

  • 如果单位元组有值为4, MPLS有效负载是IPv4数据包和P路由器负载平衡通过切细源和目的IPv4地址。

  • 如果P路由器是IPv6-capable,并且单位元组的值是6, P路由器负载通过切细源和目的IPv6地址平衡。

  • 如果P路由器不是IPv6-capable,并且单位元组的值不是4 (可能是6,如果数据包是IPv6数据包), P路由器确定它不是IPv4数据包并且做出根据底部标签的负载均衡决策。

在6PE方案中,请想象有通告在BGP的两个出口PE路由器一个IPv6前缀往入口PE路由器。此IPv6前缀用在BGP的两个不同的标签将通告。因此,在数据层面,底部标签是两个标签之一。这将允许P路由器装载在底部标签的平衡根据一个单个流的基本类型。

如果6PE使用仅传输标签通过MPLS核心传输6PE数据包, P路由器不能装载平衡根据一个单个流的基本类型的这些数据包,除非P路由器是IPv6-capable。如果P路由器是IPv6-capable,他们可能使用源和目的IPv6地址为了做出负载均衡决策。


相关信息


Document ID: 116061