MPLS网络设计权威指南

978-7-115-27830-2
作者: 【美】Jim GuichardFrançois Le FaucheurJean-Philippe Vasseur
译者: 陈武
编辑: 傅道坤王旭丹

图书目录:

详情

本书首先介绍了MPLS涉及的各种技术,接下来详细介绍了MPLS网络设计的各个方面,包括VPN、QoS、TE、网络恢复,还可能包括多播、IPv6和伪线路;最后总结了可从设计案例吸取的经验教训。

图书摘要

ciscopress.com

MPLS网络设计权威指南

Definitive MPLS Network Designs

〔美〕Jim Guichard, CCIE #2069 François Le Faucheur Jean-Philippe Vasseur 著

陈武 译

人民邮电出版社

北京

MPLS已成为数据网络领域不可或缺的技术,它通过第3层网络提供面向连接的第2层传输模式。这种看似简单的机制功能非常强大,从根本上改变了数据网络行业。虽然网络专业人员可通过众多资源获得有关MPLS涉及的概念和协议的信息,但还缺乏关于如何根据具体的环境设计MPLS网络以充分利用MPLS优点的系统阐述,本书就是为此而编写的。

本书首先用两章的篇幅概述了书中将要涉及的各种技术,然后介绍了一系列的设计案例,包括长途通信公司、国家电信公司、国际服务提供商和大型企业的MPLS网络设计。每个案例都基于运行MPLS的服务提供商或企业网络,它们都是虚构的,但很有代表性。在每个设计案例中,首先描述网络环境,包括要支持的服务、网络拓扑、POP的结构、传输设施、基本的IP路由设计以及可能的约束;然后介绍设计目标,如优化带宽的利用率;接下来详细介绍网络设计的各个方面,包括VPN、QoS、TE、网络恢复,以及多播、IPv6和伪线路;最后总结了可从设计案例吸取的经验教训,让各种服务提供商和大型企业的MPLS架构师都能够对设计方案的某些方面进行修改,以满足其网络环境和目标的需求。

本书适合工作中涉及 MPLS 网络的架构师、设计人员、工程师、技术经理、技术顾问以及相关专业师生阅读,为获得CCIP或CCIE证书而学习MPLS知识的考生也将受益匪浅。

MPLS已成为数据网络领域的基础技术。在网络不断发展的过程中,人们逐渐认识到未来的数据网络将需要承载许多不同类型的服务,包括语音数据、视频数据以及可靠的高带宽数据交换。由于这种网络对企业至关重要,它们的可用性必须非常高,且发生故障时会聚时间非常短。它们还必须为不同类型的服务提供有差别的服务质量。幸运的是,MPLS技术已经达到并能够满足所有这些需求。显而易见,任何希望参与到未来数据网络中的网络专家都必须要精通这门技术。

MPLS是一种通过第3层网络提供面向连接的第2层传输模式的技术。这种看似简单的机制功能非常强大,它从根本上改变了数据网络行业。为阐述 MPLS 的应用,先来看一下MPLS IP之前的时代以及MPLS的影响。

IP是一种功能强大、无处不在的技术,但IP路由有一些根本性缺陷。在IP包从源地址传输到目标地址的过程中,涉及的每个节点都需要根据IP头中的信息做出路由决策。IP路由协议确保所有路由器有一致的路由表,否则IP包将循环传输或永远不能到达目的地。尽管每跳分别做出IP路由决策提供了弹性,但它有两个重要缺陷:首先,由于数据流总是使用最短路径前往目的地,所以有些重要链路将超负载运行;其次,公共域IP节点不能路由私有IP包,因为目标地址的路由条目必须是唯一的,而私有IP空间不能满足这种需求。

为克服这些缺陷,在 MPLS 出现前,有两个设计原则被广泛应用。一方面,服务提供商在IP网络底层使用基于ATM或帧中继的第2层基础设施来完成长距离的IP数据流传输。这种方法提供了更佳的网络资源利用率。另一方面,需要使用公共网络进行传输的企业网络,需要建立端到端的隧道虚拟专网,然后由企业路由器处理VPN的全部复杂性。当然,也可以使用传统的第2层数据网络或纯粹的TDM网络来建立企业网络。

然而,MPLS技术的出现使这些措施变得完全没有必要。MPLS提供了面向连接的端到端第2层传输模式,它独立于最短IP路径,服务提供商很快认识到第2层(ATM或帧中继)基础设施的功能可以由IP路由器来完成,IP路由器可使用MPLS技术提供相同的服务。这种MPLS方法让服务提供商根本不需要使用第2层交换机,因而更具竞争力并能够提供更廉价的因特网服务。另外,由于MPLS控制面在很大程度上利用了现有的IP路由控制面,所以 MPLS 作为一种新技术的额外开销很小。MPLS 标签交换路径还具有故障恢复功能,能够承载在骨干网络中实施服务质量所需的信息。所以,对于因特网骨干服务提供商来说, MPLS提供了巨大的帮助。

MPLS通过IP基础设施提供第2层路径,因此可以使用这种技术作为传输机制来实现高效的虚拟专网。IP 包通过 MPLS 标签交换路径传输时,骨干 IP 路由器不需要查看其 IP头信息。这种设计催生了MPLS第3层VPN(L3VPN),将VPN的复杂性从企业转移到服务提供商。服务提供商提供的这种新服务提高了企业网络的效率。

第3层VPN的出现导致另一种认识:如果MPLS包的内容对IP骨干来说不可知,为什么不使用它来传输更低层的帧呢?这催生了第2层VPN(L2VPN)、虚拟专用LAN服务(VPLS)和虚拟专用无线服务(VPWS)。这种有效负载的不透明性使得可以将MPLS标签交换路径用作多播传输机制。现在,服务提供商可以提供更多的新服务,企业网络可以更加高效地运行其基础设施。

对于那些要了解 MPLS 的强大功能并充分利用它的技术人员来说,本书是一种福音。对于任何协议,理解协议本身是一回事,理解这些协议的应用是另一回事。本书作者通过多个详细的设计案例来介绍 MPLS 技术的应用,这是一种明智的选择。在介绍各种设计案例前,本书用两章的篇幅详细介绍了协议本身的工作原理。MPLS本身的应用相当广泛,很少有单个资源能够介绍在每种应用中优化网络设计的技巧,但本书确实是这样的资源。

我向所有从事基于 MPLS 的数据网络架构、设计或排错的网络专业人员推荐本书。本书将加深读者对MPLS的认识,为进一步的技术培训打下坚实的基础。

阅读愉快!

Parantap Lahiri

MCI公司IP网络基础设施工程部经理

Bruce Davie,博士,1995年加入Cisco公司,然后一直在 IOS技术部门工作。1998年被授予“Cisco Fellow”奖。他领导一个架构师小组,从事 IP网络的MPLS和QoS能力开发。另外,他还领导一个跨公司小组,试图跨越Cisco产品线创建通用的QoS和MPLS架构。他有超过 15年的网络和通信行业经验。他还是 IETF和 Internet Research Task Force(因特网研究任务组)的活跃参与者,且是IEEE的高级成员。他在奥尔本大学获得工程学士学位,在爱丁堡大学获得计算机科学博士学位。

Xavier Vinet,Equant公司 IP Network Engineering部门的网络架构师,专注于工程和国际Equant MPLS网络的实现。在过去 8年里,他从事法国电信的因特网和MPLS VPN国内网络的设计。他拥有电信工程学位。

Raymond Zhang,INFONET公司的高级网络架构师,负责全球 IP骨干基础设施和路由架构的规划和发展。他当前主要研究的领域是大规模骨干路由、流量工程、性能和流量统计分析、MPLS相关技术、多服务QoS、IPv6和多播。他是IETF的活跃成员,参与编写了MPLS TE、Inter-AS流量工程及其他领域的许多标准草案。他拥有纽约城市大学的工程硕士学位。

Javier Achirica,在Telefonica公司的企业服务部门从事业务开发工作。有 10多年参与IP 网络的设计和部署的经验,包括公司、国内运营商和国际运营商的 IP 网络,在超过 12个国家建立 IP 网络。他也是大多数相关标准组织的活跃成员。他在西班牙的 Valladolid 大学获得物理学学位,在西班牙的 Instituo de Empresa大学获得MBA学位。

Patrice Bellagamba,Cisco公司的咨询工程师,担任在欧洲、中东和非洲地区的大型企业中使用MPLS的技术专家。他有22年的网络从业经验,13年的IP网络经验和6年的MPLS和 QoS 经验,主要在服务提供商和大型企业中从事设计和服务工作。他拥有法国 Supelec大学的工程学位。

William Copeland,有15年的网络行业经验,目前是MCI的MPLS VPN网络首席架构师之一。

Jim Guichard,CCIE #2069,是Cisco公司的系统架构师,工作的主要方向是MPLS/IP第2层和第3层VPN技术。在Cisco公司工作的8年以及以前在IBM公司工作时,他主要从事大规模WAN和LAN网络的设计、规划和实现。利用这些从实际部署工作中获得的经验,他继续为许多大型 Cisco 服务提供商客户提供很有价值的帮助。他以前的著作有《MPLS 和VPN体系结构》第1卷和第2卷(已由人民邮电出版社翻译出版,书号分别为22674、23406)。他还在MPLS领域申请了多项专利。

François Le Faucheur是Cisco公司的系统架构师,主要从事 IP QoS和MPLS领域的产品开发。他曾经为法国和澳大利亚的好几家电信公司工作,开发基于ATM、帧中继、SMDS和IP的增强服务。他拥有实时数据处理的工程学位,编辑和合著了MPLS和QoS领域的多个 IETF规范,如区别服务的MPLS支持、支持区别服务的MPLS TE和基于MPLS/BGP的IPv6 VPN。他也在MPLS和QoS领域申请了多项专利。

Jean-Philippe Vasseur是Cisco公司的系统架构师,从事 IP/MPLS架构规范的工作,重点是IP、TE和网络恢复。他拥有法国的工程学士学位和SIT(位于美国新泽西州)的硕士学位。在加入Cisco公司前,他曾经在几家服务提供商从事多协议环境中的工作。他是IETF的活跃成员,是 IETF PCE(Path Computation Element,路径计算单元)工作组的联合主席,参与制定了多种IETF规范。他经常在各种国际会议上发言,参与了IP和MPLS领域中的许多研究项目。他也在 IP和MPLS领域申请了多项专利,合著了Network Recovery。

最近几年,多协议标记交换(Multiprotocol Label Switching, MPLS)在全球范围内的部署正在加速。现在MPLS已经成为一种成熟的技术,已能够适应21世纪网络的挑战。各种各样的因素促进这种技术的应用。最初,它提供了一个扩展性良好的架构,利用这个架构可以提供第3层虚拟专网(VPN);最近,在IP/MPLS骨干上传输多媒体数据流(如电话和视频)带来的冲击,导致了对流量工程、快速恢复和分级服务质量(QoS)的需求。从已有的第 2 层服务向 IP/MPLS 基础设施的迁移,也在一定程度上加大了这种需求。一些新的MPLS应用的出现,如ATM和以太网伪线服务以及虚拟专用LAN服务(VPLS),带来了更多的MPLS相关服务和技术。

