MPLS网络设计权威指南（异步图书）
Author: Jim Guichard; François Le Faucheur; Jean-Philippe Vasseur
Date: 2012-06-02T00:00:00+00:00

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的考生也能从本书受益。

命令语法规范

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

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

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

• 竖线（|）用于分隔互斥元素；

• 方括号（[]）表示可选元素；

• 花括号（{}）表示必需选项；

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

目录

封面

扉页

内容提要

序言

关于技术审稿人

关于作者

前言

第1章 技术基础：第3层VPN、多播VPN、IPv6和伪线路

1.1 MPLS/IP网络中的MPLS VPN服务

1.1.1 第3层MPLS VPN网络组件

1.1.2 在PE路由器上隔离路由状态

1.1.3 客户-服务提供商路由交换

1.1.4 PE路由器上的标签分配

1.1.5 IP/MPLS骨干上的VPNv4路由通告

1.1.6 将远程路由信息导入到VRF中

1.1.7 第3层MPLS VPN包的转发

1.2 远程访问第3层MPLS VPN服务

1.2.1 通过L2TP VPDN的拨号访问

1.2.2 借助于直接 ISDN的拨号访问

1.2.3 使用PPPoA或PPPoE和VPDN（L2TP）的DSL访问

1.2.4 运营商的运营商架构

1.2.5 运营商的运营商架构中的包转发

1.3 跨越自主系统边界的第3层MPLS VPN服务

1.3.1 AS间背靠背VRF（方案A）

1.3.2 AS间VPNv4交换（方案B）

1.3.3 路由器反射器之间的AS间VPNv4交换（方案C）

1.4 多播VPN

1.4.1 源分发多播树

1.4.2 IP多播共享树

1.4.3 协议无关多播（PIM）

1.4.4 源特定多播（SSM）

1.4.5 第3层MPLS VPN中的多播支持

1.4.6 多播域

1.4.7 mVPN PIM邻接关系

1.4.8 mVPN的多播转发

1.5 MPLS网络上的 IPv6

1.5.1 IPv6概述

1.5.2 在MPLS网络上部署 IPv6

1.5.3 IPv6提供商边缘（6PE）

1.5.4 IPv6 VPN提供商边缘（6VPE）

1.6 第2层服务和伪线路

1.6.1 伪线路网络组件

1.6.2 伪线路的创建和信令

1.6.3 伪线路封装

1.6.4 伪线路包流

第2章 技术基础：服务质量、流量工程和网络恢复

2.1 MPLS网络中的服务质量

2.1.1 数据流需求和服务等级协议

2.1.2 QoS机制

2.1.3 基本QoS与利用率曲线

2.1.4 IETF区别服务模型和机制

2.1.5 区别服务的MPLS支持

2.1.6 组合工具以支持SLA

2.2 流量工程

2.2.1 MPLS流量工程组件

2.2.2 属性层次（有序路径选项集）

2.2.3 TE LSP路径计算

2.2.4 MPLS TE IGP路由扩展

2.2.5 流量工程LSP的信令

2.2.6 流量工程LSP上的路由

2.2.7 解决“鱼形问题”

2.2.8 TE LSP部署方案

2.2.9 重新优化流量工程LSP

2.2.10 MPLS流量工程和负载均衡

2.2.11 MPLS流量工程转发邻接关系

2.2.12 自动建立TE LSP网

2.3 支持区别服务的MPLS流量工程

2.3.1 带宽约束模型

2.3.2 流量工程LSP属性扩展

2.3.3 TE LSP路径计算扩展

2.3.4 流量工程 IGP路由扩展

2.3.5 TE LSP信令扩展

2.3.6 路由到支持区别服务的TE LSP

2.3.7 DS-TE部署示例

2.4 多区域和多AS环境下的MPLS流量工程

2.5 核心网络可用性

2.5.1 保护与恢复

2.5.2 本地与全局恢复

2.5.3 采用 IP路由的网络恢复

2.5.4 使用动态定时器执行LSA发出和SPF触发

2.5.5 MPLS流量工程的网络恢复

第3章 长途通信公司设计案例

3.1 USCom的网络环境

3.2 USCom的网络设计目标

3.3 路由和骨干标签转发设计

3.3.1 因特网和第3层MPLS VPN服务的分离

3.3.2 因特网服务路由反射部署

3.4 第3层MPLS VPN服务设计概述

3.4.1 PE路由器基本工程指导方针

3.4.2 PE路由器控制平面需求

3.4.3 VPNv4路由反射器部署细节

3.4.4 PE-CE路由协议设计

3.4.5 PE-CE链路的 IP地址分配

3.4.6 用过滤控制路由分发

3.4.7 第3层MPLS VPN服务的安全设计

3.5 服务质量设计

3.5.1 因特网服务SLA

3.5.2 第3层MPLS VPN服务SLA

3.5.3 核心网络的QoS设计

3.5.4 网络边缘QoS设计

3.6 USCom网络内部的流量工程

3.7 网络恢复设计

3.7.1 网络可用性目标

3.7.2 网络恢复设计的运营约束

3.7.3 网络恢复设计的开销约束

3.7.4 链路失效的网络恢复设计

3.7.5 USCom网络内部的前缀优先排序

3.7.6 避免临时环路

3.7.7 重用恢复的链路

3.7.8 USCom网络中的多点失效

3.7.9 USCom网络中的链路失效检测

3.7.10 USCom网络中的节点失效

3.7.11 IS-IS会聚

3.7.12 USCom网络中的 IS-IS配置

3.8 USCom网络的设计教训

第4章 国家电信公司设计案例

4.1 Telecom Kingland网络环境

4.2 Telecom Kingland设计目标

4.3 路由和骨干标签转发设计

4.3.1 共享边缘因特网和第3层MPLS VPN服务

4.3.2 因特网服务：路由反射部署

4.4 第3层MPLS VPN服务：设计概述

4.4.1 多服务PE路由器基本工程指导方针

4.4.2 客户VRF命名规则

4.4.3 RT/RD分配方案

4.4.4 网络管理VPN

4.4.5 负载均衡支持

4.4.6 mPE路由器控制平面需求

4.4.7 PE-CE路由协议设计

4.5 运营商的运营商服务

4.5.1 运营商的运营商负载均衡支持

4.5.2 大型运营商的运营商客户连接范例

4.6 远程接入第3层MPLS VPN服务

4.6.1 L2TP VPDN拨号访问

4.6.2 直接 ISDN拨号访问

4.6.3 使用PPPoE或PPPoA和VPDN （L2TP）的DSL访问

4.7 mVPN服务的应用

4.7.1 多播地址分配

4.7.2 多播路由协议支持

4.7.3 PIM-SM的会合点和BSR设计

4.7.4 在mVPN设计中使用数据MDT

4.7.5 限制mPE路由器的多播路由状态

4.8 服务质量设计

4.8.1 第3层MPLS VPN和因特网SLA

4.8.2 核心网络中的QoS设计

4.8.3 第3层MPLS VPN和因特网的网络边缘QoS设计

4.8.4 语音中继的网络边缘QoS设计

4.8.5 第3层MPLS VPN CsC的网络边缘QoS设计

4.8.6 SLA监测和报表

4.9 MPLS流量工程设计

4.9.1 设置每条MPC链路上的最大可保留带宽

4.9.2 TE LSP带宽

4.9.3 路径计算

4.9.4 PE-PSTN1路由器之间的TE LSP

4.9.5 PE-PSNT1与PE-PSTN2路由器之间或PE-PSTN2路由器之间的TE LSP

4.9.6 TE LSP的重优化

4.9.7 MPLS流量工程模拟

4.9.8 TE的可扩展性

4.9.9 使用刷新减少

4.9.10 提供TE LSP网

4.9.11 监测

4.9.12 最后采用的无约束选项

4.10 网络恢复设计

4.10.1 因特网和第3层MPLS VPN数据流的网络恢复设计

4.10.2 PSTN数据流的网络恢复设计

4.11 IPv6因特网接入服务设计

4.12 Telecom Kingland网络的设计教训

第5章 全球服务提供商设计案例

5.1 Globenet网络环境

5.1.1 Globenet的服务项目

5.1.2 Globenet POP的网络结构

5.1.3 Globenet全球性网络的架构

5.1.4 洲际连接

5.1.5 Globenet的路由架构

5.1.6 运营商合作关系

5.1.7 链路类型和保护细节

5.2 Globenet网络的设计目标

5.3 第3层MPLS VPN服务设计

5.3.1 共享边缘因特网和MPLS VPN服务

5.3.2 Globenet不同地区之间的连接

5.3.3 与地区性服务提供商的连接

5.4 为MPLS VPN客户提供因特网服务

5.4.1 通过全局或VRF路由表接入因特网

5.4.2 使用默认路由接入因特网

5.4.3 通过PE-CE接入链路接入因特网

5.4.4 通过Globenet NAT/防火墙服务接入因特网

5.5 mVPN服务的设计

5.5.1 AS间mVPN的MP-BGP支持

5.5.2 在Globenet地区之间建立mVPN MDT组

5.5.3 AS间mVPN系统流程

5.6 MPLS VPN的安全性和可扩展性

5.6.1 VPN运营安全

5.6.2 VPN控制平面保护

5.6.3 VPN数据平面保护

5.6.4 第3层MPLS VPN服务的可扩展性和会聚

5.6.5 Globenet的路由会聚策略

5.6.6 边缘路由器的能力

5.7 IPv6 VPN的设计

5.7.1 Globenet地区内的 IPv6 VPN设计

5.7.2 Globenet跨地区 IPv6 VPN设计

5.8 ATM伪线路设计

5.9 服务质量设计

5.9.1 VPN和因特网SLA

5.9.2 EMEA、亚太和南美地区中核心网络的QoS设计

5.9.3 北美地区核心网络QoS设计

5.9.4 跨地区核心网络QoS设计

5.9.5 第3层MPLS VPN和因特网的网络边缘QoS设计

5.9.6 同Telecom Kingland的服务提供商间VPN的QoS设计

5.9.7 多播数据流的QoS设计

5.9.8 IPv6 VPN的QoS设计

5.9.9 ATM中继的伪线路QoS设计

5.9.10 SLA监测和报表

5.10 MPLS流量工程设计

5.10.1 设置每条链路的最大可保留带宽

5.10.2 全互联TE LSP网的自动建立和供应

5.10.3 动态流量工程LSP带宽调整

5.10.4 TE LSP路径的计算

5.10.5 北美地区的MPLS流量工程

5.10.6 亚太、EMEA和南美地区的MPLS流量工程

5.10.7 TE LSP重优化

5.10.8 流量工程的可扩展性

5.10.9 使用刷新减少技术

5.10.10 监测TE LSP

5.10.11 最后使用的无约束选项

5.10.12 ATM伪线路的TE设计

5.11 网络恢复设计

5.11.1 Globenet地区内部的MPLS TE快速重路由设计

5.11.2 备用隧道集

5.11.3 支持ATM伪线路的PE路由器失效

5.11.4 IPv6 VPN网络恢复

5.12 虚拟POP设计

5.12.1 将Johannesburg POP转换为VPOP

5.12.2 AS间TE LSP的属性

5.12.3 Globenet VPOP的迁移策略

5.12.4 AS间TE LSP的重优化

5.12.5 路由到AS间TE LSP

5.12.6 VPOP的QoS设计

5.12.7 AS间TE LSP的恢复

5.12.8 ASBR边界的策略控制

5.12.9 Africa Telecom VPOP

5.13 Globenet网络的设计教训

第6章 大型企业设计案例

6.1 EuroBank网络环境

6.1.1 支行描述

6.1.2 办事处描述

6.1.3 核心网络POP描述

6.1.4 数据中心描述

6.1.5 英国城域连接描述

6.2 EuroBank的设计目标

6.2.1 EuroBank网络核心的路由设计

6.2.2 主机路由

6.3 第3层MPLS VPN服务的设计

6.3.1 子公司之间和数据中心的连接需求

6.3.2 办事处的需求

6.3.3 EuroBank集团的VPN定义

6.3.4 数据中心的第3层MPLS VPN设计

6.3.5 POP的第3层MPLS VPN设计

6.3.6 核心的MP-BGP设计

6.3.7 英国办事处的第3层MPLS VPN设计

6.3.8 每个Multi-VRF VRF内部的路由

6.3.9 EuroBank的多播部署和设计

6.3.10 EuroBank经纪业务加密部署和设计

6.4 VoIP的第3层MPLS VPN设计

6.4.1 受管理电话服务的架构

6.4.2 EuroBank VPN内部的网内语音呼叫

6.4.3 跨越EuroBank VPN的网内语音呼叫

6.4.4 PhoneNet中的第3层MPLS VPN设计和EuroBank网外语音呼叫

6.5 服务质量设计

6.5.1 EuroBank的服务类别

6.5.2 办事处和数据中心的数据流分类

6.5.3 低于100Mbit/s的链路的QoS策略

6.5.4 超过100Mbit/s的链路的QoS策略

6.5.5 吉比特以太网链路的QoS策略

6.5.6 支行接入链路的QoS设计

6.6 EuroBank网络的设计教训

附录A 参考文献

版权

第1章 技术基础：第3层VPN、多播VPN、IPv6和伪线路

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

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

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

1.1 MPLS/IP网络中的MPLS VPN服务

许多技术都提供虚拟专用网（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]。

1.1.1 第3层MPLS VPN网络组件

在第 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网络组件

1.1.2 在PE路由器上隔离路由状态

因为每个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客户可以通过哪些接口到达。

1.1.3 客户-服务提供商路由交换

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。

1.1.4 PE路由器上的标签分配

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

1.1.5 IP/MPLS骨干上的VPNv4路由通告

从客户站点收到本地路由信息后，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路由器或路由器反射器。

1.1.6 将远程路由信息导入到VRF中

收到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 端到端控制面数据流

1.1.7 第3层MPLS VPN包的转发

一旦 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包转发

1.2 远程访问第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访问。

1.2.1 通过L2TP VPDN的拨号访问

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

图1.9概述了VPDN概念。

图1.9 使用VPDN概念的拨号

1.2.2 借助于直接 ISDN的拨号访问

与前面的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连接

1.2.3 使用PPPoA或PPPoE和VPDN（L2TP）的DSL访问

数字用户线（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隧道。

1.2.4 运营商的运营商架构

最初的第 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下一跳地址位于客户路由空间内，所以需要与运营商的运营商服务提供商交换这些地址，以提供端到端包转发路径。

1.2.5 运营商的运营商架构中的包转发

因为在运营商网络的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]。

1.3 跨越自主系统边界的第3层MPLS VPN服务

伴随着第 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）。

1.3.1 AS间背靠背VRF（方案A）

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

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

图1.15 （方案A）提供商之间的连接

1.3.2 AS间VPNv4交换（方案B）

这个模型允许自主系统边界路由器（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间连接

1.3.3 路由器反射器之间的AS间VPNv4交换（方案C）

这种模型在不同自主系统的路由反射器之间进行外部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]。

1.4 多播VPN

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

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

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

1.4.1 源分发多播树

在源树中，多播组的源主机位于树根处，而接收者位于树枝的末端。多播包在树上从源主机向下流向接收者。在源树中，使用记号{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}加入消息给源（实际上由本地路由器代表接收者发送）。

1.4.2 IP多播共享树

共享树的根为网络中某个地方的一个公共点。这个公共点叫做会合点（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，因为它可以向上或向下传输。

1.4.3 协议无关多播（PIM）

显然，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，但能够根据网络中定义的带宽阈值加入到源树中。它具有将接收者移到多播数据流源的最优路径上的优点。

1.4.4 源特定多播（SSM）

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

1.4.5 第3层MPLS VPN中的多播支持

前面对 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 网络中的状态数量都可以确定，且与客户的多播部署细节无关。

1.4.6 多播域

多播域的概念可以通过一组支持多播的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多播

1.4.7 mVPN PIM邻接关系

在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说明所有这些邻接关系。

1.4.8 mVPN的多播转发

为多播域创建了所有必要的状态后，多播数据流的转发分为两类：在与给定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组）。

1.5 MPLS网络上的 IPv6

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

到2004年年初，大约已经有三分之二的地址空间被分配出去。日益严格的分配策略在很大程度上控制了地址分配的速度，使得IPv4地址空间不会很快被消耗尽。然而，由于需要IP连接的设备数量迅速增长，这种策略导致了地址节约技术的使用，如私有地址的使用以及网络地址转换（Network Address&nbsp;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服务。

1.5.1 IPv6概述

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都同样适用。

1.5.2 在MPLS网络上部署 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）中获益。

1.5.3 IPv6提供商边缘（6PE）

本章前面介绍的第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路由器。然而，&nbsp;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路由器。

1.5.4 IPv6 VPN提供商边缘（6VPE）

除了可以通过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服务，从而显著地降低运行成本。

1.6 第2层服务和伪线路

传统上，数据网络的组件由许多层组成，每层为其上各层提供明确的服务。在传输层，服务提供商可以部署光纤设备（如 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层传输服务所需的全部机制。

1.6.1 伪线路网络组件

有几种组件被用来创建伪线路服务，[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。

1.6.2 伪线路的创建和信令

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

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

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

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

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

图1.30 伪线路信令和设置

1.6.3 伪线路封装

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

1.6.4 伪线路包流

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

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

图1.31 伪线路包流

第2章 技术基础：服务质量、流量工程和网络恢复

服务质量（Quality of Service，QoS）、流量工程和网络恢复技术是当今网络的有机部分。这几种技术都在网络的核心和边缘中得到了广泛应用。因而，本章的目标是提供一个关于这些技术的高级概述。

与前一章相同，我们的目标不是提供关于每种技术的所有技术细节。在附录“参考文献”中列出的参考资源将用方括号标出，读者可从那里获得更详细的信息。

2.1 MPLS网络中的服务质量

QoS 可以确保包在网络中传输时得到适当的处理。这有助于满足应用程序和最终用户的需求和期望，符合客户与网络运营商签订的协议。

本节首先介绍数据流需求和服务等级协议（Service Level Agreements，SLA），然后介绍用于在网络中实施QoS的机制，最后介绍如何组合使用这些QoS机制，在网络边缘和网络核心设计QoS。

2.1.1 数据流需求和服务等级协议

很多相关的衡量标准可用于描述数据流需求，如下面各小节所述。

1．应用程序需求

与其他统计多路复用网络（如帧中继和ATM）一样，当试图描述MPLS/IP网络对数据流的影响时，很自然地会考虑如下衡量标准。

• 哪些包到达，哪些包没有到达。它描述丢包。

• 在到达的包中，它们花费了多少时间，这个时间是否在变化？它描述包延时和延时差异。

• 这种服务什么时候可用？它定义了服务可用性。

因特网工程任务组（Internet Engineering Task Force，IETF）的 IP性能衡量工作组（IP Performance Metric Working Group，IPPM）为这些衡量标准制定了正式规范。

如果给定包到达了目的地，且在合理的时间内到达（意味着它对应用程序仍有用），则该包没有丢失（参阅[IPPM-LOSS]）；否则，认为它丢失了。网络中的丢包可能由于网络设备的出口队列因拥塞而过长，导致不得不丢弃包而引起。2.1.6节将更详细地介绍该主题。需要指出的是，即使在网络中实施了流量工程，使平均负载远低于链路容量，也可能会由于队列过长而导致丢包。这是因为有可能在非常短的时间内产生大量与队列操作相关的突发数据流。在网络拓扑发生变化后的重会聚过程中，包在路由时可能进入黑洞，这也会导致丢包。

网络中的延时可以描述为单向延时或往返时间。

对于给定的网络包，单向延时（参阅[IPPM-OWDELAY]）指的是，从该包的最后一位从源测量点发送出来到包的第一位被目标测量点收到为止所经历的时间。

往返延时（参阅[IPPM-RTDELAY]）常被称为往返时间（round-trip time， RTT），是指从包的最后一位从源测量点发送出来，然后被目标测试量收到并发送回来，再到包的第一位被源测量点收到为止所经历的时间。

两个包之间的延时差异（参阅[IPPM-DELVAR]）是指这两个包的单向延时之差。

在高端高速路由器中，交换延时的数量级为10μs，因而可以忽略。这样，网络中的单向延时由三个主要部分组成：

• 每跳的序列化延时：它是将包的所有位送到线路上所花费的时间。在低速链路上这是非常可观的（在 64 kbit/s 的链路上，1500 字节的包为176 ms），而在高速链路上则非常微不足道，可以忽略不计（在 10 Gbit/s的链路上，1500字节的包为 1.2 ms）。对于给定链路，这种延时显然是固定的。

• 端到端传播延时：它是信号从链路的一端传播到另一端所花费的时间。它受光纤上光速（或铜缆上电信号的传播速度）的制约，每 1000 km大约为 5 ms。同样，对于给定链路，它是一个固定值。

• 每跳的排队延时：它是包在出口队列上等待其他包传输完成以使它可以发送到线路上所花费的时间。这个延时随队列的长度而变化，而队列的长度又取决于包到达分布和队列服务速度。

在路由没有变化时，因为对于给定路径的序列化延时和传播延时都是固定值，所以延时差异主要由每跳的队列延时变化而导致。在发生路由变化时，数据流路径也将相应改变，这将导致延时的突然变化。

可用性是指在源和目标测量点之间可用来传输数据流的服务可用时间，通常表示为可用时间对总测量周期的百分比。

尽管使用给定网络的许多应用程序有不同的QoS需求，但实际上按QoS需求将它们分为几个较大的类别，这些类别称为服务类。这种服务类的数量和定义是任意的，取决于环境。

在电话通信中，将说话者发出声音到接听者听到声音之间的延时称为口—耳（mouth-to-ear）延时。电话用户对于这种延时非常敏感，因为它可能影响交流和导致回声。[G114]指出，低于 150 ms的“口—耳”延时可使大多数电话用户可得到非常高质量的通话效果。因而，它被用作高质量VoIP应用的设计目标。在良好或中等质量可接受的情况下，将使用更宽松的设计目标。

因为接收VoIP网关上的译码器需要对固定速率的语音样本解码，所以通常使用去颤缓冲区来补偿接收流中的延时差异。这个缓冲区将延时差异修正为固定延时。VoIP网关通常使用自适应去颤缓冲区，它根据当前观察到的延时差异动态地调整大小。这意味着网络中包的延时差异将直接导致“口—耳”延时。

因而，假定电话应用程序本身的延时为 40 ms（分包时间、语音活动检测、译码器编码、译码器解码等），则对于高质量语音，VoIP单向延时目标与网络的延时差异目标之和为 110 ms（包括核心和接入链路）。

假定丢包为随机分布，则0.1%～0.5%的丢包率导致的服务质量下降不易察觉或完全可以容忍，这通常被用作高质量VoIP服务的设计目标（参阅[SLA]）。

对于交互式关键任务应用程序，300～400 ms的端到端 RTT通常是合理的设计目标，可以确保最终用户的工作不受网络延时的影响。延时差异无关紧要。对于这种应用，0.5%～1%的丢包率是合理的设计目标，只会导致相当少的重传。

对于非交互式关键任务应用程序，关键的QoS元素是保持较低的丢包率（目标为0.1%～0.5%），因为它是通过TCP防拥塞机制实现大吞吐量的因素。这些应用程序只需要非常宽松的延时目标，且延时差异无关紧要。

2．服务等级协议

服务等级协议（Service Level Agreement，SLA）是运营商和客户签订的一种合约性协议，是运营商承诺满足客户特定QoS数据流需求的正式文件。

运营商提供的SLA通常由如下元素组成：

• 流量调节规范（Traffic Conditioning Specification，TCS）：它是有关数据流将获得的服务类别承诺。例如，对于给定站点可能表示如下：

——来自该站点不超过 1 Mbit/s的VoIP数据流将获得“Real-Time”类QoS，超过该速率的VoIP数据流将被丢弃。

——不超过500 kbit/s的SAP数据流将获得“Mission-Critical”类QoS，超过该速率的SAP数据流将在不保证质量的情况下传输。

——其他数据流将获得“Best-Effort”类QoS。

• 服务等级规范（Service Level Specification，SLS）：使用前面介绍的延时、延时差异、丢包率和可用性等指标来描述不同类别的QoS承诺。

• SLS报表：运营商为用户提供的报表，描述了网络中实际观察到的QoS。

• 商业条款：指定在没有满足QoS承诺时如何处理，可能包括根据与承诺的差异计算赔偿金额。

SLS承诺是统计性的，相应的SLS报表以实际测试为基础。样本数据流被注入到测量点之间的网络中，然后记录这些样本数据流的QoS指标（延时/抖动/丢包）。SLS必须指定：

• 如何测试各个指标；

• 对哪些样本序列测试这些指标以及这些样本序列的生成频率；

• 如何根据对样本序列的指标测试结果推导出统计信息。

可以定义多种统计信息，如百分比、平均值和最小值等，参阅[IPPM-OWDELAY]。然而，SLS必须足够简单以方便运营商和客户交流，且承诺越严格，运营商就越难满足承诺，所以当今提供的SLS通常都基于一段时间内的平均测量值，如一个月。

SLS必须指明承诺的跨越范围。如果CE路由器不由运营商管理，这个范围是 POP 到 POP；如果 CE 路由器由运营商管理，它通常基于点到网络云（point-to-cloud）模型。SLS承诺表示为CE-to-POP、POP-to-POP和POP-to-CE。然而，对于某些类别，如 VoIP，它有时会基于点到点模型，SLS 承诺表示为CE-to-CE。相比于多个分段上的联合承诺，这种方法为最终用户提供了更精确的端到端QoS指示器。这两种模型如图2.1所示。

图2.1 点到网络云和点到点SLS模型

例如，SLS可能指出，“Real-Time”服务类别的承诺为：单向延时、延时差异和丢包率分别小于 50 ms、25 ms和 0.25%；测量方式是每 5 min生成样本序列，从POP到POP测试，并取一个月的平均值。

2.1.2 QoS机制

前一节指出，主要的QoS衡量指标为延时、延时差异和丢包率。我们还了解到，延时（不包括由于序列化和传播导致的延时）、延时差异和丢包率都是由出口排队引起（在网络拓扑没有变化的情况下）。这也解释了为什么这里将介绍的QoS机制都以不同的方式降低需要高服务质量的数据流在出口队列中的等待时间。

在2.5节中，将介绍一些机制，用于提高网络拓扑发生改变后网络恢复的速度，以减少这种情况下的丢包率和延时差异。

2.1.3 基本QoS与利用率曲线

基本排队理论（参阅[QUEUING1]和[QUEUING2]）指出，对于排队系统，队列占用率和稳定状态取决于实际到达分布和服务模式。如果定义利用率为平均到达速度与平均服务速度的比率，则在高速链路上，不管分布如何，如下几点都是正确的：

• 如果利用率大于1，则不存在稳定状态，队列一直在增长（或超出队列长度限制后不断丢包），因此QoS非常糟糕。

• 如果利用率远远小于1，则队列占用率非常低，QoS将相当好。

• 当利用率增加到接近1时，队列占用率增长，QoS下降，其下降程度取决于包到达分布。

因而，基本QoS与利用率曲线如图2.2所示。这条曲线是一条虚拟的曲线，用于说明一般统计情况。该曲线的实际形状取决于多种参数，包括实际的到达分布（在IP网络中，描述到达分布非常困难）。

图2.2 基本QoS与利用率曲线

该图解释了为什么控制网络中给定数据流的QoS主要是在其经历的每一跳控制其使用的队列的利用率。从某种程度上说，也是控制数据流的到达分布，使其稳定为平均到达速度。

与其他涉及统计多路复用的技术（如ATM或帧中继）一样，可以在每跳以如下三种方式来控制IP网络的利用率：

• 容量规划：通过调整分配给特定队列的链路带宽或共享链路带宽，运营商可以提高服务速率，使得链路利用率/队列长度足够低，以处理给定的数据流到达速率。

• 数据路径机制：通过用不同的队列处理不同类别的数据流，并按不同的优先级和服务速率调度这些队列，可以根据每类数据流的QoS需求分别实现不同的利用率。

• 控制平面机制：通过修改流的路径，可以找到这样的路径，即其每跳的利用率都低于常规最短优先（SPF）路径上相应的利用率（在使用了基于约束的路径时，实际低于预期水平）。

在MPLS/IP网络中使用的基本数据路径机制是因特网工程任务组（IETF）区别服务模型采用的机制，以及用于支持区别服务的MPLS扩展。

在MPLS/IP网络中使用的控制平面机制包括IGP指标调整、MPLS流量工程（MPLS TE）以及支持区别服务的MPLS流量工程（MPLS DS-TE），在本章后面的2.2和2.3两节将分别介绍它们。表2.1比较了它们的QoS特征。

表2.1 QoS控制平面机制

2.1.4 IETF区别服务模型和机制

IETF区别服务模型的目标是在网络中实现差别服务，让各种应用（包括实时数据流）能够获得想要的服务等级，同时保持大型IP网络具有良好的可扩展性。

可扩展性可通过如下措施实现。

• 将数据流分成几个类别。

• 在网络边缘，将许多应用程序/客户流映射到这些类别，从而将需要许多状态信息的功能与核心网络分离。这种映射功能叫作数据流分类和调节。

可以根据许多不同的准则对数据流分类，如与数据流配置文件比较、调整数据流分布（整形、丢弃多余数据流）以及标记包头的某个字段（DS字段）以指出选定的服务类别。

• 让核心路由器只支持在DS字段中指定少量服务类别。

可以通过如下措施来保证适当的差别服务：

• 在每跳都对每类服务采用与其 QoS 需求相应的处理（称为每跳行为[PHB]）。

• 允许控制每个类别的服务速度（通过配置 PHB），以便能够独立地控制每个类别的利用率，从而基于类别进行容量规划。

区别服务架构的关键元素如图2.3所示。

图2.3 区别服务架构

区别服务是一种非常灵活的模型。在这种架构中，每个运营商可以决定支持多少个服务类别，使用哪些PHB，使用哪些流量调节机制，以及如何为每个PHB分配容量让每个服务类别获得所需的QoS。

可将区别服务视为以独立的方式进行路由。区别服务完全在数据路径中运行，可以与任何当前或未来的路由技术结合使用。这也是它可以很容易地与IGP路由、MPLS TE或MPLS DS-TE结合使用的原因。

IPv4服务类型（Type of Service，ToS）字段（以及 IPv6的数据流类别字段）已被修改，最高 6 位被重新定义为区别服务字段（DS 字段，参阅[DS-FIELD]和[DIFF-TERM]），其他2位用作显式拥塞通知（Explicit Congestion Notification， ECN，参阅[ECN]）。

数据流分类和调节功能在网络边缘使用 DS 字段对区别服务代码点（Differentiated Services Codepoint，DSCP）值进行编码。在每一跳，区别服务路由器根据该值选择PHB，并将其应用于转发的每个包。

修改后的 IPv4服务类型字段的最高 3 bit用于表示优先级（Precedence）字段，该字段的用法与 DS 字段类似，但更受限制。DS、DSCP 和优先级字段如图2.4所示。

图2.4 DS字段和DSCP

数据流分类和调节功能块通常位于客户和服务提供商之间或服务提供商之间的服务边界上，它应用于每个到来的包。它定义了需要获得各种区别服务的数据流子集（分类），并为这些数据流进入区别服务核心做准备（调节）。显然，数据流分类和调节策略是高度可定制的，以反映不同的客户需求和运营商提供的服务类别。

数据流分类阶段可以考虑包头的任何字段。例如，如果数据流在上游已被标记，则可以只查看DS字段。分类还可以考虑传输协议（如SMTP、HTTP等）或源和目标 IP 地址（如应用服务器），甚至还可以执行深度包检测。这包括标识客户应用程序中特定类型的事务，或标识针对特定 URL 的 Web 请求。数据流分类用于将各种包流引导到适当的流量调节阶段。

流量调节实例可由下列元素的任意子集组成：测量仪、标记器、整形器和丢包器。

测量仪（meter）用于将已分类的流与约定流量比较，确定每个包是否符合约定流量。该信息将传递给下一个元素。约定流量通常基于一个具有指定突发速率的令牌桶。标记器（marker）设置包头的DS字段，并可能会考虑测量仪的结果。

整形器延迟已分类流的某些包，使该包流进入区别服务核心前符合指定的流量。丢包器丢弃已分类流中的某些包（如测量仪标识的不符合约定流量的包）。这步叫作控制（policing）。

前面已指出，队列占用率取决于利用率和数据流到达分布（换句话说，包是以突发方式到达还是均匀地到达）。正如杜镇看到的，除在网络边界实施约定SLS 外，整形和控制还会影响数据流的到达分布，它们使数据流进入网络时更平滑，从而降低队列占用率。

图2.5是数据流分类器和调节器的逻辑图。

图2.5 区别服务数据流分类器和流量调节器

PHB描述了区别路由器对数据流的（外部可观察到的）转发行为。PHB可以以分配的共享资源方式来指定（如链路带宽比例、缓冲区和优先级），也可以以观察到的相对QoS特征指定（如延时/抖动程度和丢包率）。

IETF 指定了许多 PHB，其中最重要的是默认 PHB、加速转发（Expedited Forwarding，EF）PHB和保证转发（Assured Forwarding，AF）PHB组。

默认PHB对应于所有路由器（未运行区别服务）中最常见的尽力而为转发行为，用于标准数据流，路由器只是尽可能多地转发包。这种PHB适用于没有特殊QoS需求的数据流。

EF PHB（参阅[EF]）用于支持低丢包率、低延时和低抖动服务。EF PHB保证数据流在长期和短期内都获得不低于配置的最小服务速率，而不管其他非EF数据流的负载如何。将最小服务速率配置为小于实际EF负载的到达速率，可使EF队列非常短（即使在短时间内），从而实现EF目标。

[AF]（采用[DIFF-TERM]更新的术语）指定以4种AF类别中的一种来转发包。在每个AF类别中，给每个包分配一个丢弃优先级（共三个）。每个PHB用Afij表示，其中i是AF类别，j是丢弃优先级。给每个AF类别分配一定数量的资源，包括带宽。每个AF类别的转发是独立的。在AF类别中，如果p<q，丢弃优先级为p的包的丢包率将小于（或等于）丢弃优先级为q的包。不管优先级如何，给定AF类别中的包不会重排序。为最大程度地避免AF队列长期拥塞，需要进行活动队列管理，如随机早期检测（Random Early Detection，RED，参阅[RED]），并对每个丢包策略采用不同的阈值。

AF PHB组主要用于一些常见应用，它们要求丢包率很低（如果来自每个站点的总流量低于预订的配置值），还可能需要发送超过欲订配置值的数据流（知道这些超出的数据流不会获得相同的服务质量）。

为保持与以前使用的优先级字段兼容，[DS-FIELD]定义了一套PHB，名为类别选择器PHB（CS0-CS7），它们的DSCP值的最高 3 bit表示以前的优先级值，其他 3 bit设置为 0。例如，CS7对应的DSCP字段为 111000。

表2.2列出了每个PHB的推荐DSCP值，以及子字段优先级的值。

表2.2 DSCP和优先级值

续表

PHB 定义没有指定任何特定的实现机制。为实现特定的 PHB，网络管理员可以激活并调整适当的包调度机制组合，并激活区别路由器支持的队列管理机制。

优先排队（Priority Queuing，PQ）和基于类别的加权公平队列（Class-Based Weighted Fair Queuing，CBWFQ）是在区别路由器上常用的包调度机制。

PQ为队列中的包提供了相对于其他任何队列的绝对优先级，因而仅在当前优先队列中没有需要服务的包时，才为其他队列中的包提供服务。对于优先队列中的包，其他队列中的数据流带来的延时和延时差异影响很小。如果包在优先队列非空时到达，则影响为零。如果包在优先队列为空时到达，则最大可能的额外延时等于完成正在传输的其他队列中的包所需的时间。因而，PQ提供的延时和延时差异是最小的，且几乎不受其他队列中是否有数据流及其负载的影响。这也是PQ是实现EF PHB的最理想机制的原因。CBWFQ支持多个队列，当队列非空，且链路存在拥塞使得队列实际上相互竞争时，它以指定最小速率为每个队列提供服务。CBWFQ 实现还可以支持为每个队列配置最大速率，以及为指定队列配置当前其他队列未使用的最小共享带宽。

RED和加权随机早期检测（Weighted Random Early Detection，WRED）都是活动队列管理机制，它们常常在区别路由器上实现，用于代替尾丢弃（tail dropping）。尾丢弃是最简单的包丢弃机制。它在队列占用率达到指定的队列长度时，丢弃任意的包。

RED维护队列占用率的动态均值，并定义了最小和最大阈值。当动态均值位于最小阈值以下时，不会丢弃任何到达的包；当动态均值位于最小阈值和最大阈值之间时，将随机丢弃一些到达的包；当动态均值超过最大阈值时，将丢弃所有到达的包。这种丢弃用于在发生拥塞时触发传输控制协议（Transmission Control Protocol，TCP）中的防拥塞机制。随机丢弃用于避免所有发送者的TCP循环行为同步，使队列深度及延时保持接近于最小阈值。

WRED是对RED的一种扩展，用于为属于相同队列但丢弃概率不同的数据流，分配不同的最小阈值、最大阈值以及两者之间的丢弃概率曲线。WRED常用于实现每个AF类类别中的多个丢弃优先级。图2.6是AF11、AF12和AF13 PHB的WRED丢弃曲线，它们可能用于AF1类别的队列处理。

图2.6 AF1类别的WRED曲线

2.1.5 区别服务的MPLS支持

对于区别服务（Diffserv），MPLS 的目标是当全部或部分网络运行 MPLS时，为最终用户透明地提供完全相同的区别服务。在IP网络中，区别服务核心路由器指定PHB，通过查看IP头中的DS字段，将该PHB应用于给定包。然而，在MPLS网络中，IP包头封装在MPLS头内部，所以标签交换路由器（Label Switch Router，LSR）不能直接看到DS字段。因而，必须通过其他方式将需要应用于包的PHB传递给路由器。

MPLS包头中的每个标签栈条目包含一个 3 bit的EXP字段，保留以备将来使用（参阅[MPLS-STACK]）。这个字段如图2.7所示。

[MPLS-DIFF]规定了如何在MPLS上支持区别服务，以及如何将EXP字段用于该目的。其中定义了两种传送用于包的PHB的方法：

• 使用E-LSP：单个E-LSP最多可传输8种PHB的数据流，它们可以属于多种区别服务类别（如Default PHB和EF和两个AF类别）。EXP值和 PHB 之间的映射通常依赖于预配置的映射，但这种映射也可以在建立标签交换路径（Label-Switched Path，LSP）时显式地指定。路由器根据EXP字段选择队列和丢弃优先级。图2.8使用E-LSP传输来自EF PHB和AF1类别的数据流。

图2.7 MPLS包头和EXP字段

图2.8 EF和AF1的E-LSP示例

• 使用L-LSP：每个L-LSP只承载单个区别服务类别（如Default、EF或某个AF类别）。路由器根据标签选择队列，仅当选择丢弃优先级时才需要使用EXP字段。图 2.9演示了如何使用两个L-LSP分别传输EF PHB和AF1类别的数据流。

如图2.10所示，在IP和MPLS网络之间的边界上，标签边缘路由器（Label Edge Router，LER）首先确定要应用于 IP包的PHB；然后根据包的目标地址和PHB选择出站LSP；最后，LER设置EXP字段，以指出要应用的PHB。

图2.9 EF和AF1的L-LSP示例

图2.10 区别服务标签边缘路由器

LER确定要应用于包的PHB时，它依赖于数据流分类阶段（类似于前面介绍的IP区别服务中的分类阶段）。因而，PHB可以根据收到的IP包的DS字段得到，也可以根据IP包头的任何其他字段得到。

[MPLS-DIFF]规定了对LDP（参阅[LDP]）和RSVP-TE（参阅[RSVP-TE]）的信令扩展，以建立、维护和拆除E-LSP和L-LSP。然而，E-LSP依赖于预定义的 EXP 值和 PHB 之间的映射，不需要使用这些信令扩展，因为按照定义所需的信息已经预先配置。

尽管在MPLS网络中传输PHB到路由器上的方法与IP网络中不同，但最后实际应用的PHB完全相同（Default、EF、AFij等）。它们可以借助于完全相同的包调度和活动队列管理机制来实现。在MPLS上支持区别服务不涉及任何MPLS特定的调度机制（如每标签队列）。因而，在MPLS上支持的区别服务与IP 网络上支持的区别服务没有区别。然而，MPLS 上的区别服务可以借助于额外的MPLS机制（如TE或DS-TE）得到增强。

当今MPLS上的区别服务部署都使用E-LSP，它预先配置了EXP值和PHB之间的映射（例外情况是标签交换控制ATM MPLS网络，它只能使用L-LSP，因为EXP字段对于ATMLSR不可见）。这允许在核心网络中平滑地实现非常简单的部署，因为部署区别服务时不需要LSP信令，而只需在路由器上重新配置PHB，使其能够根据MPLS包头中的EXP值对包进行分类，并应用必要的PHB。L-LSP可以在MPLS核心网络需要支持超过8个PHB时使用。

2.1.6 组合工具以支持SLA

可以组合使用容量规划、区别服务、MPLS 上的区别服务以及控制平面机制（如 TE 和 DS-TE，它们将分别在“流量工程”和“支持区别服务的 MPLS流量工程”小节中介绍），以控制数据流的利用率，从而控制QoS。下面将介绍如何实现这一目标。

1．核心QoS工程

为帮助理解核心QoS设计面临的挑战，必须简要介绍数据流分布的时间尺度。运营商通常使用 5～10 min的测量间隔严密地监视链路上的数据流利用率。这种监视将提供基于天、周和月的流量趋势。

然而，理解数据流分布基于的时间尺度非常重要，这样才能应用排队理论或执行模拟以预测队列占用率（从而预测QoS）。时间尺度通常为毫秒级。

当前，主要挑战在于对IP核心网络中大量流量在较小时间尺度上的流量特征没有很好的认识。也就是说，很难通过测量长期利用率，来估计在较小时间尺度内，链路上需要排队的包分布。关于这个问题主要有两种流派：

• 一种认为流量随着不断累积趋于平滑，流量聚合具有平滑和马尔科夫（Markovian）属性，所以可以应用M/M/1排队理论。关于M/M/1模型及相关公式的介绍，可参阅文档[QUEUING1]或[QUEUING2]。

• 另一种认为流量聚合后不趋于平滑，流量聚合具有突发性和自相似性。因而，可用于描述队列占用率的理论结果非常有限。

基于对总流量特性的不同假设，与该主题相关的论文得出了关于如下方面的不同结论：为维持特定水平的 QoS （如对于 VoIP ，参阅[TRAFFIC1]、[TRAFFIC2]、[TRAFFIC3]和[TRAFFIC4]），在核心链路上可实现的最大长期利用率。然而，越来越被广泛接受的观点是，在高速链路上，可以实现非常高的大时间尺度峰值利用率（在OC-48和OC-102上，超过90%～95%），同时确保良好的延时/抖动/丢包率特征。在低速链路上，在提供非常好的 QoS 同时，可达到的最大利用率非常低，这表明为确保部分数据流（如VoIP）的高QoS，可能导致更大的带宽浪费。

为确定在给定网络中为达到给定水平QoS可实现的最大利用率，网络运营商使用理论分析、模拟、基于真实观测的启发模型和安全系数等多种方法的组合。

根据基于大时间尺度测量的利用率和QoS性能水平之间的这种关系可知，为核心网络选择QoS设计主要是以下三种因素的折衷：

• 增加链路/端口容量所涉及的资金开销。

• 部署QoS机制（工程、配置、监测、微调等）所涉及的运行成本。

• 期望的QoS性能水平。

也就是说，它是一种在QoS问题上投入带宽和在QoS问题上投入管理机制的折衷。

有些地方提供额外链路容量并不涉及显著的资金开销或交付时间，且只使用非常高速的链路，这种情况下通常不值得为每个类别实现不同的最大利用率。因而，总容量规划是最有效的方法。所以，这种环境的运营商对于正常运行和失效情况都只依赖于容量规划。他们可以通过增加安全系数来弥补容量规划的天生不足（如非预期流量增长或非预期失效）。一种典型的容量规划策略是，保持正常情况下总最大利用率低于 40%～50%，失效情况下低于 70%。此外，为减轻容量规划缺点，有些运营商使用MPLS流量工程来消除本地拥塞：重分发数据流以避免过高的安全系数（它可能导致显著的流量工程和带宽浪费）。

其他一些运营商认为，尽管容量规划是重要工具，但是区别服务也能较好地解决其缺点。当发生非预期事件或情况时，可能会在一段时间内违反容量规划规则。这时可以很容易地使用区别服务来确保性能下降只影响某些类别，而不会对重要类别（如VoIP）数据流产生显著影响。

最后，还有一些网络可能在核心使用低速链路（如DS-3或OC-3），导致不同类别获得的最大利用率显著不同，这意味着总容量规划将导致显著的容量浪费。另外，在世界上有些地方，增加链路带宽可能导致显著的资金投入或很长的交付时间。在这些情况下，广泛地使用区别服务（即使在没有发生失效的情况下）是最有效的方法。这时将基于每个类别执行容量规划。在寻求非常好的链路利用率优化时，可以使用TE或DSTE的基于约束的路由和权限控制能力，来补充区别服务和容量规划，从而优化负载在链路上的分布。

2．边缘QoS工程

网络边缘是位于客户和网络运营商之间的边界。因而，当网络中使用区别服务时，反映SLA流量调节规范所需的全部数据流分类和调节功能都必须部署在边缘上（在PE路由器和/或CE路由器上）。

因为它们专用于单个客户且正好按客户的要求运行，所以不太容易扩充接入链路，提供足够带宽以确保不会发生拥塞。因而，接入链路通常是端到端路径中最主要的瓶颈。由于这个原因，通常只在有大量服务类别的接入链路上支持更细致的QoS。通常在接入链路上的CE路由器和PE路由器上激活对应于服务类别的多个PHB/队列。

另外，对于较长的包，低速链路上的串行化延时可能非常大，所以需要使用分段和交替机制，以便不需要等待长包传输完成，就能传输实时数据流（如VoIP）。

由于显著的串行化延时和低的队列占用率，对低速链路的QoS指标会产生较大的影响，所以在接入链路上，SLS提供的QoS指标取决于接入速度。它们可能还涉及策略、整形（对于具有较高QoS要求的服务类别），或不保证传输超出协议流量的数据流。

3．QoS模型

总之，MPLS网络的设计模型可称为N/M/P，其中：

• N是接入链路上的队列数量；

• M是核心中的队列数量；

• P是TE/DS-TE类别代码，其中：

——0表示没有使用MPLS TE；

——1表示使用MPLS TE；

——2（或更大的数字）表示DS-TE用于两种（或更多种）类别。

常见的QoS模型如表2.3所示。

表2.3 MPLS网络中的QoS设计模型

例如，第3章介绍的USCom使用QoS模型1/1/0（或当客户选择相应接入选项时使用 3/1/0模型）；第 4章介绍的Telecom Kingland采用4/3/1模型；第 5章介绍的Globenet在北美采用5/3/0模型，在世界其他地方采用5/5/2模型；第6章介绍的Eurobank选择了模型1/6/0、3/6/0和6/6/0（取决于接入链路）。

2.2 流量工程

在最初发明网络时就已经出现了流量工程的概念。它是在给定网络拓扑和数据流的情况下，实现高效利用网络资源的艺术。也就是说，流量工程的基本目标是传输数据流，避免网络拥塞并增加网络处理最大流量的能力。为实现该目标，可以使用多种流量工程技术，其中之一是基于MPLS的流量工程。

介绍MPLS流量工程（本节将简称为MPLS TE）最好的方法是从广为人知的“鱼形问题”开始。

IP路由的基本概念是基于目标地址的路由选择。如图2.11所示，当路由器R1和R6发出的目标地址为R5的两个流到达路由器R2后，它们采用相同的IGP最短路径，因为IP包基于目标IP地址进行路由选择。在这个范例中，两个流采用相同的路径：R2-R3-R4-R5。如果这两个流的总流量超出了该路径的网络容量，将不可避免地出现网络拥塞。这种拥塞可以通过将某些数据流路由到另一条可用路径（R2-R7-R8-R4，该路径有空闲容量）来避免。

在这个简单的网络中，可以很容易地调整IGP度量值，以实现数据流在两条路径上的负载均衡（这两条路径通常必须有相同的开销）。然而，现实中的网络显然要复杂得多，IGP 度量值优化不会这么简单，且不总是能提供所需的精细度。所以，这种方法只是IP网络中实施流量工程的一种可能。另一种方法是使用MPLS流量工程，它提供了丰富的功能，有更高的精细度，能够更有效地实现MPLS/IP网络的流量工程。

图2.11 鱼形问题

本节首先回顾TE LSP的约束集（也称为属性），然后介绍计算遵循约束集的TE LSP的方法，再概述如何建立TE LSP的信令。最后，介绍将数据流路由到TE LSP上的方法。

2.2.1 MPLS流量工程组件

MPLS TE 的基本思想是使用流量工程标签交换路径（Traffic-Engineered Label-Switched Path，TE LSP或隧道）在网络上转发数据流，同时考虑约束集、网络拓扑和可用资源等因素，以实现高效利用网络的目标。

简单地说，TE LSP属性（约束）决定了所需的LSP特征。

流量工程LSP属性如下：

• 目的地；

• 带宽；

• 亲和力；

• 抢占；

• 快速重路由保护；

• 优化的度量值。

1．目的地

TE LSP的源是配置该TE LSP的前端路由器，而目的地必须显式配置。在通过离线工具计算TE LSP路径的情况下，TE LSP的源也必须显式指定。

2．带宽

显然，TE LSP的属性之一是其所需的带宽。有几种方法可用来估计带宽需求。最显然的方法是获得TE LSP网涉及路由器之间的流量矩阵，这可以通过各种工具（如 NetFlow）来获得（关于网络管理解决方案的更多细节，请参阅[MPLS-MGT]）。值得一提的是，最近有些推理技术依赖于链路利用率的测量结果来计算流量矩阵。然而，这种方法只提供了一种估计，它的精确度是不确定的，随网络拓扑不同可能差异较大。

两点之间的流模式很少保持不变，通常是时间的函数，且当网络中引入新的服务或仅仅是某种服务使用量增加也会导致流量的增长。因而，网络管理员需要确定两点之间的带宽需求以及多长时间需要重新进行评估。可以采用一种非常保守的方法，如考虑流量峰值、流量峰值的百分比或平均带宽值。确定带宽需求后，可以根据整体目标再乘以一个适当的系数。另一种方法依赖于路由器根据发送到特定TE LSP上的实测流量来确定所需带宽。TE LSP被预先设置为某个值（可以为 0），路由器将持续监测发往TE LSP的目的地的流量。在Cisco路由器上，这种功能称为“自动带宽计算”（autobandwidth）。它提供了非常高的灵活性，有几个可配置的参数：取样频率（对带宽取样的频率）、LSP调整频率以及TE LSP的最小值和最大值。例如，路由器可以每隔 30 min对发送的流量取样一次，从一系列样本中选择峰值，调整TE LSP的频率每天不超过一次，并限制在30Mbit/s（最小值）和200Mbit/s（最大值）之间。这为管理员提供了相当高的灵活性，让他们更容易在网络反应性（适应实际带宽需求）和网络稳定性（调整TE LSP的频率）之间找到平衡点。

3．亲和力

一个代表亲和力的 32bit标志字段，必须与TE LSP穿越的链路集相匹配。简而言之，它可以看作是一种配色方案（最多 32 种颜色），每个网络链路最多可以有 32种颜色。在特定环境下，它可以确保TE LSP只穿越指定颜色的链路。为举例说明，考虑一个有地面链路和卫星链路的网络，它们的主要差别在于传播延时（卫星链路的传播延时一般要高得多），网络管理员可以决定给这些链路指定颜色（设置 32bit 亲和力字段的某些位）。对于承载敏感数据流、需要短时间传播延时的TE LSP来说，需要实施避免使用特定颜色标记的链路的约束。反过来，有时候也需要实施选择特定颜色链路的约束。它们的任意组合都是可能的，从而提供了很高的灵活性。

4．抢占权

抢占权（preemption）指的是最多能够定义7种优先级别。在发生资源争用的情况时，如果由于链路上带宽资源缺乏导致不能满足需求，它允许高优先级TE LSP抢占低优先级TE LSP的资源（从而将后者拆除）。

例如，假设优先级为X1的TE LSP T1由于另外三个TE LSP（T2、T3和T4，它们的优先级分别为X2、X3和X4，其中X2、X3、X4都小于X1）而无法建立。因为T1有更高的优先级，所以它可以优先于其他低优先级的TE LSP满足带宽需求。关于如何确定抢占式TE LSP集的方案和算法细节，可参阅文档[PREEMPT]。注意，低优先级数字表示有更高的优先权（优先级0的优先级最高）。

网络管理员可能由于各种动机而在网络中使用多种优先级。为举例说明，我们将介绍多抢占权方案的两种典型用途。首先，可以确保在发生资源竞争的情况下最重要/关键的TE LSP比其他次重要和次关键的TE LSP优先得到处理。例如，当由于非预期网络流量增长或网络失效导致资源争用时，语音TE LSP应该比数据LSP优先得到处理。其次，在分布式路径计算环境中，它可以避免带宽碎片效果（带宽碎片化后，较大的TE LSP将很难找到适当的路径；因而，可以将它们配置为具有更高的优先级）。

值得注意的是，由于可以配置多种抢占权，这意味可以根据抢占权通告可用带宽。也就是说，对于每个带宽池，可以通告 8 种可用带宽值。例如，考虑链路L，其 100 Mbit带宽将为三个TE LSP保留：

• 带宽为 10 Mbit/s的T1，抢占权为 1。

• 带宽为 20 Mbit/s的T2，抢占权为 3。

• 带宽为 15 Mbit/s的T3，抢占权为 5。

假设只有一个带宽池，则相应的路由器将为链路通告如下可用带宽集：

• 抢占权 0的可用带宽 ＝ 100 Mbit/s

• 抢占权 1的可用带宽 ＝ 90 Mbit/s

• 抢占权 2的可用带宽 ＝ 90 Mbit/s

• 抢占权 3的可用带宽 ＝ 70 Mbit/s

• 抢占权 4的可用带宽 ＝ 70 Mbit/s

• 抢占权 5的可用带宽 ＝ 55 Mbit/s

• 抢占权 6的可用带宽 ＝ 55 Mbit/s

• 抢占权 7的可用带宽 ＝ 55 Mbit/s

例如，对于抢占权为 5、6或7的TE LSP，有 55 Mbit/s带宽可用，而抢占权为 3或4的TE LSP最多有 70 Mbit/s带宽可用，优先级为 0的TE LSP最多有100 Mbit/s带宽可用。当然，在这个范例中，如果前端路由器决定建立一个抢占权为 3的TE LSP并提供 65 Mbit/s的带宽，则TE LSP T3的带宽将被抢占，以满足这个抢占权更高的TE LSP的需求。

5．快速重路由保护

MPLS 流量工程提供了一种高效的本地保护方案，称为快速重路由（Fast Reroute），可以在数十毫秒内将TE LSP快速地重新路由到一条预先建立的备用隧道中（参阅2.5节）。这种本地保护方案可用于网络失效时需要快速恢复的TE LSP，它被设置为一种TE LSP属性。也就是说，在建立TE LSP时，如果穿越的路由器有快速重路由功能可用，可以显式地要求TE LSP的快速重路由保护。这使得可以定义不同的恢复类别，对有些 TE LSP将根据常规MPLS流量工程过程（如本节后面所述）进行重路由，其他TE LSP将通过快速重路由实现快速恢复。2.5节将详细介绍其他参数。

6．优化的度量值

最短路径的概念总是与特定度量值相关。通常，在IP网络中，每条链路都有一个度量值，所谓最短路径就是指所有链路的度量值之和最小的那条路径。

MPLS TE也使用度量值来选择满足指定约束条件的最短路径隧道。MPLS TE还引入了自己的度量值。在链路上配置了MPLS TE时，路由器将通告该链路的两个度量值：IGP度量值和TE度量值（两者可能相同，也可能不同）。

为说明它的应用，考虑链路有不同带宽和传播延时特征的情况。显然，使用不同的度量值来反映每个属性非常方便。例如，可以使用IGP度量值来反映链路带宽，而将 TE 度量值表示为链路传播延时的函数。因此，一个名为[SECOND-METRIC]的 IETF规范提议在计算最短TE LSP路径时应具有指定应优化哪些度量值的能力。在Cisco路由器上配置了TE LSP时，也可以指定要优化哪些度量值。例如，对于承载语音数据流的TE LSP，最短路径可能是提供最短传播延时的路径。反之，对于承载大量数据流的TE LSP，计算最短路径的目标应是尽可能跨越高速链路。当前的约束最短路径优先（Constraint Shortest Path First，CSPF）实现试图根据这两种度量值之一（IGP或TE）来计算最短路径。双重度量值优化是一个 NP-complete 问题，极大地增加了路径计算需要占用的CPU资源。

2.2.2 属性层次（有序路径选项集）

如前面所述，配置TE LSP时指定了一系列属性，在计算TE LSP路径时必须满足这些属性。然而，如果不能找到满足约束集的路径怎么办呢？答案很简单：不建立TE LSP。解决办法是定期放松不能满足的约束，并重试看是否能够找到满足所有属性的路径。

Cisco MPLS TE实现以一种非常精细的方式提供了这种功能。对于每个TE LSP，网络管理员多个属性集，每个属性集都有优先顺序。例如，首选属性集可能是获得 50 Mbit/s带宽、特定亲和力约束（如避免所有“红色”链路）以及抢占权为5。如果不能全部满足这些约束条件，用户可以决定是放松亲和力约束还是降低带宽需求。这提供了非常好的灵活性，可确保总是能够建立TE LSP，且可以控制约束集层次。例如，首先放松亲和力约束，然后将减少带宽作为最后手段，或首先就减少带宽。

一种常见的良好做法是，总是显式地配置一个没有约束的后备选项。在这种情况下，TE LSP路径等同于 IGP最短路径，且只有在源和目的地之间存在连接性，就能够建立TE LSP。另外，可以对多个属性集按优先顺序排序，让前端路由器能够定期地重新优先TE LSP，以找到一条满足首选属性集的路径。例如，假定TE LSP被配置为 10 Mbit/s带宽，并采用 1 Mbit/s的后备选项，成功地建立TE LSP，采用的路径为R1-R2-R3-R4-R5。如果链路R3-R4失效且网络中不能找到其他提供10 Mbit/s带宽的路径，则前端路由器将试图查找一条有1 Mbit/s可用带宽的路径。然后，当触发重新优化时，前端路由器将重新评估，试图查找是否存在 10 Mbit/s的路径。

2.2.3 TE LSP路径计算

有两种计算TE LSP路径的方法：离线和在线路径计算。采用离线路径计算时，使用离线工具来计算每个TE LSP的路径，并考虑约束、属性（如带宽、亲和力、优化的度量值、抢占权等）、网络拓扑和资源等因素。因为路径计算将对网络中所有TE LSP同时进行，所以离线工具基于多个准则（如最大链路利用率、最小传播延时等）以及最大化网络承载流量等目标，实现全局性网络优化。由于全面了解了网络特性和数据流需求，所以可以实现这一目标。然后在每台前端路由器上下载TE LSP路径。

第二种路径计算方法依赖于分布式路径计算：每台路由器负责计算它作为前端的TE LSP路径，没有中央服务器来计算网络中的TE LSP路径。一种广为人知的计算TE LSP的算法是CSPE算法。尽管它有许多变种，但还是有必要介绍最常用的变种。CSPF计算满足指定约束集的最短路径（采用类似于链路状态协议，如OSPF和 IS-IS使用的SPF算法）。例如，对于某个TE LSP，所有不满足带宽需求或亲和力约束（如果存在）的链路都将从网络拓扑中剔除，然后使用Dijkstra算法基于得到的子拓扑图计算最短路径。

关于两种方法各自的优点和缺点，差不多可以专门写一本书。简而言之，在线路径计算更具动态性，能够更快反映网络和流量变化，并且由于其分布式本质而更加强健（它不依赖于一个集中服务器）。它还产生次优化路径。反过来，离线方法通常允许更高程度的优化，但以牺牲动态性、可扩展性并增加管理负担为代价。

2.2.4 MPLS TE IGP路由扩展

路由计算模型需要获悉每条链路的可用带宽，以计算TE LSP路径。这可以通过[OSPF-TE]和[ISIS-TE]定义的特定路由协议扩展来实现。每条链路最初被配置为可预留带宽（等于或不等于实际链路速度）。当TE LSP建立和拆除时，每条链路上保留的带宽将改变，并由IGP通告。注意，可用带宽按抢占权提供。

当然，一般不太可能在每次可用带宽改变时泛洪新的 IGP 链路状态通告（Link-State Advertisement，LSA）。因而需要使用一种非线性阈值机制，使得较小的改变不会触发 IGP LSP更新泛洪。这种方法的缺点是，IGP通告的可用带宽与实际预留状态之间存在不精确匹配的可能。因而，前端路由器可能在某跳没有所需带宽的情况下计算出一条路径。在这种情况下，路由器不能满足该请求，拒绝建立TE LSP，并立即触发 IPG LSA更新泛洪，将实际预留状态通告给前端路由器（和网络中所有的路由器）。前端路由器根据新信息重新计算出一条新的TE LSP路径，这次考虑了最新的链路状态信息。

阈值方案是非线性的，以确保在链路的可用带宽接近零时进行更频繁的更新（更接近的阈值）。确保精确的带宽预留状态让运营商能够降低不能成功建立TE LSP的风险。在实际应用中，这种方案非常有效，且在 IGP泛洪频率与最新带宽预留状态信息传播之间取得了有效的平衡。

注意，反映带宽预留状态的 IGP LSA的接收者永远不会触发路由表计算。值得一提的是，即使在大型网络中，由于通告可预留带宽及其他TE相关链路属性而带来的IGP开销也不会影响IGP的可扩展性。

2.2.5 流量工程LSP的信令

计算出TE LSP路径后，接下来的步骤是建立TE LSP。MPLS TE的信令协议是RSVP-TE，它实际上依赖于RSVP，并采用了一些与MPLS TE相关的扩展（参阅[RSVP-TE]）。RSVP-TE使用[RSVP]定义的RSVP消息来建立、维持（刷新）和拆除TE LSP以及通告错误状态。这些消息分别是Path、Resv、Path Error和Resv Error。每条消息包含不同的对象集。如前面所述，除 IPv4定义的对象外，还指定了几个专门用于MPLS TE的新对象。这些对象与TE LSP属性，如计算得到的路径（ERO）、带宽、抢占权、快速重路由需求和亲和力等相关。

发起建立TE LSP时，前端路由器发送一条RSVP Path消息，指定TE LSP属性。该Path消息在每跳上处理，直到到达最终目的地。然后，在保留路径上，将RSVP Resv消息发送给前端路由器。路径上的每跳都检查能否满足TE LSP约束。如果能，路由器发送Resv消息给TE LSP路径上的上游邻居路由器，确认成功建立了TE LSP。注意，它还提供了用于相应TE lSP的标签。消息序列如图2.12所示。

图2.12 建立TE LSP的步骤

成功建立TE LSP后，还必须继续刷新相应状态来维护它（RSVP是一种软状态协议）。对于每个活动的TE LSP，每台路由器定期（间隔时间可手工配置）向下游发送Path消息，向上游发送Resv消息。不同的路由器以异步的方式运行。[REFRESH-REDUCTION]提出了一种可显著降低刷新开销的优化方法（称为“refresh reduction”），其基本原理是，仅发送有限的信息（而不是完整的Path和Resv消息）来刷新TE LSP状态。另外，还有以可靠方式传输RSVP消息的能力，这种方法也在[REFRESH-REDUCTION]中定义。

错误处理显然也是RSVP信令过程的组成部分。因而，当TE LSP出现故障，触发拆除（从而删除相应的控制和数据平面状态）时，触发路由器将向上游和下游发送一系列RSVP消息。这种状态可能是由于资源不足、网络元件（链路、节点）出现故障或另一个优先级更高的TE LSP抢占等导致的。

注意 TE LSP是单向的。双向TE LSP在[GMPLS]中定义，但通常在包网络环境中它不适合且没有必要。实际上，它们需要找到一条在两个方向上满足约束的路径（可能存在，也可能不存在），这个额外约束条件可能导致非优化路径。单向TE LSP更适合于包网络，且与数据网络和 IP路由不对称的基本性质一致。

在TE LSP上没有建立路由邻接关系。与其他技术（如ATM，它也可用于流量工程）不同，TE LSP为MPLS TE提供了更好的可扩展性。

2.2.6 流量工程LSP上的路由

在TE LSP成功建立后，最后一个步骤是确定哪些数据流需要在该TE LSP上传输。第一种在 TE LSP上对数据流进行路由选择的方法是配置一条静态路由，这条静态路由指向 TE LSP（而不是常规物理接口）。注意，还可以配置递归静态路由。在这种情况下，静态路由指向一个 IP 地址，后者可能是 BGP 下一跳的环回接口地址，这样，BGP下一跳通告的每条IPv4路由或VPNv4路由（在第3层MPLS VPN中），都将使用该TE LSP，而不需要为每个通告的前缀配置一条静态路由。

另一种机制称为“Cisco路由器上的自动路由”（Autoroute on Cisco router，其他路由器厂商也提供了类似的机制），这种机制让前端路由器在执行路由表计算时自动考虑TE LSP。前往TE LSP目的地和TE LSP后端下游的目的地时，它总是优先选择TE LSP，而不是 IGP最短路径。关于自动路由功能的详情，可参阅文献[AUTOROUTE]。

2.2.7 解决“鱼形问题”

回到图 2.11 所示的范例，并考虑如下假设。所有链路的度量值都为 1，且带宽容量为 10 Mbit/s。流（R1, R5）和（R6, R5）的带宽需求分别是 8 Mbit/s和 7 Mbit/s。假定R1首先为 8 Mbit/s的TE LSP计算路径。它选择满足约束集（这里唯一的约束是带宽）的最短路径，R1-R2-R3-R4-R5（满足带宽约束的最短路径）。该TE LSP成功建立后，IGP通告每条链路的可用带宽。然后R6为需要7 Mbit/s带宽的TE LSP计算路径，并确定能提供 7 Mbit/s可用带宽的最短路径是R6-R2-R7-R8-R4-R5。这可以避免在链路R2-R3和R3-R4上发生拥塞，因为这两条链路不能容纳两个流。这个过程如图2.13所示。

图2.13 前端路由器计算满足带宽需求的路径

2.2.8 TE LSP部署方案

图 2.14说明了各种TE LSP部署方案。

下面详细解释图2.14所示的两种部署方案。

• 用MPLS TE实现流量工程的 IP骨干：在图 2.14中，考虑一个 IP包从R0发送到R7，并观察转发路径中发生的不同步骤。该IP包首先从R0被 IP路由到R2，然后转发到T1（从R3到R6的TE LSP）。在这个范例中，RSVP-TE提供的标签被T1 TE LSP前端路由器R2添加到包中。然后根据RSVP-TE分发的标签将该包标签交换到次末跳R5上，R5删除RSVP-TE标签（称为次末跳弹出）。然后该IP包最终被IP路由到目的地R7。

图2.14 各种部署MPLS TE的方案

• 用MPLS TE实现流量工程的第3层MPLS VPN骨干：这种情景要稍微复杂些。除MPLS VPN通常所需的标签（LDP和BGP标签）外，在数据流由TE LSP前端路由器转发到TE LSP时，还会向标签栈中添加一个对应于该TE LSP的标签。在图2.14中，IP包由CE路由器发出。PE路由器收到该IP包后，将确定VRF，并添加一个包含两个标签的标签栈。该标签栈对应于PE路由器提供的BGP标签，该路由器通告VPN的目标地址前缀和LDP标签，以到达目标PE路由器。然后该IP包将被标签交换，直到到达P1。这时，前端路由器P1添加一个对应于TE LSP的标签。注意，LDP标签被交换，远程LDP对等体P3提供相应的标签。为什么在TE LSP的前端和后端之间（这里为P1和P3）需要LDP会话呢？如前一个范例所述，在TE LSP的次末跳将执行PHP操作。因而，如果没有TE LSP前端和后端之间的LDP会话，TE LSP后端路由器（这里为P3）将收到包含未知BGP标签（而不是LDP标签）的包，从而将其丢弃（或使用它认为正确的转发条目进行转发，从而导致数据流黑洞）。

注意 在PE路由器之间建立TE LSP的情况下，不需要任何LDP会话。因而，从CE路由器收到的IP包被加上两个标签：BGP标签和RSVP-TE标签。

2.2.9 重新优化流量工程LSP

网络总是在发生变化：链路和节点出现故障并恢复；不断有新的TE LSP建立；不断有TE LSP拆除。因此，对于任何TE LSP，在网络中都可能出现一条更优的路径。所以有必要检测这样的路径，并在可能时沿更好的路径重新优化TE LSP。请看图 2.15所示的范例。

图2.15 重新优化TE LSP

在图2.15中，所有链路的开销都为1，且初始可预留带宽都为10 Mbit/s——除链路R4-R5的可预留带宽为15 Mbit/s外。假定第一个TE LSP为T1，它在R1和R5之间建立（3 Mbit/s），满足约束条件的最短路径R1-R2-R3-R4-R5。紧接着， R6 建立 TE LSP T2（8 Mbit/s），能提供 8 Mbit/s 带宽的最短路径为R6-R2-R7-R8-R4-R5。因而，在 t0时刻，T1和T2都存在并正常运行。在时刻 t1， TE LSP T1被拆除，沿路径R1-R2-R3-R4-R5释放3 Mbit/s的带宽。R6触发重新优化评估过程时，它发现在R6和R5之间有一条更优的路径（R6-R2-R3-R4-R5），并沿这条更优的路径重路由该TE LSP。这说明了重新优化的概念。关于重新优化有几个重要方面需要强调。

• 非中断性重新优化：MPLS TE的一个关键特性是，它能够沿更优路径重新优化 TE LSP，而不会导致数据流中断。因而，前端路由器不应该先拆除“旧”的LSP，然后沿更优的路径重新建立LSP。相反，前端路由器应先建立新的TE LSP（它与旧TE LSP属于同一个会话）。成功建立新的 TE LSP后，再拆除旧的 TE LSP。这种方法称为“断开前建立”（make-before-break）机制，其他第 2 层协议（如 ATM）不具备（不能实现）这种属性。

• 避免双倍预留：如果读者仔细观察图2.15将发现，T1拆除后，链路R4-R7的可用带宽为 7 Mbit/s，不能满足第二个LSP（T2）的需求（沿更优的路径）。那么R6如何能够沿R6-R2-R3-R4-R5建立新的LSP，同时不拆除原来的TE LSP呢？答案是T2在重新优化时将与T2的旧LSP共享带宽。因而，不会发生双倍预留（R4的许可控制不会重复计算带宽）。同样，当计算重新优化TE LSP的路径时，前端路由器（这里为R6）知道重新优化T2的可用带宽为当前网络预留带宽状态加上当前T2 LSP将释放的带宽。

MPLS TE网络设计的一个重要方面与重新优化触发器相关。需要间隔多长时间对TE LSP重新评估以重新优化？Cisco路由器有几个重新优化触发器：

• 手工重新优化：在前端路由器上发出一条命令，触发该路由器为前端的每个TE LSP的重新优化评估。如果找到更优的路径，则将按照“断开前建立”机制重新优化该TE LSP。

• 基于定时器的重新优化：在前端路由器上配置一个重新优化定时器。当它到期时，前端路由器试图重新优化以它作前端的每个TE LSP。

• 事件驱动的重新优化：有些情况下比较合适在特定事件发生（如网络链路恢复）时触发重新优化。如果网络中某条链路得以恢复，有些TE LSP可能从新链路中受益，并采用更优的路径。完成这种配置后，每当新链路都被通告为重新运行时，都将触发任何可能的重新优化评估。需要注意的是，对于这一点需要小心处理，以避免网络不稳定。让我们考虑一个不稳定链路的情况。它将经常生成新TE LSP，然后新TE LSP很快失效并再次重新优化，导致非常不稳定的网络状态并引起数据流中断。因此，触发器应总是与接口或 IGP 级的某种阻尼机制结合使用，以避免由于不稳定的链路或路由器导致网络不稳定。

2.2.10 MPLS流量工程和负载均衡

负载均衡无疑是流量工程的一个重要方面，它指的是在两台路由器间的多条路径之间共享数据流负载。在 IP 路由中，这些路径的开销必须相同（使用增强内部网关协议时除外），并在这些路径之间平均分配数据流负载。更准确地说，有两种执行 IP 负载均衡的方法：基于包和基于目的地。在基于包的负载均衡中，在 N 条路径之间平均分配负载，这是因为采用，循环方式基于包均衡数据流负载。在基于目的地的负载均衡中，对多个 IP 字段（如源和目标IP地址）执行散列算法，以确保属于同一个流的所有包都将沿相同的路径传输，从而避免对属于同一个流的包重新排序。因此，在 N 条路径之间，负载可能并非是平均分配的。

在IP路由中，只在开销相同的路径之间均衡负载是为了避免形成路由环路。事实上，在没有使用其他IGP路由增强的情况下，如果在开销不同的路径之间分配包，有些包可能会返回到其路径上的某些路由器。

相反，MPLS TE提供了高度的灵活性。首先，前端路由器可以建立多个到特定目的地的TE LSP，它们采用的路径的开销可能不同。这不会导致路由环路，因为包将沿建立LSP时显式指定的路径进行标签交换。其次，多个TE LSP的特征可能不同。例如，如果在R1和R2之间建立了两个TE SLP，它们的带宽分别为10Mbit/s和20Mbit/s，前端路由器（R1）将根据LSP的带宽在它们之间均衡负载（发送到带宽为 20Mbit/s的TS LSP的包数为另一个TS LSP的两倍）。有些路由器实现允许运营人员通过配置覆盖这种分配比例。有必要指出的是，常用的 IP数据流负载均衡技术（基于包和基于目的地）也同样适用于MPLS TE。

2.2.11 MPLS流量工程转发邻接关系

默认情况下，前端路由器不会在自己生成的 LSA/LSP中通告其 TE LSP。这意味着它的TE LSP不会影响其他路由器的路由决策。在有些情况下，可以采用不同的做法，允许路由器在其 LSA/LSP中通告 TE LSP。也就是说，前端路由器将TE LSP通告为一条“物理”链路，即使在TE LSP上没有建立路由邻接关系。结果，收到前端路由器的 LSA/LSP 的路由器将其在 SPF 计算中考虑该TE LSP。在这种情况下，我们通常说TE LSP被通告为转发邻接关系（forwarding adjacency，FA）。这是一个TE LSP属性，可在前端路由器上像配置其他LSP属性一样配置它。图2.16说明了转发邻接关系。

图2.16 转发邻接关系

其他一些参数与转发邻接关系相关联。一个是度量值，因为TE LSP像其他“常规”链路一样被通告。另一个是定时器，它控制TE LSP进行 down状态多久后LSA/LSP将指出这一点。请看从R1到R9的TE LSP T1，它采用的路径为R1-R3-R5-R6-R0。如果它被配置为转发邻接关系，R1将T1通告为一条位于R1和R9之间的“常规”链路。如果在T1的路径上发生故障（如链路R6-R9出现故障），T1也将失效。一种办法是立即在LSA/LSP中指出拓扑变化（链路R1-R9不再存在）。然而，通常等待一段时间是更适当的方法，因为T1还有可能通过某种恢复机制得到恢复。在“核心网络可用性”一节中，读者将看到本地保护机制（如MPLS TE快速重路由）可以在 50 ms内恢复T1。因而，如果T1不等待，直接指出TE LSP失效，将导致在非常短的时间内通告两个 IGP LSA/LSP。这将连续两次触发网络中每台路由器上的路由表更新。这就是为什么将FA通告为down状态之前需要等待一段时间的原因。等待的时间通常随采用的网络设计和网络恢复机制而异。

注意 为在计算SPF期间考虑某条链路，路由器总是检查是否在两端的LSA/LSP中都通告了该链路。例如，在图2.16中，当E1计算其SPF时，在考虑链路R1-R9 （配置为转发邻接关系的TE LSP）之前，它检查是否在R1和R9的LSA/LSP中都通告了该链路。这种机制称为双重连接性检查。因而，需要在R9和R1之间也将TE LSP配置为转发邻接关系，因为TE LSP是单向的。

如果在前端路由器上将大量TE LSP都配置为转发邻接关系，可能显著增加路由器的LSA/LSP尺寸。尽管如此，在实践中这并不是真正的问题。

有两种方法可以将TE LSP通告为转发邻接关系。

• 作为一条 IP链路：在这种情况下，其他路由器将该TE LSP当作一条常规IP链路，不具备任何流量工程能力。

• 作为一条流量工程链路：这意味着前端路由器必须将TE LSP通告为一条具有流量工程特性（如可预留带宽、亲和力等）的链路。

在第一种情况下，其他路由器在进行SPF计算可使用该TE LSP，以路由其IP数据流。在第二种情况下，如果TE LSP被通告为一条TE链路，其他路由器还可以使用该转发邻接关系完成其CSPF计算，以路由自己的TE LSP，因为它们将转发邻接关系当成一条常规TE链路。这引入了层次型TE LSP的概念：一个TE LSP在其他TE LSP中路由。

转发邻接关系在有些网络设计中非常有用，一个典型的例子是在PE路由器之间必须实现负载均衡。来看一种典型的情况：不同POP通过长途链路互连，其中的每条PE路由器都连接到两台P路由器。在每对PE路由器之间有几条IGP路径，仅当它们有相等的IGP路径开销时才可用于数据流实现负载均衡。这适用于IP情形（未采用MPLS）和MPLS流量工程的情形（除非在每条可用路径上建立一个 TE LSP，这通常不太可能）。因而，一种解决方案是，计算一组链路度量值，使得每对PE路由器之间的所有路径都有相同的开销。然而，这几乎不可能实现，且如果网络由不同带宽的链路组成，带宽利用率将非常低。

另一种解决方案是使用转发邻接关系。如图2.16所示，在P路由器之间建立全互联TE LSP网，将它们配置为FA，并通告为有固定度量值的FA（链路）。这样，在每台PE路由器（如图2.16中的E2）看来，到其他每台PE路由器的每条可能路径的IGP路径开销都相等，条件是PE路由器和P路由器之间的链路开销相等。

当然，这种设计需要根据参数设置（特别是与TE LSP生存期有关的定时器）执行一些分析。它还增大了 IS-IS LSP和OSPF LSA（Type 1），因为每台前端路由器都将其 TE LSP 通告为一条物理链路。这可能增大每个 IS-IS LSP/OSPF LSA，进而增大链路状态数据库（Link-State Database，LSDB）。不仅如此，还需要对网络中的数据流路由进行仔细分析，因为每台路由器的网络视图不再是实际的网络拓扑。

2.2.12 自动建立TE LSP网

一种常见的MPLS流量工程部署方案是，在一系列路由器之间建立一个TE LSP 网，本书的几个案例研究都将演示这种方案。根据网络规模以及在核心还是边缘路由器之间部署MPLS TE，TE LSP网涉及的路由器数量可能从几台到几十甚至几百台。另外，因为TE LSP是单向的，如果TE LSP包含N台路由器，则在每台前端路由器上需要配置 N-1个 TE LSP，因此网中 TE LSP的总量为N*(N-1)。例如，由 50台路由器组成的TE LSP网需要配置 2450个TE LSP。虽然这种配置任务可以使用脚本来减轻，但仍相当繁重且易于出错。另外，添加一个新成员到网中时，不仅需要配置N个新的TE LSP（从新成员到原有的每台路由器），还需要在原来的N台路由器上分别为新成员配置一个TE LSP。所以，采用某种机制自动创建TE LSP网将非常有用。总而言之，这种功能由如下几个组件构成：

• 发现过程：第一项任务是发现参与到网中的所有路由器。文档[OSPF-TE-CAPS]和[ISIS-TE-CAPS]提议的 IGP 扩展让路由器能够通告其网成员关系。读者将在后面几个案例研究看到，有时候可能需要多个网。为此，引入了“网组”（mesh group）的概念。因此，路由器首先通常其所属的网组集（也可能是一个网组）。注意网组可能相互重叠，也就是说，属于网组M1的路由器集可能与网组M2的路由器集完全或部分相同。

• TE模板：对于路由器所属的每一个网组，网络管理员配置一系列属性，这些属性将应用于该网组的所有 TE LSP。注意，因为每个目的地的带宽可能不同，所以完美的解决方案还将使用前面介绍的自动带宽机制。

• 自动建立 TE LSP：路由器发现参与其所属网组的全部路由器后，将开始建立所需的TE LSP。

2.3 支持区别服务的MPLS流量工程

如前面 2.1 节所述，区别服务（在文档[DIFF-ARCH]中描述）和 MPLS 区别服务（在文档[MPLS-DIFF]中描述）定义了数据路径中的 QoS 机制（例如，如何在不同队列中调度不同的数据流），它们独立数据流在网络中的路由方式。MPLS TE定义了如何将数据流路由到网络中，路由方式独立于部署的QoS机制，进而独立于每跳如何调度数据流。所以，尽管MPLS TE和区别服务可同时部署在给定网络中，但它们互不干扰，MPLS TE根据约束对所有区别服务类别的数据流进行路由和许可控制。支持区别服务的 MPLS 流量工程（DiffServ-aware MPLS Traffic Engineering，DS-TE）是对MPLS TE的一种扩展，以支持区别服务。它具有独立应用基于约束的路由和许可控制的优点，可以更精确地实现不同类别的服务（或需求相同的服务类别集）。

DS-TE为不同的区别服务类别（或不同的服务类别集）分别建立MPLS TE隧道。这样，对这些隧道执行基于约束的路由时，将考虑相应服务类别的可用资源（而不是总链路带宽）。另外，还可以为服务类别指定特定的属性（而不是所有服务类别都使用相同的属性）。它还可以为不同的数据流类别实施独立的工程约束。例如，对于承载大量 VoIP 数据流的网络，服务提供商的 DS-TE 需求（参阅文档[DSTE-REQ]）之一是，能够将VoIP总负载限制在链路带宽的特定比例之下。这有助于控制这种数据流的延时和抖动，同时将余下的带宽用于对延时和抖动不太敏感的数据流。

因而，DS-TE的目标是，在不过度采用流量工程的情况下，支持QoS需求非常高的应用。

下一节将介绍DS-TE如何扩充MPLS TE组件。与TE相同，DS-TE扩展完全位于控制平面内。DS-TE依赖于数据路径（2.1节介绍的E-LSP或L-LSP）中的MPLS区别服务，而没有引入额外的QoS机制。

2.3.1 带宽约束模型

DS-TE 的一个主要目标是，对不同的类型的数据流实施不同的带宽约束。类别类型（class type，CT）是一组带宽约束相同的DS-TE LSP。DS-TE最多支持8个CT（CT0-CT7）。

带宽约束模型定义了CT和带宽约束（BC0-BC7）之间的关系。当前，DS-TE协议扩展定义并支持三种带宽约束模型：俄罗斯洋娃娃模型（Russian Dolls Model，RDM，参阅文档[DSTE-RDM]）、最大分配模型（Maximum Allocation Model ， MAM ，参阅文档[DSTE-MAM] ）和预留最大分配模型（ Maximum Allocation Model with Reservation，MAR，参阅文档[DSTE-MAR]）。

RDM以嵌套方式将带宽约束应用于CT。例如，假定使用了三个CT：

• CT2中的所有LSP使用的带宽不超过BC2。

• CT1和CT2中的所有LSP使用的带宽不超过BC1。

• CT0、CT1和CT2中的所有LSP使用的带宽不超过BC0。

MAM分别对每个CT应用带宽约束，所有CT的总带宽约束为MPLS TE最大可预留带宽。例如，再次假设使用了三个CT，并采用MAM模型：

• CT2中的所有LSP使用的带宽不超过BC2；

• CT1中的所有LSP使用的带宽不超过BC1；

• CT0中的所有LSP使用带宽不超过BC0；

• CT0、CT1和CT2中的所有LSP使用的带宽不超过最大可预留带宽。

使用三个CT的RDM和MAM模型如图2.17所示。

图2.17 DS-TE的RDM和MAM带宽约束模型

在给定DS-TE网络云中，只能使用一种带宽约束模型。

在控制平面中，RDM的嵌套带宽约束与数据路径中常用的区别服务带宽分配策略极其相称，后者采用绝对优先方式调度实时类别数据流，然后将剩余的大部分带宽分配给下一个优先级的类别，再将之后剩余的大部分带宽分配给再下一个优先级的类别，依此类推。由于这个原因，RDM可获得非常高的链路利用率，同时保证各种区别服务类别的服务质量。另外，通过使用抢占权，RDM可确保每个CT获得所需的带宽。因而，在DS-TE部署中，RDM是最常用的带宽约束模型。

在需要使用更简单的分配策略（如分别限制每个CT）或需要独立地调度多种带宽分配优先级相当的数据流类别时，MAM模型更具吸引力。然而，MAM通常不能在保证所有类别的服务质量的同时，获得非常高的链路利用率。

MAR是基于MAM的，但采用了一些扩展，以解决上面提到的MAM的局限性。为此，MAR允许CT在没有竞争的情况下超出其带宽约束，但在CT相互竞争时恢复到限制带宽。然而，MAR带来了额外的复杂性，人们对其适用性没有深入的认识。

2.3.2 流量工程LSP属性扩展

DS-TE增加了一个TE LSP属性，即类别类型（class type）。根据带宽约束模型，该属性指定了应用于DS-TE LSP的带宽约束。

2.3.3 TE LSP路径计算扩展

对于 DS-TE，可采用完全相同的路径计算方法。唯一的区别是，算法需要考虑特定TE LSP的抢占权等级和CT组合的可用带宽。

2.3.4 流量工程 IGP路由扩展

使用DS-TE时，每条链路最多可配置8种带宽约束。

前面介绍过，针对MPLS TE扩展了 IGP，使得最多可以通告 8个可用带宽值：分别对应于8个抢占权等级。DS-TE将这8个值通用化，通告任何抢占权和CT组合的可用带宽。因而，给定DS-TE网络最多只能支持8种活动的抢占权和CT组合。例如，DS-TE网络可以使用8个CT，每个CT一种抢占权等级，也可以使用4个CT，每个CT两个抢占权等级，但不能使用5个CT，每个CT两个抢占权等级。

2.3.5 TE LSP信令扩展

DS-TE新增了RSVP对象，用于在RSVP信令期间传输TE LSP CT。这使许可控制机制能够考虑相应的带宽约束。

有关针对 DS-TE 的 IGP 和 RSVP-TE 扩展的更详细信息，请参阅文档[DSTE-PROTO]。

注意 所有DS-TE扩展都向后与常规TE兼容，常规TE相当于DS-TE的一种特例，它使用单个CT和8种抢占权等级。这样可以更平滑地从常规TE部署迁移到DS-TE。

2.3.6 路由到支持区别服务的TE LSP

与TE LSP一样，可以使用到BGP下一跳的静态路由和递归静态路由将数据流路由到DS-TE LSP。在不同服务类别数据流的前缀范围不同时，可以这样做。例如，语音数据流由中继语音网关端接，而该网关与配置了特定前缀范围的专用LAN相连。

要在DS-TE LSP上进行动态路由，需要对前面介绍的在TE LSP上动态地路由数据流的机制进行扩展，使其能够基于服务类别进行路由。它还必须考虑隧道承载每种服务类别的适用性。例如，Cisco支持一种基于CoS的隧道选择（CoS-Based Tunnel Selection，CBTS）功能，它扩展了自动路由功能，根据隧道可承载的服务类别，基于前缀/服务类别动态地将数据流路由和转发到DS-TE隧道。

2.3.7 DS-TE部署示例

典型的DS-TE部署范例是，分别为语音和数据建立独立的隧道网。这样，可以分别针对语音和数据的服务质量需求，对语音TE LSP和数据TE LSP实施流量工程。例如，运营商可能使用 RDM 模型来确保语音负载低于链路容量的50%（以控制语音的延时和抖动，并确保其他数据流有足够的带宽可供分配），同时将语音和数据总负载限制在链路容量的100%以下。另外，在计算每个语音TE LSP的路径时，只考虑语音负载。可以针对反应传播延时的度量值进行优化，并采用高抢占权等级，以确保语音TE LSP尽可能获得最短路径并能够使用快速重路由进行保护。如图2.18所示，这样的DS-TE部署可确保语音数据流沿延时最小的路径（图中上面的路径）传输，而数据沿能够提供所需带宽的路径（图中下面的路径）传输。

图2.18 语音和数据的DS-TE部署示例

2.4 多区域和多AS环境下的MPLS流量工程

前面介绍过，在分布式路径计算环境中，前端路由器负责计算TE LSP路径，并在计算时考虑 TE LSP属性和网络拓扑及 IGP所提供的资源信息。注意，前端路由器还负责在网络中有更佳路由时进行重新优化。然而，如果前端路由器和后端路由器位于不同的IGP区域或自主系统中，将出现什么情况呢？这时有几个问题需要解决。

第一个问题是路径计算。因为前端和后端路由器不在同一个IGP区域中，因此前端路由器无法获得必要的信息来计算满足约束集的端到端路径。有两种可能的解决方案：

• 每区域/AS路径计算；

• 路径计算元素。

每区域/AS路径计算方案配置一系列TE LSP必须穿越的跳（通常称它们为“松散跳”（loose hops），因为它们只是松散地指定路径，没有指定松散跳之间的路由器跳）。在跨区域和跨AS的MPLS TE中，这些松散跳分别是区域边界路由器（Area Border Router，ABR）和自主系统边界路由器（Autonomous System Boundary Router，ASBR）。注意，这只是最低需求，网络管理员还可以指定其他的跳。

例如，图2.19中有一个从R1（在区域0.0.0.1中）到R10（在区域0.0.0.2中）的TE LSP，为叙述方便，假定采用OSPF协议。上面介绍的每区域路径计算过程如下：网络管理员配置几个松散跳，如ABR1、ABR3和R10。R1（这里的前端路由器）首先计算区域 0.0.0.1 中的路径，因为它拥有全部必要的信息，得到的路径为R1-R2-R3-ABR1。然后R1调用RSVP-TE，通过RSVP Path消息通告该TE LSP。该消息没有指定前往目的地的完整路径，而包含一系列严格跳（区域0.0.0.1内）和松散跳数（区域0.0.0.1外）。注意，严格跳指的是一系列相互直接相连的跳。在收到RSVP Path消息后，ABR确定下一跳是一个松散跳（这里为 ABR3）。实际上，它已经在 RSVP 中显式指出（一个标志指出是否是松散跳）。因而，ABR1通过运行CSPF并考虑与区域0.0.0.0有关的拓扑和资源信息，计算在自己的区域（骨干区域0.0.0.0）中，满足约束集的前往ABR3的最短路径。然后，ABR3执行同样的过程，计算前往R10的最短路径。注意，类似的路径计算解决方案也适用于跨越多个自主系统的TE LSP。它提供了一种简单的方法，除[RSVP-TE]外，不需要额外的路由或信令扩展。如果ABR1或ABR3不能找到满足约束集的路径，将选择另一组松散跳组合。

尽管非常简单，但是这种方法的缺点是，不能保证计算出的是端到端最短路径。实际上，从如图2.19可知，R1、ABR1和ABR3都计算前往下一松散跳的满足约束集的最短路径，但在这个例子中，得到的端到端路径并不是最短的。在 这 个 例 子 中 ， 最 短 路 径 （ 假 定 它 满 足 约 束 集 ） 是R1-R4-ABR2-R6-R7-ABR4-R10。这是该方法最主要的缺点之一。它的另一个缺点是，计算一对路由器之间不同路由路径的能力。这种方法的原理是首先计算第一条路径，记录涉及的路由器集，然后通过指出要避开的跳来计算第二条路径，以确保路径的多样性。这种两步方法可能导致在存在解决方案的情况下找不到。这是由于它不能同时计算两条路径导致的。

图2.19 跨AS的MPLS流量工程

另一种解决方案是路径计算元素，它能够克服前一种方法的缺点，计算出最优（最短）的跨区域/AS TE LSP路径。文档[INTER-AREA-AS]详细描述了这种路径计算方法。注意，IETF PCE工作组（参阅[PCE]）讨论了基于PCE的TE LSP路径计算方法。它依赖于路由器向路径计算元素（Path Computation Element， PCE）发送路径计算请求，后者是跨区域MPLS TE中的ABR或跨AS的MPLS TE中的ASBR。简言之，路由器将该请求发送给动态发现的（通过IGP扩展）连接到本地区域或AS的PCE，该PCE称为前端PCE。如果TE LSP的目的地属于前端PCE连接的区域，PCE将能够计算前往目的地的最短路径，因为它拥有所需信息（实际上，该 PCE 拥有两个区域的网络拓扑和资源信息）；否则，前端PCE将请求中继给另一个PCE，后者再计算从后端区域中每个ABR到TE LSP目的地且满足约束集的最短路径。收到这些计算得到的路径集后，前端PCE就能够计算出端到端最短路径，并将它返回给发出请求的前端路由器。PCE 解决方案是向后递归的，且依赖于分布式计算。它能够计算端到端最短路径，在存在不同路径时也能计算出它们。第 5 章提供了一个详细范例，该示例使用跨AS的TE LSP来互连虚拟POP。

下一个需要考虑的问题是TE LSP重新优化。在跨区域/AS MPLS TE环境中，处理重新优化比在纯粹的IGP区域中更具挑战性。如果更优（最短）路径位于另一个区域/AS中，前端路由器如何检测到它呢？

一种方法是系统地重新计算跨区域/AS TE LSP，而无需提前知道是否存在更优路径。如果某个ABR找到更好的路径，TE LSP将采用该路径。然而，这种方法的缺点是，在没有更好路径时也系统地重新计算跨区域/AS TE LSP（它意味着RSVP处理、新标签分配等工作）。

因而，文档[LOOSE-PATH-REOPT]提出一种解决方法（Cisco路由器支持该方案）。它允许当下游区域/AS中存在更优路径时通知前端路由器，方法是发送请求或ABR显式地通知已检测到更好的路径。在前一种情况下，前端路由器只需在RSVP Path消息中设置一个特殊位，这将触发下一跳为松散跳的每个节点（如图2.19中的ABR1和ABR3）重新评估现有的路径。如果有比当前路径更优的路径，ABR将通知前端路由器，然后前端路由器开始执行重新优化；如果不存在更优的路径，ABR保持沉默。另外，ABR也可以显式地通知前端路由器，指出存在更优路径，而不需要由前端路由器向每个ABR进行轮询。

如果使用基于PCE的路径计算，则重新优化过程类似于常规的路径计算请求，只是它还将现有路径提供给PCE。这是必要的，因为PCE可能是无状态的，没有存储有关现有TE LSP的信息。因此提供与现有TE LSP相关的信息，如当前路径、带宽等，可避免重复预留带宽。

在这两种方法中，前端路由器获悉存在更优的路径，并决定重新优化 TE LSP后，TE LSP重路由过程将与区域内的重路由过程类似。重路由将以非数据流中断和断开前建立的方式进行。

在路径计算、重新优化等方面，跨AS TE LSP和跨区域MPLS TE有几点类似。IETF在文档[INTER-AS-TE-REQS]中定义了跨AS MPLS流量工程的需求。本节只介绍跨区域MPLS TE的最重要特点。

跨AS TE的第一个特点与跨ASBR链路的存在性和不可见性相关。大多数情况下，自主系统都通过不支持IGP的跨ASBR链路相互连接（使用的路由协议通常是BGP-4）。所以，前端路由器不能看到ASBR链路，也不能看到TE链路特性（如带宽、亲和力等）。

一种常见的解决方案是，采用前面介绍的每AS路径计算方法，将所有ASBR指定为松散跳。然而，对于跨AS TE LSP的情况，这需要配置许多跳（例如，对于图 2.20中从R1到R9的跨AS TE LSP，需要配置ASBR1、ASBR3、ASBR5、ASBR7和R9）。还需要在前端路由器配置大量的松散跳，以处理LSP建立失败的情况。另外，让跨ASBR可见将使前端路由器能够更高效地计算路径。

图2.20 跨AS TE链路不可见

例如，假定链路ASBR1-ASBR3不能满足T1的带宽需求。因为R1（这里的前端路由器）不知道该链路的状态，它可能试图在该链路上建立TE LSP。在这种情况下，ASBR1将拒绝建立TE LSP（返回一条RSVP Path Error消息）。然后，R1 将尝试另一种松散跳组合。因此，Cisco 路由器实现一种更高效的解决方案，它首先洪泛ASBR间链路状态，虽然没有在两个ASBR之间建立IGP路由邻接关系。这将减少需要配置为松散跳的ASBR数量，从而提高路径计算效率。这种解决方案如图2.21所示。

这样，可以使用如下简化的松散跳来配置 T1：ASBR3-ASBR7-R9 或ASBR4-ASBR8-R9。

在属于不同公司的自主系统之间（也称为跨提供商）部署跨AS MPLS TE时，第二个重要方面和需求是需要在AS边界上控制策略。有时候需要在ASBR上部署一些策略控制功能，以实施自主系统之间的协定。具体地说，策略控制模块确保跨AS TE LSP消耗的总带宽不超过协定值。有时候还需要检查各种TE LSP属性，如抢占权和TE LSP数量。

在基于PCE的跨AS TE路径计算中，最后需要强调的一个重要方面是，在多个自主系统中使用一致的度量值。如前面所述（第5章将通过示例详细解释），端到端最短路径计算是通过一种向后递归算法来实现的，该算法依赖于每个PCE计算其域中的路径段。所以，这要求每个PCE使用可比较的度量值来计算端到端最短路径。在实践中，通常在跨AS TE LSP跨越的不同自主系统中使用相同的方案来计算TE度量值。

图2.21 AS间链路状态洪泛

2.5 核心网络可用性

本节介绍如何通过各种网络恢复机制，允许沿替代路径路由受影响的数据流，以提高网络可用性。

网络恢复机制可以部署在各个网络层（光学层、SONET/SDH、MPLS/IP等）。关于该主题的详细信息，可参阅文档[NET-RECOV]。本节将着重介绍IP路由和MPLS流量工程提供的恢复技术。

在选择一种（或一组）网络恢复机制时，首先应该确定网络可用性的总体目标。这种目标通常取决于应用的需求。例如，通过MPLS传输ATM数据流时，可用性要求显然要比因特网数据流高得多。另外，即使是同一种应用（如VoIP），不同的服务提供商也可能有不同的需求。例如，考虑承载VoIP数据流的网络。如果目标是保证语音呼叫不会由于网络元件失效而中断，则几秒钟的会聚时间（通常为2秒，但在很大程度上取决于VoIP网关信令协议的容错性）是完全可以接受的。另一方面，如果服务提供商要提供一种VoIP服务使任何网络元件失效都不会对用户产生可觉察到的影响，则恢复机制必须能够在几十毫秒内将语音数据流重路由到能提供相同QoS保证的备用路径上。这表明首先必须明确目标，然后才能采取最合适的网络恢复设计。

确定网络恢复目标后，应根据各种标准来评估各种网络恢复机制。显然，会聚时间是首先需要考虑的因素之一。需要多长时间才能将失效网络元件上的数据流重路由到备用路径？这是需要考虑的一个重要方面，但并不是唯一的方面。下面是其他几个重要的方面。

• 恢复范围：确定恢复机制能够处理链路失效、共享风险链路组（Shared Risk Link Group，SRLG）失效还是节点失效。SRLG的概念是多条链路共享相同资源，这些资源失效将导致所有链路同时失效。例如，考虑使用同一根光纤的多条链路，如果光纤被切断，则所有链路都将失效，因此它们属于同一个SRLG。

• 失效期间的QoS：替代路径（通常称为备用路径）能否提供等价的QoS？

• 网络额外开销：指恢复机制在网络中所需的额外状态数量。

• 开销：网络恢复机制有很多，它们的开销可能相差好几个数量级。例如，对于光纤1＋1保护机制，尽管它在重路由时间和备用路径上的QoS效率非常高，但它需要额外的设备用于数据流复制，以及额外的带宽用于保护（实际上与被保护带宽相同）。其他恢复机制（如 IP）在额外设备和网络资源方面，通常更为廉价（当然，它们不能提供相同级别的性能）。

• 网络稳定性：网络恢复机制在某些情况下（如需要非常快速的恢复）是否会由于频繁的路径改变而导致网络不稳定？

当然，这里并没有列出所有需要考虑的方面，而只是考虑网络恢复机制时需要评估的一些最重要方面。本书后面的各个案例将分别介绍这些方面。

在有些情况下，可能适合选择几种恢复机制的组合，但必须格外小心，以避免恢复机制和双重保护之间的竞争，导致没有最优地利用备用资源。例如，一种常见的方法是组合使用SONET保护和微调内部网关协议（Interior Gateway Protocol，IGP）重路由。

2.5.1 保护与恢复

网络恢复机制实际上分为两大类：保护与恢复。保护机制在任何失效发生前预先计算备用（替代）路径；而恢复机制只在失效发生后才计算备用路径，即动态地计算备用路径。从会聚时间上说，保护机制通常速度更快，但它需要许多额外的状态，会导致更多的网络开销。

2.5.2 本地与全局恢复

网络恢复机制的另一个特征与负责将数据流重定向到备用路径的节点所处的位置相关。如果紧靠失效位置的上游节点负责重路由数据流，则被称为本地恢复机制；而采用全局恢复机制时，如本节介绍的MPLS TE默认重路由模式，由受影响的TE LSP的前端路由器负责重路由。

这里介绍各种网络恢复机制：IP路由（恢复）、MPLS TE前端重路由（全局恢复）、MPLS TE路径保护（全局保护）和MPLS TE快速重路由（本地保护）。

在介绍涉及IP路由和MPLS流量工程的恢复机制前，有必要先介绍恢复周期的概念。它可用来描述网络恢复过程涉及的各个步骤（参阅图2.22）。

图2.22 恢复周期

恢复过程的第一个阶段是故障检测，其持续时间是各种参数（如使用的第1层或第 2 层协议、存活机制等）的函数。本书后面的案例研究将介绍涉及的各种机制以及典型的故障检测时间。通常，故障检测时间的范围是几毫秒到几秒甚至数十秒。

检测到故障后，在触发任何动作前一般还需要等待一段时间（hold-off 时间）。例如，结合使用IP路由和光纤保护时，检测到故障后，IP将等待一段时间（可配置），尽可能给光纤从错误中恢复提供机会。如果在hold-off时间后故障仍没有恢复，将激活恢复机制。

接下来的阶段称为故障通知。可能需要花费一些时间将故障状态通知给负责重路由数据流到替代路径的节点。当然，在本地恢复中，故障通知时间为零。另一方面，对于全局恢复机制，故障通知需要从失效点向上传播，直到到达负责重路由的节点，这个过程所需的时间可能不短。

最后两个步骤与数据流恢复本身有关，取决于使用的恢复机制。总之，它们是重路由数据流的实际操作。

2.5.3 采用 IP路由的网络恢复

多年来人们开发了好几种路由协议，现有的路由协议分为两大类：距离矢量协议（如路由信息协议（Routing Information Protocol，RIP）[RIP]和EIGRP）、链路状态路由协议（如开放最短路径优先（Open Shortest Path First，OSPF）和中间系统到中间系统（Intermediate System-to-Intermediate System，IS-IS） [IS-IS]）。

本节将着重介绍链路状态协议，如OSPF和IS-IS，由于它们在可扩展性、优化和会聚等方面的优势，所以大多数服务提供商网络都采用它们。

链路状态协议依赖于链路状态数据库（Link-State Database，LSDB）的概念，它是一个协议数据单元（Protocol Data Unit，PDU）集，在OSPF中叫做链路状态通告（Link-State Advertisements，参阅[OSPFv2]），在 IS-IS中叫做链路状态包（Link-State Packets，参阅[ISIS]），它描述了部分网络拓扑和 IP地址可达性（本节对于OSPF和IS-IS都使用通用术语LSA）。每台路由器负责发出一个或多LSA（取决于采用IS-IS还是OSPF），由每台路由器发出的全部LSA构成LSDB。与距离矢量协议不同，每台运行链路状态协议的路由器都可以通过其 LSDB 得到网络拓扑的完全视图。然后，使用一种称为Dijkstra的算法，根据特定度量值，计算从当前路由器（树根）到网络中每个可到达节点的最短路径树（Shortest Path Tree，SPT）。最后，根据得到的 SPT，每个节点都建立自己的路由表，其中包含到网络中每个可到达前缀的最短路径。

链路状态路由的一个重要方面是，保证同一个路由域中所有路由器的LSDB同步。为避免路由环路，这至关重要（因为网络拓扑视图不同的路由器可能执行不一致的路由决策，导致路由环境）。在过渡状态期间，可能暂时出现LSDB不一致的情况，如本节后面所示。

尽管OSPF和IS-IS在许多方面不同，但就网络恢复方面而言二者非常类似。因而，本节的内容适用于OSPF和IS-IS。

首先从稳定状态开始。如图 2.23 所示，在稳定状态时，所有路由器都有相同的LSDB。在邻接路由器之间使用Hello协议定期交换短小消息，以检查每台邻接路由器是否仍然为“alive”状态（通常称之为路由器保持路由邻接关系状态）。

图2.23 链路状态路由协议

给定稳定状态，可以描述发生网络失效时IP路由恢复周期的主要步骤。为方便说明，考虑链路R4-R5失效的情况，如图2.24所示。

在t0时刻发生失效（如链路R4-R5失效）。对于任何恢复机制，第一步都是检测故障。前面已经指出，故障检测时间是许多因素的函数，如第1层或第2层协议、Hello消息的频率等。

检测到失效的路由器（这里为R4和R5）后，将创建一个新的LSA，指出拓扑发生的变化。然而，有时可能需要将这个LSA延迟一段时间（前面介绍的hold-off定时器）后，再传播给其他路由器。在现代路由器实现中，LSA触发与LSA开始发出之间的时间通常是一个动态函数。后面将介绍用于控制LSA发出频率的一些机制以及为什么需要采用这种动态定时器方案。LSA 发出定时器到期时（这里为R4的t1时刻和R5的t2时刻），LSA将泛洪到网络中，这样，每台路由器都将在其LSDB中反映网络拓扑变化，并重新计算其路由表。

图2.24 失效时IP路由在的运行模式

假定R3在时刻t3收到R4的LSA。R3首先检查收到的LSA是否是“新的”（确定它是反映网络拓扑变化还是一次LSA刷新）。如果LSA指出了拓扑变化，将触发路由表计算（通常称为SPF计算）。类似于LSA发出，SPF与执行之间也有一个定时器。在同时发生多个失效的情况下（如节点失效可能导致它连接的许多链路失效），节点将收到多个新的LSA（如来自失效源的每个邻接节点的LSA）。因而，在开始SPF计算之前等待一段时间，可能更有利于得到精确的新网络拓扑。通过后面的案例研究，读者将明白为什么要采用动态定时器的原因。

注意 这里使用的计时只是为了说明，实际的事件序列可能不同（例如，路由器R8收到R5的LSA可能发生在R3收到R4的LSA之前）。

对于链路失效，尽管失效链路的每端同时发出LSA，但收到其中一个LSA就足以将该链路排除在SPF计算外。实际上，路由器在其SPT计算中考虑一条链路之前，总是检查该链路是否由链路的两端同时通告（这被称为双向连接性检查）。

LSA泛洪过程是可靠的，LSA的接收者总是需要确认，不确认将导致重新发送LSA。

收到R4的LSA后，R3计算新的路由表，以重新路由数据流。例如，在这个范例中，路径R1-R5上的数据流将被重路由到路径R3-R10-R11-R5上。考虑一个稍微不同的网络拓扑，即在 R3 和 R10 之间没有链路。在这种情况下，可重路由R1-R5数据流的第一个节点是R2。这说明了R3以最小延时快速泛洪R4的LSA的重要性，因为重路由节点可能位于失效节点上游好几跳之前。因而，加速LSA传播对于加速会聚时间来说是最重要的因素。通常这需要在每个节点上，通过各种路由器内部机制来限制处理延时。它为LSA泛洪过程提供适当的优先级，并可能使用QoS机制来减少LSA的排队延时。

收到新的LSA或LSA集后，每台路由器开始SPF计算，该过程实际上由两部分组成：SPT计算和路由表更新（为每个前缀计算最短路径）。当然，没有简单的规则来计算SPF时间，因为它取决于许多因素，如网络规模和拓扑、网络中的IP前缀数量等。但对于包含数百台路由器的大型网络，优化后的SPT计算很少超过几十毫秒。另一方面，对于包含几千个IP前缀的网络，路由表计算时间通常为几百毫秒。一种称为增量SPF（Incremental SPF，ISPF）的SPF优化方法，通过只对必要的网络拓扑部分重新计算SPT的方法，在大多数失效情况下可以显著地减少SPT和路由表计算时间。

在分布式路由架构中，最后一个步骤是更新线路卡上的转发信息库（Forwarding Information Base，FIB）。注意，这个步骤可能需要一些时间（如果FIB很大，可能需要数百毫秒）。

2.5.4 使用动态定时器执行LSA发出和SPF触发

前面介绍过，动态定时器用于控制LSA的发出和SPF计算的触发。任何恢复机制都试图快速响应失效事件，以快速恢复失效影响的网络元素。在IP路由中，路由器检测到由于链路或邻接节点失效引起的路由邻接关系丢失时，将发出一个新LSA，指出网络拓扑变化。这个LSA将被泛洪到整个网络，每个收到它的路由器都将触发新路由表计算。为减少总体会聚时间，需要连接到失效源的每台路由器快速发出一个新LSA，收到这种新LSA的每台路由器都快速触发SPF计算。但需要小心网络受不稳定网络元素的影响。考虑一条“flapping”链路的情况，如果在每次链路状态改变时快速发出一个新 LSA，这将不可避免地导致在网络中每台路由器上产生频繁的 IGP LSA更新和SPF触发，从而可能导致网络不稳定。Cisco 路由器上用于动态计算这种定时器的算法基于指数back-off，并采用路由器使用的三个参数。程序清单 2.1针对的是 IS-IS LSP发出，但也适用于SPF触发。

程序清单2.1 按指数级后退

程序清单2.1中的参数B指定路由器在检测到丢失路由邻接关系后，等待多长时间后发出一个新 LSP，以毫秒为单位。如果发生第二次状态改变，路由器等待C毫秒。如果发生第三次状态改变，路由器等待2C毫秒，然后是4C毫秒，直到到达最大值A秒。至此，如果链路状态持续反复变化，则两个LSP发出的间隔为A秒。然后，如果链路保持稳定状态超过2A秒，路由器恢复到初始状态行为。图2.25说明了这一过程。

图2.25 发出LSA的指数后退算法

SPF触发采用类似的算法。

这种指数增加算法有助于快速响应，同时还可以在网络元素不稳定时确保网络稳定。在本书后面将提供关于 LSA 发出和 SPF 触发的一些参数设置范例。

计算IP路由会聚时间

前面介绍了IP恢复过程中发生的各个步骤。检测到失效后，每个与失效源邻接的路由器在过一段时间后产生一个新LSA，每个LSA被可靠地泛洪到网络中。最后，每个收到新 LSA（反映拓扑变化）的节点在另一个定时器到期后触发SPF计算。因此，总会聚时间取决于非常多的因素：路由定时器设置、网络拓扑和前缀数等。在后面的案例研究中提供了一些范例，下面提供其数量级以及一些设计原则。在超大型网络中，可以实现 1 秒级的重路由时间，但是需要做一些设计工作。IP路由有两个重要特点：

• 不可预测性：所有路由器最终能够会聚，但很难预测精确的时间。

• 瞬间路由循环：因为新 LSA 的泛洪需要一些时间，所有在某些时刻网络中不同路由器可能有不同步的LSDB。由于有不同的网络拓扑视图，所以它们的路由决策可能导致路由环路。尽管如此，这些环路都是暂时的，所有路由器会聚后将消失。

前面介绍过，在泛洪LSA和计算SPF前一般需要等待一段时间。例如，在泛洪新LSA前，一般需要等待一段时间以防其他更低层恢复机制恢复失效资源。当由于节点失效而计算SPF时，会产生好几个LSA，等待一段时间可获得更精确的LSDB以计算新路由表。

为防止网络由于网络资源反复变化导致不稳定，采用动态定时器是必要的。前面的不稳定链路就是一个很好的例子。如果不采用动态 LSA 发出定时器，R4和R5都将持续发出新的LSA，导致路由控制更新，并在每个节点上触发新路由表计算。显然，这种结果不能令人满意。所以要设计一种后退机制，在第一次检测到链路失效时快速响应（发出新LSA），如果链路反复变化，则减缓LSA的发出。后退机制使用的算法（Cisco 路由器支持它）有三个参数：T1、T2 和 T3。T1指定路由器在检测到链路失效（准确地说是路由邻接关系丢失）后，等待多长时间发出新LSA；如果状态发生第二次改变，路由器在发生新LSA前等待T2时间；如果链路持续反复变化，则每次发生变化后产生LSA的等待时间将加倍，直到到达最大值T3。如果链路保持稳定的时间超过2T3，路由器将恢复初始行为。对于SPF计算也可使用类似的算法，以提供一种有效的快速会聚机制，同时保护路由器不受某些发生错误行为的路由器或网络不稳定条件的影响。

一种常见的误解是，IGP 的会聚时间长达数十秒。本节表明，实际上如果进行适当调整，这个时间可减少到1～2秒。另外，IP路由本身提供了备用带宽共享。实际上，没有针对资源失效而预留资源，因而发生失效时可用带宽能用来重路由任何数据流。另一方面，亚秒级重路由时间通常很难实现。其他网络恢复机制可能更适合这种需求。另外，在发生网络失效时保证等价的QoS也相当有挑战性。

2.5.5 MPLS流量工程的网络恢复

MPLS 流量工程提供了全面的网络恢复机制。我们将首先介绍基于全局恢复的默认恢复模式（称为MPLS TE重路由），然后介绍路径保护（全局保护），最后介绍MPLS快速重路由（本地保护）。每种机制提供了不同的能力以满足不同需求，如重路由时间、恢复范围、失效期间提供等价QoS的能力、所需的额外状态等。服务提供商可以根据自己的需求选择适当的MPLS TE恢复机制。

1．MPLS TE重路由

MPLS TE重路由是默认的MPLS流量工程网络恢复模式，它是一种全局恢复机制：

• 全局：前端路由器负责重路由网络元素失效影响的TE LSP。

• 恢复：前端路由器收到失效通知后，计算一条新路径，然后沿新的替代路由建立TE LSP（假定能够找到替代路径）。为尽可能彻底，还可以预先计算或预配置一条替代路径。注意，在任何失效发生前，应确定一条与当前活动路径完全不同的路径，因为无法提前预知失效。

考虑图 2.26所示的范例。TE LSP T1最初沿路径R1-R2-R3-R4-R5建立。然后，链路R3-R4失效。过一段时间（故障检测时间）后，路由器R3（和路由器R4）检测到该失效。同样，这个时间也取决于失效类型和第1层或第2层协议。如果是Packet over SONET（PoS）接口，故障检测时间通常为几毫秒。如果没有 hold-off定时器，失效点上游路由器立即发送失效通知（RSVP-TE Path Error消息）给前端路由器（这里为R1）。

R1收到T1出现失效的通知后，将立即触发T1的新路径计算（CSPF）（即使还没有收到 IGP LSA更新，R1在计算新路径前将链路R3-R4从其本地流量工程数据库中删除）。计算出新路径后，将沿着新计算得到的满足约束集的最短路径（这里为R1-R2-R7-R8-R4-R5）建立新TE LSP。

精确地量化执行上述操作所需的时间是非常困难的，因为其中涉及许多变量。它们包括网络拓扑（还有失效通知和新LSP信令消息需要经过的节点数，以及它们在光纤中的传播时间）、失效影响的TE LSP数量、路由器的CPU等。尽管如此，还是以可提供它的数量级。在大型重负载网络上，每节点的 CSPF时间和RSVP-TE处理时间通常为几毫秒。失效通知时间还必须考虑传播延时以及信令时间。所以，在洲际网络中，MPLS TE前端重路由时间的数量级将为几百毫秒。

图2.26 MPLS流量工程重路由（全局恢复）

毫无疑问，MPLS TE重路由是最简单的MPLS TE恢复机制，因为它不需要任何特定配置，且网络中所需的备用状态数量最少。其缺点是重路由速度没有后面将介绍的其他MPLS TE恢复技术快，也不容易预测。事实上，故障首先通知给前端路由器，然后计算新路径并在存在新路径时沿该路径建立新的 TE LSP（可能存在无法找到满足相同约束的备用路径的风险）。

2．MPLS TE路径保护

MPLS TE可使用的另一种网络恢复机制是路径保护。它的原理是预先计算并建立一个备用TE LSP，以防主TE LSP受网络元素失效影响。备用LSP路径可由前端路由器使用CSPF或由离线工具动态计算得到。

考虑图2.27所示的网络。备用LSP必须完全不同（即它不能使用与被保护TE LSP相同的任何设施，如链路），因为失效位置不能提前预知。多种方案提供了不同程度的多样性，可保护不同范围的失效。图2.27是一个提供链路多样性的备用路径和一个提供节点多样性的备用路径。

图2.27 MPLS流量工程路径（全局保护）

与MPLS TE重路由相比，路径保护的速度显然更快，因为它不需要计算替代TE LSP路径并重建立新TE LSP，就可以开始沿备用路径重路由数据流。另一方面，这种网络恢复缺乏可扩展性，因为它在网络中需要双倍的TE LSP。因而，在 50台路由器之间创建使用路径保护的TE LSP网将需要配置 4 900个TE LSP（而不是 2 450个）。另外，如果还需要提供备用路径带宽保证，则意味着需要预留额外的带宽，它们不能用于主TE LSP。最后，端到端路径多样性约束可能导致网络失效时采用某些非最优路径。

3．MPLS TE快速重路由

MPLS TE快速重路由是一种本地保护机制，是迄今为止最为广泛采用的MPLS TE恢复机制。它需要在每个节点上预先建立备用隧道，发生网络失效时用来本地重路由所有TE LSP。为保护某种设施，如链路、SRLG或节点，必须对相关路由器进行配置。所需的备用隧道可以通过手工配置（它们的路径静态配置）或通过自动机制实现（关于这种机制的细节可参阅后面的案例研究）。

考虑图2.28所示的网络。在每跳上配置了一个备用隧道，它采用的路径完全不同于被保护设施的路径。在这个范例中，被保护的设施是链路，但读者将看到，快速重路由也可用于保护SRLG和节点失效。图2.28显示了使用快速重路由保护链路R2-R3的情况。

（1）失效前的运行模式

现在我们来回顾一下失效发生前使用MPLS TE快速重路由所需的步骤。

如图2.28所示，在任何失效发生前建立了一条从R2到R3的备用隧道。它保护所有跨越链路R2-R3的TE LSP（如T1和T2）。在这里值得一提的是，可以基于每TE LSP配置快速重路由，并在RSVP-TE中显式地触发它，TE LSP将从配置的快速重路由中获益。事实上，根据不同的可用性需求，通过快速重路由只保护部分选定的TE LSP也是适当的。

图2.28 MPLS流量工程快速路由

在这个例子中，两个TE LSP跨越链路R2-R3。我们将着重讨论TE LSP T1。T1采用路径R1-R2-R3-R4-R5（RSVP-TE [Resv messages]分发的相应标签如图2.28所示）。当T1 LSP第一次建立时，该路径上的每个LSR确定该TE LSP是否要求快速重路由保护。如果T1有这种属性，则每台路由器试图选择一个备用隧道，以便链路失效时保护该TE LSP。对于T1，R2（也称为本地修复点（Point of Local Repair，PLR））选择B1作为备用隧道，当链路R2-R3失效时将使用该隧道。每个 PLR 选择一个满足需求且在下游某个节点处（称为合并点（Merge&nbsp;Point，[MP]），这里为R3）与被保护TE LSP相交的备用隧道。RSVP-TE信令让用户能够指定更多与快速重路由有关的参数，如带宽保护需求（即备用隧道是否能够提供相同的QoS）。关于这方面以后还会介绍。

（2）在失效期间和失效之后的运行模式

当链路发生失效时（图2.28中的链路R2-R3），恢复周期的第一步是由PLR （R2）执行故障检测。前面已经指出，根据使用的故障检测机制，检测时间可能为几毫秒（PoS 警告）到几十毫秒甚至几百毫秒。在案例研究中，将介绍各种故障检测机制。一旦检测到失效，PLR将触发如下操作：

• 每个被保护TE LSP（在失效前已经为它选择了备用隧道）进入“protectionactive”（保护活动）模式。在这种模式下将执行常规的标签交换操作，然后压入一个标签，并立即沿备用隧道路径重定向数据流。也就是说，受保护TE LSP的数据流被传递到选定备用隧道，然后沿备用隧道路径进行标签交换，直到到达MP（R3）。例如，在这里，标签首先由PLR R2从1交换为2（与稳定状态相同），然后将标签10压入标签栈，再将重路由的数据流发送到R10。注意，在这里R10没有任何特定变化（在采用备用路径的LSR上，没有创建与重路由TE LSP有关的任何状态）。R10执行常规操作（PHP），并将数据流发送到R3。最后，R3收到标签值为 2 的包（与稳定状态相同），但是从另一个接口收到的，它没有给全局标签空间分配平台（如路由器）带来任何额外的问题。R3 再执行常规的标签交换操作（从2到3），然后R4执行PHP，最后该IP包被发送到TE LSP目的地R5。

• 因为重路由后的TE LSP采用的路径不再是端到端最优路径，所以PLR发送一个关于重路由TE LSP的通知给前端路由器。前端路由器触发非中断性重新优化，并采用 2.2.9 节介绍的“断开前建立”过程执行重新优化。

• 发生本地重路由后，PLR必须刷新备用隧道上的重路由TE LSP。RSVP-TE是一种软状态协议，因而必须定期刷新每个TE LSP的状态。前面已经介绍，刷新过程是通过发送RSVP-TE Path和Resv消息（分别向下游和上游）来完成的。对于重路由TE LSP也是一样。所以，对于备用隧道上重路由的每个TE LSP，PLR必须向备用隧道下游邻居发送Path消息，以不断刷新TE LSP状态（注意这些RSVP-TE Path消息采用标签交换协议从PLR发送到MP，使得它们不会被备用路径上任何中间节点看到）。需要强调的是，在有些情况下，前端路由器无法重路由受影响的TE LSP。在这种情况下，重路由TE LSP将保持在这种模式，直到发生重新优化。这更加突出了刷新本地重路由TE LSP状态的必要性。关于触发快速重路由时与信令过程有关的其他一些细节，请参阅文档[FRR]。

然而，如果前端路由器最终将快速重新优化TE LSP，为什么还需要刷新下游状态呢？原因有两个。首先，根据RSVP-TE定时器设置和事件时序，重路由TE LSP的状态可能在前端路由器重新优化TE LSP前过期。另一个原因是有些情况下前端路由器不能找到满足所需约束的替代路径。在这种情况下，应该有一种实现机制让重路由TE LSP保持当前状态（沿备用隧道），以避免TE LSP失效，直到发现一条更优的路径。

快速重路由刚被触发后的情景（也称为失效期间）如图2.29所示。

图2.29 MPLS流量工程运行模式（链路保护）

这里介绍快速重路由模式时使用了链路保护的范例，但快速重路由不仅适用于链路保护，它还可用于保护TE LSP不受节点失效的影响，如图 2.30所示。

现在的目标是保护TE LSP不受节点失效的影响。在本例中，解决方案是预先建立一个绕过被保护节点的备用隧道（也称为“下下跳”（next-next hop， [NNHOP]）备用隧道）。因而，将预先建立一条从PLR（R2）到MP（它是PLR的下下跳，这里为R4）的备用隧道B2。一旦PLR检测到节点失效，则应用完全相同的原则，并将受影响的TE LSP（它采用路径R2-R3-R4）重路由到B2。

图2.30 MPLS流量工程快速重路由（节点保护）

还一个问题必须解决。在常规RSVP-TE运行模式中，标签逐跳向上游方向（从后端路由器到前端路由器）分发。例如，R4绑定标签3到R3，R3分发标签2给R2，R2分发标签1给R1。注意，R2不知道（且在稳定状态时也没有必要知道）R3和R4之间使用的标签，它只需要R3所期望的标签。在前面的范例中我们看到，当触发快速重路由时，PLR 首先执行常规标签交换操作。所以，应用相同的规则集，PLR（R2）将执行标签交换操作（1到2），然后压入标签20，再沿B2的路径（20→21，21→22）交换，直到备用隧道次末跳（R8）执行PHP操作。然后，R4收到标签2，但它期望标签3。这表明在使用NNHOP备用隧道时，PLR必须将收到的标签交换为MP期望的标签（这里为3）。

这是通过RSVP-TE扩展来实现的，它允许记录TE LSP路径穿越的路由器，并记录分配的相应标签。由于这种扩展使用RSVP-TE路由记录对象（Route Record Object，PRO），PLR可以确定MP期望的标签。因而，它可以先触发适当的标签交换操作，然后加入备用标签并将重路由的TE LSP重定向到适当的出站接口。

将快速重路由用于节点保护时，完整的操作序列如图2.31所示。

请注意PLR如何检测节点失效以及链路失效。实际上这是一个非常困难的问题，因为当一个节点出现电源故障时，它连接的链路也会失效。那么PLR如何区分链路失效与节点失效呢？实际上它不能区分（尽管人们已经提出了一些机制[还没有实现]）。为安全起见，如果同时配置了下一跳备用隧道和下下跳隧道，PLR总是假定节点失效。

图2.31 MPLS流量工程快速重路由节点保护的运行模式

（3）快速重路由所需的NNHOP备用隧道数

在给定PLR上，为保护一个节点所需的最小备用隧道数量等于下下跳数量。回到我们的范例，为在节点R3失效时保护所有TE LSP，在R2上需要三条备用隧道：

• 一条从R2到R4的NNHOP备用隧道，它保护所有采用路径R2-R3-R4的TE LSP。

• 一条从R2到R7的NNHOP备用隧道，它保护所有采用路径R2-R3-R7的TE LSP。

• 一条从R2到R10的NNHOP备用隧道，它保护所有采用路径R2-R3-R10的TE LSP。

我们前面提到过，MPLS TE快速重路由还可用于保护 SRLG失效。MPLS&nbsp;TE快速重路由只需在计算备用隧道路径时考虑每条链路的SRLG成员关系（通过 IGP泛洪），就可以用于保护TE LSP不受SRLG失效的影响。

（4）备用隧道路径计算

有很多种路径计算算法可用于计算备用隧道路径，有分布式算法，也有集中式算法。前面已经指出，目标集决定了算法复杂性。

例如，需求可能仅仅是找到一条与被保护设施（如链路、SRLG 或节点）不相连的路径。在这种情况下，算法相当简单。另一方面，如果还需要满足其他约束，如带宽保护、限制传播延时等，则通常会导致算法复杂性的非线性增加。在这种情况下，算法效率通常以所需的备用容量和其他准则来衡量。

实际上，任何恢复机制的目标之一是使所需备用的资源数量最小化。如果备用路径需要一些保证，如带宽、延时等，则通常意味着需要为备用隧道预留一些网络资源，如带宽等。关于这些保证，相对常见的目标是保护单个网络元素失效。（注意，对于SRLG的情况，该网络元素本身就由多条链路组成。当多个光波长（optical lambdas）通过某种技术——如密集波分多路复用（Dense Wavelength Division Multiplexing，[DWDM]）——复用到一条光纤时就属于这种情况，它们是同一个SRLG的全部组成部分）。当认为这种假设可接受时（通常称为“单点失效假设”，single failure assumption），可以进行一次有趣的观察。如果两条备用隧道保护相互独立的资源，因为假定两个资源不会同时失效，所以这两个备用隧道永远不会同时激活。因而所需的备用带宽不是它们共享的带宽之和，而是它们各自带宽的最大值。如果备用路径计算算法支持这种带宽共享的概念，则可以大幅减少单点失效假设条件下所需的备用带宽。

（5）备用隧道负载均衡

它是指在保护单个网络元素时预先在PLR和MP之间建立多个备用隧道的能力（即用四个下一跳备用隧道保护单条链路）。这种设计有很多种原因，但最主要的原因是单备用隧道有时候不能找到满足必要约束的路径。例如，考虑一个OC-192链路的情况，运营商需要对它实现完全的带宽保护。也就是说，计算出的备用隧道必须能够提供相同的 QoS（通常简化为查找一条能够提供相同带宽的路径）。有时候可能无法找到这样一条路径。

一种解决方案是建立多个备用隧道（例如，建立四个2.5-Gbit/s备用TE隧道），使它们的带宽之和等于被保护设施（如OC-192链路）的带宽。因此，PLR有好几个备用隧道来保护给定设施。一旦TE LSP请求保护，PLR将从候选集（满足TE LSP需求的备用隧道集）中选择一条备用隧道。需要强调的是，对于每个TE&nbsp;LSP，只选择一个备用隧道（这也是为什么需要对术语负载均衡进行一些澄清的原因）。你不会使用多个备用隧道来保护单个TE LSP的失效以避免包重新排序。同一个流的包将采用不同的路径，这可能导致包重新排序，尤其是在备用隧道的路径有不同的特征（如带宽和/或传播延时）时。在 PLR 上需要完善的算法来执行高效的备用隧道选择，以应付这些挑战。一种挑战是打包问题（对于一个TE LSP集，如何选备用隧道集以满足最大数量的请求）。另一个挑战是智能映射（例如，将具有不同属性的主TE LSP集映射到具有相应属性的不同备用隧道）。

这可能是一种简单优雅的解决方案，但它以额外的整体复杂性为代价，且需要配置更多的备用隧道。

（6）回退与非回退

什么时候重用新恢复的链路？实际上有两种情况需要考虑。

第一种情况是TE LSP通过快速重路由机制在本地被重路由。如果链路在其前端路由器重新优化TE LSP前恢复，则可以让PLR将该TE LSP回退到原始路径。然而，这种方法（也称为本地退回）有几个缺点。在来回波动的链路上，它将导致将数据流在两个路径之间来回切换，如果没有使用阻尼算法，将导致反复的数据流中断。所以，快速重路由规范（参阅文档[FRR]）推荐采用全局回退模式：是否回退到新恢复的链路完全由前端路由器决定。

另一种情况是前端路由器已经沿一条更优的路径重新优化TE LSP，然后链路恢复。同样，这种情况下也是由前端路由器决定是否沿该路径重新优化 TE LSP。有几种因素需要考虑，如重新优化频率和路径优化程度等。

（7）快速重路由小结

快速重路由提供了类似 SONET 的恢复时间（前提是能够通过 PoS 警告快速检测链路失效，骨干链路通常属于这种情况），所以获得了巨大的成功。由于其本地保护本质，快速重路由会聚时间可以高度优化且是确定的。重路由节点紧邻失效点上游（失效通知时间为零），备用路径在失效前已经建立（备用路径不是动态计算得到）。另一方面，快速重路由可能需要建立相当数量的备用隧道。在本书后面你将看到几种技术和工具，可用于帮助部署快速重路由并自动创建备用隧道。在复杂度方面，如前面所指出的，备用隧道路径算法的复杂性及其管理工作量是功能需求集的函数。

总之，MPLS TE快速重路由是一种高效的本地保护机制，提供了十毫秒级的会聚时间。另外，MPLS TE快速重路由还可使用更完善的备用隧道路径计算算法，以满足严格的恢复需求，如带宽和传播延时保护等。

第3章 长途通信公司设计案例

USCom是一家虚构的位于美国的全国性数据和长途语音服务提供商，它提供了不同地理区域本地交换中心之间的连接。它还提供跨 LATA（Local Access and Transport Area，本地接入和传输区域）服务（在联邦通信委员会（Federal Communications Commission，FCC）的 1996年电信法案中描述）以及各种数据服务。USCom可被归类为长途通信公司（Interexchange Carrier，IXC），它拥有自己的光纤和传输设施，以及覆盖其服务区域的第2层交换基础设施（ATM和帧中继）。

注意 美国的LATA决定了本地交换通信公司（Local Exchange Carrier，LEC）可在哪里传输数据流以及在哪里需要IXC来承载LATA之间的数据流。一个州可能有几个LATA，有些LATA是跨州的。

本章介绍USCom当前的MPLS网络设计、它的发展以及USCom的特征和目标如何影响相应的设计决策。

3.1 USCom的网络环境

USCom 多年来一直为其他服务提供商（批发商）、大型企业和中小型企业客户提供因特网接入服务。在它的基础设施上，现在有超过 35 000个因特网端口。这些端口位于其遍布全国的 100个POP（Point of Presence）中的350个因特网边缘路由器（称为因特网接入提供商边缘[PE]路由器）上。因特网连接通过中转提供商、专用对等会话和主要城市到不同网络接入点（Network Access Point， NAP）的连接而实现。

USCom在2002年开始提供第3层多协议标签交换（MPLS）VPN服务（它基于[2547bis]描述的架构）后获得了巨大的成功。用户对这种服务的广泛接受增加了USCom的客户群。当前在全美国安装了 12 500个VPN端口，且这个数字每个月都在以较大的幅度增长。客户管理的客户边缘（CE）路由器与安装在USCom不同POP中的 255个第3层MPLS VPN PE路由器相连。注意， PE路由器专用于因特网接入或第3层MPLS VPN访问。由于这些服务的成功， USCom计划每年增加 6 000条客户接入链路，尽管基于当前趋势该数字是偏于保守的。总流量（包括因特网和VPN）预期每年大约增长30%。

在本书许多地方引用了到其他资源。提供参考文献旨在帮助有兴趣的读者可更深入地了解某个主题。这些参考文献用方括号标准，如[L2VPN]。如果想要了解关于该资源的更详细信息，可查询附录“参考文献”，以得到关于该资源的特定信息。

USCom 拥有遍布全美的光纤，且运行基于密集波分多路复用（ dense wavelength division multiplexing，DWDM）技术的长途光纤核心网络。这些基础设施以相对较低的费用和时间，为提供商路由器（P路由器）和PE路由器相互连接提供了高速链路（OC-48（2.488 Gbit/s）和 OC-192（10 Gbit/s））。USCom可以在相对较短的时间内通过启用额外的波长（lambdas），以激活额外的容量。USCom利用这种功能增强了核心路由器链路的过度工程策略。

这些高速核心链路作为自然波长（native lambdas）直接从 DWDM设备提供给路由器，而不需要任何中间SONET增/减多路复用器（Add/Drop Multiplexer， ADM）（注意，在路由器和 DWDM 设备之间使用 SONET 成帧技术）。这些链路不会受益于任何光纤级保护。有些用于互连P路由器和PE路由器的链路通过光纤基础设施上叠加的SONET基础设施来提供。这些SONET链路可以通过采用四路光纤的双向线路切换环（Bidirectional Line Switch Ring，BLSR）（也称为BLSR/4）提供的SONET保护措施来保护。关于SONET-SDH恢复机制的更多详细信息，请参阅文档[NET-RECOM]。

POP内部连接通过Packet over SONET（PoS）或交换型吉比特以太网来实现。由于交换型吉比特以太网的成本相对低廉，而光纤的价格较高，USCom在POP内部提供了多余的容量。

从CE路由器到PE路由器的因特网和第3层MPLS VPN连接是通过帧中继、ATM、租用线或SONET提供的。每条这样的物理（或逻辑）链路专用单个CE路由器。这些链路涉及较大的开销，这样就无法提供多余的容量，且要求缩小规模。访问速度通常为 64 kbit/s到OC-48。

图3.1说明了USCom全国性骨干POP拓扑，它通过OC-48和OC-192链路互连。

图3.1 USCom全国性拓扑

USCom网络由三个级别的POP组成，每个POP属于骨干（1级）、中型（2级）和小型（3级）设施。级别取决于客户接入密度和总吞吐需求。所有路由器组成一个自主系统，由美国因特网编号登记处（American Registry for Internet Numbers，ARIN）分配AS号32765。USCom获得了23/8地址空间。该公司将这个地址空间用于其内部基础设施和客户地址分配。

1级POP是包含高容量骨干P路由器的骨干POP（如图3.1所示），专用于长途传输和低级POP与长途传输骨干互连。它还部署了从这些位置提供因特网和第 3层MPLS VPN服务的PE路由器，还有一些额外的P路由器用作这些PE路由器在POP内部的聚合层。聚合P路由器将骨干P路由器需要维护的IGP邻接关系数量减少到2个，因为每个核心P路由器只作为两个聚合P路由器（以及骨干中其他的核心P路由器）的对等体，而不需要作为POP中所有PE路由器（在1级POP中，这个数量可能非常大，且还在增加）的对等体。

每个1级POP有两个骨干P路由器，它们通过OC-48、双OC-48或OC-192链路与骨干网的其余部分相连。它们还使用OC-3（155.52 Mbit/s）或OC-48链路与低级POP相连。每个骨干P路由器通过一条点对点OC-48链路与两个本地聚合P路由器相连。每台PE路由器通过OC-3 PoS链路与两个聚合P路由器相连。当前共有15个1级POP，它们的结构如图3.2所示。

图3.2 USCom 1级POP的设计

2级POP由一些通过OC-3或OC-48链路连接到1级POP或其他2级POP的P路由器以及位于中型接入地点的PE路由器组成。每台PE路由器通过冗余交换型吉比特以太网连接到两个骨干 P 路由器（使用两个独立的吉比特以太网交换机）。当前共有25个2级POP，其结构如图3.3所示。

图3.3 USCom 2级POP的设计

3级POP由远程的PE路由器和通过OC-3链路连接到2级POP的P路由器组成。当前共有60个3级POP，其结构如图3.4所示。

图3.4 USCom 3级POP的设计

几年前，USCom部署了一个提供OC-3链路的SONET。这些链路通过四路光纤BLSR提供的保护机制在SONET层得到保护。这就可以按SONET标准指定的某些特殊条件在60毫秒内从链路失效中恢复。USCom满足所有条件，包括环长在 1 200 km以内，少于 16个 SONET站，且环在保护前处于空闲状态。图3.5说明了通过四路光纤BLSR提供保护的OC-3链路，这些链路用于1级和2/3级POP。因为这些链路受到保护且稳定运行，所以USCom决定不做任何改变，在核心网络中继续使用它们。

注意 使用SONET保护只考虑了SONET网络内链路失效的情况，而没有考虑IP路由器接口失效（有时被认为是链路失效）或路由器失效的情况。另一方面， USCom认为路由器接口失效和路由器失效很少发生，且认为不使用额外的恢复机制，如自动保护交换（Automatic Protection Switching，APS）是可接受的。

图3.5还表明，USCom光纤网络使用了DWDM技术，从而允许在单根光纤上复用数十条光路径。注意，USCom在某些地理区域部署了粗略波分多路复用（Coarse Wave Division Multiplexing，CWDM）设备，提供了更低程度（4）的多路复用。DWDM设备让公司能够提供1+1光纤保护。这种保护方案依赖于专用光设备沿主路径和辅路径执行数据流桥接，其中主路径和辅路径是完全不同的路径。发生链路失效时，如光纤断裂或光设备失效，接收方将迅速检测到失效，并将接收的数据流从主路径切换到辅路径。这种类型的机制（常称为“single-ended”）是非常有效的，因为在发送方和接收方之间不需要任何额外的信令机制或协调（仅仅是接收方执行切换功能）。因而，其重路由时间非常短（大约几毫秒）。另外，发生网络失效时，它还能保证完全等价的服务质量（QoS），因为辅路径与主路径是等同的。另一方面，它需要一半的光纤容量用于备用恢复。另外，这种保护方案意味着需要购买额外的光设备。

图3.5 由四路光纤BLSR提供保护的OC-3链路

因而，USCom 决定使用所有网络带宽来路由主数据流，并依赖于上层保护机制（参阅3.7节），以很低的成本提供相当的重路由时间。所有光路径都用于1级POP间链路和1级与2级POP间链路的IP/MPLS层，因而没有保护机制。这与前面介绍的USCom采用核心网络过度工程策略完全一致。

尽管DWDM有以非常低成本提供高带宽的能力，但它也有缺点。多条链路共享相同的资源和设备，它的失效可能影响多条链路。这称为共享风险链路组（Shared Risk Link Group，SRLG），在生产性设计中应该考虑这一点。

将前面所有信息组织到一起，从图3.6可以看到如何实现3级POP到2级POP再到1级POP的连接。

图3.6 USCom网络内POP之间的连接

表3.1总结了USCom网络中使用的各种链路以及它们的主要特性和位置。

表3.1 USCom骨干网络中的链路类型和特性

在过去几年里，USCom收集了不同的网络失效统计数据；总结如表3.2所示。这些统计信息可用来评价USCom骨干网络的设计需求。

表3.2 USCom网络内的链路失效统计数据

3.2 USCom的网络设计目标

USCom的网络设计目标包括如下内容：

• 确保第 3层MPLS VPN设计可满足当前规模需求以及未来几年预期服务增长的需求。

• 用服务质量承诺丰富第 3层MPLS VPN服务，将市场定位于那些想将数据/语音/视频网络融合到单个多媒体内部网的大型企业；

• 为VPN用户提供高可用性承诺而不需要增加额外的资金投入。

下面各节介绍USCom选择的网络设计及其路由、第 3层MPLS VPN、QoS、流量工程和网络恢复的基本原理。最后一节介绍从USCom网络设计获得的一些教训。

3.3 路由和骨干标签转发设计

所有的网络，不管它们是跨越整个大陆，还是仅仅跨越少数几个地理区域，都有一些挑战性问题需要网络架构师来解决。有些问题比其他问题容易处理，而有些特定服务提出独特的挑战。本节将介绍USCom如何决定部署其内部和外部 IP路由，以及它如何决定组织其第 3层MPLS VPN服务。

我们已经知道，USCom 运行一个跨越整个美国大陆的国家性骨干基础设施。该网络必须支持许多不同服务，包括因特网接入和第3层VPN服务。在最初的第3层VPN部署期，USCom决定部署MPLS技术以支持[2547bit]指定的架构。这种架构提供了基于网络的VPN服务。第1章已对这种架构做了详细介绍。

为这种服务部署MPLS后，USCom还决定支持快速重路由（FRR）功能（在3.7.4 节将介绍）。显然，该网络还需要支持未来的新服务，所以 USCom 选择MPLS作为其主要技术，以支持公司现在和未来的服务需求。

在骨干网络中使用标签分发协议（Label Distribution Protocol，LDP），实现标签从USCom网络的一个边缘交换到另一个边缘。但当前只对第3层VPN数据流进行标签交换，因特网数据流则以常规IP 转发过程进行转发。将VPN转发与标准IP转发分开旨在在引入第3层VPN前，以相同的方式运行因特网网络。这样不需要为因特网数据流对配置、监视、排错或任何其他运行过程执行修改。除此之外，如果因特网数据流采用标签交换，还会存在许多技术挑战，包括已有IP工具（如NetFlow）如何运行，如何跟踪并处理网络事件（如拒绝服务（DoS）攻击）。第5章将介绍如何克服这些问题，以及USCom计划将来如何引入这些新技术。

从内部路由的角度看，USCom 运行 IS-IS 作为其内部网关协议（Interior Gateway Protocol，IGP），它承载PE路由器（IP和VPN PE路由器）的环回接口地址和内部链路地址。内部路由的数量大约为 3 000条。USCom预期在未来两年内，IS-IS域的路由器数量不会超过 1 000台。因而 IS-IS网络是 2级网络，不需要管理多个层次的复杂性。

USCom 测量到现有网络上的泛洪活动完全位于合理范围内。最短路径优先（Shortest Path First，SPF）计算时间的数量级为 100 ms（通常接近 60 ms），其中不包括路由表更新时间。如果未来某个时候由于不同边缘设备（如ADSL或拨号访问路由器）上 IS-IS 活动增加而导致 IS-IS 路由器数量急剧增加， USCom可以考虑将网络分成多个层次（每个 POP将位于第1层）。这对于保持网络会聚时间也是非常必要的。关于这些方面的详细分析，可参阅文档[NET-RECOV]。

3.3.1 因特网和第3层MPLS VPN服务的分离

从转发的角度看，第 3 层 VPN 数据流与因特网数据流相分离，其中 VPN数据流在USCom网络上采用标签交换，而因特网数据流则采用IP路由/转发。服务于VPN和因特网客户的路由器也是不相同的。这主要是因为因特网服务已经部署了许多年，且USCom想将新的第 3层MPLS VPN服务作为一个新项目部署，而不需要担心它对现在客户的影响。

骨干网络基础设施的地址范围是23.49.0.0/16块。它包括所有P路由器、PE路由器（用于因特网和第 3 层 VPN）以及 USCom 网络内的任何其他设备。P路由器与面向核心的因特网和第 3 层 VPN PE 路由器都位于地址范围23.49.0.0/21（即IP地址范围23.49.0.1～23.49.7.254）。

因特网PE路由器和 IPv4路由反射器（route reflector，RR）的环回接口地址位于范围23.49.8.0/22内（即地址范围23.49.8.1～23.49.11.254）。

每个第 3层MPLS VPN PE路由器都配置一个环回接口；用作所有多协议BGP（MP-BGP）对等会话的源地址。类似地，每个因特网接入PE路由器也分配一个环回接口地址；用作所有 IPv4 BGP-4对等会话的源地址。

USCom还曾经考虑过将一个私有IP地址块（来自[PRIVATE]范围）用于其内部基础设施。使用私有地址可防止从因特网访问，因为它是一个不可路由的地址空间，所以理论上USCom内部网络将从外部不可见。然而，本地连接的客户仍然可访问该网络，例如通过默认路由发送数据流到USCom。因而，使用私有地址空间的优势又被削弱了。另外，如果未来合并其他公司，可能会带来一些集成问题，所以最后的设计方案没有使用私有地址。

因为因特网 PE路由器和第 3层MPLS VPN PE路由器是相互分离的，且USCom选择只对VPN数据流采用标签交换机制转发，所以转发分离需要在LDP层实现。基于帧模式运行的LDP协议的默认行为是为每个IGP或本地（静态或直接连接）前缀创建并分发标签绑定。这在USCom网络中是不必要的，因为只有VPN数据流需要标签交换，且所有因特网数据流将被路由，永远不需要任何分配的标签空间。所以只有MPLS VPN PE路由器环回接口地址（当前为 255个）需要标签绑定，通过标签交换转发的数据流将把它们作为目标地址。程序清单3.1说明LDP过滤的实现过程。

程序清单3.1 PE路由器环回接口的标签绑定过滤

注意 程序清单3.1表明，UScom为过滤器添加了23.49.20.0/22地址范围。在当前部署的网络中没有使用这个地址范围。它被保留以供未来使用，防止现有的23.49.16.0/22 地址块被耗尽。这样，USCom在未来将不需要更新所有路由器上的过滤器，只需允许该地址块即可。

注意 值得一提的是，LDP过滤需要在网络中所有路由器上激活，包括P路由器（不仅仅是 PE 路由器）。这可以防止在整个网络中不必要地分配标签空间。它还可阻止因特网数据流使用标签交换。

在未来，USCom可能还会决定对其因特网数据流进行标签交换。这可以通过删除LDP过滤（其配置如程序清单3.1所示）或更新LDP过滤器以包括因特网PE路由器环回接口地址来实现。

3.3.2 因特网服务路由反射部署

图3.7 为因特网服务部署IPv4路由映射器

USCom网络的因特网服务RR设计非常典型。它遵循网络的物理拓扑（为了避免环路），如图3.7所示（图中只显示了有外部对等点的核心POP，尽管该设计与所有1级POP相关）。每个1级POP有两个因特网RR（骨干P路由器）。所有因特网PE路由器在本地是对等关系，且是这些设备的客户。所有1级POP RR在BGP-4级全互联。聚合P路由器也是这些RR的客户。

在1级和2级POP之间还部署了另一个RR层。每个2级POP有两个RR （出口骨干P路由器）；它们是最近的 1级POP RR的客户。2级POP内部的每个因特网PE路由器是本地2级RR的客户。每个3级POP因特网PE路由器和骨干P路由器与最近的 2级POP RR互为对等设备（也遵循网络的物理拓扑）。

图 3.8说明了不同级别POP之间的 IPv4 BGP对等关系以及这些POP中的RR。注意该图提供了典型的拓扑，虽然在有些情况下，2级POP RR可能与其他1级POP建立对等关系（即RR与另一个1级POP，而不是2级POP中的另一个RR建立对等关系）。这取决于RR在整体拓扑中的地理位置。

图3.8 POP到POP的 IPv4 BGP路由反射

全局 IPv4 BGP表当前包含大约 155 000条因特网路由。

3.4 第3层MPLS VPN服务设计概述

USCom的第 3层MPLS VPN服务设计定位于将信息技术服务外包给第三方服务提供商或不想在使用传统覆盖式第2层VPN模型（如帧中继或ATM）的公司。导致这种趋势的原因是最终客户所需的费用减少，且能够以可扩展方式享受额外服务（如QoS和多播）。在许多情况下星形拓扑（在基于帧中继的环境中极其常见）不足以满足最终用户的应用需求。从可用性、可扩展性和服务部署的角度看，能够使用具有全互联特征的基础设施很有吸引力。最初提供的服务针对的是“非管理”市场：USCom为最终用户提供网络连接，但由最终用户控制自己的路由。然而，本设计将USCom定位于在将来能够提供“管理型”服务：即由USCom管理最终用户的设备。

USCom使用全部（100个）POP来提供第 3层MPLS VPN服务。客户通过帧中继、ATM、租用线和 PoS接入。接入速度为 n×DS0（64 kbit/s）到OC-3 （低速和中速）以及OC-3到OC-48（高速）。

当前网络部署了255台PE路由器。在美国这被视为密集部署。它们散布在100个POP中，平均每个3级POP有两台PE路由器，每个2级POP有3台PE路由器，每个1级POP有6台PE路由器。然而PE路由器基于每个位置的客户需求进行部署，因而平均数量并一定代表实际的部署拓扑。例如，当前大约有30个3级POP只部署了一台PE路由器（平均为两台）。另一方面，New York POP （它是一个1级POP）部署了10台PE路由器，远远超出了平均数。

USCom 最初定义了两种类型的客户，他们可能访问全国性第 3 层 MPLS VPN服务，如下面的列表所述。因特网连接被视为一种独立的服务，因而没有与VPN服务绑定。

• VPN内部网：该类客户要求内部站点相互连接以建立内部网，但不提供外部网连接。然而，如果USCom网络引入任何中央服务（如Web托管、防火墙等），客户可以连接这些服务。

• VPN外部网：该类客户要求内部站点和外部合作伙伴的站点相互连接，以建立外部网。

USCom将其VPN分为三类：小型、中型和大型，如表3.3所示。这些类别基于客户的规模，以VPN包含的站点数衡量。统计表明当前部署了500个VPN，总共包含 12 500个VPN站点，其中 10个大型VPN，200个中型VPN，290个小型VPN。这些VPN站点在网络中共形成了 62 500条VPNv4路由。

表3.3 IP VPN分类

从表中数据可知，尽管大多数VPN客户都属于小型VPN，但他们只占总站点数的15%。只有2%的客户属于大型VPN，但他们占总站点数量的40%。

3.4.1 PE路由器基本工程指导方针

配置新的第 3层MPLS VPN客户时，需要一系列工程指导方针，它们足够灵活且易于从中央管理系统实现。对于每个新客户，需要配置许多相同的属性。在第1章已经对这些属性进行了概述，可总结如下：

• 虚拟路由/转发（VRF）实例的定义和配置；

• 路由区分标志（Route Distinguisher，RD）的定义和配置；

• 路由协议上下文和/或静态路由配置；

• 导入/导出策略；

• 骨干控制平面与VRF的交互；

• 使用前面定义的VRF配置和关联面向客户的路由器接口；

• 服务质量（QoS）策略。

为每个VRF属性选择的值以及路由协议上下文的特定细节随VPN客户而异。然而，因为可以采用许多默认属性，所以供给系统只需提供一个模板，模板根据客户不同而采用不同的值。当今大多数商业供给系统都有默认模板用于配置这些属性。

大多数情况下，用于第 3层MPLS VPN服务的PE-CE链路都从USCom的IP地址空间分配IP地址。然而，在一些例外情况下，也可能使用客户的地址空间。这主要取决于客户的规模和拓扑以及客户的地址空间是否可以汇总成地址块。如果使用客户的地址空间，USCom要求它必须是全球分配的地址块，而不是私有地址范围，以避免与其他VPN客户发生冲突。

在所有情况下，USCom使用接口组MIB（Interface Group MIB，参阅文档[IF-MIB]）来监视物理PE-CE链路的状态。这可以通过轮询IfOperStatus.ifIndex对象来实现，关于该对象的细节可参阅文档[IF-MIB]。

USCom不会将任何客户总接入链路的15%以上放到单台PE路由器上，这有助于防止某台PE路由器出现硬件故障或计划维护时导致大量VPN连接丢失。尽管USCom在任何PE路由器上都没有达到可扩展性限制，但它还是决定对每台PE路由器上第 3层MPLS VPN客户的接入数量设置一个上限。这样做的考虑因素有很多，包括接入设备类型（如路由器的规模和能力）、吞吐量需求和附加服务需求（如QoS）等。表3.4总结了USCom的两种路由器平台的工程规则。当任何一种平台达到限制后，USCom将不再添加客户。

表3.4 PE路由器的评估规则

从表3.4可知，因为每种平台每VRF平均站点数为3，所以两种平台的每PE总CE连接数分别为 600和 3 000。

1．VRF命名规则

为VPN VRF选择名称时，别忘了网络运营人员将使用该名称对VPN的连接性问题排错。有几种命名规则可以采用。USCom选择在名称后加上客户名缩写，VRF名称从V101开始，每新部署一个VPN将编号加1。这种分配方案如表3.5所示。

表3.5 VPN名称分配方案

2．路由区分标志分配

路由区分标志（由文档[2547bit]描述）是一个 8字节实体，让MPLS VPN架构能够在运营商的骨干网络中唯一地标识路由。RD的结构取决于该属性的前2个字节指定的类型。

USCom选择使用其自主系统号加上为VPN客户指定的序号。图3.9说明了USCom选择的RD格式。

图3.9 路由区分标志的格式

理论上，可以采用几种方案来选择 RD 分配方法。其中最主要的几种方案总结如下。

• 为每个 VPN 使用独特的 RD。这是最容易部署的方案，因为每个 PE对给定VPN客户使用相同的值。然而，如果部署这种方案，在其拓扑中有 VPNv4 路由 RR 的运营商（这是非常典型的情况，USCom 就采用了这种拓扑）不能为使用双宿主第 3层MPLS VPN服务的客户提供负载均衡服务。这是因为不能保证VPNv4路由是唯一的。这样，有些路径可能对于那些执行负载均衡的路由器不可用，因为RR只通告“最佳”路径。

• 基于PE对每个VPN使用独特的RD。在每台PE路由器上为每个VPN分配唯一的RD，但对于给定VPN，不同PE路由器使用的RD值可能相同。在这种情况下，运营商可以在部署RR的同时提供负载均衡服务。这是因为可以保证VPNv4路由在MPLS骨干内的唯一性。注意，这种方案需要更多的内存空间来存储额外的VPNv4路由。

• 基于接口/PE路由器对每个VPN使用独特的RD。在每个接口上为每个VRF 分配独特的 RD。它的优点是，对于 VPN 中的特定站点，可以根据它通告的任何路由的RD值来标识它。然而，其他一些资源消耗更少的方法也可用于达到这一目标，如使用始发站点（sift of origin，SoO）属性。关于这种属性的格式，可参阅文档[EXTCOM]。

USCom选择对每VRF使用独特RD（第二种方案），因为它需要为许多有双宿主CE路由器的VPN客户提供负载均衡服务。虽然这种方案要求PE路由器有更多内存，但为满足USCom客户的需求，必须能够在部署RR的同时提供负载均衡服务。可用的 RD 范围为 32765:1 至 32765:4294967295，远远超出了USCom所需的数量。

注意 负载均衡及其对服务提供商骨干网的要求将在4.4.5节详细介绍。

3．导入/导出策略的路由目标分配

为指定 VPN 的导入/导出策略，必须为该 VPN 选择一个路由目标。[EXTCOM]指定可用于路由目标扩展共用体属性的三种主要格式。

USCom选择使用2字节的AS格式，并将其AS号32765作为共用体属性的ASN部分。在设计中不使用任何客户的AS号，因为如果VPN客户使用范围[64512～65535]中的私有AS号，则很可能导致冲突。

路由目标值32765:[1～100]为将来使用保留，所以可分配给VPN客户的路由目标值为32765:101～32765:65535。这正好与USCom的VRF命名规则相对应——将 VRF名称映射到路由目标数值。例如，BigBank of Massachusetts的VRF名称为v103:BigBank，它使用默认路由目标值32765:103。

注意 有些VPN客户可能要求对每个VRF使用多个路由目标，例如星型拓扑中的分支站点需要连接中央服务时。这种拓扑通常称为中央服务拓扑或星型拓扑。在这种情况下，不能使用这种VRF名称到路由目标的映射。

4．基本的PE路由器配置模板

程序清单3.2是USCom使用的基本PE路由器配置模板。

程序清单3.2 PE路由器配置模板

（待续）

3.4.2 PE路由器控制平面需求

对于任何基于第3层网络的VPN服务，一个最大的挑战是如何以可扩展的方式将客户特定的路由信息分发给边缘路由器。随着服务量增长，需要使用骨干控制平面基础设施来通告越来越多的VPN路由。这种信息量可能会随着服务不断增长而变得相当巨大。

尽管从路由信息容量方面看，USCom的第 3层MPLS VPN服务的未来扩展计划没有显示出任何饱和点，但显然随着服务的不断成熟，骨干控制平面基础设施的设计将非常关键。

当前的网络部署有 255台PE路由器，用于提供第 3层MPLS VPN服务。鉴于这么多的PE路由器以及承载不断增长的VPNv4地址空间的需求，USCom选择部署VPNv4特定RR（详细内容可参阅3.4.3节），以实现路由分发的可扩展性。RR可以许多种方式帮助网络基础设施实现可扩展性。在其他几章中读者将看到，还可以增加额外功能以进一步提高这种可扩展性。然而，USCom选择使用 RR 的原因主要是减少网络的运行复杂性，因为骨干中 PE 路由器所需的MP-BGP TCP会话数量可以减少到两个（每个RR一个），而不是任何两台 PE路由器之间都需要一个这样的会话。

每台 PE 路由器至少需要维护两个到 USCom 骨干网络的 MP-BGP 对等会话。这些会话用于通过VPNv4 RR与其他PE路由器交换VPNv4前缀信息。为实现冗余，两个会话是必要的，以防某个RR失效或与该RR的连接不可用。

PE路由器路径MTU发现

在Cisco IOS中，默认情况下所有PE路由器都禁用路径MTU发现（参阅文档[PMTU] ）。这意味着所有 TCP 会话都将使用默认 TCP 最大分段长度（Maximum Segment Size，MSS）。这个默认值通常为出站接口MTU减去 IP包头/选项和TCP包头/选项（共 40字节）。例如，对于MTU为 1 500的以太网接口，MSS值为 1 460。

在Cisco路由器上，BGP使用默认MSS值536字节，而不管出站接口的类型是什么。使用这个较小值的问题是，在BGP 会话上发送的BGP信令信息需要分成更多数量的包，导致会聚时间大大增加。然而，[PMTU]提供了一种机制，让PE路由器能够发现适用于其BGP会话的最优MSS值，从而减少生成的消息数量。USCom使用程序清单3.3所示的配置，在其所有VPN PE路由器和VPNv4 RR上启用[PMTU]。

程序清单3.3 PE路由器PMTU配置模板

3.4.3 VPNv4路由反射器部署细节

有两种工具可用于帮助实现支持第 3层MPLS VPN服务VPNv4地址簇所需TCP会话的可扩展性：联盟和路由反射。USCom选择在其第3层MPLS VPN 设计中部署 RR，它们与用于因特网服务的 RR 完全分离。这种分离提供了更好的会聚时间，且在 CPU 和硬件内存方面提高了可扩展性。USCom没有部署联盟的需求，因为它的服务需求不要求使用子自主系统来划分MP-BGP拓扑。

从控制平面的角度看，第 3层MPLS VPN服务的RR部署规则与用于因特网服务的RR部署规则不同，因为VPN数据流将通过标签交换而不是被路由。在骨干网中，标签交换与IP转发的主要区别是，标签交换允许将RR部署到包转发路径外，这是因为对于给定包，其转发决策在网络边缘确定，而不需要在每跳决策。这种情况与用于IPv4路由分发的典型因特网设计有所不同，常见的做法是适当放置RR，使其符合网络的物理连接。这种设计可避免由于糟糕的路由布局而导致转发环路。图3.10说明了直接转发IP数据流（而不是通过标签交换）时，如果不遵循这些规则可能发生的情况。

图3.10 错误的IPv4路由反射设计导致转发环路

如图 3.10 所示，Denver POP 认为可通过 Washington 下一跳地址到达149.27.32.0/24，而Chicago POP认为可通过San Francisco下一跳地址到达。显然这是一种错误的设计，因为两个POP都应该与它们最近的RR建立对等关系。在这种情况下，在Chicago和Denver之间将发生包循环。

这个问题可以通过用标签交换（或IP隧道）实现包转发而消除，因为在网络核心中将不再检查包的原始目标IP地址。

1．VPNv4路由反射器的部署位置

前面介绍的因特网RR拓扑不能很好地适用于第 3层MPLS VPN服务，因为这种拓扑假定所有RR都承载相同的路由集。对于VPN服务，这可能是不必要甚至是不合适的，因为不是所有PE路由器都需要相同的路由集。所以它的可扩展性不如分区 VPN RR设计，后者对于大规模 VPN拓扑可能是必要的。对VPN服务来说，因特网RR拓扑的另一个缺点是它引入了许多BGP跳，从而增大了路由更新的会聚延时。这对于第 3层MPLS VPN SLA可能是不利的，所以VPNv4 RR的拓扑稍有不同，如图 3.11所示。

图3.11 VPNv4路由反射器的部署

只在 1级POP中部署VPNv4 RR，并通过OC-3链路直接连接到两个核心骨干 P 路由器。这种拓扑没有遵循网络的物理路由。这是不必要的，因为在骨干中已经部署了LDP。2级和3级POP中没有部署任何RR，而是直接与其本地 1级POP建立对等关系。所有VPNv4 RR对等体实现全互联。

最初的部署在 6个地方放置了VPNv4 RR：San Francisco、Los Angelse、Denver、Chicago、New York和Washington。每台PE路由器都与其本地区域内一对RR建立对等会话。例如，位于Boston的 PE路由器可能与New York的RR以及Chicago的RR建立对等关系。在RR的工程部署指导方针中，指定最大对等会话数量为 200。尽管当前部署的硬件可以支持更多数量的会话，但USCom在实验室验证过，最多只有200个对等会话。因为当前网络已有255台VPN PE路由器，且每台PE路由器与本地的RR建立对等关系，所以在该拓扑中，没有任何RR接近于这个最大对等会话数量。

USCom利用“更新组”（update group）功能（该功能在其路由器运行的Cisco IOS中默认被启用）可以动态地将有相同外发策略的MP-BGP对等伙伴组织成组。更新组不考虑PE路由器用于导入/导出策略的扩展共用体；因而所有PE路由器属于同一个组。这样，可以创建一个 MP-BGP 更新（而不需要为每台 PE路由器创建一个），然后将它复制给更新组的全部成员。这种功能为RR提供了更好的性能。与PE路由器一样，每个RR也使用[PMTU]。

控制平面的设计必须让所有第 3 层 MPLS VPN PE 路由器能够从中央VPNv4 RR那里获悉路由。理想情况下，每台PE路由器应该尽可能根据地理位置与另一个1级POP建立对等关系。这是非常有用的，当给定1级POP发生灾难性故障（如停电）事件时，2/3级POP不会丢失全部路由信息。

图 3.12说明了VPNv4 RR的拓扑。它表明，Boston的 2级POP与Chicago和New York的 1级POP建立对等关系，从而提供冗余性。所有位于 1级POP （如New York POP）内的PE路由器都与其本地RR建立对等关系，如果本地停电，它们也不能维持与另一个1级POP的对等会话，因为所有连接性都将丢失。因而，采用与2/3级POP相同的设计规则没有意义。

2．防止VPNv4路由反射器上的输入丢弃

每个RR都有一个接口级队列，在Cisco IOS中称为“输入存储队列”（input hold queue），默认情况下，它可能没有大到能够防止输入在该接口上丢弃。丢弃TCP包将降低协议的效率，并导致重传。这种行为可能减慢VPNv4 RR上的MP-BGP会聚时间。由于这些原因，USCom使用如下算法来调整该队列值：

输入存储队列 = （TCP窗口大小 / mss）×MP-BGP对等体数量

图3.12 VPNvr路由反射的物理拓扑

其中TCP窗口大小为MP-BGP会话的TCP窗口大小，mss是TCP最大分段长度，MP-BGP对等体数量是路由反射器的客户数量。

在 Cisco IOS 中，可以使用命令 show ip bgp neighbor 来获悉窗口大小（sndwnd）和mss的值。

3．PE路由器和路由反射器VPNv4 MP-BGP对等关系模板

USCom 使用程序清单 3.4 所示的模板来配置 PE 路由器和 RR 的 VPNv4 MP-BGP。

程序清单3.4 PE路由器和路由反射器VPNv4 BGP配置模板

（待续）

3.4.4 PE-CE路由协议设计

如第1章所述，在CE路由器和PE路由器之间的连接可使用各种路由协议（和静态路由）。在评估第3层MPLS VPN服务设计的需求时，还需要对要提供的路由协议进行评价。最初的服务部署只在 PE-CE 链路上支持静态路由和BGP-4协议。然而，很快就添加了RIPv2，以便为不能运行BGP-4协议的客户（如使用到网络接入服务器（Network Access Server，NAS）的 ISDN作为PE-CE链路的备用连接的客户）提供服务。

由于其定期更新行为以及对PE路由器的CPU资源消耗，USCom尽可能避免使用 RIPv2 协议。对于那些需求 RIPv2 的客户， USCom 配置flash-update-threshold 30，以防在正常的定期更新前发送 Flash更新。一旦客户的拓扑发生变化，Flash更新将发送新路由信息，这在客户出现路由不稳定的情况下将显著增加 CPU 资源消耗。另外，对于采用双连接的站点，USCom 使用BGP-4，以避免为防止环路而配置RIP标记。

1．静态路由设计考虑

通过单条链路连接到USCom网络的VPN站点可使用静态路由。然而，这取决于路由数量（路由数量必须较少，通常不超过 5 条）以及这些路由是否经常发生变化。如果前往特定VPN站点的路由集容易实现路由汇总，使用静态路由将非常适合。在多数情况下，通过单宿主站点只能访问少数几条路由，如local/24 LAN网段，所以静态路由就足够了。

显然，静态路由不能提供任何动态重路由能力。尽管静态路由提供了良好的稳定性，且只需很少的路由器资源，USCom还是鼓励其大型企业客户采用动态路由协议。在这种情况下，管理静态路由的开销也是非常可观的，尤其是中央站点，在这里通常无法进行路由汇总。

在许多情况下，客户即使只有一条到第 3层MPLS VPN服务的连接，如果客户在站点内还使用其他因特网服务（不管是由USCom还是其他因特网服务提供商提供的），通常都需要使用一条静态路由指向因特网出口。这意味着CE路由器需要有从VPN指向PE路由器的全部静态路由。通过采用适当的编址方案，可以实现一定程度的路由汇总以简化配置，但容易出错，通常应该避免。

出于稳定性考虑，USCom更愿意使用关键字permanent来配置静态路由。这可以防止PE-CE链路状态反复变化或失效时，导致静态路由从MP-BGP中撤消。这种设计的缺点是，数据流将继续进入该链路，即使PE路由器不能通过该链路将转发来自其他站点的数据流。然而，因为客户站点是单宿主连接的，所以USCom选择以次优（不必要的）包转发为代价，增加骨干的稳定性。

统计表明，当前大约 40%的USCom PE-CE连接使用静态路由。

2．PE-CE BGP路由设计考虑

50%的VPN PE-CE连接使用外部BGP（external BGP，eBGP）。USCom选择使用这种协议的原因是，它过去使用这种协议（有在因特网服务中使用的经验），且易于基于每VPN添加策略。有些最终用户已经熟悉BGP协议，且在迁移到VPN服务前他们的网络中已在运行这种协议，虽然这只限于大型企业。另外，这些最终用户有许多已经订购了因特网服务，因而非常熟悉这种协议的使用。所以BGP是一种必然的选择。

为保护PE路由器，每个客户BGP-4对等会话配置成只接受某个最大数量的前缀。这可通过对每个PE-CE BGP对等会话使用 neighbor maximum-prefix命令来实现。USCom还对其所有通过外部BGP协议连接VPN服务的客户使用“路由阻尼”（route dampening）（有相同的参数集）。它被应用于所有客户，因为路由反复变化（路由信息持续改变）可能导致USCom网络的控制平面不稳定。应用阻尼的策略如下：对于任何发生变化的路由，每次路由变化的惩罚为 1 000；重用限制（reuse limit）配置为 750，这样被抑制的路由在到达 750限制时将被重新通告；15分钟过后，累积惩罚值将减少50%；如果累积惩罚到达“抑制限制”（suppress limit）3 000，MP-BGP将抑制该路由的通告，而不管它是否为活动状态。

用于配置这些参数的模板如程序清单3.5所示。

程序清单3.5 限制PE-CE BGP链路上前缀数量的模板

注意 USCom对所有 eBGP PE-CE对等会话使用相同的阻尼参数。它还使用路由映射以便提供服务。路由映射包含的参数将被使用外部 BGP 的所有客户接入继承。

最大前缀设置由服务供应时间决定。对于不同的客户，它有不同的值。

注意 USCom当前没有调整任何BGP定时器以减少会聚时间。

3．PE-CE IGP路由设计考虑

在最近几个月，USCom发现请求在PE-CE链路上增加OSPF或EIGRP支持的客户数量不断增加。这些客户通常有复杂的大型IGP拓扑。

在PE-CE链路上运行IGP协议有许多优点。

• 服务提供商MPLS VPN网络可用于WAN连接，同时限定在客户的 IGP域内。这提供了将已有网络迁移到新基础设施的“drop and insert”方法。

• 从客户的角度看，可获得相对无缝的路由域。这可避免为运行额外的路由协议（如BGP-4）而重新培训员工，从而减少了相关的额外开销。

• 可部署IGP快速会聚增强，尤其是多宿主站点，当PE路由器或PE-CE链路失效时它将非常有用。

• 可防止IGP拓扑内的外部路由。

• 可跨站点维护IGP路由度量值，且从路由的角度看，USCom网络对于最终用户仍然为透明的。

• 存在客户后门链路（客户站点之间的直接连接，如专线）时，可使用环路避免技术和路径选择技术，如 sham links（OSPF）和始发站点（EIGRP）。

提供商可将一种路由协议作为唯一的选择，以避免由于提供、维护和排错不同路由协议而导致的额外开销。然而，这种方式可能损害VPN客户的设计需求，最终减少客户群而损害提供商的利益。如果在PE-CE链路上提供多种路由协议供客户选择，需要仔细考虑会聚特性（这对于VPN客户非常重要）和服务可扩展性（对于VPN客户和服务提供商都非常重要）。

USCom选择提供RIPv2、EIGRP和OSPF协议，这些都是以限制方式提供的（对于每种协议，限制连接到给定PE路由器的站点数）。当前，每种协议的限制都为25，但这个数字也不是硬性规定，它取决于客户的连接需求细节（如路由数量等），并可对它进行监测以获得更多部署经验。IGP基于每个客户进行配置。配置的复杂性受客户拓扑的复杂性影响。

4．OSPF服务部署细节

当前，USCom有两个大型客户在其PE-CE链路上运行OSPF协议。在服务提供商设计中，PE路由器包括了许多功能以支持这些客户。

对于每个VPN，将使用不同的OSPF进程ID。默认情况下，在所有连接了该VPN站点的PE路由器上，对该VPN使用相同的进程ID。这一点非常重要，否则，在接收OSPF站点，将把跨越MPLS VPN网络传输的OSPF路由视为外部路由（Type 5 LSA）。通常这是不合适的，因为外部路由在默认情况下将泛洪到整个OSPF域。通过使用相同的进程ID，将使PE路由器生成区域间路由（Type 3 LSA），它不会泛洪到整个OSPF域。

USCom对所有OSPF部署使用如下命令。它避免PE路由器收到来自任何与之相连的CE路由器的大量泛洪LSA（Link-State Advertisements，链路状态通告）信息。

在PE路由器上，限制LSA数量非常重要，因为它保护OSPF路由进程不受来自给定VPN客户端的大量LSA 消息的影响。这可能是由于恶意攻击或配置不正确（如将全局BGP-4表重分发到客户OSPF进程中）引起的。

通过使用这种功能，PE路由器可以为在该PE-CE链路上运行OSPF协议的每个VPN客户端，记录任何类型的非自生成的LSA消息数量。收到的LSA数量超过最大值后，PE路由器将不再接受来自该OSPF进程的任何LSA消息。如果1分钟后LSA消息仍超过该水平，PE路由器将关闭该OSPF进程中的所有邻接关系，并清除OSPF数据库。

USCom将阈值、忽略时间、忽略计数和重置时间分别设置为其默认值：75%、5分钟、5和忽略时间的2倍。当前，只有两个OSPF客户端，最大LSA计数设置为 10 000。USCom将继续监测它，在出现新OSPF部署时优化默认值。

OSPF网络内的每台路由器都有一个在该OSPF域内唯一的标识符。使用标识符旨在让每台路由器能够识别自生成的 LSA，同时其他路由器在执行路由计算时知道特定LSA消息由哪台路由器发出的。LSA通用报头包含一个名为“通告路由器”的字段，它被设置为通告LSA消息的路由器ID。

在Cisco IOS中，用于VRF OSPF进程的路由器 ID是VRF内最高的环回接口地址，如果没有环回接口，将选择最高的接口地址。如果为路由器ID选择接口地址失败，可能导致问题，因为需要强制修改路由器ID，且路由器上的OSPF进程必须重启并导致重建OSPF数据库和路由表。显然这可能导致OSPF域不稳定。所以USCom为每个有OSPF PE-CE连接的VRF分配一个环回地址。这个地址将用作路由器ID，且用于可能需要的任何sham链路。

5．EIGRP服务部署细节

USCom发现许多大型企业客户要求通过EIGRP协议与其PE路由器连接。这种协议在企业网络中得到了广泛部署。因而，USCom认为需要提供对这种协议的支持。USCom在PE路由器上部署了许多功能以支持这种协议。

对于所有EIGRP客户，需要禁用自动路由汇总。这种功能的默认行为是启用。但因为MPLS VPN骨干被认为是透明的，所以USCom使用no auto-summary命令禁用该功能。

为在客户EIGRP域内支持外部路由，USCom使用默认度量值1 000 100 255 100 1 500，但可针对每个客户进行修改。

USCom支持EIGRP开销共用体SoO。将EIGRP路由重分发到MP-BGP中时，该共用体属性将自动应用于插入点（point of insertion，POI）（始发PE路由器）。通过支持这种功能，USCom可以通过影响接收PE路由器的BGP最佳路径计算，在客户EIGRP拓扑中支持后门链路。这是通过在MP-BGP更新中传输原始EIGRP路由类型和度量值，并允许BGP在其他比较步骤前考虑POI而实现的。

USCom还支持SoO属性。默认情况下，将对每个属于给定EIGRP客户的站点配置该属性。该功能让连接到后门链路的路由器拒绝包含本地SoO值的路由。程序清单3.6显示了这种默认配置。

程序清单3.6 EIGRP SoO属性配置模板

USCom使用maxium-prefix特性避免PE路由器接受过多的路由信息，该命令的语法如下：

当前，对threshold、restart、restart-count和reset-time使用默认值。这些值分别为75%，5分钟、3和15分钟。

注意 需要指出的是，在PE路由器和CE路由器之间运行IGP协议要求USCom进行许多额外的配置。

3.4.5 PE-CE链路的 IP地址分配

USCom在设计中决定从其注册地址块中给PE-CE链路分配IP地址。这将在确定过滤模板方面提供更好的灵活性，这种模板可应用于所有PE路由器，以便在边缘丢弃不想要的数据流。它还可避免与客户IP地址空间冲突，因为许多客户从[PRIVATE]私有地址空间中选择IP地址。

用于这个目的地址块来自地址块23.50.0.0/16。因为客户接入路由器是非管理路由器，所以为每个PE-CE链路分配网络掩码255.255.255.252，它支持两台主机。例如，23.50.0.4/30提供IP地址23.50.0.5和23.50.0.6，使用它们可以为给定VPN客户的PE-CE链路编址。这些地址被重分发到MP-BGP，使其在VPN内部可用于排错。

注意 USCom还决定允许在PE-CE链路上使用客户地址空间。但这是一种特例，且IP地址必须来自注册的地址块。

3.4.6 用过滤控制路由分发

USCom网络中的每台PE路由器的资源都是有限的，它们在边缘上提供的所有服务之间分配。因为多个VPN客户将通过同一台PE路由器接入网络，所以 USCom 想限制在其路由表中包含的每个客户的路由数量。这可通过对所有VRF应用命令maxium routes来实现，如程序清单 3.7所示。

程序清单3.7 最大路由数配置模板

USCom考虑在这个命令中应设置什么样的值。它注意到，如果限制值设置得太低，有效路由将被拒绝，导致拒绝某些客户位置的服务。另外，USCom注意到，maximum routes值必须能够满足注入到VRF中的各种路由类型的需要，包括静态路由、直连路由和通过动态协议获悉的路由。USCom决定将每个VRF的maximum routes限制值设置为大于稳定状态下实际路由数量的 50%，且在超过稳定状态下实际路由数量20%时发出警告。

注意 在PE-CE链路上运行链路状态IGP（如OSPF）时，限制输入到VRF中的路由不会导致链路状态数据库的停止填充，所以需要额外的保护机制。这些内容在本章前面的3.4.4节中介绍过。

USCom决定在其最初部署第 3层MPLS VPN服务时，不对客户路由重分发使用任何过滤。因此，所有RR将有相同的路由集，每台PE路由器依赖于自动路由过滤（Automatic Route Filtering，ARF）功能，以忽略这样的路由更新，即包含在本地没有导入到VRF中的路由。

3.4.7 第3层MPLS VPN服务的安全设计

在设计任何健壮网络时，网络基础设施的安全性都是需要考虑的最重要因素。文档[ISP-security]概述了 ISP 网络最佳安全实践。其中大多数内容也与USCom第 3层MPLS VPN服务有关，因为它提供了基本的路由器安全建议，而USCom已经在其因特网服务中采用了这些建议。

尽管第3层MPLS VPN服务将客户路由与骨干路由相分离，但现有工具（如traceroute）提供了一种在客户VPN中发现USCom网络核心拓扑的方法。所以USCom使用mpls ip propagate-ttl forwarded命令在网络中禁止这种行为。文档[VPN-Arch-Volume-1]的第13章详细介绍了这个命令。它实质上有两种效果：在标签头中传播 IP TTL以及将标签TTL加入到 IP头中（包离开MPLS骨干时）。通过禁用TTL传播（使用命令 no mpls ip propagate-ttl forwarded），USCom禁止任何客户在第3层VPN内部发起的traceroute的输出现实其内部基础设施。但是该命令不能保护任何因特网PE路由器，因为在因特网服务中，包的传输是通过IP转发而不是标签交换实现的。因而USCom采用了一种策略，不向因特网通告其内部基础设施使用的IP地址块。它还在因特网PE路由器的向外接口上对发往这些地址的包进行过滤。

尽管通过使用 no mpls ip propagate-ttl forwarded命令对 traceroute隐藏了核心地址，但对用于PE-CE电路编址的子网却不能实现这种隐藏。如果VPN客户知道一台或多台PE路由器的IP地址，就可以执行DoS攻击。这可以很容易通过使用traceroute命令来确定。PE路由器电路信息的可见性让VPN客户能够对PE路由器进行入侵或执行DoS攻击。

如果CE路由器是受管理的路由器（在USCom最初的部署中，情况并非如此），则可通过过滤器隐藏 PE 路由器的电路地址，防止它重分发到客户网络中。另外，还可在PE路由器上应用各种入站过滤器，以限制CE路由器接入。USCom 对其非管理性服务采用了这种方式。程序清单 3.8 是它选择部署的过滤器模板。

程序清单3.8 PE-CE链路过滤器模板

访问列表的第1行（程序清单3.8的第2行）允许ICMP包（如ping）从VPN 客户直接发送到连接的 PE 路由器接口。允许这种包对于客户是有用的，因为这样他们将可以执行诊断和管理操作。第2行通过允许CE路由器和PE路由器接口地址之间的通信，允许BGP路由协议交换路由信息。如果VPN客户使用的是其他路由协议，则需要在这个过滤器中显式地允许该协议。

访问列表的第3行阻断任何目标地址为USCom骨干网络的IP包。最后一行允许所有其他IP数据流通过PE路由器。

3.5 服务质量设计

服务质量（QoS）由服务提供商提供，而实际体验到QoS的是客户。它是客户满意度的一个关键组成元素。这非常重要，因为大多数客户已经或即将把其任务关键应用以及语音和视频应用迁移到IP服务。这意味着QoS是服务提供商竞争力以及在因特网和第 3层MPLS VPN服务市场上取得成功的一个关键因素。

在世界上有些地方（如美国），因特网服务的性能水平近年来已大大提高。本节将介绍USCom在这种环境下提供的因特网SLA，还将介绍USCom提供的第 3层MPLS VPN SLA。USCom的目标是，让客户能够成功地传输所有任务关键应用以及融合数据、语音和视频数据流。最后，本节介绍USCom为满足这些SLA在核心和边缘上部署的设计方案。

3.5.1 因特网服务SLA

USCom为其因特网服务提供了SLA，该SLA由可用性承诺和性能承诺组成，表3.6对此作了总结。

表3.6 USCom因特网SLA承诺

可用性承诺被提供给了每个因特网站点。服务可用性为 99.4%（对于通过专线连接且没有拨号/ISDN备用的单宿主站点），MTTR为4小时。通过可选的增强接入方式，如拨号/ISDN 备用或双宿主连接，可提供更高的可用性承诺。服务可用性定义为，在给定一个月内，因特网站点可以与USCom骨干相互发送和接收 IP 包的总分钟数除以该月的总分钟数所得的商。USCom 根据其故障计量系统针对每个站点和客户报告的故障计量信息来计算服务可用性和MTTR。

因为USCom不管理因特网CE路由器，所以其因特网SLA的性能承诺不是端到端的，也不是站点到站点的，而只适用于POP到POP。其性能承诺的内容是RTT为70毫秒，PDR为99.5%，这些值适用于任何两个POP之间。

USCom使用主动测量和平均来计算POP-to-POP RTT和PDR。位于每个POP中的专用设备，每5分钟生成两个样本数据流，并将其发送给其他各个POP。第一个样本数据流为10个 ICMP ping包，样本数据流源将使用它们来测量RTT；第二个样本数据流是10个UDP包，样本数据流的目的地将使用它们来测量PDR （收到的样本包除以发送样本包的总数得到的比率）。每小时内测量到的最差RTT值被保留为“小时最差值”，然后在一天中对这些“小时最差值”进行平均，再在一个月对日均值进行平均。最后得到的值为月均RTT值，将它与表3.6指定的SLA承诺 70 ms进行比较。

3.5.2 第3层MPLS VPN服务SLA

有几种因素影响第 3层MPLS VPN服务的SLA定义。首先是为让VPN客户能够使用相同的基础设施传输数据、语音和视频所需要提供的QoS等级；其次是USCom在核心（从POP到POP）对QoS问题采取“throw bandwidth”要相对容易和廉价。下一节将介绍，为给所有应用类型的所有数据流提供适当的QoS，包括要求最高的应用（如语音），对 USCom 最有吸引力的方法是，对所有数据流无差别地提供最高水平的 QoS。这意味着 SLA 只需指定一套POP-to-POP性能承诺，它适用于所有数据流。

USCom在核心以相同方式处理所有数据流，不为特定类型的数据流分配更多资源。这样，它没有必要根据不同数据流类型向客户收费，或限制给定客户站点上某些数据流类型进入网络的速率。这使服务对USCom和客户来说都非常简单的服务，客户可尽可能多地传输数据流（不管是什么类型），而USCom不需要知道也不关心它。这意味着第 3层MPLS VPN站点的服务收费也是一种扁平模型，它仅取决于站点的端口接入速度。

下一个需要考虑的问题是，与核心不同，在接入链路（CE-PE链路和PE-CE链路）上，对QoS问题采取“throwing bandwidth”方式不容易实现，也不便宜。这主要是因为这些链路为某个客户专用，需要通过接入技术来提供，其容量仍然非常紧张或相对昂贵。这意味着在某些CE-PE和PE-CE链路上将发生拥塞。因而，在这些链路上需要实现一些优先机制（如区别服务），以便为最重要的应用提供高等级的QoS。

最后一个主要的SLA考虑是，USCom不管理那些接入第 3层MPLS VPN服务的CE路由器。这意味着在CE-to-PE链路上，设置数据流的优先级以及不同应用享受到的 QoS，完全在客户的控制之下（因为这种机制必须在发送数据流到该链路的设备上实现），完全不受 USCom 控制。所以 USCom 不能对CE-to-PE段提供任何SLA性能承诺。这并不是说不能在该网段上实现QoS。相反，它认为这种QoS位于客户的运行域中，因而属于客户的责任。

类似地，USCom不以任何方式限制CE路由器可以发送每种数据流的比例，也不限制数据流的目标远程 VPN 站点。因而，USCom没有办法知道或控制有多少流量会聚到某个远程PE路由器，进而通过相应的PE-to-CE链路传输到给定CE路由器。另外，相应PE-to-CE链路的规模也由客户控制。因而，虽然USCom管理PE-to-CE链路上的上游设备，但并不能提供任何有关PE-to-CE链路的SLA性能承诺。

为说明这一点，假定给定客户有一个VPN，其中包括五个站点（S1、S2、S3、S4和S5），它们分别通过T1链路连接到各自的PE路由器。假设S1、S2、S3和S4都传输 500 kbit/s的语音数据流到S5，与S5相连的出口PE路由器将收到目的地为S5的 2 Mbit/s语音数据流。显然，不管该PE路由器在连接到S5的链路上使用哪种调度/优先机制，将 2 Mbit/s的语音数据流拥挤到一条T1链路上，对于某些语音呼叫（如果不是全部）将导致非常糟糕的QoS。

然而，PE-to-CE链路的上游端（PE路由器自身，在其上实现了优先和区分服务，以便为不同应用提供适当的QoS）不属于客户运营域，所以，与CE-to-PE链路不同，客户并不能独立于USCom实现必要的机制，确保为PE-to-CE链路上的全部应用提供适当的QoS。

为确保链路拥塞时客户仍能在PE-to-CE链路上获得QoS，USCom决定提供一种服务选项（“PE-to-CE”选项）：USCom在PE-to-CE链路上激活一组固定的区分服务每跳行为（PHB），客户可根据需要使用这些PHB。使用这种服务时，通过适当调整PE-to-CE链路规模，控制给定CE路由器发送和接收给定类型数据流（如语音）的总量，并触发 USCom 为该类型数据流提供的 PHB，客户可确保为重要应用提供所需的QoS。为对给定包触发适当的PHB，客户只需根据USCom 为每种支持的 PHB 指定的区分服务代码点（Differentiated Services Codepoint，DSCP）值，在IP头中标记该包的DS。标记必须在入口VPN站点（入口CE路由器）上执行，使出口PE路由器传输该包到PE-to-CE链路期间应用 PHB 时（在发生转发和 MPLS 头出栈后），DS 字段已经标记。详情可参阅3.5.4节。

这个“PE-to-CE QoS”服务选项定位于为最终用户提供增值服务，以及反映PE路由器上的额外处理负载。这个选项非常简单，没有任何可定制的参数。

对于每个需要端到端QoS的应用，相应的需求必须在数据流路径的每段上得到满足，即包入口VPN站点、从入口CE路由器到入口PE路由器、从USCom POP到POP、从出口PE路由器到出口CE路由器以及出口VPN站点。下面总结了USCom如何在端到端路径的每段上提供SLA性能承诺。

• POP-to-POP。USCom在骨干上（从POP到POP）对所有数据流（不管其应用类型或实际需求）提供统一的 SLA 性能承诺，这与最严格的应用需求（包括语音）一致。

• CE-to-PE链路。USCom在该段不提供SLA性能承诺。在该段需要由客户来保证不同应用获得所需的 QoS。为实现 QoS，客户可以确保为CE-to-PE链路的总负载提供足够的过度工程，或在入口CE路由器上部署区别服务机制，包括将数据流分成不同的区分服务类别和应用相应的PHB。

• PE-to-CE链路：USCom在该段也不提供SLA性能承诺。然而，作为一种服务选项，USCom可承担提供区分服务PHB的责任。客户使用这些PHB，并在入口CE路由器上控制流量和规划PE-to-CE链路的容量，以确保不同应用在该网段上获得所需QoS。

• 第3层VPN站点：因为它完全位于USCom运营域外，所以USCom选择由客户负责在VPN内提供适当的QoS。客户可通过在VPN站点网络内实施过度工程（即采用交换型吉比特以太网技术）和/或在VPN站点内部署区分服务，以实现VPN站点内部的QoS。

这些SLA点如图3.13所示。

图3.13 USCom VPN SLA性能承诺和客户责任

与因特网SLA一样，所有性能承诺都适用于POP-to-POP。因特网SLA提供的RTT和PDR承诺对于任何多媒体应用都适用，所以它们也用于第3层MPLS VPN SLA。然而，因为性能承诺必须满足所有应用的QoS需求，包括实时VoIP，所以在VPN SLA的RTT和PDR承诺中还增加了抖动承诺。

注意 因为在核心网络中不区分因特网浏览和VPN数据流，所以因特网数据流与VPN数据流享受相同的性能水平。因此，USCom选择在VPN SLA中只包括抖动承诺。这样做的第一个原因是，USCom对于传输实时数据流的客户提供的服务选择是第 3层MPLS VPN服务。第二个原因是，如果将来USCom要在核心部署区分服务，并优先传输实时数据流，而不再为所有数据流提供非常低的POP-to-POP抖动，这样做将更经济一些。

与RTT和PDR相同，USCom使用主动测量和平均来计算抖动。它也像测量包递送率那样，使用10个UDP包作为样本数据流来测量抖动。注意，样本源和样本目的地不需要同步其内部时钟，因为只需使用包到达目的地的本地时间并根据发包间隔来分析延迟差异，就可以计算出抖动值。每小时测量到的最差值保留为“小时最差值”，然后每天对这些“小时最差值”平均，每个月再对日平均值进行平均，最后得到抖动值。

表 3.7列出了第 3层MPLS VPN SLA承诺。

表3.7 USCom第3层MPLS VPN SLA承诺

如果在一个月测量期间不能满足表3.6列出的承诺，USCom以服务信用形式向VPN客户返回费用。SLA指定如何根据观察到的每个SLA参数差异，计算返回的服务信用。

3.5.3 核心网络的QoS设计

本节介绍USCom在核心网络中部署的QoS设计，它用于支持前几节介绍的因特网SLA和第 3层MPLS VPN SLA性能承诺。正如“USCom网络环境”一节介绍的，由于其DWDM光纤基础设施，且在其POP内部使用吉比特以太网交换，所以USCom可以实施过度工程策略。所以它能够确保核心中任何地方的总利用率较低，同时不需要太多额外资金投入。USCom通过如下方式来利用这一点。

• 只依赖于总容量规划和过度工程来控制核心的QoS，而不部署任何区分服务机制或MPLS流量工程。这样可使核心的工程、配置和监视更简单。

• 进一步推进这种过度工程策略方法，使多数情况下总利用率保持尽可能低，即使发生单链路、节点或SRLG失效时。这可确保失效期间的QoS。关于保护SRLG失效的内容将在后面的“网络恢复设计”一节介绍。

• 为容量规划确定USCom最大利用率时加上安全系数，以弥补容量规划的不足。关于这些，可参阅2.1.6节。

所以，USCom采用 2.1.6节介绍的 1/1/0模型（使用PE-to- CE QoS选项时为3/1/0模型）。

在USCom网络中，任意两个 POP之间的最大距离为 4 000 km。假定为应对更长实际的物理路径和通过中间POP传送时的额外距离，需要25%的额外距离，则单向最大距离为 5 000 km，往返最大距离为 10 000 km。假定通过光纤传输时每 1 000 km的光传播延时为 5毫秒，则USCom网络中最大往返传播延时为50毫秒。

注意 USCom的光网络非常密集，使其 IP拓扑与底层光纤拓扑基本一致。这也是为什么在计算最大单向距离时要考虑25%额外距离的原因。

SLA RTT承诺为 70毫秒，因此为往返排队延时留下了 20毫秒的空间。假定在一个方向上最多12跳，如果每跳的延时限制在0.8毫秒内，则完全可以满足这一往返排队延时。实际上，往返排队延时要远低于20毫秒，因为延时承诺在本质上是统计性的，因而不会线性累加。然而，USCom简单地使用线性规则，因为无法得到精确的累加公式，且其计算函数相当复杂。

类似地，如果在每跳上抖动限制在0.8毫秒内（如果排队延时小于0.8毫秒，抖动通常也在0.8毫秒内），则完全可以实现20毫秒的SLA抖动承诺。

USCom通过数学分析和模拟单跳排队，并使用经验安全系数，发现如果核心中任何速度的链路的总利用率都不超过 70%，将完全能够满足每跳排队延时需求。也就是说，USCom 根据其特定环境和不同的核心链路速度绘制出 QoS与利用率曲线（参阅2.1.3节）。

这种分析还指示出，在这种情况下，由于队列占用率过高引起的包丢失率远低于满足 SLA 包递送率所需的水平（实际上完全可以忽略不计）。然而，包递送率还受到其他许多因素的影响，如由于失效和路由重会聚导致包丢失。

基于这一点，USCom的容量规划策略指定发生如下情况时将提供额外的核心容量：

• 网络中不存在任何失效时测量到的链路利用率超过40%。

• 单个链路、节点或SRLG失效时，链路利用率超过70%。

显然，这种策略可以确保POP-to-POP性能承诺能得到满足，因为在不存在失效的情况下，链路利用率远低于最大总利用率，发生单点失效的情况下最多等于最大总利用率。

为实施这种策略，USCom以10分钟为间隔在每条链路上监测链路利用率。当利用率超过 40%时触发警告。如果在没有发生失效的情况下达到这个水平，且不是由于任何意外事件引起，则提供额外的容量。

另外，USCom使用具有“what-if”分析能力的网络工程和模拟工具。它定期地将测量到的所有链路的最大利用率输入到这个工具中。然后，该工具确定所有发生链路、节点或SRLG失效的链路上的最大利用率。如果它超过70%，且不能通过调整IS-IS度量值（不将超出的流量重定向到其他链路上）来降低，将提供额外的容量。

注意 USCom 已经在当前网络中找出其单点失效可能导致其他链路的负载超过70%的少数节点和SRLG。当它们发生失效时，可能降低整体性能。因为这种失效情况很少发生，且只在失效期间影响性能，所以一般它们不会影响USCom的SLA 承诺（它以一个月为基准）。因而，USCom 认为这些极少数容量规划规则例外情况是可接受的。

显然，只要USCom可以实施其过度工程策略（根据容量规划原则，在不发生失效时所有链路的利用率都低于 40%，发生失效时所有链路的利用率都低于70%），SLA 性能承诺就可以得到满足，而不需要在核心网络中部署任何额外QoS工具，如MPLS区分服务或MPLS流量工程。

因为 DWDM 光纤核心当前远没有达到其容量限制（即给定光纤上的所有lambdas 都已经使用），所以链路供应的交付周期仅为几周。因为 USCom 骨干中的流量增长相对稳定，没有大的波动（如图3.14所示），所以USCom认为它能够实施其过度工程策略，至少在未来一两年内有这种能力。所以USCom没有部署MPLS区分服务或MPLS流量工程。然而，如果从长期看，实施过度工程策略非常困难，USCom将考虑采用这些技术。

图3.14 USCom利用率与流量增长

总之，尽管 USCom为因特网和第 3层MPLS VPN数据流提供了严格的POP-to-POP SLA承诺，但是其核心设计非常简单。它完全依赖于容量规划以及对总流量应用过度工程策略。其核心网络没有使用任何额外的QoS机制。

3.5.4 网络边缘QoS设计

本节介绍 USCom在 PE 路由器的面向客户接口上部署的 QoS 设计。因为USCom没有在核心网络中实现任何区分服务，且不区分从CE路由器收到的数据流类型，所以对于因特网客户和第 3层MPLS VPN客户，它都没有在PE路由器的入口上配置QoS机制。

在PE路由器的出口上，默认情况下也没有激活QoS机制。然而，如果第3层MPLS VPN客户请求PE-to-CE选项，将在PE路由器的出口上应用固定QoS服务策略：激活三种区分服务PHB。

因为USCom在PE路由器的入口和核心没有执行任何QoS机制，所以IP包的优先级字段（甚至整个区分服务字段）都将透明通过USCom网络传输。在出口PE路由器将它传输到PE-to-CE链路时（即整个MPLS头弹出后），该字段值与客户入口路由器发送该IP包时相同。因而，USCom可使用IP头中的优先级字段作为在 PE-to-CE 链路上应用 PHB 的分类准则。为控制哪个包获得什么样的PHB，客户只需根据USCom定义的优先级到PHB映射（如表3.8所示），在入口CE路由器上标记优先级字段。

注意 在第 3层MPLS VPN服务提供商网络上透明传输区分服务字段而不修改客户设置值通常称为QoS透明性功能。

表3.8 用于PE-to-CE QoS选项的优先级到PHB映射

* 参阅2.1.4节。

例如，客户可将其CE路由器配置为：

• 发送VoIP包到CE-to-PE链路上时，将优先级字段的值设置为5；

• 发送企业资源规划（Enterprise Resource Planning，ERP）包到CE-to-PE链路上时，将优先级字段的值设置为4；

• 发送其他包到CE-to-PE链路上时，将优先级字段的值设置为0。

这种配置的结果是，当USCom传输包到PE-to-CE链路上时，它对语音包应用EF PHB，对ERP包应用AF41 PHB，对其他数据流应用BE PHB。这实质上让客户能够确保在链路发生拥塞的情况下，按所需的优先级在PE-to-CE链路上传输应用的数据流。

注意，客户还可能配置自己的CE路由器，在CE-to-PE链路上应用某些定制PHB，以管理CE-to-PE链路可能发生的拥塞。这些PHB不需要与USCom应用于PE-to-CE选项的PHB相同，但它们必须保持一致，且DS字段到PHB映射必须与USCom指定的映射一致。例如，客户可以决定使用如表3.9所示的优先级到PHB映射，激活四种PHB，以实现更细致的区分服务。

表3.9 用于客户定制CE PHB的优先级-to-PHB映射

图 3.15和图 3.16分别说明客户没有使用PE-to-CE QoS选项和客户使用了该选项时的端到端QoS运行状态。

图3.15 未使用PE-to-CE QoS选项时的端到端QoS运行情况

图3.16 使用PE-to-CE QoS选项时的端到端QoS运行情况

注意 因为优先级值6和7保留以用于网络控制（包括IP路由）和网络管理（包括某些网络管理数据流），所以有些服务提供商在其网络内部使用这些优先级值对数据流应用优先级处理，以保证它们核心的稳定。例如，第 4 章的“服务质量设计”一节将介绍，Telecom Kingland使用一个完全独立于客户数据流所用队列的专用队列来调度其内部控制、管理和路由数据流。为保证客户数据流不会与网络控制或网络管理数据流相互干扰，这些服务提供商要么丢弃优先级字段设置为6或7的客户数据流，要么将该字段重新标记为其他值。然而，因为USCom在其核心没有采用任何数据流区分服务，所以它决定原样接受优先级字段设置为 6或 7的客户数据流，并在其PE-to-CE QoS选项（如表 3.8所示）中将这些数据流按高优先级数据流调度。如果USCom将来需要在核心部署网络控制或网络管理数据流的优先级处理，必须确保客户数据流不会与这种优先级处理相互干扰。例如，USCom将需要重新标记优先级字段，或为这些客户数据流增加一个不同于网络管理或控制数据流使用的EXP值。

USCom选择基于优先级字段而不是整个DS字段执行PE-to-CE QoS分类，因为它为客户提供了可选择对优先级字段或整个DS字段进行标记的灵活性。例如，如果客户选择将VoIP包的DS字段设置为EF DSCP（101110），则这些包将能够被出口PE路由器正确分类，因为该包DS字段的前3位组成优先级字段，被设置成101，对应优先级5。

因为USCom想为PE-to-CE QoS选项支持一套简单的PHB（不带任何可定制参数），所以它选择了一套通用PHB（如表3.10所示），每个通用PHB实例用于满足典型的客户需求。

表3.10 PE-to-CE QoS选项的PHB实例

程序清单 3.9显示了USCom如何使用Cisco IOS Modular QoS CLI（MQC）配置PHP实例，以及如何将它作为PE路由器的出口策略应用于PE-to-CE链路。关于如何使用MQC在Cisco设备上配置QoS的细节可参阅文档[QoS-CONF]和[QoS-REF]。注意，服务策略被应用于接口ATM1/0/0.100和ATM1/0/0.101，因为相应的站点请求PE-to-CE QoS选项。在策略映射中，将带宽表示为链路带宽的百分比（而不是绝对值）是非常方便的，它使得可以对所有物理和逻辑接口使用同一种策略映射，而无需关心其实际的链路速度。

程序清单3.9 用于PE-to-CE QoS选项出口服务策略

（待续）

总之，USCom QoS边缘设计非常简单。默认情况下，在PE路由器上没有激活QoS机制。当客户选择PE-to-CE QoS选项时，在PE-to-CE链路的出口方向应用固定的服务策略，以实例化三个分别针对实时、任务关键和尽力而为应用的PHB。

3.6 USCom网络内部的流量工程

如 3.5.3 节所述，USCom 采用的基本网络设计规则之一是超额提供网络资源，从而确保核心的链路利用率位于指定范围内。这意味着以下两点。

• 在核心光网络中必须提供足够的带宽。

• 必须计算IGP（这里为IS-IS）使用的度量值，以有效平衡核心的数据流负载。也就是说，通过操纵IGP度量值来实现流量工程。为确保在没有发生失效的情况下，链路利用率保持在 40%以内，USCom 决定开发一个内部工具，计算用于网络流量工程的 IS-IS 度量值。这个工具将定期运行（大约每 6 个月运行一次），以适应流量的增长。它由监测网络中链路利用率的USCom管理系统触发。

注意 需要指出的是，修改IGP度量值并非完全没有开销的操作。它需要网络运营人员完成很多的工作。另外，每个IS-IS链路的度量值必须分别修改，以便修改另一个 IS-IS 度量值前网络有时间完成会聚。另外，如网络 QoS 设计的相关小节指出的，尽管过渡状态可能导致暂时的拥塞，但它不影响总体SLA，因为总体SLA是基于一个月的平均值。另外，这些修改是在维护期间执行的。IGP 度量值计算工具的另一个约束是，发生链路、节点或 SRLG 单点失效时，保持链路利用率在 70%以内。在 USCom 网络中，多数情况下都可以达到这一目标。

3.7 网络恢复设计

网络恢复设计无疑是总体网络设计的一个关键元素，因为它影响到不同服务的网络可用性，从而影响USCom提供的SLA。特别地，USCom有一个为第3层MPLS VPN和因特网服务提供高可用性的目标。显然，USCom现有的客户要求VPN数据流的网络可用性至少不能低于基于第2层的常规网络（帧中继、ATM等）的可用性。就因特网数据流而言，尽管这种服务需求不那么迫切，但是USCom决定为第3层MPLS VPN和因特网数据流提供相同的高网络可用性。如前面 SLA 相关章节所述，对于两种类型的数据流，将保证网络可用性达到99.4%。

在决定其网络恢复设计前，USCom需要考虑几个目标和网络设计限制，如所需的网络可用性、失效范围（链路/SRLG/节点失效）、保护单点失效还是多点失效、数据重路由时间、失效期间的QoS以及单种还是多种恢复类别（class of recovery，CoR）。其他一些准则，如运行约束和开销方面，在执行网络恢复设计时也需要考虑。

3.7.1 网络可用性目标

在考虑网络失效范围时，USCom的目标是网络在发生单点失效时仍能够正常运行，包括SRLG的失效（它也被认为是单点失效）。在重路由时间方面，其目标是在发生POP间链路或SRLG失效时提供50毫秒以内的会聚时间。

注意链路失效可能由光纤被切断或光设备失效导致。

如前面的“UScom网络环境”一节所述，尽管对于新部署的光纤网络只有非常有限的数据，但USCom认为链路失效是最常见的失效（90%的失效是链路失效）。它的目标是在只发生链路和 SRLG 失效的情况下提供类似于 SONET （60 ms）的重路由时间。

因为USCom网络设计成根据计算的IS-IS度量值对客户数据流执行流量工程，所以链路利用率在稳定状态不超过40%，在发生单点链路/SRLG失效期间不超过70%。由于这一点，QoS在失效期可以得到保障（沿备用路径），而不需要在核心网络中部署任何类型的区分服务。所以USCom设计时的唯一目标是，提供一条备用路径并实现链路和 SRLG失效后的快速恢复（50 ms）。基于这种设计，重路由数据流的QoS将不会降低。

在恢复类别方面，USCom 决定对所有类型的数据流提供无差别的网络可用性。也就是说，因特网和第3层MPLS VPN数据流都能从重路由时间目标中受益。

3.7.2 网络恢复设计的运营约束

USCom 的关键目标之一是对于所有提供的服务，使网络管理复杂性最小化。如果新技术的采用（如MPLS快速重路由）不合理地增加了网络管理复杂性，则不能被接受。尽管这一准则在某种程度上是次要的，但尽可能保持网络简单是一个明确的目标，它将反映到最终的网络设计中。

3.7.3 网络恢复设计的开销约束

显然，USCom可以从大量网络恢复机制中选择一种或几种达到其特定网络可用性目标。每种机制在效率、复杂性、可扩展性、恢复范围等方面都有一些优点和缺点（如第 2 章“核心网络可用性”一节介绍的）。对于 USCom，满足网络可用性目标的网络恢复策略的开销是最重要的因素，应该使其保持尽可能低。特别是在任何网络层（光纤或IP/MPLS）上购买额外设备应尽可能避免。

3.7.4 链路失效的网络恢复设计

SONET链路失效在SONET层处理。对于光纤链路，USCom决定部署非保护光路径和基于MPLS的流量工程快速重路由（FRR），当每条非保护光路径上的链路和SRLG发生失效时提供50毫秒重路由时间。一个重要的目标是保持运营尽可能简单。另外，对于备用隧道路径，唯一需要考虑的限制是 SRLG 多样性性。如“USCom网络中的流量工程”一节指出的，由于其内部IGP度量值计算工具，该网络设计让任何恢复路径能够在失效期间提供可接受的QoS。

USCom选择对需要保护的每条光路径实现如下MPLS流量工程快速重路由设计：

• 单跳无约束主TE标签交换路径（TE Label-Switched Path，LSP）配置；

• SRLG多样性下一跳（NHOP）备用隧道动态配置。

讨论这些方面前，来回顾一下术语单跳（ one-hop ）、NHOP 和下下跳（next-next hop，NNHOP）的定义。

如图 3.17所示，单跳TE LSP定义为从路由器X开始并在路由器Y终止的TE LSP，其中Y为X的直接邻居。这种TE LSP在信令方面与其他TE LSP相同，但转发不同，因为它不需要任何额外的MPLS标签。当包发送到单跳TE LSP时，不会增加额外标签（由于次末跳弹出操作）。

图3.17 单跳、NHOP和NNHOP TE LSP

NHOP备用隧道是指起源于路由器X并在X的直接邻居（图3.17中的路由器Y）终止的备用隧道。如图3.17所示，如果备用隧道通过另一条并行链路或多跳备用隧道来保护某一条链路，则它可以是单跳隧道。

NNHOP备用隧道是从路由器X起始到路由器Z终止的备用隧道，其中Z是X邻居的邻居。

如果仔细查看这些元素（以及相应的参数调整），就会发现配置单跳无约束主TE LSP是可能的，因为MPLS流量工程的目标仅仅是提供快速重路由保护。为承载通过故障链路路由的全部数据流，单跳主TE LSP是必需的（因为该TE LSP没有任何约束，所以其路径将为IS-IS最短路径）。通过使用这种单跳主TE LSP，可以自动保护IGP在该单跳隧道采用的链路上路由的全部IP前缀。

SRLG多样性NHOP备用隧道的动态配置是通过在IGP内泛洪SRLG相关信息来实现的，文档[ISIS-GMPLS]和[OSPF-GMPLS]对此进行了规范。相应地，这让每台路由器作为一个本地修复点（Point of Local Repair，PLR），动态地自动计算NHOP备用隧道路径，其SRLG与受保护链路完全不同。USCom决定采用这种技术来降低管理的复杂度。

图 3.18 是一个 SRLG 范例（链路 St.Louis-Chicago 和 St.Louis-Washington共享SRLG 1）。它还说明了St.Louis - Washington OC-192链路的单跳无约束主TE LSP和NHOP SRLG多样性备用隧道。

图3.18 USCom MPLS流量工程快速重路由设计

在这里，St.Louis的路由器需要计算备用隧道B1的SRLG多样性路径，用于保护链路St.Louis - Washington。

注意 USCom负责管理光纤层的小组提供了与图 3.18所示设计相关的所有信息（尤其是SRLG成员关系）。

部署该设计的第一步是，在每台路由器上配置 SRLG 成员关系。然后该信息将通过相关IS-IS扩展泛洪到网络中。程序清单3.10是USCom用于该过程的Cisco IOS配置。

程序清单3.10 SRLG成员关系配置

另外，每台路由器都需要配置成自动为每个受保护链路（未保护光路径）配置并建立一个单跳无约束主 TE LSP和一个NHOP SRLG多样性备用隧道。

程序清单 3.11显示了如何对每个邻居自动配置和建立无约束单跳TE LSP。这些TE LSP在连接到每个下一跳邻居的 IP地址终止。它们是可快速重路由的（通过快速重路由保护）。它们没有任何其他约束，如带宽、亲和力等。这是因为这些TE LSP的目标是使用MPLS TE快速重路由作为一种快速本地保护机制，而不是使用MPLS TE来执行某些流量工程功能。

程序清单3.11 单跳无约束主TE LSP的自动配置

注意 在Cisco IOS路由器上，还有其他一些命令让运营人员能够调整其他参数。

注意 如 1.1.7节所述，次末跳弹出（penultimate hop popping，PHP）指的是在次末路由器删除TE LSP标签。因此在单跳情况下当使用 PHP时不会添加标签，因为前端路由器也是次末跳路由器。因此，将单跳隧道用于保护（如USCom网络中那样）时，转发到单跳隧道时不需要额外的标签。

程序清单 3.12 是为每个受保护接口设置一条 SRLG 多样性备用隧道的配置命令。

程序清单3.12 NHOP SRLG多样性备用隧道的自动配置

参考前面的图 3.18，给定前面的配置，根据 IS-IS 路由表，所有路由到St.Louis - Washington链路上的数据流将被传输到主隧道T1。

如图3.19所示，St.Louis的路由器配置了一个NHOP备用隧道B1，用于保护跨越链路St.Louis - Washington的任何快速可重路由TE LSP。因而，当St.Louis-Washington链路发生失效时，T1将在数十毫秒内重路由到B1，所有原来路由到该链路的数据流都将重路由到备用隧道B1采用的路径上。紧接着的第二个步骤是，主隧道将由St.Louis中的PLR优化为采用一条更优的路径。因为T1无约束，所以该路径是新拓扑中的IS-IS最短路径，如图3.19所示。

图3.19 St.Louis - Washington链路失效时的MPLS流量工程运行模式

在发生链路失效的情况下，USCom选择的设计方案将保证数据流恢复时间在几十毫秒内。这符合USCom的重路由时间需求。

注意 由于IGP网络工程规则，IS-IS可以用USCom内部的离线IGP计算工具计算。备用隧道采用的路径和网络中每台路由器动态计算得到的路径确保为所有数据流提供可接受的QoS。

注意 因为TE LSP是单向的，所以在每个方向上都需要一个单跳无约束主TE LSP和一个NHOP SRLG多样性备用隧道，这样才能使用MPLS TE快速重路由提供完全的链路保护。

3.7.5 USCom网络内部的前缀优先排序

触发FRR后，快速可重路由流量工程LSP T1立即被重路由到选定备用隧道上。从更低的细节层次看，这意味着通过T1路由的所有IP前缀（如图3.17和图 3.18 所示）必须更新它们的转发项以反映路径变化。检测到失效时，PLR将触发MPLS TE快速重路由。该操作首先以串行方式更新每个受影响的 IP前缀的转发项。所以有些前缀将比其他前缀更快地被重路由。注意，所有前缀的总重路由仍在一段很短的时间内发生。USCom采用了一种有趣的设计方案，它为重要前缀提供更高优先级，使它们比其他不太重要的前缀更快地被重路由。

注意 这仅仅是一种优化，但在大型网络中非常有用，如USCom，它有超过 3 000个IS-IS前缀。

鉴于USCom提供的第 3层MPLS VPN服务，以及想要为因特网客户提供相同级别服务的意愿，USCom 选择在 FRR 过程期间使用前缀优先排序。为确保在发生失效的情况下，IP和VPNv4数据流首先得到恢复，选择代表BGP下一跳（因特网或第 3层MPLS VPN PE路由器的环回）IP地址进行优先排序。这优化了这些服务的重路由，因为递归解析将使用这些地址到达USCom PE路由器通告的全部IP和VPNv4前缀。一般认为，内部链路（如P路由器之间的链路）的IP地址不太重要，至少不要求这种严格的会聚时间。

注意 可以看到，因特网数据流在稳定状态采用IP路由（由于LDP标签过滤）；在失效期间，数据流将沿备用隧道再沿多跳主TE LSP进行标签交换。

这种优先排序可使用程序清单3.13所示的配置来完成。

程序清单3.13 前缀优先排序配置

注意 在程序清单3.13中，子网23.49.16/24、23.49.20/24和23.49.10/24分别代表主要和保留的第 3层MPLS VPN PE路由器环回地址以及因特网PE路由器的环回地址。

注意 这种前缀优先排序配置将触发FRR数据库排序功能，确保重要前缀被首先重路由。

3.7.6 避免临时环路

USCom选择的MPLS TE快速重路由设计，让公司能够实现在发生链路失效时50毫秒内重路由的目标，但它需要一点额外工作才能完全令人满意。IGP链路状态协议在网络会聚期间可能导致临时环路（在所有路由器同步其链路状态数据库并会聚前，无法保证不出现环路）。默认情况下，有关TE LSP的信息是其前端路由器的本地信息。USCom选择的FRR设计也没有避免这种情况（TE LSP [T1]对于USCom网络中的任何其他路由器不可见）。其后果是，发生链路/SRLG失效时，St.Louis路由器将在本地重路由所有穿越St.Louis - Washington链路的数据流。一段时间（取决于IS-IS定时器调整，将在本章后面介绍）后， St.Louis和Washing路由器都将建立新的 IS-IS LSP，以反映新的网络拓扑，具体地说是指出这两台路由器之间的连接关系已失去。然后，该 IS-IS LSP将泛洪到整个网络，每台路由器触发一次新路由表计算。

IP 路由将被分发，所以事件的后果是不确定的。具体地说，尽管 Dijkstra算法能够保证稳定状态下计算出无环路路径，但在网络会聚期间并非如此，这时路由器的LSDB可能还没有完全同步。

为帮助理解这一点，考虑如下事件序列。

• 时刻 t0：St.Louis - Washington链路失效（更准确地说，St.Louis路由器连接到Washington链路的接口失效）。

• 时刻t1：St.Louis路由器检测到失效，并通过MPLS快速重路由触发本地重路由。IS-IS产生一个新 IS-IS LSP，并重新计算其路由表和转发数据库（注意MPLS快速重路由和IS-IS相互独立运行）。

• 时刻 t2：Chicago路由器收到新的 IS-IS LSP，并重新计算其路由表和转发数据库。

在时间间隔t2-t1期间，St.Louis和Chicago路由器的LSDB相互不同步。假定已经通过内部工具计算出IS-IS链路度量值，使得：

• 从Chicago到Washington的最短路由是Chicago - St.Louis - Washington（未发生失效的情况下）；

• St.Louis - Washington链路发生失效时，从St.Louis到Washington的最短路由是通过Chicago和New York。

在t2-t1期间，对于从Chicago发送到Washington的数据流，在St.Louis和Chicago 之间可能发生临时循环。因为在 t2-t1 期间，St.Louis 路由器将前往Washington转发回Chicago路由器，如图3.20所示。

图3.20 在IS-IS网络会聚期间的临时环路

用于避免环路的转发邻接关系

对这个问题的解决方案是，将主隧道 T1 配置为一个转发邻接关系（forwarding adjacency，FA）。将主TE LSP配置为FA，将在 IGP内将TE LSP作为 IP链路进行泛洪。这意味着只要TE LSP正常，St.Louis节点总是在其 IS-IS LSP中将它通告为一条物理链路。所以当物理链路St.Louis - Washington失效时T1将被重路由，再重新优化后采用路径St.Louis - Dallas - Washington。St.Louis节点中产生的 IS-IS LSP仍将T1通告为一条物理链路。因此在发生链路失效时，没有新 IS-IS LSP被通告，且USCom网络中的其他路由器没有检查到任何网络拓扑变化（当然，这需要将FA的开销配置为与主链路相同）。这避免了前面介绍的临时环路。这个过程如图3.21所示。

图3.21 用转发邻居避免临时环路

使用转发邻接关系的优点是，可以避免网络会聚期间的任何临时环路。另外，对于持续几秒钟的临时失效，FA可防止在网络中生成两个会聚事件序列（对于USCom网络，这将影响到数百台路由器）。

与其他所有设计方案一样，这种方案也有缺点。使用转发邻接关系时，有些失效（如光纤被切断）可能持续几天甚至几周，尽管USCom还没有这种发生长时间光纤失效的历史。在这种情况下，跨越St.Louis - Washing链路的数据流采用的路径可能在很长时间内不是最优路径，因为IS-IS不知道任何拓扑发生了变化。例如，原来采用路径Denver - St.Louis - Washington的数据流实际上将采用路径Denver - St.Louis - Dallas - Washington，因为Denver路由器实际上并不知道链路St.Louis - Washington失效。然而，路径Denver - Dallas - Washing是一条更优的路径。因为T1仍作为一条物理链路被通告；所以其他路由器没有看到任何网络拓扑变化。对于USCom，这并不是问题，因为网络提供了超额带宽。所以，备用路径尽管在一段时间内不是最优路径，它仍能提供所需的QoS。另外， USCom有一个监测系统，用于俘获SNMP陷阱。因而可能采取措施检测到链路失效，如果失效已经持续很长时间（如光纤被切断），将删除某些主隧道的转发邻接关系配置。当然，删除转发邻接关系配置将触发IGP会聚，等效于前面发生临时环路的情况。

3.7.7 重用恢复的链路

USCom FRR设计中一个重要的考虑是发生失效后对恢复链路的重用。链路恢复后，可采用两种策略：

• 尽可能重用恢复的资源；

• 在重用链路前等待一段时间，以最大程度地保证网络稳定性。

链路失效的情况有许多种。例如，链路可能先失效，然后可靠地恢复（例如，由于某个网络元件，如激光反同步设备暂时失效而引起的链路失效恢复）。另一方面，链路可能不稳定，出现反复地失效、恢复过程（也就是说链路状态发生波动）。在这种情况下，重用链路前等待一段时间将有助于确定重用该链路是否安全。波动效果是不受欢迎的；可能导致网络不稳定，触发LSP泛洪风暴，使各台路由器计算SPF路由等。要解决这个问题，可以采用很多种技术，如后退（back off）和阻尼。这些措施可以在不同层实现，如接口级、IGP和MPLS流量工程等。简而言之，其关键思想是延缓使用不稳定的链路，以保持网络的稳定性。

人们设计了许多不同的“后退”/阻尼算法（基于累积惩罚，如BGP阻尼、指数后退等）。对于MPLS流量工程，在Cisco路由器上TE LSP重优化的触发总是导致链路重用。当路由器试图通过CSPF算法重优化TE LSP路径时，它首先确定是否可以找到一条比当前路径更优的路径。如果找到，TE LSP将被平滑地重路由到更优的路径上。Cisco路由器有各种可配置的重优化触发器，可分别启用或禁用它们。

• 基于定时器的触发器：前端路由器每隔（Tr）秒尝试重优化其TE LSP集。

• 用户触发：用户强制重优化。

• 链路激活：每当 IGP发现新链路时，每台路由器都试图检查其TE LSP集是否能够从中受益。

所以USCom需要对如何折衷做出决策：是尽可能快地重用已恢复的链路以快速减轻拥塞，但有导致网络不稳定的风险；还是在重用已恢复的链路前等待一段时间，直到其状态不再改变。

因为USCom骨干超额提供了带宽，所以与网络稳定性相比，立即重用已恢复的链路每非常重要。因此，USCom决定在重用已恢复链路时采用保守的方法。它将依赖于IS-IS协议，根据IS-IS后退机制（参阅2.5.4节）宣称链路正常。链路激活事件发生时不触发TE LSP重优化。在工程流量方面，USCom决定使用基于定时器的方法，将定时器的值设置为 15 分钟。因此，每隔 15分钟路由器就会试图检查链路是否恢复，以便沿该链路重优化单跳无约束主TE LSP。链路恢复后，最坏的情况下是等待 15分钟后TE LSP才重路由到该链路上。

注意 即使在恢复的链路上重新建立了IS-IS邻接关系，根据计算出的路由表，两台路由器之间路由的数据流仍然被发送到TE LSP。这意味着仅当TE LSP沿该路径重优化后，相应的数据流才会发送到恢复的链路上。

3.7.8 USCom网络中的多点失效

在评估其多点失效需求时，USCom 发现唯一可能导致多点失效的原因是SRLG 失效。这种情况由网络设计处理，因为每个备用隧道路径通过动态计算得到，与受保护链路的“SRLG不同”（备用隧道路径经过的链路与用FRR保护的链路不共享任何SRLG）。任何其他多点失效情况（如SRLG失效后，另一条不属于失效 SRLG 的链路失效）不属于需求考虑范围，因为多个相互独立元素同时发生失效的概率非常低。需要指出的是，USCom在发生双点失效的情况下仍能运行，而不会导致网络中断，但其重路由时间和这种失效情况下的QoS没有任何保障。

3.7.9 USCom网络中的链路失效检测

在交换型环境中（如 POP 内部的吉比特以太网链路），保护链路的主要挑战是快速检测链路失效。两台路由器通过吉比特以太网链路直接相连时，邻居路由器在几毫秒内就能检测到由于光纤断裂或路由器接口失效而引起的链路失效。另一方面，如果路由器通过中间第2层交换机相连，如USCom中的3级交换型POP，将对失效检测提出挑战，因为它需要使用一种快速Hello（存活）协议。考虑如下两种情况。

• 两台路由器通过直接PoS或吉比特以太网链路相连。链路失效或某台路由器接口失效将能够通过第1层或第2层提供的警告快速检测到。

• 两台路由器通过一台第2层交换机相连。在这种情况下，链路或路由器接口失效只有交换机和连接该失效元素的路由器能够发现。因而与失效元素相连的路由器的邻居路由器不能检测到这种失效，除非在两台路由器之间使用一种Hello协议。

因为路由器接口失效很少发生，且POP内部的链路也很少发生失效，所以USCom决定不保护这些POP内部链路，而只依赖于IS-IS会聚。

3.7.10 USCom网络中的节点失效

在评估保护网络中节点失效的需求时，USCom选择对计划的路由器维护和非计划的路由器失效两种情况分别处理。

1．计划的路由器维护

软件或硬件升级可能要求路由器停止运行一段时间（对于USCom，平均大约为10分钟，如表3.2所示）。在这种情况下，对于核心路由器，USCom采用通过管理性过程对路由器设置IS-IS过载位。这将触发路由器周围数据流的网络级IS-IS会聚（重路由）。一旦网络完全会聚，就可以开始执行升级，而不会导致任何数据流中断。这种方法特别适合于USCom环境。它的网络过度工程规则使得网络不会遇到任何拥塞，即使是在发生这种单个网络元素失效的情况下。当路由器重新加载后，就可恢复到原始链路度量值。

对于规划的边缘路由器（第 3层MPLS VPN和因特网PE路由器）维护，情况大不相同。USCom考虑了三种情况。

• 双重连接的因特网客户站点：在升级因特网PE路由器前，USCom使用一个脚本自动增加通告给受影响的CE路由器的所有BGP路由的MED值。这让每台CE路由器能够平滑地将其数据流重路由到它连接的第二台 PE 路由器；从而避免任何的数据流中断。实际的 PE 路由器维护工作可在BGP路由改变5分钟后进行。

• 双重连接的VPN客户站点：这可以是连接到两个不同第3层MPLS VPNPE 路由器的两台 CE 路由器，也可以是连接到两个不同第 3 层 MPLS VPN PE路由器的单台CE路由器。如果CE路由器和PE路由器之间的路由协议为BGP协议，将发生与双重连接CE路由器类似的过程。对于其他路由协议或使用静态路由的CE路由器，没有其他特定措施。

• 连接到单台 PE 路由器的因特网客户和 VPN 客户：在这种情况下，USCom处理路由器维护，在维护期间不可避免地导致某些数据流中断。

对于所有这些情况，USCom安排4个小时的维护时间，时间为每个月的第一个周日的下午3点到7点。

2．非预期的路由器失效

USCom注意到，有几种类型的路由器失效会对数据转发产生绝然不同的影响。这些影响包括从数据流完全被黑洞吃掉到对数据流完全没有影响，这取决于路由器平台、失效类型等。

下一节将介绍两个范例，它们演示USCom的IS-IS设计如何满足非预期路由器失效的需求：

• 核心路由器电源失效；

• 不触发任何链路失效的路由器失效，即不能被邻居检测到的失效。

3.7.11 IS-IS会聚

从会聚角度设计IS-IS调整时，USCom的目标是，在发生路由器失效或POP内部链路失效（使用第2层交换机连接路由器时）的情况下，提供5秒的会聚时间。链路失效被认为是在IGP调整范围外，因为MPLS流量工程快速重路由将处理这种失效。这个会聚时间包括失效检测、拓扑变化传播和本地会聚（计算新路由表）等过程的时间。

当然，有许多参数对调整IS-IS以提高会聚速度有影响。如2.5节所述，IGP会聚时间实质上由三个主要部分组成：

• 失效检测时间；

• 报告拓扑变化的新 IS-IS LSP的泛洪；

• 每台路由器的路由表计算（SFP算法、路由信息库（Routing InformationBase，RIB）更新等）。

1．IS-IS失效检测时间

发生路由器失效时，同时意味着多条链路失效（如电源失效）。SONET 或光路径链路失效将在数十毫秒内被检测到。另一方面，如前面所述，交换型POP （第3层）内的链路或路由器失效检测需要一种Hello协议。USCom决定将IS-IS Hello频率设置为 1秒（每秒钟发送一条 IS-IS Hello消息[IIH]Drew给每个邻居，这对中括号不引用任何参考文献，而仅表示Hello消息名称）。注意，在USCom网络拓扑中，最大邻居数量位于合理的范围内（小于30）。所以每秒钟发送一条IS-IS Hello消息给每个邻居是可行的。Hold定时器设置为 3秒。如果在这个时间期限内没有收到IS-IS消息，则认为路由邻接关系丢失。

2．新 IS-IS LSP的泛洪

新 IS-IS LSP的泛洪时间实际上是LSP产生时间（本节后面将介绍）、传播延时和每跳路由器处理时间的函数。在USCom网络中，因为光纤网络非常密集，所以最坏情况下的传播延时是 50 ms。基于几次内部测试，USCom认为最坏情况下的 IS-IS LSP处理延时（即使是在负载相当重的路由器上）很少超过 10 ms。这个计算假定总是在触发新SPF前泛洪新收到的 IS-IS LSP。

注意 某些路由器平台可能不能在触发 SPF 前系统地泛洪 LSP，但它对于限制任何链路状态路由协议的会聚时间都非常重要。的确，在收到新 LSP（反映拓扑变化的LSP）后，路由器应该总是先泛洪该LSP，而不是先触发SPF然后再泛洪LSP。

另外，每台路由器都需要配置成确保IS-IS控制消息的排队延时是有限的，且可忽略，以免它严重影响总会聚时间。为IS-IS控制消息提供高优先级是至关重要的，这也适用于 hello 消息，这样才能在链路拥塞的情况下（USCom 不属于这种情况）避免丢失路由邻接关系。它还可确保快速的LSP更新，因为hello消息可能反映拓扑变化（如果LSP不是刷新），拓扑变化要求快速会聚以便将数据流重路由到替代路径上。因为IS-IS控制消息不依赖于IP协议，所以需要一些内部机制来保证IS-IS消息得到比其他用户数据流更高的优先级。

注意 在OC-3到OC-192链路上，IS-IS LSP串行化延时不是影响整体 IS-IS会聚时间的主要因素。

根据前面的泛洪时间分析，USCom认为总泛洪时间不会超过 200 ms。（这个时间包括产生新 IS-IS LSP的时间以及在始发路由器和将数据流重路由替代路径的路由器之间的总传播延时）。

3．每个节点上的路由表计算

IS-IS会聚时间的最后一个组成部分是路由表计算时间，它本身又由两部分组成：

• SPF计算；

• 路由表计算和对路由器线线路卡的更新（对于分布式路由器架构）。

对 USCom网络执行的一些测试表明，SPF计算时间为 100 ms，计算路由表更新为 500 ms。

3.7.12 USCom网络中的 IS-IS配置

程序清单 3.14是图 3.1中 St.Louis P路由器的配置，它实现了节点失效时IS-IS会聚时间在5秒以内的目标。网络中其他所有路由器也采用了类似的配置。

程序清单3.14 快速IS-IS配置

注意 必须在与 IS-IS 进程相关联的每个接口上配置 hello interval 和 hellomultiplier。

对于命令 lsp-gen A B C，USCom决定将B设置为50 ms，使每台路由器在生成新 IS-IS LSP前有机会检测到所有可能的本地失效（由SRLG失效引起）。SRLG 失效时，多个本地链路可能失效，且这些可能无法同时被检测到。因而在产生新 IS-IS LSP前等待 50 ms可以提供更精确的网络拓扑状态。如果第二个失效发生，路由器将在 20 ms后产生第而个LSP（C = 20）。

这也适用于SPF触发。对于命令 spf-interval A B C，B设置为 50 ms。发生SRLG失效时，它提供了在触发发新（第二个）SPF前，接收所有反映新网络拓扑和SRLG失效的 IS-IS LSP的机会。关于各种 IS-IS调整参数的解释，请参阅2.5节。

为帮助说明IS-IS参数设置的效果，考虑两种极端情况。

• 核心路由器电源失效：在这种情况下，所有连接到该路由器的链路也会失效，从而为失效路由器的邻居提供了快速的失效指示。每个邻居产生一个新 IS-IS LSP，泛洪到网络中，然后每台路由器会聚。在这种情况下，失效将在hold-time定时器过期前检测到。传播延时和SPF/RIB计算时间使得总会聚时间5秒的目标很容易满足。

• 路由器失效没有触发任何链路失效或失效不能被邻居检测到：出于说明的目的，应该考虑两种情况：

——路由器失效，对数据流转发产生影响，但它连接的链路没有失效；

——路由器失效，对数据流转发产生影响。它连接的链路也失效，但它的邻居不能检测到这些失效。交换型POP经常发生这种情况。

在这两种情况下，失效检测都是通过IS-IS邻接关系维护过程进行，所以时间在 3 秒以内（直到 hold-time 定时器超时）。这仍然为失效路由器的邻居提供了 2秒时间，以产生它们的新 IS-IS LSP。将新LSP泛洪到网络中，最终所有节点会聚。这也保证了用前面提到的IS-IS参数调整方法使5秒的重路由时间目标得到满足。注意只需要一部分路由器会聚，就能使受影响的数据流（通过失效路由器路由的数据流）得到恢复。

需要指出的是，其他路由器失效不会影响数据转发，如分布式平台上的控制平面失效。在这种失效情况下，如果控制平面不能在3秒（hold-time定时器的值）内恢复，IS-IS 邻居将宣称邻接关系丢失，进而进行 IS-IS 会聚（数据流将绕过失效路由器重路由）。然而，用户数据流并未受到影响，因为在 USCom网络中，替代路径提供了等价的QoS。

值得注意的是，边缘路由器失效总是会影响到来源于本地连接的CE路由器的数据流，以及发送到这些站点的数据流。USCom决定在初始期间，不在因特网或第 3层MPLS VPN PE路由器上实现任何高可用性（high-availability，HA）功能，但一段时间后将重新评估。因此，这适用于任何类型的失效。因为客户站点位于USCom运营范围外，所以由客户根据使用的路由协议及其参数设置来控制会聚时间。

3.8 USCom网络的设计教训

从USCom的设计决策可得到许多经验。

• 直观的工程规则，如结构化VRF命名约定、路由区分标志/路由目标分配方案以及定义良好的配置模板，有助于第 3层MPLS VPN服务部署更简单。

• 通过在核心中将因特网数据流和 VPN 数据流的转发完全分开，可使因特网服务的运行与部署第 3层MPLS VPN服务前完全相同。VPN数据流在MPLS LSP上传输，而因特网数据流仍作为 IP数据流转发。

• PE路由器保护技术，如限制VRF中的路由数量或限制从给定客户那里收到的前缀数量，是第 3层MPLS VPN服务部署的必要组成部分。

• 某些路由器参数的简单调整，如输入存储队列和选择性包丢弃（Selective Packet Discard，SPD），可以显著地改善BGP控制平面的会聚。

• 应该部署路由反射器，以帮助实现PE路由器所需BGP TCP会话数量的可扩展性。

• 在PE路由器和路由反射器上启用路径MTU发现，让BGP使用的TCP协议能够更高效地运行，从而提供更好的会聚时间。

• 对于可以大量/廉价/快速提供核心带宽的情况，核心QoS设计可依赖于纯粹的过度工程来保证失效期间的QoS，并获得能满足任务关键和多媒体应用需求的良好SLA。更加简单的工程、配置、监测、排错和精细调整使它成为一种低运营开销（operational expenses，opex）设计。对于具有光纤基础设施的“facilities-owned”运营商，这通常是一种很有吸引力的方法。

• 即使在核心没有支持QoS机制，且没有部署非管理CE路由器，在出口PE路由器上提供可选QoS机制也是一种很好的做法。这样做可以为客户提供附加价值，因为它可管理最薄弱环境（最弱的链路，即 CE-PE链路，可由客户自己管理）的拥塞，且没有显著增加设计复杂性。

• 通过MPLS流量工程快速重路由，网络可以最小的运营开销和资金开销（capital expenditure，capex）实现简单设计，并能在链路失效或 SRLG失效时提供 50 ms以内的会聚时间。这种备用隧道可自动配置并用很少的配置建立。

• 节点失效可通过少量的IGP调整来处理，在发生影响数据转发的路由器失效时获得几秒内的重路由时间。如果USCom在未来需要提高其网络可用性，可考虑更激进的IS-IS参数设置。

第4章 国家电信公司设计案例

Telecom Kingland（TK）是一家位于虚构国家Kingland的虚构因特网服务提供商（ISP），代表了欧洲或亚洲的电信服务提供商。这种提供商通常称为国家电信公司，通常为国家控制的市场提供服务，为所在国政府拥有，以绝对优势垄断运营。随着国家市场的管制放松以及这些市场对竞争的开放，电信正在经历巨大的变化。这些变化包括部分或全部私有化、资产和运营开销（operational expense，opex）的合理化，以及帮助国家电信公司在新环境中提供有竞争力的服务和价格的内部重组。

由于相同的历史，许多国家电信公司呈现类似的特征。它们通常有着非常广泛的服务类型，覆盖所有电信服务，包括固定电话、移动电话和数据。它们的服务通常覆盖全国各地，且拥有自己的光纤和传输设备。尽管面临不断增长的市场竞争，但它们在国内市场通常占据了很大的市场份额。

为支持近年来出现的新服务，许多电信公司部署了过量的覆盖和并行网络。当前，它们试图通过将许多服务迁移到下一代基于包的多服务骨干网络，以显著地减少费用。TK将这种迁移确定为一个关键的战略方向。就这方面而言，TK将其包核心网络发展为一个遍布全国的多服务网络，然后将多种已有服务（如IPv4因特网和第 3层MPLS VPN服务）迁移到该网络上。这个网络还用于公共交换电话网络（Public Switched Telephone Network，PSTN）中继和引入新服务（如IPv6因特网）。

这种网络迁移的出发点是核心网络与边缘网络的完全分离，其中核心网络设计为高性能、高质量、服务无关的基础设施，而边缘网络则设计为支持多服务、多功能的网络。

本章的目标是以一家国家电信公司为例，介绍特定网络运营商选择IP/MPLS网络设计的特定细节；还将介绍这种运营商的特征和目标如何影响其设计决策，并介绍设计过程的发展。

4.1 Telecom Kingland网络环境

与其他类型的电信公司一样，TK拥有遍布全国的光纤链路。除原来较老的时分复用（time-division multiplexing，TDM）基础设施外，它还在光纤设施上部署了大规模的同步数字系列（Synchronous Digital Hierarchy，SDH）基础设施。所有SDH链路都受到保护。TK在其TDM网络上提供 64 kbit/s～2 Mbit/s的专线服务，在SDH网络上提供 2 Mbit/s～STM-16（2 488.32 Mbit/s）的专线服务。

近几年，TK部署了密集波分复用（dense wavelength division multiplexing， DWDM）基础设施，使其能够通过激活额外的波长，在较短时间内（大约为几天）以较低的费用提供POP（Points of Presence）之间的DWDM链路。TK在以 STM-16（2.5 Gbit/s）和 STM-64（10 Gbit/s）的速率支持这些 DWDM，在DWDM层没有提供对它们的保护。

多年来，TK还提供X.25、帧中继和ATM服务，它们是由一个完全独立的ATM核心网承载的。可以从遍布全国的大量2级POP获得帧中继和ATM服务。

根据其战略方向，TK将核心包网络发展为全国性核心网络，以用于多服务集成。我们称这个核心为多服务包核心（Multiservice Packet Core，MPC）。

MPC由下列部件组成：

• 6个 1级POP；

• 50个 2级POP。

1级POP提供跨越全国的传输（大城市之间的连接）。它们使用未受保护的STM-64 DWDM链路相互连接，根据地理位置和数据流需求形成部分互联拓扑。

每个 2级POP使用STM-16 DWDM链路连接到两个 1级POP，但有几个较小的 2级 POP通过受保护的 STM-1（155 Mbit/s）SDH链路连接到最近的 1级POP的两台骨干P路由器。此外，还有几个2级POP没有连接到1级POP，而是连接到其他两个提供到1级POP传输的2级POP。图4.1说明了这些连接。

MPC 是一个纯核心网络，仅由 P 路由器组成。服务通过边缘设备（如 PE路由器和接入服务器，它们可位于MPC的56个POP中的任何一个）提供给用户。MPC提供跨越这些边缘设备的传输，并提供到外部网络（如公共因特网）的IP连接。

图4.1 Telecom Kingland多服务包核心拓扑

TK提供因特网接入服务已经很多年，提供第 3层MPLS VPN服务的时间也超过了 4年。TK安装了超过 15 000多个专用因特网端口和 30 000多个专用第 3层MPLS VPN端口（组成 2 400多个VPN）。TK还通过PSTN/ISDN和数据用户线（digital subscriber line，DSL）为因特网和第 3层MPLS VPN服务提供远程接入。

TK选择将因特网和第3层MPLS VPN专用端口都连接到同一组PE路由器。这种PE路由器有450台，它们称为多服务PE路由器（mPE路由器）。这些mPE路由器散布在 56个POP中，并与本地的MPC P路由器相连。

通过支持3种服务类别（CoS）、VPN内部多播以及语音VPN，丰富了第3层MPLS VPN服务。对于具有特殊需求（如路由数量巨大或由于成员关系经常变化而需要自己管理）的少数大型客户，还提供了运营商的运营商（CsC）服务。所有这些附加服务都是通过上述mPE路由器提供的。

TK还为批发客户支持因特网远程接入，如TK国内为居民或小型家庭办公室（small office/home office，SOHO）提供因特网接入的集团或其他 ISP。TK有 90 000多个窄带拨号端口（PSTN/ISDN）和几百万个DSL宽带用户。

MPC P路由器和连接用户的所有边缘设备（如mPE路由器和接入服务器）作为一个独立的自主系统运行（自主系统号为 32764）。采用的内部网关协议（Interior Gateway Protocol，IGP）为开放最短路径优先（Open Shortest Path First， OSPF），分成多个区域，以处理大量的路由。该网络由 3 000条 IGP路由、150 000多条因特网路由和 120 000多条VPNv4路由（它存储在mPE路由器/VPNv4路由反射器，而不是P路由器上）组成。

TK 国际 IP/MPLS 网络（它是一个不同于全国性网络的自主系统）还用于在Kingland之外的许多国家提供因特网和第 3层MPLS VPN服务。当前有 40多个国际 POP，这个数字预计在未来几年内将显著增加。这个国际网络连接到1级POP中的MPC骨干，承载全国性MPC内部 120 000多条VPNv4路由中的一部分。

TK最近还完成了4类电话交换机的更换。它还利用MPS的功能来承载电话转接数据流。将 4 类交换机（电话转接交换机）从网络中全部拆除，替换以软交换机。这些软交换机由如下部分组成：

• VoIP介质网关：VoIP介质网关（也称为VoIP中继网关）通过TDM接口连接 5 类交换机（连接用户的电话交换机），将语音呼叫分包化，并将IP包流路由到MPC网络。

• 呼叫代理：呼叫代理参与电话信令协议（7号信令系统，参阅文档[SS7]），它通过一种介质网关控制协议来控制 VoIP 网关，详情请参阅文档[MEGACO]或[MGCP]。

电话传输逻辑架构如图4.2所示。

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

图4.2 Telecom Kingland电话传输逻辑架构

这种语音传输方法大大减少了费用。首先，与陈旧的 4 类交换机相比，现代软交换机为密集的技术降低了站点费用，从而显著降低了运营费用。另外，如图4.3所示，它还有减少端口数量和传输容量的效果。这种效果是由于从全互联拓扑（每台4类交换机都需要与它汇接的其他每台4类交换机连接）向云状拓扑（每台软交换机只需在本地连接到MPC）迁移的结果。另外，对于语音数据流，通过在非常高速的 MPC 上的多路复用，TK 可以获得非常低的每 kbit/s带宽费用。

当前总共部署了64个VoIP中继网关。6个1级POP各有4个这样的网关， 50个2级POP中的20个各有两个这样的网关。

因为 Kingland 是 IPv6 的最早使用者之一，所以 TK 在一年前引入了 IPv6因特网服务以满足客户需求。TK还计划在下一年引入 IPv6 VPN服务。

图4.3 电话传输的云状拓扑

Telecom Kingland POP结构

每个1级POP由两台骨干P路由器组成，它们通过STM-64链路连接到其他几个1级POP，并支持到2级POP的STM-16连接。

在6个1级POP中，有4个的P路由器还连接到提供外部连接（如因特网对等点）的网关以及到TK国际网络的网关。

每个 2 级 POP 由两台骨干 P 路由器组成，它们支持到两个 1 级 POP 的STM-16连接（或者在少数情况下，支持到同一个1级POP的两台P路由器的STM-1连接）。

1级和2级POP都有边缘设备，为客户提供到MPC的连接。对于企业服务（而不是居民服务和批发服务），这包括：

• 通过STM-1链路（对于1级POP中的少数高速mPE路由器，为STM-16链路）连接到两台P路由器的mPE路由器（提供IPv4因特网和第3层MPLS VPN服务）；

• 支持因特网和第 3 层 MPLS VPN 服务远程接入的网络接入服务器（Network Access Server，NAS）和宽带接入服务器（Broadband Access Server，BAS）；这些设备与用于批发服务的设备是分开的，因为它们提供更高级别的服务，采用不同的运营实践（如更短的维护时间）和设计规则（如更低的端口超额订购）；用于因特网的NAS和BAS通过两台吉比特以太网交换机连接到P路由器，用于第 3层MPLS VPN服务的NAS和BAS通过两台吉比特以太网交换机连接mPE路由器。

对于批发服务，边缘设备包括大量NAS和BAS，它们也通过两台吉比特以太网交换机连接到P路由器。使用TK的NAS/BAS批发服务的运营商骨干通过SDH或吉比特以太网连接到MPC，以提供因特网对等点。

对于PSTN中继，VoIP中继网关通过多条STM-1链路连接到两台电话PE路由器（也称为PE-PSTN），而这些电话PE路由器通过本地STM-16链路连接到POP中的两台P路由器。

1级和2级POP的设计如图4.4和图4.5所示。

图4.4 Telecom Kingland1级POP设计

图4.5 Telecom Kingland2级POP设计（POP具有PSTN中继的情况）

4.2 Telecom Kingland设计目标

TK网络的架构和设计主要受如下目标影响。

• 下一代网络应该与TK的战略规划“基于包的、高弹性多服务核心”目标一致。该核心网络周围应该部署完善的边缘设备，提供功能丰富的服务。

• 所有已有的IP服务应在通过MPC网络互连的多服务边缘设备上得到支持。

• 通过将PSTN中继迁移到MPC网络，到达减少开销目的同时确保提供与以前的PSTN相同的服务质量。

• 确保MPC网络能够提供所有已有IP服务、PSTN中继应用和任何预期服务（如伪线路（包括ATM伪线路）、第2层VPN以及虚拟专用LAN服务（Virtual Private LAN Service，VPLS））所需的服务水平。

• 达到必要的服务质量，同时避免在核心中过度提供，以控制带宽费用。

• 在没有额外资金花费（如添加额外设备以保护 DWDN 链路）的情况下实现必要的弹性。

• 尽可能从核心中删除应用/服务特定功能，使核心的稳定性和性能最大化。例如将MPC网络转变为无 IPv4 BGP区域。

本章后面将从路由、VPN、QoS、流量工程、网络恢复和IPv6等角度，介绍TK选择用来满足这些目标的设计。

4.3 路由和骨干标签转发设计

TK国内网络的骨干支持所有单播数据流的MPLS标签交换。这些标签使用标签分发协议（Label Distribution Protocol，LDP）和 RSVP-TE（Resouce Reservation Protocol Traffic Engineering，资源预留协议流量工程）进行分配和分发。TK选择不部署任何LDP过滤器（与前一章的USCom不同）。因而，因特网和第 3层MPLS VPN数据流都将采用标签交换。

因为所有单播数据流都采用标签交换，且TK没有提供原生IP多播服务，所以在MPC中的P路由器上没有必要部署 IPv4 BGP地址簇。这让TK能够运行无因特网的核心网络，但仍需要MP-BGP来分发第 3层MPLS VPN服务创建的VPNv4路由。

注意 在后面的“mVPN服务应用”一节中读者将看到，TK只为第 3层MPLS VPN客户提供多播服务。这是在客户的VRF中提供的一种附加服务。它采用第1章的“多播VPN”一节介绍的mVPN技术。

使用这种技术时，将使用[GRE]及入口 mPE 路由器的源地址封装每个多播包，对多播包执行的RPF检查总是一台mPE路由器环回接口地址，而不是客户VPN的原始源地址。因为这些mPE路由器环回地址由IGP分发，所以不需要额外功能就可成功执行RPF检查。

另一方面，如果TK支持全局性IP多播服务，则RPF矢量功能是必要的（第5章将介绍）。有了该功能就可以对路由的BGP下一跳（而不是路由的发源地）执行RPF检查。

从国内网络的核心中删除BGP IPv4地址簇意味着有几个问题需要解决。

• 服务提供：当前用于在边缘和核心路由器上提供服务的脚本需要修改，以删除多余的BGP配置，如P路由器上的IPv4地址簇会话。

• 故障检测：包转发路由上的失效需要能够被检测到然后修复。不带标签的 IP 包在核心内不能被转发，因为已经从 P 路由器上删除了 IPv4路由。

• 安全性：在网络核心中，用于识别攻击威胁的工具（如 IP Souce Tracker）不再有效，因为P路由器只转发MPLS包而不再转发IP包。

• 排错：网络运营人员需要理解如何对MPLS核心网络（不再是纯IP环境）排错。

然而，无因特网数据流的核心也有许多优点。

• 在P路由器上，本地存储的路由状态数量显著减少，从而减少了内存和处理器占用率。

• BGP IPv4地址簇对等网的规模显著减小，因为只有边缘路由器需要存储IPv4 BGP路由。

• 核心网络的稳定性增强，因为它不再需要处理外部路由。例如，由于P路由器不存储外部路由，因此外部路由波动对它不再产生影响。

• 提高了安全性，尽管不删除IPv4地址簇也可以增强核心网络的安全。

TK认为无因特网核心的优点超过了迁移的复杂性，并按如下方式解决了前面指出的问题：作为迁移的一部分，对已有的所有供应脚本进行修改，以正确配置边缘mPE路由器和核心P路由器。这个过程的主要工作是删除P路由器上的BGP配置（无需额外命令），并重新配置mPE路由器，使其与1级POP中的IPv4地址簇路由反射器（RR）建立对等关系。

显然，拒绝服务（denial of service，DoS）是所有网络运营商关心的问题之一。在将核心网络迁移到MPLS交换前，TK使用 IP Source Tracker工具识别任何可疑的 DoS 攻击源。当特定目标地址怀疑被攻击时，TK 在其路由器上启用IP Source Tracker，让每个线路卡能够为目标地址创建一个转发信息库（Forwarding Information Base，FIB）项，收集发往该目标地址的数据流信息。然后定期分析这些数据，以找出攻击源。

在过渡到无因特网核心时，TK必须将这种功能添加到mPE路由器上，因为它们是网络中唯一使用 FIB转发 IP包的设备（IP Source Tracker需要使用FIB信息）。所有MPLS包都使用标签转发信息库（Label Forwarding Information Base，LFIB）而不是 FIB进行转发，因而当前的 IP Source Tracker功能无法跟踪它们。

当怀疑在VPN内部或全球因特网存在DoS攻击时，TK在出口mPE路由器（通过它们进行可疑攻击）上启用 IP Source Tracker。然后，TK检查输出以确定攻击的源IP地址。这样，就可以通过在出口mPE路由器BGP表中检查确定的源 IP 地址，确定入口 mPE 路由器。注意，如果没有核心网络中的 MPLS转发，mPE 路由器将没有办法确定攻击的入口。源地址的下一跳地址不一定是攻击包进入网络时通过的路由器。

对于转发故障检测和排错，将通过使用 LSP-ping（参阅[LSP-PING]）来确定LSP存活状态。该功能使得可以使用Cisco Service Assurance Agent（SAA）发起ping，以测试特定LSP当前是否正常工作。如果检测到失效，TK使用LSP Traceroute（参阅文档[LISP-PING]）找出网络中的失效点并采取纠正措施。SAA和LSP-ping功能都是在mPE路由器上激活的。

在LDP和MPLS流量工程的控制平面故障检测方面，当发生流量工程LSP或LDP LSP失效时，TK将使用P路由器的常规排错功能。这能够得到更详细的 IE/LDP LSP运行状态（CLI show和 debug命令、与TE/LDP有关的 SNMP陷阱以及 IGP TE扩展）。

TK还部署了 IGP-LDP同步功能（使用全局mpls ldp sync命令启用）。这让IGP与LDP协议相同步，仅当IGP和LDP协议都已会聚后才转发网络包。如果IGP和LDP之间缺乏协调，可能在如下两种情况下导致丢包。

• IGP邻接关系启动，链路变为 up状态时，路由器可能在链路对等体之间完成 LDP 标签交换前，在链路上开始转发数据流。这将导致标签交换包丢失，因为在最优路径（由IGP确定）上还没有LSP。

• 如果LDP会话丢失，但IGP邻接关系没有丢失，路由器可能继续使用与该LDP会话相关联的链路而不是LDP会话完全同步后的替代路径，继续转发数据流。这将导致与前面相同的不良后果。

通过同步 LDP 协议与 IGP，可减少这些情况下的包丢失。在链路变为 up状态的情况下，如果已经有LDP会话，IGP将像通常那样建立邻接关系；如果没有LDP会话，将执行如下操作：

• 如果 LDP 邻居可达，IGP 将延迟发送 hello，直到 LDP 会话运行或hold-down定时器超时；

• 如果LDP邻居不可达，则IGP开始发送hello；

• 建立IGP邻接关系后，LDP会话完全正常前，路由器首先使用IGP的最大度量值通告链路的可达性，这可防止数据流沿相应链路转发；

• LDP会话成功建立后，路由器使用该链路配置的度量值通告该链路，让数据流能够使用该链路。

如果在 IGP 通告配置的链路度量值后，LDP 会话发生失效，这样将发生如下操作：

• IGP再次将该链路通告为最大度量值；

• LDP会话恢复后，IGP也通告配置的链路度量值。

4.3.1 共享边缘因特网和第3层MPLS VPN服务

如前面所述，TK国内网络的边缘由提供各种服务的mPE路由器组成，包括因特网和第 3层MPLS VPN服务。MPC的P路由器将被共享，用于传输所有这些服务。

在设计时，对这种在相同边缘路由器上运行共享服务的方法进行了评估。显然，P网络和边缘的安全性与网络可扩展性一样，也是至关重要的。5.6节详细介绍了如何满足或克服这些挑战，所以本章不介绍这些方面的设计。

4.3.2 因特网服务：路由反射部署

从P路由器中删除BGP IPv4地址簇另一种积极意义是，因特网RR可以采用类似于VPNv4 路由反射的设计。这是因为在核心中，包不再采用IP 转发，因而不需要遵循网络的物理拓扑（如前一章介绍）。因此TK选择使用集中模型来部署因特网服务的RR，但将 IPv4 RR与那些用于VPNv4路由的RR分开。分别部署RR的主要原因是控制平面会聚；TK不希望发生失效时两种服务之间发生冲突。

如图4.6所示，每个1级POP有两个RR为IPv4地址簇提供服务。2级POP中的每台mPE路由器与离它最近的两个RR建立对等关系。1级POP中的每台mPE路由器与两个本地RR建立对等关系。

图4.6 IPv4路由反射器连接

4.4 第3层MPLS VPN服务：设计概述

TK引入基于网络的第3层VPN服务的动力与前一章介绍的USCom公司类似。然而，TK部署第 3层MPLS VPN技术的时间更早，因而其网络服务更成熟，有更多的VPN站点，且部署了几种额外的服务。

许多种因素导致在Kingland和其他国家很早就采用这种技术。大约在1998年，出现了许多新的服务提供商，对已有的服务提供商形成了挑战。这些新运营商与传统提供商之间的最大区别之一是，它们除传统的帧中继/ATM服务，还提供其他服务。TK迅速跟进这种战略，引入了基于MPLS的VPN服务，期望占领相应的市场。这种技术加速增长的另一个原因是，Kingland 有很长时间提供管理服务的历史，因而TK更容易使用第 3层MPLS VPN技术来实现CE路由器的互连。管理VPN服务的历史优势也解释了为什么今天Kingland的大多数第 3层MPLS VPN客户仍继续使用管理服务。

因为TK第 3层MPLS VPN服务的成熟性，所以它的市场定位于各种客户，包括中小型公司（small and medium business，SMB）、远程工作人员、企业（从小型到大型）和ISP等。为这种服务选择的设计方案在许多方面与前面USCom选择的设计非常类似。例如，所有现有POP都用于第 3层MPLS VPN服务，且提供不同范围的接入速度。但是网络边缘稍有不同，TK选择在其mPE路由器上运行第 3层MPLS VPN和因特网服务。

TK当前部署了 450台mPE路由器。TK当前共为 2 400个国内VPN客户服务，共有 100 000条VPNv4路由（包括远程接入客户）。除这些客户外，它的国际网络还有360个VPN客户。国内网络提供运营商的运营商服务（在本章后面介绍），有 5 个客户，将 TK 骨干中 VPNv4 路由的数量增加到了120 000条（大约 18 000条用于国际网络，大约 2 000条用于运营商的运营商服务）。

注意 提供商之间的连接将在下一章介绍，本章不介绍TK的国际网络。

TK定义了四种不同类型的服务，都可以提供给国内客户和国际客户。

• 内部网VPN：这种客户需要内部站点之间的连接，以建立内部网。这种客户可访问TK的中央服务。

• 外部网VPN：这种客户需要内部站点和外部合作伙伴站点之间的连接，以建立外部网。

• 内部网＋因特网：这是一个内部网客户，它同时还需要因特网连接。注意，这种情况下因特网服务与第 3层MPLS VPN捆绑在一起，作为一个服务包。

• 远程接入VPN：这是一种通过拨号、ISDN或DSL连接的内部网客户。注意，这种服务与内部网第 3层MPLS VPN捆绑在一起。

此外，TK还定义了几种VPN类别。这有助于确定客户的规模和范围。这些类别基于TK多年来收集的统计信息，如表4.1所示。

表4.1 IP VPN类别

4.4.1 多服务PE路由器基本工程指导方针

控制如何将VPN客户连接到第 3层MPLS VPN服务的工程指导方针与前一章中USCom采用的指导方针类似。然而，因为边缘路由器用于不同的服务，所以需要对这些基本指导方针进行补充，以维持可扩展性和安全性。

所有服务都从一个集中管理系统提供。TK还使用了许多默认模板，如前一章介绍那些。

TK为它所管理的每台客户CE路由器分配一个/32 IP地址，使得它可以从网络运营中心（Network Operations Center，NOC）访问和监视这些设备。这个地址来自TK分配的地址块。它使用唯一路由目标值，从客户VRF中导出，且只有管理VPN使用该地址。PE-CE链路地址来自TK注册的另一个公用地址块，且不会重分发到连接的客户IGP中。这样可以在每个PE-CE链路上使用相同的IP地址块，为TK节约了数千个IP地址。

4.4.2 客户VRF命名规则

与USCom设计不同，TK决定不使用客户名称的某种表示作为VRF名称。相反，它选择使用真实的客户名称（注意，在Cisco IOS中，名称的最大长度为32个字符）。对于给定客户，在所有连接该客户站点的PE路由器上，都使用相同的名称。TK选择这种方法是因为它认为这对于运营人员来说更直观，不需要名称表示与真实客户名称之间的交叉映射。这样在对连接问题进行排错时更加容易使用名称。

4.4.3 RT/RD分配方案

TK选择在路由区分标志/路由目标（route distinguisher/route target）格式中使用它的自主系统号（32764）；它还选择为每个VRF和每个PE路由器使用唯一的 RD（如前一章介绍）。这种方法将带来更多的内存消耗，但这是设计所必需的，因为TK有多种负载均衡需求。

路由目标范围32764:[1～100]保留用于特殊用途，如网络管理和未来的服务需求（目前未知）。其余的路由目标范围都可用于客户分配。默认情况下，对于每个客户，将为每个VPN分配一个唯一的RT。

4.4.4 网络管理VPN

管理VPN用于连接和管理CE路由器。管理VPN导入TK分配的全部相关CE路由器/32地址。为实现这一点，TK评估了几种不同的方案。

• 方案1：连接到全部网络管理设备所在LAN的PE路由器负责导入路由，这些路由承载相应于给定客户 VPN 导出路由目标值的路由目标值。连接远程站点的 mPE 路由器负责导入这样的路由：携带的路由目标值对应于管理VRF中配置的导出路由目标值。

• 方案2：连接到管理LAN的PE路由器配置单个导入/导出路由目标对，且每个客户VRF除其客户特定路由目标值外，也配置这个路由目标对。

• 方案3：使用唯一路由目标值通告CE路由器/32环回接口地址，只有管理VPN导入它。

TK 选择使用方案 3，它的额外开销最小，且提供了更好的网络管理系统（network management system，NMS）隔离，因为NMS只知道CE路由器地址。NMS可达性信息不会从CE路由器分发到客户IGP中，且客户路由对于NMS是未知的。程序清单4.1所示的模板将用于每个VRF。

程序清单4.1 网络管理VPN的PE路由器配置模板

该配置模板导致 CE 路由器地址与客户路由目标值以及网络管理路由目标32764:11一起被通告（这样可从VPN内部访问CE路由器地址，以便进行排错）。网络管理路由目标值取自 TK 保留的将被导入到网络管理 VPN 的路由目标范围。还添加了一条涉及路由目标值32764:10的额外导入语句，使得网络管理地址可导入到VRF中以进行双向连接。在CE路由器上，不会将该地址分发到客户IGP中。

4.4.5 负载均衡支持

对于在mPE路由器上提供的每个VRF，TK使用一个不同的RD值。因为TK使用VPNv4 RR，所以需要使用唯一的RD才能支持负载均衡功能。这样做的原因是，将RD和IPv4地址组合成一个VPNv4地址，且MP-BGP考虑在BGP最优路径计算中的相应匹配地址。例如，起源于 1级 POP Center-West中一台mPE路由器的VPNv4前缀 32764:101:10.1.1.1，将与起源于 1级POP South-East中一台 mPE 路由器的 VPNv4 前缀 32764:101:10.1.1.1 相对应。从而 1 级 POP Center中的RR将两次收到这个前缀，然后基于正常的BGP选择过程，选择一条最优路径，并将这条最优路径重新通告给其他mPE路由器。这样做的结果是损失一条到另一个POP中接收mPE路由器的路径，从而导致它不能执行任何类型的负载均衡。这个过程如图4.7所示。

图4.7 VPNv4路由反射器上的路径选择

在图4.7中，一个客户VPN网络连接到South-East-PE1和Center-West-PE1的mPE路由器。它用相同度量值向这两台mPE路由器通告10.1.1.1/32的可达性。mPE路由器Center-PE1只接收通过South-East-PE的路径，因而不能使用路径Center-West-PE1实现负载均衡。为修正这种情况，可在每台 mPE路由器上使用不同的RD（这也是TK选择的解决方案）。这样，如图4.8所示，两条路径都可以被Center-PE1 mPE路由器收到。

图4.8 使用不同的RD以支持负载均衡

通过RR获得到达mPE路由器的不同路由只是问题的一部分。为成功地在通过mPE路由器South-East-PE1和Center-West-PE1的两条路径上提供对目标地址为10.1.1.1数据流的负载均衡，TK选择使用iBGP多路径功能以确保mPE路由器使用多条路由。

1．VPNv4的iBGP多路径支持

常规 MP-BGP 操作只将一条最优路径加入到路由表中。不过可以使用maximum-paths number-of-paths命令修改这种行为，它最多允许 16条不同的路径。MP-BGP 使用最优路径算法，从可用路径中选择一条作为最优路径，然后将这条路径插入到路由表中。然而，因为可以使用 maximum-paths 命令，所以可以将额外的路径插入到路由表中。这样就可以使用所有这些条目基于源地址/目标地址对提供非相等开销的负载均衡。

TK根据给定客户需求限制最大路径数量，通常限制为两条。其原因是每一条额外路径都导致mPE路由器的额外内存和处理器开销，所以有必要严格控制。TK对负载均衡额外收费，因为TK认为它是一种超出MPLS VPN基本连接功能的额外服务。

2．VPNv4的eiBGP多路径支持

TK还提供eiBGP多路径服务。这种服务类似于iBGP多路径的功能。它部署在 TK 网络中，用于那些在核心中需要数据流负载均衡的多宿主站点。这种功能的重要不同是它可以在用于负载均衡目的的VRF中同时考虑内部MP-BGP和外部BGP路径。命令maximum-paths eibgp number-of-paths可基于用户启用该功能。

4.4.6 mPE路由器控制平面需求

TK采用与前一章相同的控制平面建议。这包括使用路径MTU发现（参阅[PMTU]），输入队列调整，以及选择性包丢弃（Selective Packet Discard，SPD）调整。此外，TK还选择单层次的集中路由反射设计。然而，如前面所述，IPv4和VPNv4反射是相互分开的。

VPNv4路由反射器的位置

TK使用其 6个 1级POP来放置VPNv4 RR。每个1级POP中有两个RR，且限制每个反射器上的MP-BGP对等会话数量为300。这一限制基于TK的内部测试。并不代表理论上RR可处理的最大对等会话数量。

1 级 POP 中的每台 mPE 路由器都有与本地 1 级 POP 中两个 RR 的冗余MP-BGP对等会话。2级POP中的mPE路由器有到两个不同1级POP的冗余RR连接。图4.9说明了1级POP中的RR连接。

在所有RR之间部署全互联MP-BGP对等关系网，如图4.10所示。

图4.9 VPNv4路由反射器连接

图4.10 VPNv4路由反射器之间的对等关系

4.4.7 PE-CE路由协议设计

TK 提供一种类似于前一章介绍的在PE-CE 链路上实现静态路由和 BGP-4的服务。然而，因为TK负责管理CE路由器，所以适合对大量单宿主客户站点使用静态路由。这些站点的唯一路由需要是通告其本地 LAN 子网。通常，在CE路由器上配置一条指向mPE路由器的默认路由，并在mPE路由器上的VRF中将LAN子网配置为一条静态路由。如果站点需要通告更多的子网，在本地通过另一家服务提供商获悉了一条默认路由或需要负载均衡支持，将选择使用BGP-4协议。

4.5 运营商的运营商服务

使用现有的第 3层MPLS VPN服务，TK吸引了许多不同类型的客户，他们有不同的特定需求。然而，有些客户需求不能很容易地使用 TK 现有的服务来满足，主要是如下两种需求：

• 层次式VPN。

• 有大量路由信息的大型客户。

支持这两种服务面临的最主要问题是可扩展性，尤其是它们对mPE路由器的内存需求。

层次式VPN让TK客户能够提供自己的第 3层MPLS VPN服务，同时使用基于TK骨干的VPN进行传输。它们还为客户提供自治权：根据意愿管理和修改VPN/VRF成员关系。图4.11说明了这种概念。

图4.11 层次VPN概念

另一个需要考虑的需求是有大量路由信息的大型客户。少数客户想在它们的第 3层MPLS VPN内部承载 5 000至 10 000条 IGP路由。尽管当前部署的硬件可以很容易在mPE路由器上处理这些路由，但是TK认为如果这种客户的数量不断增长，这种基本服务架构将不是最优的。由于这种需求和层次式VPN需求，TK决定采用运营商的运营商架构（在第1章简要介绍过）来满足这些客户的需求。

与标准第 3层MPLS VPN服务一样，TK将代表客户管理CSC-CE路由器。在路由协议过滤以及CSC-CE路由器与CSC-PE路由器之间链路上的QoS控制方面，这种方法有一些优点。

因为BGP-4是现有第 3层MPLS VPN服务上首选的PE-CE路由协议，所以TK决定继续对运营商的运营商服务使用这种协议，并采用[BGP+Label]提供的扩展。这些扩展使地MPLS标签能够沿BGP路由传输，因而没有必要再使用一种额外的标签分发协议，如[LDP]介绍的那种。鉴于在 PE-CE 链路上交换的下一跳路由器地址的数量，静态路由也被排除在外。

运营商的运营商架构的采用仅限于部分 mPE 路由器，这主要是因为[BGP+Label]技术在初始第3层MPLS VPN部署后才出现在路由器软件中，所以在边缘路由器上需要新软件。图4.12说明了本设计支持的基本运营商的运营商模型。

图4.12 运营商的运营商连接模型

4.5.1 运营商的运营商负载均衡支持

设计支持通过运营商的运营商服务传输的数据流负载均衡，但只在TK第3层MPLS VPN骨干内部（即在CSC-PE路由器之间）支持。这种功能是通过在CSC-PE路由器上使用iBGP多路径功能实现的，这时对于给定最终客户目标地址有多条路径可用。图4.13是一种可利用该功能的拓扑。

图4.13 运营商的运营商服务的BGP多路径

在这个例子中，在 TK 骨干的两台入口 CSC-PE 路由器（ CSC-PE2 和CSC-PE3）之间可以实现数据流负载均衡。与常规第 3层MPLS VPN服务一样，这是通过对CSC-PE2和CSC-PE3上同一个VRF使用不同RD来实现的。这两条路径由RR通告给CSC-PE1，因为在CSC-PE1上配置了iBGP多路径功能，所以它可以选择到下一跳地址29.1.1.1/32的多条路径。

在图4.13中，CSC-PE1收到包含MPLS标签的包，该标签指向的下一跳地址位于另一个客户站点。CSC-PE1 将这个标签交换为从 CSC-PE2 或 CSC-PE3收到的 29.1.1.1/32 VPN标签。然后压入TK骨干中使用的LDP标签，以便到达相应的CSC-PE路由器。通过对到来的MPLS包的IP源/目标地址执行散列函数，实现负载均衡。这个散列函数的结果决定了将选择哪个下一跳前往29.1.1.1/32。

可以使用配置模板来启用运营商的运营商服务，如程序清单4.2所示。

程序清单4.2 运营商的运营商配置模板

注意 如果同一个客户有多个站点连接到运营商的运营商服务，且它们使用相同的自主系统号（与常规第 3层MPLS VPN服务相同），则需要一条额外的命令。该命令将启用AS覆盖，使得CSC-mPE路由器用分配给TK的AS号代替客户AS号。该命令的语法为 neighbor CSC-CE-address as-override。

为限制CSC-CE路由器发送给CSC-PE路由器的路由数量，在客户IPG路由重分发到[BGP+Label]BGP的过程中将执行过滤。这种过滤措施确保只有客户PE 路由器的下一跳地址（如果使用层次性 VPN 服务）或客户对等路由器的下一跳地址（如果使用标准运营商的运营商服务）被通告给CSC-PE路由器。TK根据CSC客户提供的信息来配置这种过滤。

4.5.2 大型运营商的运营商客户连接范例

连接到TK运营商的运营商服务的最大客户是Kingland Technology，它有1 000个站点。其中 630个站点是远程办公室，它们通过 IGP（这里为EIGRP）连接到其最近的区域性站点。除远程站点外，Kingland Technology还有 350个区域性站点和20个核心站点。这些区域性站点通过2级POP连接到TK的运营商的运营商服务，核心站点连接到6个1级POP。远程站点直接连接到区域性站点或中央站点。远程站点中的路由器通过 EIGRP 协议将可达性信息通告给CSC-CE路由器。

每个TK 1级POP平均有三条来自Kingland Technology的连接。TK使用三台独立的mPE路由器为这些连接提供服务。2级POP平均有6个连接，TK使用两个独立的mPE路由器为它们服务。图4.14说明了这种连接模型。

图4.14 Kingland Technology到Telecom Kingland的连接

通过采用这种拓扑，Kingland Technology能够运行自己的内部路由，并将其站点之间的这种信息通告外包给 TK。为支持这种配置， TK 在 Kingland Technology的区域性站点和核心站点之间运行一个内部多跳BGP-4网。用于交换信息的RR放在Kingland Technology的核心站点中。每台CSC-CE路由器有到最近核心站点内RR的冗余会话。Kingland Technology共有 10 000条路由。然而，这些路由只有 370 个下一跳地址，因为远程站点可通过中央或区域性站点的CSC-CE路由器到达。通过在CSC-CE路由器之间运行多跳BGP-4协议，只需与TK的第3层MPLS VPN服务交换这370个CSC-CE路由器地址。Kingland Technology的 10 000条路由对于TK的MPC网络是不可见。

4.6 远程接入第3层MPLS VPN服务

可以采用许多种不同的方案将远程用户连接到第 3层MPLS VPN服务。[MPLS-VPN-Vol2]的第 2 章提供了大多数远程接入方案的技术和配置细节。本节不介绍这些细节，而只了解TK选择的设计方案。

对于第 3层MPLS VPN服务，当前部署的网络有 5 000多个远程接入用户，它们属于625个远程接入VPN，平均每个VPN有8个用户，这种远程接入解决方案产生的VPNv4路由总数大约为 5 000条。

TK提供三种主要的远程接入解决方案：

• 通过L2TP虚拟专用拨号网络（Virtual Private Dialup Network，VPDN）的拨号访问。

• 通过直接ISDN的拨号访问；

• 使用PPPoE或PPPoA和VPDN（L2TP）的DSL访问。

表4.2列出了使用各种远程服务的站点数量。

表4.2 MPLS VPN服务远程接入分类表

为支持第 3层MPLS VPN远程接入服务，TK在每个 1级和2级POP中采用一组独立的网络接入服务器（Network Access Server，NAS）设备，它们通过吉比特以太网连接到mPE路由器。为支持拨入访问服务，TK部署了12个L2TP网络服务器（L2TP network server，LNS），每个 1级POP中部署两个LNS，并将L2TP会话最大数量限制为每设备 1 000个。

4.6.1 L2TP VPDN拨号访问

为通过PSTN或ISDN提供拨号访问，TK选择使用1.2节介绍的VPDN设计。它使用一种隧道协议（如L2TP）将来自远程用户的拨号连接延伸到LNS，在这种环境中，LNS被称为虚拟本地网关（Virtual Home Gateway，VHG）。

TK支持的最大拨号速率对于 PSTN拨号为 56 kbit/s，对于 ISDN拨号为64 kbit/s和 128 kbit/s。

图4.15概述了VPDN概念。

图4.15 使用VPDN概念的拨号访问

通过采用这种架构，远程客户可以拨入到TK的任何 1/2级 POP NAS。通过RADIUS认证后，远程用户可以通过隧道连接到12个LNS之一，以访问它们的第 3层MPLS VPN环境。图 4.16说明TK选择的详细拓扑。

图4.16 使用VPDN的拨号访问：Telecom Kingland设计方案

4.6.2 直接 ISDN拨号访问

TK为一些客户提供了直接ISDN服务。这种服务是通过建立到mPE路由器的基群速率ISDN连接来部署的。TK当前有6条这样的连接，每个1级POP 1条。基群速率接口位于已有的mPE路由器上，如图4.17所示。

图4.17 到1级POP的直接ISDN连接

直接 ISDN访问不需要在远程客户端和TK mPE路由器之间使用任何隧道协议。相反，它通过 ISDN B信道建立一条PPP链路，直接连接到mPE路由器。mPE路由器使用CHAP协议获得远程客户端的证书；然后将证书转发给TK的RADIUS 服务器进行认证。成功认证后，RADIUS 服务器将为该客户端返回配置参数（如VRF名称、IP地址池等）。然后mPE路由器根据本地配置和RADIUS服务返回的信息，为PPP会话创建一个虚拟接入接口。至此，用户CHAP认证过程结束，远程用户被授予访问相关VPN的权限。

4.6.3 使用PPPoE或PPPoA和VPDN （L2TP）的DSL访问

通过使用L2TP VPDN架构端接DSL连接（而不是使用到mPE路由器的直接连接）向商业客户提供DSL访问。这为大规模DSL端接提供了基础设施，其接入速度最高可达 1.2 Mbit/s。图 4.18说明了DSL连接方案。

图4.18 使用PPPoE或PPPoA的DSL连接

如图4.18所示，远程接入客户端可以使用PPPoE（如果CPE作为网桥）或PPPoA（如果CPE作为路由器）来访问其第 3层MPLS VPN。使用了RFC 1482路由（PPPoA）和桥接（PPPoE）封装，并建立了一条从接收NAS/LAC到TK 1级POP中某个LNS的L2TP隧道。

4.7 mVPN服务的应用

TK的基本第 3层MPLS VPN服务只提供 IPV4单播连接性。在最初部署单播服务时，很少有对多播支持的需求。当时的需求通过在客户CE路由器之间部署点对点[GRE]隧道来满足。从长远考虑，TK认识到这种方法的可扩展性显然很差，主要原因是CE路由器上的包复制需求、核心缺乏包复制以及客户站点之间所需的IP隧道的管理和数量（包复制有更多优点，尤其是对于高速多播数据流源）。然而，这种方法提供的解决方案只适用于少数客户需要多播支持的情形。

随着时间的推移，TK的VPN客户请求更多的多播服务。因而TK选择在MPC 网络（而不是国际网络）的客户 VPN 内部部署多播服务。这种解决方案基于第1章介绍的mVPN模型。

4.7.1 多播地址分配

在VPN中支持多播并不意味着TK应通告那些用于IP多播的多播地址。由于这一原因，TK选择使用企业本地范围的多播地址块（参阅文档[local-scope]） 239.192.0.0/14 提供 mVPN 服务。这个地址块提供的可用地址范围是239.192.0.0～239.195.155.155，这些地址将用于多播域（默认 MDT）以及任何相关的数据MDT。

在最初的多播设计中，地址范围239.192.0.1～239.192.15.254保留用于默认MDT，最多可支持 4096 个 VPN。这在中短期内足够了，如果将来需要更多地址，可使用新的地址范围239.192.160.0/20。

地址块 239.192.32.0/20、239.192.48.0/20 和 239.192.64.0/20 保留用于数据MDT。表4.3总结了多播地址分配。

表4.3 多播地址分配方案

4.7.2 多播路由协议支持

设计方案选择的骨干多播路由协议是PIM-SM。PIM-SM用于所有P路由器之间的链路。如果mPE路由器提供多播服务（且该MPC内不是全部mPE路由器都提供多播服务），则其PE-P或PE-PE链路也将启用PIM-SM协议。在不提供多播服务的边缘设备上，不启用 PIM-SM 协议（所以在这些设备上也不能提供多播服务）。

PIM-SM协议用于多播VPN的默认MDT，默认MDT承载为给定多播VPN生成的任何多播控制数据流。然而，对于这些 VPN 创建的任何数据 MDT，将使用PIM-SSM协议。这为数据流提供了更优的路径，且不需要向会合点（RP） （而直接向组播源）注册/申请加入。

为减少网络边缘承载的状态数量，在所有mPE路由器上将默认SPT阈值设置为无穷大。SPT 阈值指定在什么情况下叶节点路由器应加入到指定组的最短路径源树。注意，在Cisco IOS中，其默认设置为 0，表示一旦从源收到第一个多播包，立即将向源发出加入请求。因为 PIM-SM 只用于默认 MDT，所以将SPT 阈值设置为无穷大可确保所有多播控制数据流都将通过会合点传输。其优点是可减少mPE路由器上{S，G}状态数量；缺点是使用了一条非最优路径，且需要一个交换/复制能力非常强的RP。

默认MDT的Group-to-RP映射将使用bootstrap路由器（BSR）功能来分发。它提供了一种自动分发多播组的机制，指出应加入到哪个RP。候选BSR（C-BSR）产生bootstrap消息，其中包括一个优先级字段，用于选择哪台C-BSR路由器成为赢得选举的C-BSR。

上面描述的全部功能如图4.19所示。程序清单4.3是这种设计的基本配置模板。

图4.19 骨干多播设计

程序清单4.3 PE路由器的mVPN配置模板

4.7.3 PIM-SM的会合点和BSR设计

因为在骨干中使用PIM-SM，所以会合点（rendezvous point）是必需的。这是因为默认情况下 PIM-SM 在一棵单向共享树上运行，该树的根就是会合点。有接收者要接收给定多播组的数据流时，末跳路由器将加入到该树中。因此，所有启用了多播 VPN 的 mPE 路由器通过向每个多播域的 RP 发送一个加入消息，加入到共享树中。

RP的位置通常依赖于多播接收者的位置、将通过该RP传输的总流量以及多播发送者的位置。因为TK只在多播VPN服务中对默认MDT使用PIM-SM协议，所以发送者和接收者的位置不那么重要，因为将使用PIM-SSM协议直接加入到任何数据MDT源中。因而，TK决定在6个1级POP中的4个中分别部署一个RP，且让它们都成为C-BSR。

因为每个1级POP同时有P路由器和mPE路由器，所以需要考虑其中哪些设备可以执行RP和BSR功能。首先考虑了mPE路由器，但因为它们已经为各种服务提供边缘功能，所以TK认为它们不能再承担额外的控制平面功能。P路由器也不可行，因为它们的主要用途是实现包交换，而不是控制平面操作（从而实现前面所说的无因特网核心设计）。因而，最终的设计决策是，采用独立的路由器作为RP/BSR，它们直接连接到核心P路由器，如图4.20所示。

4.7.4 在mVPN设计中使用数据MDT

在mVRF接口上收到多播包后，PE路由器的默认行为是使用默认MDT转发它。这意味着所有加入到默认树中的 PE 路由器都将收到多播数据流，而不管它们是否有接收者。在这种情况下，PE路由器可以简单地丢弃多播数据流，但显然这不是最优的方法。因而，mVPN架构允许基于客户创建数据MDT。根据预先确定的带宽限制创建数据MDT，数据MDT只从本地客户的多播源那里接受相应的流量。只有那些有相应多播组接收者的 PE 路由器才加入到数据MDT中。

TK 选择只对客户和骨干控制数据流（如客户加入消息）使用默认 MDT。因而，对于超过预定义阈值的多播数据流，将使用数据MDT（这个阈值被配置为 1 kbit/s，这将导致为客户mVPN中的每个多播源创建一个数据MDT）。程序清单4.4是被加入到程序清单4.3所示模板中的额外命令。

图4.20 会合点POP设计

程序清单4.4 数据MDT的mVPN配置模板

提供给mVPN的数据MDT的数量随客户而异。TK在mVRF配置中使用命令mdt log-reuse，使得每当数据MDT被重用时，它将收到一条系统日志消息。它还检查核心多播状态，防止将数据流发送给没有相应多播组接收者的mPE路由器。

TK选择将PIM-SSM协议而不是PIM-SM用于数据MDT，这让每台mPE路由器直接加入到给定客户多播组的源，而不是通过RP。

4.7.5 限制mPE路由器的多播路由状态

因为mPE路由器的内存是一种有限资源，所以TK决定限制mVRF允许的多播路由数量。多播路由被称为 mroute。它们将在转发路径中使用，且与客户多播域相关。

可以使用 ip multicast vrf vrfname route-limit命令来限制mroute。当达到配置的最大mroute阈值的60%时，TK将发出警告。根据客户的需求不同，最大mroute数量有所不同。但为便于管理，TK选择使用默认值300。随着对客户需求的深入了解，该公司以后可能修改这个值。

4.8 服务质量设计

作为第 3层MPLS VPN服务的一部分，TK在接入链路上支持三种用户可见的服务类别（classes of service，CoS）：

• VPN Real-Time；

• VPN Premium；

• VPN Standard。

每种服务类别都通过CE路由器和mPE路由器之间的接入链路上的一个独立队列来支持。TK 还在接入链路上支持第四个队列，用于一个用户不可见的CoS，该CoS处理CE路由器和mPE路由器之间的路由数据流。

对于因特网服务访问，它只支持一个CoS，等同于第 3层MPLS VPN服务的Standard CoS。

在网络核心，TK决定在一个队列中调度所有VPN数据流和因特网数据流，而不管其 CoS。采用这种方法的原因在 4.8.2 节详细介绍过（由于其DWDM基础设施，TK可以很容易提供额外带宽以保持较低的总负载）。这个队列称为默认队列（DF）。TK 使用一个专门为实时操作优化的队列，即快速转发（Expedited Forwarding，EF）队列，来传输语音数据流。TK还使用另一个队列（AF3），专门用于传输对网络操作非常重要的控制数据流，包括内部路由数据流（OSPF 和 MP-BGP 数据流）、有些管理数据流（如Telnet）、MPLS信令数据流（LDP、RSVP-TE）以及来自PSTN软交换机的语音信令数据流。

表4.4详细说明了每种数据流类型、DSCP值、接入链路上的队列、在核心中的EXP/DSCP值以及核心中队列之间的映射关系。

表4.4 类别、DSCP、EXP和队列之间的映射关系

例如，在CE路由器和mPE路由器之间的接入链路上，第 3层MPLS VPN服务中的VPN Real Time CoS将用DSCP 46标记。它在这些链路上使用队列EF，但在核心使用EXP5标记，并在DF队列中调度。

4.8.1 第3层MPLS VPN和因特网SLA

TK为所有第 3层MPLS VPN和因特网客户提供核心（POP到POP）QoS承诺。

在核心中，TK为第 3层MPLS VPN服务和因特网数据流的所有服务类别提供相同程度的承诺。这些承诺如表4.5所示。

表4.5 Telecom Kingland POP-to-POP SLA承诺

在接入链路上，客户可以决定每个 VPN 站点分配给 Real-Time CoS 和Premium CoS的接入带宽百分比。然而，TK仅在接入速度最少达到 256 kbit/s时才提供 Real-Time CoS，且将其最大接入速度限制为 33%。客户为每个 CoS选择一个百分比，这种比例用于接入链路的两个方向。

对于第 3层MPLS VPN服务的用户，TK提供了一个Web界面。他们可以直接配置或重新配置分配给Real-Time和 Premium CoS的百分比，以及用于确定数据流属于哪种CoS的分类准则。

TK在CE路由器上，对用户发送的VPN Real-Time和Premium CoS流量进行控制。超过指定百分比的VPN Real-Time CoS数据流将被丢弃，以防其他实时数据流延时或抖动。超过指定百分比的VPN Premium CoS数据流将被标记为“超出合同范围”。这样当AF2队列发生拥塞时，将选择性地丢弃它们，从而保护其他VPN Premium数据流不丢失。另外，如果将来TK在核心中引入了对VPN服务类别的区别处理，“超出合同范围”标记还可以用于在核心中选择性地丢弃VPN Premium数据流的超出部分。

因特网接入服务只支持一种CoS，它与第 3层MPLS VPN Standard CoS相同。对于因特网服务，总是给Standard CoS分配 100%的接入速度。

如第2章中的“边缘QoS工程”一节介绍的，在低速链路上，即使是很低的队列占用率也将对延时产生较大的影响。其后果差别很大，受很多参数的影响，如实际链路速度、最大包长、最大负载（与每个队列的服务速率相比）等。其中有些因素不受TK控制，因而TK不在接入链路上对第 3层 MPLS VPN和因特网提供标准SLA；相反，它负责在接入链路上为三种CoS配置区别服务机制，但由客户决定如何使用这些机制，以达到所需的QoS等级。

然而，如果某些客户请求，TK也可以在接入链路指定定制的SLA。例如，表4.6是TK在这种定制SLA中提供的针对于每种CoS的承诺。这种定制SLA建立在许多假设条件之上，包括实时队列中最大包长为 66字节、Real-Time CoS链路速度限制为33%、Premium数据流的最大负载为50%、在低速链路和短距离接入链路上使用分段和交错访问（使接入链路上的传播延时可忽略不计）。为确定这些延时数字，TK首先模拟计算在这些假设条件下完美排队系统的99.9%延时。然后 TK 考虑实际实现与这种完美排队系统之间的差异，例如传输缓冲区的影响（在Cisco设备上称为传输环）。这些将在后面的“第 3层MPLS VPN和因特网边缘网络上的QoS设计”一节进一步讨论。

表4.6 定制的接入链路SLA

4.8.2 核心网络中的QoS设计

如前面所述，TK 选择在核心网络中分别处理语音数据流、因特网/第 3 层MPLS VPN数据流和控制数据流。这让TK能够将这三种类型的数据流分离，并采取不同的容量规划策略和QoS机制。

对于语音传输数据流，TK要提供最优的延时和抖动，即使是在失效情况下，包括灾难性失效情况，如多处同时失效或整个 POP 失效。为此，TK 组合使用如下机制。

• 对EF队列使用绝对优先排队，以在短时间内获得最优延时和抖动。

• 使用 MPLS 流量工程在隧道上传输语音数据流，这些隧道基于约束路由，并通过配置限制语音数据流负载在任何链路上都低于40%。TK认为这个值足够低，能够使通过 MPC 的数据流延时、抖动和丢包率达到所需的语音数据流传输要求。

• 将语音数据流的容量规划分开，确保链路容量达到如下水平：

——在没有发生失效的情况下，所有承载语音数据流的隧道都采用最短路径。语音数据流负载低于链路容量的20%；

——在发生失效的情况下，包括灾难性失效，所有隧道都应自动调整（采用的路径可能是也可能不是最短路径），同时满足负载在链路容量40%以下的约束条件。

关于语音数据流的MPLS流量工程设计的详细内容，将在4.9节介绍。

对于因特网和第 3层MPLS VPN数据流，TK可以根据需要激活其DWDM基础设施中的额外波长，相对容易和便宜地在核心提供额外的容量。另外，其QoS需求没有语音数据流那样高。鉴于这些原因，TK选择只依赖于容量规划为这种数据流实现适当的 QoS。最后，将实现一种容量规划策略，在满足如下条件之一时提供额外容量。

• 在没有发生失效的情况下，所有数据流的总负载（不仅包括第3层VPN和因特网数据流，而且包括语音数据流）达到链路容量的45%。这是通过监视接口计数器确定的。

• 单个链路、SRLG或节点发生失效时，所有数据流的总负载达到链路容量的85%。它由一个中央模拟工具确定，该工具收集当前网络拓扑和流量矩阵信息，并评估失效情况下所有链路上的理论负载。

2.1.6节讨论了在大时间尺度上，最大利用率和实际QoS水平之间的关系。基于这种方法，TK决定采用这样一种容量规划策略：确保在正常情况下和预期失效情况下，能够满足前面指定的第 3层MPLS VPN和因特网 POP-to-POP SLA。

注意 语音数据流容量规划中考虑的某些灾难性失效情况，在第 3层MPLS VPN和因特网数据流的容量规划中并没有考虑到。这是因为第 3层MPLS VPN和因特网数据流在发生这种不太可能的事件时，还能够容忍一定的质量降低。因此，为保护这些不太可能发生的事件而提供额外的链路容量是不合理的。相反，TK认为语音数据流在发生这种不太可能的事件时也应该地到保护，因而提供额外的容量是合理的。这是因为总语音负载只占全部负载的一小部分，且MPLS TE使得在这种失效情况下可以使用非最短路径上的资源。另外，它导致的额外容量在没有发生这种失效的情况下可以被其他数据流使用。

对于控制数据流，TK分配2%的链路容量给相应队列。在没有发生失效的情况下以及在发生预期失效情况下，控制数据流可以在默认队列中得到适当的处理，因为容量规划的目标是总负载低于 85%。但在发生灾难性失效情况或同时有多种因素组合违反了容量规划规则时（如非预期因特网/VPN流量增长，同时发生失效），链路可能进入拥塞状态。在这种情况下为控制数据流使用一个单独的队列，可使控制数据流（包括路由和语音信令）不受总体拥塞的影响。这可以同时保护MPC和语音数据流的稳定性。

对于2.1.6节介绍的QoS模型，TK采用4/3/1模型，因为它在接入链路上部署4个队列，在核心部署3个队列，并使用单个CT的流量工程（TE）。也就是说，TK使用常规的MPLS流量工程，但没有使用支持区别服务的MPLS流量工程。

图4.21显示了TK应用各种QoS服务策略的接口。具体地说，它表明TK应用一种核心入口策略，在所有P路由器接口和mPE路由器上面向核心的接口上反映了前面介绍的核心QoS设计。

图4.21 Telecom Kingland服务的QoS策略

程序清单4.5详细说明了SMT-16核心链路上的这种核心入口策略。

程序清单4.5 STM-16链路上的核心QoS入口服务策略

根据表4.4列出的QoS映射，将语音数据流的EXP值设置为4。使用区分服务EF PHB以绝对优先排队方式对其进行调度。如前面指出的，MPLS流量工程用来确保语音数据流的负载保持在链路容量的 40%以下，即使是在发生失效情况下。这样，TK并不绝对需要使所有数据流进入EF队列。该公司决定激活一个具有如下特征的策略控制器。

• 它是一个条件策略控制器。这意味着仅当链路发生拥塞时该策略才有效（也就是说，所有CoS的流量之和超过了链路速度，网络包在链路上传输前需要保存在缓冲区中）。

• 它配置为一个较宽的限制，即链路容量的55%，在预期最大负载40%的基础上留出较大的空间。这让TK能够在失效发生较短一段时间内处理语音数据流的暂时波动情况。在这段时间内，承载语音数据流的MPLS TE主隧道被快速重路由到备用隧道上，且这些主隧道路径没有重优化。关于这种负载波动及其持续时间的详细介绍，请参阅4.10.2节。

正如读者看到的，TK在正常情况和失效情况下都不会对语音数据流进行控制。这些策略只作为一种安全措施来配置，以确保语音数据流不会占用全部链路带宽，即使发生完全未预期到的多种事件组合，从而为其他数据流留下一定带宽（包括控制数据流），避免网络崩溃。

控制数据流按如下方式进行分类：

• DSCP值 48（对应于优先级 6），因为Cisco路由器在生成路由包（OSPF、BGP）以及其他基本控制数据流（LDP、RSVP-TE、Telnet）时自动将DSCP设置为该值；

• EXP值 6，用于在核心网络上路由用MPLS封装的包，如MP-BGP包；

• EXP值 3，用于语音信令数据流（SS7）。

TK为控制数据流分配 2%的总链路带宽，即 50 Mbit/s。

承载其他数据流的 DF 队列将分配得到剩余的所有带宽，即链路带宽的43%。如前面所述，TK通过容量规划确保所有数据流的总负载保持在85%以下，这是TK为因特网和第 3层MPLS VPN数据流提供POP-to-POP SLA承诺所必需的。作为一种安全措施来防止在特殊情况下（如发生多点失效以及意外的流量增长）DF队列占满，TK在DF队列中激活了随机早期检测（Random Early Detection，RED）（参阅文档[RED]）。这有助于在这些特殊情况下平滑地调整TCP 数据流负载（在 DF 队队列中，它们占统治地位）以适应可用带宽容量。它还将DF队列中的延时保持在一个合理水平，并避免TCP流的全局同步。

RED维持一个动态平均队列占用率。它还定义了一个最小阈值、一个最大阈值和一个最大概率分母，它们一起用于控制包的随机丢弃。TK遵循推荐的高速链路RED参数微调方案。这些推荐设置确保较高的链路利用率，同时使队列占用率最小，并避免TCP流的全局性同步。它们导致TK最终采用如图4.22所示的RED丢弃曲线。

图4.22 核心中DF队列的RED丢弃曲线

在Cisco路由器上，动态平均值按如下方式计算：

平均值 =（原来的平均值×（1−2 −n ））+ 当前队列长度×2 −n ）

其中 n 是一个指数权重常数，控制移动平均值跟踪当前队列长度的快慢。平均队列长度的目标是过滤掉队列占用率的短期波动（从而避免由于短时间内的突发数据流导致剧烈波动）。同时它能够对相对长期的显著队列变化迅速做出反应，以足够早地触发随机丢弃。

如果 n 太高，则当前队列长度发生变化后，平均队列占用率变化缓慢。在数据流负载增加的情况下，可能导致队列填满，在激活随机丢弃前发生尾丢弃。类似地，当数据流负载减少时，可能导致队列很久没有拥塞后还发生不必要的随机丢弃。

反之如果n太低，则平均队列占用率对于当前队列长度可能反应非常迅速。这可能导致过度的RED反应和频繁发生不必要的数据流丢弃。

TK按如下方式配置n：

其中B = 队列带宽/（MTU×8），MTU = 1 500字节。

对于DF队列，分配 43%的链路带宽。因此，在STM-16链路上，B＝89 583个包。因而，TK将STM-16链路上的DF队列的指数加权常数配置为13。

最小阈值应足够高，使链路利用率最大化；同时它还应足够低，使随机丢弃尽可能早发生，以便需要时减慢某些TCP源。如果它设置过低，将不必要地丢弃某些包，使得数据流不能充分利用链路容量；如果它设置过高，将在发生随机丢弃以减慢某些源前，队列可能就已填满。

最小阈值和最大阈值的差需要足够大，以便随机丢弃行为能够避免全局性TCP 源同步。但如果最大阈值过高，随机丢弃可能不会减慢足够多的源而导致队列被填满。

最大概率分母控制丢弃包的比例。丢弃概率从0（不丢弃，平均队列占用率等于最小阈值）开始线性增长，最大值为1除以“最大概率分母”（每传输“最大概率分母”个包丢弃1个包），这时平均队列占用率等于最大阈值。

TK选择使用如下设置：

• 最小和最大阈值分别设置为管道尺寸的15%和100%，其中管道尺寸＝RTT×队列带宽/（MTU×8）；

• 最大概率分母设置为1。

因而，在STM-16链路上，假定RTT为100毫秒，对于DF队列，TK采用最小阈值 1 344，最大阈值 8 958。

注意 RED和加权随机早期检测（Weighted Random Early Detection，WRED）的运行情况取决于许多参数，如TCP和非TCP流量之和、数据流的RTT以及每个流对于数据流丢弃的反应。因而，对它们进行微调是一项困难的任务，这取决于实际环境。所以，TK在其网络中监视RED/WRED的运行情况，并评估是否需要进行参数调整以获得最优性能。

最后，TK决定限制这三个队列的瞬时队列长度。当队列长度达到这个限制时，所有后续的包都会被丢弃。这可以确保缓冲区不会被收到非预期超额流量的队列长时间占用，从而避免线路卡的缓冲区为空以及保护其他队列和接口。最后，它还对通过该跳的延时和抖动设置硬约束。

对于EF队列，将根据通过该跳的最坏延时（实时数据流为3毫秒）配置队列限制。在55%的带宽可被EF队列使用的STM-16链路上，假定包长为126字节（因为TK使用取样间隔为10毫秒的G.711编码解码器，这意味着80字节的净负载加上40字节的IP/UDP/RTP包头以及6字节的PPP包头），这意味着EF队列限制为 4 092个包。对于控制数据流队列，队列限制设置成最多缓冲 100 ms的流量。在STM-16链路上，其中2%的带宽分配给该队列，该限制为417个包（假定包长为1 500字节）。因为随机早期检测用于DF队列内部，所以一旦动态平均队列大小到达最大阈值，所有包都会被丢弃。然而，由于瞬时队列长度与其动态平均值之间存在滞后，所以有可能在随机丢弃生效前，瞬时队列长度可能超过最大阈值。为限制瞬时队列长度，同时不干扰随机早期检测，TK将该队列限制配置为最大阈值的2倍。

TK网络中的有些路由器采用分布式架构。这些路由器包含多个线路卡，线路卡支持各种接口，在路由器内部通过内部交换光纤相连。在给定线路卡收到的网络包如果需要转发到另一个线路卡的某个接口，将通过内部交换光纤进行传输。TK路由器上的交换光纤是非阻塞式的，所以其持续吞吐量高于所有接口的总吞吐量。因而，在需要通过光纤发送网络包的入口线路卡之间，不持续争用交换光纤。然而，因为在多个线路卡可能同时发生数据流突发或DoS攻击，所以入口线路卡上的网络包可能需要缓冲一段时间后才能通过光纤传输。因而，为确保尽可能高的QoS，TK还在入口线路卡上部署了一种QoS策略，处理进入交换光纤前的缓冲。在TK使用的Cisco路由器上，这种机制称为激活“To-Fab”QoS策略。TK部署的To-Fab QoS策略与前面所讨论的入口QoS策略非常类似，它确保语音数据流绝对优先地得到处理，同时将一部分带宽分配给控制数据流。注意，该策略将应用于每个入口线路卡的每个虚拟输出队列。

注意 假定入口线路卡只维护单个队列，用于传输前往所有出口线路卡的所有数据流，以防需要保存前往出口线路卡的数据流（例如，这种情况可能因为入口线路卡用完了其光纤带宽份额）。在这种情况下，所有后续数据流都将被存储，即使其目的地是有权使用光纤带宽的其他出口线路卡。这种情况称为head-of-line blocking（队首阻塞）。为防止队首阻塞并避免浪费光纤带宽，对于TK使用的Cisco路由器的每个入口线路卡上，为前往每个出口线路卡的数据流建立一个虚拟队列。To-Fab QoS策略被应用于所有这些虚拟输出队列。

图4.23说明了用于交换光纤的虚拟输出队列。它说明了TK在采用分布式架构的路由器的什么地方应用To-Fab QoS策略。该图还表明，在出站接口上应用了核心出口QoS策略。

图4.23 用于虚拟输出队列的To-Fab QoS策略

保证语音数据流的质量是TK部署的核心QoS设计的首要目标。这一目标导致 TK 决定在核心中将语音数据流的处理完全与其他数据流分开。然而，更关键的语音应用和服务作为本征 VoIP 服务提供。另外，MPC 链路容量在不断增长，以处理语音数据流增长快得多的数据。最后，4类交换机替换项目表明， MPC能够可靠地满足语音业务的高QoS需求。鉴于这些原因，TK开始调查QoS核心设计的可能发展方向。这包括将Real-Time CoS与语音数据流一起处理，使其能够享受到与语音数据流相同的完美服务质量。还可能包括在核心将premium数据流与 standard VPN 和因特网数据流分开处理。在这种情况下，通过使用WRED，让合约内的premium数据流比非合约为premium数据流优先得到处理。

4.8.3 第3层MPLS VPN和因特网的网络边缘QoS设计

如图4.21所示，实施边缘QoS设计涉及在不同位置应用不同的QoS服务策略：

• CE出口QoS策略：负责执行详细的数据流分类（包括客户分类），标记TK DSCP值，测量并控制每种CoS的合约速率，并对每种CoS实施PHB以管理CE路由器到mPE路由器的链路带宽。

• PE入口QoS策略：负责将DSCP值映射到EXP值，以控制数据流类别到核心队列的映射。

• PE出口QoS策略：负责测量并控制合约速率，并对每种访问CoS实施PHB以管理mPE路由器到CE路由器的链路带宽。

1．CE路由器出口策略

考虑一个通过帧中继以速度 256 kbit/s接入的VPN站点。用户请求将接入带宽的 33%分配给Real-Time CoS（以容纳三个使用G.729且包化时间为 20 ms的并发语音呼叫，每个需要 26.4 kbit/s）。用户还想将 50%的带宽分配给Premium CoS。图4.24说明了物理接口带宽、总接入速率以及为每种CoS保证提供的最小带宽之间的层次关系。

注意 TK分配给Routing CoS的带宽百分比取决于接入速度以及在该接入链路上动态通告的前缀数量是小、中或大。TK预先为每种组合计算一个值，确保通告所有前缀的预期时间为几秒。

程序清单4.6是相应的CE出口QoS策略模板。后面将解释该模板的每项内容。

图4.24 带宽承诺的层次关系

程序清单4.6 有三个CoS的VPN站点的CE出口QoS服务策略模板

（待续）

该CE出口策略的功能组件及其排列顺序如图4.25所示。

图4.25 CE出口策略的功能组件

第一个组件是分类器，它指定哪些包属于哪些CoS。从程序清单4.6可知：

• 实时数据流必须根据预标记的DSCP值46（EF）和40（优先级5）来分类。

• Premium数据流必须根据预标记的DSCP值 24（优先级3）和目标地址10.10.20.1来分类。

路由数据流则通过匹配标识BGP协议的TCP端口号来分类。

下一个组件是基于CoS的策略，它由每种CoS的策略控制、标记和调度组成。TK 按合约速率而不是策略控制（它只在发生拥塞时才丢弃数据流）实施Real-Time 类别的系统性策略控制。这提供了一种最终用户高度认可的服务。Real-Time 类别可能总是承载给定数量的语音呼叫（不会更多）。这与根据其他类别的情况确定可承载语音呼叫数量的服务正好相反。那种方法适合使用条件性策略控制。在程序清单 4.6中，在 real-time policer中配置的突发容许值为 20 ms，这个值足够大，能够适应三个目标并发呼叫同时发生1个突发包的情况。（G.729 20 ms呼叫的包长为 66字节，所以最大突发值可达到 66×3 = 198字节，对应于 256 kbit/s链路速度的 33%，它位于 20 ms范围内。

至于调度，VPN Real-Time CoS绝对优先于任何其他数据流，以实现最优延时和抖动。VPN Premium CoS和Routing CoS的队列分别得到最小 50%和 4%的带宽保证。Standard CoS分配得到其余的带宽。注意，这些带宽是在多个队列存在冲突的情况下，每个队列的最小带宽保证。如果某些队列没有使用其最小带宽保证，则其他队列也可以使用剩余的带宽，从而使用到比其最小保证更多的带宽。在VPN Premium队列采用WRED，以避免TCP流的全局同步，在Premium队列发生拥塞时选择性地丢弃一些非合约数据流。对于应用于合约数据流的WRED微调，TK遵循为低速链路优化RED操作的规则（与接入链路发生的情况相同）：

• 指数加权常数 n为：2 −n =1/B，其中B＝带宽/（MTU×8），MTU＝1500字节；

• 最小阈值和最大阈值分别等于B的100%和300%；

• 最大丢弃概率设置为1。

如果接入速率为 256 kbit/s，且分配 50%带宽给Premium队列，则B=11， n=3，最小阈值等于11，最大阈值等于33。

对于应用于非合约数据流的WRED，TK采用更为激进的最小和最大阈值，分别为B的30%和100%（因而分别为4和11）。

Premium队列的WRED丢弃曲线如图4.26所示。

图4.26 接入链路上Premium队列中的WRED丢弃曲线

因为这个客户的帧中继接入速率（CIR）为 256 kbit/s，所以CE路由器配置成以相应的速率进行帧中继流量整形。前面介绍的基于CoS的策略将应用于被帧中继流量整形缓存的包。如图4.25所示，TK利用Cisco路由器上的帧中继流量整形（FRTS）优化实现。这可确保来自绝对优先队列的实时网络包绕过帧中继流量整形器，从而避免整形引入的延时和抖动。

在低速链路上，长包的序列化时间相当可观。例如，在 512 kbit/s链路上，传输一个1500字节的包需要23毫秒。因而，如果在开始这种长包的传输后，调度器立即选择传输一个实时包，则该语音包将需要23毫秒的序列化时间。因为这可能导致违反Real-Time CoS的承诺，所以TK决定在接入链路上采用分段和交叉访问机制。这些机制将长包分段，并允许在长包的各个分段之间交叉传输实时包。对于帧中继接入链路，实际使用的机制是FRF.12帧中继分段（参阅文档[FRF.12]）；对于PPP接入链路，实际使用的机制是内嵌在多链路PPP中的分段机制（但在单链路上使用，参阅文档[MLPPP]）。在程序清单 4.6 中，采用320字节的分段长度（在 512 kbit/s接口上，相当于 5毫秒时间）激活 FRF.12分段。注意，对于帧中继，对计算包的序列化时间有意义的速率是低层物理接口的实际速率（而不是PVC CIR），因为该速率决定了序列化时间。尽管进一步减小分段将相应地进一步减少语音数据流的延时和抖动，但也将以相同比例增加处理时间，因此需要在两者之间进行折衷。这就是为什么 TK 对于这种情况选择320字节分段的原因。

由于实现的原因，在路由器调度程序选择要在线路上传输的下一个包后，该包将通过一个小缓冲区，传递给成帧和传输逻辑以进行实际的传输。该缓冲区的任务是确保为实际的传输逻辑供应不中断的传输包流（假定确实有包需要传输）。因而，不会因为访问包浪费传输周期，从而实现线速传输。在Cisco路由器上，该缓冲区称为“传输环（transmit ring，缩写为 Tx-ring）。因为这个缓冲区是一个纯粹的先进先出（FIFO）缓冲区，所以调度程序选择的实时包，必须等到 Tx-ring 缓冲区中已有包传输完成后才能得到传输。因而，Tx-ring 实质上增加了额外的延时和抖动，它等于清除全部Tx-ring缓冲区所需的时间。尽管Cisco路由器根据接口速度自动调整Tx-ring缓冲区的大小，但运营商在需要时还可以进一步微调。减少它的大小将可以减少 Tx-ring 缓冲区引入的延时和抖动。然而，Cisco推荐仅当必要时才减少Tx-ring大小，以满足特定的延时/抖动需求。Cisco还推荐永远不要将它减到少于两个包；否则路由器将不能达到线速传输的效果。如程序清单4.6所示，TK选择将它重新配置为两个包。因为还使用了分段并限制分段长度为 320字节（在 512 kbit/s接口速度上，它相当于 5毫秒），所以Tx-ring现在最多引入 10 ms的延时和抖动。

如后面 4.8.6节将介绍的，TK使用Cisco SAA活动测量来监测每种CoS在接入链路上的实际QoS。这涉及在POP中一个面向CE路由器的SAA影子路由器上生成数据流样本，然后CE路由器将这些数据流样本发送回SAA影子路由器。为对每种CoS进行测量，需要用相应的DSCP标记分别为每种CoS生成的样本。为保证这些样本与实时数据流和合约Premium数据流享受到相同的QoS， TK需要确保这些样本数据流不会被 Real-Time CoS Policer丢弃或由 Premium policer标记为非合约数据流。由于这一原因，TK使用层次性策略，其中父策略用于调度给定CoS的所有数据流，而子策略只用于非SAA数据流。层次性策略非常适合于这种类型的应用，因为它们允许服务策略应用于其本身又是更高层策略一部分的类别。实质上，这相当于允许定义嵌套策略。

2．mPE路由器入口策略

因为TK管理CE路由器，从而信任它们能够执行正确的分类、标记、策略控制，所以mPE路由器不需要在连接CE路由器的输入接口上执行这些功能。

Cisco PE路由器的默认行为是，对于从CE路由器那里收到的包，将 IP头的3位优先级字段复制到压入的MPLS标签栈的3位EXP字段中。因为这种默认操作达到了TK所想的EXP值映射效果（如表4.4所示），所以TK不需要在mPE路由器上激活任何DSCP-to-EXP映射功能。实际上，DSCP值和EXP值都是由TK选择的。总之，这意味着在mPE路由器上连接VPN站点或因特网站点的接口，不需要为QoS目的而配置输入策略。这是一个非常大的优点。可以在管理CE路由器的情况下实现它，因为如果考虑到mPE路由器支持的CE路由器数量，mPE路由器上的服务策略和相应QoS操作的数量可能非常大。

然而，TK在许多情况下应用输入策略。首先，在每个支持因特网对等连接的接口上，TK激活一条输入策略，将收到的所有包的DSCP重新标记为0，以确保从因特网收到的数据流在网络中能够得到适当的处理。另外，在有些情况下，使用了不能执行策略控制的低成本CE路由器，因此TK在mPE路由器上激活一条输入策略，在其上执行策略控制功能并控制VPN语音和VPN Premium CoS的合约速率。最后，在TK的网络中，将最新的平台用作mPE路由器。它们可以对所有连接客户的接口应用总输入控制功能，而不会影响到性能。因而， TK正在考虑将这种执行基于CoS的控制和验证DSCP标记的输入策略用作安全措施。这可保护TK的网络不受CE路由器损坏或更换的影响。

假设在将来TK决定在核心对Premium VPN CoS提供区别服务，并想在发生拥塞的情况下丢弃非合约Premium数据流以保护合约Premium数据流。这时在核心将需要使用不同的EXP值。在这种情况下，TK需要在mPE路由器上激活一条输入服务策略，以支持第 3层MPLS VPN客户。它将合约DSCP值 18 （AF21）和非合约DSCP值20（AF22）映射到两个不同的EXP值，因为当前的默认映射将它们都映射到相同的EXP值2。另一种方法是为合约内和非合约数据流选择其他DSCP值。这些值默认自动映射到不同的EXP值（例如，DSCP 16和DSCP 8，默认情况下它们分别映射到EXP 2和EXP 1）。后一种方法具有不需要在mPE路由器上执行任何标记操作的优点。

现在假设在将来TK将其服务扩展到第3层MPLS VPN和因特网接入的非管理服务，因而TK不能管理CE路由器。这时在mPE路由器上需要部署执行策略控制和重标记的输入策略以支持这种客户。关于非管理因特网和第 3 层MPLS VPN服务的输入策略示例，请参阅第 5.9.5节。

3．mPE路由器出口策略

TK在mPE路由器应用一条出口QoS策略，以管理面向CE路由器的链路。该策略与CE路由器出口QoS策略非常类似，主要差别是它可以直接根据DSCP值分类，因为所有数据流都已经由入口CE路由器进行了分类和标记。

4.8.4 语音中继的网络边缘QoS设计

TK使用的语音软交换机被配置成将VoIP中继网关生成的媒体流（承载包化语音的网络包）全部用DSCP值32标记。在骨干上传输的语音信令数据流用DSCP值24标记。

4.8.5 第3层MPLS VPN CsC的网络边缘QoS设计

TK支持三种用户可见的CoS（Real-Time、Premium和Standard）以及Routing CoS来管理运营商的运营商（CsC）接入链路（CSC-mPE路由器和CSC-CE路由器之间的链路）上可能发生的拥塞。在核心，CsC 数据流的处理方式与其他VPN数据流完全相同，且获得相同的SLA承诺。

因为TK管理CSC-CE路由器，所以它在前往CSC-mPE路由器的链路上实现了一项出口服务策略。它类似于应用于常规VPN CE路由器的服务策略，但进行了一些调整以处理所有最终用户数据流在CSC-CE路由器与CSC-mPE路由器之间的标签交换（而不是IP路由）。

• 在CSC-CE路由器加入标签（对于层次性VPN，为交换标签）后，根据MPLS标签栈最顶层条目中的 EXP值执行 Real-Time CoS和 Premium CoS分类。Real-time数据流由EXP值5标识，而Premium数据流由EXP值3标识。

• 在CSC-CE路由器上对Real-time 数据流执行了控制（丢弃超过的数据流），但对于Premium数据流没有执行控制。TK当前使用一个EXP值（2）来表示MPC中的Premium数据流，而没有定义EXP值来标识合约外的Premium数据流。如果未来TK要增强QoS设计，支持对MPC中合约内和合约外Premium数据流的差别处理，可再定义一个EXP值，用于CSC-CE路由器的策略控制以标识合约外数据流。

• 不支持客户特定分类。用适当的标记确保包正确达到CSC-CE路由器是最终客户的责任。因为TK依靠CSC-CE路由器上的默认EXP标记行为，所以这意味着Real-Time数据流到达时，其DSCP值的3个优先级位设置为5（对于层次性VPN，要求EXP值为5）。另外，Premium包到达时其 DSCP 值的 3 个优先级位必须设置为 2（对于层次性 VPN，要求EXP值为2）。

• CSC-CE路由器和CSC-mPE路由器之间的BGP路由数据流通过与常规VPN CE路由器相同的 IP访问列表来分类，因为在CSC-CE路由器和CSC-mPE路由器之间交换的BGP数据流没有使用MPLS进行封装。

• 其他数据流的EXP被重新标记为0。

图 4.27说明了应用CsC服务策略以及标记属于Real-Time CoS类别的包的DSCP和EXP字段的位置。

与常规第3层VPN服务一样，TK实际上不需要在CSC-mPE路由器上激活任何输入QoS服务策略，因为：

• TK管理CSC-CE路由器，因而可以信任它做的标记；

• 对于向核心传输的包，CSC-mPE 路由器的默认行为将生成正确的 EXP标记（因为它从进入的标签栈最顶部条目中复制 EXP 值到交换的标签条目和压入的标签条目中）。

同样，因为所有最终用户数据流都进行MPLS封装，所以在mPE路由器上，应用于前往CE路由器的链路的入口服务策略与CsC服务相关。该策略是前面介绍的在CSC-CE路由器上应用的出口QoS策略的镜像。

图4.27 CsC QoS服务策略

4.8.6 SLA监测和报表

TK使用Cisco的Service Assurance Agent（服务保证代理，SAA）执行主动测量，得到实际的性能统计，并根据SLA性能承诺将报表提供给第3层MPLS VPN和因特网用户。

注意 Cisco SAA是一个嵌入在Cisco ISO中的性能监视代理，可以执行主动测量。这意味着它将生成合成网络包，模拟不同类型的网络包（例如，标记为属于Real-Time CoS的短语音包，或标记为属于Premium CoS的长语音包）。它还测量这些包在网络上（从一个SAA代理到另一个SAA代理）传输时的性能指标，如延时、抖动和丢包率。路由器可以作为 SAA 生成器，也可以作为 SAA 应答器，后者只响应生成器发送的SAA探测包。SAA代理可以生成探测包，并定期执行相应的测量。测量结果可以通过命令行界面（CLI）或SNMP来收集。SAA代理还可以在测量到超过配置阈值的性能水平时，异步地生成相应的事件。

如图4.28所示，在每一个POP中部署了SAA影子路由器，并在CE路由器上激活了SAA应答器功能。

图4.28 Telecom Kingland SLA测量

每个SAA影子路由器以2分钟的间隔，在它自己和其他每个SAA影子路由器之间执行动态测量。相应的数据流样本的DSCP值为0，它们被映射到EXP 0，从而在核心将被当作第 3层MPLS VPN和因特网数据流处理。这些测量结果将用于计算往返时间、抖动和丢包率的POP-to-POP矩阵。

SAA影子路由器还以5分钟的间隔在它们自己和CE路由器之间执行动态测量。它将分别为每个用户可见的CoS分别执行测量，分别使用DSCP值46、18和0，包长分别为64字节、128字节和128字节。这些测量结果将用于计算给定站点的单向延时（将往返时间除以2）和丢包率。

实际性能值按如下方式计算：

• 在每个测量间隔时间内生成10个样本包；

• 对给定样本的所有测量结果进行平均，得到一个“样本值”；

• 每小时对样本值进行平均，得到一个“小时值”；

• 一天中最差的小时值将作为“每天最差值”保留；

• 一个月中对每天最差值进行平均，得到“月均值”。

根据这些计算值，TK通过Web界面向客户提供许多SLA报表，包括：

• 实时 POP-to-POP 报表：提供当前小时的往返时间、抖动和丢包率POP-to-POP矩阵。

• 实时站点报表：提供给定VPN站点的每个CoS类别的单向延时和丢包率的小时最差值。

• POP-to-POP月报表：提供往返时间、抖动和丢包率月均值的POP-to-POP矩阵，以便与VPN和因特网SLA中承诺的POP无关值相比较。

• 站点月报表：提供给定VPN站点的每个CoS类别的单向延时和丢包率的月均值，还有该月每个方向上传输的字节和包数量以及站点可用性。

为控制语音数据流的端到端服务质量，TK还执行从VoIP网关到VoIP网关的延时、抖动和丢包率的端到端主动测量。

RTP控制协议（RTP Control Protocol，RTCP，参阅文档[RTP]）让TK可以通过在语音呼叫期间执行某些统计指标（丢包率、抖动）的动态测量，来监测Real-Time协议（RTP，参阅文档[RTP]）上语音媒体流的服务质量。这些统计信息由TK网络中的语音VoIP中继网关收集，然后作为每个语音呼叫的呼叫详细记录（Call Detail Record，CDR）的一部分记录下来，并由中央服务器收集以用于某些应用（如计帐）。TK开发了一个应用来访问服务器上的CDR QoS统计信息，并对它们进行分析以确保当前运行处于预期QoS目标内。

4.9 MPLS流量工程设计

作为总体MPC网络设计的一部分，TK进行了详细的研究，以确定如何提供足够的网络容量，避免在稳定状态和网络元素发生失效期间在任何核心链路上发生拥塞。

另外，如4.8节所述，为将延时、抖动和丢包率限制在语音数据流所需的水平，TK 想严格执行这样一条策略：确保在任何情况下（包括失效），语音数据流的负载在任何链路上都低于 40%。所以，TK决定部署MPLS TE，使得可以对MPC网络上的PSTN语音数据流实现基于约束的路由，从而将任何链路上的语音负载限制在40%以下。

MPLS TE被部署成只承载PSTN数据流。因此其他数据流（如因特网、第3层MPLS VPN等）都将使用LDP进程分配的标签在MPC上进行标签交换，从而采用OSPF最短路径。

在所有PE-PSTN路由器（它连接VoIP网关，如图4.3和图4.4所示）之间，建立一个全互联TE LSP网。1级POP中的任何两台PE-PSTN路由器之间都有两个TE LSP。当两台PE-PSTN路由器中有一台位于 2级POP中时，它们之间只有一个TE LSP（关于这种设计的原因将在后面介绍）。

为区别 1 级和 2 级 PE-PSTN，将对这些路由器使用这样一种命令约定：1级路由器名称以PE-PSTN1开头，2级路由器名称以PE-PSTN2开头。

4.9.1 设置每条MPC链路上的最大可保留带宽

为支持TK选择的TE设计，MPC中的每条链路需要配置最大可保留带宽值。这个值指示出多少链路带宽可保留用于流量工程。它可以配置为任何值，而不管实际链路速度是多少。例如，对于总带宽为 155 Mbit/s的STM-1链路，可将最大可保留带宽配置为 310 Mbit/s。因而，路由器可能指出该TE LSP的带宽为 310 Mbit/s，带宽过度预订系数为 2。运营商也可以选择通告比实际链路速度小的值，以限制该链路上承载的流量。TK选择采用后一种设计。每条链路配置的最大可保留带宽为实际链路速度的40%，这确保通过链路为PSTN数据流建立的TE LSP的带宽不超过链路带宽的 40%。例如，位于两个 1级POP之间的OC-192链路配置的最大可保留带宽为 0.4×10 Gbit/s = 4 Gbit/s。该配置如程序清单4.7所示，它用作所有OC-192接口的模板（对于MPC中各种不同的链路速度，都存在类似的模板）。

程序清单4.7 OC-192配置模板

4.9.2 TE LSP带宽

对于任何MPLS TE设计，一个最具挑战性的方面是获得流量矩阵，以适当地配置TE LSP带宽。也就是说，对于PSTN网络，TK知道已有的公共语音流量矩阵，这是通过过去二十年期间其语音网络上可用的多种监测工具获得的。由于这一点，TK使用几种计算规则来确定TE LSP的初始大小。

对于 POP 内部的流量，将流量峰值乘以系数 0.9，以考虑峰值不会同时在每个 POP 之间同时发生的事实。这种计算方法是偏保守的。TK 注意到，在非活跃期间流量只有峰值的1/6至1/10，且每天的峰值持续时间不会超过几小时。因而根据繁忙时间的 90%来计算TE LSP的大小。

此外，周末的语音流量要显著少于工作日。在周末，观察到的 PSTN 数据流负载远远小于保留的带宽。

尽管PSTN语音数据流相对稳定，但移动语音数据流在稳步增长。PSTN数据流所需的带宽根据 VoIP 网关能接受的呼叫数量，并使用前面介绍的PSTN-POP内部流量计算规则得到。然而移动语音数据流生成的IP数据流也必须考虑，因而TK决定每两个月一次调整TE LSP的带宽。对于每个TE LSP，将由一个外部脚本每隔 1小时收集相关的SNMP数据（每个TE LSP上传输的字节数）。这样可以收集非常精确的流量矩阵，并跟踪流量增长。每两个月一次，如果在超过5%的样本中，观察到的峰值超过了配置带宽值的5%，将增加TE LSP的带宽。类似地，如果在超过 95%的样本中，观察到的峰值低于配置带宽值的90%，将减少TE LSP带宽。

4.9.3 路径计算

一种动态CSPF算法用于计算每个TE LSP满足其约束条件的最短路径（它限于带宽约束，但PE-PSTN1路由器之间的TE LSP除外。对于后者，带宽和亲和力约束都需要满足，如后面所述）。注意，因为MPC网络包含的TE节点不多，所以CSPF计算时间可忽略（几毫秒）。选择在TE LSP上运行CSPF（而不是使用离线路径计算方法）的原因是，它具有更快处理网络元素失效情况的能力。

4.9.4 PE-PSTN1路由器之间的TE LSP

在Kingland的网络中，主要城市之间的语音流量要远远高于小城市之间的语音流量。因而，TK决定对于 1级POP中PE-PSTN1路由器之间的TE LSP采用与 2级POP中PE-PSTN1路由器和PE-PSTN2路由器之间的TE LSP稍微不同的设计。因为PE-PSTN1路由器之间的TE LSP大于其他TE LSP，所以该设计涉及到在两个TE LSP之间分配数据流。

它背后的原理是，随着LSP大小与链路最大可保留带宽的比率增大，无法找到满足带宽约束的路径的可能性也会增加，尤其是在失效情况下。因而，为使风险最小化，TK决定将每对PE-PSTN路由器之间的数据流负载均衡到多个TE LSP上（这里为两个）。另外，这些 TE LSP配置为具有比 PE-PSTN1与PE-PSTN2路由器之间的TE LSP和PE-PSTN2路由器之间TE LSP更高的抢占权（优先级），因为它们仍然大得多（即使在分配后）。这避免了使用分布式CSPF进行TE LSP路径计算时可能发生的带宽碎片化问题。的确，在采用分布式CSPF时，路由器之间没有同步。每台路由器计算它作为前端路由器的TE LSP集的路径。这样在某些情况下，因为其他一些较小的TE LSP已经被路由，较大的TE LSP不能被路由，从而发生带宽碎片化。RSVP-TE定义了一种多优先级方案：如果X < Y，则优先级为X的TE LSP可以抢占优先级为Y的TE LSP（小数字具有更高的优先级）。这种抢占方案可以用于帮助解决带宽碎片化问题。

为帮助说明，请看图 4.29所示的范例（为简单起见，只显示了几个TE LSP）。从中可以观察到如下特征：

• 所有链路的最大可保留带宽都被配置为 4 Gbit/s（近似为STM-16链路带宽的40%）；

图4.29 多优先级方案解决带宽碎片化问题

• 在PS-PSTN2-1与PE-PSTN2-4之间建立一条 1.8 Gbit/s的TE LSP，在PE-PSTN2-2与PE-PSTN2-3之间建立另一条 1.5 Gbit/s的TE LSP；

• 链路 cw1-sw1和 cw2-s1的可用带宽分别为 2.8 Gbit/s和2.9 Gbit/s（在这些链路上的其他TE LSP在图中没有显示）。

对于图4.29所示的情况，无法在PE-PSTN1-5与PE-PSTN1-6之间为一条3 Gbit/s的TE LSP找到路径。在这种情况下，称为带宽被“碎片化”，因为尽管多条路径的总带宽能够满足需要，但任何一条路径都不能满足需要。解决方案是移动T1（图4.29中位于PE-PSTN2-1和PE-PSTN2-4之间的隧道）以便为T3 （位于PE-PSTN1-5与PS-PSTN1-6之间的隧道）释放一些带宽，以实现T3的路由。因而，在上面描述的情况下， T3 将抢占 T1 ，并采用路径PE-PSTN1-5-cw2-c1-c2-s2-PE-PSTN1-6。被抢占后，TE LSP T1将重路由到另一条路径而不需要任何人工干预。

它还说明了为什么PE-PSTN1路由器之间的PSTN数据流被分配到两个TE LSP。这样可以限制它们的大小，从而增加找到TE LSP路径的可能性（的确，较小的 TE LSP 更不太可能导致带宽碎片化），因为这些 LSP 仍远远大于PE-PSTN2之间的TE LSP和PE-PSTN1与PE-PSTN2之间的TE LSP，所以它们配置了更高的抢占优先级，以从前面介绍的抢占机制受益。

得到的TE LSP如图 4.30所示。

当前，这种多优先级方案并不能绝对保证带宽碎片化不会发生，但降低了发生带宽碎片化的风险。

TK使用随机TE LSP布置运行几种CSPF模拟。这些模拟表明，组合使用分割较大TE LSP和多优先级方案时，发生带宽碎片化的风险非常低。

在一对PE-PSTN路由器之间建立两个TE LSP还有其他一些有用的属性。因为这些 TE LSP采用完全不相同的路由，所以单点失效只会影响到两个 POP （即两个城市）之间的一小部分数据流。

第二个有用的效果是，建立两个TE LSP可以在链路之间获得更加均衡的负载分布。在TK的设计中，MPLS TE确保每条链路上PSTN数据流使用的链路带宽不超过40%。可以想像，在某些情况下将发生一些链路承载30%的流量，而其他链路只承载 10%的流量。尽管也满足 TK 的目标，但获得更优化的负载均衡总是好事。当数据流被分配到多个TE LSP上时，可实现更均衡的负载分布。这种策略的唯一缺点是增加了网络中TE LSP的数量。对于TK，这种增加是完全可以接受的，因为它只影响PE-PSTN1路由器之间的TE LSP。因而，TE LSP增加的数量为 12×11 = 132个。

图4.30 抢占并重新路由低优先级TE LSP后的结果

获得这种负载均衡的解决方案是应用 MPLS TE定义的亲和力概念。简言之，其思想是使用一个32位掩码来表示最多32种链路属性，并将它们用作TE LSP 需要满足的输入约束，从而达到特定目标。在 MPC 网络范例中，VoIP 网关和1级POP中P路由器之间的设计是高度对称的。每个VoIP网关连接到两台PE-PSTN1路由器，后者连接到1级POP中的两台P路由器。因而，其思想是对PE-PSTN1与P路由器之间的链路和1级POP中P路由器之间的链路使用一种颜色方案。这样就可以实现每对PE-PSTN1路由器之间TE LSP的负载均衡。这种概念如图4.31所示。

图4.31 实现1级POP之间TE LSP负载均衡的三颜色方案

图 4.31显示了在PE-PSTN1-1和PE-PSTN1-3之间配置的两个TE LSP（T1和T2）。如前面所述，目标是使T1和T2尽可能采用完全不同的路由。因而使用三种阴影（亮灰、中灰和深灰）来表示PE-PSTN与P路由器之间的链路以及同一个1级POP中P路由器之间的链路。这可以确保T1和T2通过不同的P路由器离开源POP，并进入到目标POP。P路由器之间的链路的OSPF度量值采用这样的方法计算，即使得不相连的一对P路由器之间的两个TE LSP在稳定状态时总是采用完全不同的端到端路由。注意，在PE-PSTN不能找到满足这些约束的可行路径时（失效时经常发生这种情况）将放松亲和力约束。

4.9.5 PE-PSNT1与PE-PSTN2路由器之间或PE-PSTN2路由器之间的TE LSP

不在同一个 1级POP中的两个PE-PSTN之间的TE LSP非常简单。在两台这样的PE-PSTN之间，只有一个TE LSP（不需要负载均衡），唯一需要满足的约束是带宽（不需要颜色方案）。

4.9.6 TE LSP的重优化

MPC网络的容量规划规则是提供足够的网络容量，使得所有TE LSP在稳定状态下可以很容易地采用IGP最短路径（如果使用颜色方案，则是满足颜色约束的最短路径）。实际上，在稳定状态下语音负载预期保持在每条链路带宽的20%以下。也就是说，仅当发生链路/SRLG/节点失效时，有些TE LSP才需沿非最短路径重路由，以保证任何链路上PSTN流量不会超过实际链路速度的40%。此外，TK决定采用固定带宽的TE LSP（与第 5章给出的不断调整TE LSP大小的范例相反）。因而，仅当发生网络元素恢复、TE LSP大小调整、增加链路或节点时，才需要对TE LSP重优化，而这些情况都不会经常发生。

MPC网络是一个传播延时非常短的全国性网络（两个POP之间的传播延时不会超过15毫秒，不管采用什么路径），因而沿非 IPG最短路径重路由的TE LSP的传播延时不能显著高于采用OSPF路径的传播延时。从而即使在TE LSP需要重优化时（存在满足约束的更路路径），这些重优化需求也不是非常重要。这是因为非IPG最短路径提供了与IGP最短路径非常接近的传播延时（传播延时是语音数据流的一个非常重要的参数）。注意，在某些网络中，TE LSP采用的路径的传播延时可能比IGP最短路径高得多，但MPC全国性网络不属于这种情况。

考虑到上面提到的各个方面，TK决定每10分钟触发一次重优化。这样，每台前端路由器决定是否能够为其TE LSP找到更优（短）路径。如果能够找到，则使用“先建立后拆除”方法，以非中断方式沿新路径重优化TE LSP。考虑到每台前端路由器中TE LSP的数量非常少，所以每个TE LSP的CSPF计算不会导致任何CPU峰值。这还意味着即使由于网络元素（如链路或节点）的恢复或增加而导致存在更优路径，TE LSP仍可能采用非优化路径，最长可达 10分钟。

4.9.7 MPLS流量工程模拟

在部署MPLS流量工程之前，TK决定进行一些CSPF模拟。TK为这些模拟设置了几个目标。

• 网络规模应使所有TE LSP在稳定状态下采用OSPF最短路径（满足颜色约束，如果有的话）。

• 没有发生失效的情况下，每条链路的平均PSTN负载应低于20%。

• 每个中间节点的最大TE LSP数量应该是确定的。每个TE LSP将消耗它经历的每台路由器的一些内存，因而确定节点在稳定状态和失效状态下需要支持的最大TE LSP数量非常重要。另外，因为RSVP-TE是一种软状态协议，所以每个TE LSP都需要定期刷新。因而，每个中间节点的TE LSP数量将影响RSVP-TE的参数设置，并影响到对某些技术（如刷新减少技术，有关细节请参考第2章）的需求。下一节将进一步讨论每个中间节点的最大TE LSP数量。

• 在失效条件下，满足带宽约束的较长路径将影响传播延时。这些影响应该仔细研究。

• 确保在任何条件下（包括发生双重失效的情况下）都能找到满足TE LSP约束的路径。

CSPF模拟的结果证实了TK的预期。在稳定状态，100%的TE LSP采用最短路径（或满足颜色约束的最短路径），且任何链路的最大语音负载低于20%。另一方面，在发生一些SLRG失效或1级POP中节点失效的情况下，有几个TE LSP沿另一条更长的路径重优化。它满足每条链路上PSTN流量不超过40%的目标。沿这些更长路径的传播延时仍满足语音延时需求。

4.9.8 TE的可扩展性

在分析MPLS TE的可扩展性属性时，有几个重要变量需要考虑。

• TE LSP总数：当前一共有 6个 1级POP和 20个 2级POP，每个POP中有两台 PE-PSTN 路由器。这导致共有（51×52）+（12×11）（因为每对PE-PSTN1之间有两个TE LSP）= 2784个TE LSP。严格地说，与每台路由器（作为前端路由器和中间节点路由器）需要管理的 TE LSP数量相比，TE LSP总数并不是最重要的可扩展性准则。然而，从管理、监测和提供服务的角度说，TE LSP总数是非常有用的参数。

• 每前端路由器的TE LSP数量：每前端路由器的TE LSP最大数量对于PE-PSTN1路由器为（2×11）+ 40 = 62，对于PE-PSTN2路由器为 51。这些数字非常低。的确，当前的路由器能够很容易地处理数千个以它作为始端的TE LSP。

• 每中间节点路由器的TE LSP数量：这是一个需要考虑的重要数据，因为它可能是网络中TE LSP总数的很大一部分，尤其是在稀疏连接的核心网络中。因而，运行一种模拟来评估稳定状态下和各种失效情况下的最坏情景（从支持的TE LSP数量角度说，负载最大的路由器）是非常有用的。对于MPC网络，一次分析结果显示，在发生单点失效情况下，负载最大的路由器需要处理TE LSP总数的 25%：大约 700个TE LSP。这不会导致问题，因为当前大多数路由器都能够作为中间节点支持数万个TE LSP。

总之，TK认为MPC MPLS TE设计没有额外导致任何可扩展性问题。

4.9.9 使用刷新减少

TK 选择不在其网络中激活刷新减少技术，因为它认为每中间节点的RSVP-TE会话数量很小。

4.9.10 提供TE LSP网

TK开发了一系列脚本，在PE-PSTN路由器之间自动提供TE LSP。

4.9.11 监测

MPLS TE网络的监视是最为重要的，因为可以根据监测的结果在需要时调整TE设计。TK决定对网络中每个TE LSP收集如下信息。

• 网络元素失效引起的重路由数量：它提供了关于链路和节点可用性的信息，这样可以用一个脚本来执行相关事件，确定引起每种失效的根本原因。因为一个失效可能会影响多个TE LSP。

• 重优化引起的重路由数量：TK 使用前端路由器在重优化时向网络管理系统发送的SNMP陷阱。

• 每个TE LSP上的PSTN负载：TK通过收集计数器，如TE隧道接口每小时传输的字节数，监测TE隧道上承载的PSTN负载。该信息将用于在需要时调整TE LSP带宽。

• PSTN流量的链路利用率与带宽保留：这些数据对于确定LSP大小策略尤其有用，特别是多个 POP-to-POP 语音聚合的统计性增益。的确，如果结果发现所有TE LSP的保留带宽之和总是远远大于每条链路的实际PSTN数据流负载（EF队列负载），TK可以重新调整计算TE LSP带宽的公式。TK采用的策略包括收集与链路利用率相关的SNMP值或变量（借助于脚本）、EF队列利用、为选定链路保留的总带宽。

• 语音流量模式：流量模式（流量波动）是MPLS流量工程设计中的一个重要元素。它有助于为每个LSP确定适当的带宽。这种情况下流量的突发性至关重要。例如，假设存在非常扁平的流量模式。在这种情况下，带宽估计非常简单。反过来，对于变化非常大的突发性流量，根据峰值负载估计TE LSP的大小可能不是最优的。它可能导致某些TE LSP在失效情况下采用更长的路径（在稳定状态，MPC 网络规模使得大多数TE LSP都采用最短OSPF路径）。为研究流量模式，TK决定编写一些脚本，以较高的频率（每 5分钟一次）收集少数几个选定TE LSP上发送的总流量。将这些数据与不采用OSPF最短路径的TE LSP的比例相结合，TK可重新调整其TE LSP带宽计算公式。

4.9.12 最后采用的无约束选项

MPC网络被设计成在发生任何单点失效后仍然能够工作。也就是说，在单个网络元素发生失效时，任何TE LSP都应该能够找到替代路径。因此，一种安全的方案是为每个TE LSP配置一个最后采用的选项：其中没有指定约束，以处理任何非预期事件，尤其是多点失效。

在Cisco路由器上，可以通过LSP属性来实现这种方法。对于每个TE LSP，可以指定一个有序的约束列表。前端路由器试图找到能够满足约束条件集的路径；如果没有找到，它将尝试下一个约束条件集，依此类推。因而，一种安全的推荐方法是配置一个最后采用的选项，其中TE LSP没有配置任何约束（无亲和力，带宽为0等）。这可以保证在任何情况下前端路由器总是能够找到前往目的地的路径（只要存在到目的地的连接）。在这种情况下，TE LSP路径与OSPF路径相同。

在使用颜色约束的两台PE-PSTN1路由器之间的TE LSP上，最后采用的无约束选项在备用选项后使用，它将放松颜色约束，但不放松带宽约束。

4.10 网络恢复设计

PSTN数据流与其他数据流对网络可用性的要求有很大不同。几秒的会聚时间是完全可接受的，且符合因特网和第 3层MPLS VPN数据流的SLA。然而，&nbsp;PSTN数据流要求在发生单点链路、SRLG或节点失效时提供几十毫秒的会聚时间（类似于TK以前的SDH基础设施提供的可用性）。注意，PSTN数据流还必须在 MPC 网络发生节点失效的情况下在几十毫秒内重路由，这在 TK 以前的PSTN网络中是不可能实现的目标。虽然链路受SDH基础设施的保护，但在4类语音交换机失效的情况下，所有语音呼叫都被丢弃，且通信需要重新建立。语音呼叫没有办法在发生节点失效后继续保持，但 4 类语音交换机失效的情况极少发生。

4.10.1 因特网和第3层MPLS VPN数据流的网络恢复设计

因为因特网和第 3层MPLS VPN数据流在失效情况下的目标是几秒内会聚，所以不需要激进的OSPF定时器调整。因而，TK决定选择保守的OSPF协议调整。

1．失效检测时间

默认情况下，在大数商用路由器平台上，OSPF协议被配置为10秒的hello间隔和40秒的RouterDeadTimer。因为NAS和BAS设备都通过第2层交换机连接，所以默认配置不能满足失效情况下会聚时间为几秒的需求。必须使用OSPF hello协议来执行失效检测；这里没有与SDH和DWDM链路中类似的低层快速失效检测机制。

注意 没有引入第 2 层交换机的点对点吉比特以太网接口完全不同。在光纤被切断时，信号丢失（loss of signal，LoS）将被快速检测到，因此没有必要调整OSPF hello间隔。但TK使用了第2层交换机以减少所需的端口数。因此，链路或端口失效不能被连接在第2层交换机后面的设备检测到。

TK将hello频率设置为1秒，并将RouterDeadTimer设置为3秒。这实质上意味着在最糟的情况下，将在 3 秒内检测到失效。执行这种修改的配置模板如程序清单4.8所示。

程序清单4.8 OSPF定时器配置模板

另一方面，在SDH和DWDM链路（MPC网络中的绝大多数链路）上，网络失效将在几毫秒之内被检测到。

2．LSA的生成

一旦检测到失效并报告给OSPF进程后，第一步是生成新的LSA，通知其他路由器拓扑发生了变化。如第2章所述，其挑战是快速生成新LSA以改善IGP会聚时间，同时确保网络在存在不稳定的网络资源（如链路来回波动）时的稳定性。就这方面而言，当今的路由器都提供了相应的动态机制，如第 2 章介绍的指数后退算法。TK选择使用程序清单4.9所示的配置。

程序清单4.9 OSPF LSA生成配置

程序清单4.9所示的变量定义如下：

• 0 ms表示路由器在检测到拓扑发生变化（这里为失效）后等待多长时间后生成LSA。

• 40 ms表示路由器在检测到另一个拓扑变化后等待多长时间再通告第二个LSA。TK决定将该变量设置为40 ms，因为其网络中存在SRLG。SRLG失效将导致多个链路失效，等待 40 ms可增加路由器在生成新LSA前获得新网络状态精确视图的可能性。

• 5000 ms是按照第 2章介绍的指数后退算法，两次连续生成LSA之间的最大延时。

3．失效通知时间

对于发生失效后需要沿替代路径重路由数据流，检测到失效的节点生成的LSA 必须被重路由路由器收到，它与失效点的距离可能为几跳，因而这个时间（通常称为失效通知时间）为这两个节点之间的传播、排队和处理延时之和。注意，处理延时在某些路由器平台上可以通过各种机制进行优化，但它在失效通知时间中所占的比例非常小，通常不需要进一步调整。

TK进行了一些研究，结果表明，在其网络中（考虑到高度连接的网络和低传播延时）失效通知时间在最坏情况下也很少超过 100 ms。对于几秒的总会聚时间来说，这个时间可以忽略。

4．SPF触发

类似于LSA生成的情况，在Cisco路由器可以将指数后退机制用于SPF触发。TK选择使用程序清单4.10所示的配置。

程序清单4.10 指数后退配置

程序清单4.10所示的变量定义如下：

• 50 ms表示路由器收到第一次拓扑变化通知（新LSA）后，等待多长时间触发SPF计算。在触发新SPF前等待 50 ms旨在增加发生SRLG失效时收到所有 LSA 的可能性，以便计算出完全符合当前实际网络状态的新路由表。

• 50 ms是路由器在觖发第二次连续SPF计算前需要等待的时间。

• 10 000 ms是按第 2章介绍的指数后退算法，连续两次 SPF计算之间的最大延时。

注意 在现今路由器上，SPF的复杂度通常接近于nlog（n），其中n为网络中路由器的数量。算法复杂度表示SPF的持续时间。TK在其网络中测量SPF持续时间，发现它总是少于 40 ms。因而认为不需要使用SPF计算优化（如增量SPF）。

5．RIB和FIB更新

当然，RIB 和FIB 的更新时间与硬件高度相关，但TK的测量结果表明，在其网络中的任何路由器平台上，这些时间都小于0.5秒。

6．OSPF设计结论

TK的OSPF设计显然允许几秒数量级的重路由时间。它符合TK对于因特网和第 3层MPLS VPN数据流在失效情况下的目标要求。同时值得一提的是，在发生POP内部链路（SDH和DWDM）失效的情况下，由于具有更快速检测失效的能力，它能够获得更快的重路由时间（大约1秒）。最坏情况是需要依赖OSPF检测失效而引起的POP内部失效（在选择的设计方案中，为3秒钟）。

在发生链路、SRLG 或节点失效的情况下，可能发生拥塞。拥塞将由用于根据相对重要性保护数据流的区别服务机制来处理。也就是说，基于容量规划来计算OSPF度量值，以限制在MPC网络中发生单点失效时降低服务水平并影响数据流SLA的可能性。

4.10.2 PSTN数据流的网络恢复设计

发生链路、SRLG或节点失效时，PSTN数据流必须在几十毫秒内完成重路由，且这些数据流被重路由到 TE LSP上，所以最适合的网络恢复机制无疑是MPLS TE快速重路由。

1．失效检测

选择网络恢复策略时，需要考虑的一个重要方面是网络元素失效的检测时间。它占据了全部重路由时间的很大比例。对于MPC网络，TK决定只使用SDH和DWDM设备引起的链路失效中报告的SDH和DWDM警告。由于这一点，链路失效通常在几毫秒内被检测到。

对于路由器失效的情况有必要进行详细分析，因为MPC网络的P路由器全部基于分布式架构。它的优点是发生控制平面失效时，数据流不会中断，这使得失效检测时间相对来说不太重要。在发生控制平面失效的情况下，可依赖于RouteDeadTimer的过期（3秒钟）和随后的路由邻接关系失效来触发IP数据流的重路由，因为数据流在此期间不受影响。注意，对于重路由到TE LSP上的数据流，一旦它们的前端路由器获悉控制平面失效，TE LSP将沿另一条路径重路由，以避开失效路由器。与前面的情况类似，数据流也不受控制平面失效的影响。注意，它不需要任何特定机制，且是分布式架构平台的默认行为。也就是说，它假定路由器处理器不会重新启动。在这种情况下，重新加载其软件时，路由处理器可更新线路卡的控制平面处理器，后者可能导致数据流中断。这里考虑的情况是一种简单的路由器处理失效，如硬件失效。

注意PE-PSTN节点失效的情况将在本节后面讨论。

电源失效将导致所有与该路由器连接的链路失效。类似地，线路卡失效也将导致其所有链路失效。所以，从触发网络重路由的角度说，这种失效相当于链路失效。

2．备用隧道集

在MPC网络中必须提供两种类型的备用隧道。一种是下一跳（NHOP）备用隧道，它保护PSTN数据流不受链路或SRLG失效的影响；另一种是下下跳（NNHOP）备用隧道，它保护 PSTN 数据流不受节点失效（如同时影响控制平面和转发平面的硬件节点失效）的影响。

3．备用隧道约束

备用隧道路径需要满足的第一个约束条件是采用与受保护设施完全不同的路由。

对于NHOP备用隧道，备用隧道的路由必须与受保护链路完全不同。如果受保护链路属于某个SRLG，备用隧道必须通过另一个SRLG路由。也就是说，备用隧道不能穿越与受保护链路共享SRLG的任何链路，否则SRLG失效将可能导致受保护链路与用于保护该链路的备用隧道同时失效。

一种更优的解决方案是，用一条备用隧道保护链路，再用另一条备用隧道保护SRLG。这样，在发生失效的情况下，“本地修复点”（Point of Local Repair， PLR）将选择适当的备用隧道。另外，相同的概念也适用于叠加SRLG。这时不需要另外建立一个与受保护链路属于的所有 SRLG 都不同的备用隧道 SRLG，而可以为每个SRLG提供一条备用隧道。不幸的是，当链路属于某个SRLG时， NHOP备用隧道必须使用完全不同的SRLG。这个重要的概念需要一些额外的解释。请见图4.32，它显示了MPC网络中的SRLG集。

SRLG3由链路 cw2-c1和 cw1-n1组成。在POP Center-West中，连接到链路cw2-c1的路由器cw2不能区分链路cw2-c1失效（如由于路由器c1上的接口失效引起）与SRLG3失效。这两种情况都将导致链路cw2-c1失效，将由cw2本地检测到。因而，计算保护链路cw2-c1的NHOP备用隧道的路径时，需要有一个约束条件，要求NHOP备用隧道与该链路的SRLG不同。也就是说，每当链路属于某个SRLG，保护该链路以防其失效的NHOP备用隧道必须属于不同的SRLG，因为它不能区分链路失效与SRLG失效。

TK进行了一些研究，试图设计一种机制以便能够在触发TE LSP重路由前识别出这种失效的原因（这样，它将计算几条有不同约束的备用隧道，然后根据是链路失效还是SRLG失效使用适当的备用隧道）。这种机制依赖于收到额外的 IGP LSA，可能还需要与某种探测机制组合使用。这种方法的问题是，它会增加设计的总体复杂度和重路由时间。因而，使用其路径属于不同 SRLG 的单个备用隧道集来保护链路和SRLG失效，对于TK来说是最适当的选择。注意，这可能导致非优化备用隧道路径，但考虑到网络的密度和链路传播延时较低的实际情况，这在MPC网络中并不是很重要的问题。

图4.32 Telecom Kingland SRLG成员关系

第二个备用隧道约束是，备用隧道在快速重路由期间需要提供等价的 QoS （在此期间，主TE LSP在本地快速重路由到备用隧道上，因而发生在前端路由器对它重优化之前），这意味着备用路径应该提供同样的带宽。

解决这个约束（称为带宽保护）的一种可能方法是，计算这样的备用隧道路径：它能够保证所有受保护隧道在快速重路由期间的等价带宽。为获得备用容量方面的高效率，这种方法通常需要使用完善的备用隧道路径计算算法（它利用保护独立设备的备用隧道能够共享备用容量这一事实），并结合在每个PLR上使用额外的备用隧道选择算法。这些算法基于不同的准则智能地将主TE LSP“打包”到各自的备用隧道，同时使带宽碎片化问题最小化。

因为这种方法的复杂性，TK首先分析了一种简单方法。它使用零带宽备用隧道（用CSPF计算）来评估不同失效情景下PSTN数据流的QoS。采用这种方法，备用隧道只需采用满足链路/SRLG/节点多样性约束的IGP最短路径，而不管任何其他带宽约束。这在相当大程度上简化了快速重路由设计。研究结果表明，在SRLG或节点失效的最坏情况下，在快速重路由期间，任何链路上PSTN数据流的比例没有超过 50%。它包括不受失效影响的主TE LSP承载的PSTN数据流和来自重路由TE LSP（受失效影响）到备用隧道的PSTN数据流。TK部署的区别服务机制确保PSTN数据流（不管它是主TE LSP承载的数据流，还是快速重路由到备用TE LSP上的数据流）优先进入到EF队列中。因而，在快速重路由期间（它不会超过几百毫秒），PSTN数据流仍具有满足SLA需求的QoS。所以，尽管在某些失效情况下，在非常短的一段时间内不能满足任何链路上PSTN数据流不超过40%的约束，TK还是选择使用这种零带宽备用隧道的简单方法。可能导致的QoS降低是不易觉察的，且仅持续非常短的时间，直到前端路由器重优化（参阅“4.10.2节）。

4．1级POP之间的备用隧道设计

TK设计的目标之一是保护任何TE LSP不受链路、SRLG或节点失效的影响。为实现这一目标，对于每条受保护链路，需要有一个使用不同SRLG的NHOP备用隧道，且每下下跳需要有一个使用不同SRLG的NNHOP备用隧道。为说明这种快速重路由设计，请考虑连接到POP Center-West中路由器的 cw2-c1链路。

为保护 cw2-c1 链路，需要计算出一条与该链路使用不同 SRLG 的 NHOP备用隧道路径。可通过考虑网络中的每条链路、SRLG 成员关系等，显式地配置备用隧道路径，来完成这项任务。该任务也可由每台路由器自动完成。

TK选择自动计算并配置备用隧道。为此，每个负责为其各个邻居计算备用隧道路径的路由器必须清楚所有链路的SRLG成员关系（如链路cw2-c1和c1-s1属于同一个SRLG）。IETF 定义了一些IGP扩展，用于泛洪SRLG成员关系。对于OSPF，文档[OSPF-GMPLS]定义了几种新的sub-TLV，它们存储在链路TLV （类型 2）中，提供了一些额外的链路特征，其中一种特征是 SRLG 成员关系（sub-TLV 16）。在Cisco路由器上，给定链路的SRLG成员关系在该链路上只配置一次，如程序清单 4.11 所示。然后，它将通过 OSPF 自动泛洪到相同 OSPF区域中的其他路由器（因为用于MPLS流量工程扩展的不透明LSA为Type 10）。

程序清单4.11 SRLG成员关系配置

采用程序清单4.11所示的配置，在每条链路上配置了它所属的SRLG集。然后，SRLG成员关系传递到OSPF，并泛洪到整个区域（TE LSA，不透明LSA Type 10）。图 4.33说明了OSPF sub-TLV SRLG的格式。

图4.33 OSPF Sub-TLV SRLG的格式

这种OSPF扩展让每台路由器都能够自动获悉SRLG成员关系。注意，可以为每条链路指定多个SRLG。例如链路cw2-c1就属于这种情况，它同时属于SRLG 1和SRLG 4。被称为重叠SRLG。

然后，每台路由器配置成自动为它连接的每条链路（通过它建立了路由邻接关系）建立一条NHOP SRLG多样性备用隧道；它还为下下跳邻居建立一条NNHOP SRLG多样性备用隧道。

在每台路由器上进行如下配置，以自动完成 SRLG 多样性备用隧道路径的计算和提供：
mpls traffic-engineering auto-tunnel backup srlg exclude preferred

这将执行如下操作：

• 自动配置NHOP和NNHOP备用隧道；

• 确保备用隧道的SRLG多样性（如果可能）。

该命令将触发如下操作。

• 首先，每台路由器通过检查其OSPF拓扑数据库，确定要通过它们建立路由邻接关系的链路集。对于每条链路，只要至少有一个主TE LSP穿过它，就为它计算并通告一条SRLG多样性NHOP备用隧道（如果没有TE LSP，则没有必要建立备用隧道）。

• 然后，每台路由器确定其下下跳集，如果至少有一个主TE LSP穿过该链路，则分别为它们配置一条SRLG多样性NNHOP备用隧道。

图4.34显示了一些NHOP和NNHOP备用隧道。

图4.34 NHOP和NNHOP备用隧道

图 4.34表明，对于链路 cw2-c1，PLR cw2计算NHOP备用隧道B1的最短路径。它用于保护链路cw2-c1的失效，不仅需要避开链路cw2-c1，还需要避开与该链路共享SRLG的任何链路（这里为链路c1-s1）。因而，最终得到的B1路径（假定所有链路的开销都相同）为cw2-s1-s2-c2-c1。

对于 cw2，第二个步骤是为每个下下跳邻居计算一条NNHOP SRLG多样性备用隧道路径，以防节点 c1失效。注意，仅当至少有一个主TE LSP采用受保护路径时才需执行这个步骤。下下跳邻居集由c2和s1组成，因而cw2需要计算并建立两条NNHOP备用隧道，如下所示。

• B2：它采用路径 cw2-s1，用于在节点 c1发生失效时重路由所有采用路径 cw2-c1-s1的主TE LSP（如T3）。

• B3：它采用路径 cw2-s1-s2-c2，用于在节点 c1失效时保护所有采用路径cw2-c1-c2的主TE LSP（如T1和T2）。

注意 尽管同时配置了NHOP和NNHOP备用隧道，但发生链路/SRLG失效时重路由到NHOP备用隧道上的TE LSP只是那些在下一跳终止的TE LSP，其他TE LSP全部系统地重路由到它们的NNHOP备用隧道上。这是因为PLR不能区分链路失效与节点失效，这两种失效都会导致链路cw2-c1失效。因而在链路cw2-c1失效时，为安全起见，PLR路由器cw2假定是节点失效。如果后来发现问题是链路失效，TE LSP 可能必须重路由到一条更长的备用隧道路径上。这是因为NNHOP 备用隧道的路径通常比数据流借助于 NHOP 备用隧道重路由时采用的路径更长。如果发生的失效确实是节点失效，则重路由到 NHOP 备用隧道是适当的。有人提出一些方案（基于探测）来区分链路失效与节点失效，其原理是，在发生链路失效后立即发送一条探测消息到NHOP备用隧道。这让PLR能够确定下一跳邻居是否仍然存活。如果收到响应，则失效仅为链路失效；否则发生的失效是节点失效。基于这些，设计者有两种选择：

• 假定为链路失效，当PLR确定为节点失效时切换回NNHOP备用隧道；

• 假定为节点失效，当失效被确定为链路失效时切换回NHOP备用隧道（可能提供一条更优的备用路径）。

在第一种模式下，重路由的TE LSP采用一条更优的路径。在发生节点失效时，数据流中断时间要长得多，因为需要一些时间让PLR确定失效实际上是节点失效。在第二种模式下，链路失效情况下的路径可能要稍微长些，但重路由时间总是最小。它的缺点是，在一段较短的时间内（直到重路由TE LSP沿更优路径重优化）可能采用非最优的备用路径，但与它总是保持数据流中断最小化的优点相比是非常有限的。因而，当前大多数实现都选择第二种模式，当失效为链路失效时，没有任何机制切换回NHOP备用隧道。的确，PLR需要花费一些时间来确定失效类型。重路由TE LSP被重路由到NHOP备用隧道上的时间是非常短的。

能够跟踪SRLG成员关系至关重要。因而，TK决定维护一个MPC链路的SRLG 成员关系数据库，由负责网络基础设施的小组建立。例如，可能会因为负责传输网络的小组决定将某些光路径沿另一条路由重路由，而产生新的SRLG成员关系，这将导致SRLG成员关系发生改变。

每当在数据库中修改SRLG成员关系时，都将触发警告。它告知负责MPC&nbsp;IP/MPLS网络的小组，在相关链路上重新配置SRLG成员关系。注意，在Cisco路由器上，SRLG 成员关系配置的改变会自动被网络中所有路由器检测到。它们都触发其备用隧道集的重计算，以保证备用隧道路径的SRLG多样性。

注意，这种SRLG成员关系对主TE LSP没有影响，它只可能影响备用隧道。

5．放松SRLG多样性约束

有些情况下，计算SRLG多样性备用隧道路径的结束可能导致PLR无法找到解决方案。在有些网络中，重叠 SRLG 非常普遍，这样在某些区域将无法找到 SRLG 多样性备用隧道，但仍可以使用备用隧道来保护接口和路由器失效。MPC网络并不属于这种情况，在稳定状态，总是可以找到SRLG备用隧道。但在发生多点失效时仍可能无法找到 SRLG 多样性备用隧道。注意，发生多点失效后，将不再满足QoS目标，但它仍然是有用的，因为如果发生第二次失效，至少它能够在每次失效后能够找到备用隧道。考虑SRLG 2第一次失效的情况，如图4.35所示。

图4.35 放松SRLG多样性约束

如果SRLG2失效，则在Center-West POP中的 cw2和Center POP中的 c2之间不存在NNHOP备用隧道的SRLG多样性路径。然而，为在节点c1失效（双重失效的情况）时能够重路由采用路径 cw2-c1-c2的TE LSP，需要一个这样的备用隧道。

这就是为什么在这种特定情况下需要放松 SRLG 多样性约束的原因。这可以通过在自动备用隧道配置中添加关键字preferred来完成，如本节前面所示。

6．2级和1级POP之间的备用隧道设计

因为只有两条链路将2级POP连接到1级POP，所以TK确保它们不与其他任何链路共享任何SRLG（否则，单个SRLG失效将导致孤立的POP，这是不能接受的）。这里将采用与 1 级 POP 相同的设计，但进行了简化，不处理任何SRLG。每台路由器配置成自动计算所需的NHOP和NNHOP备用隧道集。唯一的约束是同受保护部分（链路或节点）的差异性，这种设计如图4.36所示。NHOP备用隧道B1保护链路x2-c1的失效，而NNHOP备用隧道B2保护从c1到s1的隧道不受c1失效的影响。

图4.36 2级和1级POP之间的备用隧道设计

7．使用备用隧道的持续时间

MPLS TE快速重路由（FRR）是一种临时机制。受保护的TE LSP首先由紧邻失效位置上游的节点（PLR）在本地重路由，直到它们的前端路由器沿更优的路径对其重优化。在MPC网络中，TK进行了一些分析，近似估计发生网络元素失效时TE LSP重路由到备用隧道上的持续时间。这是非常重要的，因为它影响到是否使用零带宽备用隧道的决策。

请见图 4.37，链路 cw2-c1失效时，主 TE LSP T1（位于 PE-PSTN2-1和PE-PSTN2-4之间）将在几十毫秒内被本地重路由到NNHOP备用隧道B3上。大量的实验测试表明，这种本地快速重路由在最坏情况下需要 60 ms。它包括失效检测时间和将所有TE LSP重路由到各自备用隧道所花费的时间。然后发送一条RSVP Path Error（路径错误）消息给前端路由器PE-PSTN2-1，通知它已经执行本地重路由。这条 RSVP 消息在转发到前端路由器之前，必须被每个中间跳处理。前端路由器收到该通知后，立即触发T1的新路径计算。在MPC网络中，这种路径计算时间少于 2 ms。因为前端路由器可能有多个受影响的TE LSP，为计算最坏情况的重优化时间，CSPF持续时间必须乘以受影响TE LSP的最大数量（小于 62，它是每台前端路由器上的最大TE LSP数量）。

图4.37 备用隧道活动持续时间的估计

最后需要考虑的一个时间是新TE LSP的信令延时，它是链路的传播延时加上每个中间跳上的排队和处理延时。因为MPC网络是一个全国性网络，其跨越整个网络的传播延时限制在 15 ms内。另外，如 4.8节所述，信令消息在 AF3队列中处理，因而每跳的排队延时可忽略不计。

最后，每一跳的处理延时估计最多 10 ms。因为经过的最大跳数为 10，所以往返信令时间总是小于[10×10（处理延时） + 15 ms （传播延时）×2（两个方向），结果为 230 ms。因此，发生失效后，在前端路由器上重路由TE LSP所需的最长时间为 469 ms：

（10×10 ms）+ 15 ms（前端路由器收到指出发生失效的RSVP Path Error消息所需的时间）

+ 62×2 ms （重新计算新路径所需的时间）

+ 230 ms （往返信令延时）

= 469 ms

这意味着即使在非常坏的情况下，发生链路、SRLG或节点失效时，TE LSP将在 60 ms内重路由到备用隧道。它将最多使用备用隧道 469 ms，直到前端路由器对其进行重优化。注意，对于大多数TE LSP，实际使用的时间远远小于这个值（上面的计算针对的是最坏情况，TE LSP采用包含 10跳的路径，即失效点非常远，且受此失效影响，前端路由器需要重路由所有其TE LSP，这种情况发生概率的非常小）。

8．配置Hold-Off（保持）定时器

第2章介绍了Hold-Off定时器的必要性。当网络恢复方案在多个层次（光纤、SONET-SDH、IP/MPLS）上可用时，在每层上触发恢复机制之前引入一段延时是适当的，这让低层网络恢复机制有时间恢复故障。

MPC网络包含如下两种链路。

• 未受保护的 STM-16 和 STM-64：对于未受保护的链路，不需要这种Hold-Off定时器。一旦检测到失效，将立即触发网络恢复机制（IP路由和MPLS TE快速重路由）。

• 2级和 1级POP之间的受保护STM-1链路（通过SDH）：对于受保护的STM-1链路，在触发MPLS TE快速重路由前等待一段时间是适当的。这样，在发生链路失效时，SDH 层将试图恢复故障。如果在定时器 X到期后，故障仍没有得到恢复，则意味着 SDH 层不能恢复受影响的资源。SDH 层不能恢复受影响链路的原因可能是，SDH 设备失效或故障位于SDH层保护范围之外（如路由器或路由器接口失效）。TK确定其网络内SDH恢复时间位于 80 ms以内（根据其SDH环的大小、增/减多路复用器（ADM）的数量等）。所以，TK决定将hold-off定时器设置为100 ms。

注意 激活这种定时器有如下后果：在路由器接口失效或路由器失效的情况下，MPLS TE快速重路由时间将增加 100 ms。

在Cisco 路由器上，可以使用carrier-delay命令来配置hold-off定时器（在每个接口上配置），如程序清单4.12所示。

程序清单4.12 载波延时配置

9．PE-PSTN路由器失效

PE-PSTN路由器失效的情况如图4.38所示。

在稳定状态下，VoIP 网关将所有数据流路由到单个 PE-PSTN（借助于静态路由）；当这个主 PE-PSTN 发生失效时，VoIP 网关将所有数据流重路由到相同位置的替代 PE-PSTN。如前面指出，一对 PE-PSTN之间的TE LSP根据它们的峰值负载确定，这不包括其他VoIP网关在其主PE-PSTN失效时可能产生的重路由数据流。这是因为它将导致过度估计所有TE LSP，从而可能导致稳定状态下的非最优TE LSP路由。因而，在发生 PE-PSTN失效时，用作备用的 PE-PSTN的TE LSP将承载更多数据流（在 PE-PSTN失效期间），但有几个方面需要考虑。

每个TE LSP按峰值负载估计大小。因此，如果PE-PSTN失效不是在业务繁忙期间发生，则很有可能TE LSP实际上承载的流量不会超过其额定大小。尽管这样，即使TE LSP承载的流量超过其实际带宽，也不会产生任何严重的后果。MPC网络被设计成在稳定状态下每个TE LSP采用最短 IGP路径（或满足颜色约束的最短路径）。这样，尽管这些TE LSP上承载的流量暂时超出了额定带宽，但 PSTN 数据流的比例仍然位于适当阈值以下，可保证适当的 QoS。唯一例外的情况是PE-PSTN失效和灾难性失效在网络中同时发生。然而，TK认为这种情况极少发生，且当前设计规则的优点远远超越了这一缺点。

图4.38 PE-PSTN节点失效

4.11 IPv6因特网接入服务设计

Kingland有几个大客户需要IPv6网络互联服务和IPv6因特网接入服务。例如，Kingland的国家学术和科研网络运行区域性IPv6网络，因而需要这些网络的高速 IPv6 互联，以及 IPv6 因特网接入。为满足这种需求，TK 启动了 IPv6因特网接入服务。

因为保护MPC稳定性是绝对的基本要求，所以TK决定使用1.5.2节描述的IPv6提供商边缘（6PE）方法。这允许TK在边缘上逐步引入IPv6服务，而不需要核心网络中的任何软件升级或配置修改，它仍然运行纯粹的IPv4/MPLS。

因为当今IPv6服务的数量仍非常少，且只需要纯IPv6连接，所以TK决定在专门的6PE路由器上支持IPv6服务。这样支持IPv4因特网和第3层MPLS VPN服务的mPE路由器不受任何IPv6和6PE技术可能发生的故障或问题的影响。这些新技术没有经过广泛的测试和验证，且 TK 在这方面的生产运营经验非常有限。6PE路由器部署在每个1级POP和客户可能请求IPv6服务的4个2级POP中。在每个1级POP中都部署两台6PE路由器，以支持IPv6客户站点的双宿主。这样，一共需要部署16台6PE路由器。

如图 4.39 所示，6PE 路由器连接到 POP 中的两台 P 路由器。它们通常用STM-1 PoS接口连接，但也有少数使用STM-16 PoS接口连接，以支持超高速IPv6客户连接。

图4.39 1级POP中的6PE设计，其中有 IPv6路由反射和 IPv6因特网对等关系

TK 使用一组单独的路由反射器专门用于 IPv6 因特网服务。这样做的原因与为 IPv4和第 3层MPLS VPN使用单独的路由反射器的原因相同。也就是说，这样做可以避免在网络失效的情况下不同控制平面中服务的竞争。因为当前IPv6路由反射涉及的6PE路由器数量非常少，所以TK只部署两台IPv6路由反射器，它们位于两个不同的 1级POP（Center POP和South POP）中，这些POP也是支持到IPv6因特网对等关系的POP。

IPv6路由反射器包含完整的IPv6因特网路由表，当前包含大约1000条路由。

随着IPv6因特网接入服务的增长以及运营经验的增加，TK计划将IPv6因特网服务迁移到共享mPE路由器，以与其总体网络发展策略保持一致。

对于 6PE路由器和 IPv6 CE路由器之间的路由，TK使用静态路由和BGP协议。

TK对6PE路由器使用一个配置模板，如程序清单4.13所示。

程序清单4.13 6PE路由器的配置模板

TK为IPv6因特网接入服务提供了与IPv4因特网接入服务相同的QoS。在接入链路上支持单个CoS，它相当于第 3层MPLS VPN服务的Standard CoS。在核心中，IPv6因特网数据流与IPv4因特网数据流和第3层MPLS VPN Standard CoS一起处理。为此，TK利用了 IOS 6PE实现的默认行为，将入口 6PE路由器加入的标签栈条目的EXP字段设置为0。这样可确保IPv6数据流在MPC中得到适当的处理（即被调度到DF队列中），而不需要修改4.8节描述的QoS核心服务策略。注意，因为 6PE 方法使用两个标签，所以在核心使用次末跳弹出（Penultimate Hop Popping，PHP）不会导致问题。PHP将暴露第二个标签栈条目，其中包含的EXP字段被设置为0。

4.12 Telecom Kingland网络的设计教训

从Telecom Kingland的设计可得出许多结论。

• IP/MPLS包核心可用作多服务核心，以集成当前和未来的服务（包括因特网、第3层VPN、第3层VPN内的企业语音服务、PSTN语音中继等）。

• 可以通过相同边缘设备提供多种服务，但需要额外考虑一些必要的安全和可扩展性问题。

• 通过结合使用iBGP多路径功能和为每个VRF使用不同路由区分标志，可实现第 3层MPLS VPN数据流的负载均衡。

• 运营商的运营商可用作帮助解决大型路由需求可扩展性问题的有效工具，或用于为那些需要在自己网络环境将服务分开的客户提供服务。

• 在包核心上，可承载QoS要求极高的PSTN语音中继，并能够弹性地处理正常情况和链路/SRLG/节点失效的情况。它需要结合使用专用的绝对优先级队列以及呼叫许可控制、基于约束的路由和MPLS流量工程快速重路由。

• 通过采用适当的OSPF设计，可使因特网和第 3层MPLS VPN数据流在发生链路、SRLG或节点失效时，最坏情况下能够在几秒内实现重路由。

• 接入链路上的多种CoS对于多媒体VPN是非常有用的。它涉及复杂的QoS服务策略，并需要进行仔细的微调（特别是在低速链路上）。

• 在能够以容易且廉价的方式提供容量时，在核心中可以将多种 CoS（在TK网络中，为所有VPN CoS和因特网数据流）作为单个类别处理。通过容量规划，可保证适当的 QoS 水平。然而，通过将控制数据流（路由、信令、管理）分离出来，可在最坏的未预期情况下保护网络稳定性。

• 可以在已有MPLS核心上以逐步增加的方式提供IPv6因特网服务，而不需要在核心进行任何升级或更改，从而不影响任何现有的服务。

第5章 全球服务提供商设计案例

Globenet是一个虚构的国际服务提供商，它在全球拥有77个出现点（Point of Presence，POP），分布于北美、南美、欧洲、中东、非洲、亚洲和澳大利亚/新西兰。它的网络密度因所在国家而异。Globenet的网络扩展策略是在60个以上的国家建立出现点，并限制每个国家的POP数量（有些国家例外，如美国）。

对于那些在特定国家中许多位置需要大量连接的客户，Globenet 依赖于地区性服务提供商的互联，并与他们建立紧密的合作协议以提供无缝服务。最近，Globenet 还开始在一些国家提供虚拟 POP（VPOP）。VPOP 的主要概念依赖于“将一些路由器交给地区性服务提供商托管”这一前提条件。这些VPOP 通过地区性服务提供商网络的有保证的带宽服务，连接到 Globenet 核心网络。这实质上让Globenet能够在特定国家建立POP，而不需要将自己的核心网络扩展到该国。

注意 地区性服务提供商可以是国家电信公司（如第 4 章介绍的 TelecomKingland），也可以是在世界特定地区部署了密集网络的服务提供商。

通常，Globenet的客户群是大中型跨国企业，它们的站点遍布多个国家，且依赖于单家服务提供商来处理远程通信服务，而不是同多个全国或国际性运营商打交道。另外，对于这些企业，国际专线的费用仍非常高（尽管在有些地区，与几年前相比已经便宜得多）。因而，购买必要的国际线路容量来建立私有网络通常是一项费用高昂的方式，且需要同大量地区性服务提供商打交道。

Globenet的网络由各种不同的链路组成，它们在不同地区的速度和技术存在很大的差异。

本章的目标是介绍当前的 Globenet 网络设计，讨论国际性服务提供商网络的目标集及其网络特征。具体地说，本章将详细介绍如下重要设计方面。

• 第3层多协议标签交换（MPLS）虚拟专用网络（VPN）的可扩展性。

• 自主系统（AS）间和服务提供商间的第3层VPN和服务质量。

• 涉及服务提供商间MPLS流量工程（TE）的虚拟POP。

• 组合使用区别服务和支持区别服务的 MPLS 流量工程在网络核心的某些部分实现细粒度的QoS控制。

• 为通过 MPLS 中继 ATM 基础设施部署异步传输模式（Asynchronous Transfer Mode，ATM）伪线路。

• 引入IPv6第3层VPN。

5.1 Globenet网络环境

有些特征是国际性服务提供商网络特有的，通常它们依赖于各种物理链路类型及相关的第2层技术。这主要是因为每Mbit/s带宽的价格相差很大（例如，亚洲的链路费用远远高于美国）。所以，这不可避免地导致需要在特定地区限制容量，如亚洲和洲际链路。

这导致Globenet使用各种技术，如QoS、MPLS流量工程和ATM，对网络的某些部分进行仔细优化，以高效地实现其网络工程并减少周期性带宽费用。具体地说，在亚洲将利用采用私有网络—网络接口（Private Network-Network Interface，PNNI）路由和信令协议的ATM技术。POP通过Globenet的ATM交换机互联，采用规模和路由经过仔细规划的ATM实时可变比特率（variable bit rate-real time，VBR-rt）虚电路，其规模根据流量需求确定。另一方面，在美国的POP之间，部署了高速SONET-DWDM链路（OC-3和OC-48）。

Globenet 没有光纤基础设施，它在世界各地租用电路（受保护或未受保护的SONET异步数字系列（Synchronous Digital Hierarchy，SDH）电路、密集波分多路复用（DWDM）链路、时分多路复用（TDM）电路以及ATM永久虚电路（PVC）），需要与许多其他运营商和服务提供商打交道。

在较大的POP中，Globenet与前几章介绍的服务提供商一样，使用独立的PE路由器和P路由器。然而，在较小的POP中，Globenet将很多路由器同时用作P路由器和PE路由器，不分离这两种功能。共享PE路由器用于支持所有IP服务，包括因特网接入和 IP VPN。

因特网和第3层MPLS VPN客户站点与Globenet POP之间的连接通过帧中继、ATM、专线或SONET-SDH链路提供，接入速度为 56 kbit/s到OC-3。

在与其他服务提供商合作方面，Globenet 必须处理如下多种情况以便为国际性客户提供无缝服务：

• 客户站点可能直接连接到Globenet POP（使用地区性服务提供商提供的第1层或第2层连接服务）。

• 客户站点可能连接到与 Globenet 有提供商间协议的地区性服务提供商的POP。

• 客户站点可能连接到Globenet虚拟POP，该虚拟POP通过另一家服务提供商的骨干（能够提供保证的国际带宽）连接到Globenet核心网络。这种情况将在5.12节中详细介绍。

这些情况体现了这种国际性网络的复杂程度（在与地区性或国际性服务提供商的互操作方面）。这就需要从商务层面、技术层面（如在所有地区提供严格的服务水平协议（SLA）和高可用性）和运营层面（如与不同提供商网络管理系统的正确交互）对协议进行详细的描述。网络运营中心（Network Operations Center，NOC）需要同其他许多服务提供商打交道，同时继续充当单点联系人。另外，运营安排还涉及完善的监测和排错工具，以便在网络的某部分发生失效时快速、高效地确定问题的根本原因。

5.1.1 Globenet的服务项目

Globenet 这两年开发了许多种数据服务项目。最初它提供 X.25、帧中继和ATM 国际性服务。在过去的三年，X.25 和帧中继流量显著减少，Globenet 积极鼓励X.25和帧中继客户向其他VPN服务（如第3层MPLS VPN）迁移。此外， ATM流量一直在缓慢增长，尤其是在亚洲。因而Globenet继续提供ATM服务。

因特网接入服务已经提供了许多年，且以每年 40%的速度增长。客户通常通过网络接入点（Network Access Point，NAP）中的私有或公共对等点以及传输提供商来实现因特网连接。

第 3层MPLS VPN服务无疑是过去三年最成功的服务。Globenet当前安装了16000个专用VPN端口，它们组成500个VPN，流量以每年80%的速率增加，客户站点数量以每年120%的速度增长。它还提供多播和语音VPN服务。

此外，Globenet在提供的第 3层MPLS VPN环境中支持 5种服务类别（class of service，CoS）。

VPN和因特网服务的远程接入也非常成功，主要是因为国际性公司有大量的移动用户。

最近，Globenet开始扩展第 3层MPLS VPN服务，除已有的 IPv4 VPN外，还提供对 IPv6 VPN的支持。

5.1.2 Globenet POP的网络结构

根据客户接入密度和总吞吐量，Globenet POP分为 4种类型：1a类、1b类、2类和3类。

1．1类POP的结构

1类 POP位于大城市，由两台 P路由器和多台 PE路由器组成。P路由器通过E3、OC-3或OC-48链路连接到其他1类POP，并通过n×2 Mbit/s和OC-3链路连接到2类POP。在亚洲，它们通过Globenet的ATM交换机支持的ATM PVC连接。多台PE路由器通过吉比特以太网交换机连接到P路由器，如图5.1所示。另外，为进行分离，使用了几个虚拟LAN（VLAN）。

图5.1 Globenet 1a类 POP的设计（亚太地区除外）

• 一个VLAN将网络接入服务器/宽带接入服务器（NAS/BAS）连接到其VRF中的各台PE路由器；

• 一个VLAN将PE路由器面向核心的接口连接到P路由器。

P路由器连接到PE路由器和NAS。在位于提供非对称数字用户线（ADSL）的国家的 1类 POP中，BAS也连接到P路由器。

图5.2说明了亚太地区的1a类POP设计。它与其他地区的1a类POP的差别是，亚太地区 2类POP连接是通过Globenet ATM交换机提供的ATM PVC支持的。

图5.2 亚太地区的Globenet 1a类POP的设计

图5.1和图5.2说明了1类POP的一种子类型（1a类）。另一种子类型为1b类，如图 5.3所示。它与 1a类类似，但Globenet ATM交换机连接到PE路由器，且使用伪线路通过MPLS进行中继（伪线路服务在第1章介绍过）。1b类POP部署在北美和欧洲-中东-非洲（EMEA）地区，Glogbenet决定通过MPLS基础设施传输ATM数据流，因为在这些地区，IP流量与ATM流量相比占绝对优势。如图5.4说明了如何通过伪线路服务传输ATM数据流。

图5.3 Globenet 1b类POP的设计

图5.4 通过伪线路服务传输1b类POP中的ATM数据流

2．2类POP的结构

较小的POP归为2类。它们只有一组路由器，同时用作P路由器和PE路由器，所以也称为P/PE路由器。每个这样的POP中至少有两台P/PE路由器，各自连接到其他1类或2类POP。P/PE路由器也连接到CE路由器、NAS，偶尔还连接到 BAS。设备之间的互联与 1类 POP相同，依赖于 2吉比特以太网交换机。2类POP的结构如图5.5（亚太地区除外）和图5.6（亚太地区）所示。

图5.5 Globenet 2类POP的设计（亚太地区除外）

图5.6 Globenet在亚太地区的2类POP的设计

3．3类POP的结构

Globenet在亚洲有一些非常小的POP，它们只有1台P/PE路由器，连接到NAS和几台CE路由器。这种 3类POP通过ATM网络提供的ATM PVC或从地区性服务提供商租用的ATM PVC连接到最近的 1类或 2类POP。3类POP的结构如图5.7所示。

图5.7 Globenet 3类POP的设计（亚洲）

5.1.3 Globenet全球性网络的架构

Globenet在全球运营的77个POP中，路由器的总数超过250个，其中包括200个共享第 3层MPLS VPN和因特网服务的PE路由器。

为说明整体网络架构，下面几个小节将介绍Globenet在每个地区建立的网络拓扑。

注意 出于简化的目的，对于包含大量POP的地区，在图中只显示一部分有代表性的POP。

1．EMEA地区

欧洲-中东-非洲（Europe-Middle East-Africa，EMEA）网络由 25个POP组成，其中大多数1类POP用受保护的STM-1和STM-16链路（从地区性服务提供商那里租用）互联。有几个较小的 2类POP（主要在东欧）用 n×2 Mbit/s的链路束连接到1类POP，其中n取决于POP的流量要求，取值为1～4。在这里，使用的是多链路PPP（参阅文档[MLPPP]）。EMEA地区的结构如图5.8所示。

图5.8 EMEA地区的Globenet网络设计

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

在EMEA地区，不同网络部分使用以下两种模型之一来运行IP网络和ATM网络（以前是支持ATM服务部署的）。

• 在“ships in the night”模式下，ATM网络和 IP/MPLS网络分别有专用的带宽容量，且相互独立地运行。

• 在“inverted overlay”模式下，ATM交换机通过MPLS伪线路在 IP/MPLS核心网络上中继。在这种模式下，所有带宽都由 IP/MPLS 网络管理， ATM所需的带宽由IP/MPLS网络通过MPLS伪线路提供。

考虑到该地区的 IP/ATM 比率在不断增长，从长远看，Globenet 在 EMEA地区的策略是向完全的“inverted overlay”模式迁移。

2．亚太地区

在亚洲，POP的总数是30个，另外在澳大利亚还有2个POP：一个位于悉尼（1类），另一个位于Perth（2类）。其网络拓扑（部分）如图5.9所示。

图5.9 Globenet在亚太地区的网络设计

在亚洲只有少数几个POP是 1类 POP，它们通过未保护OC-3链路互联。其余的主要是2类POP和少量的3类POP。

因为该地区的带宽费用很高，所以Globenet认为在该地区需要进行仔细的带宽规划和严格的流量工程。这也是为什么它使用Globenet的ATM交换支持的ATM虚电路（Virtual circuit，VC）（而不像在EMEA地区那样使用单独的专用链路）来实现2类和3类POP互联的原因。这让Globenet能够对带宽使用进行更细致的优化，因为可以分别调整 VC 的带宽，以与当前的需求相匹配，而没有直接链路那样的细粒度限制。

所以，Globenet 在亚洲实质使用的是一种覆盖模型，其中所有容量都用于ATM交换机的互联，2类POP通过ATM交换机支持的ATM VC互联。ATM VC的带宽范围从 1 Mbit/s（对于最小的 POP，如 3类 POP）到 40 Mbit/s。如果超过这种速率，使用专线实现路由器互联的成本效益将更高。

鉴于运营和开销的原因，Globenet每6个月调整一次每个ATM VC的带宽（将测量到的负载乘以过度租用系数）。因为这个频率较低，所以Globenet选择在ATM PVC上使用额外的流量工程技术（基于MPLS的TE），进一步优化在ATM VC带宽调整之间ATM网络提供的带宽的使用。另外，如本章所述，MPLS TE允许每两小时一次动态调整TE LSP的带宽，而通过ATM PNNI将很难实现这种效果。

3．北美地区

Globenet 在北美地区（美国和加拿大）共有 15 个 POP。其中大多数为 1b类，使用未保护的OC-48（基于租用的DWDM链路）互联。其他都是2类POP，它们通过未保护的OC-3链路连接到1类POP。北美拓扑如图5.10所示。

图5.10 Globenet在北美地区的网络设计

因为Globenet的ATM交换机通过北美地区MPLS网络的ATM伪线路互联，所以Globenet在该地区使用“inverted overlay”模型。在该模式下，所有容量都由IP/MPLS网络管理，ATM交换机通过IP/MPLS网络支持的MPLS伪线路互联。

4．南美地区

Globenet在南美地区共有6个2类POP，分别位于Caracas （Venezuela）、Bogota（Columbia）、Rio de Janeiro（Brazil）、Santiago（Chile）、Buenos Aires （Argentina）和Lima（Peru）。

直到最近，所有这些 POP 都通过使用覆盖模型的 ATM 交换机支持的ATM PVC互联（与亚洲地区的部署方法相同）。然而，最近一次升级将该拓扑更改为使用专用的 34Mbit/s 链路直接连接 POP 路由器，从覆盖模型迁移到“ships in the night”模型（在EMEA地区的某些地方也使用这种模型）。该地区的拓扑如图5.11所示。

图5.11 Globenet在南美地区的网络设计

在南美地区，因为地面链路的费用很高，所以使用了几条卫星链路。卫星链路的使用对Globenet非常有吸引力，因为它们以较低的费用得到了额外的带宽。它们还允许该地区内的长距离连接，因为它们的费用与距离无关。对于这些卫星线路有一些特别考虑，将在后面的5.9.2节和5.10.6节中介绍。

值得注意的是，因为每个地区的带宽服务费用和可用性各不相同，所以Globenet最终为IP/MPLS和ATM互联使用了三种不同的模型：

• 在EMEA的有些地方和南美，选择使用“ships in the night”模型，其中IP/MPLS与ATM完全独立运行；

• 在亚太地区选择覆盖模型，其中IP/MPLS运行在ATM上；

• 在北美和EMEA的有些地方，选择“inverted overlay”模型，其中ATM运行在IP/MPLS上。

IP与ATM流量的比率是为IP/MPLS和ATM互联选择适当模型的一个关键性决策因素。在有些地方，绝大多数流量是 IP流量，所以“inverted overlay”模型最具吸引力，也是成本效益最高的。反过来，在以ATM流量为主的地区，覆盖模型是最合适的选择。最后，在 EMEA 的有些地方和南美地区选择采用“ships in the night”模型的动机是，在这些地方 IP/MPLS流量和ATM流量都不占统治地位。考虑到IP流量的不断增长，Globenet预期将来的趋势是向“inverted overlay”模型发展。

5.1.4 洲际连接

前面介绍的所有地区都通过受保护的E3和OC-3链路相互连接，如图5.12所示。

图5.12 Globenet跨地区连接的网络设计

5.1.5 Globenet的路由架构

Globenet 选择使用多 AS 路由架构，其中每个地区构成一个独立的自主系统。这样做的原因主要是考虑可扩展性，以便限制地区路由信息。在每个 AS中选择的路由协议是 IS-IS（Intermediate System-to-Intermediate System，中间系统-中间系统），并采用单个 IS-IS 2级拓扑。

因特网路由被分发给 P 路由器。然而，这纯粹是一种失效保护措施，使得即使发生标签交换失效，因特网数据流仍能被转发。Globenet 的因特网路由反射设计与第 4 章介绍的相同。然而，每个地区是一个独立的自主系统。在每个地区内，通过不同地区间的IPv4路由分发，在本地提供因特网接入。

每个AS中的 IGP（Interior Gateway Protocol，内部网关协议）路由总数各不相同，但在任何AS中都不超过1000条。对于IPv4因特网，Globenet当前包含大约 140000条路由。对于第 3层MPLS VPN服务，在全世界的VPNv4路由总数为80000条，包括从地区性AS间合作伙伴那里收到的路由。因为VPNv4路由的数量在不断增长，所以Globenet选择在地区之间过滤路由，尽管当前在自主系统边界路由器（Autonomous System Boundary Routers，ASBR）上节省的路由数量不多。

5.1.6 运营商合作关系

Globenet 当前没有足够密集的网络覆盖全球所有地区，以高效地连接给定国家中位于不同地方的多个客户。因而，它的策略是连接这种客户到一家地区服务提供商合作伙伴，然后在它的网络基础设施与地区服务提供商网络基础设施之间使用跨 AS VPN 解决方案。这种运营商之间的连接通过至少两台出口ASBR提供。例如，第 4章介绍的Telecom Kingland就是一个这样的地区服务提供商，Globenet可以与它合作提供无缝的第 3层MPLS VPN服务。

然而，在有些国家，Globenet 不能（由于当地的管制）或不愿（由于客户数量众多）使用跨AS VPN解决方案中的连接模型来扩展其网络。在这些情况下，Globenet 可以使用虚拟 POP（VPOP）：将它的路由器放在地区服务提供商的 POP中。该路由器通过跨AS流量工程标签交换路径（TE LSP）（该路径由地区服务提供商提供，能够提供传输带宽保证）连接到Globenet的主网络。这种互连将在5.12节中详细介绍。

5.1.7 链路类型和保护细节

表5.1说明了Globenet网络中的各种链路类型及其特征。

表5.1 Globenet骨干中的链路类型和特征

注意 通常，Globenet总是试图部署未受保护的OC-3链路（并依赖于MPLS流量工程快速重路由功能来提供本地保护）。然而，有几个地区只有受保护的 OC-3链路。这说明了为什么要混合使用受保护和未受保护OC-3链路的原因。

在过去的十年，Globenet 收集了各种网络的失效统计数据，它们在每个地区发生的频率和持续时间都各不相同。这些结果如表5.2所示。这些统计数据在很大程度上影响了路由和MPLS快速重路由的网络设计。

表5.2 Globenet网络中的链路失效统计

续表

5.2 Globenet网络的设计目标

Globenet网络的设计目标包括如下一些考虑。

• 为Globenet的国际性客户提供丰富的第3层MPLS VPN服务项目，包括数据（单播和多播）、语音和视频，并提供完善的QoS功能和IPv6支持。

• 确保Globenet的网络设计能够应对因特网和VPN流量的预期增长，并具备适当的可扩展性。

• 提供一个高可用网络，使其能够快速会聚并在发生单个网络元素失效（如链路或节点失效时）对数据流的影响最小，且不需要任何额外的费用。

• 使周期性带宽费用最小化，并通过部署各种网络优化技术（如流量工程和区别服务）来提供区别服务，同时保持合理的网络管理和运营复杂性。

• 在IP/ATM流量比率较高的地区，使用IP/MPLS网络的可用带宽来承载ATM数据流，并提供等价的服务质量。

本章后面将介绍Globenet的网络设计选择，包括IPv4和IPv6第3层MPLS VPN、ATM伪线路、QoS、流量工程、网络恢复以及VPOP。就VPN、QoS和TE而言，将重点介绍AS间和提供商间的网络设计。

5.3 第3层MPLS VPN服务设计

Globenet的第 3层MPLS VPN服务设计同时提供“受管理”和“非管理”接入。受管理服务让Globenet能够提供并管理客户接入设备；非管理服务只提供到第 3层MPLS VPN服务的连接，不管理客户接入设备。Globenet的绝大多数客户都使用受管理服务，只有少数几个大型企业采用非管理服务。

MPLS VPN设计的许多方面（如PE路由器工程指导方针、负载均衡支持、命名约定等）与前几章介绍的相同，在本章不再介绍。除非特别说明，Globenet将使用前面详细讨论的所有第 3层MPLS VPN设计最佳实践。因为Globenet是一家国际性服务提供商，它提供全球性服务项目，所以本章将重点介绍这种服务提供商特有的设计方面。

5.3.1 共享边缘因特网和MPLS VPN服务

Globenet选择使用相同的PE路由器来端接所有服务，包括因特网和第3层MPLS VPN以及用于中继ATM交换机的ATM伪线路服务。然而，因特网路由只分发到那些需要因特网接入或需要多条默认路由的客户站点连接的 PE 路由器。本章后面将介绍Globenet如何提供因特网接入。

在设计网络时就考虑了在相同边缘路由器上共享服务的影响。主要是安全性和可扩展性，这两个主题都将在本章后面介绍。

Globenet决定不运行无BGP的核心（这与前一章介绍的Telecom Kingland不同）。这样决策的原因是Globenet多来年在核心中一直运行采用BGP协议的因特网网络，没有理由改变这种情况，同时它还想为因特网数据流提供失效保护机制，以防LSP失效。因此，它采用BGP-4协议将因特网路由分发到所有P路由器。所有数据流（包括VPN和因特网）都将通过P路由器之间的RSVP-TE LSP和PE/P路由器之间的LDP，在网络上进行标签交换。

注意 在P路由器之间的RSVP-TE隧道接口上启用了LDP。这是设计的一个重要部分，因为它允许第 3层MPLS VPN数据流在入口和出口 PE路由器之间维持完整的端到端LSP。

5.3.2 Globenet不同地区之间的连接

因为Globenet第3层MPLS VPN服务主要用于满足大型企业连接，所以属于不同客户的路由需要频繁地在全球性网络的不同地区之间分发。由于这种需求，Globenet需要选择一种AS间解决方案，以提供不同自主系统之间的连接。

鉴于可扩展性原因，对于内部连接需求，Globenet选择只评估AS间解决方案中的方案B和方案C。有关这两种解决方案的详细介绍，请参阅1.3节和文档[2547bis]的第10节。三种主要的AS间解决方案如下。

• 方案A：背靠背虚拟路由/转发实例（VRF）。

• 方案B：在ASBR之间交换VPNv4路由。

• 方案C：在路由反射器（RR）之间交换VPNv4路由，并在ASBR之间交换下一跳。

考虑方案B和方案C后，Globenet选择在不同自主系统之间的所有内部互联点上部署AS间解决方案B。

Globenet选择在地区间直接交换VPNv4路由作为解决方案的原因如下。

• 在自主系统边界上可以很容易地部署过滤，从而只分发必要的路由。

• ASBR不需要任何VRF（如果采用方案A则需要）。它们只需复制标签转发信息库（LFIB）和VPNv4转发信息，这样有更好的可扩展性。

• 每个自主系统不需存储其他地区PE路由器的IGP路由。

图5.13说明了如何在不同地区之间部署方案B连接。

图5.13 Globenet内部的AS间连接

1．在ASBR上过滤VPNv4路由

Globenet在POP内部使用专门的P路由器来提供ASBR功能。这些P路由器使用OC-3或OC-48链路连接到POP的核心P路由器。

PE路由器或ASBR收到VPNv4路由后的默认行为是，只保留那些包含路由目标扩展共用体（对于它们，接收路由器在特定 VRF 内配置了一条相应的“import”语句）的路由。这种功能通常称为自动路由过滤（Automatic Route Filtering，ARF）。

在ASBR上使用AS间方案B意味着不再需要VRF。因而ASBR默认不保存收到的任何VPNv4路由。为解决这个问题，以提供不同自主系统之间的连接，必须禁用默认的ARF功能。为此，Globenet使用程序清单5.1所示的配置模板。

程序清单5.1 禁用ARF的ASBR配置模板

让ASBR保留所有VPNv4路由后，Globenet认识到需要在自主系统之间通告的总路由数量只是给定地区总路由数量的一部分。例如，在EMEA地区，只有 20%的路由需要向北美地区通告。这是因为在全部客户中，只有一小部分客户在多个地区有出现点。然而，如果在 ASBR 上没有某种形式的过滤，所有VPNv4路由都将分发到所有地区。这种行为对于Globenet的长期设计实践来说是不能接受的。

为防止将所有VPNv4路由分发到所有地区，Globenet选择在ASBR上实现一种过滤方案。它主要评估了如下两种方案。

• 保留范围路由目标过滤：在ASBR上根据从Globenet的保留范围中取得的路由目标值进行过滤，如果路由需要跨越自主系统边界，则在导出路由期间将该值添加到VRF中。

• 客户特定的路由目标过滤：在ASBR上根据客户特定的路由目标值进行过滤。

注意 与前一章介绍的Telecom Kingland相同，Globenet保留前 100个路由目标值供内部使用。

第一种方案（根据保留路由目标值进行过滤）的优点是，已有VPN需要扩展以跨越地区或添加新的VPN时，无需修改ASBR上的过滤器。其原因是只有少数几个固定的过滤器是必要的，因为用于过滤的路由目标值永远不会改变。这有助于防止错误配置过滤器而影响多个客户。

这种方案的另一个重要优点是，在本地策略发生改变时，ASBR 不需要向路由反射器请求路由更新。每当ASBR上的过滤器发生改变时，它必须接受以前丢弃的路由信息。例如，如果过滤器最初拒绝路由目标值32763:921，所有包含该值的路由将被丢弃。然而，如果后来增加了使用该路由目标值的客户，路由反射器必须重新获取这些路由。这是通过给路由反射器发送路由刷新消息实现的，它导致将VPNv4地址簇的整个MP-BGP表下载到ASBR。[Route-filter]提出了一种改变这种行为的方案：路由反射器将根据路由目标值，只下载相关的路由。然而Globenet进行初始设计时还没有该选项。

尽管保留路由目标方案具有上述优点，但它没有完全消除配置修改。请考虑这样一种情况：已有的VPN从连接方面看是地区性的，但要在全球性网络的其他地区添加站点。这时需要修改PE路由器的配置，使得保留路由目标值添加到该VPN的VRF中，以便在地区之间通告它们的路由。对于新客户部署，这并不是问题，因为PE路由器总是需要设置。当存在多个自主系统时，将导致这种方案的另一个缺点。这意味着需要分配几个路由目标值，以提供基于每个AS对的相关过滤。这很快会变得非常复杂且难于管理。

尽管Globenet网络的绝大多数变化都是增加新客户，而不是现有客户发生改变（从单地区连接变为多地区连接），但它仍采用第二种方案（使用客户特定的路由目标值），并只在ASBR路由器上应用过滤。这样做的原因是，每个自主系统可以选择自己的导入/导出策略（下一节将介绍）。这实质上要求 Globenet在所有AS 边界上重写路由目标值。重写这些属性要求修改ASBR的配置；因而使用保留路由目标值的优势被严重削弱。另外，Globenet 不希望为应用过滤策略而涉及多个方，虽然这种情况不经常发生。

错误配置过滤器的风险是非常小的，因为所有供应都是通过使用集中工具（而不是直接在路由器上）实现的。另外，就当前而言，从路由刷新的角度说，路由反射器存储的 VPNv4 路由数量并不是问题。因而，每当修改过滤器时都将下载整个路由表也不是大问题。程序清单5.2所示的配置演示了如何应用这种过滤。

程序清单5.2 用于过滤VPNv4路由的ASBR配置模板

（待续）

2．地区之间的路由目标/路由区分标记的分配

AS间解决方案B让Globenet能够为每个地区部署IGP域以及过滤和路由分发策略。但从第 3层MPLS VPN服务供应角度看，这使Globenet在应如何为客户VPN分配路由目标（route target，RT）和路由区分标志（route distinguisher， RD）方面陷入两难境地。实质上有两种方案可以选择。

• 跨地区值：对于给定VPN，在所有地区使用相同的值。

• 地区特定值：使用与地区相关的值。

尽管在排错和网络供应方面，使用跨地区值有一些优点，但这并不是可行的解决方案。主要原因是它要求Globenet协调地区间的第3层MPLS VPN RT/RD值分配（不管 VPN 是否有跨地区连接需求），以避免选择的值发生冲突。从服务管理的角度看，这是不能接受的。因而Globenet选择为给定地区使用特定的值，这允许各地区在其RT/RD结构中使用其自主系统号，从而确保每个地区分配值都不同。

使用地区特定值提供了地区自治，但带来了自主系统边界上的协调问题。因为每个地区使用自己的RT/RD值，如果它要与另一个地区交换路由，必须知道其他地区对该VPN使用的值。虽然这是一个服务管理问题，但并没有使用跨地区值带来的问题那么严重。只有那些跨地区边界的 VPN 需要协调 RT/RD 分配，使得只有相关的值才能进入ASBR的过滤器。另外，这种问题与ASBR无关，因为Globenet收到来自其他地区的路由时，将路由目标值改写为本地区的值。这是通过使用RT-rewrite功能实现的，程序清单5.3是使用的配置模板。

程序清单5.3 ASBR的RT-rewrite配置模板

图5.14说明了一个在北美和EMEA地区都有站点的客户（SoccerOnline）及使用相关ASBR RT-rewrite过滤器给它分配的RD/RT。

图5.14 Globenet用于SoccerOnline的RT-write

5.3.3 与地区性服务提供商的连接

Globenet与全球不同地方的本地第 3层MPLS VPN服务提供商签署了大量VPNv4 对等协议，因而能为那些通过本地运营商连接的客户提供无缝服务。Globenet 尽可能将其设备与地区性提供商放在相同的地方，并将吉比特以太网作为首选连接介质，有时候也使用帧中继。

这些连接的设计需求显然与不同Globenet地区间连接的设计需求不同。AS间解决方案B和C存在如下问题。

• 同地区性服务提供商的RD/RT分配协调太复杂。

• 防止标签伪造、入侵和拒绝服务（DoS）攻击的安全措施很难以 100%的精确性实现。

• 转发是基于全局性LFIB而不是VRF特定转发信息库（FIB）的，因此更容易导致滥用。

• 如果选择AS间解决方案C，必须交换Globenet IP地址空间。

• 有些服务（如多播和IPv6）的部署更复杂，且比在单个Globenet地区中部署这些服务需要更多的功能。

考虑到这些问题，Globenet选择部署AS间连接方案A（第1章讨论的背对背VRF）来实现所有地区性服务提供商连接。这种模型尽管在内存分配、接口数量等方面的可扩展性不如其他AS间连接解决方案，但让Globenet能够很容易地部署AS间VPN，并避免了其他解决方案带来的一些问题。图5.15显示了当前的每条对等连接。

图5.15 Globenet和地区性服务提供商之间的AS间连接

通过使用这种AS间连接方案，Globenet可以将所有地区性服务提供商视为VPN客户。在ASBR上，为每个需要连接到地区性服务提供商的AS间VPN启用VRF。另外，对于每个VPN还需要一个单独的逻辑接口。因而需要吉比特以太网和帧中继，因为它们分别通过VLAN和PVC提供了这种功能。

在每个VRF上下文中启用BGP-4协议，并使用它来交换路由信息。

对于这些VRF，使用与常规VPN客户VRF相同的配置参数：最大路由数、BGP-4会话上的最大前缀数等。

图5.16说明了一个需要与Globenet和地区性服务提供商连接的客户（Candy International）以及如何使用这种连接。

图5.16 Candy International到地区性服务提供商的连接

5.4 为MPLS VPN客户提供因特网服务

因特网接入与第 3层MPLS VPN服务捆绑在一起。根据客户的需求，有几种连接方式可供选择。可通过Globenet PE路由器的全局路由表来接入因特网服务，也可通过客户VRF中的默认路由来接入。

在Globenet全球网络中，每个地区使用与该地区其他因特网服务提供商的对等会话来提供因特网接入。这意味着每个地区（除南美外）将通过本地对等会话接收适当数量的路由，以免需要中转服务。

从该地区连接的Globenet客户那里收到的本地IPv4路由，将跨越Globenet网络的自主系统边界进行交换。客户还可以通过来自其他地区的备用默认路由来接入因特网。这跨过了地区边界，但它仍位于客户的VPN环境中。

图5.17说明了如何跨越Globenet网络建立因特网连接。北美地区将用作南美地区的中转自主系统。北美、亚太和EMEA地区之间都有直接连接。

图5.17 Globenet的因特网连接

5.4.1 通过全局或VRF路由表接入因特网

Globenet就在全局路由表还是特定“因特网”VRF中存储因特网路由进行了评估。

在VRF中存储路由有如下诱人的特征。

• 它提供了更高的安全性，而不需要部署访问控制列表（access control list，ACL）。这是因为在 VRF 中，默认情况下将禁止所有从客户站点到 PE路由器的外部访问（如 Telnet、简单网络管理协议（SNMP）等，但路由协议除外）。

• 核心基础设施完全孤立，从而可防止外部入侵。此外，网络边缘也可以防止外部入侵，因为路由不能从 VRF 泄漏到全局路由表中（除非显式配置）。

然而，这种方法也存在一些缺点。

• 如果需要在PE路由器上同时提供因特网和第 3层MPLS VPN服务，至少可扩展性是一个挑战，因为大量的IPv4路由变成了VPNv4路由（它们包含在VRF中），从而消耗更多资源，如内存和标签空间。对于要将第 3层MPLS VPN添加到Globenet已有的路由器平台上的情况，这种方法没有留下多少空间。

• 需要基于每VRF支持因特网数据流所需的当前和未来功能。也就是说，这些功能必须是“VRF-支持”的功能。

所以，Globenet 决定通过全局路由表接入因特网，并在网络边缘应用适当的过滤器，以帮助降低入侵或DoS攻击的风险。

5.4.2 使用默认路由接入因特网

如前所述，访问Globenet第 3层MPLS VPN服务的主要客户群是在世界各地有办事机构的大型公司。这种客户在过去大都采用星型拓扑。这意味着它们有几个中央站点/数据中心分布在不同地区，还有大量的分支站点。

对于VPN连接，第 3层MPLS VPN服务的全互联性质非常有吸引力，尤其是对于像VoIP这样的应用。然而，对于因特网服务，通常仍然是在中央站点获得全部因特网路由，而在分支站点使用到中央站点的默认路由。中央站点通常为公司提供网络地址转换（Network Address Translation，NAT）、缓存和防火墙服务。

可以采用多种方式将默认路由注入到特定VPN中。在有些情况下，VPN客户通过其他 ISP 接入因特网。在这种情况下，默认路由将作为路由信息的一部分在VPN环境内通告，从而通告给VPN的站点。这与Globenet提供的因特网服务无关，Globenet为这种客户提供的唯一服务是VPN连接。

如果由Globenet提供因特网接入服务，客户有多种方式可以选择。最容易处理的接入类型是，最终客户有注册的 IP 地址空间或自己提供 NAT/防火墙服务。在这种情况下，Gloenet 不需要提供 NAT 或防火墙服务，而只需客户生成一条默认路由。图5.18说明了这种客户的典型拓扑。

图5.18 通过客户中心站点生成的默认路由接入因特网

在图5.18中，客户中央站点（经这里接入因特网）为VPN生成一条默认路由。该默认路由将通告到Globenet网络中，以便导入到远程分支站点的VRF中。如果Globenet管理客户CE路由器，它将在中央站点的CE路由器上生成一条默认路由。它使用指向客户防火墙（通常位于本地LAN上）的静态路由，并在面向Globenet PE路由器的客户BGP进程中使用default-information originate命令。如果CE路由器是非管理路由器，将由客户在CE路由器上生成默认路由，或由Globenet在PE路由器的VRF中生成默认路由。

如果客户没有使用中央站点来提供因特网接入，且客户使用注册的IP地址空间，Globenet 将通过其因特网网关使用一条默认路由提供因特网接入，在离该因特网网关最近的PE路由器上，该默认路由被注入到客户VRF中。图5.19说明了这种连接。

图5.19 通过Globenet出口生成的默认路由接入因特网

Globenet使用程序清单5.4所示的模板生成一条静态路由，在离因特网出口最近的PE路由器上，该路由被注入到客户VRF中。

程序清单5.4 静态默认路由模板

在程序清单5.4中，将一条默认路由注入到客户VRF（配置在图5.19中的PE1、PE2和PE3上），其下一跳指向Globenet因特网出口。在静态路由配置中，关键字globe表示该路由的下一跳地址存储在PE路由器的全局路由表中，而不是VRF中。第二条静态路由指向客户站点存储的一条路由。该配置是必要的，这样这些IP子网地址才能通告到因特网，从而返回数据流才能被路由回源VPN站点。

5.4.3 通过PE-CE接入链路接入因特网

Globenet 为那些需要直接向因特网发布路由或从因特网接收路由的客户提供了因特网服务，如需要与因特网实现双重连接的客户。

Globenet评估了将因特网路由注入到每个需要接入因特网的客户VRF中的可能性。然而，这种方案很快被否定。将超过150000条因特网路由注入到每个需要接入因特网的 VRF 中，显示不是一种具有良好可扩展性的解决方案，且Globenet将很快消耗尽PE路由器的内存。

相反，Gloenet决定将因特网路由通告到其核心网络中的所有P路由器以及需要因特网路由的PE路由器。也就是说，Globenet连接了一些因特网客户，但不是所有PE路由器都需要因特网连接。这些路由将存储在P/PE路由器的全局路由表中。

因为因特网路由存储在全局路由表中，所以必须为每个要向PE路由器通告因特网路由或从PE路由器那里接收因特网路由的VPN站点提供一条单独的连接。这种额外连接通常通过PE路由器和CE路由器之间的帧中继PVC来提供。这意味着每个（要获得部分或全部因特网路由的）VPN站点有两个帧中继PVC：一个用于VPN服务，另一个用于因特网服务。

PE 路由器被配置成通过 BGP-4 会话将因特网路由重分发给客户 CE 路由器。而从CE路由器那里收到的BGP-4路由被注入到PE路由器的全局路由表中，并使用IPv4地址簇通告给因特网。图5.20说明了这种解决方案。

图5.20 PE/CE路由器之间的因特网路由访问

在图5.20中，客户CE路由器能够直接端接VPN帧中继PVC，但使用帧交换功能将因特网PVC的负载转移到站点中的另一台路由器。这样，该路由器将能够通过防火墙将因特网路由注入到站点中，使得所有来自该站点的因特网数据流都将穿过防火墙，并通过因特网PVC到达PE路由器。该PVC终结于PE路由器的全局表；因而PE路由器可以按正常方式转发数据流。VPN PVC终结于VRF，对于任何通过该连接收到的网络包，PE路由器将使用MPLS VPN转发机制。

5.4.4 通过Globenet NAT/防火墙服务接入因特网

前面介绍的所有因特网解决方案都依赖于最终客户自己提供的 NAT/防火墙服务。然而，Globenet的许多客户不想运行自己的缓存引擎、防火墙和NAT服务，它们想从Globenet获得这些服务。

Globenet在每个地区的1类POP中的通用网关提供这些服务。图5.21说明了POP的结构。

图5.21 包含NAT/防火墙/缓存设施的1类 POP

每个因特网网关生成一条默认路由，该路由被导入到每个订阅客户VRF中。为此，该默认路由将承载在一个“因特网”VRF中，后者的导出路由目标被订阅客户导入到其本地 VRF 中。反过来，相应的客户路由被导入到因特网 VRF中，并通告到因特网，以转发返回的数据流。

在入口PE路由器上，对于与客户VRF中的内部网目的地址不匹配的数据流，将通过默认路由转发到因特网网关。该网关被配置成执行NAT，将客户地址空间转换为可用IP地址池中的注册地址。然后，该包将被传送到Globenet的缓存引擎和防火墙。Globenet 有几个因特网网关，因此如果有些客户使用相同的地址空间，可以通过不同的网关来执行NAT转换，从而避免VPN客户之间的冲突。

5.5 mVPN服务的设计

Globenet提供AS间多播VPN（mVPN）服务，其细节与前一章介绍的多播VPN服务类似，包括在核心使用协议无关多播稀疏模式（PIM SM）以及在边缘使用协议无关特定源多播（PIM SSM）。然而，因为Globenet需要满足大型国际性企业的需求，所以该服务可能跨越两个或多个地区性网络，这意味着该服务需要在AS间环境中运行。当前，Globenet没有与其任何地区性服务提供商合作伙伴运行mVPN服务的需求。

如前所述，Globenet选择在所有地区之间使用AS间连接方案B。这种模型需要在ASBR之间直接交换VPNv4路由。这种连接具有如下特征。

• MP-BGP 下一跳重写。因为 ASBR 之间的每条连接都是一个外部MP-BGP 会话，所以每条路由的下一跳地址被重写为用作会话源的ASBR接口地址。

• 接收ASBR的下一跳重写。接收ASBR可能重写或不重写下一跳IP地址。这是通过在接收路由器上配置下一跳地址自身来实现的。

• 原始下一跳IP地址对于接收自主系统不可用。IPG路由不会在不同自主系统之间交换，因而不能通过相邻地区前往原始PE路由器下一跳地址。

在不同自主系统之间扩展mVPN服务时，这些特征带来了如下许多问题。

• 不能为每个AS间mVPN建立默认多播分发树（multicast distribution tree，MDT）。默认MDT依赖于PE路由器加入到默认多播组。多播组的源地址是用于MP-BGP对等关系的源PE路由器地址，该地址不能跨地区到达，因为IGP路由不能跨自主系统分发。

• 在P路由器的反向路径转发（Reverse Path Forwarding，RPF）检查失败。当PE路由器发送加入默认MDT的PIM消息时，在源和目标PE路由器之间的路径上，每台 P 路由器都必须对源地址执行 RPF 检查。因为IGP路由（如PE路由器源地址）不会跨自主系统分发，所以接收地区的P路由器不能执行RPF检查。

• 相邻地区PE路由器上的RPF检查失败。在mVPN中收到PIM加入消息时，将在VRF中执行IP查询以获悉前往目的地的下一跳。该目的地必须是一个能够通过MDT隧道接口到达的PIM邻居。然而，因为ASBR修改 MTD 组的起源 PE 路由器的下一跳，所以起源源地址将会丢失，因此PE路由器上的RPF检查不能成功。

由于这些问题，mVPN解决方案需要修改，以适用于AS间连接方案B。

5.5.1 AS间mVPN的MP-BGP支持

Globenet最初部署的AS间mVPN解决方案，能够通过VPNv4路由更新获悉 给 定 MDT 隧 道 的 源 地 址 。 这 种 路 由 更 新 的 格 式 为{2:RD:PE-router-loopback-address}，它与每个本地mVRF的MDT组地址一起包含在扩展共用体属性中。这种解决方案在全球网络的每个地区内部可正常工作。然而，因为扩展共用体属性是不可传递的，所以MP-BGP不能跨越自主系统边界通告路由。这使得Globenet无法将其mVPN解决方案扩展跨越多个地区。

为解决这个问题，Globenet引入一种解决方案[MDT-SAFI]：定义了一个新的子地址簇（SAFI），用于承载源PE路由器的地址（对于包含在PIM加入消息中的MDT组，加入消息将发送到该PE路由器）。在SAFI中承载的NLRI的格式为{RD:PE-IP-address}。每个 MDT 组使用如图 5.22 所示的格式，承载在MP-REACH属性中。

图5.22 MDT SAFI

在相邻自主系统中，要加入给定mVPN默认MDT的特定源的PE路由器，必须知道源PE路由器地址的来源。如前所述，这将导致一些问题，因为VPNv4路由的原始下一跳地址在网络一个或多个地方被重写。因而，由每个自主系统中PE路由器发出的VPNv4路由必须包含一个新属性（connector），用于定义路由的来源。该属性的格式如图5.23所示。

图5.23 Connector属性的格式

将connector属性用于AS间mVPN解决方案时，类型字段设置为1，长度字段设置为4，值字段包含始发PE路由器的IPv4地址。

为支持这种新功能，Globenet对所有需要支持AS间mVPN功能的PE路由器、路由反射器和ASBR增加了这种新SAFI。这种配置将使用程序清单5.5所示的模板来添加。

程序清单5.5 AS间mVPN SAFI模板

5.5.2 在Globenet地区之间建立mVPN MDT组

如前所述，通常PIM发送包含上游PE路由器IP地址（它们为给定MDT组的源）的加入消息。为能够执行RPF检查，P路由器必须具有到其他自主系统中PE路由器的IPv4可达性。AS间连接方案B并不属于这种情况，因为自主系统不交换IGP路由，包括本地PE路由器的IGP路由。然而，对于在PE路由器上收到的MDT SAFI中BGP MDT更新的BGP下一跳地址，P路由器具备到该地址的可达性。因而，如果PE路由器在PIM加入消息中添加远程PE路由器的 IP地址（MDT SAFI中的地址）以及该地址的BGP下一跳地址，P路由器将能够根据该BGP下一跳地址（而不是原始PE路由器地址）执行RPF检查。这让 P 路由器能够将加入消息转发给为相邻自主系统注入 MDT SAFI 更新的ASBR。这种功能称为RPF矢量（RPF vector）。

收到加入消息后，ASBR 确定下一跳地址是否是它自身。确定这一点后， ASBR将根据加入消息包含的始发PE路由器地址执行RPF检查。

5.5.3 AS间mVPN系统流程

介绍让mVPN能够跨越自主系统边界进行扩展的技术后，本节介绍端到端流程（以Globenet北美和EMEA地区为例），帮助读者巩固这些概念。

在图 5.24中，一台PE路由器（NY-PE1）位于Globenet的New York POP，另一台PE路由器（LON-PE1）位于London POP。这两台路由器都运行相同的mVPN实例（m1），其默认MDT为y1。

图5.24 Globenet AS间mVPN范例

使用图5.24所示的拓扑，NY-PE1和LON-PE1之间的mVPN连接将按如下步骤建立。

1．NY-PE1使用MDT SAFI通告mVPN实例m1的默认MDT信息。该信息的格式为{RD1, NY-PE1, y1}，下一跳为NY-PE1。

2．NY-A1收到{RD1, NY-PE1, y1}，并以NY-A1作为下一跳将该信息通告给LON-A1。

3．LON-A1将其自身作为下一跳，将{RD1, NY-PE1, y1}通告给LON-PE1。

4．LON-PE1不具备到NY-PE1的可达性，但具备到LON-A1的可达性。

5．LON-PE1使用前面介绍的PRF矢量机制，通过LON-P1将一条加入消息发送给{LONA1, NY-PE1, y1}。

6．LON-P1对LON-A执行RPF检查，并将加入消息转发给LON-A1。

7．LON-A1删除矢量 LON-A1，并对 NP-PE1 执行 RPF检查。然后通过NY-A1将加入消息发送给{NY-PE1, y1}（这些步骤也按相反的顺序发生）。至此，在NY-PE1和LON-PE1之间成功建立了一个MDT隧道接口。

5.6 MPLS VPN的安全性和可扩展性

设计其MPLS VPN服务时，Globenet认识到安全性是保护其网络基础设施和客户网络设施所必须满足的基本需求。

显然，使用MPLS作为服务支持技术提供了许多内在的安全能力，它们内嵌在这种技术中。

• IP地址空间和路由分离：使用路由区分标志确保 Globenet网络核心中IP地址的唯一性，而使用VRF和路由上下文提供了路由分离。

• 核心网络不可见性：这是使用命令 no mpls ip propagate-ttl forwarded实现的。

• 防止MPLS标签伪造：入口IP接口（如PE-CE链路）的默认行为是丢弃所有包含MPLS标签的包。

尽管这些能力提供了基本的安全保护，但在其他方面仍可能存在入侵或DoS攻击。例如，尽管核心IP地址块对客户不可见，但对于PE-CE链路上使用的子网并不能提供同样的保证。这种链路的地址是可见的，让客户能够入侵PE路由器或对其发动DoS攻击。因此，Globenet不在CE路由器上将PE-CE链路的地址重分发到受管客户的IGP中。对于非管理客户，默认配置是禁止连接接口（如PE-CE链路）重分发到MP-BGP，进而通告到其他VPN站点。对于要接收这些地址的客户，Globenet确保对其PE路由器上的入站包过滤器进行更新，以拒绝本地PE路由器地址（过滤器将在本节后面讨论）。

为帮助确定MPLS网络设计应解决的问题，Globenet将问题分成如下三个功能方面。

• 运营安全；

• 控制平面保护；

• 数据平面保护。

5.6.1 VPN运营安全

运营安全可以定义为防止对Globenet网络资源（如路由器和服务器）不受欢迎或未授权的访问和阻止服务滥用（如DoS攻击）所需的措施。

Globenet 评估了它在路由器上使用的所有服务和协议，注意到在默认配置设置中启用了许多在生产中没有使用的服务和协议。根据这些信息，Globenet建立了一个配置模板，禁用不必要的服务和协议。该模板如程序清单5.6所示。

程序清单5.6 禁用未用服务和协议的配置模板

注意 禁用“IP不可到达”是适当的，因为蠕虫病毒可能向随机IP地址发送网络包，其中许多地址可能不存在。发生这种情况时，路由器将使用“ICMP unreachable”包应答。在有些情况下，应答大量对无效 IP 地址的请求将降低路由器性能。另一种替代解决方案是使用命令 ip icmp rate-limit unreachable来限制“IP不可到达”包的数量。

其他一些服务需要在所有路由器上启用。它们用于改善排错效率和故障隔离、限制对路由器的访问或提供用户认证/授权。启用这些服务的配置模板如程序清单5.7所示。

程序清单5.7 启用各种安全服务的配置模板

（待续）

注意 文档[MPLS-Security]对基于MPLS的VPN进行了详细的安全分析，并提供了一套最佳实践指导方针。

注意 SSH 在远程控制台和网络路由器之间提供一条加密信道。如果在路由器上启用SSH协议，应禁止Telnet访问，以强制所有管理性会话都在SSH提供的加密信道上进行。这样，攻击者将找不到打开的Telnet端口。

5.6.2 VPN控制平面保护

控制平面安全可以定义为在Globenet网络内，保护和认证路由和转发信息所需的措施。

Globenet 部署了许多控制平面保护机制。第 3 章在 VRF 中使用命令maximum routes。在Globenet的所有PE路由器上，都启用了该命令。它被设置为一个客户特定值，警告阈值设置为最大路由数的 75%。除这种基本保护方案外，Globenet还在路由协议级限制路由数量。

第4章介绍了如何在OSPF协议中，通过限制特定进程可接收的LSA数量，来实现这种保护。Globenet 在部署 OSPF 客户时使用了这些保护机制。此外，它还对 BGP-4 协议的每个会话和 EIGRP 的每个进程使用了命令maximum-prefix。

RIPv4不需要任何额外配置。路由信息协议（Routing Information Protocol， RIP）数据库将只存储包含在VRF中的路由。因为使用命令maximum routes限制了VRF中的路由，所以也限制了RIP数据库的填充。

Globenet 还广泛地部署路由协议邻居认证。邻居认证让接收路由器能够使用只有它和邻居路由器知道的密钥来认证路由更新的源。Globenet 选择使用MD5认证，这样不需要在路由器之间传输认证密钥。MD5能够使用密钥和消息创建消息摘要，将其作为MD5散列值。这可以防止路由器从路由对等体那里接收未授权的更新。Globenet 还使用这种机制来验证从标签分发对等体那里收到的更新。

Gloenet在三个网段上启用路由认证：PE-CE、PE-PE和PE-P/P-P/P-PE。文档[MPLS-VPN-Vol2]详细介绍了如何将MD5认证用于RIPv4、EIGRP、OSPF、BGP-4和LDP。

5.6.3 VPN数据平面保护

数据平面保护是防止包跨网络转发。因为Globenet的绝大多数客户都使用受管理服务，所以Globenet决定在CE路由器上部署访问列表过滤器。这些过滤器保护Globenet基础设施，包括ASBR、P路由器、PE路由器和CE路由器。

过滤器应用于客户站点的入口CE路由器上，执行下列各项操作。应用该策略的模板如程序清单5.8所示，它执行如下操作。

• 防止将PE-CE链路子网重分发到客户站点。

• 防止CE路由器到PE路由器的ICMP数据流，除指定地址外（CE路由器用于连接到PE路由器的出站接口的地址）。该地址不能从连接的客户站点到达，属于Globenet的地址空间。

• 只允许BGP-4协议在PE-CE链路上运行。这是通过拒绝其他路由协议的路由更新实现的。

• 阻止前往Globenet骨干的数据流。

• 允许站点到站点数据流的传输。

程序清单5.8 用于PE-CE数据平面保护的配置模板

5.6.4 第3层MPLS VPN服务的可扩展性和会聚

Globenet就哪些因素将影响MPLS VPN服务的整体可扩展性进行了调查。尽管找出了许多因素，但主要可分为如下两大类：

• 控制平面设计；

• 边缘路由器的能力。

控制平面设计涉及所有路由和转发元素，包括内部路由协议、外部路由协议、标签分发协议等。第 3层MPLS VPN服务采用了所有这些元素，因而受每种元素可扩展性限制的影响。评估每种协议的可扩展性时将涉及许多问题和方面，但就第 3层MPLS VPN服务而言，Globenet主要考虑如下方面。

• 不同协议如何交互以及它们各自的可扩展性？例如，哪些因素将增大网络部署的规模？

• MP-BGP 用作骨干网络的主要路由分发协议，它可以成功部署多少会话？是否需要一些工具来提高该协议的可扩展性？

• BGP-4协议用于网络边缘，MP-BGP协议用于网络核心，它们是否需要调整以优化性能？

• 与通过帧中继网络建立内部网相比，客户站点对路由和转发会聚有何影响？

1．协议交互

Globenet 部署了许多种协议以支持各种服务，包括 RSVP、LDP、IS-IS 和MP-BGP。显然，这些协议之间的交互是一个需要考虑的重要问题。

Globenet还部署了IGP-LDP同步功能（在前一章介绍过），以确保拓扑发生变化时LDP和IS-IS协议之间的同步。它还调整了IS-IS协议以便快速会聚。这将在“IS-IS路由设计”一节介绍。

2．MP-BGP可扩展性考虑

在 Globenet 网络中部署了前几章介绍的所有 MP-BGP 功能（及其调整）。这包括更新组、路由反射器、路由最大传输信元（MTU）发现、保持队列调整、选择性包丢弃（SPD）队列优化等。

路由反射器设计采用前几章介绍的模型。在每个自主系统中，它由单级层次结构组成（而不是更复杂的多层次设计，鉴于Globenet第 3层MPLS VPN服务的当前路由状态数量，没必要采用多层次）。PE 路由器需要至少维持与两台路由反射器的MP-BGP会话，所有路由反射器是全互联的。任何需要跨越自主系统边界的路由都由ASBR保存。

除前面描述的路由反射器设计外，Globenet还选择限制VPNv4路由到达没有客户站点对其感兴趣的网络部分。例如，在北美地区，Globenet 有几个位于California的本地客户。因而，没有必要将它们的路由分发到东海岸地区的路由反射器，如图5.25所示。

图5.25 地区性客户连接范例

从图 5.25中可知，California与New York一样有本地路由。因为路由反射器组成了全互联拓扑，如果不采用过滤，所有路由反射器都将保存California和New York的VPNv4路由。基于这一点，Globenet选择部署[rt-constrain]描述的增强路由过滤，根据扩展共用体属性来限制路由的分发。

[rt-constrain]提供了一个新的SAFI（RT过滤器），用于通告路由目标扩展共用体属性，PE 路由器在导入/导出策略中使用这种属性。例如，请看图 5.26， Globenet在California有一个名为ABC Inc.的客户，在New York有一个名为的XYZ Inc.客户。每台PE路由器使用RT过滤器SAFI将这些VPN使用的路由目标值通告给路由反射器。根据这些信息，路由反射器可以禁止将路由信息通告给不必要的网络地区。

如图 5.27 所示，这种过滤导致 California 地区的路由反射器不再保存只用于东海岸的路由。同样，New York 地区的路由反射器也不再保存那些只用于California的路由。

图5.26 ABC Inc.和XYZ Inc.的RT过滤

图5.27 采用RT过滤的地区性客户连接

对于没有配置VRF的ASBR，可以使用扩展共用体列表过滤器来生成对RT过滤器SAFI的更新。

5.6.5 Globenet的路由会聚策略

会聚可以定义为网络发生变化后，特定路由域中的路由器获悉完整的路由拓扑并重新计算出前往特定目的地的替换路径（假定存在这样的替代路径）所需的时间。这个过程涉及到路由器将其网络视图与相同域中的其他路由器同步，以使用这些变化。因为Globenet使用许多种相互交互的协议，所以在设计时定义一种会聚策略以处理骨干和服务的会聚是非常重要的。

一般来说，会聚分为两个子类。

• 内部基础设施的会聚：包括骨干IGP会聚和MP-BGP控制平面会聚。

• 外部服务的会聚：包括外部客户站点间的路由信息会聚，如使用第3层MPLS VPN服务的站点之间。

Globenet 发现，骨干网络的会聚取决于在各层部署的保护机制。它选择的策略是，组合使用MPLS快速重路由和快速IGP会聚，这将在本章后面的5.11节详细介绍。

1．第3层MPLS VPN服务：路由会聚

第 3层MPLS VPN架构使用BGP服务（及多协议扩展）在网络边缘之间分发VPN路由信息。BGP设计用来以一种良好可扩展的方式解决路由分发问题，并提供一种实现无环路路由拓扑的机制。由于它与距离矢量协议类似的行为及其为提供稳定性实现的一些功能，BGP在并不能像链路状态IGP协议那样快速会聚。MP-BGP与IGP协议之间的交互对路由会聚有显著影响。由于这个原因， Globenet 增加了一些额外的实现定时器，以减少默认会聚时间。这些定时器可以根据需要调整，以提供最优的第 3层MPLS VPN部署。

对于骨干网络，Globenet调整其IS-IS定时器以获得亚秒级的IGP会聚。然而，因为第 3层MPLS VPN服务严重依赖于MP-BGP协议进行路由分发，亚秒级的IGP会聚时间不足以确保快速检测到影响一组VPN路由的失效。相反，默认每隔60秒检查所有路由的下一跳可达性（在IOS中，它由“scanner”进程驱动，且是一个可配置的定时器）。如果骨干网络中的链路发生失效，IGP可以非常迅速地检测到。然而，MP-BGP进程可能需要多达60秒的时间确定给定的下一跳不再可用。因而，以前通过这个下一跳获悉的的路由不再有效，所以Globenet选择在所有PE路由器上部署下一跳跟踪（next-hop tracking，NHT）功能。

在 Globenet PE 路由器使用的 IOS 版本中，默认启用 NHT 功能。它让MP-BGP能够向RIB地址跟踪过滤器（Address Tracking Filter，ATF）功能注册MP-BGP 路由的下一跳地址（PE 路由器的环回接口地址）。该功能提供了一种高效的路由更新通知服务，并监视PE路由器路由信息库（RIB）中的所有路由变化。当路由以某种方式发生改变时（例如，变为不可到达或度量值发生变化）， ATF 立即通知 MP-BGP，使其获得当前的路由信息，从而对变化做出反应。如果给定VPNv4路由集的下一跳发生变化，路由器可立即做出反应，而不需等待前面介绍的周期性“scanner”过程。

尽管骨干会聚很重要，但 Globenet 注意到，它需要从客户的角度定义第 3层MPLS VPN服务的会聚特征。它将这种会聚定义为站点到站点会聚。为此，它要确保会聚时间（从客户站点到远程客户站点的路由分发时间）与以前Gloenet使用第 2 层覆盖技术时客户获得的会聚时间尽可能接近。为达到该目标， Globenet认为需要对一些协议进行调整，尤其是MP-BGP协议。

为理解站点到站点会聚时间的各个组成部分，Globenet 在实验室分析路由更新如何从一个站点发送到另一个站点（包括新增路由和撤销路由）。根据这些信息，Globenet 将在全部端到端会聚时间中定义了 8 个会聚点。这些会聚点如图5.28所示，分别用T1-T8标记。

图5.28 MPLS VPN服务的会聚点

它们定义如下。

• 会聚点T1：PE路由器从连接的客户站点那里收到路由更新。

这个会聚点在很大程度上取决于 PE-CE 链路上使用的路由协议。然而， PE-CE链路上使用BGP-4协议时，这种会聚时间可能最长，因为它依靠定时器来通告路由，该定时器的最大取值为30秒。

• 会聚点T2：会聚点T1将收到的本地路由信息导入到相应的入口VRF中。

该值通常接近于0，除OSPF外。使用OSPF时，使用了SPF延时定时器，其默认值为5秒。

• 会聚点 T3：会聚点 T1 收到的本地路由进入本地 PE 路由器的MP-BGP中。

该值总是为0，因为路由收到后立即被加入到MP-BGP中。

• 会聚点T4：将新插入的VPNv4路由通告给MP-BGP对等体（Globenet路由反射器）。

该会聚点受内部BGP的MP-BGP通告间隔定时器影响。默认为5秒，但该定时器仅在发送更新时才被启动。因此，如果收到另一条路由前超过 5 秒没有发送更新，该路由的更新将立即发送。因为Globenet部署了VPNv4路由反射器，所以该定时器总是为10秒。会聚点T4与首先通告路由的PE路由器以及随后在网络边缘之间通告该路由的路由反射器相关。

• 会聚点T5：在远程PE路由器上处理会聚点T4通告的VPNv4路由。

MP-BGP更新总是立即被处理；因而该会聚点总是接近于0。

• 会聚点T6：会聚点T5将新收到的路由导入到本地VRF中。

在IOS中，PE路由器默认每隔15秒钟（该值可配置）运行一个称为导入扫描器的定时器。在路由撤除时不会应用该定时器，因为它们立即处理，或用于下一跳可达性检查。然而，将新收到的路由导入到相关的本地VRF中时，该定时器将发挥作用。

• 会聚点T7：从MPLS骨干收到的路由被通告给CE路由器。

该会聚点的值与T1相同。假设Globenet客户在PE-CE链路上使用BGP-4协议，它将使用相同的通告间隔，即BGP-4默认值30秒。

• 会聚点T8：相关的CE路由器处理到来的更新。

通常它接近于0，在PE-CE链路上使用OSPF协议时除外，后者使用SPF-延时定时器，默认时间为5秒。

使用这些会聚点，Globenet根据PE-CE协议确定理论上的默认会聚时间，如表5.3所示。

表5.3 MPLS VPN会聚时间取决于PE-CE协议

显然这些会聚时间是最坏情况下的数字，所以实际的会聚时间要远远低于这些值。它们还是基于AS内连接的，如果路由信息需要跨越AS边界，这些时间还将基于额外的BGP-4会聚时间增大。然而，Globenet认为有必要进行一些参数调整，以降低这些数字，尤其是在PE-CE链路上使用外部BGP协议时。

决定调整协议定时器后，Globenet 认识到，设置的值取决于许多因素（如路由数量、VRF总数、BGP-4会话总数等），因为它们可能对处理时间产生影响。Globenet 还认识到，仔细地验证这些设置是必要的。进行各种实验室测试后， Globenet注意到，在会聚时间减少方面，通过调整BGP协议的运行（包括骨干网络和PE-CE链路，假定在这些链路上运行BGP-4协议）获得的收益最大。

2．调整BGP协议

在BGP协议的路由会聚中，主要延时是通告新插入或删除的VPN路由花费的时间。该时间主要受通告间隔定时器的影响。对于内部BGP（会聚点T4），其默认值为5秒；对于外部BGP（会聚点T1和T7），其默认值为30秒。

Globenet选择将内部BGP定时器减少到1秒，将外部BGP定时器减少到5秒。这些新的定时器值让路由能够更迅速地分发到骨干网络中。它们使得这些路由向外部对等体的通告延时更短，从而能够使更新中包含一定数量的路由。

通过使用这些新定时器值，Globenet 能够将理论最大会聚时间（在 PE-CE链路上使用BGP-4协议时）减少到27秒（默认的理论最大值85秒减去节省的内部BGP时间4秒和节省外部BGP时间25秒的两倍）。这个时间与其他路由协议更接近。Globenet 定期监测路由器的可用资源，以确保这些新定时器值不会对路由器的可扩展性产生负面影响。

5.6.6 边缘路由器的能力

显然，边缘路由器的能力是影响第 3层MPLS VPN服务可扩展性的一个主要因素。影响边缘路由器可扩展性的主要因素是处理能力和可用内存。

在检查CPU和内存特征时，Globenet注意到影响整体可扩展性的几种因素。它发现CPU使用率一般受许多因素的影响，包括（但不限于）下列因素。

• 提供的QoS量：Globenet部署的有些PE路由器使用硬件转发，另一些没有使用硬件转发。对于使用硬件转发的PE路由器，路由处理器CPU不受QoS功能的影响。然而，在不能基于硬件执行转发的PE路由器平台上，激活的QoS功能数量和复杂性将对路由处理器CPU产生很大的影响。因而在部署这些功能前需要仔细考虑。如 5.9 节所述，Globenet将通过如下方式，使得PE路由器支持的QoS功能最小化。

如果CE路由器由Globenet管理，分类、标记和策略控制功能当前全部由CE路由器执行，使PE路由器完全不需要处理这些任务。这极大地增强了可扩展性。在每台CE路由器上支持与单个站点相关的QoS功能，比在PE路由器上支持所有站点的QoS功能要容易得多。

Globenet 选择一种 DSCP/EXP 值方案，通过 IOS 默认映射根据 DSCP （Differentiated Services Codepoint，区别服务码点）值自动实现EXP值标记，从而PE路由器不需要执行DSCP-to-EXP映射。

对于非管理CE路由器，可以应用一种相对较轻的输入策略，因为数据流分类不涉及任何包检查，只根据DSCP字段来完成。

总之，Globenet确保输入端的QoS功能不影响或尽可能少地影响PE路由器的性能。所以，可能影响PE路由器性能的QoS功能主要是在链路出口（将网络包转发到PE-CE链路上时）实现调度的QoS功能。这些功能无法避免，因为它们是在拥塞点执行Globenet的5种服务所必需的。它们还设计成尽可能地轻，因为它们只依赖于基于DSCP的分类。

• “受管理”和“非管理”服务：对于使用“受管理”服务的客户（它们有受管理的CE路由器），CPU需求可以在PE路由器和连接的CE路由器之间分配，这与刚介绍的QoS方面相同。这将有助于整个系统实现更好的可扩展性。这种功能对于非管理CE是不可能实现的。

• PE-CE协议连接类型：每种路由协议有不同的需求，因而需要更多或更少的处理器周期。例如，OSPF需要处理初始LSA生成，但没有路由变化时相对安静，只是每30分钟发送一次数据库刷新；而RIP协议以固定间隔发送周期性更新。

• 连接的VPN和相关VRF的数量：显然，PE路由器上的VRF数量将影响CPU需求，因为需要处理和存储的路由信息量会随着VRF数量的增加而增加。

从内存方面说，Globenet注意到PE路由器所需的内存量随下列因素增加。

• VRF/路由数量：每个VRF和VRF中的每条路由都需要内存。随着VRF和路由数量增加，所需的内存也将相应增加。注意，VPNv4路由比IPv4路由需要更多的内存。

• PE路由器上的因特网路由数：因为Globenet在有些PE路由器中存储因特网路由，所以可用于存储 VPN 路由的内存量显然会减少。在有些内存有限的老式路由器平台上，这种影响非常显著。

• OSPF/RIPv2连接：OSPF和RIPv2都依赖于数据库来存储路由信息。这些内存是除用于存储VRF和转发表中路由的内存外，额外增加的内存。所以Globenet在所有PE路由器上限制部署这类客户的数量。

• BGP路径：在给定VPN中，远程站点的数量增加将增加在本地 PE路由器从远程位置收到的路由和路径的数量。所以，Globenet选择在每个VRF中使用maximum routes命令，以限制路由数量并能够适当的工程化路由器。

Globenet 有几种不同的边缘路由器平台，对于每种平台都在实验室验证测试中确定它能支持的最大服务数量（假定采用典型的服务分配和相关功能）。用于确定最大规模的参数包括将因特网/第3层VPN客户分开、典型的接入速度、典型的CoS项目、最大连续CPU负载50%等。根据这些参数，Globenet将每种平台的服务供应规则确定为最大测试规模的70%。

5.7 IPv6 VPN的设计

有些客户在较早采用IPv6协议的国家有重要的VPN站点，为响应这些客户的请求，Globenet引入了 IPv6 VPN服务。客户使用 IPv6 VPN服务构建 IPv6内部网，而不是使用 IPv6全球可达性服务的根本原因是，需要与 IPv4 VPN服务相同的隔离性和安全性。在未来，当需要从这些 IPv6 内部网接入 IPv6因特网时，VPN 服务的另一个重要优点是能够在每个内部网中独立地路由IPv6因特网数据流。这是非常重要的，因为客户通常要确保它们与公共IPv6因特网之间的所有数据流都通过他们自己的提供IPv6防火墙服务的中央站点进行中转。

Globenet提供的 IPv6 VPN服务与 IPv4 VPN服务极其相似。它的目标是最终为IPv4和IPv6提供完全相同的VPN服务。例如，尽管Globenet最初为IPv6数据流提供有限的QoS服务，它计划以后为IPv6提供全部QoS服务。

VPN站点可能只要求IPv4支持、IPv6支持或同时要求IPv4和IPv6支持。尽管有些站点同时需要支持 IPv4和 IPv6，但它只需要一条到Globenet POP的接入链路（物理链路或逻辑链路）。

就当前而言，请求 IPv6 VPN服务的客户都位于亚太地区和EMEA地区。所以当前只需要在这两个地区内部以及这两个地区之间提供 IPv6 VPN服务，因为有少数客户跨越这两个地区。Globenet当前支持 15个 IPv6 VPN，总共有 500条 IPv6 VPN路由。

5.7.1 Globenet地区内的 IPv6 VPN设计

Globenet使用 1.54节介绍的 6VPE方案来支持其 IPv6 VPN服务。这种方法涉及在PE路由器上的MP-BGP协议中激活额外的地址簇（VPN-IPv6），以通告属于该VPN的 IPv6路由，然后依赖于与 IPv4 VPN相同的机制进行路由分发和控制，如 VRF、路由区分标志和路由目标等。6VPE 方法的一个重要特征是，它可以在完全不支持 IPv6（甚至完全不支持 IPv6 VPN服务）的 IPv4 MPLS骨干上运行。所以，Globenet 不需要对其 P 路由器进行升级或配置更改，让它们作为纯粹的 IPv4 MPLS P路由器运行。

为与其共享PE路由器的思想一致（所有PE路由器支持所有的Globenet服务），且因为大多数 IPv6 VPN客户同时需要在VPN中 IPv4支持，Globenet使用支持 IPv4 VPN和 IPv4因特网接入的PE路由器来支持 IPv6 VPN。

然而，因为当前需要 IPv6 VPN服务的POP数量非常少，所以Globenet决定以渐进方式部署这种服务。这意味着 6VPE 功能实际上只在当前需要支持这种服务的一部分PE路由器上激活，这避免了在许多不需要支持这种服务的PE路由器上执行额外的配置。另外，它在很大程度上减少了 VPN-IPv6 地址簇的MP-BGP 互联程度，在一个地区内只有两台路由反射器（位于两个不同的 1 类POP中）用于反射该地址簇。Globenet选择为 IPv6 VPN前缀使用专门的路由反射器，原因与前面为 IPv4因特网和 IPv4 VPN使用不同的路由反射网相同：从会聚角度隔离服务。图 5.29 说明了在选定 PE 路由器上进行这种渐进式 6VPE功能部署以及专门用于 IPv6 VPN的路由反射器集。

为按照6VPE方法支持 IPv6 VPN，在Cisco IOS中将用于 IPv4 VPN的VRF概念扩展为“多协议VRF”的概念，它同时适用于IPv4和IPv6。多协议VRF可同时包含IPv4与IPv6的路由表和转发表。另外，它让Globenet能够定义独立于协议的VRF属性（如路由区分标志，它可以同时被VPN-IPv4和VPN-IPv6地址簇使用）。在可能的情况下，Globenet 还定义适用于所有协议的策略（当需要在VPN中对IPv4和IPv6使用相同的拓扑时，可定义RT导入/导出规则）。同时，该概念还让 Globenet 在需要时能够定义与协议相关的策略（例如，在VPN中为IPv4和IPv6使用星型拓扑，但IPv4和IPv6的中心位于不同VPN站点时）。

图5.29 Globenet在亚太地区的6VPE部署

图 5.29显示了PE路由器PE-Tokyo1上的两个多协议VRF。Customer1 VRF连接到一个只运行 IPv6的VPN站点，Customer2 VRF连接到一个同时运行 IPv6和IPv4的VPN站点。

程序清单 5.9 显示了 PE-Tokyo1 的相应配置。对于只用于 IPv6 数据流的customer1 VRF，在多协议VRF级应用RT导入和导出策略。因此，如果后来根据客户的请求增加了IPv4支持，该策略也将应用于IPv4（除非IPv4需要不同的策略，这时需要在 IPv4地址簇中配置 IPv4特定的策略）。对于 customer2 VRF，假定客户对于IPv4和IPv6需要不同的RT导入和导出策略，Globenet在地址簇级应用这些策略。

程序清单5.9 PE路由器的 IPv6 VPN服务配置模板

（待续）

在程序清单5.9中，包含PE-Tokyo1同两个IPv6 VPN路由反射器的MP-BGP对等关系配置，以及同Customer1和Customer2的MP-BGP对等关系配置。为简单起见，其中没有列出同 IPv4 VPN路由反射器和 IPv6因特网路由反射器的MP-BGP对等关系配置，但它们的确包含在共享PE路由器的实际配置中。

注意 在Cisco IOS中引入 IPv6 VPN以及将相关VRF扩展引入多协议VRF中前，在IOS中配置VRF涉及稍微不同的命令（创建VRF并将它关联到接口）。这些命令假定只采用 IPv4，所以它们称为 IPv4 VRF命令。在本书其他地方使用这些命令来演示 IPv4 VPN PE路由器的配置。VPN只支持 IPv4数据流时，可以使用这些命令。然而，VPN支持IPv6或同时支持IPv4和IPv6时，必须使用多协议VRF及其相关命令。这些命令如程序清单5.9所示。

注意 大多数需要 IPv6 VPN服务的VPN站点之前已使用Globenet的 IPv4 VPN服务。所以，这些站点连接到使用 IPv4 VRF命令（而不是多协议VRF命令）配置的VRF。为将它们转换为多协议VRF并增加IPv6支持，Globenet使用一个IOS命令（vrf upgrade-cli），自动将 IPv4 VRF命令转换为多协议VRF命令，而不对服务产生任何影响。然后，Globenet只需在已有VRF内部添加IPv6特定的配置。关于这种迁移方案的详情和范例，请参阅[IPv6-DEPLOY]。

Globenet当前没有提供从 IPv6 VPN接入 IPv6因特网的计划，因为到目前为止，还没有任何客户请求这种服务。然而，当客户要求IPv6因特网服务时，用于从 IPv4 VPN接入 IPv4因特网的所有方法（在前面的 5.3节介绍过）都可以用来从 IPv6 VPN接入 IPv6因特网。具体地说，为接入因特网，将客户中心站点CE路由器的默认路由注入到VRF中以及将指向IPv6因特网网关的默认路由注入VRF中，其运行方式对于IPv6与IPv4完全相同。通过Globenet防火墙服务接入因特网的方法对于IPv6也与IPv4相同，但NAT不适用于IPv6，且Globenet防火墙服务需要支持IPv6。对于IPv6，也可以用相同的方式支持通过PE-CE接入链路实现完全的因特网接入。全部IPv6因特网路由可存储在PE路由器的全局路由表中。另外，PE路由器和CE路由器之间的一条独立连接（物理连接或逻辑连接），可用于将IPv6因特网路由从VPN数据流使用的连接通告到CE路由器。相同的连接在VPN内可同时用于IPv4和IPv6数据流，其他连接也可以同时用于IPv4和IPv6因特网数据流。

在因特网路由方面，IPv4和IPv6的差别在于：在IPv4中，全部因特网路由存储在核心的所有P路由器中；在IPv6中，P路由器不能参与因特网IPv6路由的MP-BGP交换。只有需要提供完全IPv6因特网接入的PE路由器参与这些路由的MP-BGP交换，它们按1.5.3节介绍的6PE方法完成这项工作。这种方法允许在通过 IPv4-only MPLS核心互连的PE路由器之间交换全局 IPv6可达性信息，并在核心上转发IPv6数据流。

5.7.2 Globenet跨地区 IPv6 VPN设计

Globenet支持 IPv6 VPN包含跨越EMEA和亚太地区的站点。与 IPv4 VPN相同，它使用AS间连接方案B来实现跨地区的 IPv6 VPN，让两个地区的ASBR能够交换 IPv6 VPN可达性信息。为支持跨越亚太和EMEA地区的 IPv4 VPN， Globenet 在支持跨地区直接链路的两对 ASBR （ Tokyo/London 和 Hong Kong/Frankfurt）之间使用MP-BGP会话。Globenet也使用这两对ASBR支持跨地区 IPv6 VPN。

对于采用AS间连接方案B的 IPv6 VPN，为交换 IPv6 VPN可达性，Globenet可以选择通过IPv6或IPv4在ASBR之间建立对等关系。为支持AS间IPv4 VPN， Globenet ASBR已经通过 IPv4建立对等关系，所以Globenet选择将这些 IPv4对等关系用于支持AS间 IPv6 VPN。BGP下一跳属性被编码为 IPv4映射的 IPv6地址。

前面介绍过，对AS间 IPv4 VPN禁用了ASF功能，这也被用于 IPv6 VPN。在ASBR上，针对 IPv4 VPN路由配置了AS间路由过滤（根据客户特定的路由目标值）和路由目标重写功能（参阅 5.3节），这也被应用于 IPv6 VPN路由。

5.8 ATM伪线路设计

如前所述，在IP流量占统治地位的地区（即北美和欧洲部分地区），Gloenet在1b类POP中使用ATM伪线路技术，通过IP/MPLS网络中继ATM基础设施。这种连接称为“inverted overlay”模型，其中ATM在 IP网络之上。

伪线路技术的基本概念在第1章介绍过，这里不再介绍。然而如第1章所述，伪线路可以承载许多种不同的媒介类型，如帧中继、以太网、ATM 等。Globenet 只需要使用 ATM 伪线路（它可以用来通过交换机之间直接连接的IP/MPLS网络传输ATM信元）提供的中继线来连接现有的ATM交换机。

为实现该目标，Globenet 选择部署 ATM 透明信元传输（Transparent Cell Transport）服务（参阅文档[PWE3-CELL-TRANSPORT]）。它模拟两个远程ATM交换机端口之间的完全连接，所有信元都映射到通过IP/MPLS网络提供的一条伪线路（空闲或未指定信元除外，它们被丢弃）。采用透明信元传输模式时，为通过IP/MPLS核心实现ATM互连，每对ATM交换机之间都需要一条伪线路。

这种运行模式提供了完全透明的交换机间连接，让Globenet能够在交换机之间运行 PNNI。Globenet 还能够支持任何数据流类别的 ATM 连接（CBR、VBR-rt、VBR-nrt等）以及VC和虚路径（virtual path，VP）。这些功能是必要的，因为它们将VP作为本征服务提供给最终用户。

Globenet选择使用“信元封装”功能，将进入到ATM接口的多个ATM信元封装成单个MPLS包，以便在IP/MPLS网络上传输。这种功能在开销方面比单个ATM信元中继的效率高，因为相同的伪线路封装开销可用于传输多个ATM信元。伪线路封装开销包括链路层开销（如HDLC和PPP over POS）、MPLS标签栈和伪线路控制字。假定在给定环境中，它们总计为24字节。在单信元模式下，这意味着对52字节的净载荷需要24字节的额外开销，额外开销占46%。当使用信元封装模式时，10 个信元被封装成一个 MPLS 包，额外开销仍为 24字节，但净载荷为520字节，因此额外开销负担减少到5%。显然，封装到一起的信元越多，效率越高。然而，封装更多的信元意味着先收到的信元需要等待所有其他信元全部被伪线路入口 PE 路由器收到后才能传输。这导致了更大的ATM数据流传输延时和抖动。为更好地平衡，IOS实现支持对最大封装信元数量（从而在信元以较快速率到达时使延时和抖动影响最小化）和最大信元封装定时器进行配置。这个定时器触发信元传输，即使在这个时间内还没有封装最大数量的信元（从而在信元以相对较低的速度到达时，延时和抖动时间也将保持控制的范围内）。Globenet希望ATM伪线路（它承载所有类型的ATM连接，包括CBR）保持非常低的延时和抖动时间，同时获得合理的带宽效率。因而， Globenet选择将最大信元封装定时器配置为20微秒，将最大封装信元数量配置为5个信元。

在后面的5.9.9节中将介绍ATM伪线路的范例配置，包括信元封装和相应的QoS配置。

5.9 服务质量设计

Globenet 认为，仅当网络为不同数据流类型提供仔细优化的服务质量水平时，才能在跨越多个洲和地区的内部网（其中带宽非常昂贵）中以非常经济的方式支持关键任务和多媒体应用。其中一个非常重要的原因是，在长距离传输中，非常显著的传播延时为网络引入的其他延时和抖动留下的空间非常小。为满足全球性客户的需求，Globenet对高QoS和SLA采用积极的市场定位，并提供丰富的QoS类别。

具体地说，Globenet在接入链路上对第 3层MPLS VPN服务支持 5种服务类别。

• VPN Voice；

• VPN Video；

• VPN Business Latency；

• VPN Business Throughput；

• VPN Standard。

在CE路由器和PE路由器之间的接入链路上，对每个类别使用一个单独的队列进行调度。CE路由器和PE路由器之间的路由数据流和管理数据流的CoS被设置为PN Business Throughput CoS。

对于因特网服务，在接入链路上支持单个CoS，它与第 3层MPLS VPN服务CoS VPN Standard等价。

Globenet还为所有地区核心网络中的5个CoS分别支持一个队列（北美除外，在该地区这些CoS聚合成三个队列），原因如下：

• 在世界许多地方的Globenet核心网络中，采用相对严格的带宽供应策略；

• 洲际传输的长时间传播延时；

• 细致控制QoS的需求。

承载VPN Voice的队列针对实时操作进行了优化。这个队列称为Expedited Forwarding （EF）队列。该队列还用于调度来自 ATM 伪线路的数据流。在北美和 EMEA地区，ATM 伪线路支持通过 IP/MPLS 核心连接ATM 交换机。当Globenet在未来提供虚拟 IP租用线服务时（例如为Africa Telecom提供这种服务，使其能够通过 Globenet 的网络建立自己的 VPOP），相应的数据流也将在EF队列中调度。

表5.4详细列出了每种数据流类型、DSCP值、接入链路上的队列、核心中的EXP/DSCP值和核心中队列之间的映射关系。

表5.4 类别、DSCP、EXP和队列的QoS映射

[ * ]根据第 3层MPLS VPN模型，在接入链路上承载的路由数据流位于CE路由器和 PE路由器之间。

例如，在CE路由器和PE路由器之间的接入链路上，VPN Business Latency CoS用DSCP 26标记，并使用AF3队列。在核心中，它用EXP 3标记。在北美地区它（与VPN Video和VPN Throughput一起）被调度到AF2队列中，在其他地区则调度到AF3队列中（与其他数据流分离）。

注意，对于合约内和合约外VPN Business Throughput数据流，Globenet决定使用两种基于优先级的DSCP值（对于CS2，DSCP = 16，对于CS1，DSCP =8），而不是采用更明显的 AF21（DSCP=18）和 AF22（DSCP=20），它们的 3位优先级设置相同。这可确保它们在 PE 路由器上将采用默认的 IOS DSCP-to-EXP映射（自动将3个优先级位复制到3位的EXP字段中）自动映射到不同的EXP值（EXP=2和EXP=1）。这与4.8.3节的原理相同，它导致Telecom Kingland选择DSCP值默认被直接映射到适当EXP的方案。

下面详细介绍Globenet提供的SLA、核心网络各部分使用的QoS设计以及在边缘上实现SLA承诺的QoS设计。

5.9.1 VPN和因特网SLA

Globenet提供了非常丰富的QoS服务，以确保最终客户获得最优性能。首先，Globenet在客户合约中包括 5种服务类别的POP-to-POP SLA承诺。Globenet还提供一种“咨询式”QoS 设计服务，它涉及（使用专门的网络分析工具）调查客户的应用、它们为满足业务目标的需求以及它们的当前基础设施的运行情况。然后根据这些调查为客户提供优化使用Globenet QoS服务的建议，如站点接入速率、每个站点中5种CoS的比率以及应用到CoS的映射。最后，Globenet根据客户请求，为每种CoS提供站点到站点的SLA协议。

表 5.5 是一个 CoS 的 POP-to-POP 承诺示例，其中每个单元格列出了每种VPN CoS （VPN Voice、VPN Video、VPN Business Latency、VPN Business Throughput和VPN Standard）的承诺。它们是以单向延时、抖动和丢包率指定的。延时和抖动以毫秒为单位，丢包率表示为占相应CoS总包数的百分比（短划线[-]表示相应部分不适用）。

表5.5 Globenet每种CoS的POP-to-POP SLA

续表

[1] Core Europe包括London、Frankfurt和Paris。

[2] U.S East Coast包括New York和Washington。

[3] U.S West Coast包括Seattle、San Jose和Los Angeles。

通常，这些承诺是以 POP 到 POP 的方式指出的。例如，从表 5.5 可知， Globenet承诺在Tokyo POP和Sydney POP之间，VPN Voice CoS的单向延时为80毫秒内，抖动为30毫秒内，丢包率小于0.2%。

然而，在几个POP以非常高速的链路全互联时，Globenet在SLA中将这几个 POP作为一个整体（例如，将 Paris、London和 Frankfurt POP作为“Core Europe”）。这种做法提供了如下内容。

• 适用于POP集内任何两个POP之间SLA承诺；

• POP集与其他POP（或其他POP集）之间的SLA承诺。

这减少了POP-to-POP承诺的组合数量。例如，对于Voice VPN CoS，Globenet承诺对于从Core Europe中任何POP（Paris、London或Frankfurt）到Tokyo POP的数据流，单向延时小于 100 ms，抖动小于 30 ms，丢包率小于 0.2%。

因特网接入服务的SLA承诺与VPN Standard CoS相同。然而，这些承诺只适用于两个都订购了Globenet因特网接入服务的站点之间交换的数据流（跨越Globenet网络的端到端数据流）。在使用Globenet因特网接入服务的站点与其他因特网之间交换的数据流不属于SLA承诺的范围。这些数据流在因特网骨干上传输，处于Globenet控制之外。

与Globenet提供的严格承诺相比，传播延时占据了很大一部分，且网络互联程度在有些地方很低，同时有些链路是低速链路，使得即使队列占用率较小时队列延时也非常高，所以Globenet能够实现的 POP-to-POP SLA承诺在很大程度上取决于当前核心网络的某些方面。

• 链路速度：将地区性链路从 2 Mbit/s升级到34 Mbit/s或从34 Mbit/s升级到 155 Mbit/s，将显著影响不同CoS在相应跳上的队列延时。

• 核心拓扑和底层基础设施路径：POP需要通过远离最短地理路径的位置进行中转还是有到该POP的直接连接（通过新的海底电缆路径），这将影响QoS承诺，因为传播延时不同（以及增加的跳数带来的影响）。

由于这种对实际底层核心链路拓扑和速度的严重依赖，Globenet保留每月更新SLA承诺的权利。然而，这种更新通常是由于核心升级导致性能承诺的改善。

当客户请求站点到站点承诺（CE路由器到CE路由器）时，Globenet通过组合每个CoS和每对目标站点的如下特征来确定承诺：

• 表5.5列出的相关POP-to-POP承诺；

• 从CE路由器到PE路由器以及从PE路由器到CE路由器的相关接入链路的QoS性能。

然后，Globenet针对每种访问技术（租用线、帧中继、ATM等）和每种接入速度确定接入链路的 QoS 性能。在接入链路上支持定制 SLA 时，Globenet使用的方法与Telecom Kingland类似，详情请参阅 4.8.1节。

作为“咨询式QoS设计服务”的一部分，客户与Globenet合作制定建议。通常，客户据此为每个站点的接入链路选择每种 CoS 的比例，该比例适用于CE-PE链路的两个方向。客户不一定使用全部5种CoS，而可以对给定站点使用这些CoS的任意组合。在默认服务提供中，Globenet对选择的CoS比例进行限制，以满足相应的QoS目标。例如，VPN Voice CoS限制为接入链路的 30%；同样VPN Voice和VPN Video CoS合起来限制为接入链路的 60%。对于VPN Business Throughput CoS，至少必须选择接入速度的 4%，因为它用于承载路由和管理数据流。

VPN Voice CoS用于传输 IP语音服务。它提供了这种应用所需的非常低的延时、抖动和丢包率。为确保端到端地满足这些QoS目标，在接入链路上将按合约速率严格地限制发送到VPN Voice CoS的数据流，超出部分将被丢弃。

VPN Video CoS定位于视频会议应用。尽管这种应用有控制延时的需求，但Globenet决定将它与VPN Voice CoS分开，作为一种单独的CoS进行处理，其原因如下。

• 视频应用通常比语音应用能够容忍更高的延时和抖动。即使在目标系统上采用了嘴唇同步技术，延时的视频包（例如，由于核心延时突然增加，导致视频流的包不能及时到达以供播放）也比延时的音频包更可容忍。

• 视频应用使用变长的包，包括长包。在用于语音数据流（它只使用短包）的队列中承载长包将降低为语音数据流提供的延时和抖动承诺。

• 视频应用使用的速率比语音更高，且以可变速率传输。同样，如过将这种数据流与语音数据流放到相同的队列中进行处理，将降低语音数据流的QoS承诺。

VPN Video CoS提供受控的速率和延时。为更好地控制VPN Video CoS的延时，对于发送到接入链路上的VPN Video CoS数据流中超出合约速率的部分， Globenet将其丢弃（而不是降低其服务质量）。因而，最终客户需要调整视频会议数据流的总量，使其符合VPN Video CoS的合约速率。这可以在多媒体会话开始时的协商（如使用协议 H.323 和 SIP）中进行。除对用户/端点能否建立视频会议会话进行授权外，许可过程还可以检查新视频流是否符合VPN Video CoS的工程容量（它可能是一个多媒体系统参数，由运营商配置）。最终用户可以调整VPN Video CoS的合约速率，以满足其站点的预期需求。

在未来，Globenet将探讨如何改进VPN Video CoS，以接受合约外数据流。这些数据流将降低服务质量，并可能在核心和接入链路上被选择性地随机丢弃（使用WRED协议）。这非常适合这样的视频会议终端系统：能够根据发生的丢包率动态地调整编码速率（例如，1%的丢包率导致终端系统恢复到低一级的编码速率）。然而这样更难控制合约内视频数据流的延时。WRED没有丢弃的合约外数据流将与合约内数据流进入到相同的队列，从而增加合约内数据流的延时和抖动。注意，在与合约内VPN视频数据流不同的队列中调度合约外视频数据流，通常是一种不能接受的方案，因为它将导致视频流中的包持续重排序。

VPN Business Latency CoS用于满足应答性应用的需求，通常是基于客户端/服务器的应用，其吞吐量非常小，但要求控制应答时间。典型的例子是关键任务交互应用（如预约或排序系统）：用户单击（或按回车）并等待服务器应答。系统网络架构（System Network Architecture，SNA）终端—主机事务、企业资源规划应用（如SAP、Oracle、PeopleSoft和Siebel）以及金融转账和信用卡事务都是这样的应用，它们都可以使用VPN Business Latency CoS。

在接入链路上根据合约速率控制发送到VPN Business Latency CoS的流量，超出部分将被丢弃。因为相应的应用通常不会以较高的速率传输，通常很容易为这种CoS选择合理的合约速率，且实际流量不会超过该速率。尽管这样，与VPN Video CoS一样，Globenet将探讨在未来改进VPN Business Latency CoS，以接受合约外数据流。然而，为支持合约外VPN视频、合约外VPN latency和其他 QoS 服务，Globenet 将面临的一个问题是 EXP 值的缺乏，因为 Globenet已使用了8个可用EXP值中的7个。

VPN Business Throughput CoS用于满足需要高吞吐量的应用。具体地说，它为持续长时间的TCP流优化了吞吐量。存储并转发、文件传输、Lotus Notes以及 Microsoft Exchange 都是这样的应用，非常适合使用 VPN Business Throughput CoS。尽管这种CoS提供了合理的延时，但它的主要目标是为合约内数据流提供低丢包率，因为它直接影响TCP实际的吞吐量。在接入链路上， VPN Business Throughput CoS将接受合约外数据流，但它们被降级（即以不同的方式标记），且比合约内数据流遭受更激进的选择性随机丢弃。尽管接受合约外数据流会增加合约内数据流的延时（对目标应用来说，它不是太重要），但它允许更平滑地调整TCP以适应可用带宽，最终获得更高的总吞吐量。

VPN Standard CoS用于所有未归类到其他CoS的应用，Globenet为它们提供合理的延时和丢包率承诺。

5.9.2 EMEA、亚太和南美地区中核心网络的QoS设计

Globenet在核心中管理5个队列，其原因如下：

• 核心网络中的带宽有限，尤其是在亚太和南美地区；

• 在给定队列占用率的情况下，相对低速的链路将导致较高的延时和抖动；

• 长距离链路的高传播延时；

• 需要仔细优化以满足前面介绍的高SLA需求。

图5.30说明了CoS与这5个队列的映射关系。

图5.30 在EMEA、亚太和南美地区中使用的5个队列

这让Globenet能够分别处理5种类型的数据流，对其采取不同的容量规划策略以及应用不同的QoS机制。

对于EF数据流，Globenet组合使用如下机制。

• 对EF队列使用绝对优先排队，以在短时间内获得最优延时和抖动。

• 使用（第2章介绍的）支持区别服务的MPLS流量工程（DS-TE）在“基于约束路由的”独立隧道上传输 EF 数据流，在任何链路上都保持 EF数据流负载低于链路速度的 30%。我们将这些隧道称为 EF 隧道。Globenet认为30%的带宽约束是适当的，这样才能通过核心的延时、抖动和丢包率达到EF队列中传输的数据流（如ATM伪线路和VPN语音）的要求。

• 为EF数据流进行单独的容量规划，并使用网络模拟工具来验证网络有足够的容量，使得在正常运行时EF负载保持在链路容量的20%以下（从而沿采用最短路径的TE进行路由）。另外，Globenet还验证在发生单点失效时，TE路由的EF负载在30%的限制内（在最短路径或非最短路径上）。

• 条件性控制为链路速率的40%。尽管Globenet预期TE不会路由超过30%的EF负载（即使在单点失效情况下），但还是将条件性控制器配置为 40%（而不是 30%）。这样可确保 EF 数据流不会在实际负载暂时超过预期负载的过渡期间被不必要地丢弃。当实际EF负载骤增而相应的动态隧道规模增加滞后（通过后面5.10节介绍的自动路由机制）时，可能发生这种过渡期。当承载EF数据流的隧道由于失效而被快速重路由，但没有被其前端路由器重路由，因而没有适当的TE许可控制时，也将发生这种情况。显然，Globenet预期在核心链路上实际EF负载总是低于40%。因而，实际上它并不期望策略控制器起作用。它作为一种安全预防措施来配置，以便在发生极端非预期情况时，防止EF数据流占用大部分或全部带宽，进而导致其他类别（如VPN Video、VPN Business Latency或VPN Business Throughput）的QoS降低，甚至导致路由和控制数据流不能传输而影响网络的稳定性。

对于其余数据流（我们称之为“非EF数据流”），Globenet组合使用如下机制。

• 对于每种CoS使用一个单独的区别服务队列，以确保隔离和适当的QoS水平。

• 使用DS-TE在“基于约束路由的”隧道上同时传输所有非EF数据流（但与EF数据流分离）。链路上所有隧道容量之和限制为链路容量的100%（在高速链路上，可以通过一个过度租用系统来调整，这将在5.10节中详细介绍）。我们将这些隧道称为非EF隧道。

• 对EF数据流和非EF数据流进行总容量规划，并通过网络模拟工具验证网络有足够的容量，以满足下面的条件。

——EF数据流和非EF数据流都由DS-TE沿最短路径路由，在没有发生失效时，总负载保持在链路容量的80%以下（有时候，即使在没有发失效时，总负载也将达到链路容量的 100%，导致没有发生失效时有少部分隧道沿非最短路径路由）。

——在单点失效条件下，EF数据流和非EF数据流都可以在指定的带宽限制内（EF 隧道为 30%，非 EF 隧道为 100%加上过度租用）由DS-TE进行路由（沿最短路径或非最短路径）。

• 根据每种CoS的QoS需求和预期流量负载，分别为它们分配不同的调度参数。

采用这种方法有如下结果：

• 在正常情况下，不会发生拥塞，但在高峰期间可能达到相当高的利用率，如80%的链路利用率（对于前面提到的少数例外情况，甚至接近100%）。通过以高利用率运行并为应用提供严格的服务质量，Globenet能够尽可能少用昂贵的国际链路。所以，它是Globenet以竞争性价格提供高质量服务的策略中的一个重要元素。

• 在失效情况下，Globenet接近于拥塞条件运行，链路利用率接近100%。有些链路甚至暂时性地在拥塞条件下运行（总负载超过 100%的链路占用率）。发这种情况的原因是，数据流负载可能突增，而通过自动路由机制实现的相应动态隧道容量增加滞后。当 EF 隧道和非 EF 隧道被快速重路由，且还没有被其前端路由器重路由从而遵循适当的TE许可控制时，在过渡期间将发生这种情况。然而，正如本章后面5.11节将介绍的，这种过渡时间非常短。

• 如后面所述，默认（DF）队列（承载VPN STandard CoS和因特网数据流）只分配到一小部分带宽。这确保该CoS在可能的拥塞期受到的影响最严重，从而保护其他重要的CoS。

这种方法将EF数据流与所有其他CoS分开处理，它显然要求对EF隧道和非隧道采取不同的许可控制，从而：

• 将EF隧道限制在EF特定的工程化水平（这里为30%）；

• 所有隧道（包括非EF隧道和EF隧道）一起被限制在为特定的总工程化水平（这里为100%加上过度租用）。

这完全符合（第 2 章介绍的）DS-TE 的俄罗斯洋娃娃模型（RDM），这种模型将CT1限制为带宽约束BC1，然后将CT0和CT1一起限制为带宽约束BC0。

RDM还让Globenet能够实现EF隧道和非EF隧道之间的最大带宽共享。如果EF隧道当前没使用其全部30%的链路容量，剩余的部分可被非EF隧道使用，从而链路利用率可达100%（加上过度租用部分）。这避免了带宽容量的浪费。

另外，通过对EF隧道（CT1）使用比非EF隧道（CT0）更高的抢占优先级，EF隧道将总是能够在需要时保留其全部BC1带宽，而不管以前已经建立（或将来需要建立）多少非EF隧道。也就是说，通过结合使用抢占优先级和RDM， Glboenet可避免EF隧道发生带宽不足的情况，即使EF隧道（CT1）与非EF隧道（CT0）共享带宽约束BC0。这种机制有时也称为实现CT之间的隔离。

所以，Globenet选择使用RDM以及：

• EF隧道，它属于CT1并使用高抢占优先级；

• 非EF隧道，它属于CT0并使用低抢占优先级。

结合使用抢占策略和 RDM 的另一个优点是，DS-TE 的控制平面带宽分配与区别服务的数据平面带宽分配完全匹配。DS-TE总是允许EF隧道在需要时保留尽可能多的带宽（直到到达其带宽约束，BC1 = 30%）。调度程序总是根据需要授予相应的EF包尽可能多带宽（直到到达条件控制速率），因为它们在一个绝对优先队列中调度。非EF隧道可以保留BC0中所有未被EF隧道使用的带宽。调度程序允许承载非EF包的队列（AF4、AF3、AF2和DF队列）使用未被EF队列使用的所有物理链路带宽。这样不管当前建立的EF隧道和非EF隧道的比例如何，EF和非EF数据流总是获悉相应部分的调度资源，从而避免这两种数据流类型的QoS水平降低。

图5.31说明了如何将CoS映射到CT0和CT1隧道。该图还表明，在支持区别服务的MPLS TE中，控制平面（路径选择）和数据平面（调度）是分开的。读者可以看到，包采用的路由完全受它被封装到的TE隧道控制，而包的调度由CoS标记（MPLS EXP位）控制。例如，前往 P路由器 P2的因特网包和VPN视频包被封装到相同的非EF隧道（从而采用相同的路径通过核心），但它们在每跳被调度到不同的队列中，即DF队列和AF4队列。前往P路由器P2和P路由器P3的VPN视频包被封装到不同的非EF隧道中，但在当前跳（P路由器P1），它们在相同队列（AF4）中调度。

图5.31 在EMEA、亚太和南美地区中使用5个队列和两个CT

Globenet还考虑了分别限制EF队列和非EF队列的带宽约束模型，如（在第2章介绍的）最大分配模型（Maximum Allocation Model，MAM）。但在Globenet的环境中，这将导致带宽浪费或不能接受的拥塞风险。例如，如果将EF隧道限制为链路容量的 30%，将非 EF 隧道限制为链路容量的 70%，显然总负载将保持在100%以下，从而可以防止拥塞。然而，如果EF隧道当前只保留了10%的链路容量，将导致不必要地浪费20%的链路容量。反过来，如果EF隧道限制为链路容量的30%，非EF隧道限制为链路容量的90%，显然当EF隧道实际上只使用 10%链路容量时，因为非 EF 隧道可以保留 90%的链路容量，所以不会造成带宽浪费。然而，非EF隧道可能在EF隧道已经保留其全部30%链路容量时，仍使用 90%链路容量，这将导致链路的总负载达到 120%，这是 Globenet 不能接受的拥塞程度，所以它否决了独立带宽约束模式。

在未来，Globenet可能考虑在RDM中使用第三种CT。例如，它可能用于创建第三个TE隧道网，专门用于承载交互式数据流（VPN Video CoS和 VPN Business Latency CoS），这些数据流也有延时约束，但没有语音VPN CoS那样严格。这个网中的隧道称为交互式隧道。在这种情况下，RDM将用于：

• 将EF隧道限制为30%；

• 将EF隧道和交互式隧道一起限制为VPN Video和 VPN Business Latency数据流的工程化的水平（如50%至60%）；

• 将EF隧道、交互式隧道和非EF-非交互式隧道限制为100%（加上过度租用）。

Globenet在南美地区使用了许多卫星链路。它们对Globenet非常有吸引力，因为它们能以较低的费用获得额外带宽，使得在该地区很容易实现长距离连接（因为它们的费用与距离无关）。然而，这些链路的传播延时大约为 300ms（信号发送到卫星并从卫星返回地球所需的时间），因此不适合用于传输语音数据流。这是Globenet的另一个DS-TE重要应用：在南美，使用DS-TE确保Voice VPN CoS不会路由到卫星链路。

注意 虽然卫星服务通常作为一种单向服务提供，但 Globenet 总是将两种这样的单向服务组合成一条链路，使其成为前往路由器的双向链路。

关于针对EF数据流和非EF数据流的支持区别服务的MPLS流量工程的设计，将在5.10节中详细介绍。

Cisco的模块化QoS CLI（Modular QoS CLI，MQC）支持独立地控制每个队列的三种调度属性。

• 最大带宽：该属性定义调度程序为队列保证的最小带宽。

• 过量带宽：该属性定义如何为队列分配超出最小带宽的过量带宽（在没有配置最小带宽时，可以将它设置为0）。过量带宽表示为未分配给任何队列（或已分配给某个队列，但当前未使用）的带宽百分比。

• 优先：该属性指定队列中的所有负载优先于其他队列获得服务（直到到达优先队列配置的控制带宽）。

类似地，Globenet认为有些CoS需要绝对的带宽分配（分配给队列的带宽量必须非常接近基于合约速率的预期峰值流量）。为满足CoS的延时/抖动/带宽需求，这是有必要的。

• EF数据流（VPN Voice和ATM伪线路以及未来的虚拟 IP租用线）。

• AF4数据流（VPN Video）。

• AF3数据流（VPN Business Latency）。

其他CoS只要求相对带宽分配（分配给队列的带宽量主要反映相对于其他类别的相对服务水平）：

• AF2数据流（BPN Business Throughput）。

• DF数据流（VPN Standard和因特网）。

所以，在只需相对带宽分配的CoS的队列上，Globenet选择不配置最小带宽，而是配置过量带宽。这样，如果Globenet决定修改需要绝对带宽分配的CoS的最小带宽，将不需要修改这些队列的配置。如果Globenet在未来决定引入额外的CoS，并有绝对带宽分配需求，这种决策也非常很有利。

程序清单 5.10是OC-3 Packet over SONET（PoS）链路的核心QoS出口服务策略。Globenet进行了如下配置。

• 在EF队列上将条件性控制带宽配置为链路带宽的40%（使用优先级属性配置）。

• 将AF4队列的最小带宽配置为链路带宽的20%。

• 将AF3队列的最小带宽配置为链路带宽的5%。

• 将AF2队列的过量带宽配置为剩余带宽的83%。

• 将DF队列的过量带宽配置为剩余带宽的17%。Globenet选择使用83%和17%，使得为AF2队列分配的带宽大致为DF队列的5倍。

这种带宽分配如图5.32所示。

图5.32 EMEA、亚太和南美地区核心的网络带宽分配

程序清单5.10 EMEA和亚太地区OC-3链路的核心QoS出口服务策略

因为希望VPN Business Throughput CoS承载绝大多部分TCP数据流，所以在AF2队列上应用随机早期检测（RED），以实现与TCP流控制机制的最优化交互。

Globenet将控制数据流和管理数据流放到与VPN Business Throughput CoS相同的队列（AF2 队列）中来处理，因为该队列提供了适当的传输承诺。控制数据流使用如下内容来标识。

• DSCP值 48（对应于优先级 6）。Cisco路由器在生成路由包（OSPF、BGP）和基本控制数据流（LDP、RSVP-TE、Telnet等）时，自动将DSCP设置为该值。

• EXP值 6，表示核心的MPLS封装路由包，如BGP包。

管理系统向任何网络元素发送的管理数据流在网络管理系统端用DSCP=16标记。所以当它被封装到MPLS中时，将用EXP=2值标记，并可根据该准则进行分类。对于P路由器或PE路由器产生的数据流，必须对设备进行配置，使其将DSCP设置为DSCP=16（它将被映射为EXP=2）。Cisco IOS支持本地策略的概念，它允许将分类和标记应用于本地生成的数据流（而常规QoS服务策略被应用于逻辑或物理接口）。如程序清单5.11所示，Globenet使用这种本地策略来标识前往管理系统的数据流，并使用DSCP=16进行标记。

程序清单5.11 用于在EMEA、亚太和南美地区中标记管理数据流的核心QoS本地策略

注意 Globenet在核心使用 IS-IS作为 IGP。因为 IS-IS没有封装在 IP中，所以不能像BGP或OSPF协议那样，直接应用区分机制实现对IS-IS包的优先处理。例如，IS-IS数据流显然不能被用于对路由数据流（如OSPF和BGP）进行分类的分类准则（匹配IP DSCP=48和MPLS EXP=6）捕获。为保护IS-IS数据流，Globenet利用了其路由器专门为本地生成的数据流提供的机制。例如，被标识为基本的本地生成的数据流（如IS-IS消息）可以绕过入口的丢弃机制。在有些情况下，它可被调度到专用队列中，该队列与区别服务队列并列运行，并分配了最小带宽以便为这些数据流提供适当的保护。

Globenet需要确保合约外数据流（接受的超出VPN Business Throughput CoS合约速率的数据流）不会在AF2队列发生拥塞时抢占过多资源。所以，它在AF2队列中使用WRED。更准确地说，Globenet选择：

• 对重要数据流（合约内的VPN Business Throughput数据流以及控制和管理数据流）应用常规RED随机丢弃；

• 对合约外的VPN Business Throughput数据流应用更激进的丢弃。

为配置RED常规丢弃，Globenet使用与Telecom Kingland相同的公式（参阅4.8.2节）。所以对于重要数据流，Globenet按如下方式计算RED参数。

• 指数权重常数 n为：2−n =10/B，其中B =队列带宽/（MTU×8），MTU = 1500字节。

• 将最小和最大阈值分别设置为管道大小的15%和100%，其中管道大小=RTT×队列带宽/（MTU×8）

• 最大丢弃概率设置为1。

为AF2队列分配剩余带宽的83%。考虑如下条件。

• 在稳定情况下预期EF队列最多承载30%链路容量。配置DS-TE，使得在任何链路上它只路由至多30%的EF数据流（尽管条件控制配置为链路容量的40%，以处理过渡情况）。

• 为AF4队列分配20%链路容量。

• 为AF3队列分配5%链路容量。

所以， Globenet 为 WRED 细调考虑的 AF2 队列正常服务速率是（100-30-20-5）%的83%，即大约为链路带宽的37%。在OC-3链路上，这意味着为RED细调考虑的AF2队列带宽为57Mbit/s。采用这种队列带宽，并假定往返时间（RTT）为 300 ms，这些公式将计算得到如下值（如程序清单 5.10所示）。

• 指数权重常数为9。

• 最小阈值为214。

• 最大阈值为1425。

对于合约外的VPN Business Throughput数据流，Globenet选择应用的最大阈值等于合约内数据流的最小阈值。所以，在合约内数据流进入随机丢弃模式前，将以激进方式丢弃合约外数据流。最小阈值设置为最大阈值的1/3，即72。最大丢弃概率也设置为1。

图5.33是AF2队列的WRED丢弃曲线。

图5.33 核心中AF2队列的WRED丢弃曲线

注意 在程序清单5.10中，使用关键字precedence-based配置class-Throughput的WRED曲线。该句法表示WRED将应用于MPLS包的EXP字段（当然还有IP包的优先级字段）。

Globenet 还在 DF 队列中激活 RED，以根据队列的可用容量平滑地调整TCP 流（预期它在队列中占统治地位，因为它承载因特网数据流和 VPN Standard）。对于DF队列的RED细调，Globenet也使用前面用于常规RED丢弃曲线的公式。因为DF队列分配了剩余带宽的17%，所以Globenet为RED细调考虑的 DF 队列正常服务速率为(100-30-20-5)%的 17%，即大约为链路带宽的 7.65%。在OC-3链路上，这意味着该队列带宽大约为 11.9 Mbit/s。据此可计算得到：

• 指数权重常数为7；

• 最小阈值为45；

• 最大阈值为298；

• 最大丢弃概率为1。

Globenet在VPN Voice、VPN Video和VPN Business Latency CoS中都没有激活RED，因为预期在它们承载的数据流中，TCP或类TCP数据流不多。

最后，与 Telecom Kingland一样，Globenet决定对这三种队列的瞬时队列长度进行限制。这样可避免某个队列占据大量的缓冲区，从而硬性限制该跳的最坏延时和抖动。

对于EF队列，将适当配置其最大队列长度，使得实时数据流通过该跳的绝对最坏排队延时小于 30 ms。在OC-3链路上，EF队列最多能够占用 40%链路带宽，且包长为 76字节（假定采用 30 ms取样间隔的G.729编码，它意味着 30字节的有效负载加上40字节的IP头和6字节字的PPP头），这意味着EF最大队列长度应限制为3060个包。

对于其他所有队列，为避免最大队列长度导致不必要的尾丢弃，Globenet配置了一个最大队列长度，即使它能够再缓冲100ms的数据流。假定平均包长为250字节，队列当前占用50%链路容量，则100ms的数据流相当于3875个包。

在Cisco IOS实现中，TE隧道前端的默认行为是，将最外层标签栈条目中的EXP字段复制到加入的MPLS TE隧道标签条目的EXP字段中。类似地，处理TE隧道标签条目的标签交换路由器（在TE上使用PHP时，为次末跳路由器， Globenet网络属于这种情况）的默认行为是，保持最外层标签条目的EXP字段不变。所以EXP标记方案在通过MPLS TE隧道时完全得到保留。在核心中，第3层MPLS VPN CoS和因特网接入服务的网络包的最外层标签栈条目中有相同的EXP值，不管它们当前在TE隧道中传输（P路由器—P路由器TE隧道中的跳）还是不在TE隧道中传输（从PE路由器到第一台P路由器的跳）。这意味着可以根据最外层的EXP字段值对包进行分类，并应用相同的QoS出口策略，而不管是否使用了MPLS TE。

如程序清单5.10所示，Globenet选择使用default（默认）类别的概念（包括不属于其他类别的所有数据流），对需要进入到DF队列中的数据流进行分类。如果有非预期标记的包出现在核心中（例如，通过错误配置暂时打开的安全漏洞进入）时，这种方法可以高效地确保它们将总是进入到DF队列中进行调度。这样可保护最重要的数据流不受拒绝服务攻击。

另外，如 5.3 节所述，因特网数据流一般以标签交换的方式通过 Globenet核心。然而，在PE路由器之间的MPLS连接暂时丢失时，它也会作为本征IP数据流进行转发。在这种情况下，尽管在QoS出口策略中没有根据DSCP值0进行显式分类，因特网数据流仍被调度到DF队列中，因为这些数据流将被归为default类别。

在所有PE路由器面向核心的接口和所有P路由器接口上，Globenet应用程序清单5.10所示的核心QoS出口服务策略。因为有几个参数（如WRED微调和最大瞬时队列长度）取决于接口带宽，所以需要为每种接口（OC-3、OC-48等）创建不同的服务策略。其他服务策略（包括类别定义和调度配置）相同，与接口带宽无关。

ATM PVC上的核心网络QoS设计

在亚太地区，Globenet使用自己的ATM基础设施支持的ATM PVC来互联部分P路由器和P/PE路由器。对于IP/MPLS层和ATM层之间的QoS互联，有几种模型是可行的。Globenet选择一种简单的QoS互联模型：每个ATM PVC都能被IP/MPLS层看到和使用，仿佛它是一条点对点链路，只有它可以为任意速度。

• 在 IP/MPLS层，独立地将区别服务机制应用于每个ATM PVC，就像它是点对点链路。

• 在ATM层，为确保ATM VC尽可能准确地模拟点对点链路，Globenet使用了许多种技术。首先，在ATM交换机上，Globenet提供的ATM PVC支持ATM数据流类别VBR-rt和可持续信元速率（Sustainable Cell Rate， SCR），后者等于目标IP带宽（考虑ATM信元头以及单独封装开销）。ATM数据流类别VBR-rt确保ATM信元以较低的延时和抖动，用交换方式通过ATM基础设施。提供的SCR确保只要路由器以SCR或更低速率传输，在 ATM 基础设施中将保留足够的资源，以可忽略不计的信元丢失率来承载PVC上的数据流。最后，Globenet在路由器上激活ATM级流量整形，使流量形状与提供的 SCR 一致。三个可配置的参数控制Globenet路由器上每个ATM整形器的行为：SCR、峰值信元速率（Peak Cell Rate，PCR）和承诺突发量（它定义了整形器可传输的超出SCP但低于PCR的突发量）。Globenet将ATM整形器的PCR和SCR都配置为等于ATM PVC提供的SCR值，并将突发量配置为一个很小的值。这确保路由器能够根据ATM PVC SCR非常平滑地进行流量整形，且传输的所有信元都在ATM PVC流量合约内，从而保证传输的所有 IP/MPLS数据流获得非常低的延时/抖动和可忽略的丢包率。

通过采用这种模型，可将拥塞问题完全排除在 ATM 层外，ATM 层提供了一个固定速率的管道。拥塞问题将完全由IP层处理，IP层负责使总IP速率适应ATM PVC支持的固定速率。这对Globenet非常有吸引力，因为它在 IP/MPLS层和ATM层之间提供了一个非常简单的运营边界点。另外，拥塞可以在IP/MPLS层以极具选择性的方式进行处理，因为它全面支持各种 CoS。最后，这种模型让Globenet能够在ATM PVC上应用相同的 IP/MPLS QoS服务策略，从而实现一致的QoS而不管传输层是什么。

Globenet选择数据流类别VBR-rt（而不是CBR），因为它为IP/MPLS数据流（包括要求最高的VPN Voice CoS）提供了近乎完美的延时/抖动和丢包率，同时在ATM网络上占用的资源更少。

Globenet还考虑了一种更复杂的QoS互联模型，这种模型使用数据流类别VBR的变种，ATM交换接受具有突发性的ATM数据流。例如，Globenet考虑允许路由器发送超出 SCR 的数据流，并将相对不重要的 IP 数据流（合约外的VPN Business Throughput数据流、VPN Standard和 Internet）标记为CLP=1（设置其信元丢弃优先位）。这样做的优点是，允许 IP/MPLS 数据流更充分地利用ATM 网络的统计性特征，尽可能地使用剩余容量，同时在 ATM 内部发生拥塞时，ATM交换机首先丢弃不重要的数据流（通过CLP位）。然而，Globenet认为存在重要CoS的QoS水平降低的风险。例如，如果当前只有非常少的不重要的IP/MPLS数据流，将允许重要数据流的突发量超过SCR。然后，当ATM网络发生拥塞时，它可能被重新标记CLP位，最终被丢弃。另外，IP/MPLS层与ATM层之间的运营边界点也不太清晰，且使非预期QoS水平降低时的排错更困难。最后，Globenet通常期望在IP/MPLS层丢弃，以更平滑地处理弹性IP数据流，而不愿意在ATM 层丢弃。其主要原因是，在IP/MPLS 层应用的随机丢弃机制（如RED/WRED）进行了特殊设计和微调，它们能够以最优化的方式与传输协议的拥塞机制交互。

为实现Globenet选择的简单QoS互联模型，在ATM接口上应用的出口QoS策略包括如下内容。

• 定义与其他类型链路相同的QoS服务策略，仅根据PVC速率范围微调与速度相关的参数（RED/WRED曲线和最大队列长度）。

• 对于每个ATM PVC，在VC的 SCR上激活基于每个VC的ATM流量整形。

• 对于每个ATM PVC，在VC级应用QoS服务策略。这依赖于路由器支持基于VC的排队，通过这种机制，可以为每个ATM VC运行一个逻辑上独立的调度程序，根据服务策略对网络包进行调度，并将网络包提供给基于VC的ATM整形器。这种每VC排队和每VC整形的工作原理如图5.34所示。

图5.34 Globenet核心中ATM PVC上的每VC排队

在 Globenet 路由器上，使用小型的先进先出（first-in，first-out，FIFO）缓冲区（在Cisco路由器上叫做Tx-ring）将网络包传递给调度程序选择的传输逻辑。正如4.8.3节介绍的，这个 Tx-ring可能带来少量的延时/抖动，这种延时或抖动对于任何数据流都存在（包括VPN Voice数据流）。尽管在高速链路上，它总是可忽略的，但如果 Ts-ring 太大，它在低速链路上将非常显著。考虑到VPN Voice CoS需要获得最优的延时/抖动，所以Globenet认为有必要在ATM PVC上微调Tx-ring的长度。在ATM环境中，每个 PVC都有一个独立的逻辑Tx-ring缓冲区，用于控制如何将来自多个VC的包传递给ATM分段和重组（Segmentation and Reassembly，SAR）逻辑，并将VC隔离。这种每VC一个逻辑Tx-ring的情况如图5.34所示。它的微调采用与点对点链路相同的折衷方法。Tx-ring 越小，带来的延时/抖动越小。但 Tx-ring 也不能太小，因为这可能导致 Tx-ring 缓冲区的效果不佳，不能达到想要的 ATM 速率。例如，在速率为 20Mbit/s的ATM PVC上，假定MTU为 1500字节，Globenet选择将Tx-ring设置为 4个包，它在最遭的情况下将带来 2.4 ms的延时/抖动。

在Globenet核心的ATM PVC上，应用的QoS出口策略如程序清单 5.12所示。

程序清单5.12 EMEA和亚太地区中ATM PVC的核心出口QoS服务策略模板

在ATM PVC上，支持区别服务的MPLS TE的运行方式与点对点链路上完全相同。类似地，MPLS DS-TE将每个PVC视为一条具有可配置带宽约束（BC0和BC1）和其他MPLS TE属性的链路。每个PVC以完全相同的方式来实现基于约束的路由和许可控制。显然，Globenet配置的带宽约束反映各个ATM PVC的速率。更准确地说，BC0设置为IP层估计可达到的带宽，其中考虑了第1层和第2层的开销；还包括ATM信元头的ATM开销以及用于承载包的最后一个信元的填充导致的开销。如同后面 5.10.1 节将介绍的，Globenet 在配置链路上的可保留带宽时将系统地考虑低层的开销，如它是否为采用PPP的PoS链路、ATM PVC等。

5.9.3 北美地区核心网络QoS设计

因为在北美地区更容易实现高速链路，且费用比其他地区低得多，所以Globenet在北美地区部署比其他地区更简单、更粗糙的QoS设计。

首先，Globenet决定在核心中将几种CoS合并，从而只需管理三个队列。图5.35显示了北美地区CoS与这三个队列的映射关系。

图5.35 北美地区使用的三个核心队列

其次，Globenet 选择依靠容量规划和一定程度的过度工程，来确保每个队列为传输的数据流提供足够的服务速率，以满足其QoS需求。所以在北美地区既没有使用支持区别服务的MPLS TE，也没有使用常规MPLS TE对数据流执行基于约束的路由或许可控制。

与其他地区一样，Globenet使用一个绝对优先队列（EF队列）为EF数据流提供最优的延时和抖动；还应用 40%链路带宽的条件控制器，作为一种保护其他数据流的安全措施。在北美地区，使用AF2队列来调度其他地区在AF2、AF3和AF4队列中调度的数据流，所以需要分配比其他地区更多的剩余带宽比例，DF队列（承载与其他地区相同的CoS）需要分配更少的剩余带宽比例。因而Globenet为AF2队列分配剩余带宽的89%，为DF队列分配剩余带宽的11%。Globenet选择下面的相对分配来确保DF队列获得与其他地区相同的带宽比例。

• 在北美地区，假定EF队列中最大持续负载为30%，剩余带宽为70%。剩余70%带宽的11%为链路带宽的7.7%。

• 在其他地区，也假定 EF 队列中最大持续负载为 30%，但因为 AF4 和AF3队列分别分配到链路带宽的20%和5%，所以剩余带宽为45%。剩余45%带宽的17%等于链路带宽的7.65%。

类似地，AF2队列在北美地区享受与其他地区AF2、AF3和AF4队列合计比例相同的带宽比例。

除为每个队列授予不同的带宽容量比例外，Globenet 还实施总容量规划策略，在发生如下情况时提供额外的链路容量：

• 在未发生失效情况下，所有数据流的总负载达到链路容量的55%，这是通过监视接口计数器确定的。

• 发生单链路或单节点失效时，所有数据流的总负载达到链路容量的90%，这是由一个中央模拟工具确定的，该工具收集当前网络拓扑、估计流量矩阵并评估发生单点失效时所有链路的理论负载。

5.9.4 跨地区核心网络QoS设计

如5.3节所述，用于第3层MPLS VPN的AS间连接方案B跨越多个Globenet网络地区运行。所以，VPN包由ASBR进行标签交换，并在ASBR之间的链路上用MPLS头进行封装。默认情况下，IOS实现中的标签交换行为是复制MPLS头中的EXP值。这意味着所有在ASBR间链路上传输的VPN包将根据Globenet策略设置其EXP字段。

因而，Globenet在跨地区ASBR间的链路上应用的QoS出口策略，与在地区核心链路上相同。在北美和欧洲地区间的OC-48链路上，在链路两端都应用一种包含三个队列的QoS出口策略（与北美地区使用的策略相同）。在所有其他链路上（OC-3链路或E3链路），应用包含5个队列的QoS出口策略（与EMEA、亚太和南美地区使用的策略相同）。

如 5.3 节所述，来自因特网 CE 路由器且目的地为另一个没有连接到Globenet 网络的地区的数据流，在入口地区离开 Globenet，因为每个地区有自己的本地因特网对等点。这意味着目的地为因特网其他部分的数据流不会跨越地区间链路。Globenet 在跨地区链路上承载的唯一数据流是那些直接在两个不同地区连接到Globenet的因特网CE路由器之间交换的数据流。因此，跨地区链路上的因特网数据流比例要小于每个地区的比例。在这些链路上Globenet为DF队列分配的剩余带宽比例比地区内更小。

更为重要的是，它为AF2队列分配较大的剩余带宽比例，使这些链路上相应数据流的QoS最大化。

在地区间链路上，因特网数据流以本征IP包（非MPLS封装）承载。然而，在跨地区链路上应用的出口QoS策略中，不需要进行额外的分类配置。进入到DF队列中的数据流将使用default类别的概念进行分类，它不仅包含用EXP=0标记的MPLS包，还包含用DSCP=0标记的IP包，因为它们没有显式地划分到其他队列中。

5.9.5 第3层MPLS VPN和因特网的网络边缘QoS设计

在Globenet网络边缘，QoS设计由CE路由器（由Globenet管理时）的QoS机制和PE路由器上面向用户的接口的QoS机制组成。

1．CE路由器的出口策略

CE路由器出口策略的关键元素与4.8.3节讨论的Telecom Kingland的CE路由器出口策略相同。具体地说，假定对于帧中继接入，相同的层次用于：

• 物理接口带宽；

• 通过帧中继流量整形实施的承诺信息速率（Committed Information Rate，CIR）；

• 运行在帧中继流量整形上的调度程序分配给每个队列的带宽。

Globenet还使用分段和交叉（在帧中继中为FRF.12）和CiscoTx-ring微调，来优化低速接入链路上实时数据流的延时和抖动。Globenet还配置出口QoS策略，使得针对每种 CoS 的控制措施不应用于测量 CoS 性能的服务保证代理（Service Assurance Agent，SAA）样本数据流。

当然，与Telecom Kingland设计的一个重大差别是，Globenet支持 5种（而不是 3种）CoS；另一个差别是，Globenet在与第 3层 MPLS VPN Business Throughput CoS相同的队列中处理接入链路上的路由和管理数据流，而不是将其放到对用户隐藏的专用队列中进行处理。为此，Globenet 使用本地策略（与核心相同），将本地生成且目的地为网络管理系统的数据流的DSCP值设置为第3层MPLS VPN Business Throughput CoS的DSCP=16。

为进一步保护路由和管理数据流，Globenet像排除SAA数据流一样，将这些数据流排除在其余VPN Business Throughput应用的流量控制范围外。这可以通过应用一个子策略来实现，在子策略中除排除SAA数据流外，还显式地排除路由和管理数据流。否则，当第 3层MPLS VPN Business CoS数据流负载非常高时，有些路由和管理数据流可能会被重新标记为合约外数据流，从而被 CE路由器或下游路由器的激进WRED丢弃。

程序清单5.13详细说明了CE路由器上应用的QoS服务策略。客户合约为，在帧中继接入链路上，CIR为512 kbit/s，并将CIR的25%分配给VPN Voice CoS， 10%分配给VPN Latency CoS，50%分配给VPN Throughput CoS。该客户没有使用VPN Video CoS。

程序清单5.13 使用CoS的VPN站点的CE出口QoS服务策略模板

（待续）

（待续）

假定采用G.729-30 ms编码，每个VoIP呼叫在 IP层有 20 kbit/s的数据流。这意味着VPN Voice CoS合约速率（512 kbit/s CIR的 25%）可以同时容纳 6个VoIP呼叫。在VPN Voice控制器中配置的突发容忍量为 30 ms，因此可以容纳 6个并发呼叫各一个包的并发突发。G.729-30 ms的包长为 76字节，所以最大突发量为 6×76 = 456字节，当速率为 512 kbit/s的 25%时，它低于 30 ms。

在控制器中为VPN Business Throughput CoS配置的突发容忍量，可以容纳一次RTT流量。Globenet测试表明，该设置在通常情况下支持TCP流的有效交互。因而，Globenet 可以在所有时间获得接近于合约速率的全局传输速率（当有空闲容量容纳合约外数据流时，将获得更好的效果）。

对于低速链路的常规RED曲线微调，Globenet使用与Telecom Kingland相同的公式（参阅第4章的“CE路由器出口策略”一节）：

• 指数权重常数满足如下条件：2−n =1/B，其中B =带宽/（MTU×8），MTU = 1500字节。

• 最小阈值和最大阈值分别设置为B的100%和300%。最大丢弃概率设置为1。

然而，与Telecom Kingland不同的是，Globenet提供了VPN Business Latency CoS，专门用于处理要求低延时的关键任务数据流。因而，Globenet更注重优化VPN Business Throughput CoS可达到的TCP吞吐量，而不是最小化其延时。这导致Globenet采用一种与Telecom Kingland不同的WRED微调方法：不对合约内数据流使用常规RED最小阈值和最大阈值，也不对合约外数据流使用更小（因而更激进）的阈值。相反，Globenet对合约外数据流使用常规的RED最小阈值和最大阈值，并对合约内数据流使用更大（因而更温和）的阈值。具体地说，对合约内数据流，使用的最小阈值和最大阈值，分别等于合约外数据流的最大阈值的100%和300%。也就是说，Globenet将合约内数据流的最小阈值和最大阈值分别设置为管道大小的300%和900%。这意味着合约内数据流的平均延时和最大延时可能增大，但让最终用户在数据路径有空闲容量时，能够显著地提高从VPN Business Throughput CoS获得的有效TCP吞吐量，甚至超过其合约速率。有严格延时需求的关键任务数据流仍可通过VPN Business Latency CoS获得最优的处理。AF2队列的WRED丢弃曲线如图5.36所示。

图5.36 边缘上AF2队列中的WRED丢弃曲线

2．PE路由器的入口策略

在连接非管理因特网CE路由器的接口上，需要将入站数据流重新标记为因特网CoS的DSCP值，使其在通过Globenet网络时得到适当的处理。另外，它不应占用其他CoS的任何资源，不管故意（或者无意）地将因特网数据流重新标记为什么DSCP值。为此，Globenet在连接非管理因特网CE路由器的接口上应用一个非常简单的QoS输入策略，将所有收到的数据流的DSCP值重新标记为0，如程序清单5.14所示。

程序清单5.14 用于非管理因特网CE路由器的PE路由器入口QoS策略

类似地，在连接非管理VPN CE路由器的接口上，Globenet需要根据合约速率对每种CoS的流量进行控制。对于非管理第 3层MPLS VPN服务，客户有责任确保根据Globenet用于 5种第3层MPLS VPN CoS的DSCP值，对非管理CE路由器向PE路由器发送的数据流进行标记。所以在PE路由器上，Globenet只需按Globenet的DSCP方案根据DSCP字段的值进行分类。程序清单5.15显示了在连接非管理第3层MPLS VPN CE路由器的接口上应用的输入QoS策略。

程序清单5.15 用于非管理MPLS VPN CE路由器的PE路由器入口QoS策略

（待续）

作为防止 Globenet 管理的 CE 路由器被替换或篡改的安全措施，Globenet还在连接管理CE路由器的接口上应用每CoS控制。对于非管理CE路由器，为到达相同的目的，使用了相同类型的输入策略（如程序清单5.15所示）。

3．PE路由器的出口策略

PE路由器上，负责管理前往CE路由器的链路的出口策略与CE路由器出口策略（参阅4.8.3节）非常类似。主要差别是，它可以直接根据DSCP值进行分类，因为入口CE路由器已经对所有数据流进行分类和标记。

5.9.6 同Telecom Kingland的服务提供商间VPN的QoS设计

与（第 4章介绍的）Telecom Kingland合作的目标之一是，为客户的所有站点提供相同的第 3 层 MPLS VPN 服务功能，而不管这些站点是直接连接到Globenet还是连接到 Telecom Kingland。为此，Telecom Kingland在连接属于Globenet VPN的站点的接入链路上，支持Globenet的QoS（包括 5种Globenet CoS），而不是Telecom Kingland）使用三种CoS提供的常规QoS：VPN Real-Time、VPN Premium和VPN Standard。通过使用这种方法，客户在其VPN中只需处理一家提供商提供的QoS，即使该VPN中既包含连接到Globenet的站点，也包含连接到Telecom Kingland的站点。

图 5.37显示了如何在两个VPN站点（一个连接到Telecom Kingland，另一个连接到 Globenet）之间实现一致的端到端 QoS。图中还显示了路径中每跳的QoS标记和策略。

图5.37 同Telecom Kingland的服务提供商间VPN中的QoS标记和策略

为帮助端到端QoS的运行，Telecom Kingland使用Globenet的DSCP值供CE路由器进行标记。这支持5种端到端QoS，避免了在两个网络的边界上执行从一种 DSCP 值方案到另一种方向的映射。所以，在 CE 路由器上，Telecom Kingland应用基于Globenet DSCP标记方案及其 5种CoS的出口QoS策略。

为通过其骨干进行传输，Telecom Kingland想在DF队列中调度所有VPN数据流，而不管其CoS。DF队列用于承载所有VPN数据流，包括VPN语音数据流。所以需要确保PE路由器，将入口PE路由器加入的标签栈条目中的EXP字段设置为Telecom Kingland标记方案中DF队列的值，即EXP=0。然而，PE路由器不能覆盖CE路由器根据Globenet标记方案设置的DSCP值，而必须将其保留，供Telecom Kingland下游的Globenet用来执行相应的QoS处理。为此，在入口CE路由器上，Telecom Kingland在连接属于Globenet VPN的CE路由器的接口上应用专用的输入QoS策略。该策略包含完善的标记配置，它保持DSCP字段不变，但将所有加入的标签栈条目的EXP字段设置为0。该输入策略如程序清单 5.16所示。注意，如果Telecom Kingland不应用该策略，则标记为VPN&nbsp;Business Latency的数据流对应的Globenet DSCP值为26，默认被映射到EXP=3，这样将在Telecom Kingland的AF3队列中进行调度。该队列专用于传输基本控制和信令数据流，因为EXP=3是Telecom Kingland分配给语音信令数据流的值。当然，这对于Telecom Kingland是不能接受的。

可以看到，Telecom Kingland实际上设法在其MPLS骨干内应用自己的QoS方案，同时在传输的 IP包的DSCP中保留Globenet QoS标记。MPLS区别服务骨干的这种能力称为QoS透明性，它在多个区别服务管理域互连时非常有用，如这里的Globenet和Telecom Kingland之间的提供商间VPN。Telecom Kingland用来获得QoS透明性的方法称为短管道区别服务隧道模型，它具有如下特点：

• 加入MPLS标签时：标记加入的标签的EXP值，但不修改被封装的数据流的QoS标记（这里为DSCP）。

• 弹出MPLS标签时：忽略MPLS标签弹出前的EXP值，保留头信息的QoS标记不变（这里为DSCP），并使用该QoS标记进行出口调度。

另一种被称为管道模型的区别服务隧道模型也支持QoS透明性。它与短管道模型的唯一差别是，在删除MPLS标签时，根据MPLS标签弹出前的EXP值执行出口调度。在MPLS网络运营商不想知道传输的数据流的区别服务策略的环境中，这种模型非常有用。因为Telecom Kingland知道Globenet的区别服务策略，且 Globenet策略也是在 Telecom Kingland核心出口应用的策略，因此Telecom Kingland选择部署短管道模型。

程序清单5.16 用于Globenet VPN的Telecom Kingland PE路由器入口QoS策略

因为在Telecom Kingland和Globenet之间使用第 3层MPLS VPN AS间连接方案A，所以Telecom Kingland出口路由器弹出MPLS标签栈，并将VPN包作为本征 IP包在背对背VRF之间的链路上传输。根据Cisco IOS实现中PE路由器的默认操作，出口PE路由器保留DSCP字段不变，因而它包含入口CE路由器根据Globenet方案设置的DSCP标记。

如 5.3节所述，背对背VRF链路被实例化为Globenet PE路由器与Telecom Kingland PE路由器之间的吉比特以太网链路上的VLAN。为适当地处理该吉比特以太多链路上的第 3层MPLS VPN包，Telecom Kingland再次根据Globenet的标记应用QoS出口策略，该策略类似于Globenet在北美地区应用的三队列策略。注意，没有必要在该接口上应用包含每——VLAN QoS策略的层次性QoS策略（例如，在VLAN级的第1级策略执行每——VLAN整形，第2级策略分别根据整形速率对每个 VLAN 应用三个队列。）Globenet 的市场定位是，通过Telecom Kingland提供无缝的QoS服务。所以用户不需要知道提供商之间的边界，也不需要订阅任何与提供商边界相关的合约带宽。相反，调度将完全基于三种CoS来执行，与网络包属于哪个VPN/VRF无关。

最后，Globenet接收网络包，并像处理其他Globenet第 3层MPLS VPN数据流那样处理它，因为它们被收到时有相应的标记。

相反方向上的端到端 QoS 操作（即从连接到 Globenet 的站点向连接到Telecom Kingland的站点发送数据流）非常类似。Globenet以处理其他第 3层MPLS VPN数据流的方式处理这些包。在这个方向上，Telecom Kingland需要应用如下策略。

• 在PE路由器上应用入口QoS策略，对于从Globenet收到的数据流将加入的EXP设置为0

• 在出口PE路由器，将基于Globenet DSCP标记方案的三队列出口QoS策略，应用于与属于Globenet VPN的第 3层MPLS VPN站点相连的接口。

5.9.7 多播数据流的QoS设计

Globenet的mVPN服务定义包括如下多播数据流处理：

• 所有多播数据流都在VPN Standard CoS中处理。这确保多播数据流不会影响任何其他第 3层MPLS VPN CoS。

• 每个站点生成的总多播流量限制在小于接入链路速率的协议速率内。它可以防止站点以接入链路速率发送多播数据流，从而提供了单播数据流与mVPN数据流共享VPN Standard CoS的基本保护。

在其管理的CE路由器上，Globenet根据多播地址前缀范围将多播数据流归入VPN Standard CoS。然后，作为已有VPN Standard CoS策略的一部分，将多播包的DSCP字段设置为DSCP=0，这与单播包相同。在入口PE路由器上，不会使用MPLS对多播包进行封装，而是进入多播通用路由封装（Generic Routing Encapsulation，GRE）隧道。根据Cisco IOS实现中PE路由器的默认行为，Globenet入口PE路由器将收到的多播包的DSCP值复制到多播GRE头中的DSCP中。因为多播包的DSCP值在CE路由器上被设置为0，所以，所有mVPN包都以DSCP=0（包含在多播 GRE 头中）发送到核心网络。如前所述，Globenet 当前在核心中的QoS策略确保任何DSCP=0的非MPLS封装包都归为defalt类别，然后作为VPN Standard CoS的一部分在DF队列中处理。最后，在出口PE路由器上，为在 PE-CE 链路上进行调度，多播包由现有的出口 QoS 策略自动归为VPN Standard CoS，因此将在DF队列中调度，因为它们的DSCP字段为DSCP=0 （属于default类别）。

Globenet使用命令 ip multicast rate-limit来限制总多播数据流的速率。

5.9.8 IPv6 VPN的QoS设计

Globenet当前只为 IPv6 VPN数据流支持一种CoS，即VPN Standard CoS。也就是说，在CE-PE链路、核心和PE-CE链路上，VPN内部的所有IPv6数据流都将作为VPN Standard CoS进行处理。

对于CE-PE链路，IPv6数据流自动归为管理CE路由器的default类别，因为它不与Globenet显式地为IPv4定义的任何分类准则匹配。所以它进入VPN Standard CoS的DF队列中进行处理。

在核心中，Globenet在入口PE路由器使用IOS的默认6VPE行为。它将所有加入到 IPv6 VPN包中的标签栈条目的 EXP字段设置 0（不管 IPv6包中的DSCP值是什么）。然后，因为这个EXP=0标记，所有承载 IPv6 VPN包的MPLS包都将被现有的核心QoS策略自动分类到DF队列中（分类操作根据最外层的EXP字段执行，它根本不关心MPLS包实际承载的内容）。这一过程同时适用于管理和非管理CE路由器。

最后，在出口PE路由器上，为实现PE-CE链路上的调度，IPv6包也被归为default类别，并在DF队列中调度。

验证相应的操作后，将为 IPv6 VPN提供与 IPv4 VPN完全相同的QoS。注意，这并不意味着除为IPv4支持现有的5种CoS外，还为IPv6支持5种CoS。相反，它意味着现有的5种CoS将同时适用于IPv4和IPv6数据流。就像客户现在能够为任何属于特定CoS的IPv4数据流指定任何分类准则一样，在未来客户也能够为任何属于特定CoS的IPv6数据流添加任意的分类准则。5种CoS的定义及其 SLA承诺保持不变。QoS设计将建立在已有 IPv4 VPN设计的基础之上。它将有额外的能力，CE路由器能够执行详细的IPv6数据流分类，并标记IPv6包的DSCP字段（按照Globenet当前为IPv4定义的DSCP方案）。另外，入口 PE路由器将被配置为，对 IPv6 VPN数据流应用与 IPv4数据流相同的默认DSCP-to-EXP映射。出口PE路由器将被配置为根据DSCP字段对IPv6数据流进行分类（与处理IPv4数据流的方法相同）。核心的QoS操作保持不变。

5.9.9 ATM中继的伪线路QoS设计

在北美和EMEA地区，Globenet使用ATM伪线路支持ATM交换机中继。Globenet对于ATM伪线路使用透明信元传输（Transparent Cell Transport）模式。这允许通过ATM伪线路中继的ATM交换机，支持任何ATM数据流类别的ATM虚电路和ATM虚路径，包括CBR。所以Globenet必须为这些ATM伪线路提供适用于所有ATM 数据流类别（包括CBR）的QoS。这也正是为什么在网络中每跳上，ATM伪线路数据流与第 3层MPLS VPN语音数据流在EF队列中一起调度的原因。Globenet通过在PE路由器上对支持伪线路服务的ATM接口应用一种输入QoS策略来保证这一点。该策略将PE路由器加入的MPLS标签栈条目的EXP字段设置为EXP=5。

此外，在EMEA地区，数据流在支持区别服务的MPLS TE隧道中传输，从而能够从基于约束的路由和许可控制中获益，ATM伪线路在专用的TE隧道中承载。其原理以及相应的设计将在5.10.12节详细介绍。

程序清单 5.17 显示了标记伪线路数据流的 EXP 字段并将其导向到专用的MPLS TE隧道（使用首选路径功能）的详细配置。

程序清单5.17 ATM伪线路的PE路由器模板

（待续）

命令mcpt-timers让您能够为每个ATM接口分配三个可能的定时器，以指定最大信元封装超时（maximum cell packing timeout，MCPT）。这些值要求信元封装功能在给定时间内完成。如果选定的定时器在最大数量的信元被封装到MPLS 包中之前超时，将无条件地发送该 MPLS 包。如程序清单 5.17 所示， Globenet将定时器配置为10、20和60毫秒，并使用第二个值。它还将最大信元封装数量配置为5个，使得收到5个信元（从而被封装在一起）后也将发送MPLS包。

默认情况下，首选路径功能确保相应的伪线路数据流在配置的TE隧道接口发生故障时能够路由到另一条路径（在相应路由器之间通过LDP建立的LSP）。该行为可使用关键字disable-fallback进行修改，使得TE隧道发生失效时，伪线路不会重路由到另一条路径。相反，受影响的伪线路将被关闭，且PE路由器生成关于受影响伪线路的ATM OAM（Operations，Administration，and Maintenance，操作、管理和维护）指示。这种行为很有用，例如，如果连接伪线路的ATM设备之间有后门连接，它们将试图通过 PNNI 使用后门连接动态地重建受影响的ATM电路。由于这一原因，Globenet选择使用disable-fallback选项。如后面的5.10.11 节所述，所有 TE 隧道都配置了一个最后使用的无约束选项。这样可以确保只要在前端和尾端之间存在 IP 连接，TE 隧道总是可路由和可建立的，而不管发生什么失效情况。所以，承载ATM伪线路数据流的TE隧道不可用的唯一情况是，相应的两台PE路由器之间的连接完全丢失或由于故障或错误配置导致MPLS TE控制平面失效。尽管这些情况极少发生，但Globenet宁愿确保快速和可预期的反应，最大化ATM网络的恢复机会。

注意 PE路由器配置包括在用于传输ATM伪线路数据流的TE隧道上禁用自动路由通告，以确保没有其他数据流路由到这些隧道上。

5.9.10 SLA监测和报表

Globenet使用 IOS服务保证代理（Service Assurance Agent，SAA），以与Telecom Kingland非常类似的方式执行主动动态监测。它还在每个POP中使用专用SAA路由器，并在所有CE路由器上激活SAA应答器。对于EMEA、亚太和南美地区的POP-to-POP测量，它为5种CoS生成不同的样本流（有不同的包长和DSCP标记）；在北美地区，只生成三种不同的样本，因为在该地区的核心只使用了三种队列。

Globenet还在客户请求时，使用SAA对5种CoS执行站点到站点测量。例如，在大型VPN中，可以在地区性站点和总部站点之间或远程站点和中心站点之间进行站点到站点测量。

Globenet 收集并整理这些测量数据，并为最终用户提供每种 CoS （POP-to-POP，或VPN内部的站点到站点）的QoS月统计。它们将用来验证合约约定的SLA承诺。测量方法的细节内容，包括样本频率、样本大小和多样本合并公式，都将在SLA中明确地指定，因为它们决定了计算结果值。

为实现网络工程目的，Globenet还在所有核心接口上每隔15分钟轮询MIB计数器，后者提供了关于核心中每个队列的统计信息。具体地说，它跟踪每个队列的如下信息：

• 队列调度的字节数和包数；

• 丢弃的字节数和包数；

•当前的队列深度；

• 使用RED/WRED时，每种RED/WRED曲线丢弃的字节数和包数；

• 对于EF队列，条件控制器对多少包进行了控制。

Globenet使用这些信息来确认每种CoS的带宽分配是否适当，并随时间的推移进一步优化相对带宽分配。Globenet 还使用这些信息来验证当前的容量规划（或在需要时触发容量升级）。

当客户请求时，Globenet还在支持PE-CE链路和CE-PE链路的接口上统计类似的计数器信息，并为客户提供总结这些信息的报表。这将有助于客户验证并根据需要调整其接入速率、分配给每种CoS的带宽百分比以及客户数据流在这些CoS之间的分布。

5.10 MPLS流量工程设计

因为带宽费用占据了Globenet全球资金支持的很大部分，所以高效地对核心网络实施流量工程是设计的一个关键方面。为此，Globenet进行了详细研究，根据流量矩阵、当前链路利用率以及流量增长预测，评估在每个地区可部署的最适当的带宽优化技术。其目标是双重的：Globenet 想高效地优化带宽以延缓链路升级；另外，如5.9节所述，Globenet想满足5种CoS的严格QoS承诺，不管是在稳定状态还是在单个网络元素失效的情况下。它将结合使用适当的流量工程许可控制和采用QoS机制的基于约束的路由功能，来实现其目标。

带宽费用在不同地区的差异非常大。所以，在北美地区，带宽费用与亚太地区相比相对便宜，Globenet可以通过部署由OC-3和OC-48链路组成的网络，对网络核心实施过度工程。这将有助于它发生拥塞前维持足够的富余带宽，即使是发生失效时。因为北美地区带宽丰富，所以不需要实施流量工程。然而，在必要时也可以通过IGP度量值优化来实现流量工程。

在南美、EMEA 和亚太地区，更仔细的带宽供应计划可显著地节省费用。所以在这些地区，Globenet选择使用支持区别服务的MPLS流量工程（DS-TE），确保EF数据流的负载保持在链路容量的30%以下。同时总负载保持在链路容量的100%（加上高速链路上的过度租用容量）以下，即使在发生单点失效时。所以在这些地区，EF数据流和非 EF数据流分别在属于不同DS-TE CT（分别为CT1 和 CT0）的 DS-TE 隧道网络上承载，使它们有不同的带宽约束。如 5.9.2节所述，Globenet使用俄罗斯洋娃娃模型，将EF隧道（CT1）限制在它们自己的带宽约束BC1内，非EF隧道（CT0）与EF隧道（CT1）一起被限制在带宽约束BC0内。另外，在南美地区，Globenet还使用DS-TE确保EF隧道只沿地面链路路由，而不会路由到卫星链路上。

Globenet考虑了在每个地区内部还是跨越所有地区使用MPLS流量工程。在每个地区内将基于每地区提供TE隧道网；跨越所有地区时，将在位于不同地区的路由器之间建立全球性TE隧道网。网络中的TE隧道数量等于n×（n−1），其中 n为路由器数量（记住 TE LSP是单向的）。所以 Globenet认为，每地区MPLS TE网是最优的折衷方案，它让Globenet能够对每个地区的数据流实施流量工程，而不需要太多的TE隧道。

在TE隧道供应和配置方面，一个重要的需求是依赖动态网络中心机制来降低人工错误的风险。另外，考虑到网络中可能的流量增长和路由器数量增加，增加新设备的情况也将经常发生，所以需要能够在网络中自动创建新TE LSP。

除北美外的每个地区中，在P路由器之间需要有两个全互联TE LSP网，因为这些地区使用DS-TE。在北美地区，使用MPLS流量工程只是为了实现快速保护，所以在P路由器之间只需要一个全互联的TE LSP网。所有这些TE LSP网都通过自动网络功能（参阅文档[AUTO-MESH]）自动创建。

MPLS流量工程的另一个关键方面是，高效地确定每个TE LSP所需的带宽。这种国际性网络的一个重要属性是，每个地区可能跨越多个时区。这使得动态TE LSP容量调整策略非常有吸引力，且它在带宽消耗方面的效率非常高。如果TE LSP容量可以根据实际流量需要动态地调整，将不需要根据它们的峰值来确定其容量，而可以按照它在每天任何时点的实际带宽需求确定，这样它将有非常高的整体带宽利用效率。由于存在多种数据流类型和多个时区，所以TE LSP不会同时面临其峰值需求，因此这种动态策略可避免容量过大的TE LSP，它将导致最短TE LSP路径，并到更好的QoS。注意，这种策略还有助于提高网络资源的利用率，这也是对于TE LSP使用某些动态TE LSP容量调整技术（除北美地区外，其中仅使用零带宽TE LSP，用于快速重路由）的动机之一。另一个动机是，它可以避免精确预测并跟踪流量的挑战，在只有少量用户但增长速度很快的网络中，这种预测和跟踪非常困难。

至于网络恢复策略，Globenet有丰富的QoS服务类型，分别定位于语音、视频会议和关键任务应用。另外，它在北美地区和欧洲某些地方的IP/MPLS骨干上承载ATM数据流。因而，Globenet决定对各个地区的所有服务和网络使用MPLS流量工程快速重路由。过去十年收集的关于ATM和IP网络的统计信息表明，超过90%的未预期失效都是链路失效。所以Globenet决定只部署针对链路失效的快速重路由。

5.10.1 设置每条链路的最大可保留带宽

要启动支持区别服务的 MPLS 流量工程，第一项任务是在每条支持 TE 的链路上配置带宽约束。注意，使用常规TE时，唯一的带宽约束也称为最大可保留带宽（Maximum Reservable Bandwidth）。运营商可以将它们配置为任何值，它们不需要与实际链路速度相同。

在北美地区，MPLS流量工程仅用于快速重路由目的，因而每个TE LSP的带宽都为0，从而采用IS-IS最短路径。尽管可以将每条链路的最大可保留带宽配置为0（BC0=0），但Globenet决定将它设置为实际链路速度，以防止未来在该地区需要使用非零带宽TE LSP。

通过设置高于或低于实际链路速度（或分配给CT对应的区别服务队列的服务速率）的带宽约束，运营商可以实施过度租用或欠租用策略。这种过度/欠租用方法称为链路过度/欠租用。它允许基于每条链路（或每种链路）而不是每个 LSP微调过度/欠租用系数。注意，运营商根据流量需求确定隧道大小时，还可以通过乘以过度/欠租用系数来实施过度/欠租用策略。这种方法称为LSP 过度/欠租用，它允许基于每个 LSP（而不是每条链路）微调过度欠租用系数。

因为在北美地区外，Globenet使用动态调整 TE LSP大小的策略，所以任何给定TE LSP保留的带宽通常接近于当前在该TE LSP上传输数据流消耗的带宽。这意味着带宽保留是精确的，因为它反映了实际流量需求。在试图利用在给定链路上保留多个隧道获得的统计性好处方面，没有太多改进的空间。然而，如本章后面将介绍的，动态调整隧道大小的算法涉及到在几个连续测量期间选择最高负载的问题。由于这一原因，Globenet 发现，在较高速的链路上（其中TE LSP数量较多），实际负载总是小于保留带宽（尽管没有小多少）。Globenet决定利用这种较小的统计性好处，并在高速链路上实施非EF TE LSP的过度租用。因为这种过度租用取决于链路速度（在低速链路上可忽略），所以 Globenet 使用链路过度/欠租用方法，并按表 5.6 配置带宽约束。如 5.9.2节所述，应用于EF TE LSP的带宽约束（BC1）配置为链路速度的30%，且不对它们应用过度租用。

表5.6 带宽约束设置（使用链路过度租用）

例如，对于 155 Mbit/s的OC-3链路，将BC0配置为 163 Mbit/s。因而，路由器可能通告多达 163 Mbit/s的TE LSP（包括EF TE LSP和非EF TE LSP），它提供了 1.05的过度租用系数。在这 163 Mbit/s的带宽中，可以为使用带宽池BC1的TE LSP（即EF TE LSP）保留 46.5 Mbit/s，所以对EF TE LSP没有应用过度租用。

程序清单5.18是一个配置程序清单。

程序清单5.18 OC-3配置模板

为简单起见，本章的所有配置程序清单都使用原始链路带宽。然而，Globenet考虑了每种介质的可用有效负载，并将这种有效带宽用于 TE。例如，OC-3 链路的链路速度为 155.44 Mbit/s，但由于SONET开销，只有 149.76 Mbit/s可用于传输有效负载。此外，为精确地计算每种介质的有效可用带宽，必须考虑协议开销（如PPP开销）。

5.10.2 全互联TE LSP网的自动建立和供应

第 2章介绍了自动网络生成机制，它能够自动供应全互联TE LSP网。该功能由三个主要部分组成：

• 发现过程：IGP扩展让每台路由器能够发现网中的其他成员或它所属的网。每个TE LSP网由一个网组号标识。

• 本地模板配置：对于每个网，都在本地配置一个TE模板，指定该网中每个TE LSP的TE LSP属性集。

• 自动建立TE LSP：对于路由器所属网中的其他每个成员，触发相应TELSP的自动供应，其特性在TE模板中指定。

文档 [ISIS-CAPS]定义了一种新的通用 IS-IS TLV，称为 Router CAPABILITY。它让路由域中的每台路由器能够通过TLV泄漏过程，在同一级或整个路由域内通告它的某些能力。这种TLV的一种用途是通告路由器的属性，以参与TE LSP网。这可以通过承载专用 sub-TLV（名为TE-MESH-GROUP，在文档 [ISIS-TE-CAPS]中定义）来实现。Router CAPABILITY TLV 和TE-MESH-GROUP sub-TLV的格式如图 5.38所示。

图5.38 IS-IS Router CAPABILITY TLV和TE-MESH-GROUP Sub-TLV的格式

因为每个 Globenet 地区由一个 2 级 IS-IS 组成，所以每台路由器通告Router CAPABILITY TLV时将 S位设置为清除状态。网组号的分配如表 5.7所示。

表5.7 每个地区用于自动生成网络的网组号分配

注意，在北美地区只需要一个无约束的TE LSP网。

这样，与手工在每台路由器配置所有TE LSP相比，配置任务得到了极大的简化。例如，假设一个地区由 30台路由器通过两个 TE LSP网互联，将需要在每台路由器上配置 58个TE LSP，总共需要配置 1740个TE LSP。采用自动网络生成功能后，只需要有限的配置步骤，如程序清单 5.19 的南美地区配置所示

程序清单5.19 路由器上自动生成TE网的配置

对于网组201，也采用了类似的配置。

在Cisco路由器上，新增成员将自动被相同网组中的其他每个成员检测到，且TE LSP网自动进行相应的调整。同样，当成员退出网组时，也将从网中删除相应的TE LSP集，而不需要任何手工干预。

5.10.3 动态流量工程LSP带宽调整

由于在有些地区，存在多个时区、零散的流量分布以及对高效带宽利用的需求，所以Globenet选择使用动态TE LSP大小调整机制（带宽调整不适用于北美地区，在该地区使用零带宽TE LSP）。如第 2章所述，这种机制的基本原理是根据实际流量需求动态地调整每个TE LSP所需的带宽。这是通过观察发送到TE LSP的总流量来确定的。路由器监测每X分钟（其中X可配置）发送到每个TE LSP的总流量，然后自动计算TE LSP的平均带宽（这步也称为带宽取样）。另一个名为调整频率的参数确定每隔多长时间调整TE LSP的大小。例如，如果调整频率设置为Y分钟，每台路由器将每隔Y分钟评估必须为每个TE LSP提供的新带宽。当前，Cisco路由器使用的算法是，首先选择过去的Y分钟时间内最高带宽样本，如果新计算出的带宽值与当前带宽不同，则相应调整TE LSP的大小。

注意 如果不能找到满足新带宽约束的路由，将继续维持当前TE LSP带宽，且不对TE LSP进行修改。将在下一个调整期间重新评估带宽。

当前，在精确调整大小与触发频率之间存在折衷。可以将每台路由器配置为非常频繁地收集样本并调整每个TE LSP的大小。将X设置为较小的值可以仔细监测每个TE LSP使用的带宽量（注意，在这种情况下，流量峰值并不是真正的平均值）。如果将Y设置为较小的值，则每个TE LSP将非常频繁地调整大小。所以，较小的X值和Y值可以实现每个TE LSP的精确带宽保留，反映实际的流量分布。

这种参数设置的缺点是信令开销和潜在的网络不稳定性。假设一个地区有50台路由器并使用两个TS LSP网，将总共大约有 5000个TE LSP。如果X和Y分别配置为1分钟和10分钟，则每分钟收集一个样本，且每隔10分钟根据新带宽值调整每个TE LSP。每台路由器每分钟平均重新通告 10个TE LSP，总共平均每分钟重新通告 500个TE LSP（每秒钟重新触发 8个TE LSP）。此外，每台路由器每隔 10分钟重新通告其所有TE LSP，可能导致全局同步和著名的网络效果（它将不可避免地引起突发性的TE LSP重新通告，导致各种资源竞争状态）。所有这些表明，应该选择更保守的定时器值。另一方面，这些值也不能太大，因为这样可能导致TE LSP带宽与实际需求相比过大。这可能导致隧道采用非最短路径，从而影响转发到这些TE LSP上的数据流延时。另外，它还可能导致TE LSP带宽偏小，比保留带宽更多的流量进入TE LSP。尽管如此，即使将重调整间隔设置为一个较大值，这种策略的效率也比基于绝对值或 95%峰值计算的LSP大小调整策略更高。

此外，这种动态 TE LSP调整机制的另一个优点是，能够支持流量增长（不同CT可能不同）而不需要任何人工干预。所以，Globenet执行各种模拟试验，以评估样本收集频率、大小调整频率以及带宽利用效率和信令负载之间的折衷。

Globenet研究了三组X和Y值，如图5.39、图5.40和图5.41所示。这些图中的图形显示了 TE LSP使用的实际带宽和保留带宽以及网络中通告的 TE LSP总数。

图 5.39显示了第一组X和Y值：X = 5分钟，Y = 15分钟。

采用这种参数设置，平均保留带宽与实际流量的比率为1.10。图5.39中的图形清晰地表明，保留带宽与实际流量需求非常接近，这符合较小X和Y值的预期。考虑到计算的带宽值与当前带宽值总是不同，则每分钟调整的次数等于T/15，其中T为该地区中TE LSP总数。例如，如果T等于 400（由20台路由器组成的TE LSP网），则平均每分钟重调整的次数为 26。

图5.39 X=5分钟，Y=15分钟时TE LSP的保留带宽与实际带宽

图 5.40显示了第二组X和Y值：X = 10分钟，Y = 60分钟。

图5.40 X=10分钟，Y=60分钟时TE LSP的保留带宽与实际带宽

在这种情况下，平均保留带宽与实际流量的比率为 1.18。尽管保留带宽没有精确地反映实际带宽需求，但这种参数设置对非实时数据流仍非常令人满意，且将重调整的次数减少到了原来的四分之一。

图 5.41显示了最后一组X和Y值：X = 10分钟，Y = 120分钟。

图5.41 X=10分钟，Y=120分钟时TE LSP的保留带宽与实际带宽

在最后这种情况下，平均保留带宽与实际流量的比率是1.28。尽管与前一种情况相比重调整的次数减少了一半，但保留带宽与实际流量相比更不准确。

所以，Globenet决定为实时TE LSP选择取样频率为 5分钟，重调整频率为15分钟。对于非实时TE LSP则选择更保守的重调整频率 60分钟。

注意 图5.39、图5.40和图5.41显示的图形由模拟器生成，针对的是有代表性的流量模式和类似的网络规模。

1．其他重调整参数

程序清单5.20显示了如何在Cisco路由器上配置取样周期和重调整周期。需要指出的是，还有其他一些参数，如 TE LSP可动态调整到的最小和最大带宽。Globenet决定不配置这些参数，以使其 TE LSP大小与实际负载尽可能接近。

程序清单5.20 采用自动带宽的TE LSP配置

在该程序清单中，取样频率和重调整频率分别为5分钟（300秒）和15分钟（900秒）。

2．动态TE LSP调整的其他优点

除根据实际流量需求动态调整保留带宽以高效地使用网络带宽外，Globenet还开发了一些内部脚本，在几个有代表性的TE LSP上收集带宽样本集。这样可以收集精确的流量矩阵，有助于进一步调整网络参数和做出精确的预测。注意，不使用自动带宽功能时也可以开发这些脚本，但自动带宽功能计算这些样本，所以这些脚本只需收集样本值。

5.10.4 TE LSP路径的计算

TE LSP采用的路径由每台前端路由器通过动态CSPF算法计算。根据各种实验，Globenet发现CSPF计算时间可忽略（大约为几毫秒）。所以，如果每隔15分钟对每个CT1 TE LSP执行路径计算以及每小时对CT0 TE LSP执行路径计算（除非预期网络元素失效外），将不会对Globenet路由器的CPU性能产生显著影响。它还提供了高度灵活性。

5.10.5 北美地区的MPLS流量工程

如前所述，在北美地区部署MPLS TE只是为了在发生链路失效时能够快速恢复。因为在该地区部署MPLS TE只是为了快速重路由，所以Globenet可以选择使用（第3章介绍的）单跳隧道或无约束全互联TE LSP网。Globenet选择了后一种方案，其原因如下：

• 考虑到北美地区不可忽略的流量增长，Globenet不希望将来需要进行网络资源优化时不能使用MPLS进行带宽优化。使用无约束全互联TE LSP网提供了容易的迁移途径。

• 全互联 TE LSP网让Globenet能够很容易地收集 POP间的流量矩阵信息。

所以，Globenet在北美地区选择的TE设计方案是，在P路由器（共30台，因为 15个POP分别包含两台P路由器）之间部署无约束全互联TE LSP网。使用自动网络生成功能提供这些TE LSP，TE模板如程序清单 5.21所示。

程序清单5.21 用于北美地区网组100的TE模板

这些TE LSP全部采用 IS-IS最短路径，因为计算TE LSP路径时没有应用任何约束。然后 IS-IS使用 autoroute announce命令动态地将所有数据流（不管其CoS）路由到这些TE LSP上。

5.10.6 亚太、EMEA和南美地区的MPLS流量工程

在亚太、EMEA 和南美地区，MPLS 流量工程不仅用于保护，还用于带宽优化。如5.9节所述，Globenet决定使用俄罗斯洋娃娃模型（RDM）和两种CT来部署支持区别服务的MPLS流量工程（DSTE）。

• CT1用于EF数据流（VPN Voice、ATM 伪线路和 IP虚拟租用线）。BC1设置为链路速度的 30%，这可以限制 EF 数据流的比例，从而限制 EF队列的延时、抖动和丢包率。

• CT0 用于其他数据流（VPN Video、VPN Business Latency、VPN Business Throughput、VPN Standard和因特网）。对于每种链路，BC0等于链路带宽（在高速链路上还要加上过度租用，正如前面介绍和表5.6总结的）。

如5.9节所述，Globenet通过对两种CT使用不同的抢占值，将两种CT隔离。属于CT1的TE LSP（EF TE LSP）有较高的抢占优先级（3或 4），而属于CT0的TE LSP（非EF TE LSP）有较低的抢占优先级（7）。

Globenet通过自动网络TE在每个地区的P路由器之间提供两个全互联网：一个用于EF数据流，另一个用于其他数据流。相应的TE模板如程序清单5.22和5.23所示。

程序清单5.22 用于亚太、EMEA和南美地区EF TE LSP网（网组 201、301和 401）的TE模板——网组201的TE模板

程序清单5.23 用于亚太、EMEA和南美地区非EF TE LSP网（网组 200、300和 400）的TE模板——网组200的程序清单

注意 在上述程序清单使用的Cisco IOS命令行界面（CLI）中，将一条隧道与CT1相关联，这是通过将它配置为从子池（对应于 BC1）保留带宽而实现的；将一条隧道与CT0相关联，这是通过将其它配置为从全局池（对应于BC0）保留带宽而实现的。

在南美地区，Globenet使用MPLS TE定义的亲和力概念（参阅 4.9.4节）。Globenet使用与每条链路相关联的32位中的一位来指出该链路是否为卫星链路。然后，在南美 EF隧道的网组中包括一条命令，确保 EF隧道的路径计算将所有“卫星”位被设置的链路排除在外。

为根据包的CoS，将包动态路由到EF隧道网或非EF隧道网中相应的隧道， Globenet使用基于CoS的隧道选择（CoS-Based Tunnel Selection，CBTS）功能。对于给定TE隧道，CBTS让运营人员能够其前端配置要传输的EXP位值。这样，在前端路由器上，自动路由功能将考虑该信息，以便在TE隧道组上执行支持CoS的路由。这将导致自动路由根据<prefix, CoS>对（而不像常规路由和转发那样仅根据<prefix>）填充扩展转发表。满足如下条件时，<prefix, CoS>条目将指向给定隧道：

• 该隧道是前往前缀的最佳路径（根据常规自动路由算法）；

• 该隧道被配置为承载该CoS（具体地说，是该CoS的EXP值）。

Globenet使用CBTS在EF TE LSP网和非EF TE LSP网上动态路由数据流的过程如图5.42所示。

图5.42 在EF隧道和非EF隧道网上运行CBTS

如程序清单 5.22所示，因为Globenet要通过第一个TE LSP网动态路由EF数据流，所以它在相应的网组模板中配置 CBTS，使这些 TE LSP承载 EXP=5的包。如程序清单 5.23所示，因为Globenet要通过第二个TE LSP网动态路由其他数据流，所以它在相应的网络模板中配置CBTS，使这些TE LSP承载所有用其他EXP值标记的包。

这就是通过两个TE LSP网根据CoS动态路由所有数据流所需的全部配置，也是Globenet所需的配置。不需要其他配置或静态路由。

5.10.7 TE LSP重优化

为确定最合适的重优化策略，Globenet决定在每个地区进行TE LSP布局实验。从本质上说，由于每台前端路由器的TE LSP路径计算不同步，分布式CSPF计算将导致一定程度的TE LSP布局不确定性。为此，Globenet根据峰值时间的预测带宽需求分析，执行多次模拟运算，以估计不采用 IGP最短路径的TE LSP数量。与期望结果相同，这些模拟表明，该比例是网络利用率的函数，但在稳定状态时保持在 5%以下。在单点失效的情况下，该数字将乘以系数 1.5。在Globenet这样的国际性网络中，传播延时是不可忽略的，可能对SLA产生显著影响。因为有些地区的网络密度不大，所以不采用当前可用最短路径的TE LSP （满足其约束，如带宽约束）是非常不合适的。

注意 当然，在北美地区该比例为 0，因为所有TE LSP的保留带宽都为 0，因此都采用最短IS-IS路径。

根据这些模拟结果，并考虑到网络拓扑和承诺的 SLA，Globenet 决定一旦存在更优路径时（如链路恢复）立即执行重优化。所以，每台路由器都配置为同时执行基于定时器的重优化和基于事件的重优化。重优化定时器设置为 5 分钟，每当网络中发生链路恢复事件时立即触发重优化评估。

因为在有些地区经常存在不稳定的链路，所以需要结合使用事件驱动重优化和阻尼机制。这种阻尼机制旨在避免不稳定链路经常触发新 IS-IS LSP的生成。除触发连续的IS-IS最短路径优先（SPF）重计算外，它还将触发多个MPLS TE重优化操作（网络中的CSPF计算和TE LSP信令）。另外，没有阻尼机制的激进重优化策略将导致连续性数据流中断。假设一条链路每秒钟改变一次状态（例如，不稳定的DWDM激光器可能导致这种情况），如果每当链路状态改变时都生成新的 IS-IS LSP，而没有任何阻尼机制，网络中的每台路由器都将触发其所有TE LSP的重优化评估。这将导致大量TE LSP被重路由到恢复的链路上（尤其是在有问题的链路是高速链路时）。一秒钟后，所有这些 TE LSP 又将通过MPLS TE快速重路由机制，被重路由到它们的备用隧道上，然后再次重优化，依此类推。

这表明了对于任何事件驱动重优化策略，都应结合使用阻尼机制的重要性。在Cisco路由器上，可在链路或IS-IS级配置这种阻尼机制。Globenet决定使用IS-IS LSP生成阻尼功能，这将在本章后面介绍。图 5.43显示了使用LSP生成阻尼机制时的 IS-IS LSP生成频率。注意，该频率对应于链路中每台路由器的重优化评估频率，因为每当收到报告链路事件的新 IS-IS LSP时，都将触发TE LSP重优化。

图5.43 采用IS-IS阻尼机制时不稳定链路导致的重优化评估频率

注意，每当触发重优化评估时，前端路由器评估是否能够为每个TE LSP找到更优（最短）的路径。如果存在，则使用“拆除前建立”过程，以非中断方式将需要重优化的TE LSP重路由到新路径上。

这表明，通过组合使用事件驱动重优化和IS-IS生成阻尼机制，可以立即重用新带宽资源或恢复的带宽。存在不稳定的网络资源时，这可以在保持网络稳定性的同时优化TE LSP路径。

5.10.8 流量工程的可扩展性

可扩展性方面是部署任何技术都需要考虑的一个重要准则。就MPLS TE而言，其主要参数是每台前端路由器和中间路由器的TE LSP总数，它将影响路由器的内存消耗（注意，信令处理开销通常可忽略，尤其是采用了刷新减少技术后，Globenet使用了该技术）。因而，Globenet在每个地区，估计每个中间点和每台前端路由器在稳定状态下和网络元素失效情况下的TE LSP总数。

因为单个网中的路由器总数不超过50台，所以一台前端路由器需要管理的最大TE LSP数量为 100个（这很少）。Globenet估计每个中间点在最遭情况下的TE LSP总数不超过 1000，即使是在失效情况下。这两个数字都远远小于当今路由器平台（包括Globenet部署的路由器）能支持的可扩展性限制。

所以，Globenet认为这种TE设计不会带来任何额外的可扩展性问题。

5.10.9 使用刷新减少技术

因为有些地区的连接度非常低，所以每个中间点的 TE LSP数量可能很大（但还远不至于导致任何问题）。因而Globenet选择在网络中激活刷新减少功能，以减少信令刷新开销。此外，因为有些链路不是非常可靠，有不可忽略的比特错误率，所以刷新减少机制提供的可靠消息功能（参阅文档[REFRESH-REDUCTION]）也是非常有益的。

5.10.10 监测TE LSP

Globenet决定尽可能使用动态和自动机制来优化带宽使用（采用自动带宽），并最小化配置错误的风险（采用自动网络生成）。为此，必须对这些机制进行适当的调整。因而，需要使用网络监测工具来适当地调整相关参数。

Globenet决定收集各种监测数据集：

• 网络元素失效：除链路和节点失效产生的常规SNMP陷阱外，Globenet决定编写一些脚本，收集由于失效或重优化（因为发现更优的路径）而执行TE LSP重路由时发送的MPLS TE SNMP陷阱。注意，有些脚本执行事件关联分析，以确定每种失效（链路与节点）的根本原因。对于AS间TE LSP，数据集仅依赖于在生成AS间TE LSP的每台路由器上定期收集的SNMP变量（或通过show命令显示的任何变量）。在Globenet为Africa Telecom提供的可用性SLA方面，这些信息对于监测VPOP的网络可用性非常有用（Globenet VPOP设计将在本章后面详细介绍）。

• TE LSP大小调整：如 5.10.3节所述，必须对参数进行调整以确定取样频率和调整频率。必须在精确带宽保留提供的最优带宽利用率与网络稳定性（MPLS TE信令开销和网络中数据流转移合理）之间找到合适的平衡。因为收集与所有 TE LSP 和链路相关的数据不容易实现，所以Globenet决定在每个地区监测一部分有代表性的TE LSP和链路。

对于每个选定的TE LSP，Globenet收集如下变量：

• 每两分钟收集计数器变量，如TE隧道接口传输的字节数。

• 自动带宽计算得到的带宽样本。

• TE LSP重通告的频率。

• 不采用最短 IS-IS路径的TE LSP数量。

这些数据将帮助Globenet确定带宽取样频率是否适当（与实际流量模式相比）。然后，计算保留带宽与实际流量的比率，以确定带宽保留的准确度，它通常取决于大小调整频率。

对于每条选定的链路，计算其保留带宽与总流量的比率（每10分钟收集一次计数器）。这个参数与TE LSP大小调整次数及采用 IS-IS最短路径的TE LSP比例一起，用于确定是否需要调整TE LSP的大小调整频率。例如，假定保留带宽与实际流量的比率为 1.5，同时还假定 60%的TE LSP不采用 IS-IS最短路径，且每个TE LSP平均每天调整大小一次。这些数据表明，还可以增大取样频率和大小调整频率，而不会影响网络的稳定性，这样将能够得到更优的带宽利用率。此外，还可能会更大比例的TE LSP采用 IS-IS最短路径，从而缩短传播延时。如果保留带宽/实际流量比率为 1.1，且 5%的TE LSP采用 IS-IS最短路径，则表明TE LSP大小调整频率太高，可能应考虑减少取样频率和大小调整频率。

有关这些图形的示例，可参阅5.10.3节。

有必要再次强调的是，这些分析是基于每个地区的少量代表性TE LSP和链路的，因为刚才介绍的信息收集和数据分析需要时间和网络资源。

5.10.11 最后使用的无约束选项

Globenet的网络设计可以承受任何单点失效而不显著降低QoS水平。也就是说，Globenet 进行了模拟，当网络发生任何单个元素失效，如链路或路由器失效时，确保任何TE LSP都能找到有相同带宽需求的替代路径。尽管如此，一种应付任何非预期多点失效的安全方法是，为每个 TE LSP配置最后使用的选项，放松其带宽约束。这可以保证任何TE LSP在任何条件下都可以找到路径，维持源和目的地之间的连接性。在这种情况下，TE采用最短IGP路径。

5.10.12 ATM伪线路的TE设计

Globenet在北美和EMEA地区使用ATM伪线路来实现ATM交换机的互连。它将重点放在MPLS TE设计上，以优化这种数据流的传输。

如前所述，Globenet在北美地区的网络依赖于过度供应，且除QoS外不需要部署呼叫许可控制技术（通过MPLS流量工程）。的确，提供的容量（且在必要地对IS-IS进行微调）总是限制EF数据流（包括伪线路数据流）低于特定的比率。因而在北美地区，就MPLS TE而言，不需要对伪线路数据流进行任何特殊处理。伪线路数据流将沿从PE路由器到下一台P路由器的IGP路径路由，然后转发到无约束TE LSP，与其他数据流一起到达正确的出口P路由器。

然而，EMEA地区的情况绝然不同，所以部署MPLS DS-TE来保证QoS水平和网络资源优化。一种方法是，IGP采用路由其他EF数据流的方式，在P路由器和PE路由器之间路由伪线路数据流，并将这种数据流传输到EF数据流的DS-TE LSP上。这种方法的缺点是，要求伪线路数据流与其他EF数据流共享流量工程规则。具体地说：

• 伪线路数据流将与其他EF数据流路由到相同的TE LSP上；

• 对于传输伪线路数据流的隧道，其带宽计算需要通过自动带宽机制，根据测量到的所有EF数据流的总负载进行动态调整。

负责ATM网络和使用ATM伪线路服务的工程小组认为，这种方法不能完全令人满意。他们决定使用专用TE LSP，根据其带宽需求计算带宽，并在核心保持不变。

因此，Globenet决定在PE路由器之间使用专用TE LSP承载伪线路数据流。这些TE LSP的带宽根据ATM交换机间已知的端口利用率来确定。例如，如果两台ATM交换机通过容量为B Mbit/s的租用线互连，峰值负载估计为X %，将相应TE LSP的带宽通告为：

X %×B×考虑到流量增长的保险系数

另外，使用这种方案时，还可以为承载伪线路数据流的TE隧道，配置比承载其他EF数据流的DS-TE TE LSP更高的抢占优先级。

因此，EMEA实际上有三种类型的TE LSP，如图 5.44所示。

图5.44 EMEA地区的三种TE LSP

• EF隧道：承载VPN Voice CoS（将来还可能包括虚拟 IP租用线CoS）。它们属于CT1（所以从子池中保留带宽）并使用抢占优先级4。它们的带宽通过自动带宽功能自动调整。它们运行在P路由器—P路由器之间。

• 伪线路隧道：承载ATM伪线路数据流。它们属于CT1（所以从子池中保留带宽）并使用抢占优先级 3（注意，TE LSP的优先级随其抢占优先级值减少而增加）。它们的带宽在前端路由器上静态配置。它们运行在PE路由器—PE路由器之间。

• 非EF隧道：承载其他数据流，包括VPN Video、VPN Business Latency、VPN Business Throughput、VPN Standard CoS和因特网数据流。它们属于CT0，并使用抢占优先级7。它们的带宽通过自动带宽功能动态调整。它们运行在P路由器—P路由器之间。

对ATM伪线路数据流，使用高优先级的TE LSP可以增加它们在网络中存在竞争（由于非预期流量增加或网络元素失效）时采用最短路径的机会。

在EMEA地区，用于将ATM伪线路数据流到路由到特定TE隧道的机制在5.9.9节介绍过。

5.11 网络恢复设计

与任何网络恢复设计一样，首先应确定网络中发生网络元素失效时的可用性SLA需求，因此Globenet对几年的失效统计数据进行了详细分析。它发现绝大多数失效（超过 90%）都是链路失效（光纤断裂、本地租用线失效和路由器接口失效），导致数据流丢失的非预期路由器失效非常少。另一方面，计划的路由器失效（为执行软件或硬件升级）可通过脚本来处理，通过提高路由器连接的链路度量值，让数据流避开这些元素。这些操作总是在维护期间进行，在此期间，数据流负载通常足够低，平常所有通过相关路由器的数据流都可以重路由到替代路径，并提供相同的QoS水平。

Globenet 的主要需求是保护数据流不受链路失效的影响，目标是尽可能在数十毫秒内完成数据流的重路由。非预期路由器失效很少发生，且可容忍更长的重路由时间。此外，在发生单链路失效时，在替代路径上至少必须为所有重要CoS（ATM 伪线路、VPN Voice、VPN Video、VPN Business Latency和 VPN Business Throughput）提供相同的QoS水平。

注意 与 Telecom Kingland（参阅第 4章）相反，Globenet租用其电路。这使得Globenet总是需要从租用线提供商那里获得不同路由的链路，或从其他提供商那里租用容量，以增加具有不同链路的机会。所以不需要 SRLG 保护。注意，在过去，由不同服务提供商提供的多条链路可能由于它们共享的网络元素失效（如跨越大西洋的光纤）而同时失效。这种共享风险通常不在 Globenet 的控制范围内，因而无法提供保护。然而，这种情况很少发生。

根据上面的讨论，Globenet采用如下网络恢复设计。

• 将 MPLS 流量工程快速重路由用作无保护 SONET-SDH 电路、保护的SONET-SDH电路（以防路由器接口失效）、无保护DWDM链路和以太网链路（POP内部）的网络恢复技术。它将保护任何单链路失效。注意， POP 之间和 POP 内部的链路都通过快速重路由进行保护，但大多数失效都与POP之间的链路失效有关。

• 在亚太地区，路由器通过ATM PVC互连，链路失效通过PNNI和MPLS TE快速重路由进行处理。发生ATM VC失效时，PNNI和MPLS TE快速重路由都触发恢复操作，但时间尺度不同。正如后面将讨论的，同时在这两层触发恢复操作是Globenet的首选设计。ATM VC恢复后，MPLS流量工程通过MPLS TE重优化来重用它。

• 调整 IS-IS参数，以便发生MPLS TE快速重路由无法处理的非预期节点失效或多链路失效时，获得低于5秒的重路由时间。

5.11.1 Globenet地区内部的MPLS TE快速重路由设计

本节将详细介绍Globenet网络的所有地区内部署的快速重路由设计。

1．失效检测

考虑到链路类型的多样性，Globenet 需要根据使用的第 2 层协议，在失效检测机制方面采用不同的策略。

• SONET-SDH链路：SONET-SDH层提供了非常高效的失效检测机制，可以在几毫秒（通常少于 10 ms）内收到报警。因此，对于北美地区的Globenet网络，OC-3和OC-48链路失效将在几毫秒内检测到。

注意 在有些情况下，链路失效检测可能需要多得多的时间，例如，在跨越多个国家的环路中，由于光速限制而导致的不可缩短的传播延时。

• 租用线（n×2 Mbit/s链路束）：2 Mbit/s租用线一般通过SONET-SDH或PDH基础设施提供，它提供了高效的失效检测机制。这种租用线的失效检测时间通常位于几毫秒的量级。

• ATM VC：ATM VC的情况更复杂些。ATM VC通过PNNI路由和信令，因此当ATM网络中的链路或ATM节点发生失效时，PNNI必须首先检测到失效。这可能需要几毫秒（SONET-SDH链路失效）至几秒（ATM交换机节点失效）的时间。然后，PNNI 必须会聚（为受影响的 VC 集计算其他路径，并在找到这时沿替代路径重新建立 VC）。因此，发生ATM VC失效时，总恢复时间可能为几秒到几十秒。注意，在有些时候， ATM VC可能由于网络缺乏相应资源而无法恢复。Globenet的ATM网络设计成在发生单点失效时能够 100%恢复ATM VC。然而，也有少数链路和节点的失效将导致一少部分受影响的 VC 不能恢复。尽管 ATM层通过不同方法提供了失效通知机制，但其失效检测可能非常慢，从而需要在IP/MPLS层使用基于hello的存活检测机制。经过仔细考虑后， Globenet决定不调整 IS-IS hello协议以限制对路由器CPU的影响，因为IGP hello消息需要消耗一定的处理器资源。Globenet决定使用双向转发检测（Bidirectional Forwarding Detection，参阅[BFD]）协议，并采用100 ms的 hello间隔和400 ms的失效定时器（保持时间）。这样，失效将能够在至多 400 ms内被检测到，而无论其根本原因是什么。

• 吉比特以太网链路：当两台设备通过点对点以太网链路互连时，其失效检测时间可到达与SONET-SDH类似的失效检测时间。然而，使用第2层吉比特以太网交换机将在很大程度上增加发生路由器端口失效时的失效检测时间，因为失效检测是通过IGP基于hello的协议来执行的。与ATM的情况类似，Globenet选择使用BFD作为吉比特以太网链路的失效检测机制，并采用相同的参数。

• 路由器失效：不同的路由器失效类型可能导致不同的失效检测时间，并对转发数据流产生不同的影响。例如，路由器的电源失效导致所有连接到该路由器的链路同时发生失效，因此其失效检测时间与链路失效类似。分布式路由器架构上的控制平面失效对数据流转发不会产生影响。路由协议检测到失效后，数据流将被平滑地重路由到替代路径，而不会发生任何数据流中断。然而，集中式路由器架构上的路由处理器失效将同时影响控制平面和转发平面，从而导致数据流中断，直到路由协议会聚为止，因为MPLS TE快速重路由仅用于链路保护。Globenet认为后一种情况极少发生，不需要采取任何特殊措施来处理这种失效。

5.11.2 备用隧道集

因为MPLS TE快速重路由保护数据流不受链路失效的影响，所以在网络中只需要下一跳备用隧道。另外，如前所述，Globenet网络没有包含任何SRLG。因为绝大多数链路都是租用的，所以Globenet尽量从不同的地区性提供商那里租用链路，以获得不同的链路。

1．备用隧道约束

当然，备用隧道必须满足的第一个约束是与受保护链路完全不同。

第二个备用隧道约束是带宽。为保护设施（如链路）而必须计算备用隧道路径时，备用隧道必须能够提供与受保护链路等价的带宽（另一个例子是特定带宽池（如BC1），如果决定为CT1 TE LSP提供等价QoS）。尽管在QoS方面非常高效，但这种方法需要使用完善的备用隧道路径计算工具，以最大程度地在保护不同链路的备用隧道之间共享带宽。备用隧道在重路由期间使用，也就是说，从最靠近失效点的上游节点触发快速重路由开始到前端路由器完成 TE LSP重优化。在Globenet网络中，这种重路由时间在最坏情况下少于1秒钟，这意味着备用隧道最多使用 1 秒钟。研究的第二个方面是评估每个链路失效，可能引起的使用零带宽供应的备用隧道拥塞。模拟实验表明，即使在亚洲（链路（ATM VC）根据流量需求确定大小（有一定富余），因此链路利用率非常高），在最坏情况下，在重路由期间（小于1秒钟）有些链路会达到80%的实时数据流和 120%的非实时数据流。Globenet 认为相对于其 SLA 来说，这是令人满意的。因此，它选择采用零带宽供应下一跳备用隧道（备用隧道将采用IGP最短路径，该路径将避开受保护的链路）。

图5.45显示了Washington节点配置的备用隧道集。它显示了该地区为保护数据流不受任何连接到Washington节点的链路失效影响而配置的下一跳备用隧道集。注意，每条受保护的链路需要两条备用隧道（每个方向一条），但为清楚起见，图5.45只显示了其中的一条。

图5.45 用于保护连接到Washington节点的链路的下一跳备用隧道集（只显示一个方向）

这种备用隧道将保护任何 TE LSP不受核心中链路或路由器接口失效的影响。但POP 内部的链路（PE路由器和P路由器之间的链路）失效呢？尽管与核心中长距离链路相比，这种失效很少发生，但Globenet想使用快速重路由来保护路由器接口失效（PE路由器或P路由器）。因为TE LSP网位于P路由器之间，所以为使用快速重路由保护POP内部的链路，Globenet需要选择一种特殊的网络设计。

解决方案是，在每台 PE 路由器和 P 路由器之间，沿适当的不同路由隧道，配置无约束单跳主TE LSP。考虑 Paris POP，如图 5.46所示（它是一个1a类POP）。

图5.46 使用快速重路由保护POP内部链路的单跳隧道

USCom采用了这种配置，在第3章详细介绍过。简言之，对于每条要保护的链路，（在每个方向上）配置一个单跳TE LSP来保护POP内部链路。例如，如图 5.46所示，在PE1和P1之间，将一个主TE LSP配置为一个可快速重路由的TE LSP。注意，由于PHP操作，没有额外标签添加到沿该链路转发的数据流中。此外，下一跳备用隧道还被配置成避开了受保护的链路（图5.46所示的下一跳备用隧道）。

PE-P链路失效时，通过BFD协议（因为这种链路为吉比特以太网VLAN）检测到失效后，受影响的数据流将重路由到备用隧道。在失效情况下，将添加一个对应于备用隧道的额外标签。

2．提供备用隧道集

Globenet 选择自动提供下一跳备用隧道。这种机制在第 3 章详细介绍过，这里不再重复。注意，只需在每台路由器上使用很少几条命令就可自动配置无约束的单跳和下一跳备用隧道。它通过 IGP（活动的路由邻接关系集）动态确定下一跳集。如果至少有一条可快速重路由的TE LSP跨越受保护链路，它还自动为每条要保护的链路计算完全不同的备用隧道路径。

3．配置Hold-Off定时器

如第2章所述，当不同网络层同时存在网络恢复机制时，可能需要使用hold-off定时器。Hold-off定时器旨在增加触发第n+1层的恢复机制前，在第n 层恢复失效资源的机会。尽管这可能在第 n 层无法恢复失效资源时导致重路由时间增加，但它避免了同时执行多种网络恢复的尝试，这种尝试可能导致不可预测的不良结果（关于该主题的详细介绍，请参阅文档[NET-RECOV]）。

对于未保护的链路（2 Mbit/s租用线、OC-3和OC-48链路（北美和EMEA）以及吉比特以太网链路），应在检测到失效后立即触发MPLS TE快速重路由。因此，不需要hold-off定时器。

在Globenet网络中，存在许多种需要使用hold-off定时器的情形。

• 受保护的OC-3链路（通过SDH）：因为这种链路通过SONET-SDH保护，所以必须将hold-off定时器设置为稍大于SONET-SDH层最坏情况下恢复时间的值。这样，将首先依赖于SONET-SDH保护来恢复失效资源，而不试图通过快速重路由实现数据流的重路由。在Globenet网络中，绝大多数情况下，这种重路由时间不超过 100 ms。所以 Globenet决定将 hold-off定时器设置为 120 ms。

注意 使用hold-off定时器意味着接口失效（不能在SONET-SDH层恢复）将无法在 120 ms加上快速重路由时间内恢复。

• ATM VC（亚太）：如前所述，ATM VC首先由PNNI处理，它通常能够在几秒内会聚。这将导致以下两种可能：

——将快速重路由hold-off定时器设置为PNNI最坏情况下的重路由时间，使得在快速重路由层触发任何动作前，ATM 层有机会恢复受影响的VC。这种方法的优点是，可依赖受影响ATM VC的恢复。与快速重路由的几百毫秒恢复时间相比，它需要以更长时间的数据流中断为代价提供等价QoS。

——不使用 FRR hold-off定时器。采用这种方法，数据流中断将被最小化（在几百毫秒内），但在重路由期间非实时数据流可能发生拥塞。Globenet 选择使用这种方法，并结合使用适当的定时器，以尽可能重用恢复的ATM VC。可以通过组合如下两种机制来实现：

——发生第二次新事件时，IS-IS LSP生成时间被设置为 20 ms，以加速恢复ATM VC的通告。

——发生链路恢复事件时触发重优化。

4．IS-IS路由设计

IS-IS处理节点失效的目标是，在发生FRR无法处理的一个或多个节点失效时，实现5秒内的重路由时间。为此，需要对IS-IS进行适当调整，因为其默认配置通常采用10秒的hello时间和30秒的保持时间。

首先需要调整的参数与 IS-IS hello协议有关。Globenet决定将hello和保持时间定时器分别设置为1秒和4秒。

第二类需要调整的参数与SFP触发和LSP生成有关。如第2章详细介绍的，现代路由器能够使用阻尼算法，实现快速LSP生成和SPF触发，同时确保网络在不稳定条件下的稳定性。为此，Globenet 决定按程序清单 5.24 所示设置相关的参数。

程序清单5.24 快速IS-IS配置程序清单

网络元素发生失效时，路由器在生成新的 IS-IS LSP前先等待 10 ms。如果发生第二次状态改变，新的 IS-IS LSP将在 20ms后产生。在链路不稳定的情况下，连续两次产生LSP之间的时间不超过5分钟（根据第2章介绍的阻尼算法）。

在触发 SPF前的原始等待时间被设置为 80 ms。节点失效（这是要处理的情况，因为数据流恢复仅依赖于 IS-IS 处理这种失效）将生成几个 IS-IS LSP（失效路由器的每个邻居都将产生一个 IS-IS LSP）。因为有些地区的网络是稀疏的，其他路由器收到这种 IS-IS LSP的间隔可能为几十毫秒，所以在触发第一次 SPF前等待 80 ms，可增加基于精确网络拓扑计算新路由表的可能性。

此外，所有Globenet路由器都配置为在SPF触发前洪泛 IS-IS LSP。它们还为IS-IS控制包提供相关QoS，以避免链路拥塞时路由邻接关系丢失。这减少了重路由节点的失效通知时间。

Globenet还考虑使用增量SPF。然而，与其他部分（如失效检测时间、LSP传播延时等）相比它不能显著减少总会聚时间。

基于这些，程序清单5.24所示的参数集允许在网络中发生非预期节点失效时，实现重路由时间在5秒内的目标。

5.11.3 支持ATM伪线路的PE路由器失效

PNNI处理支持ATM伪线路的PE路由器的失效。首先失效检测可通过本地信令（报警指示信号（alarm indication signal，AIS）或交换机—交换机ATM OAM流（信元F4和F5）来确定，它们通过伪线路透明地传输。

检测到失效后，PNNI会聚并沿替代路径重路由受影响的ATM VC集。有些情况下，这些替代ATM路径本身可能需要在作为其他伪线路的交换机间中继线上传输。这种由于重路由引起的数据流转移可能导致某些伪线路出现非预期的峰值负载，至少在失效期间如此。然而，因为所有承载伪线路的TE LSP都按预期ATM峰值负载确定大小，这将不会带来任何问题，除非这种失效在业务繁忙时间发生。另外，即使在这种情况下，尽管这些TE LSP将需要承载比预期情况更多的流量，但实时EF队列将能够吸纳这些额外的数据流，而不会引起严重的QoS水平下降。

5.11.4 IPv6 VPN网络恢复

因为 6VPE方法依赖于 PE路由器的 IPv4 BGP下一跳地址的递归，所以在核心上，用于传输 IPv4 VPN数据流或 IPv4因特网数据流的 IPv4 LSP将用于（从 PE路由器到 PE路由器）传输 IPv6 VPN数据流。这意味着 IPv6 VPN数据流将自动继承应用于这些 IPv4 LSP的核心功能的优点。具体地说，在Globenet网络中，IPv6 VPN数据流将自动获得与 IPv4 VPN数据流相同的MPLS快速重路由（和快速IS-IS会聚）的保护，而不需要任何额外的机制和配置。

5.12 虚拟POP设计

在有些地方，Globenet 有客户，但不可能或不愿意将其网络扩展到这些地方，它选择部署虚拟POP（VPOP）。VPOP是由Globenet管理的POP，但位于另一家服务提供商的地方。它通过提供带宽保证的AS间TE LSP连接到Globenet网络的其他部分。具体地说，这些TE LSP不仅跨越多个AS边界，且这些自主系统属于不同的服务提供商，因此需要紧密的合作。

本节将介绍VPOP设计，这是Globenet网络设计特有的方面。

通过AS间TE LSP将VPOP连接到网络其他部分的动机如下。

• ASBR间链路失效时的快速会聚：通过一对ASBR连接两个自主系统时，ASBR间链路失效通常导致持续几十秒甚至几分钟的数据流中断，尤其当 ASBR 对通过单条链路互连时，因为这时链路失效要求 BGP 会聚（BGP下一跳改变）。Globenet的需求之一是，为连接到VPOP的最终客户提供等价的服务可用性。

• 带宽和QoS保证：使用AS间TE LSP的第二个动机是，获得VPOP与网络其他部分之间的带宽保证。读者在本节后面将看到，MPLS流量工程非常适合用于达到这一目的。

Globenet与多个地区性服务提供商签订协议，包括Africa Telecom，这涉及到私有AS间TE对等关系。本节将详细介绍Africa Telecom的情况。

Africa Telecom是一家地区性服务提供商，它在非洲有数十个POP，在欧洲有3个POP（分别位于法国巴黎、英国伦敦和德国的法兰克福），这些POP通过带宽为 2Mbit/s至OC-3的链路连接。在Africa Telecom的核心（ATC），部署了MPLS流量工程，使用快速重路由来保护保护以实现快速恢复。

Globenet 在非洲部署了两个 POP：Algiers（阿尔及利亚）和 Johannesburg&nbsp;（南非）。Globenet决定将 Johannesburg POP转换为VPOP。

5.12.1 将Johannesburg POP转换为VPOP

图 5.47说明了 Johannesburg POP在转换为VPOP前的状态（那时，该POP是Globenet网络的一部分）。

图5.47 Johannesburg POP在转换为VPOP前的状态

Globenet采取如下迁移步骤：

第1步 Globenet在ATC安装一个新的 2类POP。这两台PE路由器在本地连接到ATC网络的两台P路由器，如图5.48所示。

图5.48 Johannesburg VPOP到ATC网络的本地连接

第2步 如图 5.49 所示，在 VPOP 的每台 PE 路由器与巴黎的 Globenet ASBR之间，提供两个相反方向的AS间TE LSP，详情将在本节后面介绍。

第3步 将以前连接到老POP的Globenet客户迁移到新VPOP。然后老POP 和两条租用线 Lisbon-Johannesburg 和 Rome-Johannesburg将退役。

Globenet的客户通过 Africa Telecom提供的租用线或帧中继 PVC连接到VPOP。

图5.49 将 Johannesburg VPOP连接到Globenet网络的AS间TE LSP

5.12.2 AS间TE LSP的属性

与其他TE LSP一样，对于AS间TE LSP，必须首先确定其一些属性。

• AS间TE LSP类型：有各种类型的AS间TE LSP。跨越多个域（IPG区域、AS）的端到端TE LSP称为“连续的”TE LSP。由每个域的多段组成且在域边界上缝合的TE LSP称为“缝合的”TE LSP。Globenet和Africa Telecom决定部署连续的TE LSP，让Globenet能够严格地控制其AS间TE LSP。采用缝合的TE LSP时，每个域负责自己的片段，这意味着这种AS间TE LSP的前端路由器将失去对LSP重优化的控制。考虑到这些TE LSP对于Globenet确实非常重要（因为它承载每个VPOP的所有数据流），连续的TE LSP更加适合Globenet的需求。此外，缝合的TE LSP在快速重路由方面存在一些局限性（更详细内容请参阅相关的IETF文档）。

• 带宽：尽管Globenet在其各个地区选择使用动态带宽调整机制，但这种模型很难适用于AS间TE LSP，因为TE LSP的费用取决于带宽。因此， Globenet与Africa Telecom达成协议，静态定义AS间TE LSP的带宽，并允许Globenet请求时每月一次重新评估每个TE LSP的带宽需求。所以，Globenet开发了一些内部脚本，每10分钟一次收集发送到每个AS间TE LSP上的总流量。Globenet每月收集每个带宽样本并调整TE LSP带宽。

• TE/DS-TE CT：因为ATC网络仅将MPLS TE用于快速重路由，而不用于基于约束的路由，所以可在ATC网络中使用常规TE和单个CT（CT0）来执行AS间TE LSP的许可控制和基于约束的路由。因此，这些TE LSP被标记为CT0 LSP，且ATC不需要部署DS-TE。5.12.6节更详细地介绍了ATC网络中用于为AS间TE LSP承载的数据流提供适当性能水平保证的机制。

• 恢复：每个AS间TE LSP被配置为可快速重路由，以便在ATC网络内部或AS边界的网络元素失效时，从快速重路由中获益。关于AS间TE LSP的网络恢复细节，将在本节后面介绍。

5.12.3 Globenet VPOP的迁移策略

将 Johannesburg POP转换为VPOP的动机有两个。

• 可以取消两条租用线Johannesburg-Lisbon和Johannesburg-Rome，从而节省费用。它们将被AS间TE LSP取代，后者的每Mbit/s费用低得多，且带宽可以根据需要进行更细致的调整。

• 它为Globenet提供了将设备安装到Africa Telecom POP中的机会，从而让其在Johannesburg运行的POP退役。考虑到电源保护、空调等需求，它在Johannesburg的POP费用非常高。

在非洲还部署了其他4个VPOP：Brazzaville、Cairo、Khartoum和Abuja，它们采用与 Johannesburg VPOP相同的互连模型。

例如，Globenet在Brazzaville VPOP的两台PE路由器通过AS间TE LSP连接到Globenet的Algiers POP，如图 5.50所示。

图5.50 Globenet在Brazzaville和 Johannesburg的VPOP

当特定地区的客户数量增多时，Globenet可以再部署一个VPOP，将这些客户连接到更近的 VPOP，从而减少接入线路的费用。然而，这需要添加并管理新的VPOP，这种经济分析需要采取具体情况具体分析。

1．AS间TE LSP的路径计算

AS间TE LSP的路径可通过各种技术来计算。简言之，第一种方法称为松散跳路由（loose hop routing）或每域路径（per-domain routing）。它在前端路由器上将路径配置为一系列松散跳，其中每跳都是 ASBR，且最后一跳为最终目的地。收到RSVP-TE Path消息后，ASBR在其AS中计算最短路径，并采用到达该跳的约束集（这种操作有时被称为ERO扩展）。

尽管非常简单，但这种方法的局限性在于，它不能计算出端到端的最短路径。配置松散跳集时，网络管理员不知道哪些松散跳集将提供前往目的地的最短路径。其他AS的网络拓扑是未知的，且可能在未来添加新节点或网络元素失效时，不可避免地发生变化。

考虑Globenet的Paris POP与 Johannesburg VPOP之间的AS间TE LSP。如图5.51所示，在稳定状态下，两者之间的最短AS间路径将经过Paris的ATC ASBR（实线）。

图5.51 AS间最短路径的选择

现在考虑各种失效情况。

第一种情况是，Paris与N'Djamena之间的链路失效。如图5.52所示，采用简单的松散跳路由方法，Globenet在Paris的路由器将沿ATC在Paris的ASBR重试。这将导致数据流在ATC网络中穿越Paris和Algiers之间的2Mbit/s连接。当然这条路径是次优路径。然而，Globenet在Paris的ASBR不能检测到这种次优性，因为它不能看到ATC网络中的可用资源和拓扑。

图5.52 采用松散跳路由的情况下，ATC网络中发生链路失效时的AS间最短路径选择

现在考虑Paris的ATC路由器发生失效的情况。因为不能看到ATC网络的拓扑和状态，所以Globenet在Paris ASBR上配置一条备用松散路径，通过最近的ASBR连接到ATC网络。在这种情况下，这样做将把受影响的AS间TE LSP重路由到通过OC-48链路连接到Paris POP的Frankfurt ASBR。不幸的是，如图5.53所示，这种选择不是最优的，因为ATC网络中的Frankfurt ASBR实际上通过一条 2 Mbit/s链路连接到N'Djamena节点。在这种失效情况下，通过Algiers （通过Globenet网络中的OC-3链路）路由AS间TE LSP将更合适些，这样在ATC网络中将采用一条完全由OC-3链路组成的路径。

图5.53 采用松散路由的情况下，ATC网络发生节点失效（Paris）后的AS间最短路径选择

上面两个失效程序清单表明，松散跳路由路径计算方法不能保证选择端到端的最短路径。另外，虽然在大多数情况下可通过静态配置来获得最优路径，但需要不断调整，以应对两个网络中的升级、失效和重优化等。

Globenet 进行了详细的分析，以确定计算最短路径的能力是否是必需的要求。Globenet认为，因为Africa是一个非常大的洲，更重要的是，因为ATC网络由速度差异很大的各种链路组成，所以在很多情况下，最短路径与替代路径之间的传播延时和带宽（以及 QoS）存在很大差异。因此，需要尽可能地选择端到端的最短路径。

此外，考虑到Globenet与Africa Telecom之间的对等关系数量（当前为 4个，且有增加的计划），任何手工解决方案在处理动态和非预期变化（如网络元素失效）时都将非常笨重且效率很低。

因此，Globenet和Africa Telecom选择使用一种基于PCE（path computation element，路径计算元素）的计算方法，来计算AS间 TE LSP路径。基于 PCE的计算方法的一个主要优点是，PCE能够为这样的TE LSP计算路径，即它不是该TE LSP的前端节点。在有些情况下（如下面将介绍的），端到端路径计算需要多个 PCE的合作。理想的 PCE候选者是ASBR（对于区域间MPLS TE，为ABR）。这种路径计算算法使用向后递归法，每个 PCE 在它自己的域内计算到目的地的最短路径集，并将结果传递给上游 PCE，后者再计算自身到目的地的最短路径集，依此类推。

对于Globenet-Africa Telecom的情形，涉及到两个自主系统。下面讨论在这种环境下如何计算最优路径。图 5.54显示了在Globenet和Africa Telecom之间，使用基于PCE的方法计算AS间TE最短路径的第1步和第2步。

这里考虑的是Globenet在Paris的ASBR与 Johannesburg VPOP中PE路由器之间的AS间TE LSP。注意，对于VPOP的Globenet PE路由器与Globenet ASBR之间的AS间TE LSP，也将采用类似的过程。

如图5.54所示，Globenet和ATC的所有ASBR都充当PCE（Paris、Frankfurt和Algiers）。

出于说明的目的，假定在两个网络中采用如下链路度量值设置。

• OC-192：开销＝1（当前没有OC-192）。

• OC-48：开销＝4。

• OC-3：开销＝16。

• 2 Mbit/s：开销＝1232。

下面逐步介绍基于PCE的AS间TE LSP路径计算过程。

第1步 如图 5.54所示，前端路由器（Globenet ASBR）首先必须选择一个PCE，将路径计算请求发送给它。

图5.54 基于PCE计算AS间TE最短路径的第1步和第2步

注意 IETF PCE工作组负责LSP-PCE协议的标准化。

PCE发现过程可以通过本地或静态配置（可指定多个PCE地址）或通过IGP发现来执行。在后一种情况中，PCE 地址和能力将通过[ISIS-TE-CAPS]定义的各种PCE相关sub-TLV在Router CAPABILITY TLV中进行通告。对于Globenet，考虑到PCE数量有限，且Globenet当前只与ATC存在少量TE对等点，所以选择使用静态 PCE发现。在每个能够生成AS间 TE LSP的ASBR上，Globenet静态地配置将路径计算请求发送到的PCE地址（在ATC网络中）。

第2步 路径计算请求发送到选定的PCE，后者分析该请求。在这里，如图5.54所示，Globenet在Paris的ASBR将路径计算请求发送给Paris的ATC ASBR。Paris的ATC PCE确定该TE LSP的目的地可通过Johannesburg的一台P路由器到达。这是因为ASBR间链路在IGP内重分发，因此VPOP的PE路由器地址被ATC IGP重分发。

第 3步 如图 5.55所示，ATC在 Paris的ASBR计算从每个ATC ASBR（Algiers、Paris 和 Frankfurt）到目的地（位于 Johannesburg 的Globenet VPOP的目标PE路由器）的、满足指定约束集（带宽等）的最短路径。然后将三条路径返回给发出请求的 PCE（Globenet在Paris的PCE），以及相应的路径开销：

图5.55 基于PCE的AS间最短路径计算，第3步和第4步

• 从Algiers的ATC ASBR到目的地，开销＝48。

• 从Paris的ATC ASBR到目的地，开销＝48。

• 从Frankfurt的ATC ASBR到目的地，开销＝1264。

一个重要的考虑是确保机密性。为确保机密性，没有将完整的路径返回给请求PCE。相反，返回给请求ASBR的三条路径只包含两跳：入口ASBR（位于Algiers、Paris和Frankfurt的ATC ASBR）和目的地（Johannesburg VPOP中的Globenet PE路由器，它被指定为松散跳）。注意，计算端到端最短路径时，不需要知道ATC网络内部的实际路径，而只需知道这些路径的开销，并将它们传递给请求PCE。

第4步 收到ATM网络每个入口ASBR到目的地的最短路径集后，请求PCE（位于Paris的Globenet ASBR）就可以计算端到端最短路径。这是因为它从 IS-IS 通告的 MPLS TE 拓扑数据中获得了关于Globenet 网络的拓扑和资源信息。这种计算等同于树根为目标节点的CSPF计算。它将计算出如下路径：

• 路径1（通过Paris）：开销＝49（ASBR间链路的开销为1）。

• 路径2（通过Frankfurt）：开销＝1264＋4＋1＝1269。

• 路径3（通过Algiers）：开销＝16＋1＋48＝65。

第5步 Paris的Globenet ASBR沿计算得到的、前往目的地的最短路径（通过Paris的ATC ASBR）建立AS间TE LSP。第一跳被指定为严格跳，指向第一个入口（ATC 网络在 Paris 的 ASBR）。其他跳（前往最终目的地）作为松散跳在相应的 RSVP Path消息中列出。最后，ATC入口ASBR在收到RSVP-TE Path消息后，将路径延伸到最终目的地。

现在回到Paris与N'Djamena之间链路失效的情况。通过RSVP-TE Path Error消息收到失效通知后，Globenet在Paris的ASBR重新发出路径计算请求。ATC在Paris的ASBR将返回如下三条路径：

• 从Algiers的ATC ASBR到目的地，开销＝48。

• 从Paris的ATC ASBR到目的地，开销＝1280。

• 从Frankfurt的ATC ASBR到目的地，开销＝1264。

因此，当Globenet在Paris的ASBR计算从它自身到目的地的最短路径时，将发现三条可能的路径：

• 路径1（通过Paris）：开销＝1＋1280＝1281。

• 路径2（通过Frankfurt）：开销＝1264＋4＋1＝1269。

• 路径3（通过Algiers）：开销＝16＋1＋48＝65。

因此，最佳端到端路径通过Algiers，而不是Frankfurt（尽管从Globenet ASBR的角度看，它是离Paris最近的ASBR）。

这个例子表明，基于PCE的路径计算方法总是能够得到跨越多个域的端到端最短路径。

注意 仅当两个网络使用一致的度量值时，才能计算得到端到端最短路径。因为端到端最短路径是通过两个PCE计算两个不相连路径段得到的，所以必须确保这两个 PCE使用一致的度量值。Globenet和Africa Telecom使用一致的基于带宽的度量值，所以使用 IGP 度量值就足够了。尽管如此，需要指出的是，在有些情况下，IGP度量值是根据不同的准则计算得到的，这时的解决方案是，使用TE 度量值作为路径开销，且两家服务提供商以一致的方式使用它。文档[SECOND-METRIC]说明了将IGP或TE度量值用于路径计算的可能性。这样， PCE返回的每条计算路径都将基于TE链路度量值，保证计算得到的是端到端最短路径。

注意 这种基于PCE的路径计算方法还可用于前端路由器位于起始AS中任何位置的情形。在这种情况下，将使用非常类似的过程：前端路由器首先向位于其域中的 PCE发出请求。例如，假设 TE LSP从 Globenet的节点 X出发，在Johannesburg的一台PE路由器上终止，将有一个向Globenet网络中的PCE发送路径计算请求的阶段，其他过程则完全相同。

5.12.4 AS间TE LSP的重优化

对于地区内TE LSP，重优化触发器可由定时器或事件驱动，而对于AS间TE LSP，Globenet选择使用仅基于定时器的重优化方法。Globenet决定每两小时触发一次AS间TE LSP重优化。重优化过程类似于AS间TE LSP路径的计算，唯一差别是，将在发送给PCE的路径计算请求中提供活动TE LSP路径，以避免评估是否存在更优路径时双重预留带宽。如果存在更优（更短）的路径，前端路由器将使用非中断性“拆除前建立”过程重新建立TE LSP。这里必须特别强调基于PCE路径计算方法与重优化有关的一个重要方面。再次考虑ATC网络中Paris与N'Djamena之间链路失效的情况。采用松散跳路由路径计算时，没有办法发现原来的首选路径（因为松散路径集需要手工配置）是否已恢复（如果当前路径没有经过相同的ASBR集），除非重新建立TE LSP并看它是否成功。当然，这是非常令人不满意的。而基于PCE的路径计算让前端路由器能够发出新的路径计算请求，并在其中指出该请求与重优化相关。因此，当且仅当存在更短路径时前端路由器能够重路由AS间TE LSP。

5.12.5 路由到AS间TE LSP

为将数据流路由到AS间TE LSP，需要一些额外配置。当前没有这样的自动机制，即使得计算路由表时能够使用这种TE LSP（但在编写本书时，正在调查）。根据定义，路由协议在域之间隐藏一些信息，使得AS间LSP的前端路由器无法获得TE LSP目的地所属域的拓扑信息。注意，这通常适用于域间的MPLS流量工程，其中域可能是IGP区域或是自主系统。

考虑如图 5.56所示的程序清单。从Globenet VPOP到Globenet的ASBR1，在PE1上需要几条静态路由：

• 一条静态路由指向LSP1，用于前往ASBR1的环回地址（AS间TE LSP的目的地）。

• 一条静态路由指向的 LSP1，用于前往位于 Globenet 网络内的 PE 路由器和路由反射器集的环回地址（在图 5.56 中，只显示了一个路由反射器）。

注意，PE1 通过 PE1 与相关 Globenet 路由反射器集的 MP-BGP 会话获悉Globenet的IPv4路由和VPNv4路由。

从Globenet核心网络到VPOP，在ASBR1上只需一条到PE1环回地址的静态路由，它指向LSP2。注意，这条静态路由将被重分发到IS-IS中。

MP-BGP会话让ASBR2能够获悉AS间 TE LSP的目标地址，让ASBR1能够获悉ASBR间链路地址以用于管理。当前，使用常规BGP路由递归，将数据流路由到适当的AS间TE LSP。

图5.56 路由到AS间TE LSP

5.12.6 VPOP的QoS设计

Globenet要为连接到VPOP的客户提供完全相同的QoS服务，包括支持5种VPN CoS和相关的SLA承诺。为实现这一点，Africa Telecom使用前面介绍的AS间TE LSP为Globenet提供一种虚拟 IP租用线（Virtual IP Leased Line， VLL）服务。这种VLL服务具有如下特点：

• AS间TE LSP承载的包的延时与传统租用线相当（也就是说，主要是传播延时）。

• AS间TE LSP承载的包的抖动非常小（如 30～50 ms）。这与Globenet要为其要求最严格的CoS（VPN Voice）承诺的抖动目标相符。

• AS间TE LSP承载的包的丢包率可忽略。

• 为AS间TE LSP承载的包提供QoS标记透明性。也就是说，Globenet可以在Africa Telecom端根据自己的方案设置包的QoS标记，且确保这些标记在另一端进入Globenet时保持不变。

为提供这种服务，Africa Telecom决定在调度方面将VLL数据流与其他数据流分开处理。在ATC网络的每一跳，Africa Telecom激活一个新队列，专用于VLL数据流。因为Africa Telecom没有将EF队列用于调度自己的数据流，所以它决定将EF队列用于VLL数据流，并将其实例化为绝对优先队列，以优化延时和丢包率。VLL数据流还专用一个新的EXP值5。

然后，Africa Telecom充分利用TE功能，在其网络内对AS间TELSP执行许可控制和基于约束的路由。首先，确保路由到任何链路的VLL数据流负载足够低，使得绝对优先的EF队列可满足延时/抖动/丢包率目标。另外，还确保为Africa Telecom的其他数据流保留足够的容量。

如果Africa Telecom未来需要在EF队列中调度自己的数据流，将把相应数据流传输到适当大小的TE隧道。这将确保在用于VLL服务的AS间TE LSP和用于它自己的EF数据流的AS间TE LSP上执行一致的许可控制。

为确保在AS间TE LSP上，从Globenet哪里收到的包能够在ATC网络中很容易地进行分类，Africa Telecom在其连接到 Globenet路由器的 ASBR上应用输入QoS策略。该策略无条件地将最外层标签栈条目（包含AS间TE LSP标签的条目）的EXP字段设置为EXP=5（Africa Telecom网络中的VLL值），并保持其他QoS标记（LDP的EXP字段、Globenet应用的MP-BGP标签和包的DSCP）不变。这样，对于进入Africa Telecom网络中的包，最外层标签栈条目中的字段 EXP=5，但在所有 QoS 字段中包含 Globenet 标记。在Africa Telecom的出口处，ASBR执行次末跳标签弹出，默认情况下保持所有外层标签栈条目的 EXP 值不变。因此，重新进入 Globenet 网络时，所有包都有常规的Globenet QoS标记。另外，在Africa Telecom的出口处，ASBR应用Globenet指定的且基于Globenet EXP方案的出口QoS策略。从Globenet VPOP到Globenet核心，跨越运营商的每一步骤中的QoS标记和QoS服务策略如图5.57所示。

图5.57 QoS策略

读者应该还记得在 5.9.6 节介绍的“短管道”区别服务隧道模式。Africa Telecom 将这种模式用于非常类似的目的：对通过其网络传输的 Globenet 数据流应用其QoS方案，同时确保Globenet QoS标记的QoS透明性。

Africa Telecom决定不对发送到AS间TE LSP的、超过VLL服务约定速率的数据流应用严格的输入控制。相反，Africa Telecom和Globenet达成协议，运行一个更加灵活的模型。这样，Globenet 可以发送比约定速率更多流量，但需要根据超出约定速率的部分额外付费。这样，Globenet 可以更容易地处理流量需求的增长，且 Africa Telecom可以获得额外的收入。另外，在这种情况下，&nbsp;Globenet可以每月重新调整AS间TE LSP带宽一次。

由于安全性原因，在连接到Globenet的接口上，Africa Telecom仍对收到的所有数据流应用粗糙的控制，以防止拒绝服务攻击（DoS）风险，选择的控制速率高于 Globenet 正常情况下所需的带宽。尽管比较温和，但考虑到连接到Globenet路由器的接口的速度非常高（吉比特以太网），这种控制可以消除最严重的DoS攻击风险。另外，为保护自己的数据流，Africa Telecom在每一跳对EF 队应用控制器，其速率反映了 BC0（有一定的富余）。这样确保不管最终有多少VLL数据流出现在网络中，都不会耗尽全部带宽，虽然它使用的是绝对优先队列。

5.12.7 AS间TE LSP的恢复

为AS间数据流提供快速恢复无疑是采用这种AS间TE模型的一个主要原因。的确，通过BGP互连提供快速恢复（几十或几百毫秒量级）即使不是不可能，也相当有挑战性。在ASBR间链路、IPv4和VPNv4路由反射器失效时，尤其如此。

在这方面，AS间TE LSP截然不同。考虑图5.57中Globenet在Paris的ASBR （图 5.58中的G2）和 Johannesburg VPOP之间的AS间TE LSP。

图5.58 Paris ASBR（路由器A2和G2）的MPLS TE快速重路由设计

如果AS内部发生失效，AS间TE LSP的恢复与AS内TE LSP相同。注意，&nbsp;Globenet和Africa Telecom都使用FRR来保护其网络中的链路。

另一方面，对于AS间TE，ASBR间链路失效和ASBR失效都有特殊之处。

• ASBR链路失效：为保护这种失效，只需配置下一跳备用隧道，该隧道从一个ASBR开始，在下一跳ASBR终止。因为ASBR之间通常没有运行 IGP（Globenet和Africa Telecom都属于这种情况），所以这种备用隧道的路径必须显式配置，不能通过路径计算算法（如 CSPF）动态计算得到。

• ASBR节点失效：为保护ASBR失效，需要在受保护ASBR的每个上游邻居上，为每个ASBR下一跳配置下下跳备用隧道。与下一跳备用隧道类似，下下跳备用隧道路径需要手工配置。例如，为保护ASBR A2失效，需要配置三条下下跳备用隧道：从G2到A3、从G2到A4以及从G2到A1。同样，为保护出口ASBR G2失效，也必须配置三条下下跳备用隧道：从London到G3、从London到A2以及从London到G1。

有一个重要的事实需要特别强调。尽管Globenet选择使用快速重路由只是为了保护链路，但对于AS间 TE LSP，它选择使用快速重路由同时为保护链路和节点（防止ASBR失效）。这些ASBR集中了所有前往其VPOP的AS间数据流。

正如第 2 章介绍的，如果不能区分链路失效和节点失效，则意味着在同时存在下一跳和下下跳备用隧道时，应该使用下下跳备用隧道，而不管发生的是什么类型的失效（ASBR间链路失效或ASBR失效）。也就是说，如果同时配置了下一跳和下下跳备用隧道，且两者都正常运行，则ASBR间链路或ASBR的失效都将导致使用下下跳备用隧道。尽管如此，在发生双重失效的情况下，如果除配置下下跳备用隧道外，还配置下一跳备用隧道，将带来好处。如果下下跳备用隧道失效（例如，由于其目标节点失效），同时ASBR间链路也发生失效，使用下一跳备用隧道仍是有用的。由于这一原因，Globenet 决定系统性地配置下一跳和下下跳备用隧道集。

注意 在所有这些程序清单中，只显示了一个方向的TE LSP。必须同时在两个方向配置主TE LSP和备用TE LSP。

5.12.8 ASBR边界的策略控制

这种服务商之间的私有TE对等关系要求某种程度的策略控制，以确保建立的TE LSP集不违反协议。

这实际上要求配置信令控制机制。建立 TE LSP时，可在ASBR边界上检查其几种特征，如带宽和抢占优先级。此外，控制建立的TE LSP数量最为重要。每个AS间TE都会消耗路由器的资源（内存和CPU，用于信令处理），因此， Globenet和Africa Telecom决定除控制AS间TE LSP的带宽和外，还控制它们的最大数量。当前，在Cisco路由器上，带宽总量和TE LSP数量都可作为提供商间策略的一部分。Globenet和Africa Telecom想控制另一个TE LSP参数：起源AS，因此，对于每个建立的AS间TE LSP，接收ASBR检查其前端所属的AS。如果前端路由器不属于指定的 Globenet 自主系统集，将拒绝该 AS 间 TE LSP。由于违反策略而拒绝TE LSP时，将生成RSVP Path Error消息，它们将记录到NMS系统中专用的日志中，以便追踪可能的DoS攻击。

5.12.9 Africa Telecom VPOP

由于私有TE对等协议，两家服务提供商都可以部署VPOP。前面的程序清单说明了Globenet如何在非洲通过跨越ATC网络的AS间 TE LSP部署 4个VPOP。同样，Africa Telecom也决定使用与 Globenet VPOP相同的模型部署VPOP，以扩大其在欧洲的覆盖范围。

5.13 Globenet网络的设计教训

从Globenet做出的设计选择中可以获得许多经验教训：

• 从相同边缘平台提供多种服务是可能的，但在许多方面（如可扩展性和安全性）都需要特别注意。

• 第 3层MPLS VPN服务可跨越多个自主系统无缝地提供，包括同一家提供商或紧密合作的不同运营商的自主系统。

• 在许多地区，由于带宽费用高昂而不能采用简单的过度提供策略，此时可部署经过仔细设计的网络优化技术。通过以协调的方式组合使用流量工程和许多QoS机制，可以在核心实现较大的QoS差异。还可以运行相对较高的链路负载同时获得严格的SLA，从而使周期性带宽费用最小化。

• 通过使用支持区别服务的 MPLS 流量工程（DS-TE），可以采用使用不同的呼叫控制和基于约束的路由，在网络中基于每个类别优化流量分配。这些优化考虑了通过区别服务调度以及运营商定义的每类别工程约束实际分配给每个类别的资源。

• 当最终客户的内部网跨越非常远的地理距离（如多个洲）时，带宽将非常缺乏，显著的不可压缩的传播延时将占据敏感应用的大部分延时预算。许多种服务类别让你能够以合理的开销满足不同客户应用的需求。

• 在通过另一家服务提供商支持第 3层MPLS VPN接入的地方，可以为最终客户提供一致的CoS支持，即使两家服务提供商在其核心部署不同的QoS策略。这是通过在服务提供商边界执行适当的QoS映射功能实现的。

• 可以渐进方式将第 3层MPLS VPN服务扩展为支持 IPv6。为支持 IPv6而进行的升级可以限制在实际需要提供该服务的边缘路由器内。核心不需要升级或更改配置。

• 在IP数据流比本征ATM数据流多得多的网络部分，ATM网络可以在多服务MPLS基础设施上通过中继实现。这涉及到边缘路由器上的伪线路服务支持以及适当工程化的核心，以保证适当的QoS和可靠性。

• 服务提供商可通过其他服务提供商的 IP/MPLS 网络部署虚拟 POP（VPOP），将覆盖范围扩展到其他地区。VPOP 模型依赖于多种技术的组合，包括动态计算提供商之间最短约束路径的AS间MPLS流量工程、提供商间QoS以及快速重路由。它提供了与其他常规POP等价的服务，在 QoS 和网络可用性方面，具有严格的 SLA。它为那些想扩展覆盖范围的服务提供商提供了一种高性价比的替代方案，还允许对提供给VPOP的互连带宽进行非常细致和迅速的调整。

• 自动提供功能简化全互联 MPLS 流量工程 LSP 网的部署，用户只需做少量的配置。

• MPLS流量工程LSP可由前端路由器自动调整大小，以根据实际流量需求动态地调整TE LSP带宽，进而找到满足带宽需求的最短路径以及优化网络资源。

第6章 大型企业设计案例

本章专门介绍一家虚构的名为EuroBank的大型欧洲银行企业。EuroBank最初是一家位于英国的名为MainBank的大型银行。几年前它并购了EnterBank——一家在英国专门为企业客户提供服务的银行。它还并购了一家名为UK Insurance （UKI）的小型保险公司，该公司为消费者和企业提供服务。EuroBank通过并购本地银行的方式，继续扩张到欧洲其他部分，包括位于德国的GerBank和位于西班牙的具有全国性支行网络的SpainBank。SpainBank还在德国拥有两个办事处。

最近，EuroBank 并购了位于纽约的一家经纪人事务所，因为它与纽约证券交易所非常近。EuroBank 在美国的存在当前仅仅限于经纪人事务所，且在那里不提供金融服务。EuroBank 计划通过内部增长和外部增长（在其他国家并购）继续扩张。

从网络角度，EuroBank 的主要目标是将它的多个附属网络整合成单一的基础设施，从而减少费用开销并通过调整网络增强通信。在这样做的同时， EuroBank 的一个最主要的需求是在它的不同子公司之间提供严格的隔离，因为它们各自以严格自治的方式运行。例如，EnterBank 在英国的支行机构不能与UKI的支行机构建立任何连接，反之亦然。也就是说，EuroBank需要在不同的分区中支持不同的子公司。它选择使用基于第 3 层网络的虚拟专网（VPN）技术来实现这个目标。

最近，EuroBank决定利用它选择的VPN技术将其一个子公司（MainBank）的不同部门隔离。例如，MainBank的会计部门不能与经纪人服务建立任何连接，反之亦然。

EuroBank 有许多数据中心。与子公司之间的连接需求不同，每个数据中心都需要能够被EuroBank集团的所有子公司访问，因为所有子公司/部门的应用都安装在这些数据中心。特别地，有些服务器专用于特定子公司/部门，而其他服务器能够被EuroBank的所有位置访问到。此外，在不同数据中心之间也需要进行通信（例如，在位于不同数据中心的服务器之间实现备用）。

EuroBank 利用向更高级 IP 基础设施的过渡，将语音和视频应用迁移到 IP基础设施，以达到其减少费用的目标。EuroBank 选择向提供完全的管理 VoIP服务的语音服务提供商（telephony service provider，TSP）外包其语音服务。这包括IP电话的安装和运行，以及位于EuroBank的呼叫处理设备。

因为关键任务应用以及这些语音和视频应用现在都在IP网络上承载，所以它需要严格的服务质量（QoS），同时还要保持带宽费用尽可能低。此外，新出现的应用在语音/数据集成方面需要更高的灵活性，各种金融应用（如click-to-talk应用或通过VoIP监视远程设备）增强了这些需求。

本章的目标是介绍EuroBank当前的网络设计，演示一家大型企业如何部署自己的基础设施。特别是本章介绍了如何在EuroBank网络中集成和运行受管理的语音服务（Managed Voice Service）。另外，因为TSP使用第 3层MPLS VPN技术作为其基础设施的基础，以实现EuroBank为不同客户提供受管理的语音服务，所以本章将简要介绍TSP使用的第 3层MPLS VPN设计。

值得注意的是，本章介绍的网络设计也适用于其他许多行业的企业，如保险、能源和制造业。的确，这些公司通常有类似的需求，它们希望在单个网络基础设施上为所有子公司提供服务以达到减少开销的目的。它们还需要在给定业务中实现不同子公司和部门间的安全和受控的通信，以及在共享网络上集成语音服务。它们由于动态合并、并购和内部扩张而经常面临相同的挑战。

6.1 EuroBank网络环境

在其所有子公司中，EuroBank在欧洲有1100多个支行部门（我们称之为支行）。另外，EuroBank还在英国、西班牙和德国运营了40多个大型办事处站点（我们称之为办事处）。每个办事处具有几百个职员在不同部门（决策部门和后勤部门）工作。

EuroBank集团建了一个由 9个出现点（point of presence，POP）组成的私有核心网络：5个位于英国（其中有3个位于伦敦），两个位于德国（柏林和法兰克福），另外两个位于西班牙（巴塞罗纳和马德里）。

所有支行和办事处都连接到EuroBank核心网络。对于支行，这种连接在英国和德国通过本地服务提供商提供的受管理第 3层MPLS VPN服务实现。在西班牙这种连接通过本地服务提供商提供的受管理帧中继网络来实现。在所有国家，办事处都通过9个POP之一直接连接到核心网络，使用的是租用线（34 Mbit/s或 155 Mbit/s）、ATM PVC和城域以太网连接，如果与POP位于相同位置时，则使用快速以太网或吉比特以太网连接。

EuroBank核心POP也连接到本地服务提供商的第 3层MPLS VPN服务和基于帧中继的受管理服务。

每个办事处通常由运行各种应用的服务器群组成，这些应用可从支行访问。如前所述，每个支行还需要访问位于欧洲的各个数据中心的应用。

EuroBank有4个数据中心：两个位于伦敦，一个位于法兰克福，另一个位于马德里。它们通过冗余高速链路、快速以太网或吉比特以太网（如果在相应城市这种城域服务可用）或155-Mbit/s租用线互连到本地POP。数据中心通常离核心网络POP很近，但为提高可用性而放在相同的地方（防止电源失效同时影响POP和数据中心）。这些数据中心在 UNIX 服务器和主机上运行了许多应用，这些应用需要由 EuroBank 集团的不同支行和办事处访问。也就是说，虽然支行通常连接到其子公司运行的远程应用，但它们也需要访问在各个数据中心运行的应用。同样，办事处也需要访问其他办事处或数据中心的服务器运行的应用。

在过去，EuroBank运行9个数据中心，但它在过去两年将这个数量减少到了4个，以减少费用开销。可以实现这种减少是因为公司的高速MPLS基础设施提供了必要的性能水平，允许透明地访问远程的数据中心，且第 3 层 MPLS VPN技术允许严格控制对相同位置的不同资源的访问。

6.1.1 支行描述

支行是能够提供常规金融服务的中小型场所。它们不需要多VPN支持，分布在英国、德国和西班牙的各个城镇和城市。

表6.1列出了各个子公司和国家的支行数。

表6.1 各个子公司和国家的支行数

如前所述，在英国和德国，支行没有直接连接到EuroBank核心网络。相反，它们通过地区性服务提供商提供的第 3层MPLS VPN实现连接。采用这种方法的原因是费用，因为在这些国家许多地方都可以与本地服务提供商签订价格优惠的协议。与部署单独的网络并在每个国家组建覆盖全国的运营结构相比，使用受管理服务不管是在资金花费还是在运营花费上都便宜得多。

在这些国家，支行分别通过一台由服务提供商管理的CE路由器，连接到第3层MPLS VPN本地服务提供商。从CE路由器到服务提供商PE路由器的接入链路通常为SDSL链路，它以 512 kbit/s至 2 Mbit/s的速率提供双向连接。

在西班牙， EuroBank 使用帧中继受管理路由器服务，这种服务由SpainBank在被EuroBank并购前与本地服务提供商合作建立的。SpainBank的支行和办事处以及EuroBank在西班牙的核心POP，都通过服务提供商管理的CE路由器使用帧中继永久虚电路（permanent virtual circuit，PVC）连接到这种受管理的路由器服务。跨越这些位置的帧中继 PVC 集根据每个位置的带宽需求以及这些位置之间的流量矩阵确定。特别地，每个支行或办事处的CE路由器连接到位于马德里 POP或巴塞罗纳 POP的两台受管理CE路由器。一个帧中继PVC连接到中央CE路由器，并用作主PVC。另一个有相同容量的帧中继PVC（称为影子PVC）连接到相同POP中的另一台中央CE路由器，在中央主 CE 路由器失效时使用。西班牙的 POP 详细结构将在 6.1.3 节介绍。SpainBack在德国有两个办事处，通过国际帧中继PVC连接其全国性网络的其他部分。这些办事处现在都通过租用线连接到EuroBank位于德国的POP，并连接到 SpainBank VPN。

对于EuroBank在每个国家的支行的接入链路，服务提供商使用多个ISDN载波信道提供备用连接。支行与服务提供商PE路由器之间的连接失效时，这些信道通过浮动静态路由动态建立。在这种失效情况下，将使用多链路 PPP（参见[MLPPP]）聚合适当数量的载波信道，以提供等价的带宽，直到服务恢复时数据流切换回本地接入链路。注意，这种备用技术不仅用于到第 3层MPLS VPN服务提供商核心的接入链路，还用于帧中继受管理服务（在西班牙使用）。

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

图6.1显示了支行的结构及其到EuroBank核心网络的连接。

图6.1 支行及其到EuroBank核心的连接

6.1.2 办事处描述

如前所述，EuroBank办事处可能需要容纳各个子公司的数百名职员，包括所有后端处理和前端应用。除英国外，西班牙、德国和美国纽约的每个办事处支持一个子公司的员工。

从网络基础设施的角度看，英国的办事处与其他地区的办事处之间的唯一差别是，CE路由器如何连接以及每台CE路由器需要支持多少个VPN。在西班牙和德国办事处，两台CE路由器通过租用线或城域链路连接到EuroBank核心网络；英国的小型办事处也是这样。

如图6.2所示，英国的办事处通常由两台支持Multi-VRF的CE路由器组成（Multi-VRF功能将在6.3.7节详细介绍）。这些CE路由器通过租用线或城域链路连接到本地POP中的PE路由器。主机和服务器都通过吉比特以太网交换机连接到办事处网络，这些交换机都连接到两台Multi-VRF CE路由器。

图6.2 英国的办事处及其到EuroBank网络核心的连接

在以太网交换机上，为该办事处支持的每个VPN配置一个独立的虚拟LAN （VLAN）。该VLAN连接到Multi-VRF CE路由器中的相应VRF。最后，将交换机的每个主机端口分配到相应VPN的VLAN中。

在英国的大型办事处，CE路由器通常通过 34 Mbit/s（有时候为 155 Mbit/s）的租用线连接到EuroBank核心网络POP（其结构将在下一节介绍）。在大型城市（如伦敦），大型办事处的CE路由器通过本地服务提供商提供的城域快速以太网或吉比特以太网连接到核心 POP。对于小型办事处，将这些站点连接到核心网络的介质为租用线，其速率为 8 Mbit/s至 34 Mbit/s。

EuroBank尽可能从本地服务提供商租用受保护电路。在缺乏这种保护时，它依赖于内部网关协议（Interior Gateway Protocol，IGP）（OSPF）会聚在租用线发生失效时重路由数据流。EuroBank还依靠IGP会聚来处理CE路由器或PE路由器失效。

通过双重连接所有网络设备，在办事处支持全面的冗余。通过两台CE路由器（每台路由器都能单独处理该办事处发送和接收的所有数据流）、两台吉比特以太网交换机以及通过两个不同POP（或同一个POP中的两台路由器）连接到核心网络，来提供这种冗余。

6.1.3 核心网络POP描述

核心网络由9个POP组成：5个位于英国（3个在伦敦，1个在曼彻斯特，另一个在纽卡斯尔），两个位于德国（柏林和法兰克福），两个位于西班牙（巴塞罗纳和马德里）。

POP的结构如图6.3所示。每个POP有两台P路由器通过吉比特以太网交换机连接到两台PE路由器。为提供全面冗余，每台P路由器和PE路由器都连接到两台交换机。

图6.3 EuroBank POP基础设施

注意，在英国、德国和西班牙的POP结构稍有不同。

• 在英国，EuroBank PE路由器通过专用 STM-1链路上多路复用的多个帧中继 PVC（每个 VPN 一个）直接连接到本地服务提供商的 PE 路由器。实际上，EuroBank MPLS网络和服务提供商MPLS VPN可视为使用 1.3.1节介绍的AS间方案A。EuroBank PE路由器还通过城域连接、租用线和ATM PVC连接到办事处。

• 在德国，法兰克福POP的结构与UK的POP相同，但它的PE路由器只支持一个VPN。柏林POP的结构稍微简单些，因为只有两台PE路由器，它们同时用作 P 路由器。这是基于柏林 POP 没有连接到任何数据中心进行的调整，没有理由使用两套PE路由器和P路由器。

• 在西班牙，PE路由器通过点对点吉比特以太网链路连接到两台中央CE路由器，它们由本地服务提供商管理且传输来自支行的所有数据流。另外，与德国 POP相同，EuroBank PE路由器只处理一个VPN。由于与德国类似的原因，EuroBank决定在巴塞罗纳的POP只使用两台PE路由器（同时用作P路由器）。该公司在马德里的POP有两台P 路由器和两台 PE 路由器（连接到西班牙的数据中心），如图 6.3所示。

EuroBank决定将其9个POP放在大型办事处。因此，图6.3所示的位置基础设施实际上包括POP和相同位置的办事处。在这种情况下，PE路由器既用于连接到其他办事处的远程CE路由器，也用于支持该办事处的VPN。

与其他常规办事处一样，吉比特以太网交换机上的VLAN用于将VPN连接延伸到相同位置的办事处主机。

连接 POP的长距离链路是国际服务提供商提供的 E3（34 Mbit/s）链路和ATM PVC（参见图 6.4）。唯一的例外是英国，其中POP间的三条长距离链路都是快速以太网。伦敦的三个POP通过吉比特以太网（全速率）互连。6.1.5节将更详细地介绍城域连接。

6.1.4 数据中心描述

数据中心有两台PE路由器，它们连接到两个不同的POP（在可能时），否则连接到最近POP的两台路由器。图6.5中就是一个数据中心。

图6.4 EuroBank核心网络拓扑

图6.5 数据中心的基础设施

每个数据中心的PE路由器为EuroBank集团的每个VPN（每个子公司或每个部门一个VPN，与MainBank相同）支持一个VRF。与办事处和POP相同， VLAN用于将VPN连接延伸到主机和服务器。可扩展性（从MAC地址数说）不成为问题，因为数据中心的主机和服务器数量相当少。

位于数据中心的服务器运行大量应用，如遗留的IBM大型机应用、经纪人应用和各种内部网应用。在晚上，60%的流量与传输备用数据传输相关。

6.1.5 英国城域连接描述

在英国，城域连接用于将大型办事处连接到POP，将数据中心连接到POP以及连接POP和POP。EuroBank选择使用两种不同的城域服务来提供这种连接。

• 快速以太网：部署在一些办事处及其连接的POP之间、曼彻斯特POP和纽卡斯尔POP之间，并将曼彻斯特POP和纽卡斯尔POP连接到伦敦POP。在后一种情况下，EuroBank的城域服务提供商还提供冗余的受管理服务。两个提供快速以太网接口（铜缆接口）的 SDH 网络端接单元（Network Termination Unit，NTU）分别位于EuroBank办事处和城域服务提供商POP中。这两个 NTU 通过 SDH 多路复用部件共享保护（ Multiplex Section-Shared Protection，MS-SP）环互连。因为快速以太网连接被映射到受保护SDH VC4，所以这些链路可以以线速率（100 Mbit/s）使用。

快速以太网用于曼彻斯特 POP和纽卡斯尔 POP之间，并提供 40 Mbit/s的子带宽速率保证。在这种情况下，通过双重设备提供网络高可用性，如图6.6所示。注意，在位于城域服务提供商POP中的以太网交换机上执行输入控制，意味着需要在P路由器上配置输出整形。关于该过程的详细内容将在6.5节介绍。

图6.6 曼彻斯特POP和纽卡斯尔POP之间的子速率快速以太网连接

• 吉比特以太网：部署在EuroBank的数据中心和伦敦POP之间以及伦敦的3个POP之间。与快速以太网相反，位于两个EuroBank站点的P路由器通过 EuroBank 的城域服务提供商所管理的两台吉比特以太网交换机互连。位于 EuroBank 的每台吉比特以太网交换机连接到城域服务提供商 POP 中的吉比特以太网交换机。它们充当城域服务提供商边缘设备，并通过点对点吉比特以太网链路连接到本地的EuroBank P路由器，如图6.7所示。

图6.7 吉比特以太网城域连接

EuroBank决定根据流量估计购买速率为 300 Mbit/s至600 Mbit/s的城域吉比特以太网连接，每个月将根据服务提供商提供的流量统计重新评估该速率一次。注意，输入流量整形配置在服务提供商的入口以太网交换机上。网络高可用性通过完全冗余实现。在EuroBank处安装两台以太网交换机，并通过不同的光纤路径连接到城域服务提供商核心网络。

城域服务提供商通过Web界面提供关于端口使用情况的统计数据（日统计、周统计和月统计）。

6.2 EuroBank的设计目标

EuroBank网络的设计目标包括如下考虑：

• 为各个子公司和部门提供丰富的第 3层MPLS VPN服务。隔离不同的子公司和部门。控制对共享应用的访问。

• 支持关键任务金融应用、IP语音和视频会议应用所需的QoS水平。

• 为特定服务（如经纪人数据流，它需要更高程度的保密性）支持加密的第3层服务。

• 确保网络设计足够灵活，以便容易应对内部的预期流量增长以及由于进一步并购导致的网络扩展。

• 通过限制覆盖主支行/办事处和数据中心的EuroBank核心网络的规模，优化网络的opex/capex。对于小型办事处，则依赖于本地运营商提供的受管理第3层服务。

• 在EuroBank环境中集成外包给TS的受管理语音服务（Managed VoiceService），支持全互联的电话连接，而不违反子公司/部门的隔离性。

• 提供高可用和冗余的网络，在核心链路或P路由器发生失效时，将路由会聚总时间限制在5秒以内。

本章后面从路由、第 3层MPLS VPN服务设计、VoIP的第 3层MPLS VPN设计以及QoS等方面介绍EuroBank选择的网络设计。

6.2.1 EuroBank网络核心的路由设计

在EuroBank网络核心，路由器总数为140台。这包括位于办事处、POP和数据中心的P路由器、PE路由器和Multi-VRF CE路由器（当然，支行不是 IGP路由域的组成部分）。内部路由的数量不超过500条，且不会有外部路由通告到OSPF中（OSPF链路状态数据库仅由路由器LSA和网络LSA（1类和2类LSA）组成）。因此，EuroBank采用由单个OSPF骨干区域组成的简单路由设计。

EuroBank从网络可用性的角度分析了满足应用需求所需的会聚时间（包括通过数据链路交换（DLSw）实现的系统网络架构（Systems Network Architecture，&nbsp;SNA）应用、交互式应用等）。结论是，当核心链路或P路由器发生失效时，重路由时间不应该超过5秒钟。

正如前面指出的，EuroBank 系统性地选择使用受保护电路（尽可能）。例如，所有STM-1链路都受到保护，且ATM PVC也在服务提供商核心中实现动态重路由。对于前种情况，会聚时间位于数十毫秒的级别；对于后一种情况， ATM PVC在服务提供商核心中能够在 2至 3秒内恢复。

对于城域连接，快速以太网链路依赖于SDH NTU，因而由于SDH保护可实现几十毫秒的会聚时间）。在城域连接中使用吉比特以太网交换机时，它们在几毫秒内传播任何链路失效。交换机检测到失效后，客户端的LAN端口将被关闭，从而将失效通知传播给路由邻居。注意，用于城域连接的吉比特以太网链路本身不受保护；它们的失效需要通过OSPF重路由处理。

当链路不能通过低层网络恢复机制（如使用34-Mbit/s租用线时的路由器失效等）得到保护时，核心网络将只依赖于 OSPF 会聚来恢复受影响的数据流。正如前面指出的，网络在设备方面（双路由器、双吉比特以太网交换机等）和网络路径（没有单点失效）方面都是完全冗余的。

为满足 5秒内的会聚时间，EuroBank决定修改默认的OSPF hello定时器，将它将默认值 10秒修改为 1秒，并将OSPF RouterDead定时器从其默认值 40秒修改为 3 秒。实践证明这些参数设置不会在路由器上导致不合理的控制平面开销。因此，在任何失效情况下，最坏失效检测时间限制在3秒内。这为OSPF提供了超过2秒的会聚时间。当检测到失效时，每个路由邻居生成一个新LSA，它将在网络上传播以反映拓扑变化。注意，每台路由器收到更新OSPF LSA的时间由以下几部分组成：

• 链路传播延时；

• 经过的每跳的排队延时；

• 序列化延时。

EuroBank发现，最坏情况下每台路由器收到LSA更新的延时总是小于500 ms。

恢复周期的最后一个步骤是路由表计算，对于EuroBank网络，需要 200 ms左右的时间。这表明可以实现会聚时间在5秒内的目标（包括LSA生成时间）。

注意 EuroBank决定将来在PE路由器上使用直接转发（Nonstop Forwarding，NSF）技术。

6.2.2 主机路由

EuroBank网络中的每台主机都可以通过至少两台路由器访问网络。这就需要使用一种协议来选择适当的路由器，并在主要路由器失效时将数据流重路由到另一台路由器。因此，EuroBank选择使用HSRP（Hot Standby Router Protocol，热备用路由器协议），并将hello定时器设置为1秒，将保持时间设置为3秒。

在PE路由器（办事处）或CE路由器（支行）发生失效时，辅助路由器将在3秒内开始接收数据流，它满足EuroBank的路由会聚目标。因为HSRP依赖于主/辅助路由器的选择，所以在稳定状态下，主路由器接收来自各台主机的所有数据流，并路由到网络核心中。为充分利用将两台路由器连接到网络核心的两台租用线，最好能够让主路由器将一部分数据流重路由到辅助路由器。对于支行，主路由器通过适当的BGP配置实现数据流负载均衡；对于位于数据中心的服务器和大型机，通过使用多组 HSRP 使得两台路由器都只作为部分主机的主路由器。

注意 EuroBank选择将来在支行和办事处使用网关负载均衡协议（Gateway Load Balancing Protocol，GLBP）。GLBP在许多方面与HSRP类似，但在数据流负载均衡方面提供了更好的解决方案，特别适合有大量主机的环境。简言之，它的原理是通过使用单个虚拟IP地址（与HSRP相同）和多个虚拟MAC地址，将来自主机的数据流负载均衡到不同路由器。这样，数据流将均衡到多台路由器，而不是选择一台主路由器接收所有数据流并负责负载均衡。因此，在稳定状态下，数据流均衡地分布在两台路由器之间。当然，这种协议更适合有大量主机的环境，因为主机数量有限时，将不能实现精确的负载均衡，对于产生并接收大量数据流的大型机来说尤其如此。对于少量主机产生大部分数据流的数据中心，使用由主路由器执行负载均衡功能的HSRP更适合些。

6.3 第3层MPLS VPN服务的设计

EuroBank采用第 3层MPLS VPN技术来提供一种具有良好可扩展性的方法，将不同子公司隔离到各自的VPN中。它还要在单个子公司中提供多个“部门”VPN，而不需要在核心网络中维持独立的逻辑连接。在可以使用这种技术之前，企业通常需要使用以太网VLAN和/或帧中继PVC来实现相同的目标。显然，这种方法对于跨WAN的连接不够灵活，且性价比也不如第3层MPLS VPN解决方案。另外，这种方法通常需要为每个VPN使用独立的物理路由器，或使用复杂的过滤器来提供必要的隔离。

EuroBank在所有核心链路和每个POP中启用MPLS，包括所有P路由器以及PE路由器上面向核心网络的接口。在办事处或数据中心，除面向核心网络的接口外，不需要运行标签交换。MPLS标签将使用标签分发协议（LOP）分发。图6.8显示了核心网络以及LDP协议的部署位置。

图6.8 EuroBank LDP部署

6.3.1 子公司之间和数据中心的连接需求

如前所述，EuroBank公司由5个子公司组成：MainBank、EnterBank、UKI、GerBank和SpainBank。这些子公司之间的隔离是网络设计的一个非常重要方面，这意味着需要阻止子公司之间的直接连接。子公司MainBank甚至还进一步分为三个相互隔离的部门：Accounting、Brokerage和Branch。

在除MainBank外的每个子公司内以及MainBank的每个部门内，每台设备都必须能够与其他每台设备通信。

除支行和办事处，EuroBank还有4个数据中心，这些中心存放了运行多种应用的服务器。这些应用中有些属于特定子公司（或部门），必须限制只能从相应的子公司（或部门）访问。EuroBank 集团的每个子公司至少有一个子公司/部门特定的应用，运行在可通过数据中心访问的一台或多台专用服务器上。数据中心运行的其他应用是共享应用，必须可供所有子公司访问。

6.3.2 办事处的需求

在英国，办事处支持多个子公司的职员。在子公司MainBank内，支持多个部门。因此，在英国的办事处需要多个VPN。

英国外的办事处只支持单个子公司的职员，因此只需要一个VPN。

所有办事处和支行都需要访问数据中心的共享应用。

6.3.3 EuroBank集团的VPN定义

为实现上面描述的所有通信和隔离需求，EuroBank部署了许多VPN。

• EnterBank：EnterBank VPN。

• UK Insurance：UKI VPN。

• GerBank：GerBank VPN。

• SpainBank：SpainBank VPN。

• MainBank：Accounting VPN。

• MainBank：Brokerage VPN。

• MainBank：Branch VPN。

• 共享应用：EuroBank Shared VPN（或缩写为Shared VPN）。

除Shared VPN外，每个VPN包含来自支行、办事处、特定支行/办事处的特定数据中心应用以及共享数据中心应用的路由信息。Shared VPN包含数据中心运行的所有共享应用的路由信息，并支持它们之间的连接，如备份等。通过使用这种模型，很容易实现私有VPN与共享VPN之间的路由信息交换。

在Brokerage VPN内部，EuroBank运行了一些敏感应用，其数据在不同经纪业务位置间交换需要加密。为此，EuroBank 使用[IPSEC-ARCH]，详情请参阅6.3.10节。

1．路由目标和路由区分标志的分配

EuroBank 选择使用私有自主系统号 65001，来支持路由目标和路由区分标志值的分配。该自主系统号还将用于 EuroBank 的 MP-BGP 进行以及与地区性MPLS VPN服务提供商（它代表支行提供连接）的对等关系。VPN没有特定的负载均衡需求，因此，EuroBank对给定子公司/部门VPN中的所有VRF都使用相同的路由区分标志。

表6.2列出了为每个VPN选择的路由目标值和路由区分标志。

表6.2 路由目标和路由区分标志分配

6.3.4 数据中心的第3层MPLS VPN设计

EuroBank集团的每个数据中心都有多台子公司/部门特定服务器，它们分别属于前面定义的每个VPN。从VPN内部访问这些服务器是直接访问。也就是说，不需要经过防火墙或网络地址转换（NAT）设备。在交换机上，将属于给定子公司/部门VPN的每台服务器分别配置为属于如表6.2所示的相关VLAN。

每个VPN需要通过数据中心PE路由器的VRF连接来访问数据中心。程序清单6.1显示了数据中心PE路由器的配置（其中只有两个VRF定义）。

程序清单6.1 数据中心PE路由器的VRF配置模板

（待续）

如程序清单6.1所示，每个VPN使用吉比特以太网VLAN连接到数据中心的本地交换机。每个VPN的VLAN分配如表6.3所示。

表6.3 VPN VLAN分配

每个数据中心的物理布局在前面6.1.4节介绍过。图6.9显示了在数据中心如何使用VLAN来隔离每个VPN，还显示出通过防火墙控制从每个子公司访问共享应用。防火墙是必要的，这样EuroBank才能更好地控制谁能访问共享应用。

在合并或并购环境中，通常有一个或多个子公司/部门使用私有IP地址（参见[PRIVATE]）。在这种情况下，在访问共享应用前使用NAT是必要的，这样才能避免可能的地址冲突。

通过为每个子公司/部门VPN使用虚拟防火墙实例，限制子公司/部门VPN与共享服务器之间的访问。进入到数据中心交换机且目的地为共享服务器的数据流将被发送到相关 VPN 的虚拟防火墙实例。然后被桥接到一个 VLAN，该VLAN连接用于访问共享服务器VLAN的路由和NAT功能。这是通过在防火墙上使用透明模式实现的，它允许定义虚拟防火墙，其中只有两个端口，透明地在它们之间桥接数据流。图6.10说明了虚拟防火墙实例和它们的连接方式以及NAT的内部/外部接口。

图6.9 数据中心到VPN和共享应用的物理连接

图6.10 NAT和虚拟防火墙连接

运行共享应用的每台服务器必须将其 IP 地址的可达性信息注入到每个子公司/部门的 VPN 中。共享服务器位于同一个/24 以太网段上。因此，只需通告子网地址，而不需通告所有服务器的/32 地址。此外，为成功路由从共享服务器返回的信息，交换机的 NAT 功能使用的“外部”地址池也需要注入到共享VPN中。

这些路由信息的通告是通过使用路由信息协议（Routing Information Protocol，RIP）实现的，该协议在共享VPN内部的路由器和虚拟防火墙之间运行。每台共享服务器使用一个默认网关地址，通过使用 HSRP 将数据流发送到共享VPN中的某台出口路由器。图6.11说明了位于子网164.27.23/24中的共享服务器如何实现这个路由过程。

图6.11 PE路由器和共享服务器之间的路由

通过使用这种基础设施，EuroBank可继续使用[PRIVATE]范围内的IP地址，同时确保子公司/部门间的隔离。图 6.12 说明了包如何在办事处的 Accounting VPN与地址为 167.27.23.1的共享服务器（它属于Shared VPN，位于数据中心）之间传输。

图6.12 办事处与共享服务器之间的数据流传输

6.3.5 POP的第3层MPLS VPN设计

每个子公司的支行连接到第 3层MPLS VPN服务提供商或（在西班牙）连接到帧中继服务提供商。

如前所述，如果支行通过帧中继连接到EuroBank POP，则电路在帧中继服务提供商管理的路由器上终结。它们通过一个与相关VRF相关联的点对点吉比特以太网接口直接连接到EuroBank PE路由器。然而，对于通过第 3层MPLS VPN服务提供商连接的支行，EuroBank决定使用AS间方案A（背对背VRF），并将自己作为一台连接到服务提供商的CE路由器。这样，EuroBank可以从连接到这些服务提供商的支行那里获悉路由，并将相关VPN的路由通告到服务提供商MPLS VPN网络中。图 6.13说明了这种连接。

根据连接是来自英国还是德国 POP，MPLS VPN服务提供商与 EuroBank之间的背对背 VRF 连接数量会有所不同。对于英国，需要三个独立的 VPN：UKI、EnterBank和MainBank Branch。然而，在德国和西班牙，子公司GerBank和SpainBank都只需要一个VPN。

EuroBank在AS间链路上运行BGP-4协议，同MPLS VPN服务提供商交换必要的路由信息。支行到MPLS VPN骨干的连接通过静态路由实现，并使用浮动静态路由通过ISDN提供备用连接。

图6.13 连接到MPLS VPN服务提供商的AS间方案A

图 6.14 说明了共享服务器子网如何通告到英国 POP 的 UKI 和 MainBank Branch VPN，然后跨越AS间链路进行通告。

图6.14 跨越AS链路通告VPN路由

6.3.6 核心的MP-BGP设计

EuroBank在9个POP和4个数据中心中共有26台PE路由器（每个地方2台）。由于只有1100多条VPN路由（包含支行和办事处子网）和少数量的PE路由器，所以EuroBank认为没有必要在其初始部署中部署MP-BGP路由反射器。相反，EuroBank在所有PE路由器之间建立全互联的MP-BGP直接会话。

6.3.7 英国办事处的第3层MPLS VPN设计

如前所述，EuroBank选择在英国办事处使用Multi-VRF功能。这种技术为使用单台CE路由器部署多个VPN提供了性价比良好的解决方案。在这种情况下，位于英国办事处的 CE 路由器可以提供独立的路由和转发表（通过使用VRF），如图6.15所示。

图6.15 采用Multi-VRF技术隔离CE路由器FIB/RIB

通过使用Multi-VRF功能，EuroBank不需要在办事处部署多台CE路由器（每个子公司一台CE路由器），与其他实现方案相比节省了设备采购费用。相反，它只需部署两台支持 Multi-VRF 功能的 CE 路由器（为提供路由器失效时的冗余性，使用两台路由器是必要的）来支持所有VPN。

如前所述，办事处到EuroBank POP的连接取决于办事处的规模及其所在的位置。在有些情况下，使用以太网技术，其他一些情况下则使用租用线。

使用以太网技术时，每个子公司VPN在POP PE路由器与办事处CE路由器之间有一个VLAN连接，如图6.16所示。

如果使用租用线接入，则在PE路由器和支持VRF的CE路由器之间的链路上使用帧中继封装，以隔离不同的VPN。每个VPN分配一个单独的数据链路连接标识符（Data Link Connection Identifier，DLCI）。在办事处内部，仍使用VLAN。

图6.16 采用Multi-VRF技术的PE路由器-CE路由器连接

采用Multi-VRF功能的路由器配置与常规PE路由器[2547bis]的配置有很大不同：

• Multi-VRF路由器不需要在其面向核心网络的出口接口上配置MPLS转发。这是因为包从Multi-VRF CE路由器向POP中的PE路由器发送时，没有加入额外的标签。

• Multi-VRF CE路由器不需要配置MP-BGP。它在连接到PE路由器的链路上只使用标准路由协议（如BGP-4、OSPF、RIP等）。

• 与 CE 路由器-PE 路由器链路一样，CE 路由器的入口接口与一个 VRF相关联。而常规PE路由器不需要将VRF与任何上游链路相关联。

6.3.8 每个Multi-VRF VRF内部的路由

EuroBank决定在Multi-VRF CE路由器-PE路由器链路上运行外部BGP协议，并对所有VPN使用相同的BGP自主系统号。使用单个自主系统号是可行的，因为每个VPN都放置在一个独立的BGP VRF上下文中，每个通过Multi-VRF CE路由器可访问的VPN都有一个这样的上下文。因此在VPN之间不会发生路由冲突（如AS路径不匹配）。

在每个办事处和数据中心内，为每个VPN配置一个独立的OSPF进程，使得该VPN的全部子网都可以从该站点获悉到。程序清单6.2是办事处PE路由器（其中仅显示两个VPN）和相应Multi-VRF CE路由器的配置。

程序清单6.2 使用BGP协议的办事处PE路由器/CE路由器VRF配置模板

6.3.9 EuroBank的多播部署和设计

EuroBank当前只在英国的大型办事处支持多播数据流，且被限制在子公司EnterBank 内。EuroBank 在任何子公司的支行没有多播应用需求，因此在德国和西班牙不需要部署它。

因为多播部署仅限于英国大型办事处的EnterBank VPN，所以EuroBank选择在EnterBank路由实例（而不是所有VPN）中运行多播。在Multi-VRF CE上， EuroBank 部署多播 VPN（mVPN）解决方案（在前一章介绍过），将多播与所有其他子公司 VPN 隔离。在这样做后，EuroBank 开始发现一些迹象，表明有必要在不同子公司之间隔离多播数据流。如果发生这种情况，它将考虑在其他子公司VPN内部署mVPN。

6.3.10 EuroBank经纪业务加密部署和设计

MainBank 的经纪业务办事处和纽约经纪业务办事处必须能够交换加密的信息（因为这些信息是敏感信息）。为提供这种服务，EuroBank 选择在需要加密的服务器和客户端连接的经纪业务办事处的 CE 路由器之间使用[IPSEC-ARCH]隧道模式。

因为需要加密的端点数量相对较少，所以使用相关源/目标前缀（可能使用加密映射表进行匹配）静态地定义[IPSEC-ARCH]的配置。如果包与加密映射表配置的目标地址匹配，将使用同连接到目标地址的网关交换的信息对其进行加密。

图6.17说明了地址为10.7.1.1的主机，如何通过IPSec隧道将数据流发送到远程子网10.8.1/24中的主机。

图6.17 纽约办事处和MainBank经纪业务VPN之间的IPSec

6.4 VoIP的第3层MPLS VPN设计

EuroBank选择对其语音业务需求采用纯粹的VoIP解决方案。它的主要目标是，通过在EuroBank MPLS基础设施上传输所有企业内部语音呼叫（国内呼叫和国际呼叫）来减少费用；另一个目标是利用一些新服务，如使用电话和“follow-me”号码联机访问公司电话目录。使用这些号码，移动工作人员可从任何位置登录语音系统以及通过常规电话号码找到他或她。

EuroBank 决定将其电话服务外包给一家名为 PhoneNet 的电话服务提供商（Telephony Service Provider，TSP）。PhoneNet是一家全球性TSP，它提供的受管理电话服务覆盖EuroBank所有的场所（英国、德国、西班牙和美国）。EuroBank决定依赖于受管理的电话服务而不是自己运行电话服务的原因如下：

• EuroBank没有深入的VoIP技术专业知识。

• 在 EuroBank 的多个场所安装、运行和维护电话服务是非常繁重的运营任务（这也是EuroBank在支行中使用受管理CE路由器的原因）。

• 与全球性公共交换电话网络（Public Switched Telephone Network，PSTN）有许多连接点的 TSP 可以同时为呼入呼叫（EuroBank 外部的人呼叫EuroBank内部的人）和呼出呼叫（EuroBank内部的人呼叫EuroBank外部的人）提供高效的网外（off-net）呼叫路由。这样可最大限度地降低使国际呼叫费用。

• 通过使用同一个全球性 TSP，可让 EuroBank 企业内部使用一致的拨号规划和一致的语音服务。

由于这些因素，PhoneNet能够以相当有吸引力的价格提供功能丰富的受管理电话服务。

本节的目标是介绍PhoneNet的受管理语音服务如何在EuroBank的第3层MPLS VPN设计中运行，还将简要地介绍EuroBank设计，并讨论PhoneNet如何在自己的网络内使用第 3层MPLS VPN技术为多个客户提供受管理电话服务。这也是第 3层MPLS VPN技术的一个重要应用。

虽然VoIP设计的底层细节不在本书的介绍范围内，但将首先介绍受管理语音服务设计的高级架构。

6.4.1 受管理电话服务的架构

作为受管理电话服务的一部分，PhoneNet同时支持网内（on-net）呼叫（两个EuroBank电话之间）和网外（off-net）呼叫（EuroBank内部电话与EuroBank外部电话之间）。

PhoneNet提供并运营如下业务：

• 每个EuroBank子公司所在场所的IP电话。

• 伦敦两个数据中心的集中呼叫管理器。在这两个数据中心，PhoneNet运行一个呼叫管理器集群。每个集群有1-N个运行呼叫管理应用的处理器（如Windows或Linux服务器）。对于网络的其他部分，每个集群作为一个整体呼叫管理器。

注意 呼叫管理器是IP电话中VoIP信令涉及的中央设备。例如，呼叫管理器负责将用户拨叫的电话号码转换为被叫IP电话的IP地址。后面将更详细地介绍VoIP信令涉及的呼叫管理器。

为支持网外呼叫，PhoneNet还提供EuroBank内部网到PhoneNet的VoIP骨干的IP连接。其骨干在许多地方连接到PSTN和其他VoIP电话服务提供商。

图6.18说明了PhoneNet提供的受管理语音服务如何被集成到EuroBank VPN中。

图6.18 PhoneNet提供的受管理语音服务的架构

因为VPN中的每个IP电话都需要能够与用于VoIP信令的呼叫管理器通信，所以将呼叫管理器放置在EuroBank Shared VPN中。6.3.4节介绍的机制（包括NAT和虚拟防火墙，以及可达性在共享和非共享VPN之间的重分发）确保呼叫管理器与共享服务器一样，能够与任何VPN中的设备通信。

鉴于同样的原因，连接EuroBank内部网到PhoneNet VoIP骨干（它提供网外呼叫支持）内EuroBank VPN的 IP链路也同时连接到EuroBank Shared VPN。

图6.19说明了PhoneNet为提供受管理语音服务在EuroBank数据中心部署的设备。它还说明了该设备如何连接到EuroBank Shared VPN。

图6.19 数据中心的受管理语音服务部署

呼叫管理器位于 NAT 和虚拟防火墙实体的一边，但是大多数 IP 电话位于另一边。如6.3.4节所述，NAT和虚拟防火墙实体可以确保呼叫管理器与IP电话之间的基本连接。然而，它不足以确保适当的VoIP信令操作。VoIP信令协议将其消息体内的 IP 地址和端口号编码，以便同 VoIP 信令涉及的其他实体通信（例如，呼叫管理器告诉IP电话，要传输语音流传输给它的远程IP电话的IP地址）。尽管常规NAT操作将转换IP包头内的地址和端口信息，但它们不会自动转换VoIP信令包含的地址和端口信息。该信息将按发送时的状态原样接收，因而对接收VoIP信令消息的实体毫无意义。这种NAT穿越问题并非VoIP信令特有的，任何涉及传输地址和端口信息的应用都存在这种问题。该问题的常见解决方案是，在NAT设备上激活应用层网关（application-level gateway，ALG）。ALG将能够理解涉及的协议，并对协议消息中可能出现的地址和端口信息执行必要的转换。对于EuroBank环境，需要在NAT和防火墙上激活这种ALG，以确保适当的VoIP信令操作。该ALG支持EuroBank的呼叫管理器和IP电话使用的VoIP信令协议。

下面更详细地介绍VoIP信令ALG如何与呼叫管理器和VoIP信令协同运行，以正确地处理EuroBank VPN内部和跨越VPN的语音呼叫。

6.4.2 EuroBank VPN内部的网内语音呼叫

确切的信令交换取决于呼叫管理器和 IP 电话之间实际使用的 VoIP 信令协议（例如，Shinny Client Control（SCCP），参见[SCCP]以及 Session Initiation Protocol（SIP），参见[SIP]）。然而，其重要概念性步骤通常包括以下两步，如图6.20和图6.21所示。

• IP电话注册阶段：图6.20中的步骤A和B说明了这一阶段。该阶段在IP电话启动期间发生。它联系呼叫管理器，指出它的存在和IP地址。

这样做时，IP电话对其“内部”地址进行编码。ALG截获该信令消息，并用一个动态分配的外部IP地址替换内部IP地址。NAT和虚拟防火墙设备存储相应的地址/端口转换状态。信令消息最终达到呼叫管理器，后者只看到用于注册电话的外部地址，并将外部地址加入到电话号码转换表中。

• 呼叫信令阶段：用户在IP电话上拨叫电话号码时发生。

主叫电话通过VoIP信令将被叫电话号码以及它用于媒体流的（内部）IP地址和端口号告诉呼叫管理器（图6.21中的第1步）。

呼叫管理器其电话号码转换表中查询被叫电话号码，并返回被叫IP电话的外部地址（转换表与NAT和虚拟防火墙设备同步，如前面注册阶段所述）。

呼叫管理器发送一个VoIP信令消息给被叫IP电话（图6.21中的第2步），其中包含第1步中主叫电话告知的IP地址和端口号（采用内部格式）。

ALG截获该消息。因为它发现主叫电话和被叫电话位于相同的“内部”域内，所以ALG不转换该信令消息中的IP地址和端口号。

被叫电话将其内部 IP 地址和端口号返回给呼叫管理器（图 6.21 中的第 3步），呼叫管理器最终将这些信息返回给主叫电话（图6.21中的第4步）。同样， ALG也不会转换被叫电话编码的（内部）IP地址和端口号，因为主叫电话位于同一个“内部”域中。

在该阶段，两个IP电话都得到远程电话的“内部”IP地址和端口号。它们可以使用这些信息直接交换语音媒介流（图6.21中的第5步）。

因此，尽管信令消息在共享VPN和非共享VPN（图 6.21中的UKI VPN）之间交换，且它们通过NAT和虚拟防火墙设备（及其VoIP信令ALG）传输，但媒体流将在VPN内部直接从一个电话传输到另一个电话，而不需要穿越NAT和虚拟防火墙设备。

图6.20 IP电话注册阶段

图6.21 VPN内部的网内语音呼叫

6.4.3 跨越EuroBank VPN的网内语音呼叫

图 6.22说明了从UKI VPN中 IP电话 2建立到GenBank VPN中 IP电话 3的语音呼叫涉及的步骤。

VPN间信令步骤与前面描述的VPN内部呼叫基本相同。跨VPN语音呼叫的主要差别是，NAT和虚拟防火墙设备中的VoIP信令ALG发现两个电话位于不同的VPN中，因此将信令消息体包含的远程电话的“内部”地址和端口转换为“外部”地址和端口。其结果是，每个 IP电话都认为它在与位于Shared VPN中的IP电话通信，且NAT和防火墙设备负责对媒体流执行相应的NAT功能。注意，虚拟防火墙设备只允许在两个非共享VPN之间传输已显式识别的语音呼叫的数据流。

因此，对于跨越多个非共享 VPN 的语音呼叫，信令消息也将在共享 VPN和非共享VPN（图 6.22中的UKI VPN和GerBank VPN）之间交换。它们通过NAT和虚拟防火墙设备（及其VoIP信令ALG）传输。然而，穿越两个非共享VPN的媒体流将通过NAT和虚拟防火墙设备传输。这就是在位于不同VPN中的电话之间建立呼叫的过程，它可以使用不兼容（甚至重叠）的“内部”地址，而满足EuroBank隔离不同非共享VPN中设备的基本要求。

图6.22 VPN间网内语音呼叫

EuroBank还考虑了在其环境中集成受管理语音服务的另一种方法。其思想是，创建一个额外的VPN（“语音VPN”），将所有IP电话和呼叫管理器都加入到该 VPN 中，并将它同所有其他设备隔离。然而，EuroBank 最终没有采用该方案，因为它不能处理基于非专用电话硬件的电话应用（如在PC上运行的软件电话应用，EuroBank正在考虑部署这种电话）。另外，将一个额外的VPN扩展到所有场所，可能给某些场所带来严重的问题，如通过受管理VPN或帧中继网络连接的支行。

6.4.4 PhoneNet中的第3层MPLS VPN设计和EuroBank网外语音呼叫

暂时不考虑EuroBank内部网环境，考虑PhoneNet用于建立受管理语音服务，以便为EuroBank和其他许多客户提供服务的基础设施。PhoneNet选择MPLS和第 3 层 MPLS VPN 技术作为其 VoIP 基础设施的基础，因为很容易满足PhoneNet隔离不同语音服务客户的需求。这种技术还让所有这些客户能够访问PhoneNet的某些共享资源，如提供到PSTN连接的媒体网关和媒体网关控制器。

这是通过使用众所周知的彩虹（rainbow）VPN设计实现的。彩虹VPN确保连接到该VPN的设备能够与连接到任何“颜色”VPN的设备（即连接到任何VPN的设备）通信。在这种设计中，遵循如下规则。

• 每个受管理语音客户属于PhoneNet第3层MPLS VPN网络上的一个独立的VPN（例如，EuroBank在PhoneNet网络上由一个专用的VPN）。

• 所有共享PhoneNet资源（PSTN媒体网关和媒体网关控制器）都连接到彩虹VPN。

• 彩虹VPN中的所有路由都被重分发到每个语音服务客户VPN中。

• 每个语音服务客户VPN中的所有（必需的）路由都被重分发到彩虹VPN中。

最后两点可通过在PE路由器上额外配置适当的路由目标导入和导出语句实现。

图6.23显示了PhoneNet用于按这种方式支持受管理语音服务的VPN。

图6.23 PhoneNet第3层MPLS VPN和网外语音呼叫

注意，从PhoneNet的角度来看，唯一可见的EuroBank部分是Shared VPN。实际上，IP电话可能位于EuroBank的任何VPN中。然而，对于PhoneNet来说，这一点已被EuroBank网络中的NAT和虚拟防火墙设备及ALG通过前面介绍的机制隐藏。

对于由EuroBank网络中IP电话发起的网外呼叫，将发生如下步骤：

• 和网内呼叫那样，主叫电话和呼叫管理器之间发生 VoIP 信令（图 6.23中的第1步）。

• 按 PhoneNet 配置的那样，电话号码转换表告诉呼叫管理器，它需要与给定媒体网关控制器建立呼叫连接。媒体网关控制器可以从呼叫管理器直接到达，因为在PhoneNet网络上，它可从EuroBank专用VPN直接到达，而EuroBank内部网直接与该VPN相连。

• 呼叫管理器使用 SIP（参见[SIP]）或 H.323（参见[H323]）向媒体网关控制器发出建立呼叫信令，其中包含主叫端的媒体流 IP 地址和端口号（图6.23中第2步）。

• 接下来，媒体控制器执行如下操作：

——使用7号信令系统（SS7，参见[SS7]）执行到PSTN信令控制点的信令（图6.23中的第3步）。

——为其 IP 端的相应媒体流处理媒体网关（例如，通过媒体网关控制协议如[MGCP]或[MEGACO]，图6.23中的第4步）。

——将媒体流的IP地址和端口号告诉呼叫管理器（图6.23的第5步）。

• 呼叫管理器最终将该IP地址和端口号返回给主叫电话（图6.23中步骤6）。

• 最后，可以直接在主叫IP电话和PSTN媒体网关之间交换媒体流。

这些步骤的细节及它们的相对顺序取决于各个步骤实际使用的信令协议以及为该呼叫激活的语音功能。

建立网外呼叫时，呼叫管理器可以选择向哪个媒体网关发出信令。然后，媒体网关控制器可以选择通过哪个媒体网关路由语音呼叫。因此，PhoneNet可以获得非常高效的语音路由，以尽可能在MPLS基础设施上传输呼叫，从而尽可能少地使用 PSTN。例如，如果位于曼彻斯特的 UKI 支行的用户呼叫位于洛杉矶的外部电话，PhoneNet可确保该呼叫通过其MPLS网络传输到美国，并通过它位于加州（如洛杉矶）的媒体网关进入PSTN。这样目标PSTN运营商将只收取本地呼叫费用，从而显著地节省EuroBank的费用。

对于从PSTN到EuroBank电话的网外呼叫，PSTN SS7信令网络发现被叫电话号码由 PhoneNet 管理（因为电话号码是由 PhoneNet 从其号码范围中分配给 EuroBank ，或电话号码由另一家电话运营商分配但通过号码迁移交给PhoneNet）。相应地，PSTN SS7信令网络向PhoneNet指定的负责该号码或号码范围的媒体网关控制器发出呼叫建立信令，然后发生前面描述的步骤，但顺序正好相反。

6.5 服务质量设计

EuroBank 网络承载了大量的应用，它们有不同的服务质量（QoS）需求，且对EuroBank业务的重要性各不相同。一方面，该网络需要承载用户偶然浏览因特网的数据流；另一方面，网络也需要承载经纪人发出的指令（它们有非常严格的延时约束）和公司的语音数据流（它们有严格的延时和抖动约束）。

另一个挑战是，EuroBank 网络由拥塞程度各不相同的链路组成：有些链路经常处于拥塞状态，有些链路偶尔处于适度的拥塞状态，有些链路更本不会发生拥塞。这是因为它们的带宽开销差异很大（取决于链路跨越范围和位置），因而EuroBank需要在网络的不同部分采用不同的方法。例如，国际带宽的高费用导致 EuroBank 对国际性 POP-POP 路由非常谨慎地提供带宽（为 10～40 Mbit/s），因此需要处理这些链路的拥塞时段。另一方面，在一个城市甚至整个国家内，长距离快速以太网和STM-1链路的费用合理，EuroBank可在相应的POP-POP和POP-办事处链路上更慷慨地提供带宽，因此只需要处理这些链路偶然发生的拥塞。最后，价格非常有吸引力的城域吉比特以太网服务让EuroBank能够在伦敦的POP之间过度提供链路容量，因此这些链路根本不会发生拥塞。

另一个重要考虑是，在QoS方面，EuroBank没有有关网络中有些应用的行为以及需要如何处理的经验。因此，它需要一些灵活性，以便能够灵活地调整某些应用的 QoS 处理，实践证明这是必要的。所以，EuroBank 采用如下方法。

• 它这样定义服务类别，将有相似QoS需求且对EuroBank业务目标有类似重要程度的应用进行分组。服务类别的定义独立于带宽管理策略（及其队列），后者部署在网络的不同部分。EuroBank定义了9个这样的服务类别。

• 在基于吉比特以太网的POP-POP和POP—数据中心链路上，不部署QoS策略，因为这些链路都有过度提供的容量。

• 在超过100 Mbit/s的POP-POP、POP—办事处和POP—数据中心链路上，采用粒度适中的三队列QoS策略。

• 在 100 Mbit/s以下的 POP-POP和 POP—办事处链路上，采用高精细度的六队列QoS策略。

• 使用受管理第 3层MPLS VPN和受管理帧中继服务提供商（它们提供了支行连接）提供的三种服务类别。

• 将9种服务类别映射到不同的QoS策略。具体地说，定义了一种映射表，将9种服务类别映射到高精细度QoS策略的六个队列；还定义了另外一个映射表，将这些服务类别映射到中等细度QoS的三个队列；最后还为受管理路由服务定义了到三种服务类别的映射。

这种QoS方法在核心（而不是在边缘）应用高细度机制，因为边缘网络中的链路速度要远远高于核心中的链路，因而核心链路是主要瓶颈所在。这是地理覆盖范围较大（特别是国际性）的企业MPLS网络一个非常重要的特征。它与典型服务提供商MPLS网络（如第3章和第4章介绍的USCom和Telecom Kingland的MPLS网络）正好相反。在后一种情况下，核心网络的链路速度通常要比接入链路速度快得多，因此高细度QoS机制部署在接入链路上，它们（而不是核心）是主要瓶颈。

2.1.6节定义了QoS模型N/M/P，其中N为接入链路上的队列数量，M是核心的队列数量，P在没有使用MPLS流量工程时设置为0。EuroBank网络采用N/6/0模型，在该模型中，对于有些接入链路（如连接到数据中心的吉比特以太网链路），N=1；对于有些链路（如到支行或办事处的快速以太网链路），N=3，对于其他一些链路（如到办事处的 8-34 Mbit/s租用线），N=6。而USCom在其“PE-to-CE”QoS方案中，采用3/1/0模型。

6.5.1 EuroBank的服务类别

表6.4列出了EuroBank定义的服务类别，它还列出了应用程序清单、用于标识每种服务类别的DSCP值以及在MPLS核心使用的EXP值。

表6.4 EuroBank的服务类别

EuroBank 这样选择 DSCP 值：可以使用 IOS PE 路由器实现的默认DSCP-to-EXP 映射自动映射到适当的 EXP 值（它将 3 位优先级字段复制到MPLS标签栈条目的EXP字段）。然而，表6.4表明，两个服务类别的DSCP被映射到同一个EXP值：Intranet Batch的DSCP=2和Default的DSCP=0都映射到EXP=0。这是因为EuroBank决定不使用EXP=7，将它保留供将来使用。保留第7个EXP值，但有8个服务类别在MPLS上传输（多播数据流没有使用MPLS封装），所以EuroBank决定将同一个EXP值分配给 Intranet Batch和Default服务类别。做出该决定的原因是，在EuroBank部署的各种QoS策略中，总是将这两种服务类别归入相同队列，因此在MPLS核心不需要区分它们。注意，如果将来这两种服务类别需要在不同的队列中调度，EuroBank 可以很容易地通过在 PE 路由器上激活必要的 DSCP-to-EXP 映射来实现。例如，假定Intranet Batch服务类别需要更好地处理，需要与Mission-Critical Batch服务类别归为一组，则可以配置PE路由器，使得给所有到达时DSCP=2的包加入的标签栈条目的EXP值都设置为2（不重写IP头的DSCP值）。所需的配置如程序清单6.3所示。

程序清单6.3 用于DSCP-to-EXP映射的PE路由器输入策略

6.5.2 办事处和数据中心的数据流分类

EuroBank选择不在PE路由器或CE路由器上执行细粒度的数据流分类，相反，它将分类功能向边缘移动，在PE路由器上游离最终系统最近的路由器上执行该功能。这使 EuroBank 能够非常容易地识别并分类来自特定服务器的数据流。另外，这让负责站点内网络基础设施的运营小组能够调整分类配置，而不需涉及负责MPLS网络的运营小组。此外还通过将这些任务分配给网络外围其他设备，帮助确保PE路由器和CE路由器的高性能。

为能够将相同应用的不同事务类型归入不同的服务类别，EuroBank依赖深度包检查：分类设备查看有效负载中的应用程序特定信息，以确定包属于哪种事务类型。EuroBank使用 IOS基于网络的应用识别（Network-Based Application Recognition，NBAR）（参见[NBAR]）及其应用程序特定扩展，来执行必要的深度包检查以支持这种服务类别分类。

EuroBank使用CITRIX独立计算架构（Independent Computing Architecture， ICA）协议来支持数据中心内服务器的金融事务。如表6.4所示，有些CITRIX流需要归入mission-critical interactive类别，而另外一些需要归入mission-critical batch类别。程序清单6.4显示了EuroBank使用的配置，它使用NBAR将CITRIX ICA后台事务和其他CITRIX事务归入不同的类别。它还表明，EuroBank能够解释 ICA标签，该标签指出了CITRIX ICA事务的优先级。

程序清单6.4 使用NBAR对CITRIX ICA事务进行分类

（待续）

EuroBank还依靠NBAR来标识特定URL的Web事务（如位于“transact*”分支下的事务，如程序清单 6.4 所示）。这意味着相应的数据流应归入mission-critical interactive类别，而不是常规的 intranet interactive类别。

到大型机的金融事务也需要归入 mission-critical interactive 类别。在EuroBank网络中，它们是SNA数据流的一部分，使用DLSw+（参见[DLSw]）通过IP承载。DLSw+将所有SNA数据流放到TCP包中。有许多种方法可以对不同类型的 SNA 数据流进行分类，并执行相应的标记。EuroBank 选择的方法是，为 DLSw+数据流建立多条 TCP 连接，每条连接使用一个著名端口号，并对应于所需的优先级。它还将不同的 SNA 流（如根据 SAP 或 MAC地址）导向相应的TCP连接。这样，EuroBank就可以根据著名的TCP端口对DLSw+数据流进行分类，并使用EuroBank相应数据流类别的DSCP值进行标记。

来自自动柜员机的数据流也需要归入Mission-Critical Interactive服务类别，这是根据这种数据流被封装为X.25 over TCP（XOT）（参见[XOT]）进行的。程序清单6.5显示了本地QoS策略的配置，它用于将QoS策略应用于路由器自身生成的数据流，还有承载ATM流的XOT数据流。

程序清单6.5 使用本地策略分类并标记ATM数据流

PhoneNet使用呼叫管理器和IP电话来支持它提供给EuroBank的受管理语音服务。呼叫管理器控制IP电话在承载VoIP媒体流的包中使用哪个DSCP值，还控制IP电话及呼叫管理器自身在语音信令包中使用的DSCP值。这是通过配置呼叫管理器上使用的DSCP值来实现的；然后呼叫管理器通过信令，命令IP电话使用这些值。EuroBank告诉PhoneNet，DSCP 46和DSCP 26分别用于媒体流和语音信令数据流。IP 电话和呼叫管理器自动将这些数据流标记为属于EuroBank的服务类别Voice和Mission-Critical Interactive，而不需要 EuroBank对这些数据流进行分类。

EuroBank路由器自动将路由数据流标记为优先级6，它对应于EuroBank用于Network Control服务类别的DSCP=48。在MPLS核心中，路由数据流自动用EXP=6标记，因为在加入MPLS标签时，3位优先级字段默认被复制到EXP字段中。

如果根据观察，EuroBank发现给定应用没有得到适当的处理，它可以将该应用移到另一个服务类别。为此，只需对分类功能进行调整，将相应流的DSCP值标记为新服务类别的 DSCP 值。完成这种调整后，相应数据流将自动得到该服务类别的区别服务处理。

6.5.3 低于100Mbit/s的链路的QoS策略

EuroBank使用包含六个队列的高细度QoS策略来管理在低于100 Mbit/s的链路经常发生的拥塞。表6.5列出了这六个队列、映射到每个队列的服务类别以及队列参数配置。

表6.5 EuroBank的六队列策略

相应的QoS策略如图6.24所示。

图6.24 EuroBank用于低于100 Mbit/s的链路的六队列QoS策略

用于执行该 QoS 策略的路由器调度程序有一个名为 work-conserving 的属性，这意味着永远不会浪费带宽。因此，如果某个类别在一段时间内没有使用分配给它的全部最小带宽，未使用的带宽可以被别的类别使用——如果它要传输的流量超过分配给它的最小带宽大，这也是为什么慷慨地给 Mission-Critical Interactive服务类别分配30%的最小带宽（而预期最大负载为10%），并不会导致浪费带宽的原因。如果正好有比预期更多的Mission-Critical Interactive数据流需要传输（假定为20%），相应的队列将有足够容量来确保所需的高服务水平。如果没有比预期更多的Mission-Critical Interactive数据流，已分配给相应队列但未使用的带宽可被其他队列使用。

该策略将应用于EuroBank网络中速率低于 100 Mbit/s的所有链路：

• 基于ATM PVC的 POP-to-POP链路（速度为 10～40 Mbit/s）、E3链路和次速率（40 Mbit/s）快速以太网链路；

• 基于租用线的办事处-POP链路（速率为 8～34 Mbit/s）。

用于低于 100 Mbit/s的链路的六个队列QoS策略的配置如程序清单 6.6所示，这是一条租用线链路。

程序清单6.6 用于低于100-Mbit/s的租用线的六队列QoS策略

对于英国的次速率（40 Mbit/s）快速以太网POP-POP链路，EuroBank需要根据合约速率 40 Mbit/s对流量进行整形（如 6.1.5节所述，这是因为输入控制是由次速率快速以太网服务的运营商执行的）。这是通过使用层次性服务策略实现的，这种策略允许一种服务策略调用另一种服务策略，将其作为对某种类别采取的措施。如程序清单6.7所示，EuroBank首先应用一条顶级策略，对总流量进行整形；然后调用程序清单6.6所示的低层服务策略，对整形后的数据流执行六队列调度。

程序清单6.7 用于次速率快速以太网的六队列QoS策略

（待续）

对于ATM PVC，QoS策略首先需要根据合约ATM数据流类别（VBR-nrt）、合约持续信元速率和峰值速率进行 ATM 级流量整形，然后在每个 ATM PVC内独立地应用调度策略。在ATM PVC上应用QoS策略的示例可参阅5.9.2节。

6.5.4 超过100Mbit/s的链路的QoS策略

在超过 100 Mbit/s的接口上，应用更简单的三队列策略。在这些接口上，拥塞很少发生，且不是很严重，持续时间较短；因此，没有必要为每个服务类别细调拥塞管理机制。在较短时间拥塞时期内，重要目标是确保语音数据流完全得到保护，且那些可以承受速率减慢的应用被挤占，为所有交互式和重要应用留出带宽空间。用于实现这一目标的策略的队列、服务类别映射和队列配置如表6.6所示。

表6.6 EuroBank的三队列策略

该策略应用于EuroBank网络中速率位于 100 155 Mbit/s的所有链路：

• POP-to-POP全速率快速以太网和STM-1链路；

• 办事处—POP STM-1链路；

• 数据中心—POP全速率快速以太网和STM-1链路。

这种三队列QoS策略如图6.25所示。

图6.25 EuroBank用于超过100 Mbit/s的链路的三队列QoS策略

6.5.5 吉比特以太网链路的QoS策略

因为次速率（300～600 Mbit/s）吉比特以太网链路完全不会拥塞，所以EuroBank决定不在这些链路上实现任何QoS机制。如果将来在这些链路上发生拥塞且出现显著的QoS水平降低时再重新考虑。

6.5.6 支行接入链路的QoS设计

EuroBank支行通过受管理第 3层MPLS VPN服务或受管理基于帧中继的路由器服务连接到EuroBank核心。因而，EuroBank服务类别需要映射到这些服务上所支持的服务类别。本节将详细介绍与德国支行接入链路上使用的受管理第 3层MPLS VPN服务的互操作，在西班牙和英国也采用类似的方法。

第 3层MPLS VPN运营商支持三种服务类别（CoS）。这些服务类别如表6.7所示，其中还显示了相应服务提供商方案的DSCP值，以及映射到每种CoS的EuroBank服务类别和它们相关的EuroBank DSCP值。

表6.7 第3层MPLS VPN服务提供商CoS和EuroBank服务类别映射

注意 客户以超出相应服务类别合约的速率向第 3层MPLS VPN服务提供商发送数据流时，服务提供商可以丢弃超出部分，也可以接受超出部分但对其进行标记。在后一种情况下，超出部分被标记为合约外数据流，位于合约速率内的数据流称为合约内数据流。例如，Telecom Kingland在其VPN Premium服务类别中支持合约外数据流。更详细的信息请参阅4.8节。

1．来自支行的数据流

本节考虑从支行向EuroBank核心传输的数据流。

因为支行内部的LAN完全基于快速以太网和吉比特以太网交换，其容量与当前负载相比是过度提供的，所以在支行内部不需要激活QoS机制。

数据流离开支行时，首先被服务提供商的受管理 CE 路由器进行分类和标记。EuroBank使用服务提供商提供的基于Web的界面来配置要在CE路由器上应用的分类标准。CE路由器根据表6.7所示的映射，代表EuroBank将数据流分成三种服务提供商服务类别。例如，EuroBank指示CE路由器识别承载CITRIX协议的包，并将其归入 Premium CoS。再例如，因为VoIP媒体流和VoIP信令消息被 IP 电话预标记，所以 EuroBank 指示服务提供商将到达时 DSCP=46 （EuroBank 中语音数据流的 DSCP 值）的包映射到 Real-Time CoS，到达时DSCP=26（EuroBank中Mission-Critical Interactive数据流的DSCP值，包括VoIP信令）的包映射到Premium CoS。

分类后对数据流进行标记时，服务提供商使用自己的 DSCP 值（而不是EuroBank的DSCP值）。

对于从支行流向 EuroBank 核心的数据流，端到端 QoS 处理涉及的分类、标记和QoS步骤如图6.26所示。

图6.26 跨服务提供商网络从支行到核心的数据流的端到端QoS

服务提供商依靠按自己的方案标记的DSCP字段应用QoS机制。这些QoS机制将应用于支行中的CE路由器（用于传输到接入链路）以及服务提供商网络中的每一跳，包括最终用于传输到面向EuroBank链路的PE路由器。这样可确保所有数据流从支行的CE路由器出发，直到到达进入EuroBank网络的递送点（进入EuroBank PE路由器的输入）的过程中，都得到与服务提供商为每种服务类别提供的SLA承诺一致的QoS性能水平。

因为EuroBank PE路由器从服务提供商网络收到照服务提供商DSCP方案标记的网络包，所以EuroBank在该接口上应用输入策略，将DSCP值映射回EuroBank的DSCP值。这种映射基于表6.7，如程序清单6.8所示。收到时被标记为 Premium 的包将映射到 EuroBank 的服务类别 Mission-Critical Interactive，而不管它们被服务提供商标记为合约内还是合约外数据流。有些包超出了服务提供商实施的控制合约速率，但并不意味着这些包对于EuroBank的重要性更低些。

程序清单6.8 从服务提供商到EuroBank的DSCP映射策略

因为服务提供商只支持三种服务类别，所以来自支行的数据流将被映射到EuroBank的9种服务类别中的三种。

EuroBank考虑了对所有从服务提供商收到的数据流执行高细度的分类（而不仅仅基于收到的DSCP值）。它需要能够将数据流分类到所有服务类别（而不仅仅是其中的三种）。然而，EuroBank 最终由于多种原因没有采用这种方法。首先，它可能影响性能，因为它将应用于从该国家所有支行收到的所有数据流。其次，由于某些原因，如在支行中当前没有使用多播和视频会议，所有支行可能只运行EuroBank服务类别的一部分。最后，按语音、关键任务和默认数据流的粗略分类可以满足基本的QoS需求。

按EuroBank的DSCP方案完成包的DSCP标记后，将按EuroBank网络内部应用的QoS策略处理它们。

2．前往向支行的数据流

本节考虑通过服务提供商受管理路由器服务从 EuroBank 核心传输到支行的数据流。

在这种情况下，包首先由 EuroBank 分类和标记。因此，最初按 EuroBank的DSCP方案标记其DSCP值，并在通过EuroBank网络时得到相应的处理。

为让包通过服务提供商网络时得到适当的处理，EuroBank 在其出口 PE 路由器上应用出口策略。它按服务提供商的DSCP方案重标记包的DSCP值，如程序清单 6.9所示。该出口策略也是在面向EuroBank第3层MPLS VPN网络的链路上应用的三队列QoS策略。

程序清单6.9 从EuroBank到服务提供商的DSCP映射策略

对于前往支行的数据流，DSCP映射策略的应用点以及端到端QoS处理涉及的后续QoS步骤，如图6.27所示。

图6.27 跨越服务提供商网络前往支行的数据流的端到端QoS

服务提供商PE路由器收到有适当DSCP标记的包后，按服务提供商的三种服务类别方案进行相应的处理。这包括服务提供商PE路由器对包执行相应的调度，将它们调度到面向支行的接入链路。

最后，包由 CE 路由器转发到支行 LAN。因为在支行 LAN 内部没有使用QoS机制，所以传输的包使用的是服务提供商方案的DSCP值还是EuroBank方案的DSCP值无关紧要。如果EuroBank要在支行内部应用QoS策略，可采用某种方法，让服务提供商CE路由器将DSCP值映射回EuroBank DSCP值（这与EuroBank PE路由器对于从服务提供商传输到EuroBank核心的数据流执行的DSCP映射非常类似，如程序清单6.8所示）。

6.6 EuroBank网络的设计教训

从EuroBank网络设计中可以获得许多经验教训。

• 对于有诸如集成多个单独的网络、隔离各个子公司、选择性地与共享资源通信、重叠地址范围和数据中心合并等需求的企业网络，可通过在内部网中部署第 3层MPLS VPN技术，非常高效地解决这些问题。

• 在具有更高性价比的地方，可使用服务提供商的第 3层MPLS VPN服务来连接某些场所。它们可以与企业的第 3层MPLS VPN服务无缝地集成到一起。

• Multi-VRF CE路由器的概念可用于将多VPN的覆盖范围扩展到未运行MPLS的场所。

• 如果在企业中需要使用加密，可结合使用 IPSec与第 3层MPLS VPN服务，提供到VPN的安全连接。

• VoIP电话服务，不管是由企业自身维护还是由 TSP代表企业管理，提供了跨VPN的全互联语音连接。它们使用支持VPN的防火墙（FW）/NAT技术（包括语音特定ALG），在不影响VPN隔离的条件下完成这种任务。这些语音服务还通过优化语音路由以尽可能少用 PSTN，显著地节省了网外呼叫的费用。

• 第3层MPLS VPN是TSP的一种关键支持技术，让TSP能够安全地隔离所有的电话服务客户，同时让它们能够访问共享资源（如网关）。这支持前往和来自PSTN的网外呼叫。

• 第3层MPLS VPN提供了一种非常灵活的方式，让VPN能够访问专用服务器，同时让多个VPN能够访问共享服务器运行的应用。

• 灵活的QoS方法可以用来满足大量不同的应用需求，这些应用可能分别使用企业网络中高度拥塞、适度拥塞和完全不拥塞的链路。例如，可以定义许多种服务类别（本章的程序清单定义了九种），然后可根据链路类型将这些类别归入数量较少的队列（在本章中，低于 100 Mbit/s的链路为六个队列，超过 100 Mbit/s链路的为三个队列，而吉比特链路只有一个队列）。

• 使用简单的路由设计可以在几秒（本章为5秒）内处理路由器和未保护链路的失效。

• 通过使用诸如HSRP和GLBP等协议，可以在路由器失效时几秒内实现动态重路由和主机—POP 数据流的负载均衡。在有些情况下，如EuroBank 网络中的办事处，这些协议需要支持 VRF。也就是说，它们必须能够在VRF上下文中运行。

附录A 参考文献

在本书许多地方引用了其他资源。提供参考文献旨在帮助有兴趣的读者更深入地了解某个主题。这些参考文献用方括号表示，如[L2VPN]。可以参阅本附录以得到关于该资源的特定信息。

[2547bis] Rosen, E. et al.“BGP/MPLS IP VPNs.” draftietf-l3vpn-rfc2547bis-03. Work in progress.

[6PE] De Clercq, et al.“Connecting IPv6 Islands Over IPv4 MPLS Using IPv6 Provider Edge Routers (6PE).” draft-ooms-v6ops-bgp-tunnel. Work in progress.

[6VPE] De Clercq, et al.“BGP-MPLS VPN Extension for IPv6 VPN.” draftietf-l3vpnbgp-ipv6. Work in progress.

[ADDR-ARCH] Hinden, et al. “IP Version 6 (IPv6) Addressing Architecture.”

[AF] Heinanen, J. et al.“Assured Forwarding PHB Group.” RFC 2597.

[AUTO-CONF] Thomson, S. et al.“IPv6 Stateless Address Autoconfiguration.” draftietf-ipv6-rfc2462bis. Work in progress.

[AUTO-MESH] “MPLS Traffic Engineering Auto-tunnel mesh-group.” www.cisco.com.

[AUTOROUTE]“MPLS Traffic Engineering Autoroute.” www.cisco.com.

[BFD]“Bidirectional Forwarding Detection.”http://www.ietf.org/html.charters/bfdcharter.html.

[BGP-IPv6] Marques, P. and F. Dupont. Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. RFC 2545.

[BGP+Label] Rehkter, Y. and E. Rosen. Carrying Label Information in BGP-4. RFC 3107.

[DHCP-IPv6] Droms, R. et al. Dynamic Host Configuration Protocol for IPv6 (DHCPv6). RFC 3315.

[DIFF-ARCH] Blake, S. et al. An Architecture for Differentiated Services. RFC 2475.

[DIFF-TERM] Grossman, D. New Terminology and Clarifications for Diffserv. RFC 3260.

[DLSw] Wells, L. and A. Bartky. Data Link Switching: Switch-to-Switch Protocol AIW DLSw RIG: DLSw Closed Pages, DLSw Standard Version 1.0. RFC 1795.

[DS-FIELD] Nichols, K. et al. Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers. RFC 2474.

[DSTE-MAM] Le Faucheur et al.“Maximum Allocation Bandwidth Constraints Model for DiffServ-aware MPLS Traffic Engineering.” draftietf-tewg-diff-te-mam. Work in progress.

[DSTE-MAR] Ash.“Max Allocation with Reservation Bandwidth Constraints Model for DiffServ-aware MPLS Traffic Engineering & Performance Comparisons.” draftietf-tewg-diffte- mar. Work in progress.

[DSTE-PROTO] Le Faucheur et al. “Protocol Extensions for Support of Differentiated-Service-aware MPLS Traffic Engineering.” draftietf-tewg-diff-te-proto. Work in progress.

[DSTE-RDM] Le Faucheur et al.“Russian Dolls Bandwidth Constraints Model for DiffServ-aware MPLS Traffic Engineering.” draftietf-tewg-diff-te-russian. Work in progress.

[DSTE-REQ] Le Faucheur, F. et al. Requirements for Support of Differentiated Servicesaware MPLS Traffic Engineering. RFC 3564.

[ECN] Ramakrishnan, K. et al. The Addition of Explicit Congestion Notification (ECN) to IP. RFC 3168.

[EF] Davie, B. et al. An Expedited Forwarding PHB (Per-Hop Behavior). RFC 3246.

[EXTCOM] Tappan, D. et al. “BGP Extended Communities Attribute.” draftietf-idr-bgpext-communities-07. Work in progress.

[FRF.12] Frame Relay Fragmentation Implementation Agreement—FRF.12. Editor A. Malis. Frame Relay Forum Technical Committee. December 1997.

[FRR] Pan, P. et al. “Fast Reroute Techniques in RSVP-TE.” draftietf-mpls-rsvp- lspfastreroute. Work in progress.

[G114]“One-way Transmission Time.” ITU-T Recommendation G.114.

[GMPLS] Berger, L. Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions. RFC 3473.

[GRE] Hanks, S. et al. Generic Routing Encapsulation (GRE). RFC 1701.

[H323] “Packet-Based Multimedia Communications Systems.” H.323. International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T).

[IF-MIB] McCloghrie, K. et al. The Interfaces Group MIB. RFC 2863.

[INT-SERV] Braden, R., D. Clark, and S. Shenker. Integrated Services in the Internet Architecture: an Overview. RFC 1633.

[INTER-AREA-AS] Vasseur et al. draftvasseur-ccamp-inter-domain-path-comp.

[INTERAS-TE-REQS] Zhang, R., J. Vasseur, et al. “MPLS InterAS Traffic Engineering Requirements.” draftietf-tewg-interas-mpls-te-req. Work in progress.

[INTER-DOMAIN-PATH-COMP] Vasseur, J. and A. Ayyangar. “Inter-domain Traffic Engineering LSP Path Computation Methods.” draftvasseur-ccamp-inter-domain-path-comp. Work in progress.

[INTER-DOMAIN-SIG] Ayyangar, A. and J. Vasseur. “ Inter-domain MPLS Traffic Engineering-RSVP Extensions.” draft-ayyangar-ccamp-inter-domain-rsvp-te. Work in progress.

[IPPM-DELVAR] Demichelis, C. and P. Chimento. IP Packet Delay Variation Metric for IP Performance Metrics (IPPM). RFC 3393.

[IPPM-LOSS] Almes, G. et al. A One-way Packet Loss Metric for IPPM. RFC 2680.

[IPPM-OWDELAY] Almes, G., S. Kalidindi, and M. Zekauskas. A One-way Delay Metric for IPPM. RFC 2679.

[IPPM-RTDELAY] Almes, G., S. Kalidindi, and M. Zekauskas. A Round-trip Delay Metric for IPPM. RFC 2681.

[IPSEC-ARCH] Kent, S. and R. Atkinson. Security Architecture for the Internet Protocol. RFC 2401.

[IPv6] Deering, S. and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. RFC 2460.

[IPv6-DEPLOY] Popoviciu, Ciprian, Eric Levy-Abegnoli, and Ole Troan. Deploying IPv6 Networks. Cisco Press. ISBN 1587052105.

[IPv6-DISC] Narten, T., E. Nordmark, W. Simpson. Neighbor Discovery for IP Version 6 (IPv6). RFC 2461.

[IPV6RIR] APNIC, ARIN, RIPE NCC. IPv6 Address Allocation and Assignment Policy. Document ID: ripe-267. www.ripe.net/ripe/docs/ipv6policy.html [ISIS] ISO. “Intermediate system to Intermediate system routing information exchange protocol for use in conjunction with the Protocol for providing the Connectionless-mode Network Service (ISO 8473).” ISO/IEC 10589:1992.

[ISIS-CAPS] Vasseur et al. “IS-IS extensions for advertising router information.” draftvasseur-isis-caps. Work in progress.

[ISIS-GMPLS] Kompella, K., Y. Rekhter, et al.“IS-IS Extensions in Support of Generalized Multi-Protocol Label Switching.” draftietf-isis-gmpls-extensions. Work in progress.

[ISIS-TE] Smit, H. and T. Li. Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE). RFC 3784.

[ISIS-TE-CAPS] Vasseur, Le Roux, et al.“IS-IS MPLS Traffic Engineering Capabilities.” draftvasseur-isis-te-caps. Work in progress.

[ISIS-V6] Hopps.“Routing IPv6 with IS-IS.” draftietf-isis-ipv6. Work in progress.

[ISP-security] Greene, Barry Raveendran and Philip Smith. Cisco ISP Essentials. Cisco Press. ISBN 1587050412.

[L2TPv3] Townsley, M et al.“BGP/MPLS IP VPNs over Layer 2 Tunneling Protocol ver 3.” draft-townsley-l3vpn-l2tpv3. Work in progress.

[L2VPN] Rosen, E et al.“Framework for Layer 2 Virtual Private Networks (L2VPNs).” draftietf-l2vpn-l2-framework. Work in progress.

[LDP]“LDP Specification.” draftietf-mpls-rfc3036bis. Work in progress.

[local-scope] Meyer, D. Administratively Scoped IP Multicast. RFC 2365.

[LOOSE-PATH-REOPT] Vasseur, Ikejiri, and Zhang. “Reoptimization of an Explicit Loosely Routed MPLS TE Path.” draftietf-ccamp-loose-path-reopt. Work in progress.

[LSPPING] Kompella, K. et al. “ Detecting MPLS Data Plane Failures.” draftietf-mpls-lspping. Work in progress.

[MDT-SAFI] Nalawade, G. et al. “MDT SAFI.” draft-nalawade-idr-mdt-safi. Work in&nbsp;progress.

[MEGACO] Groves, C. et al. Gateway Control Protocol Version 1. RFC 3525.

[MGCP] Arango, M. et al. Media Gateway Control Protocol (MGCP) Version 1.0. RFC 2705.

[MLPPP] Sklower, K. et al. The PPP Multilink Protocol (MP). RFC 1990.

[MP-BGP] Bates, T. et al. Multiprotocol Extensions for BGP-4. RFC 2283.

[MPLS-DIFF] Le Faucheur, F. et al. Multi-Protocol Label Switching (MPLS) Support of Differentiated Services. RFC 3270.

[MPLS-MGT] Nadeau, Thomas D. “MPLS Network Management MIBs, Tools, and Techniques.” Morgan Kaufmann, 2002.

[MPLS-Security] Behringer, M. “Analysis of the Security of BGP/MPLS IP VPNs.” draftbehringer-mpls-security. Work in progress.

[MPLS-STACK] Rosen, E. et al. MPLS Label Stack Encoding. RFC 3032.

[MPLS-TE] Osborne, Eric and Ajay Simha. Traffic Engineering with MPLS. Cisco Press. ISBN 1587050315.

[MPLS-VPN-Vol1] Pepelnjak, Ivan and Jim Guichard. MPLS and VPN Architectures, CCIP Edition. Cisco Press. ISBN 1587050811.

[MPLS-VPN-Vol2] Pepelnjak, Ivan, Jim Guichard, and Jeff Apcar. MPLS and VPN Architectures, Volume II. Cisco Press. ISBN 1587051125.

[mVPN] Rosen, E. Et al.“Multicast in MPLS/BGP IP VPNs.” draft-rosen-vpn-mcast. Work in progress.

[NBAR]“Network-Based Application Recognition.” www.cisco.com/warp/public/732/Tech/qos/behavioral/traffic.

[NET-RECOV] Vasseur, Jean-Philippe, Mario Pickavet, and Piet Demeester. Network Recovery: Protection and Restoration of Optical, SONET-SDH, IP, and MPLS. Morgan Kaufmann. ISBN 012715051X.

[OSPF-CAPS] Lindem et al. “Extensions to OSPF for Advertising Optional Router Capabilities.” draftietf-ospf-cap-04.txt. Work in progress.

[OSPF-GMPLS] Kompella, K., Y. Rekhter et al. “OSPF Extensions in Support of Generalized Multi-Protocol Label Switching.” draftietf-ccamp-ospf-gmpls-extensions. Work in&nbsp;progress.

[OSPF-IPv6] Coltun, R., D. Ferguson, and J. Moy. OSPF for IPv6. RFC 2740.

[OSPF-TE] Katz, D., K. Kompella, and D. Yeung. Traffic Engineering (TE) Extensions to OSPF Version 2. RFC 3630.

[OSPF-TE-CAPS] Vasseur et al. “OSPF MPLS Traffic Engineering Capabilities.” draftvasseur-ospf-te-caps. Work in progress.

[OSPFv2] Moy, J. OSPF Version 2. RFC 2328.

[PMTU] Mogul, J. and S. Deering. Path MTU Discovery. RFC 1191.

[PREEMPT] De Oliveira et al.“LSP Preemption Policies for MPLS Traffic Engineering.” draft-deoliveira-diff-te-preemption. Work in progress.

[PRIVATE] Rehkter, Y. et al. Address Allocation for Private Internets. RFC 1918. [pwe3-atm] Martini, L. et al. “Encapsulation Methods for Transport of ATM Over MPLS Networks.” draftietf-pwe3-atm-encap. Work in progress.

[PWE3-CELL-TRANSPORT] Martini, L. et al.“PWE3 ATM Transparent Cell Transport Service.” draftietf-pwe3-cell-transport. Work in progress.

[pwe3-cp] Martini, L. et al. “Pseudowire Setup and Maintenance Using LDP.” draft-ietfpwe3- control-protocol-10. Work in progress.

[pwe3-eth] Martini, L. et al.“Encapsulation Methods for Transport of Ethernet Frames Over IP/MPLS Networks.” draftietf-pwe3-ethernet-encap. Work in progress.

[pwe3-fr] Martini, L. et al.“Frame Relay Over Pseudo-Wires.” draftietf-pwe3-frame-relay. Work in progress.

[pwe3-req] Xiao, X. et al. Requirements for Pseudo-Wire Emulation Edge-to-Edge (PWE3). RFC 3916.

[pwe3-sonet] Malis, A. et al. “SONET/SDH Circuit Emulation Over Packet (CEP).” draftietf-pwe3-sonet. Work in progress.

[QoS-CONF] Cisco IOS Quality of Service Solutions Configuration Guide. A vailable on www.cisco.com.

[QoS-REF] Cisco IOS Quality of Service Solutions Command Reference. Available on www.cisco.com.

[QUEUING1] Gross, Donald and Carl M. Harris. Fundamentals of Queueing Theory, Third Edition. Wiley-Interscience. ISBN 0471170836.

[QUEUING2] Kleinrock, Leonard and Richard Gail. Queueing Systems: Problems and Solutions. Wiley-Interscience. ISBN 0471555681.

[RED] Floyd, S., and V. Jacobson. “Random Early Detection Gateways for Congestion Avoidance.” IEEE/ACM Transactions on Networking, Vol. 1, No. 4, August 1993, pp. 397-413.

[REFRESH-REDUCTION] Berger, L. et al. RSVP Refresh Overhead Reduction Extensions. RFC 2961.

[RIP-IPv6] Malkin, G. and R. Minnear. RIPng for IPv6. RFC 2080.

[Route-filter] Chen, E. and Y. Rekhter.“Cooperative Route Filtering Capability for BGP-4.” draftietf-idr-route-filter. Work in progress.

[RSVP] Braden, R. et al. Resource ReSerVation Protocol (RSVP)—Version 1 Functional Specification. RFC 2205.

[RSVP-TE] Awduche, D. et al. RSVP-TE: Extensions to RSVP for LSP Tunnels. RFC 3209.

[rtconstrain] Marques, P. et al. “ Constrained VPN Route Distribution. ” draftietf-l3vpn-rtconstrain. Work in progress.

[RTP] Schulzrinne, H. et al. RTP: A Transport Protocol for Real-Time Applications. RFC 3550.

[SCCP]“Skinny Client Control Protocol.” See Cisco CallManager System Guide, Release 4.0(1)—Understanding IP Telephony Protocols. www.cisco.com/en/US/products/sw/voicesw/ps556/products_administration_guide_chapter09186a00801ec5cc.html [SECOND-METRIC] Le Faucheur, F. et al. Use of Interior Gateway Protocol (IGP) Metric as a Second MPLS Traffic Engineering (TE) Metric. RFC 3785.

[SIP] Rosenberg, J. et al. SIP: Session Initiation Protocol. RFC 3261.

[SLA] Filsfil and Evans.“Deploying Diffserv at the Network Edge for Tight SLAs.”

Part 1: Internet Computing, IEEE, January/February 2004, Vol. 8, No. 1

Part 2: Internet Computing, IEEE, March/April 2004, Vol. 8, No. 2

[SS7] “ Introduction to CCITT Signalling System No. 7.” Q.700. International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T).

[TRAFFIC1] Bonald et al.“Statistical Performance Guarantees for Streaming Flows Using Expedited Forwarding.”

[TRAFFIC2] Yao et al.“Diffserv on High Speed Links.”

[TRAFFIC3] Bennett et al.“Delay Jitter Bounds and Packet Scale Rate Guarantee for Expedited Forwarding.”

[TRAFFIC4] Telkamp et al.“Internet Traffic Is Not Self-Similar at Timescales Relevant to QoS.”

[UNIQ-LOCAL] Hinden et al.“Unique Local IPv6 Unicast Addresses.” draftietf-ipv6-unique-local-addr. Work in progress.

[VPLS] Lasserre, M., V. Kompella, et al.“Virtual Private LAN Services Over MPLS.” draftietf-l2vpn-vpls-ldp. Work in progress.

[XOT] Forster, J. et al. Cisco Systems X.25 over TCP (XOT). RFC 1613. www.ietf.org/rfc/rfc1613.txt.

图书在版编目（CIP）数据

MPLS网络设计权威指南/(美)吉查德（Guichard,J.）,(美)福切尔（Faucheur,F.L.）,(美)塞尔（Vasseur,J.）著；陈武译.--北京：人民邮电出版社,2012.6

ISBN　978-7-115-27830-2

Ⅰ.①M…　Ⅱ.①吉…②福…③塞…④陈…　Ⅲ.①宽带综合业务数字网－网络设计　Ⅳ.①TN915.142

中国版本图书馆CIP数据核字（2012）第046908号

版权声明

Jim Guichard, François Le Faucheur, Jean-Philippe Vasseur: Definitive MPLS Network Designs (ISBN: 1587051869) Copyright© 2005 Cisco Systems, Inc.

Authorized translation from the English language edition published by Cisco Press.

All rights reserved.

本书中文简体字版由美国Cisco Press授权人民邮电出版社出版。未经出版者书面许可，对本书任何部分不得以任何方式复制或抄袭。

版权所有，侵权必究。

MPLS网络设计权威指南

◆著　[美]Jim Guichard, CCIE#2069　François Le Faucheur　Jean-Philippe Vasseur 译　陈武

责任编辑　傅道坤

◆人民邮电出版社出版发行　　北京市崇文区夕照寺街14号

邮编　100061　　电子邮件　315@ptpress.com.cn 网址　http://www.ptpress.com.cn 大厂聚鑫印刷有限责任公司印刷

◆开本：800×1000　1/16

印张：30.25

字数：622千字　　2012年6月第1版

印数：1–3000册　　2012年6月河北第1次印刷

著作权合同登记号　图字：01-2012-2889号

ISBN　978-7-115-27830-2

定价：79.00元

读者服务热线：(010)67132705　印装质量热线：(010)67129223

反盗版热线：(010)67171154

广告经营许可证：京崇工商广字第0021号