MPLS技术已经被广泛接受,它被集成到许多不同的服务提供商环境中,包括国家电信、IXC、ILEC、CLEC、RBOC、全球服务提供商和ISP。这些运营商提供了成功的第3层VPN服务,使它成为了企业评估和建立其内部网解决方案的基准。此外,现在一些大中型企业也正在建立和运营自己的专用MPLS基础设施。

MPLS能够融合第2层和第3层VPN、流量工程、快速恢复和严格QoS,并从中获得性能提高,使得采用 MPLS 成为下一代多服务网络的基础。这些网络不仅承载因特网数据流,还承载关键任务数据、语音和视频。它们还提供VPN、多播和IPv6服务,并传输ATM、以太网和帧中继数据流。由于 MPLS 具有应用程序相关功能与传输功能无关的基本特征,这些功能可以容易地实现。这样就可以更灵活地构建多服务 MPLS 网络,使用灵活的客户相关、应用程序敏感的边缘设备,连接到应用程序和客户无关的高性能、高可用性核心基础设施。

本书介绍如何设计针对特定环境优化的网络,并提供关于最新技术、服务和设计的细节。实际生产网络环境和需求多种多样,很难提供一套通用的设计建议。不同网络运营商提供的服务种类通常随环境不同而差异巨大。例如,一个网络运营商可能需要在第3层VPN服务中支持多播流量,而另一个网络运营商可能需要提供许多类型的服务,以满足所有应用的需求;有的运营商需要支持IPv6服务,另一个网络运营商可能需要通过包网络连接ATM交换机。另外,不同的网络运营商面临的财政压力也不相同,有的运营商可能拥有光纤传输线路,而另外一些网络运营商可能需要租用别人的线路,因而面临更大的带宽优化压力,需要在核心利用MPLS流量工程。

更复杂的是,不同网络的恢复需求也可能大不相同。一个网络可能定位于次秒级的恢复时间,而另一个中继公共电话交换网(PSTN)数据流的网络可能需要 10 毫秒级的快速会聚时间。

另一个需要考虑的因素是,虽然有些网络部署只涉及单个自主系统,但另外一些网络需要涉及多个网络运营商,或由于运营、规模或历史原因,必须将运营商的骨干网络分成多个自主系统。许多网络功能要求不同的设计,这取决于它们是跨越单个自主系统、跨越同一个服务提供商的多个自主系统还是跨越多个服务提供商的多个自主系统。

另外,由于各自不同的特点,不同的网络可能遇到不同的可扩展性限制,需要使用不同的功能或设计方法来克服。

最后,有些MPLS技术是紧密相关的,需要同时规划设计才能完美地协同运行。例如,区别服务、支持区别服务的MPLS流量工程和MPLS快速重路由就是这样的技术,需要对它们仔细地组合,因为它们相互之间是紧密相关的。

在进行网络设计时有这么多因素需要考虑,所以服务提供商或企业迁移到 MPLS 网络时,可供选择的方案非常多,甚至可以说数不胜数。

本书旨在解决这些问题。书中一系列详细的设计案例介绍了如何在IP/MPLS网络的核心组合使用关键技术和 MPLS 相关技术。这些设计案例介绍了虚构运营商的设计方案,而不是现有商业网络运营商或企业的实际设计蓝图。然而,每种设计都是在现实世界已经或将要部署的。

为方便说明,在各个设计案例中给出了一些示例配置。在这些配置中,引用了自主系统号和公共IP地址块,这些地址当前不属于任何网络运营商。如果将来这些自主系统号或公共IP地址分配给了运营商,这些设计案例并不是针对这些运营商的。

每个设计案例都基于一组特征和目标,它们是当今部署MPLS的网络运营商(如IXC、全球服务提供商、企业等)都具备的。每个设计案例还介绍了所有相关的设计方面,虽然这些设计方面是从解决特定运营商的特定需求的角度介绍的,但它们也适用于其他具有类似需求的环境。本书包含了各种设计理念的组合,从整体看,本书提供了一个可重用的设计工具箱。

本书的组织结构

不是每个网络架构师都深入地了解当今网络涉及的全部技术。因此,本书前两章概述了各个设计案例用到的所有技术。这两章着重介绍基本概念、协议和最新进展。第 1 章介绍了一些对网络边缘影响最大的技术:第3层VPN、多播VPN、IPv6和伪线路。第2章专门介绍QoS、MPLS流量工程和网络恢复技术,它们是现代核心网络的有机组成部分。

本书的其余章节介绍一系列设计案例。每个案例都基于一个虚构的网络,但分别代表了当今运行MPLS的服务提供商和企业的典型网络环境。

每个设计案例由 4 部分组成。首先描述网络环境,包括支持设备、网络拓扑、POP 结构、传输设备、基本IP路由设计和可能的约束。接下来指出影响网络设计的目标,包括优化带宽利用率,通过合作伙伴服务提供商支持无缝VPN服务,通过MPLS核心连接已有的ATM基础设施以及提供各种QoS保证。然后介绍网络设计的各个方面,包括VPN、QoS、流量工程、网络恢复以及(可能需要的)多播、IPv6 和伪线路。最后总结从设计案例中可吸取的一系列经验教训。这样,各种类型的服务提供商和企业都可以修改设计方案的某些方面,以满足其网络环境和目标的需求。

第3 章描述了美国的一个数据和长途语音服务提供商(IXC),它拥有全国性的光纤和传输设备。具体地说,这个设计案例介绍了第3层VPN设计,基于过度工程化核心的QoS设计以及非保护DWDM传输设备的快速恢复。

第4章描述了一个国家电信公司的设计,它部署一个多服务骨干,将多种服务(如IPv6因特网和 IP VPN服务)迁移到该网络中。这个网络还用于中继美国国内的公共电话数据流以及引入新的服务(如IPv6因特网和运营商的运营商)。另外,本章还详细介绍了共享PE路由器的使用,即所有服务都由相同的设备提供:在入口处提供丰富的 CoS,在核心提供电话数据流的QoS/快速重路由。

第 5 章描述了一个国际性服务提供商,它在全球有许多 POP。该服务提供商与地区性服务提供商相连,并与它们签订严格的协议,为客户提供无缝的服务。另外,它还部署虚拟 POP(VPOP),从而在特定国家建立出现点,而不需要将自己的核心网络扩展到相应的地方。这家公司利用提供商之间的MPLS流量工程LSP,通过其他提供商的IP/MPLS网络提供有保障的带宽和快速恢复。本章介绍了跨AS第3层VPN的详细设计,包括单运营商、多运营商和多播的情形;还介绍了与带宽优化相关的流量工程,包括支持区别服务的流量工程以及多种QoS机制。本章还介绍了通过流量工程LSP传输ATM数据流和跨AS环境中的VPOP设计及相关的流量工程、恢复和QoS操作。

最后,第6章介绍了一家大型企业(银行集团),它依赖第3层VPN服务来控制子公司内部和子公司之间的通信,这是在国外进行兼并、重组和扩张的公司中非常常见的情形。具体地说,该设计案例介绍了专用国际性 MPLS 核心的运行,它同支行的连接由其他第 3层MPLS VPN和帧中继服务提供商提供;介绍了使用 IPSec在有严格安全需求的用户之间通信,以及在同时具有快速链路和慢速链路的混合环境中实现 QoS;还介绍了如何在该企业的第 3层MPLS VPN设计中使用受管理的语音服务,以及电话服务提供商如何在自己的网络内部使用第 3层MPLS VPN技术来为多个客户提供受管理的电话服务。

本书使用的参考文献:本书的许多地方引用了其他资源。提供参考文献旨在帮助有兴趣的读者更深入地了解某个主题。这些参考文献将用方括号表示,如[L2VPN]。要了解关于该资源的更详细信息,可参阅附录“参考文献”。

本书针对的读者

本书的目标读者包括如下网络专业人员:

• 网络架构师;

• 网络设计人员;

• 网络工程师;

• 技术经理;

• 电信专业的教授和教师;

• 技术顾问。

• 学生。

为获得CCIP或CCIE证书而备考MPLS的考生也能从本书受益。

命令语法规范

本书表示命令句法的约定如下:

• 粗体表示需要逐字输入的命令和关键字;

• 斜体表示需要用实际值替换的参数;

• 竖线(|)用于分隔互斥元素;

• 方括号([])表示可选元素;

• 花括号({})表示必需选项;

• 方括号中的花括号([{}])表示可选元素中的必需选项。

如本书前言中所述,无数的技术组合到一起,构成了当今的MPLS/IP集成网络。显然,很难有人能够完全理解所有这些技术以及这些技术如何相互作用。然而,为了从本书中的设计案例中获得最多的知识,有必要对这些技术进行一般性了解。因而,本书前两章的目标是提供相关技术的高级概述。第 1 章着重介绍对网络边缘最具影响力的一些技术,主要包括第3层VPN、多播VPN、IPv6和伪线路(pseudowire)。

本章的目的不是提供关于每一种技术的全部技术细节,而只是着重介绍这些技术的基本情况及最新进展。本章还提供了关于其他书籍、IETF草案和RFC等的参考文献,以便对更多技术细节有兴趣的读者查看。

本书中许多地方都引用了其他资源。提供参考文献旨在帮助有兴趣的读者更深入地了解某个主题。这些参考文献将用方括号标注,例如[L2VPN]。如果想要了解关于该资源的更详细信息,可以参阅附录A“参考文献”。

许多技术都提供虚拟专用网(Virtual Private Network,VPN)解决方案。我们将其定义为可以通过共享网络基础设施为多个用户提供专用网络访问的解决方案。其中一种技术叫做多协议标记交换(Multiprotocol Label Switching,MPLS)。

MPLS技术可以通过使用伪线路技术,在OSI参考模型的第2层(如[L2VPN]和[VPLS]所述)和第 3 层(如[2547bit/s]所述)提供 VPN 解决方案。所有解决方案都允许网络运营商通过共享IP网络提供专用服务。

在共享网络基础设施上提供专用网络并不是一个新概念。的确,这些服务已经存在了很长一段时间。帧中继和异步传输模式(Asynchronous Transfer Mode,ATM)技术提供了第2层服务。IP隧道(通用路由封装[GRE]或IP安全[IPSEC-ARCH])在IP网络上提供了第3层服务。

在20世纪90年代后期,只有大约2%的企业网络向服务提供商购买第3层VPN服务。其余的都选择第2层传输服务(主要是帧中继)和管理或非管理路由器服务。管理路由器解决方案在传输电路末端提供,并要求网络运营商管理客户设备;而非管理服务只为客户提供电路,由客户自己在电路上安装路由器并建立他们自己的VPN路由基础设施。

然而,随着时间的推移,上述两种技术都遇到了不同程度的可扩展性问题,尤其是当应用全互联连接性时(如IP网络上的语音服务[VoIP])。选择VPN解决方案时,决定其最终可扩展属性是最关键的因素。在对任何一种技术进行评估时,需要考虑如下因素:

• 每建立一个新VPN,需要多少设计、设备供应和配置;

• 随着VPN数量的增加,设备供应和配置的增加量;

• 客户路由的复杂度(需要多少邻接关系);

• 骨干路由的复杂度(多少邻接关系和多少种状态);

• 最终客户服务的可扩展性;

• VPN内部需要哪些类型的服务。

将不同的技术分为基于叠加的VPN和基于网络的VPN两个大类别,可以帮助你更好地进行评估。很显然,叠加方式无法满足当今通常所需的客户连接的规模和数量。这主要是因为它需要为每个站点提供到其他任何站点的连接(这样才能提供全互联连接性),并且需要在这些连接之间运行路由邻接关系(一个O(n)问题,其中n为站点数量)。与基于网络的解决方案(每个站点只需要一条到本地PE路由器的连接,是一个O(1)问题)相比,很容易看出基于网络的解决方案更加适用于这种环境。因而,进入21世纪之后的趋势是部署基于网络的第 3层VPN解决方案。这也正是基于[2547bis]的MPLS VPN架构真正的亮点所在。

在服务提供商核心网络内部和提供 VPN 服务接口的边界路由器上,这种架构都将不同最终客户网络域完全隔离。它还提供了减少服务提供商骨干网内核心路由器需要保持的路由状态数量的能力,从而满足可扩展性需求并确保最优的服务质量。早期提供的基于网络的第3层VPN不具备这种能力。具体的实例包括共享路由器(多个客户连接到相同的边界路由器,并使用访问列表来隔离它们)和专用路由器(每个客户使用自己的边界路由器连接到服务提供商网络)。

本节概述基本的[2547bis]架构(以下称为第 3层MPLS VPN架构)及其所有必要的组件。本节还将介绍这种技术如何跨越自主系统边界。更详细的技术信息请参阅[2547bis]、[MP-BGP]、[MPLS-VPN-Vol1]和[MPLS-VPN-Vol2]。

在第 3层MPLS VPN架构中定义了几种网络组件。这些组件在整体架构框架内执行不同的功能,组合起来用于提供第3层VPN服务。

图 1.1总结了第 3层MPLS VPN架构使用的各个网络组件。

• 提供商网络(P网络):由服务提供商管理的核心MPLS/IP网络。图中有两个提供商网络,用于说明不同的自主系统是如何连接的。

• 提供商路由器(P路由器):部署在提供商网络内部的MPLS/IP路由器,不提供任何边界服务连接。

• 提供商边界路由器(PE路由器):服务提供商的边界路由器,提供VPN终端客户连接和服务。

• 自主系统边界路由器(ASBR 路由器):服务提供商的自主系统边界路由器,提供到邻接自主系统(属于相同或不同的运营商)的连接。

• 客户网络(C网络):连接到第 3层MPLS VPN服务的客户网络,由最终用户管理。

• 客户边界路由器(CE路由器):客户的路由器,用作客户网络和提供商网络之间的网关。客户边界路由器可以由最终用户管理(因而属于客户网络),也可由服务提供商管理。

图1.1 第3层MPLS VPN网络组件

因为每个PE路由器需要支持多个最终客户,所以必须在这些客户之间分离路由状态。可以通过将路由信息存储到客户特定的虚拟路由/转发实例(VRF)中来实现路由状态的分离。VRF可以看作是物理路由器内部一个单独的虚拟路由器实例。它由如下结构组成:

• 一个IP包转发和路由表;

• 一组使用转发表的接口;

• 一组控制从VPN特定路由表中导入和导出路由的规则;

• 一组路由协议,用于将路由注入到VPN特定路由表中。

如果没有这种分离,一个VPN客户将可能获得另一个客户专用网络的访问权限。VRF还提供了一种机制,使得每个客户可以使用自己注册的IP地址空间或来自[PRIVATE]空间的私有地址,而不需要担心他的路由信息是否会与服务提供商的其他客户或服务提供商自己的路由信息相互冲突。图1.2说明了PE路由器如何借助于VRF来分离路由信息。

图1.2 采用VRF分离路由信息

在图1.2中,每个客户站点使用一个或多个CE路由器(有时候也可能是一个交换机)和某种附接线路(帧中继、ATM、以太网等),连接到服务提供商的PE路由器。也有可能多个客户站点连接到同一个PE路由器和同一个VRF(如图1.2中的C网络3所示)。对于属于给定VPN的每个客户站点,与之相连的PE路由器接口被关联到该VPN的VTF,让PE路由器能够确定哪个VPN客户可以通过哪些接口到达。

CE路由器与PE路由器物理连接后,它还必须能够与服务提供商交换路由信息。可以通过静态配置来达到这一目标。在这种情况下,动态路由协议是不必要的,因为静态路由提供了所有必要的IP转发信息。然而,对于不想使用静态路由的客户(例如,由于双宿主需求或路由数量太多无法汇总),第3层MPLS VPN 架构提供了使用动态路由协议交换路由信息的能力,如边界网关协议第 4版(Border Gateway Protocol version 4,BGP-4),开放最短路径优先(Open Shortest Path First,OSPF),增强内部网关路由协议(Enhanced Interior Gateway Routing Protocol,EIGRP),路由信息协议第 2版(Routing Information Protocol version 2, RIPv2)。PE路由器可以同时运行多种动态路由协议,如图1.3所示。

图1.3 PE-CE路由协议交换

因为许多VPN客户可能连接到同一个PE路由器,且每个客户运行不同的动态路由协议(或静态路由),所以PE路由器必须能够知道哪种路由协议更新来自哪个VPN客户。这种功能被称为路由上下文(routing context),PE路由器处理的每种路由协议可能运行多个上下文,每个上下文属于不同的VPN。图1.3说明了这一点,其中C-网络2和C-网络3都运行EIGRP协议,PE路由器可以根据上下文来确定使用哪些路由来填充哪个VRF。

正如下一节将讨论的,PE路由器依赖于来自骨干网或客户站点(运营商的运营商服务的情况,将在1.2.4节介绍)的数据流中的标签来执行转发。因而,对于从本地客户站点那里收到的每条路由,PE路由器可能各分配一个标签(这个标签代表整个VRF),也可以给来自相同源的几条路由分配一个标签。标签分配策略取决于客户如何连接到第 3层MPLS VPN服务。如果客户使用单条到本地PE路由器的连接,为每个前缀分配不同的标签没有什么意义,只会增加PE路由器存储转发状态所需的资源。因而,在这种情况下,分配单个标签来代表网关(即负责进行转发的CE路由器)是更适当的选择。另一方面,如果客户想要使用运营商的运营商架构,标签交换将沿PE-CE链路扩展到客户站点,因此必须对每个前缀使用一个标签,以维护源和目标端点之间的标签交换路径(Label-Switched Path,LSP)。

从客户站点收到本地路由信息后,PE路由器通过动态路由协议或服务提供商的静态配置,将路由状态通告给其他PE路由器,以便分发给相同VPN中的远程客户站点。

因为不同客户可能使用相同的 IP 地址空间(通常在客户使用[PRIVATE]地址时发生这种情况),为避免他们的服务边界相互重叠,服务提供商需要能够区分不同的客户路由。解决这一问题的方法是在路由通告到核心网络之前,使用BGP-4扩展(详细信息参阅[MP-GBP]),在PE路由器上创建VPNv4前缀。VPNv4前缀的构建方法是,在IPv4地址前加一个64位的路由区分标志,如图1.4所示。这可以确保每条VPN路由在服务提供商骨干内的全局唯一性。

图1.4 VPNv4地址的格式

路由区分标志可以采用很多种不同的格式,如图1.5所示。需要指出的是,路由区分标志在每个 PE 路由器上可能不同,即使是相同的 VPN,因为它旨在区分IPv4路由而不是标识VPN。

BGP-4最初是为通告IPv4前缀而创建的,因而不能用于通告PE路由器创建的VPNv4路由。所以,通过多协议BGP(MP-BGP)[MP-BGP]对BGP-4进行了扩充,使其能够承载多个地址簇的路由,包括属于VPN-IP4地址簇的VPNv4路由。在两个MP-BGP对等体初始化会话期间,通过交换BGP能力信息,指出它们是否具有使用这个特定地址簇的能力。

如果来自给定VRF的路由是静态配置或通过PE-CE链路上运行的IGP协议获悉的,它们必须重分发到MP-BGP中。这种重分发必须显式地配置。一旦客户路由出现在MP-BGP表中,它们将在VPN-IPv4地址簇内通告(直接在PE路由器之间通告或通过路由反射器)。

图1.5 路由区分标志的格式

重分发过程执行许多任务。首先是将 VRF 中的给定 IPv4 前缀转换成骨干中相应的 VPNv4 路由。PE 路由器还分配相关的导出标签(称为路由目标,将在下一节讨论),并将 BGP 的下一跳属性修改为它的一个接口地址。它还设置所有必要的BGP属性,如本地优先级、MED、共用体等。最后,将为每个前缀分配一个标签(可能是唯一值,也可能不是唯一值,如前一节所述)。生成的更新将可以传输给其他PE路由器或路由器反射器。

收到MP-BGP更新后,PE路由器需要确定将更新包含的路由信息放到哪些VRF中。这是由接收PE路由器的VRF中的导入策略定义的,这种策略在每个VRF中本地配置。如前面所述,PE路由器将使用一个或多个被称为路由目标的扩展共用体属性(在[EXTCOM]中定义),对更新进行标记。路由目标告知接收PE路由器,应根据本地配置将路由导入到哪些VRF中。路由目标的格式如图1.6所示。

图1.6 路由目标的格式

路由目标的采用为创建不同的VPN拓扑提供了一种非常灵活的方法。例如,如果客户需要内部网连接,可在客户连接的每个PE路由器上使用相同的路由目标。然而,如果客户需要企业外部网连接,则需要分配一个路由目标来代表外部网。此外,服务提供商也可以选择导入多个路由目标值来建立VPN。

另一种典型的拓扑是中央站点外部网。在这种情况下,多个终端客户可能需要到同一个中央服务的连接(由第 3层MPLS VPN运营商或公司内部的其他部门提供),但是需要保护他们自己的网络不受其他客户影响。实现这种拓扑的方法是,为中央站点分配一个不同的路由目标,并为每个远程站点分配一个路由目标。

图1.7显示了前面讨论过的全部组件,显示了CE→PE→PE→CE路由和标签分发。

图1.7 端到端控制面数据流

一旦 PE 路由器之间的控制面设置完成(如前一节所述),且 PE 路由器之间有某种形式的隧道可用(如MPLS标签交换路径或IP隧道),服务提供商就可以在IP/MPLS骨干上转发客户的数据流,并将它们发送到正确的远程站点。

在支持MPLS的骨干上,第 3层MPLS VPN包转发是通过标签交换来实现的,入口PE路由器在原始IP数据报中加入一个二级标签栈。也可以通过在骨干中使用IP隧道技术,如第2层隧道协议第3版([L2TPv3]中描述)或GRE,将标签栈限制为一级。

在MPLS环境中,外层标签可由3种不同的协议分配:标签分发协议(Label Distribution Protocol,LDP)、标记分发协议(Tag Distribution Protocol,TDP)和资源预留协议流量工程(Resource Reservation Protocol Traffic Engineering, RSVP-TE)。当使用LDP或TDP来分配外部标签时,每个服务提供商路由器给路由表中的所有路由(通过BGP-4协议获得的路由除外)分配一个本地标签。在直接相连的邻近路由器之间,将使用 LDP/TDP 协议来交换这些标签/前缀绑定(关于这种交换的详细信息,可参阅[LDP])。在PE路由器之间使用RSVP-TE协议时,不再需要LDP协议,外部标签由RSVP-TE分配,它代表流量工程隧道接口(在下一章2.2节中,将介绍更多关于RSVP-TE的细节)。

使用二级标签栈时(对于第 3层MPLS VPN服务是非常典型的情况),栈中的外部标签对应于分配给远程PE路由器IP地址(给定远程VPN前缀的BGP下一跳地址)的标签。栈中的内部标签代表由起源(出口)PE路由器分配给客户路由的标签。它实质上是VPN标签。

注意 有些情况下可能需要更大的标签栈,如在网络核心存在RSVP-TE隧道时。在这种情况下,在穿越隧道时可能会存在一个{RSVP-TE,LDP,VPN}标签栈。

在支持MPLS的骨干网中,在出口PE路由器发送包前,外部标签通常会由倒数第二跳的路由器删除,这一过程称为次末跳弹出(penultimate hop popping)。如果在骨干网中使用了IP隧道,将不会发生这种操作;相反,IP封装将由出口PE路由器删除。次末跳弹出有避免在出口路由器执行二阶段查询的优点。

不管在骨干中使用MPLS还是IP隧道,出口路由器都需要根据VPN标签查询,将从骨干网中收到的包转发出去。这一步可以通过在标签转发信息库(Label Forwarding Information Base,LFIB)中查询标签来完成。然后删除标签,并根据LFIB中包含的信息转发数据流。图1.8说明了这一过程。

图1.8 第3层MPLS VPN包转发

远程用户可以通过许多种不同的方法连接到第 3 层 MPLS VPN 服务。[MPLS-VPN-Vol2]的第 2 章介绍了这些方法的技术和配置细节。然而,下面的远程访问解决方案是最常用的解决方案:

• 通过第2层隧道协议(Layer 2 Tunneling Protocol,L2TP)虚拟专用拨号网络(Virtual Private Dialup Network,VPDN)的拨号访问;

• 通过直接的综合业务数字网(Integrated Services Digital Network,ISDN)的拨号访问;

• 使用以太网点对点协议(Point-to-Point Protocol over Ethernet,PPPoE)、ATM点对点协议(Point-to-Point Protocol over ATM,PPPoA)和VPDN (L2TP)实现的DSL访问。

VPDN 解决方案借助于公共交换电话网(Public Switched Telephone Network,PSTN)或ISDN提供拨号访问。它使用一种隧道协议(如L2TP)来扩展远程用户的拨号连接,并在L2TP网络服务器(LNS)终止。在这里,LNS被称为虚拟本地网关(Virtual Home Gateway,VHG)。

图1.9概述了VPDN概念。

图1.9 使用VPDN概念的拨号

与前面的VPDN解决方案不同,直接ISDN访问不需要任何隧道协议就可以让远程客户端连接到第 3层MPLS VPN PE路由器。这种方式将在 ISDN B信道上建立一个PPP链路,直接连接到PE路由器。PE路由器使用CHAP获得远程客户端的证书,然后转发给一个 RADIUS 服务器进行认证。认证成功后, RADIUS服务器将返回配置参数(如VRF名称、IP地址池等)给客户端。然后, PE路由器将根据本地配置和RADIUS服务器返回的信息,为该PPP会话创建一个虚拟访问接口。至此,用户CHAP认证处理结束,远程用户可以访问相关的VPN。

图1.10说明了直接ISDN访问解决方案。

图1.10 直接ISDN连接

数字用户线(Digital Subscriber Line,DSL)访问是通过使用L2TP VPDN架构端接DSL连接或借助于到PE路由器的直接连接来提供的。它为大规模DSL端接提供了基础设施。图 1.11说明了使用L2TP VPDN解决方案的DSL连接。

图1.11 使用PPPoE或PPPoA的DSL连接

如图1.11所示,远程客户可以使用PPPoE(如果CPE充当网桥)或PPPoA (如果CPE充当路由器)来访问第 3层MPLS VPN环境。其中使用了RFC 1483路由(PPPoA)和桥接(PPPoE)封装,并建立一条从接收NAS/LAC到服务提供商出现点(POP)LNS的L2TP隧道。

最初的第 3层MPLS VPN服务由前面几节介绍的架构组成,主要定位于为客户提供基于第3层网络的VPN服务,只有有限的IP路由信息。由于只使用有限的路由信息,所以服务提供商PE路由器有较好的可扩展性,能够为大量终端用户提供服务。这种模型仍然是当今第3层MPLS VPN服务的主要提供方式。

然而,随着时间的推移,经常会发生需要为大型客户部署VPN的情况,如大型企业、因特网服务提供商(ISP)或其他VPN提供商,他们想要基于IP的全互联连接。产生这种需求的部分原因是这些客户不想建立自己的第2层网络,而是想使用第 3层MPLS VPN网络来进行传输。由于基础设施费用更低,且具备全互联的优点,所以这种服务变得非常有吸引力。

尽管由于前面所述的原因,这种服务对于大型企业和其他运营商很有吸引力,但是对于第 3层MPLS VPN网络运营商来说,当规模到达一定程度后,开销也将非常可观。例如,假定一家 ISP 为这种服务的客户,它可能想在其站点之间交换全部因特网路由(超过 155000条)。第3层MPLS VPN服务要求将客户路由状态存储到PE路由器中,且在它的控制下分发到其他PE路由器,这将在网络边缘导致严重的可扩展性问题,同时在服务提供商网络内,路由分发还会给控制平面带来相当大的负载。

作为一种为高路由需求客户提供连接的折衷办法,且作为对常规第 3 层MPLS VPN服务的一种补充(以便为其他VPN或非VPN运营商提供基本的 IP连接),引入了运营商的运营商架构。这种架构允许在客户自己的站点之间直接交换客户路由,并使用第 3层MPLS VPN骨干在这些站点之间进行纯 IP“传输”。图1.12说明了这种架构。

图1.12 运营商的运营商架构

运营商的运营商架构将路由分成内部和外部两种。内部路由指那些在服务的客户与第 3层MPLS VPN提供商之间交换的路由,它们通常是外部路由的BGP下一跳地址,但也可能是它想要让其网络的其他部分使用的内部服务的地址。外部路由是那些在它自己的站点之间使用 BGP-4 或 MP-BGP(IPv4 或VPNv4)协议直接交换的路由。

注意 使用运营商的运营商架构时,运营商网络的各个站点之间的VPNv4路由交换常被称为多层VPN。第4章将介绍这种服务类型的范例。

从图1.12可知,运营商的运营商架构引入了几个新的网络元素:

• 运营商支持运营商(Carrier Supporting Carrier,CSC)PE路由器:与常规 PE 路由器相同,但它提供 MPLS-to-MPLS 标签转发,而不是执行IP-to-MPLS标签添加。

• CSC CE路由器:与常规CE路由器相同,但它同PE路由器一起运行一种标签分发协议。这种协议可以是 LDP 或 BGP-4(采用某些扩展以传输标签信息,如[BGP+Label]所述)。

• 运营商网络:从MPLS VPN服务提供商那里获得VPN服务的运营商网络。该网络可能采用LDP、TDP或RSVP-TE协议,支持或不支持MPLS交换功能。

• 运营商的运营商网络:第 3层MPLS VPN网络,它在PE路由器上为连接的运营商网络提供运营商的运营商功能。

因为所有外部路由信息都在客户站点之间直接交换,所以服务提供商不需要在其PE路由器上提供运营商的运营商服务来传输这些路由。如果ISP有超过155000 kbit/s路由,则减少处理这些路由的负担将显著减少PE路由器所需维护的路由状态数量。然而,因为这些路由的BGP-4下一跳地址位于客户路由空间内,所以需要与运营商的运营商服务提供商交换这些地址,以提供端到端包转发路径。

因为在运营商网络的CSC CE路由器与运营商的运营商网络的CSC PE路由器之间只交换内部路由,所以CSC PE路由器不再维护任何客户外部路由信息,因而不能将 IP包转发到这些目的地。结果是CSC PE路由器必须能够使用标签(指出这些目的地的BGP下一跳)转发数据流。这样,CSC CE路由器能够在它们之间建立端到端 LSP,且运营商的运营商网络可以根据标签交换数据流。可以通过在CSC CE路由器和CSC PE路由器之间运行LDP协议(或BGP-4协议,它将能够同时传输标签和IPv4前缀[BGP+Label])来建立LSP。图1.13说明了这些元素。

图1.13 内部/外部路由交换

交换所有内部和外部路由信息后,就可以在CSC CE路由器之间建立端到端LSP。图1.14说明了两个客户站点之间的LSP创建过程,以便将数据流传输到子网196.1.1.0/24。其中OL指外部标签,VL指VPN内部标签。

图1.14 CSC客户站点之间的LSP

注意 有些情况下运营商站点也运行MPLS标签交换。如果有多层VPN,将出现这种情况,这将在第 4 章介绍。这并不会影响到本节介绍的整体包转发方案,而只是意味着用于在运营商站点之间建立端到端LSP的LSP被扩展到CSC CE路由器。

关于运营商的运营商架构的更详细分析,请参阅文档[VPN-ARCH-Volume-2]。

伴随着第 3层MPLS VPN服务日趋流行,又出现了跨越不同自主系统边界提供连接的需求。大型企业客户通常跨越多个国家,由于地理位置分散,它们不太可能通过同一家服务提供商来获得全部的VPN连接。即使可以,它们的网络也可能需要分割成多个自主系统。因而,需要对第 3层MPLS VPN服务进行扩展,以跨越多个自主系统。

可以通过许多种方式来实现跨越自主系统的连接。[2547bis]定义了如下类型:

• 自主系统边界上的VRF-to-VRF连接;

• 从一个AS到邻近AS的带标签VPNv4路由的多协议外部BGP重分发;

• 源自主系统和目标自主系统之间带标签VPNv4路由的多跳外部BGP重分发,以及从一个AS到邻近AS的带标签VPNv4路由的外部BGP重分发。

这3 种连接模式通常称为方案A、B 和C。在不同运营商之间通常使用方案A和B,其中方案A的部署迄今为止最为广泛。因而,它们通常与提供商间连接相关联。另一方面,方案C通常用于同一运营商的不同自主系统之间,因而通常与AS间连接相关联。方案B也适用于AS间连接,但是与方案C相比,其可扩展性要稍差一些。

注意 为了避免术语“提供商间”(inter-provide)和“AS 间”(inter-AS)引起混乱,在后面我们将统称为“AS间”(inter-AS)。

这种模型假定在不同自主系统的PE路由器之间直接相连。PE路由器通过多个物理或逻辑接口相连接,每个接口与VPN相关联(借助于VRF)。因而,每个PE路由器将相邻的PE路由器当作CE路由器,并使用标准的第3层MPLS VPN机制在每个自主系统内完成路由重分发。图1.15是这种模型的一个范例。

因为在这种方案中,自主系统之间实质上是隔离的,所以此方案在为不同VPN之间提供连接时得到了普遍应用。它为两个网络之间的路由交换和安全性提供了更好的控制。尽管这种模型还提供了其他一些优点(将在本书后面的设计案例中介绍),但它也是一种可扩展性最差的AS间连接方案。

图1.15 (方案A)提供商之间的连接

这个模型允许自主系统边界路由器(Autonomous System Boundary Routers, ASBR)使用外部 MP-BGP 协议在自主系统之间通告 VPNv4 路由。然后接收ASBR路由器将VPNv4路由分发到本地自主系统中。

外部MP-BGP提供了跨越服务提供商边界通告VPNv4前缀/标签信息的功能。ASBR 路由器在通告 VPNv4 路由之前,用本地分配的标签替换二级标签栈(路由器将使用它到达本地AS中的源PE路由器和VPN目的地)。这一步是必要的,因为在两个服务提供商之间通告的所有路由的下一跳属性都被重置为 ASBR 路由器的对等地址,从而使 ASBR 路由器成为被通告的路由的 LSP终点。为保持入口 PE 路由器和出口 PE 路由器之间的标签交换路径,ASBR路由器必须分配一个本地标签,用于在本地 VPN网络中标识路由的标签栈。在发往邻近服务提供商前缀的包中,将设置这个新分配的标签。图 1.16 说明了AS间模型。

从理论上说,对于不同服务提供商之间的连接,这种模型也是非常流行的,因为它同样隔离了不同的自主系统,且具有可扩展性比方案A更好的优点。然而,这种模型也有许多安全和QoS问题需要考虑,这将在本书后面的设计案例中介绍。

图1.16 (方案B)AS间连接

这种模型在不同自主系统的路由反射器之间进行外部MP-BGP VPNv4路由交换,同时在相应的ASBR路由器之间交换路由的下一跳。因为不同自主系统的路由反射器不会直接相连,所以需要有多跳功能才能够建立外部MP-BGP会话。下一跳地址的交换是必要的,因为路由反射器在通告VPNv4路由给邻近自主系统时,不会重置它们的下一跳属性。其原因是它们不想接收前往它们通告的目的地的数据流。它们不是始发端点,只是位于源PE路由器和目标PE路由器之间的中继站。

在ASBR路由器之间交换VPNv4路由的PE路由器下一跳地址。在自主系统之间交换这些地址,可在两个自主系统之间重分发PE路由器/32地址,也可使用[BGP+Label](它允许在ASBR路由器之间运行使用标签信息的BGP-4)。图1.17说明了这种模型。

图1.17 (方案C)AS间连接

通常仅当每个自主系统都属于同一个服务提供商时,如在世界不同地区有许多自主系统的全球性第 3层MPLS VPN提供商,才会考虑部署这种模型。然而,方案B同样也适用于这种目的,而且确实已被部署到需要在不同地区进行自治的网络系统中。

关于运营商的运营商架构以及各种自主系统间连接模型的更详细分析,请参阅文档[MPLS-VPN-Vol-2]。

本节简单回顾一下 IP多播(IP Multicast)的一些基本概念,然后介绍如何使用第 3层MPLS VPN服务提供多播。

IP多播提供了一种从一个源向多个目的地(称作接收者)传输数据的机制。它与IP单播相反,在IP单播中,包从单个源发送到单个目的地。多播包的目标地址来自 IANA(Internet Assigned Numbers Authority)地址块 224.0.0.0-239.255.255.255,其中每个地址为一个多播组。也就是说,可能有多个端点属于同一个组,并接收往该地址发送的数据流。它在概念上有点类似于广播,但是它的接收者只限于一组成员,而广播的接收者是给定子网上的所有主机。

多播源(如运行多播应用程序的服务器)使用多播地址发出多播包,而接收者监听发往它所在组的数据流。这些包在网络上使用分发树转发。在从源到接收者的路径上,每个网络元素负责在树的每个分支上复制原始数据流。在网络的任何特定链路中,只转发原数据流的一份副本,因而为许多接收者创建了一个高效的分发树。目前有两种不同类型的分发树:源树和共享树。

在源树中,多播组的源主机位于树根处,而接收者位于树枝的末端。多播包在树上从源主机向下流向接收者。在源树中,使用记号{S,G}来维护多播转发状态,其中S为源IP地址,而G为组。

图1.18是一棵源树,其中主机172.27.69.52发出多播包,沿该树向下传输到目标组 239.192.0.7。因而这个多播流的{S , G}状态为{172.27.69.52 , 239.192.0.7}。

图1.18 IP多播源树

源树有时候也叫最短路径树(Shortest Path Tree,SPT),因为源和接收者之间的路径是最短可用路径。这意味着对于每个发送多播包到给定组的源,都存在一棵单独的源树,因而网络中的每个{Source,Group}都有一个{S,G}状态。因而,尽管源树提供了最优路由,但需要付出一些代价:在网络中保存额外的多播状态。

源树上的接收者必须知道树的源,即它的IP地址。要加入到源树中,接收者必须发送一条显式的{S,G}加入消息给源(实际上由本地路由器代表接收者发送)。

共享树的根为网络中某个地方的一个公共点。这个公共点叫做会合点(rendezvous point,RP),接收者加入该点就可以了解当前活动的源。多播源将其数据流发送到 RP。当接收者加入到共享树的某个组后,RP 将多播包从源转发到接收者。这样,RP实质上是源和接收者会合到一起的位置。

共享树的多播转发项使用不同的表示法:{ * ,G},其中 * 代表任何源。图1.19是组239.192.0.7的共享树。

图1.19 IP多播共享树

共享树不采用最短路径,所以性能不如源树。相反,来自源的所有数据流都将通过 RP 转发给接收者。然而,网络中保存的状态数要少得多,因为{ * , G}表示法不需要具体的{S,G}项。另一个差别是共享树不要求接收者知道特定多播源的IP地址,接收者唯一需要知道的IP地址是RP的IP地址。

图1.19所示的共享树是一棵单向树。然而,IP多播也支持双向树:数据流在树中可向上或向下传输。当树有很多源时,这种类型的树很有用。这时候不是所有的数据流都需要经过RP,因为它可以向上或向下传输。

显然,IP 多播需要一种机制,让它能够根据某种发现机制来创建多播路由表。当今最常用的协议是协议无关多播(Protocol-Independent Multicast,PIM)。PIM 使用单播路由表来检查多播包是否是通过正确的入站接口到达的,这个过程叫做反向路径转发(Reverse Path Forwarding,RPF)。这种检查是协议无关的,因为它根据单播路由表的内容做出决策。

PIM有两种类型:密集模式(Dense Mode,PIM-DM)和稀疏模式(Sparse Mode,PIM-SM)。

1.PIM密集模式(PIM-DM)

PIM-DM 是一种低效的模式,因为它假定网络中的每个子网都有给定{S, G}组的接收者。显然通常并不是这样。

基于这种假设,PIM-DM 总是将所有多播包泛洪(flood)到网络上的每个子网。所有不想接收多播数据流的路由器都需要给树发送一条修剪信息,才能防止数据流继续被转发给它。没有接收者的网络分支将从树中修剪掉。

2.PIM稀疏模式(PIM-SM)

PIM-SM的效率比PIM-DM高得多,因为它不需要依赖于泛洪来分发多播数据流。PIM-SM 使用一种“拉动”(pull)模型,在这种模型中,仅当被请求时才将数据流转发给接收者。对于给定的多播组,这要求一条显式的加入消息。最初所有接收者都加入共享树的RP,但能够根据网络中定义的带宽阈值加入到源树中。它具有将接收者移到多播数据流源的最优路径上的优点。

源特定多播(Source-Specific Multicast,SSM)在最近才开始被广泛讨论。在本书的设计案例中可以看到它的应用。这个模型依赖于这样一个事实:对于特定多播组,给定源的IP地址在接收者发送任何加入请求之前是已知的(可以通过一种带外(out of band)机制来获悉源的 IP地址,如因特网组管理协议第 3版[IGMPv3]、IGMPv3lite或URL会合目录[URD])。因而,使用SSM时,总是建立源树,所以运行SSM时不需要共享树和会合点。这种方案具有在源和接收者之间提供最优路由的优点,同时不需要先通过RP发现源。

前面对 IP 多播基本功能的回顾给运营商提出了一个问题:如何对第 3 层MPLS VPN客户提供这种服务。这个问题是一个可扩展性问题。由于每个VPN客户可能生成大量的多播状态,所以服务提供商的骨干网(P 网络)需要进行工程优化,以便能够为所有客户分发并存储这些IP多播信息。另一个问题是不同客户之间可能会有IP地址冲突。

IP 隧道(如 GRE)是一种从 P 网络中消除客户多播状态的方法,因为 IP隧道建立在MPLS/IP网络上。它还可以避免服务提供商在P网络中运行任何IP多播协议,因为所有包都以单播形式发送。然而,由于包需要在所有IP隧道上复制,所以会导致非优化的多播包,而且浪费带宽。另外,由于隧道数量所导致的运行和管理开销也很难控制。

在文档[mVPN]中介绍了另一种可扩展性更好的方法,它引入了多播域(multicast domain)的概念,其中CE路由器维护同本地 PE路由器(而不是同所有远程CE路由器)的邻接关系。这与第 3层MPLS VPN服务部署的概念相同:只需要一个本地路由协议邻接关系,而不是多个与远程CE路由器的邻接关系。在多播域内,终端客户可以维持已有的多播拓扑、配置等,并过渡到第 3层MPLS VPN运营商提供的多播服务。在这种模型中,P路由器不存储任何客户特定多播树,且不管最终客户部署多少个多播组,都只为VPN存储一个组。不管服务提供商使用哪种多播模式(PIM-SM、PIM-DM、SSM 等),P 网络中的状态数量都可以确定,且与客户的多播部署细节无关。

多播域的概念可以通过一组支持多播的VRF来实现,它们之间可以相互发送多播数据流。这意味着如果给定CE路由器发送IP多播包到本地PE路由器,则PE路由器可以将这些多播数据流转发到远程CE路由器的所有相关接口上。支持多播的VRF叫做mVRF。

多播域实质上将给定VPN中的所有客户多播组映射到P网络中一个唯一的全局多播组。服务提供商负责管理这个全局多播组。这种映射是通过将原始多播包封装成一个GRE包来实现的,后者的目标地址为服务提供商P网络内一个已知多播组,且它与给定多播域相关联。GRE 包的源为入口 PE 路由器,多播包必须首先通过它才能进入第 3层MPLS VPN网络。因而,可以将多个VPN客户多播组映射到服务提供商P网络中的单个{S,G}或{ * ,G}。

P网络负责为它支持的每个多播域的PE路由器之间建立一个默认多播分发树(叫做MDT)。P网络中的多播组叫做MDT组。每个mVRF属于一个默认MDT。图1.20说明了多播组概念,并显示了两个独立的VPN,每个VPN在服务提供商P网络中都有自己的多播组。

图1.20 用多播域实现VPN多播

在mVPN环境中将形成各种PIM邻接关系。在每个启用了多播路由的VRF内将存储第一个邻接关系。邻接关系从PE路由器到CE路由器。每个PIM实例创建的客户多播路由信息随相应的mVRF而异。

除PE-CE邻接关系外,PE路由器还与存储了属于相同多播域的mVRF的远程 PE 路由器形成 PIM 邻接关系。这种 PIM 邻接关系可通过多播隧道接口(Multicast Tunnel Interface,MTI)来访问,MTI使用GRE封装,且被用作mVRF之间的传输机制。这个PIM邻接关系对于交换mVRF中的多播路由信息是必要的,并与连接到mVRF的客户相关。

要创建的最后一个PIM邻接关系位于全局PIM实例中:在服务提供商P网络中运行的PIM实例。PE路由器维护与IGP邻居(大多数情况下为P路由器)的全局PIM邻接关系。全局PIM实例用于创建用于连接mVRF的MDT。

图1.21说明所有这些邻接关系。

为多播域创建了所有必要的状态后,多播数据流的转发分为两类:在与给定mVRF相关联的PE路由器接口上收到的来自C网络的包(C包),在其他PE路由器上通过全局多播接口收到的来自P网络的包(P包)。

图1.21 mVPN PIM邻接关系

在PE路由器上收到C包后,将发生如下事件。

1.C包通过与给定mVRF关联的VRF接口到达。

2.根据mVRF中{S,G}或{ * ,G}项的出站接口列表(olist)复制C包。这个olist可能包括mVRF中支持多播的接口,在这种情况下,将使用正常多播过程来转发包。这个olist还可能包含隧道接口(MTI),它连接到客户VPN的多播域。

3.如果olist包含隧道接口,将使用GRE来封装多播包。包的源地址被设置成PE路由器的BGP对等地址,目标地址被设置成与客户VPN相关联的MDT组地址。

4.C包的IP优先级值被复制到P包中。

5.在全局多播路由实例中,C包被视为P包。

6.在P网络中使用标准多播过程转发P包。因此,P路由器不用处理任何多播VPN细节,且将P包当成正常的多播包。

当P包在入口PE路由器处发送到P网络后,将发生如下事件。

1.P包到达全局多播域中的出口PE路由器接口。

2.在全局多播路由表内确定P包的{S,G}或{ * ,G}项。

3.P包被复制到{S,G}或{ * ,G}项的olist包含的P网络接口。

4.如果{S,G}或{ * ,G}项设置了Z标志(指出多播包在MTI上接收或发送),这向接收PE路由器表明这是一个MDT组包,必须拆封以恢复原始C包。

5.根据P包的MDT组地址确定C包的目标mVRF,并根据MDT组地址解析入站MTI接口。

6.C包被提供给目标mVRF,并将适当的MTI接口设置为入站接口。RPF检查确认隧道接口有效,也就是说,具有该源地址的包应通过该MTI接口到达。

7.在VPN网络中,C包被视为正常的多播包。C包被复制到mVRF中所有出现在{S,G}或{ * ,G}项的olist中的多播接口。

这些活动如图1.22所示。

图1.22 mVPN多播包转发

在图1.22中,IP地址为194.27.62.1的源将数据发送给客户VPN中的多播组239.194.0.1。来自这个源的多播C包到达入口PE路由器后,通过使用GRE封装该C包,创建一个P包。P包的源地址被设置为10.1.1.11(该PE路由器的 BGP 对等地址),目标地址被设置为 239.192.10.1(P 网络中这个 VPN 的MDT组)。

IP第6版(IPv6)是设计用于替代IP第4版(IPv4)的新IP协议,当前已在世界上广泛部署和使用。IPv6 的优点主要是其相当大的地址空间带来的,为应对因特网不断扩展以及因特网设备爆炸式增长,必须使用这么大的地址空间。

到2004年年初,大约已经有三分之二的地址空间被分配出去。日益严格的分配策略在很大程度上控制了地址分配的速度,使得IPv4地址空间不会很快被消耗尽。然而,由于需要IP连接的设备数量迅速增长,这种策略导致了地址节约技术的使用,如私有地址的使用以及网络地址转换(Network Address Translation,NAT)设备的使用。NAT动态地将许多私有地址映射到少量的公共地址,通常在位于私有网络和公共因特网之间的网络边缘实现。另一种地址节约技术是对于不需要永久连接的设备,从一个共享地址池中根据需要动态地分配IP地址。尽管这些地址节约技术在过去几年里减少了对地址的需求,但它们与因特网上许多新的发展趋势不兼容。

• 对等应用:尽管过去大多数应用都基于客户端/服务器架构,但是最近开发的许多应用都依赖于对等架构。这包括VoIP、开放文件共享应用(如Napster)以及游戏等。尽管可以通过 NAT 来实现这些应用,但会导致额外的运行开销,且需要在NAT设备上进行应用程序特定的处理。

• 支持因特网设备的爆炸式增长:尽管PC是需要IP连接的主要设备,但当今许多其他类型的设备也需要因特网连接,如移动电话、便携式娱乐设备、个人数字助理以及家用和工业用电器设备。

• “总是在线”连接:因为访问技术(如宽带和无线)的发展和增长,许多设备现在可以享受“总是在线”连接。

这些趋势的结果是,人们期望更加宽松地址分配策略,这只有 IPv6 才能提供。

因为IPv6日益被广泛接受,许多服务提供商的客户都已经要求或在几年内将要求提供IPv6服务。

本节首先概述 IPv6,然后介绍当前运行 IPv4 MPLS骨干的服务提供商可以使用的几种部署方案,特别是 IPv6提供商边缘(IPv6 Provider Edge,6PE)和IPv6 VPN提供商边缘(IPv6 VPN Provider Edge,6VPE)。6PE允许提供全局性IPv6可达性服务,而 6VPE允许在纯 IPv4 MPLS/IP骨干上提供 IPv6 VPN服务。

IPv6是因特网工程任务小组(IETF)在20世纪90年代初设计的,由一组协议和规程组成。接下来的几小节将介绍有关IPv6的重要主题。

1.IPV6包头

基本的IPv6协议可参阅文档[IPv6]。从IPv4到IPv6,协议包头中的重要变化如下:

• 网络地址字段的长度增加为原来的四倍,到达 16 字节,从而理论上可分配3.4*10 38 个可编址节点,可以为地球上每个网络设备提供全球唯一地址。

• 通过使用固定长度的字段和菊花链可选包头(位于固定 IPv6 包头和传输的数据之间),简化了包头格式。

• 删除了IP包头校验和。

• 不再支持逐跳分段。

• 与64位边界对齐。

图1.23比较了IPv4包头和IPv6包头。

图1.23 IPv6和 IPv4包头之比较

2.IPv6编址

[ADDR-ARCH]文档规定了IPv6的地址表示方法和编址架构。

IPv6地址长128位,表示为用冒号分隔的8个16位字段,每个16位字段用4个十六进制字符表示。例如,200A:1234:00CD:0000:0000:005C:7F3C:E34B就是一个IPv6地址。

为得到更简洁的表示形式,用两个冒号表示16位字段0000,且可以省略每个 16 位字段的前导 0。因而,前面的地址可以更简洁地表示为200A:1234:CD::5C:7F3C:E34B。

对于前缀,采用了与IPv4相同的表示方式。例如,200A:1234:00CD::/48表示一个48位的IPv6前缀。

最重要的地址类型如下:

• 全局单播地址:它们是全球统一分配的单播地址。这些地址由3位前缀001标识。

• 链路本地单播地址:它们是用于相同链路上设备之间本地通信的单播地址,在自动配置期间或没有路由器时使用。它们由10位前缀1111111010 (FE80::/10)标识。

• 多播地址:这些地址由8位前缀11111111(FF00::/8)标识。

• IPv4映射的 IPv6地址:它们将 IPv4节点的地址表示为 IPv6地址,由前缀::FFFF/96标识。

• 任意播地址:它们解决了将包发送给最近的一组主机的问题。任意播地址可以从任何单播地址类型分配。

• 唯一本地IPv6单播地址:它们是全局唯一的单播地址,用于本地通信,通常在站点内。它们不能在全球 IPv6 因特网上路由。这些地址在文档[UNIQLOCAL]中指定。

与全局IPv4地址相同,全局IPv6单播地址也采用层次式结构,允许进行高效的前缀汇总,以方便在IPv6因特网上路由。IANA为每个区域性因特网注册机构(Regional Internet Registry,RIR)分配了一个前缀范围。RIR又定义了一种分配策略[IPV6RIR],将自己的前缀范围的一个子集分配给请求 IPv6 地址的实体,如ISP。接下来,ISP将自己的前缀范围子集分配给最终用户,然后,最终用户将该范围内的不同前缀分配给他们的网络链路。

3.邻居发现和自动配置

IPv6 在设计时就经过了仔细考虑,以最大程度地减少配置工作,并促进即插即用。在这方面,邻居发现协议(参阅[IPv6-DISC])允许链路上的IPv6主机和路由器动态地发现或交换本地链路上的相关信息。邻居发现支持如下功能:

• 前缀发现:IPv6主机发现本地链路上的地址前缀集。

• 参数发现:IPv6节点获悉链路参数,如链路MTU。

• 地址自动配置:IPv6节点自动分配IPv6地址给接口。

• 地址解析:IPv6 节点确定链路上目的地的链路层地址(相当于 IPv4中的ARP)。

• 处理不可到达问题:IPv6节点检测邻居的不可达性和重复地址。可以指示IPv6主机将其数据流重定向到更好的第一跳路由器。

在 IPv6 中还可以通过无状态机制和有状态机制来支持地址自动配置。使用IPv6无状态地址自动配置(参阅[AUTO-CONF]),IPv6主机可以通过接口标识符(在链路上唯一标识该接口,如 IEEE MAC地址)和路由器在该链路上通告的前缀地址,自动生成唯一的接口地址。使用 IPv6 状态地址自动配置,IPv6 主机可以使用 IPv6动态主机配置协议(Dynamic Host Configuration Protocol for IPv6, DHCPv6,参阅[DHCP-IPv6]),与服务器通信并获得配置信息(如IPv6地址)。

在IPv6中还通过分配多个地址给同一个接口以及地址租用期的概念,平滑地停止使用旧地址并对主机重新编址。

4.IPv6路由

因为 IPv6 转发也是基于变长前缀的最长匹配,所以 IPv6 路由非常类似于IPv4路由,只是需要处理长度增加了的IPv6地址。

当今所有的IPv4路由协议都可以通过扩展后支持IPv6路由。[RIP-IPv6]对RIP进行了扩展以支持IPv6。扩展后的协议叫做RIPng 或RIPv6。[ISIS-V6]对IS-IS协议进行了扩展,使其能够以集成的方式同时支持IPv4和IPv6路由。另一方面,OSPFv3(在[OSPF-IPv6]中规定)仅支持 IPv6 路由。在同时需要支持IPv4和IPv6路由的情况下,OSPFv3需要以一种特殊模式(夜航,ship in the night)运行以支持IPv6路由,同时OSPFv2用于支持IPv4路由。[BGP-IPv6]说明了如何使用多协议BGP(MP-BGP)来支持IPv6域间路由。

5.IPv6服务质量

IPv6中的服务质量(quality of service,QoS)与 IPv4相同,也依赖于区别服务模型(参阅[DIFF-ARCH])或集成服务模型(参阅[INT-SERV])以及RSVP信令(参阅[RSVP])。正如第2章的“IETF区别服务模型和机制”一节将介绍的,IPv6 包头定义的数据流类别(Traffic Class)字段被用来传输区别服务(Differentiated Services)字段。

IPv6包头还包含一个流标签(Flow Label)字段,最初设计用于QoS应用。它的实际用法仍在讨论中,且越来越不受重视,因为QoS的区别服务模型被广泛认可。

6.IPv6安全

IPv6中的安全与IPv4非常类似,因为大多数网络层安全组件,如IPSec架构(参阅[IPSEC-ARCH]),对于IPv6和IPv6都同样适用。

服务提供商可以采用许多种迁移方法,以在其当前的服务组合中增加 IPv6服务。然而,如果运营商已经在网络核心运行 IPv4 MPLS,则需要相应地对这些需要重新评价。例如,对于非常重要收入来源服务(如MPLS VPN服务)以及重要叠加网络(如PSTN中继或ATM中继)的过渡来说,IPv4 MPLS核心网络是支撑性基础设施。因而,在迁移到IPv6服务时,避免影响多服务核心网络的稳定运行至关重要。另外,在核心网络中可能部署了许多高级MPLS功能,如流量工程、快速重路由和MPLS QoS。IPv6迁移方法不能干扰这些 IPv4功能的正常运行,且应让IPv6数据流能够利用这些功能。最后,如果安装的设置具有非常高的MPLS转发性能,可考虑这样的IPv6迁移方法:将MPLS转发用于IPv6数据流。

引入IPv6服务最直接的方法是,将整个网络升级到支持IPv6路由和转发。尽管这种方法最直观,且显然提供了具有良好可扩展性的全局性IPv6连接支持,但是运行 IPv4 MPLS网络的服务提供商通常不能采取这种方法,至少在中短期内不能,其原因如下:

• 他们想避免(至少是推迟)在核心网络中引入 IPv6 支持,因为这可能导致一些使用其他方法可避免的风险和开销。

• 这种方法使得在IPv6数据流不能立刻使用核心网络中部署的MPLS功能,如FRR、TE和MPLS QoS。

• 它要求所有安装的设备具有高性能的 IPv6 转发能力,因为它不能利用MPLS转发。

• 不容易扩展以使 IPv6连接服务支持MPLS VPN服务。

另一种可能的迁移方法是使用 IPv6 over IPv4隧道。这需要在CE路由器上创建IPv4隧道,然后在这些隧道上运行IPv6路由。它使用简单的已有技术,且不需要升级骨干网(甚至不需要升级PE路由器)。另外,因为隧道IPv6数据流可以自动从 IPv4 MPLS VPN服务的VPN隔离功能中受益,所以有些服务提供商采用这种CE路由器到CE路由器的隧道方法,快速部署IPv6服务,并迅速推向市场。然而,使用这种方法部署IPv6服务使得客户设计、配置和运行更加复杂。另外,这种方法还受到隧道技术的可扩展性限制(在所有CE路由器之间创建和管理隧道以及路由)。由于这些原因,运营商期望使用其他的方法,以支持大规模的生产性IPv6服务。

在后面的“第 2 层服务和伪线路”一节中,将介绍伪线路技术,它允许在IPv4 MPLS骨干上模拟ATM电路、帧中继电路、端口对端口以太网和VLAN连接。然后,可以使用它们来连接 IPv6路由器,最终达到在 IPv4 MPLS网络中支持 IPv6连接的目的。与 IPv6 over IPv4隧道技术类似,这种方法也不需要将核心网络升级到IPv6,也存在类似的可扩展性问题,因为IPv6设备之间所需的电路会相当复杂。同样,也有一些服务提供商为了尽早引入IPv6服务,采用了这种方法。

最后,6PE和6VPE方法(分别在[6PE]和[6VPE]中描述)允许在已有的IPv4 MPLS骨干上支持全球性 IPv6可达服务和 IPv6 VPN服务。这两种方法对于已经运行IPv4骨干的运行商非常有吸引力,原因如下:

• 它们不需要对P路由器进行任何升级,因而保持了骨干的稳定性并使运行成本最低。

• 它们只升级提供IPv6服务的PE路由器(在使用路由反射器的情况下,升级路由反射器或另外为IPv6再部署一个路由反射器网),从而实现渐进式部署。

• 它们具备良好的可扩展性,因为它们依赖于与MPLS VPN架构相同的单边供应模型,添加一个新站点只涉及到该站点连接的端口的配置。

• 它们能够利用核心网络中的MPLS转发功能及其高性能。

• 它们确保IPv6数据流可以自动从核心网络中已部署的高级MPLS功能(如FRR、TE和MPLS QoS)中获益。

本章前面介绍的第3层MPLS VPN架构引入一种基本模式(paradigm):IPv4 VPN数据流在 IPv4 MPLS核心网络上透明地路由和传输,核心网络对这些 IPv4 VPN路由一无所知,而只知道运营商的内部IPv4路由。这是通过组合使用如下技术实现的。

• 层次型路由,核心网络建立 IPv4 PE-to-PE连接,只在PE路由器之间通告 IPv4 VPN可达性,这种可达性对核心网络是透明的。

• 通过核心网络在 IPv4 MPLS LSP的PE路由器之间以隧道方式传输 IPv4 VPN包,核心网络无需知道 IPv4 VPN。

6PE 解决方案使用相同的透明路由和传输机制,在不支持 IPv6 的 IPv4 MPLS骨干上实现全局的IPv6可达性。显然,最重要的差别是,在PE路由器之间借助于MP-BGP通告的可达性信息不再是 IPv4 VPN前缀,而是 IPv6前缀。所以 PE 路由器变成了双栈路由器(它们同时运行 IPv4 和 IPv6),被称为 6PE路由器。它们在访问接口上支持IPv6(通常也支持IPv4),但在面向核心网络的接口上只支持 IPv4和 IPv4 MPLS。

P路由器仍然不支持IPv6,它运行常规的IPv4路由和IPv4标签分发。这种架构如图1.24所示。

图1.24 6PE架构

一种理解 6PE解决方案的方法是:Pv4 MPLS核心网络高效地承载另一个VPN的数据流,该VPN的数据流和地址空间正好是 IPv6。与 IPv4 VPN的情况一样,核心路由器也无需知道属于该VPN的路由。然而,需要注意的是,这个特殊的“VPN”不涉及[2547bits]的路由控制机制(如VRF、路由区分标志、路由目标等),因为IPv6的路由和转发表与IPv4的路由和转发表是分开的。

从控制平面的角度看,在连接到6PE路由器(入口6PE路由器)的源IPv6站点与连接到另一个6PE路由器(出口6PE路由器)的目标IPv6站点之间可以进行通信前,需要先执行如下步骤:

1.在核心网络中,通过 IPv4 IGP协议将出口 6PE路由器环回接口的 IPv4地址的可达性,通告给所有P路由器和所有其他6PE路由器(参阅图1.25中的第1步)。

图1.25 6PE控制平面操作

2.通过常规IPv4标签分发技术(如LDP协议),在核心网络中将这个IPv4环回地址的标签分发给所有P路由器和 6PE路由器。这使得将以 IPv4 LSP的形式,在入口6PE路由器和出口6PE路由器之间建立IPv4连接(参阅图1.25中的第2步)。

3.6PE路由器之间使用标签IPv6地址簇运行MP-BGP协议。因为核心只支持IPv4,所以MP-BGP会话在IPv4栈上运行。获悉到目标IPv6前缀的可达性后(如通过与 IPv6 CE路由器运行的某种 IPv6路由协议,如图 1.25中的第 3步所示,或通过IPv6静态路由配置),出口6PE路由器将这个前缀的可达性通告给其他所有使用MP-BGP的6PE路由器,如图1.25中的第4步所示。因为核心只提供6PE路由器之间的IPv4连接,所以在通告IPv6可达性时,出口6PE路由器必须将其IPv4地址作为BGP下一跳地址传送给其他6PE路由器。然而, BGP协议规范假定BGP下一跳(Next Hop)字段与可达性信息(这里为 IPv4)采用相同的地址簇。前面已经介绍过,为将IPv4节点地址表示为一个IPv6地址, IPv6编址架构精确地定义了IPv4地址到IPv6地址的映射。出口6PE路由器的IPv4地址在BGP下一跳字段中被映射到相应的IPv6地址。同时出口6PE路由器通告该 IPv6 前缀的标签。最后,出口 6PE 路由器在其 LFIB 中为这个标签/前缀生成一个条目,指示如何转发包含该标签的包。根据标签分配策略,它可能弹出标签,并转发到前往目的地的下一跳接口,也可能弹出标签并在IPv6转发信息库中执行一次查询。

4.运行常规BGP路由选择算法后,入口6PE路由器使用收到的IPv6前缀条目建立IPv6转发信息库,这些条目指示包含该IPv6前缀的包将:

——使用MPLS及标签栈进行封装,且底部标签为MP-BGP协议通告的用于该 IPv6 前缀的标签,顶部标签为核心网络中通告的用于出口6PE路由器IPv4环回地址(它是该IPv6前缀的BGP下一跳地址)的标签;

——沿前往出口6PE路由器的IPv4最短路径转发到下一个接口。

5.如果在源站点和入口6PE路由器之间使用了某种路由协议,入口路由器将在这种路由协议中通告IPv6前缀的可达性,如图1.25中的第5步所示。

执行这些步骤后,就可以在 IPv4 MPLS骨干上进行 IPv6通信了。当入口6PE路由器收到IPv6包后,它将在其IPv6转发信息库中查询控制平面生成的、与目标IPv6地址匹配的条目,如前所述。因而,入口6PE路由器在IPv6包前面加入一个标签栈,底部标签为MP-BGP协议通告的该IPv6前缀标签,顶部标签为核心网络标签分发协议通告的BGP下一跳IPv4环回地址标签。最后,入口 6PE路由器通过前往出口 6PE路由器的下一跳接口,将带标签栈的包转发到核心网络。

P路由器执行常规的IPv4标签交换操作,这导致最顶层标签的交换(如果使用了PHP,将在次末路由器上弹出该标签)。

最终,该数据流将被出口6PE路由器接收。在核心网络使用PHP的情况下,收到的包只有一个标签,即 MP-BGP 协议通告的 IPv6 前缀标签。否则,出口6PE路由器首先弹出IPv4标签,从而暴露MP-BGP协议通告的标签。当6PE出口路由器在其标签信息库中执行对该标签的查询时,它将找到控制平面生成的条目,该条目告诉它如何正确地转发该包。

在每跳上的包转发过程如图1.26所示。在这个范例中,使用了PHP协议,且通过MP-BGP协议给每个IPv6前缀分配一个独立的标签,使得出口6PE路由器可以在不执行IPv6查询的情况下对包进行标签交换。

图1.26 6PE数据平面操作

正如读者看到的,IPv6站点中的IPv6设备对核心网络MPLS上发生的IPv6包转发一无所知,它们以常规IPv6方式运行。通常,MPLS核心中的P路由器也不知道它们交换的MPLS包实际上包含IPv6数据流。

与MPLS VPN架构相同,6PE路由器可以运行全互联MP-BGP会话来交换IPv6可达性,也可以使用常规BGP扩展性技术(如路由反射器)。

6PE 方法可以跨越多个自主系统运行。一种情形是,6PE 解决方案被限定在每个自主系统中。在这种情况下,这些自主系统的ASBR交换常规IPv6可达性信息(甚至不知道其他网络在使用6PE方法)。另一种情形是,6PE解决方案覆盖多个自主系统。在这种情况下,在不同自主系统的路由反映器之间(或直接在6PE路由器之间)交换包含标签的IPv6可达性信息。同时,在不同自主系统的ASBR之间交换6PE路由器环回地址的带标签IPv4路由,以确保可以通过IPv4 LSP跨越不同自主系统到达 6PE路由器。

除了可以通过6PE方法提供IPv6全局性连接服务外,客户还可能要求服务提供商提供 IPv6 VPN服务。需要这种 IPv6 VPN服务的主要原因是,需要隔离最终用户的内部网(与 IPv4 VPN服务相同)。6VPE方法结合采用了6PE的“IPv6处理”与 IPv4 MPLS VPN的“VPN处理”(在前面1.1一节中介绍过),以便在IPv4 MPLS骨干上支持这种 IPv6 VPN服务。

它对6PE方法的主要扩展如下:

• 在MP-BGP中使用一个为6VPE定义的地址簇,即VPN-IPv6地址簇(对于“IPv6”,地址簇标识符 AFI=2,对于“带标签的 VPN”,子地址簇标识符SAFI=128)。VPN-IPv6地址是一个长24字节的实体,前8个字节是路由分区标志(route distinguisher,RD),后 16个字节是一个 IPv6地址。RD的作用和编码与 IPv4 VPN完全相同。

• 使用第3层MPLS VPN架构的VRF概念(每个VPN都有独立的路由和转发表)以及所有用于控制 VRF 路由导入和导出的机制,包括使用路由目标标记路由。

6VPE方法具有与6PE方法相同的优点。例如,与6PE一样,只有实际连接 IPv6 VPN服务的PE路由器需要升级,以支持 IPv6和6VPE功能。因而,服务提供商也可以在不对核心路由器进行升级或修改配置的情况下,引入 IPv6 VPN服务。

此外,因为 6VPE依赖与 IPv4第3层MPLS VPN完全相同的机制,所以服务提供商可以为最终用户提供与 IPv4完全相同的 IPv6 VPN服务和功能,这使得 IPv6 VPN服务更易于理解,更容易在客户内部网中集成。

最后,服务提供商可以使用同一组操作、管理和维护(OAM)工具来支持IPv4和 IPv6 VPN服务,从而显著地降低运行成本。

传统上,数据网络的组件由许多层组成,每层为其上各层提供明确的服务。在传输层,服务提供商可以部署光纤设备(如 SDH/Sonet/xWDM )和铜缆(xDSL、E1、T1)技术,以提供租用线路服务。在这层之上,部署传输服务(X.25、帧中继、ATM等),它们可以提供虚拟租用线路或虚电路(virtual circuit,VC)服务。最后一层为网络层,它提供 IP 服务,如因特网接入和基于网络的第 3层 VPN。当前,大多数路由器都可以绕过传输层,直接从传输设备那里获得服务。

由于对第3层服务的巨大需求,路由器的能力已经超越第2层设备,大多数服务提供商在其ATM骨干上部署OC-12链路,而在其IP/MPLS网络上部署OC-48甚至OC-192链路。因此,这些提供商正在考虑使用其IP网络的可用带宽来提供第2层服务。随着基于MPLS的伪线路技术的引入,这种情况在最近几年确实发生了。

伪线路技术提供了在IP/MPLS基础设施上模拟第2层传输服务所需的全部机制。

有几种组件被用来创建伪线路服务,[pwe3-req]描述了这些组件。这些元素提供了不同的功能:

• 附接电路(Attachment Circuit,AC):物理或虚拟电路,用于将 CE设备(如第 2 层交换机或路由器)连接到 PE 路由器。AC 可以是帧中继VC、以太网端口、以太网VLAN、ATM VC、ATM VP(virtual path,虚路径)、HDLC电路、PPP等。

• 伪线路(Pseudowire,PW):位于两个提供商边缘(PE)设备之间的连接,用于连接两个相同或不同类型的AC。它通过以MPLS方式进行封装,承载来自AC的第2层数据流。

• 伪线路边缘(PE)设备:服务提供商边缘设备(交换机或路由器),用于为终端客户提供连接和服务。

• 隧道标签交换路径( LSP ):在这里使用 MPLS ,伪线路架构(参阅[pwe30cp])依赖于在两个支持伪线路的边缘设备之间的两个方向上的LSP(隧道LSP)。MPLS标签标识隧道LSP,并用于承载给定入口和出口PE设备之间的一条或多条伪线路。创建隧道LSP的方法有很多种,如使用LDP或具有标签分发功能的BGP协议自动分发标签,在PE设备之间部署流量工程隧道,或在源和目标PE设备之间的路径上设置静态标签。

• 定向LDP会话:该目标LDP会话运行在提供伪线路服务的PE设备之间,用于交换伪线路的设置和状态。

• 虚电路标签:伪线路转发等价类(Forwarding Equivalence Class,FEC)为每个AC提供一个本地分配的唯一标签。这些标签通过定向LDP会话被告知适当的远程PE设备。

• 伪线路标识符(Pwid):每个伪线路通过一个唯一标识符(32位)进行标识。

图1.27说明这些组件中的一部分。

图1.27 伪线路网络组件

注意 图1.27表明,隧道LSP可承载多条伪线路。使用单个隧道LSP足够了,因为虚电路标签标识了各条伪线路。

伪线路转发等价类

在PE设备之间使用LDP下游主动模式,通过定向会话通告伪线路设置。如图1.28所示,使用LDP标签映射消息来传输伪线路的信息,它包含FEC TLV、标签TLV和可选参数TLV(如果必要)。

如图 1.29所示,FEC TLV包含一个Pwid FEC元素,它标识与通告的标签相关联的伪线路电路。

• C:控制字(1位),如果这位被设置,将包含控制字。

• PW-类型(15位):VC的类型,如FR、ATM、VLAN、以太网、PPP、HDLC。

• PW信息长度(8位):字段PWID和接口参数的长度。

• 组ID(32位):表示一个PW组。

图1.28 伪线路的LDP标签映射消息

图1.29 Pwid FEC元素

• PW ID(32位):连接标识符,和PW-类型一道标识特定的PW。两端的PW ID和PW类必须相同。

• 接口参数(变长):面对边缘的接口的参数,如MTU。

可以通过几种方法让两个附接电路交叉连接,在它们之间建立一条伪线路电路。[pwe3-cp]描述了自动发现和自动配置的用法,然而,当前最常用的方法是通过路由器的命令行界面(command-line interface,CLI)手工进行配置。

使用这种方法,运营人员必须首先在每个伪线路要连接的PE路由器上建立附接电路。建立本地附接电路后,便可以配置伪线路连接,包括定向LDP会话的端点、唯一的Pwid等。

如果在入口和出口PE路由器之间已经存在定向LDP会话,可以使用该会话来建立伪线路。反之,将根据伪线路设置配置指定的端点参数(如IP地址)创建这样的会话。

收到LDP标签映射消息后,每个PE路由器将匹配Pwid信息,从而建立连接。然后,对于在入口和出口PE路由器之间传输的所有数据流设置该消息包含的伪线路标签。

这个事件序列如图1.30所示。

图1.30 伪线路信令和设置

根据服务类型的不同(ATM、帧中继、以太网等),将使用不同的封装。它们分别是在[pwe-atm]、[pwe-fr]、[pwe3-eth]和[pwe3-sonet]中定义的。除封装外,它还将承载一个控制字(32位实体),它提供了有关给定服务的额外信息。例如,用于以太网封装的控制字确保正确的顺序。对于帧中继,控制字包含协议控制信息,如前向显式拥塞通知(Forward Explict Congestion Notification,FECN)、后向显式拥塞通知(Backward Explict Congestion Notification,BECN)、丢弃合格性(Discard Eligibility,DE)等,还有确保顺序正确的信息。

成功建立伪线路后,第2层协议数据单元(Protocol Data Unit,PDU)通过与伪线路相关联的附接电路进入PE路由器后,将被发送到伪线路上。

图1.31表明,第2层数据流通过MPLS网络传输时,其内层标签(VC标签,图中用VL表示)标识了伪线路,外层标签(图中用OL表示)标识了入口和出口PE路由器之间的隧道LSP。

图1.31 伪线路包流

相关图书

Web应用安全
Web应用安全
企业“IPv6+”网络规划设计与演进
企业“IPv6+”网络规划设计与演进
“IPv6+”网络技术创新:构筑数字经济发展基石
“IPv6+”网络技术创新:构筑数字经济发展基石
社交网络对齐
社交网络对齐
华为HCIA路由交换认证指南
华为HCIA路由交换认证指南
非常网管 IPv6网络部署实战
非常网管 IPv6网络部署实战

相关文章

相关课程