错误!未知的文档属性名称
特性描述 VPN
错误!未定义样式。
目 录
VPN
IP VPN、MPLS与MPLS VPN
目 录
目 录
1-11 VPN简介
VPN概述
VPN的产生
VPN的特征
VPN的优势
VPN分类
按组网模型
按业务用途
按实现层次
按运营模式
VPN基本原理
隧道技术
VPN体系结构
VPN实现模式
VPN的实现
VPN典型网络结构
VPN的实现要点
参考资料清单
2-142 VPN隧道
概述
基本概念
隧道协议分类
具体的隧道技术
隧道管理
隧道管理概述
隧道策略
参考资料清单
3-213 L2TP
L2TP协议概述
VPDN简介
L2TP协议背景
L2TP基本概念
L2TP协议特点
L2TP协议原理
L2TP协议结构
L2TP报文头
L2TP数据报文结构
控制连接和会话连接的建立过程
隧道验证过程
L2TP隧道会话的建立过程
LNS对用户的认证方式
L2TP隧道交换
L2TP应用
两种典型的L2TP隧道模式
采用L2TP接入三层VPN
L2TP与MP配合使用
Multi-Hop L2TP
L2TP复杂组网
参考资料清单
4-424 GRE
简介
GRE协议概述
GRE报文头
GRE的特点
GRE的实现
隧道接口
报文在GRE中的传输过程
封装
解封装
GRE的安全机制
GRE的弱安全机制
Keepalive检测
与IPSec的配合
GRE应用
多协议的本地网可以通过单一协议的骨干网传输
扩大跳数受限的网络工作范围
将不连续的子网连接起来,用于组建VPN
CE采用GRE隧道接入MPLS VPN
与IPSec结合,保护组播数据
参考资料清单
5-555 MPLS LDP
MPLS LDP简介
MPLS LDP的引入
MPLS LDP的基本概念
MPLS LDP的特性
LDP的工作过程
LDP基本操作
发现阶段
会话建立与维护
LSP建立与维护
会话撤销
LDP使用的定时器
CR-LDP信令建立路径的过程
CR-LDP概述
CR-LDP如何建立LSP隧道
MPLS LDP的高级特性
快速重路由
LDP 环路检测
策略路由到LSP
MPLS基本术语
参考资料清单
6-666 BGP/MPLS IP VPN
BGP/MPLS IP VPN简介
BGP/MPLS IP VPN概述
基本概念
BGP/MPLS IP VPN基本原理
MP-BGP
PE上的VPN路由选择
VPNv4路由发布
应用于BGP/MPLS IP VPN的隧道
MP-BGP标签分配
基本BGP/MPLS IP VPN的路由发布
基本BGP/MPLS IP VPN报文转发
BGP的AS号替换
VPN路由反射器
VPN QoS
BGP/MPLS IP VPN基本组网
Intranet
Extranet
Hub&Spoke
跨域VPN
概述
跨域VPN-OptionA方式
跨域VPN-OptionB方式
跨域VPN-OptionC方式
跨域VPN的其他方案
运营商的运营商
概述
二级运营商是普通ISP
二级运营商是BGP/MPLS IP VPN ISP
多角色主机
技术背景
实现原理
HoVPN
为什么需要HoVPN
HoVPN的实现
HoVPN的典型组网
HoVPN的优势
OSPF VPN扩展
基本概念
PE上的OSPF多实例
Sham link
Multi-VPN-Instance CE
VPN与Internet互联
概述
在PE侧实现
在Internet网关侧实现
在用户侧实现
三种方法的比较
参考资料清单
7-1467 MPLS L2VPN
MPLS L2VPN简介
MPLS L2VPN的引入
MPLS L2VPN的基本概念
MPLS L2VPN的优势
MPLS L2VPN的基本架构
MPLS L2VPN的分类
MPLS L2VPN VPWS简介
MPLS L2VPN VPWS的实现方式
VPWS实现方式概述
CCC方式MPLS L2VPN
SVC方式MPLS L2VPN
Martini方式MPLS L2VPN
Kompella方式MPLS L2VPN
MPLS L2VPN VPWS几种实现方式比较
MPLS L2VPN与BGP/MPLS VPN比较
MPLS L2VPN VPWS的跨域问题
MPLS L2VPN异种介质互通
MPLS L2VPN异种介质互通概述
不同链路层协议的处理
参考资料清单
8-1798 VPLS
简介
VPLS的引入
VPLS的基本概念
VPLS的转发模型
VPLS的特性
VPLS的基本架构
VPLS的实现方式
VPLS实现概述
VPLS基本传输构件
MAC地址学习与泛洪
VPLS的环路避免
对端PE发现与PW信令协议
报文的封装与接入
AC上的报文封装
PW上的报文封装
VPLS报文及封装示意图
VPLS的接入方式
封装方式与接入方式的关系
用户数据在网络中的处理
HVPLS
HVPLS的产生
HVPLS的基本原理
HVPLS实现方式
多域VPLS服务
VPLS的可靠性
CE接入的可靠性
PW接入的可靠性
PE间链路的保护
VPLS的应用
综合组网
VPLS组网要点
参考资料清单
9-2179 PWE3
PWE3简介
PWE3概述
PWE3的基本概念
PWE3与L2VPN的关系
控制层面的扩展
数据平面的扩展
PWE3的分类
静态PW和动态PW
单跳PW和多跳PW
PWE3的信令
使用LDP信令的PW
使用RSVP信令的PW
PWE3中的报文转发
PWE3实现中的关键技术
动静混和多跳组网
PW保护
控制字
VCCV-PING
PW模板
异种介质互连
其他特性
ATM信元透传技术
ATM信元透传技术的引入
ATM信元透传的基本概念
ATM信元透传的实现概述
基于端口方式的ATM信元透传
1-to-1 VCC方式的ATM信元透传
N-to-1 VCC方式的ATM信元透传
1-to-1 VPC方式的ATM信元透传
N-to-1 VPC方式的ATM信元透传
ATM AAL5 SDU/PDU VCC帧透传
ATM信元透传的封装方式
VPI/VCI映射
PWE3的跨域技术
跨域技术产生的原因
Inter-AS PWE3-OptionA
PWE3多跳跨域
Inter-AS PWE3-Option C
PWE3的典型应用
参考资料清单
10-26710 MPLS TE
MPLS TE简介
MPLS TE的引入
MPLS TE的基本架构
MPLS TE的基本概念
MPLS TE的特性
TEDB的建立
概述
使用OSPF-TE收集网络信息
流量工程数据库
路径的计算
路径计算概述
SPF的计算过程
CSPF的计算过程
CSPF与SPF的区别
RSVP-TE信令建立路径的过程
RSVP-TE信令概述
扩展RSVP如何建立LSP隧道
Make-Before-Break
软状态刷新
CR-LDP信令建立路径的过程
CR-LDP概述
CR-LDP如何建立LSP隧道
MPLS TE的高级特性
快速重路由
自动带宽调节
重优化
隧道备份
在TE隧道上承载LDP
概述
IGP Shortcut
MPLS TE上的QoS
概述
MPLS TE与QoS
MPLS TE的应用
负载分担
VoIP
VLL
资源隔离VPN
MPLS TE术语
参考资料清单
11-29811 MPLS OAM
MPLS OAM简介
OAM
MPLS OAM
MPLS OAM基本概念
MPLS OAM报文格式
公共属性
CV报文
FFD报文
FDI报文
BDI报文
MPLS OAM检测功能
缺陷检测
缺陷类型
检测过程
反向通道
MPLS OAM保护倒换
保护倒换与重路由
保护倒换的工作模式
MPLS OAM在VRP中的实现
模块位置
OAM自动协议
MPLS OAM应用
上报网络故障
分层OAM
全程LSP检测
参考资料清单
插图目录
1-5图1-1 VPDN举例
表格目录
1-8表1-1 L2VPN与L3VPN的对比
1-9表1-2 CPE-based VPN与Network-based VPN的对比
1 VPN简介
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref142477602 \h
\* MERGEFORMAT VPN概述
介绍VPN的产生、特征及其优势
REF _Ref142477623 \h
\* MERGEFORMAT VPN分类
介绍VPN从各个角度的分类
REF _Ref142477636 \h
\* MERGEFORMAT VPN基本原理
介绍VPN的基本实现机制、体系结构和实现模式
REF _Ref145342271 \h
\* MERGEFORMAT VPN的实现
介绍VPN的典型组网结构和组建VPN需要考虑的几个要素
参考资料清单
RFC参考文档
VPN概述
本节介绍如下内容:
· VPN的产生
· VPN的特征
· VPN的优势
VPN的产生
网络经济的发展
随着社会的发展,IT技术越来越多地影响现代企业的业务流程,如企业资源规划、基于IP的语音、基于网络的会议和教学活动等IT技术,为企业的自动化办公和信息的获取提供了构架。随着网络经济的发展,越来越多的企业的分布范围日益扩大,合作伙伴日益增多,公司员工的移动性也不断增加。这使得企业迫切需要借助电信运营商网络连接企业总部和分支机构,组成自己的企业网,同时移动办公人员能在企业以外的地方很方便地访问企业内部网络。
传统专网的缺陷
最初,电信运营商是以租赁专线(Leased Line)的方式为企业提供二层链路,这种方式的主要缺点是:
· 建设时间长
· 价格昂贵
· 难于管理
此后,随着ATM(Asynchronous Transfer Mode)和帧中继(Frame Relay)技术的兴起,电信运营商转而使用虚电路方式为客户提供点到点的二层连接,客户再在其上建立自己的三层网络以承载IP等数据流。虚电路方式与租赁专线相比,运营商提供服务的时间短、价格低,能在不同专网之间共享运营商的网络结构。这种传统专网的不足在于:
· 依赖于专用的介质(如ATM或FR):为提供基于ATM的VPN服务,运营商需要建立覆盖全部服务范围的ATM网络;为提供基于FR的VPN服务,又需要建立覆盖全部服务范围的FR网络。在网络建设上造成浪费。
· 其速率较慢,达不到当前Internet中已实现的速率。
· 部署复杂,尤其是向已有的私有网络加入新的站点时,需要同时修改所有接入此站点的边缘节点的配置。
VPN的引入
传统专网的应用,促使了企业的效益日益增长,但传统专网难以满足企业对网络的灵活性、安全性、经济性、扩展性等方面的要求。这导致了新的替代方案的产生,在现有IP网络上模拟传统专网。这种新的解决方案就是虚拟专用网VPN(Virtual Private Network)。
VPN是依靠Internet服务提供商ISP(Internet Service Provider)和网络服务提供商NSP(Network Service Provider),在公共网络中建立的虚拟专用通信网络。
VPN的特征
VPN具有以下两个基本特征:
· 专用(Private):对于VPN用户,使用VPN与使用传统专网没有区别。一方面,VPN与底层承载网络之间保持资源独立,即,一般情况下,VPN资源不被网络中其它VPN或非该VPN用户所使用;另一方面,VPN提供足够的安全保证,确保VPN内部信息不受外部侵扰。
· 虚拟(Virtual):VPN用户内部的通信是通过一个公共网络进行的,而这个公共网络同时也被其他非VPN用户使用。即,VPN用户获得的是一个逻辑意义上的专网。这个公共网络称为VPN骨干网(VPN Backbone)。
采用VPN的专用和虚拟的特征,可以把现有的IP网络分解成逻辑上隔离的网络。这种逻辑隔离的网络的应用可以是千变万化的:可以用在解决企业内部互连、政府的相同或不同办事部门的互连;也可以用来提供新的业务,如为IP电话业务专门开辟一个VPN,以此解决IP网络地址不足、QoS保证、以及开展新业务等问题。
在解决企业互连和提供各种新业务方面,VPN,尤其是MPLS(Multiprotocol Label Switching)VPN,越来越被运营商看好,成为运营商在IP网络提供增值业务的重要手段。
VPN的优势
和传统的数据专网相比,从客户角度看,VPN具有如下优势:
· 安全:在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性。这对于实现电子商务或金融网络与通讯网络的融合特别重要。
· 廉价:利用公共网络进行信息通讯,企业可以以更低的成本连接远程办事机构、出差人员和业务伙伴。
· 支持移动业务:支持驻外VPN用户在任何时间、任何地点的移动接入,能够满足不断增长的移动业务需求。
· 服务质量保证:构建具有服务质量保证的VPN(如MPLS VPN),可为VPN用户提供不同等级的服务质量保证。
从运营商角度看,VPN具有如下优势:
· 可运营:提高网络资源利用率,有助于增加ISP的收益。
· 灵活:通过软件配置就可以增加、删除VPN用户,无需改动硬件设施。在应用上具有很大灵活性。
· 多业务:SP在提供VPN互连的基础上,可以承揽网络外包、业务外包、客户化专业服务的多业务经营。
VPN以其独具特色的优势赢得了越来越多的企业的青睐,使企业可以较少地关注网络的运行与维护,从而更多地致力于企业的商业目标的实现。另外,运营商可以只管理、运行一个网络,并在一个网络上同时提供多种服务,如Best-effort IP服务、VPN、流量工程、差分服务(Diffserv),从而减少运营商的建设、维护和运行费用。
VPN在保证网络的安全性、可靠性、可管理性的同时提供更强的扩展性和灵活性。在全球任何一个角落,只要能够接入到Internet,即可开展VPN。
VPN分类
随着网络技术的发展,VPN技术得到了广泛的应用,同时也得到了很大的发展,涌现了许多VPN新技术。按照不同的角度,VPN可以分为多种类型。具体分类角度包括:
· 按组网模型
· 按业务用途
· 按实现层次
· 按运营模式
按组网模型
根据组网模型的不同,VPN可以分为:
· VPDN(Virtual Private Dial Network)
· VPRN(Virtual Private Routing Network)
· VPWS(Virtual Leased Line Service)
· VPLS(Virtual Private LAN Service)
VPDN
VPDN利用公共网络的拨号功能及接入网,为企业、小型ISP和移动办公人员提供接入服务。
VPDN也可以使用私有IP地址等VPN所特有的一些特性,接入范围可遍及PSTN(Public Switched Telephone Network)、ISDN(Integrated Services Digital Network)的覆盖区域,网络建设投资少、周期短,网络运行费用低。
主要采用点到点的连接方式。通过L2TP(Layer 2 Tunneling Protocol)、PPTP(Point-to Point Tunneling Protocol)等协议实现。
图1-1是VPDN的例子。远程用户(如企业驻外机构或出差人员)可以通过ISDN或PSTN网络接入Internet,并在网络接入服务器和企业网关之间虚拟隧道,从而接入到企业内部。
图1-1 VPDN举例
VPDN具有比其他类型的VPN更加灵活的身份验证机制和网络计费方式,以及高度的安全性,并支持动态地址分配。此外,VPDN采用二层隧道,能支持多种三层传输协议。
关于VPDN的详细介绍请参见“L2TP协议”。
VPRN
VPRN是总部、分支机构和远端办公室之间通过网络管理虚拟路由器互连。VPRN与其他类型的VPN相比,其主要区别在于VPRN数据包的转发是在网络层实现的。公网的每个VPN节点需要为每个VPN建立专用路由转发表,包含网络层可达性信息。数据流在公网的VPN节点之间的转发以及VPN节点和用户站点之间的转发都是基于这些专用路由转发表。
VPRN的实现方式包括两种:一是使用传统VPN协议,如IPSec(Internet Protocol SECurity extensions)、GRE(Generic Routing Encapsulation)等,另一种是使用MPLS。
· 关于IPSec协议的详细介绍请参见《VRP 特性描述 安全》的“IPSec协议”;
· 关于GRE协议的详细介绍请参见“GRE协议”。
· 关于使用MPLS的VPRN的详细介绍请参见“BGP/MPLS IP VPN”。
VPWS
VPWS(Virtual Private Wire Service)是对传统租用线业务的仿真,使用IP网络模拟租用线,提供非对称、低成本的“DDN(Digital Data Network)”业务。从虚拟租用线两端的用户来看,该虚拟租用线近似于传统的租用线。
VPWS也兼容传统专网(如ATM、FR),运营商可以从ATM、FR等传统专网向VPWS平滑升级。
VPWS作为一种虚拟租用线路的实现方法,主要是在接入层和汇聚层使用。VPWS又分为CCC(Circuit Cross-Connect)、SVC(Static Virtual Circuit)、Martini和Kompella等方式。PWE3也是一种端到端的二层业务承载技术,是对Martini方式VPWS的一种扩展。
· 关于VPWS的详细介绍请参见“MPLS L2VPN”。
· 关于PWE3的详细介绍请参见“PWE3”。
VPWS模型适合星型连接的VPN,对于需要全连接的VPN,推荐采用VPRN。
VPLS
虚拟专用局域网业务VPLS是局域网之间通过虚拟专用网段互连,是局域网在IP公共网络上的延伸。
VPLS也称为透明局域网服务TLS(Transparent LAN Service)。不同于普通L2VPN的点到点业务,利用VPLS技术,服务提供商可以通过MPLS骨干网向用户提供基于以太网的多点业务。
以太网技术由于其灵活的VLAN逻辑接口定义,高带宽/成本比等优势,越来越广泛地被使用。
VPRN和VPWS也能提供局域网服务,但传统以太网技术的局限性依然存在:
· 无法限制未知MAC的广播泛滥。
· 生成树协议STP(Spanning Tree Protocol)扩展受限。
· VLAN地址空间有限。
突破传统以太网技术的限制,VPLS骨干网不需要运行STP,而是使用全连接和水平分割来消除骨干网的环路。对于单播或多播不可知帧,可采取丢弃、本地处理和广播的处理方式。因此,VPLS将实现VLAN的范围扩展至全国各地,甚至世界各地。尤其是Q-in-Q()方式的VPLS,不受VLAN地址空间的限制,更加扩大了VPLS的地域范围。
按业务用途
根据业务用途不同,VPN可分为三种:
· 企业内部虚拟专网Intranet VPN
· 扩展的企业内部虚拟专网Extranet VPN
· 远程访问虚拟专网Access VPN
Intranet VPN
Intranet VPN通过公用网络进行企业内部的互联,是传统专网或其它企业网的扩展或替代形式。
使用Intranet VPN,企事业机构的总部、分支机构、办事处或移动办公人员可以通过公有网络组成企业内部网络。VPN也用来构建银行、政府等机构的Intranet。
典型的Intranet例子就是连锁超市、仓储物流公司、加油站等具有连锁性质的机构。
Extranet VPN
Extranet利用VPN将企业网延伸至供应商、合作伙伴与客户处,在具有共同利益的不同企业间通过公网构筑VPN,使部分资源能够在不同VPN用户间共享。
在传统的专线构建方式下,Extranet通过专线互联实现,需要维护网络管理与访问控制,甚至还需要在用户侧安装兼容的网络设备。虽然可以通过拨号方式构建Extranet,但此时需要为不同的Extranet用户进行设置,同样降低不了复杂度。因合作伙伴与客户的分布广泛,拨号方式的Extranet需要昂贵的建设与维护费用。因此,企业常常放弃构建Extranet,使得企业间的商业交易程序复杂化,商业效率被迫降低。
Extranet VPN以其易于构建和管理为以上问题提供了有效的解决方案,其实现技术与Intranet VPN相同。目前,企业间通常使用VPN来构建Extranet。为了保证QoS,企业外部通讯一般不直接使用Internet。并且,企业间的通讯数据通常是敏感的,而Extranet的安全性比Internet强。Extranet VPN的访问权限可以由各个Extranet用户自己通过防火墙等手段来设置与管理。
Access VPN
Access VPN使出差流动员工、家庭办公人员和远程小办公室可以通过廉价的拨号介质接入企业内部服务器,与企业的Intranet和Extranet建立私有网络连接。Access VPN也叫做VPDN。
Access VPN有两种类型:一种是用户发起(Client-initiated)的VPN连接,另一种是接入服务器发起(NAS-initiated)的VPN连接。
按实现层次
根据实现层次的不同,VPN可分为L3VPN(Layer 3 VPN)、L2VPN(Layer 2 VPN)和VPDN。
L3VPN
也就是VPRN。包括多种类型,例如IPSec VPN、GRE VPN、基于RFC2547的BGP/MPLS VPN、以IPSec或GRE作为隧道的BGP/MPLS VPN。其中MPLS/BGP VPN主要应用在主干转发层,IPSec VPN、GRE VPN在接入层被普遍采用。
L2VPN
随着网络技术的发展,运营商网络越来越复杂,迫切希望出现新的技术,将传统的交换网(如ATM、FR)与IP或MPLS网络融合。L2VPN因此而诞生。
L2VPN包括前述的VPWS和VPLS。VPWS适合较大的企业通过WAN互连,而VPLS适合小企业通过城域网互连。VPLS中存在广播风暴问题,同时,PE设备要进行私网设备的MAC(Medium Access Control)地址学习,协议、存储开销大。
由于二层VPN只使用SP网络的二层链路,从而为支持三层多协议创造条件,L3VPN也能支持多协议,但不如L2VPN灵活,有一定限制。
VPDN
严格来说,VPDN也属于二层VPN,但其网络构成和协议设计与其他L2VPN有很大不同。在对IP报文进行封装时,VPDN方式需要封装多次,第一次封装使用隧道协议L2TP,第二次封装使用UDP(User Datagram Protocol)。
L2VPN与L3VPN的对比
L2VPN与L3VPN的对比如表1-1。
表1-1 L2VPN与L3VPN的对比
项目
L2VPN
L3PN
安全性
高
低
对三层协议的支持情况
相对灵活
有限制
用户网络对骨干网的影响
小
大
对传统WAN的兼容性
大
小
路由管理
用户管理自己的路由
用户路由交由SP管理
组网应用
主要用在接入层和汇聚层
主要用在核心层
按运营模式
根据运营模式的不同,VPN可分为由用户控制的CPE-based VPN(Customer Premises Equipment based VPN)、由ISP控制的Network-based VPN两种。
CPE-based VPN
在CPE-based VPN模式下,由用户控制VPN的构建、管理和维护。用户设备需要安装相关的VPN隧道协议,如IPSec、GRE、L2TP和PPTP,并负责VPN的维护。
CPE-based VPN中,依靠用户侧的网络设备发起VPN连接,不需要运营商提供特殊的支持就可以实现VPN。
CPE-based VPN方式复杂度高、业务扩展能力弱,主要应用于接入层。
传统的利用公有IP网络构建的VPN(传统IP VPN)属于CPE-based VPN。其实质是在各个私有路由器之间建立VPN安全隧道来传输用户的私有数据。Internet是典型的公有IP网络。使用Internet构建的VPN是最为经济的方式,但服务质量难以保证。企业在规划IP VPN建设时应根据自身的需求对各种公用IP网络进行权衡。
Network-based VPN
在Network-based VPN模式下,VPN的构建、管理和维护由ISP控制,允许用户在一定程度上进行业务管理和控制。功能特性集中在网络侧设备处实现,用户网络设备只需要支持网络互联,无需特殊的VPN功能。
Network-based VPN方式可以降低用户投资、增加业务灵活性和扩展性,也为运营商带来新的收益。
基于MPLS的VPN属于Network-based VPN。MPLS VPN由于在灵活性、扩展性和QoS方面的优势,逐渐成为最主要的IP-VPN技术,在电信运营网和企业网中都获得了广泛的应用。MPLS VPN主要运用于骨干核心网及汇聚层,是对大客户互连及3G、NGN等业务系统进行隔离的重要技术。MPLS VPN对于城域网同样重要:城域网内部署MPLS VPN技术,成为提升IP城域网的价值、为运营商提供更高收益的重要技术。
MPLS VPN中,客户站点可以使用T1,帧中继,ATM虚电路,DSL等链路接入MPLS VPN骨干网。并不需要在客户设备上进行特殊配置。
CPE-based VPN与Network-based VPN的比较
CPE-based VPN与Network-based VPN的对比如表1-2。
表1-2 CPE-based VPN与Network-based VPN的对比
项目
CPE-based VPN
Network-based VPN
业务扩展能力
业务扩展能力弱
业务扩展能力强
用户投资
多
少
用户设备支持隧道情况
需要支持
无需支持
性能要求
功能特性集中于CE设备,对CE设备要求高
功能特性集中于PE设备,对PE设备要求高
将CPE-based VPN和Network-based VPN无缝集成,可以给用户提供更可靠、更安全、更丰富的VPN业务。
VPN基本原理
本节介绍如下内容:
· 隧道技术
· VPN体系结构
· VPN实现模式
隧道技术
VPN的基本原理是利用隧道技术,把VPN报文封装在隧道中,利用VPN骨干网建立专用数据传输通道,实现报文的透明传输。
隧道技术使用一种协议封装另外一种协议报文,而封装协议本身也可以被其他封装协议所封装或承载。对用户来说,隧道是其PSTN/ISDN链路的逻辑延伸,在使用上与实际物理链路相同。
VPN隧道需要完成的功能包括:
· 封装用户数据
· 实现隧道两端的连通性
· 定时检测VPN隧道的连通性
· VPN隧道的安全性
· VPN隧道的QoS特性
隧道技术的详细介绍请参见“VPN隧道”。
VPN体系结构
VPN不是一种简单的高层业务。VPN技术比普通的点到点应用复杂得多。VPN的实现需要建立用户之间的网络互联,包括建立VPN内部的网络拓扑、进行路由计算、维护成员的加入与退出等。因此,VPN体系结构较复杂,可以概括为以下三个组成部分:
· VPN隧道:包括隧道的建立和管理。
· VPN管理:包括VPN配置管理、VPN成员管理、VPN属性管理(管理服务提供商边缘设备PE上多个VPN的属性,区分不同的VPN地址空间)、VPN自动配置(指在二层VPN中,收到对端链路信息后,建立VPN内部链路之间一一对应的关系)。
· VPN信令协议:完成VPN中各用户网络边缘设备间VPN资源信息的交换和共享(对于L2VPN,需要交换数据链路信息;对于L3VPN,需要交换路由信息;对于VPDN,需要交换单条数据链路直连信息),以及在某些应用中完成VPN的成员发现。
VPN实现模式
结合VPN体系结构的三个主要组成部分,可以将VPN的实现分成两种模式:
隧道+VPN管理
这类VPN的构成简单:
· VPN两端建立隧道。
· VPN管理负责隧道的建立和删除、部署VPN网管和计费、QoS等策略。
传统IP VPN采用这种实现方式,如IPSec VPN和GRE VPN。
隧道+VPN管理+VPN信令协议
这类VPN需要进行:
· VPN两端建立隧道。
· VPN管理:包括VPN配置管理、VPN成员管理、VPN属性管理和VPN自动配置。
· VPN信令协议:完成VPN中各用户网络边缘设备间VPN资源信息的交换和共享。
采用这种实现方式的VPN包括Martini方式的VPWS、PWE3、Martini方式的VPLS以及VPDN。
实例化
这类VPN要求在二层、三层中为每个VPN进行实例化,构建本VPN私有转发信息实例。VPN不仅管理隧道,还包括VPN成员发现、VPN成员管理、VPN自动配置等。
采用这种实现方式的VPN包括基于RFC2547的L3VPN,和基于Kompella的L2VPN(包括Kompella方式的VPLS和Kompella方式的VPWS)。
本章只是简单介绍VPN的实现原理。详细的内容请参见本手册相应特性的描述:
· L2VPN的详细实现原理介绍请参见“MPLS L2VPN”。
· L3VPN的详细实现原理介绍请参见“BGP/MPLS IP VPN”。
VPN的实现
本节介绍如下内容:
· VPN典型网络结构
· VPN的实现要点
VPN典型网络结构
典型的VPN组网分为三级结构:接入层、汇聚层和骨干层。
· 接入层的设备为用户提供接入功能,功能要求较低,但要求接入接口较多。对于大城市中的城域网,接入层要求的功能比较高。接入层的设备一般要求在接入节点处进行CE双(多)归属,物理双归属和逻辑双归属。物理双归属是指有两条物理链路连接,逻辑双归属是指通过环路来进行双归属。逻辑双归属在L2VPN和VPLS中用得较多。
· 汇聚层根据需要组成网状网,或者环状网。
· 骨干层要求全连接,多极备份。骨干层各设备一般使用高速接口互连。
VPN的实现要点
部署VPN时,需要考虑以下几个方面:
· 可运营
· 可管理
· VPN的安全性
· VPN QoS
可运营
VPN技术的一个重要本质是使用共享网络提供企业内部之间的服务。根据VPN目前的使用前景可以看出,VPN技术必须具有可运营性。大多VPN用户(企业)不希望在网络维护上花很多时间和精力,需要由专门的运营商提供这样的服务。因此,在设计VPN网络的时候,首先需要考虑可运营性。
可管理
VPN要求企业将其网络管理功能从局域网无缝地延伸到公用网络,甚至是客户和合作伙伴。企业可以将一些次要的网络管理任务交给服务提供商,企业自己也要完成许多网络管理任务。所以,一个完善的VPN管理系统是必不可少的。
VPN管理主要包括安全管理、设备管理、配置管理、ACL管理、QoS管理。
VPN管理的目的:
· 减小网络风险:将企业内部网络延伸到公用网络基础设施上,VPN面临着新的安全与监控的挑战。网络管理需要在允许企业分支、客户和合作伙伴对VPN访问的同时,确保内部数据资源的完整性。
· 扩展性:VPN管理需要对日益增多的客户和合作伙伴做出迅捷的反应,包括网络硬、软件的升级、网络质量保证、安全策略维护等。
· 经济性:保证扩展性的同时不应过多地增加操作和维护成本。
· 可靠性:VPN构建于公用网之上,不同于传统的专线广域网,其受控性大大降低。因此VPN可靠而稳定地运行是VPN管理必须考虑的问题。
VPN的安全性
VPN直接构建在公用网上,实现简单、方便、灵活,但同时其安全问题也更为突出。
· 对于传统的IP VPN,企业自身必需确保VPN数据不被攻击者窥视和篡改,并且要防止非法用户对企业内部资源或私有信息的访问。尤其是Extranet VPN,对安全性提出了更高的要求。
以下方案可以提高VPN的安全性:
· 隧道与加密:隧道能实现多协议封装,增加VPN应用的灵活性,可以在无连接的IP网上提供点到点的逻辑通道。在安全性要求更高的场合应用加密隧道则进一步保护了数据的私有性,使数据在网上传送而不被非法窥视与篡改。
· 数据验证:在不安全的网络上,特别是构建VPN的公用网上,数据包有可能被非法截获,篡改后重新发送,接收方将会接收到错误的数据。数据验证使接收方可以识别这种篡改,保证了数据的完整性。
· 用户验证:VPN可使合法用户访问他们所需的企业资源,同时还要禁止未授权用户的非法访问。通过AAA,路由器可以提供用户验证、访问级别以及必要的访问记录等功能。这一点对于Access VPN和Extranet VPN具有重要意义。
· 防火墙与攻击检测:防火墙用于过滤数据包,防止非法访问,而攻击检测则更进一步分析数据包的内容,确定其合法性,并可实时应用安全策略,断开包含非法访问内容的会话链接,并产生非法访问记录。
关于加密、数据验证、用户验证、防火墙和攻击检测的相关介绍请参见《VRP 特性描述 安全》。
· 基于MPLS的VPN技术在网络侧依靠转发表和数据包的标记来创建VPN,如果一个封闭的MPLS网络不与Internet相连,那么它具有内在的安全性。因此,MPLS VPN可以在一定程度上保证VPN的安全。
如果MPLS VPN的客户需要访问Internet,可以建立一个通道,在该通道上放置一个防火墙,这样就对整个VPN提供安全的连接。管理起来也很容易,因为对于整个VPN来说,只需要维护一种安全策略。
MPLS VPN可以创建一个同FR网络具备的安全性很相似的专用网。因此用户设备一般不需要使用IPSec等安全技术,也不必为VPN配置隧道。因此,使用MPLS VPN,时延被降到最低,因为数据包不再经过封装或者加密。也因为不需要隧道,创建一个全网状的VPN网也将变得更加容易。
VPN QoS
构建VPN的另一重要需求是充分有效地利用有限的广域网资源,为重要数据提供可靠的带宽。广域网流量的不确定性使其带宽的利用率很低,在流量高峰时引起网络阻塞,产生网络瓶颈,使实时性要求高的数据得不到及时发送;而在流量低谷时又造成大量的网络带宽空闲。
VPN QoS通过流量预测与流量控制策略,可以按照优先级分配带宽资源,实现带宽管理,使得各类数据能够被合理地先后发送,并预防阻塞的发生。
关于VPN QOS的详细介绍请参见《VRP 特性描述 QoS》。
参考资料清单
如果您想了解更多关于VPN基本概念的信息,请参考以下文档。
文档编号
描述
RFC2764
A Framework for IP Based Virtual Private Networks
RFC2917
A Core MPLS IP VPN Architecture
RFC4026
Provider Provisioned Virtual Private Network (VPN) Terminology
2 VPN隧道
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref145393453 \h
\* MERGEFORMAT 概述
介绍隧道基本概念及各种隧道协议
REF _Ref145393461 \h
\* MERGEFORMAT 具体的隧道技术
介绍各种类型的隧道
REF _Ref145393467 \h
\* MERGEFORMAT 隧道管理
介绍统一管理各种隧道的机制
参考资料清单
列举与各种隧道相关的RFC参考文档
概述
本节介绍如下内容:
· 基本概念
· 隧道协议分类
基本概念
隧道
隧道的功能就是在两个网络节点之间提供一条通路,使数据报能够在这个通路上透明传输。VPN隧道一般是指在PSN(Packet Switched Network)骨干网的VPN节点(一般指边缘设备PE)之间建立的用来传输VPN数据的虚拟连接。本手册提到的VPN的实现都必须使用隧道。隧道是构建VPN不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个上。
隧道协议
隧道通过隧道协议实现。目前已存在不少隧道协议,如GRE(Generic Routing Encapsulation)、L2TP(Layer 2 Tunneling Protocol)等。
隧道协议通过在隧道的一端给数据加上隧道协议头,即进行封装,使这些被封装的数据能都在某网络中传输;并在隧道的另一端去掉该数据携带的隧道协议头,即进行解封装。报文在隧道中传输前后都要通过封装和解封装两个过程。
隧道协议分类
根据实现隧道的层次,隧道协议分为第二层隧道协议和第三层隧道协议。
第二层隧道协议
第二层隧道协议将整个数据帧封装在隧道中。主要包括:
· 点到点隧道协议PPTP(Point-to-Point Tunneling Protocol):由微软、Ascend和3COM等公司支持,在WindowsNT 以上版本中提供。该协议支持PPP在IP网络上的隧道封装。PPTP作为呼叫控制和管理协议,使用一种增强的GRE技术为传输的PPP报文提供流量控制和拥塞控制。
· 二层转发协议L2F(Layer 2 Forwarding):支持对更高级协议链路层的隧道封装,实现拨号服务器和拨号协议连接在物理位置上的分离。
· 二层隧道协议L2TP(Layer 2 Tunneling Protocol):结合上述两个协议的优点,既可用于拨号VPN业务,也可用于专线VPN业务。
第三层隧道协议
第三层隧道协议构建的隧道内只携带第三层报文。现有的第三层隧道协议主要包括:
· 通用路由封装协议GRE(Generic Routing Encapsulation):实现任意一种网络协议在另一种网络协议上的封装。
· IPSec(IP Security):IPSec不是一个单独的协议,它给出了IP网络上数据安全的一整套体系结构,包括AH(Authentication Header)、ESP(Encapsulating Security Payload)、IKE(Internet Key Exchange)等协议。
GRE和IPSec主要用于实现专线VPN业务。
第二、三层隧道协议的比较
第三层隧道与第二层隧道相比,优势在于它的安全性、可扩展性与可靠性。
从安全性的角度看,第二层隧道一般终止在用户侧设备上,对用户网的安全及防火墙技术要求很高;而第三层隧道一般终止在ISP网关,通常不会对用户网的安全提出较高要求。
从可扩展性的角度看,第二层隧道内封装了整个PPP帧,可能产生传输效率问题;PPP会话贯穿整个隧道并终止在用户侧设备上,导致用户侧网关需要保存大量PPP会话状态与信息,对系统负荷产生较大的影响,也影响到系统的扩展性;此外,由于PPP的LCP及NCP协商对时间敏感,隧道效率降低会造成PPP会话超时等问题。而第三层隧道终止在ISP的网关内,PPP会话终止在NAS处,用户侧网关无需管理和维护每个PPP会话的状态,从而减轻了系统负荷。
多数情况下,第二层隧道协议和第三层隧道协议都是独立使用的。如果合理地将这两层协议结合起来,将可能为用户提供更好的安全性和更佳的性能,例如将L2TP和IPSec协议配合使用。
具体的隧道技术
根据所使用的隧道协议类型,隧道可以分为多种类型:
· LSP
在MPLS网络中,边缘路由器对报文打上MPLS标签,网络内部路由器根据标签对报文进行转发。标签报文所经过的路径称为标签交换路径LSP(Label Switched Path)。
RFC2547中使用的隧道类型为LSP。如果核心网只提供纯IP功能,而网络边缘的PE路由器具备MPLS功能,可以通过GRE或IPSec替代LSP,在核心网提供三层或二层VPN解决方案。
本手册介绍的VPN实现基本上是基于MPLS网络,使用LSP隧道。LSP的详细介绍请参见《VRP 特性描述 MPLS》。
· GRE隧道
GRE隧道使用GRE协议封装原始数据报文,基于公共IP网络实现数据的透明传输。
GRE隧道不能配置二层信息,但可以配置IP地址。利用为隧道指定的实际物理接口完成转发。转发过程可以简单描述如下:
· 所有去往远端VPN的报文先发送到隧道(Tunnel)源端。
· 在Tunnel源端进行GRE封装,填写Tunnel建立时确定的隧道源地址和目的地址。
· 通过公共IP网络发送到隧道目的端。
· 在隧道目的端GRE解封装,根据普通IP转发流程将报文转发到远端VPN网络。
目前的GRE隧道方案存在以下弊端:
· 组网及配置复杂。GRE隧道技术采用的是点到点的隧道方案,当接入点数量为N,需要建立一个全连接的VPN时,整个网络需要手工配置N×(N-1)÷2个点到点的连接。
· 可维护性及可扩展性差。对于一个已经组建好的VPN网络,若需要增加节点或修改某个节点的配置,那么其他所有节点都必须针对这个节点修改本地配置,维护成本较高。
· 无法穿透NAT(Network Address Translation)网关。采用GRE方式建立隧道,如果出口有NAT网关,那么需要一个公网地址对应一个私网地址来解决,需要大量的公网IP地址,这导致了GRE不能应用于NAT网关内部。
关于GRE的详细介绍请参见“GRE协议”。
· IPSec隧道
IPSec是IETF制定的一个框架协议,用于保证在Internet上传送数据的安全保密性。
IPSec提供传输模式和隧道模式两种操作模式,隧道模式的封装过程为:
· 首先为需要通信的两个私有网络地址定义一个IP流,流的建立可以使用IP层以上某个协议的端口;
· 定义IPSec隧道的源和目的地址信息,这个源和目的地址是公网信息;
· 配置缺省路由,下一跳指向IPSec隧道源地址所在链路的对端地址。
在进行VPN通信时,所有去往对端VPN的报文在出接口进行IPSec封装,到对端解封装,然后再进行转发。
关于IPSec隧道的详细介绍请参见《VRP 特性描述 安全》的“IPSec”。
· L2TP
L2TP有v2和v3两个版本,VRP提供对L2TPv2的支持,其封装形式如图2-1所示。
图2-2 L2TPv2的报文封装形式
L2TPv2支持PPP方式的二层封装,通过UDP承载。
L2TPv2应用于VPDN,只要实现L2TP就可以完成VPDN的功能。L2TP隧道支持拥塞控制和隧道端点验证。
关于L2TP的详细介绍请参见“L2TP协议”。
各种类型隧道也可以混合使用,如建立GRE隧道时使用IPSec安全机制可以提高数据的安全性;在L2TP隧道两端建立IPSec安全机制可以保证VPDN的安全性。
隧道管理
本节介绍如下内容:
· 隧道管理概述
· 隧道策略
隧道管理概述
根据所使用协议不同,隧道包括多种类型,不同类型隧道的建立和管理不尽相同。例如,GRE隧道、MPLS TE隧道、以及各种IPv6隧道的建立和管理通过Tunnel接口来进行,而LSP的建立和管理则不需要Tunnel接口。
隧道管理TNLM(Tunnel Management)是为管理隧道而设立的一个模块,是将隧道的状态通报给使用隧道的应用程序,并根据目的IP地址查询隧道及隧道上配置的策略。TNML为L3VPN、L2VPN、RM、BGP等上层应用提供统一的接口。
TNLM为了将使用隧道接口的隧道(如GRE)与不使用隧道接口的隧道(如LSP)统一管理,为每条隧道分配唯一的Tunnel ID,用于标识该隧道。
注意Tunnel ID与Token的区别:
· Token只是一个查找隧道的索引号,属于Tunnel ID的一部分。
· Tunnel ID包括Token、出口槽号、隧道类型及定位方法的相关信息。
隧道管理模块根据隧道策略为各种应用程序选择合适的隧道。如果没有配置隧道策略,隧道管理模块将根据缺省策略寻找隧道。
隧道策略
隧道策略(Tunnel Policy)是指用于根据目的IP地址选择隧道。隧道策略有两种:顺序选择(Select-seq)方式和VPN隧道绑定(Tunnel Binding)方式。
Select-seq方式
顺序性选择的隧道策略可以配置选择隧道的顺序及负载分担的条数。
对于顺序选择的隧道策略,到同一目的端,排列在前的隧道只要是Up的就会被选中,不管它是否已经被其他业务选中;排列在后的一般不会被选中,除非要求负载均衡或者排在前面的隧道都处于Down状态。
Tunnel Binding方式
顺序选择的隧道策略难以保证VPN业务QoS等特性的需求,因此产生了隧道绑定策略。隧道绑定是指在VPN骨干网的PE设备上将VPN的对端与某条MPLS TE隧道相关联。
例如图2-2,PE1和PE3之间建立了两条MPLS TE隧道(Tunnel1和Tunnel2)。
图2-3 VPN隧道绑定组网图
如果配置VPN隧道绑定,将VPN A与Tunnel1绑定,将VPN B与Tunnel2绑定,那么VPN A和VPN B分别使用专用的TE隧道,从而可以保证VPN A与VPN B的带宽需求,使VPN A业务和VPN B业务不受其他业务干扰,VPN A业务和VPN B业务也互不干扰。
VPN隧道绑定的特点:
· VPN到对端的数据固定地从专用的TE隧道传输。
· 被绑定的TE隧道只承载指定的VPN业务,不再承载其他VPN业务,以保证该VPN业务的QoS。
· 规划网络资源,建立不同QoS特性的MPLS TE隧道,然后通过手工配置,可以人为限定每个TE隧道能承载哪些VPN业务。因此可以充分利用网络资源,一定程度避免网络资源的浪费。
Tunnel接口和隧道策略在具体组网中的应用,请参见手册中相应特性的描述:
· GRE隧道的详细内容,请参见“GRE协议”;
· CR-LSP隧道的详细内容,请参见《VRP 特性描述 MPLS》的“MPLS TE”;
· IPv6隧道的详细内容,请参见《VRP 特性描述 IP业务》。
参考资料清单
如果您想了解更多关于VPN隧道的信息,请参考以下文档。
文档编号
描述
RFC1701
Generic Routing Encapsulation (GRE)
RFC1702
Generic Routing Encapsulation over IPv4 networks
RFC2341
Cisco Layer Two Forwarding (Protocol) "L2F"
RFC2637
Point-to-Point Tunneling Protocol (PPTP)
RFC2661
Layer Two Tunneling Protocol "L2TP"
RFC2784
Generic Routing Encapsulation (GRE)
RFC3031
Multiprotocol Label Switching Architecture
RFC3056
Connection of IPv6 Domains via IPv4 Clouds
RFC3209
Extensions to RSVP for LSP Tunnels (RSVP-TE)
RFC3214
LSP Modification Using CR-LDP
draft-ietf-ngtrans-bgp-tunnel-04
Connecting IPv6 Islands across IPv4 Clouds with BGP
draft-raggarwa-ppvpn-tunnel-encap-sig-03
Signaling Tunnel Encapsulation/Deencapsulation Capabilities
3 L2TP
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref145314408 \h
\* MERGEFORMAT L2TP协议概述
介绍VPDN及L2TP的特征及相关的概念
REF _Ref145314418 \h
\* MERGEFORMAT L2TP协议原理
介绍L2TP的实现原理及建立过程
REF _Ref145314428 \h
\* MERGEFORMAT L2TP应用
介绍应用L2TP的几种典型组网
REF _Ref145314436 \h
\* MERGEFORMAT 参考资料清单
列举与L2TP相关的参考文档
L2TP协议概述
本节介绍如下内容:
· VPDN简介
· L2TP协议背景
· L2TP基本概念
· L2TP协议特点
L2TP属于VPDN隧道协议的一种。为了更好的理解L2TP,下面先简单介绍VPDN。
VPDN简介
概述
VPDN(Virtual Private Dial Network)是指利用公共网络(如ISDN和PSTN)的拨号功能及接入网来实现虚拟专用网,为企业、小型ISP、移动办公人员提供接入服务。
VPDN采用专用的网络加密通信协议,在公共网络上为企业建立安全的虚拟专网。企业驻外机构和出差人员可从远程经由公共网络,通过虚拟加密隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。
VPDN隧道协议有多种,目前使用最广泛的是L2TP。
VPDN实现方式
VPDN有下列两种实现方式:
· NAS(Network Access Server)通过隧道协议与VPDN网关建立通道
NAS把客户的PPP连接续传到企业的网关,目前可使用的协议有L2F(请参见RFC2341)与L2TP。
其优势在于:对用户透明,用户只需要登录一次就可以接入企业网络,由企业网进行用户认证和地址分配,不占用公共地址,用户可使用各种平台上网。
这种方式需要NAS支持VPDN协议,需要认证系统支持VPDN属性,网关一般使用路由器或VPN专用服务器。
图3-1为NAS与企业网关构建立L2TP的VPDN服务典型组网图。
图3-4 NAS与企业网关构建立L2TP
· 客户机与VPDN网关建立隧道
客户机先建立与Internet的连接,获得访问Internet的权限后,再通过专用的客户软件(如Win2000支持的L2TP客户端)与网关建立通道连接,如图3-2所示。
图3-5 客户机与VPDN网关建立L2TP
其优势在于:用户上网的方式和地点没有限制,不需ISP介入。用户可根据自己对传送信息安全性的需求进行选用。当用户需要高级别的安全性时,用户可以在链路层工作的L2TP协议基础上,在网络层上再使用IPSec协议。
缺点是:用户需要安装专用的软件,限制了用户使用的平台。
L2TP协议背景
PPP协议定义了一种封装技术,可以在二层点到点链路上传输多种协议数据包,这时,用户与NAS之间运行PPP,二层链路端点与PPP会话点在相同硬件设备上。
L2TP协议提供了对PPP链路层数据包的隧道(Tunnel)传输支持,允许二层链路端点和PPP会话点驻留在不同设备上,并采用包交换技术进行信息交互,从而扩展了PPP模型。
L2TP功能可以简单描述为在非点对点的网络上建立点对点的PPP会话连接。L2TP协议结合了L2F协议和PPTP协议的优点,成为IETF有关二层隧道协议的工业标准。
关于L2TP的详细介绍,可以参考RFC2661(Layer Two Tunneling Protocol "L2TP")。
L2TP基本概念
用户
L2TP组网模型中,用户是需要登录私网的设备(如PC)。VPDN用户的特征是接入的方式和地点不固定。用户可以通过PSTN或ISDN网络与LAC(LAC的概念将在下文介绍)连接,或者接入Internet,直接与总部服务器建立连接。
用户是发起PPP协商的端设备。用户既是PPP二层链路一端又是PPP会话的一端。
从LNS和LAC角度看,有三类用户:
· 使用VPN服务号码的用户
每个申请VPN服务的公司都分别配一个VPN号码,缺点是浪费号码资源
· 域名接入用户
· 全名接入用户
LAC
L2TP访问集中器LAC(L2TP Access Concentrator)是交换网络上有PPP端系统和L2TP处理能力的设备,一般是本地ISP的接入设备,如网络接入服务器NAS,通过PSTN/ISDN网络为用户提供接入服务。
LAC通过L2TP遂道及PPP会话与其他数据流相互隔离。LAC不只为特定的某个VPN服务,还可以为多个VPN服务。
LAC位于L2TP网络服务器LNS(L2TP Network Server)和远端系统(远程用户和远程分支机构)之间,如图3-3。
图3-6 使用L2TP构建的VPDN模型
LAC在LNS和远端系统之间传递数据:把从远端系统收到的数据进行L2TP封装并送往LNS;将从LNS收到的数据进行解封装并送往远端系统。
LAC与远端系统间可采用本地连接或PPP链路,VPDN应用中通常使用PPP链路。LAC是直接接受用户呼叫的一端,也是PPP二层链路一端。NAS可以和用户合并为一个LAC端点,也可以单独作为LAC端点。
LNS
LNS是接受PPP会话的一端,通过LNS验证,用户就可以登录到私网上,访问私网资源。同时,LNS作为L2TP隧道的另一侧端点,是LAC的对端设备,是通过LAC进行隧道传输的PPP会话的逻辑终止端点。
LNS位于私网与公网边界,通常是企业网关设备。网关实施网络接入功能及LNS功能。必要时,LNS还兼有网络地址转换(NAT)功能,对企业总部网络内的专用IP地址与IP网公用IP地址进行转换。LNS可以放在企业总部网络内,也可以是IP公共网络的PE(用户把LNS功能的维护交给ISP)。
控制消息和数据消息
L2TP中存在两种消息:
· 控制消息:也称为隧道连接,用于隧道和会话连接的建立、维护和拆除,以及传输控制。在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证L2TP层传输的可靠性,支持对控制消息的流量控制和拥塞控制。
· 数据消息:用于封装PPP帧并在隧道上传输。采用不可靠传输,即,不重传丢失的数据报文,不支持对数据消息的流量控制和拥塞控制。
AVP
控制消息中的参数统一使用属性值对AVP(Attribute Value Pair)来表示,使得协议具有很好互操作性和可扩展性。控制消息包含多个AVP。
控制连接和会话连接
L2TP是面向连接的,在一个LNS和LAC对之间存在两种类型的连接:
· 控制(Control)连接:定义一个LNS和LAC对,控制隧道和会话的建立、维护和拆除。控制连接的建立过程包括身份保护、L2TP版本、帧类型、硬件传输类型等信息的交换。
· 会话(Session)连接:复用在隧道连接之上,表示承载在控制连接中的一个PPP会话过程。
同一对LAC和LNS之间可以建立多个L2TP隧道,隧道由一个控制连接和一个或多个会话连接组成。会话连接必须在控制连接建立成功后进行,每个会话连接对应LAC和LNS之间的一个PPP数据流。
控制消息和数据消息(PPP报文)都在隧道上传输。
在VRP中,允许建立的L2TP隧道数目和可接入的会话数与具体使用的产品相关,且可接入的最大会话数由License决定。如果需要购买License,请联系华为公司技术支持工程师或代理商。
L2TP协议特点
L2TP协议的优势
L2TP协议具有以下优势:
· 灵活的身份验证机制以及高度的安全性
· L2TP本身并不保证连接的安全性,但它可利用PPP提供的认证机制(如CHAP、PAP),因此具有PPP的所有安全特性。
· L2TP可以与IPSec结合,使通过L2TP所传输的数据更难被攻击。
· 可根据特定的网络安全要求,在L2TP之上采用通道加密技术、端对端数据加密或应用层数据加密等方案来提高安全性。
· 多协议传输
L2TP传输PPP数据包,PPP本身可以传输多协议,而不仅仅是IP。可以在PPP数据包内封装多种协议,甚至运载链路层协议(如Ethernet)。
· 支持RADIUS服务器的验证
LAC端支持将用户名和密码发往RADIUS服务器进行验证申请,由RADIUS服务器负责接收用户的验证请求,完成验证。
· 支持内部地址分配
LNS可放置于企业网的防火墙之后,对远端用户地址进行动态分配和管理,并支持私有地址应用(RFC1918,Address Allocation for Private Internets)。
· 网络计费的灵活性
可在LAC和LNS同时计费,即ISP处(用于产生帐单)及企业网关(用于付费及审计)。L2TP能够提供数据传输的出入包数、字节数以及连接的起始、结束时间等计费数据,可根据这些数据方便地进行网络计费。
· 可靠性
L2TP协议支持备份LNS,当一个主LNS不可达之后,LAC可以与备份LNS建立连接,增强了VPN服务的可靠性和容错性。
L2TP协议的不足
L2TP协议存在以下不足:
· L2TP隧道内封装了整个PPP帧,在L2TP封装后还要进行UDP头和IP头的封装,开销很大,可能产生传输效率问题。
· PPP会话贯穿整个隧道并终止在用户侧设备上,导致用户侧网关需要保存大量PPP会话状态与信息,对系统负荷产生较大的影响,也影响到系统的扩展性。
· 由于PPP的LCP及NCP协商对时间敏感,隧道效率降低会造成PPP对话超时等问题。
L2TP协议原理
本节介绍如下内容:
· L2TP协议结构
· L2TP报文头
· L2TP数据报文结构
· 控制连接和会话连接的建立过程
· 隧道验证过程
· L2TP隧道会话的建立过程
· LNS对用户的认证方式
· L2TP隧道交换
L2TP协议结构
图3-7 L2TP协议结构
图3-4描述了PPP帧和控制通道以及数据通道之间的关系:PPP帧在不可靠的L2TP数据通道内传输,控制消息在可靠的L2TP控制通道内传输。
L2TP数据报文和控制报文全部以UDP报文形式发送。数据消息不重发,不能保证可靠性;控制消息使用流控和重发机制,能保证可靠传输。L2TP注册了UDP端口1701,这个端口号仅用于初始隧道建立过程。L2TP隧道发起方任选一个空闲端口(未必是1701)向接收方的1701端口发送报文;接收方收到报文后,也任选一个空闲端口(未必是1701),给发送方的指定端口回送报文。至此,双方的端口选定,并在隧道连通的时间内不再改变。
L2TP报文头
L2TP的控制消息和数据消息使用相同的报文头。
图3-8 L2TP报文头格式
L2TP报文头中标记为可选(opt)的字段,是指在数据消息中可选,在控制消息中则是必选的。
表3-3 L2TP报文头字段描述
字段名
含义
取值要求
T
类型(Type),取值为“0”时表示数据消息,取值为“1”时表示控制消息
-
L
长度在位标志,取值为“1”时表示报文头中存在长度字段Length
控制消息中必须为“1”
x
保留位
-
S
顺序字段在位标志,取值为“1”时表示报文头中存在Ns和Nr字段
控制消息中必须为“1”
O
取值为“1”时表示报文头中存在offset size字段
控制消息中必须为“0”
P
优先级(Priority),只用于数据消息
控制消息中必须为“0”
Ver
版本号
对于L2TPv2协议取值为“2”
Length
消息的总长度,单位为字节
-
Tunnel ID
隧道标识符,只具有本地意义
Hello控制消息具有全局性,其Tunnel ID必须为0。
Session ID
会话标识符,只具有本地意义
-
Ns
当前消息的顺序号
-
Nr
希望接收的下一条控制消息的顺序号
数据消息中是保留字段
offset size
偏移值,指示载荷数据开始的位置
-
offset padding
填充位
-
L2TP报文头中包含隧道标识符(Tunnel ID)和会话标识符(Session ID)信息,隧道标识符与会话标识符由对端分配,用来标识不同的隧道和会话。隧道标识相同、会话标识不同的报文将被复用在一条隧道上。
L2TP数据报文结构
用户PPP报文(已携带源IP报文头及PPP报文头)在公共网络上以IP报文形式传输时携带以下协议头:
· 1个L2TP报文头(16字节)
· 1个UDP报文头(8字节)
· 1个新IP报文头(20字节),指示L2TP隧道的源地址和目的地址
L2TP数据报文的格式如图3-6。
图3-9 L2TP数据报文的格式
LAC收到PPP报文后,进行如下封装:
· 首先为其封装L2TP报文头;
· 接着封装UDP报文头
· 然后封装新的IP头,并从连接公共网络的接口发送出去。
L2TP协议本身没有数据分片功能,但是在进行IP封装时,可以在需要时进行分片。为保证报文不分片,封装后的报文大小不能超过实际接口的MTU。
LNS从连接公共网络的接口收到该报文后,进行如下处理:
· 去掉IP头和UDP头,将报文送往L2TP协议模块;
· L2TP协议剥离L2TP协议头和PPP头,将该报文还原为用户IP报文,并发送到私网内部服务器。
控制连接和会话连接的建立过程
消息报文
在VRP的实现中,控制连接和会话连接的建立过程中涉及的消息包括:
· SCCRQ(Start-Control-Connection-Request):用来向对端请求建立控制连接。
· SCCRP(Start-Control-Connection-Reply):用来告诉对端,本端收到了对端的ACCRQ消息,允许建立控制连接。
· SCCCN(Start-Control-Connection-Connected):用来告诉对端,本端收到了对端的SCCRP消息,本端已完成隧道的建立。
· StopCCN(Stop-Control-Connection-Notification):用来通知对端拆除控制连接,本端已清除所有会话连接,将关闭隧道接口。StopCCN中携带了发送端控制连接拆除原因。
· ICRQ(Incoming-Call-Request):只有LAC才会发送;每当检测到用户的呼叫请求,LAC就发送ICRQ消息给LNS,请求建立会话连接。ICRQ中携带会话参数。
· ICRP(Incoming-Call-Reply):只有LNS才会发送;收到LAC的ICRQ,LNS就使用ICRP回复,表示允许建立会话连接。
· ICCN(Incoming-Call-Connected):只有LAC才会发送;LAC收到LNS的ICRP,就使用ICCN回复,表示LAC已回复用户的呼叫,通知LNS建立会话连接。
· CDN(Call-Disconnect-Notify):用来通知对端拆除会话连接,并告知对端拆除的原因。
· Hello:用来检测隧道的连通性。
· ZLB(Zero-Length Body):如果本端的队列没有要发送的消息时,发送ZLB给对端。在会话连接和控制连接的拆除过程中,发送ZLB还表示收到StopCCN或CDN。ZLB只有L2TP头,没有负载部分,因此而得名。
控制连接的建立和拆除期间包含以下过程:
· 控制连接的建立
· 会话连接的建立
· 控制连接的维持
· 会话连接的拆除
· 控制连接的拆除
控制连接的建立
控制连接的建立先于会话连接。只有控制连接建立起来了,会话连接才可能建立起来。L2TP的控制连接建立过程如图3-7。
图3-10 控制连接建立的三次握手
2. LAC和LNS之间路由相互可达后,LAC端设置相应AVP,向LNS端发出SCCRQ报文,请求建立控制连接。
3. LNS收到来自LAC的SCCRQ。根据其中的AVP,如果同意建立隧道,便发送SCCRP报文给LAC。
4. LAC对接收到的SCCRP报文进行检查,从中取出隧道信息,并向LNS发送SCCCN报文,表示控制连接建立成功。
5. 当消息队列中没有消息时,LNS发送ZLB给对端。
在VRP中,使用display l2tp tunnel命令可以查看本设备上成功建立了哪些控制连接。
会话连接的建立
控制连接成功建立之后,一旦检测到用户呼叫,就请求建立会话连接。与控制连接不同的是,会话连接的建立具有方向性。在VRP中,会话连接请求是由LAC发起的。会话连接建立过程如图3-8。
图3-11 会话连接建立过程
L2TP的会话建立由PPP触发。
在VRP中,使用display l2tp session命令可以查看本设备上成功建立了哪些会话连接。
控制连接的维持
L2TP使用Hello报文检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,若在一段时间内未收到Hello报文的应答,则重复发送Hello报文。如果重复发送报文的次数超过3次,则认为L2TP隧道已经断开,该PPP会话将被清除。此时需要重新建立隧道。
VRP中Hello报文发送的时间间隔可以手工设置。缺省情况下,Hello报文每隔60秒发送一次。LNS和LAC侧可以设置不同的Hello报文时间间隔。
会话连接的拆除
会话连接拆除的发起端可以是LAC或LNS。发起端通过发送CDN消息报文到对端来通知对端拆除会话连接。对端收到后发送ZLB ACK消息作为回应。图3-9是LAC侧发起会话连接拆除的过程。
图3-12 L2TP会话连接的拆除
控制连接的拆除
控制连接拆除的发起端可以是LAC或LNS。发起端通过发送StopCCN消息报文到对端来通知对端拆除控制连接。对端收到后发送ZLB ACK消息作为回应,同时在一定时间内保持控制连接以防止ZLB ACK消息丢失。图3-10是LAC侧发起控制连接拆除的过程。
图3-13 L2TP控制连接的拆除
隧道验证过程
隧道验证是和建立隧道同时进行的,不是单独进行的。
隧道验证过程如下:
2. 首先LAC向LNS发SCCRQ请求消息时,产生一个随机的字符串作为本端的CHAP Challenge(SCCRQ携带的字段)发给LNS。
3. LNS收到SCCRQ后,利用SCCRQ携带的CHAP Challenge和本端配置的密码产生一个新的字符串,用MD5算出一个16个字节的Response;同时也产生一个随机的字符串(LNS Challenge),将Response和LNS Challenge放在SCCRP中一起发给LAC。
4. LAC端收到SCCRP后,对LNS进行验证:
· 利用自己的CHAP Challenge、本端配置的密码、SCCRP,产生一个新的字符串;
· 用MD5算出一个16字节的字符串;
· 与LNS端发来的SCCRP中带的LNS CHAP Response做比较,如果相同,则隧道验证通过,否则隧道验证不通过,断掉隧道连接。
5. 如果验证通过,LAC将自己的CHAP Response放在SCCCN消息中发给LNS。
6. LNS收到SCCCN消息后,也进行验证:
· 利用本端的CHAP Challenge、本端配置的密码、SCCCN,得到一个字符串;
· 然后用MD5算出一个16字节的字符串;
· 与SCCCN消息中得到的LAC CHAP Response做比较。如果相同,则验证通过,否则拆除隧道。
L2TP隧道会话的建立过程
L2TP的典型组网如图3-11所示:
图3-14 L2TP隧道的典型组网示意图
进行隧道验证的L2TP隧道呼叫建立流程如图3-12。
图3-15 L2TP隧道的呼叫建立流程
7. 用户端PC机发起呼叫连接请求;
8. PC机和LAC端(RouterA)进行PPP LCP协商;
9. LAC对PC机提供的用户信息进行PAP或CHAP认证;
10. LAC将认证信息(用户名、密码)发送给RADIUS服务器进行认证;
11. RADIUS服务器认证该用户,如果认证通过则返回该用户对应的LNS地址等相关信息,并且LAC准备发起Tunnel连接请求;
12. LAC端向指定LNS发起Tunnel连接请求;
13. LAC端向指定LNS发送CHAP challenge信息,LNS回送该challenge响应消息CHAP response,并发送LNS侧的CHAP challenge,LAC返回该challenge的响应消息CHAP response;
14. 隧道验证通过;
15. LAC端将用户CHAP response、response identifier和PPP协商参数传送给LNS;
16. LNS将接入请求信息发送给RADIUS服务器进行认证;
17. RADIUS服务器认证该请求信息,如果认证通过则返回响应信息;
18. 若用户在LNS侧配置强制本端CHAP认证,则LNS对用户进行认证,发送CHAP challenge,用户侧回应CHAP response;
19. LNS再次将接入请求信息发送给RADIUS服务器进行认证;
20. RADIUS服务器认证该请求信息,如果认证通过则返回响应信息;
21. 验证通过,用户访问企业内部资源。
LNS对用户的认证方式
LNS可对用户进行两次验证:第一次发生在LAC侧,第二次发生在LNS侧。只有一种情况LNS侧不对接入用户进行二次验证:启用LCP重协商后,不在相应的虚拟接口模板上配置验证。这时,用户只在LAC侧接受一次验证。其他情况都进行二次验证,验证模式(Authentication-mode)为“none”也算一种验证。
LNS侧对用户的验证方式有三种:代理验证、强制CHAP验证和LCP重协商。其中,LCP重协商的优先级最高,LCP重协商优先级最低。
LCP重协商
如果需要在LNS侧进行比LAC侧更严格的认证,或者LNS侧需要直接从用户获取某些信息(当LNS与LAC是不同厂商的设备时可能发生这种情况),则可以配置LNS与用户间进行LCP重协商。LCP重协商使用相应虚拟接口模板VT上配置的验证方式。此时将忽略NAS侧的代理验证信息。
强制CHAP验证
如果只配置强制CHAP验证,则LNS对用户进行CHAP验证,如果验证不过的话,会话就不能建立成功。
代理验证
如果既不配置LCP重协商,也不配置强制CHAP验证,则LNS对用户进行的是代理验证。
代理验证就是LAC将它从用户得到的所有验证信息及LAC端配置的验证方式传给LNS,LNS会利用这些信息和LAC端传来的验证方式对用户进行验证。
对由NAS发起的VPN服务请求(NAS-Initialized VPN),在PPP会话开始时,用户先和NAS进行PPP协商。若协商通过,则由NAS初始化L2TP通道连接,并将用户信息传递给LNS,由LNS根据收到的代理验证信息,判断用户是否合法。
当LNS使用代理验证时,如果虚拟接口模板VT配置的验证方式为CHAP,而LAC端配置的验证方式为PAP,则由于LNS要求的CHAP验证级别高于LAC能够提供的PAP验证,验证将无法通过,会话也就不能正确建立。
如果在LAC端使用AAA NONE的认证方式,那么无论LAC侧采用PAP验证还是CHAP验证,AAA都不会认证。但送到LNS端以后,LNS端就采用AAA配置的认证方式(如Local、Radius或者NONE)进行认证。
代理验证与VT上的验证方式也有关系:
· VT上的验证方式不能比LAC侧复杂。如果LAC侧的验证方式为PAP,但LNS的VT上的验证方式为CHAP,则验证不通过。
· 其他情况下,采用LAC传来的验证方式,不管VT上配的是什么验证方式。
关于地址池和地址池分配的详细介绍请参见《VRP 特性描述 安全》以及《VRP 特性描述 IP业务》。
L2TP隧道交换
应用环境
随着组网方式的多样化,VPDN的使用也越来越灵活。在某些组网环境中,一个会话可能需要跨越多个隧道才能到达目的地。隧道交换(Tunnel Switch)就是为了解决会话从一个隧道交换到另一个隧道而提出的一种新技术。
图3-16 隧道交换组网
在图3-13中,LAC和LNS之间增加一台设备RouterB作为TUNLSW。
隧道交换原理
PC1访问PC2的过程如下:
1. PC1首先向LAC发起隧道建立请求,但它的目的地不是RouterC(LNS),而是中间的TUNLSW,这样,LAC和TUNLSW之间先建立一条隧道和会话;
2. TUNLSW发现这个会话的终结点不是自己后,向真正的LNS发起隧道建立请求;
3. TUNLSW将自己与LAC建立的会话续传到与LNS新建立的隧道上;
4. 会话到达真正的LNS后终结,建立真正的PPP连接。这样,PC1就可以访问PC2了。
在这个过程中,会话在TUNLSW设备上从LAC与TUNLSW建立的隧道上交换到了TUNLSW和LNS建立的隧道上,即,由TUNLSW设备完成会话的隧道交换。就像乘坐公共汽车,第一次不能到达目的地,需要在中间站换乘一次才能到达目的地。TUNLSW设备就是会话的中转站,它通过隧道交换技术来实现会话的中转。图3-13是一个比较简单的例子,在实际组网可能需要中转更多次才能到达真正的LNS。
TUNLSW设备上需要两个L2TP组,一个组用作TUNLSW作为LNS接受LAC发起的隧道建立请求,另一个组用作TUNLSW作为LAC向新的TUNLSW或LNS发起新的隧道建立请求。
有多种协议可用于实现隧道交换,包括L2TP协议。使用L2TP实现隧道交换的解决方案也称为Multi-Hop L2TP。
L2TP应用
本节介绍如下内容:
· 两种典型的L2TP隧道模式
· 采用L2TP接入三层VPN
· L2TP与MP配合使用
· Multi-Hop L2TP
· L2TP复杂组网
两种典型的L2TP隧道模式
远端系统或LAC客户端(运行L2TP协议的主机)与LNS之间的隧道模式如图3-14所示:
图3-17 两种典型的L2TP隧道模式
有两种方式可以建立连接:
· NAS-Initialized
· Client-Initialized
NAS-Initialized
由远程拨号用户发起,远程系统通过PSTN/ISDN拨入LAC,由LAC通过Internet向LNS发起建立隧道连接请求。拨号用户地址由LNS分配;对远程拨号用户的验证与计费既可由LAC侧的代理完成,也可在LNS完成。
NAS-Initialized的特点是:
· 用户必须采用PPP的方式接入到Internet,也可以是PPPoE等协议。
· 运营商的接入设备(主要是BAS设备)需要开通相应的VPN服务。用户需要到运营商处申请该业务。
· L2TP隧道两端分别驻留在LAC侧和LNS侧,且一个L2TP隧道可以承载多个会话。
NAS-Initialized模式中,可以将一个局域网接入交换机,交换机再接入路由器(或者多个用户直接接入同一台路由器),再将该路由器通过PPP或PPPoE和LAC相连,如。
图3-18 用户通过路由器与LAC相连
Client-Initialized
直接由LAC客户(指可在本地支持L2TP协议的用户)发起。客户需要知道LNS的IP地址。LAC客户可直接向LNS发起隧道连接请求,无需再经过一个单独的LAC设备。在LNS设备上收到了LAC客户的请求之后,根据用户名、密码进行验证,并且给LAC客户分配私有IP地址。
这种方式的特点是:
· 用户需要安装L2TP的拔号软件。使用Windows2000/XP的用户也可以使Windows操作系统自带的VPN拨号软件。
· 用户上网的方式和地点没有限制,不需ISP介入。
· L2TP隧道两端分别驻留在用户侧和LNS侧,一个L2TP隧道承载一个L2TP会话。
· 用户可根据自己对传送信息安全性的需求进行选用。当用户需要高级别的安全性时,用户可以选用IPSec。
一般同一个组网中,NAS-Initialized和Client-Initialized模式同时存在。也有只使用Client-Initialized模式的情况,但这种组网对LNS的建立隧道要求高,因为Client-Initialized模式中,一个L2TP隧道承载一个L2TP会话。
采用L2TP接入三层VPN
移动用户接入MPLS VPN
基于MPLS骨干网的VPN服务可以给客户提供优质服务。因此,MPLS VPN技术是运营商选择的主流VPN技术。但是MPLS VPN要求用户的CE(Customer Edge)设备必须直接接入到MPLS骨干网中的PE(Provider Edge)设备(依靠PE设备上的接口属性来标识该CE设备隶属于哪个VPN)。
但对于出差用户,不可能总是可以直接接入到MPLS骨干网的PE设备上。这样就无法通过Internet或者是IP骨干网直接访问MPLS VPN内部的站点。可以采用L2TP协议来解决此问题。这种技术也称为L2TP接入三层VPN技术。
在这种技术中,运营商需要给MPLS VPN的企业用户提供共享的LNS设备,可以让企业分布于各地的移动用户通过运营商提供的LNS设备(相当于企业的PE设备)来接入企业内部网络。由于LNS是多个企业用户共享的,因此运营商在LNS设备上必须能够将不同的企业用户接入到对应的企业的VPN中。
VPN用户访问其他VPN
如果一个用户本身在一个VPN内,需要访问另一个VPN的资源。这种需求可以通过多角色主机实现。但如果出现多个VPN,而每个VPN内都有几台主机要访问其他VPN的资源,多角色主机配置起来不方便。
采用L2TP接入VPN可以很好的解决这个问题。例如VPN1用户通过L2TP拔号接入PE,PE为其分配VPN2的地址,并且把该地址加入到VPN2的路由表中,这样VPN1用户可以访问VPN2的Server。如果该用户想访问VPN3,只要换成VPN3的用户名拔号,就可以获得VPN3的地址,同样的原理就可访问VPN3了。
L2TP与MP配合使用
L2TP可以与MP配合使用,如图3-16。路由器Router接入了多个局域网,每个局域网到LNS的QoS需求不同,可采用L2TP与MP配合的方式,配置不同QoS以满足需求。
图3-19 L2TP与MP配合组网
L2TP与MP配合使用,只能是在用户端与LNS端进行MP的绑定,在用户与LNS之间建立多个L2TP会话。在LNS端可以将这些会话绑定到一个VT上。
但不能在用户与LAC之间进行MP绑定后再建立L2TP会话。有下面两种情况:
· 在用户端和LAC端都配置了认证和PPP PAP验证,而LNS端的VT上没有配置PPP PAP验证;而且LAC端配置的L2TP组中,全用户或域名与用户端发送过来的用户名相匹配。
这种情况下,只能建立L2TP隧道,但会话无法建立。原因是如下:
· 在用户端通过子通道向LAC端发送用户名,LAC端进行验证时发现它是一个VPDN用户,于是走L2TP流程,不会再走MP流程,所以用户端和LAC端不能建立MP绑定;
· 走L2TP的流程后,在LNS端的VT上没有配置PPP PAP验证,而用户端配置了PPP PAP验证,要求验证对端。这样,LNS不发送用户名和密码,用户端验证不过。所以只能建立L2TP隧道,但会话无法建立。
· 在用户端与LAC端用MP绑定两条链路到一个VT上,在用户端的VT上配置ppp pap local-user user-name password { cipher | simple } password命令,但不进行验证;在LAC端的VT上配置PPP PAP验证。在MP绑定的两条链路上都没有配验证。
这种情况下,L2TP会话也无法建立。原因是PPP的验证过程是在LCP协商的时候进行的,而MP绑定的VT上的LCP协商是由它的子通道来进行的,也就是它所绑定的物理链路,由于物理链路上没有配置验证,LAC端不知道用户端的信息,所以就不会建立L2TP会话。
Multi-Hop L2TP
不能在客户和LNS之间直接建立一个L2TP隧道,PPP会话需要跨越多个隧道才能到达LNS。这种情况下,需要使用L2TP隧道交换,也叫做Multi-Hop L2TP。
L2TP复杂组网
使用VRP作为平台的路由器支持同时作为LAC及LNS,并支持同时有多路用户呼入;只要内存及线路不受限制,L2TP可以同时接收和发起多个呼叫。这些复杂组网的需求及配置可以综合参考以上的几种组网情况,综合应用。
参考资料清单
如果要更详细了解L2TP的原理,请参考以下文档。
文档编号
描述
RFC2661
Layer Two Tunneling Protocol "L2TP"
RFC1918
Address Allocation for Private Internets
RFC2809
Implementation of L2TP Compulsory Tunneling via RADIUS
RFC2888
Secure Remote Access with L2TP
draft-ietf-l2tpext-l2tp-base-15
Layer Two Tunneling Protocol - Version 3 (L2TPv3)
draft-ietf-l2tpext-tunnel-switching-07
PPP over L2TP Tunnel Switching
4 GRE
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref145321594 \h
\* MERGEFORMAT 简介
介绍GRE相关的基本概念、GRE报文格式及GRE的特点
REF _Ref145321610 \h
\* MERGEFORMAT GRE的实现
介绍GRE报文的封装和解封装过程
REF _Ref145321617 \h
\* MERGEFORMAT GRE的安全机制
介绍GRE的两个弱安全机制,链路状态探测功能和与IPSec的配合
REF _Ref145321626 \h
\* MERGEFORMAT GRE应用
介绍应用GRE的几种典型组网
REF _Ref145321574 \h
\* MERGEFORMAT 参考资料清单
列举与GRE相关的参考文档
简介
本节介绍配置GRE所需理解的基本知识,具体包括:
· GRE协议概述
· GRE报文头
· GRE的特点
GRE协议概述
GRE协议
通用路由封装GRE(Generic Routing Encapsulation)是对某些网络层协议如IPX(Internet Packet Exchange)的报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。GRE可以作为VPN的第三层隧道协议,为VPN数据提供透明传输通道。
GRE报文格式
系统收到需要进行封装和路由的某网络层协议(如IPX)数据时,将首先对其加上GRE报文头,使之成为GRE报文,再将其封装在另一协议(如IP)中。这样,此报文的转发就可以完全由IP协议负责。封装好的报文的格式如图4-1所示:
图4-20 封装好的GRE报文格式
· 净荷(Payload):系统收到的需要封装和路由的数据报称为净荷。
· 乘客协议(Passenger Protocol):封装前的报文协议称为乘客协议。
· 封装协议(Encapsulation Protocol):上述的GRE协议称为封装协议,也称为运载协议(Carrier Protocol)。
· 传输协议(Transport Protocol或者Delivery Protocol):负责对封装后的报文进行转发的协议称为传输协议。
举例来说,一个封装在IP Tunnel中的IPX报文的格式可以表示为:
图4-21 Tunnel中传输报文的格式
GRE报文头
VRP的GRE实现遵循RFC标准。VRP中的GRE头格式如图4-3。
图4-22 VRP中的GRE头
各字段解释如下:
· C:校验和验证位。如果该位置1,表示GRE头插入了校验和(Checksum)字段;该位为0表示GRE头不包含校验和字段。
· K:关键字位。如果该位置1,表示GRE头插入了关键字(Key)字段;该位为0表示GRE头不包含关键字字段。
· Recursion:用来表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。如果封装层数大于3,则丢弃该报文。该字段的作用是防止报文被无限次的封装。
· Flags:预留字段。当前必须设为0。
· Version:版本字段,必须置为0。Version为1是使用在RFC2637的PPTP中。
· Protocol Type:乘客协议的协议类型。
· Checksum:对GRE头及其负载的校验和字段。
· Key:关键字字段,隧道接收端用于对收到的报文进行验证。
因为VRP中的GRE头不包含源路由字段,因此Bit 1、Bit3和Bit 4都置为0。
GRE的特点
GRE主要有以下特点:
· 机制简单,对隧道两端设备的CPU负担小。
· 本身不提供数据的加密,可以与IPSec结合使用。
· 不提供流量控制和QoS。
GRE的实现
本节介绍如下内容:
· 隧道接口
· 报文在GRE中的传输过程
· 封装
· 解封装
隧道接口
隧道接口(Tunnel接口)是为实现报文的封装而提供的一种点对点类型的虚拟接口,与Loopback接口类似,都是一种逻辑接口。
隧道接口包含以下元素:
· 源地址:报文传输协议中的源地址。从负责封装后报文传输的网络来看,隧道的源地址就是实际发送报文的接口IP地址。
· 目的地址:报文传输协议中的目的地址。从负责封装后报文传输的网络来看,隧道本端的目的地址就是隧道目的端的源地址。
· 隧道接口IP地址:为了在隧道接口上启用动态路由协议,或使用静态路由协议发布隧道接口,需要为隧道接口分配IP地址。隧道接口的IP地址可以不是公网地址,甚至可以借用其他接口的IP地址以节约IP地址。但是当Tunnel接口借用IP地址时,由于Tunnel接口本身没有IP地址,无法在此接口上启用动态路由协议,必须配置静态路由或策略路由才能实现路由器间的连通性。
· 封装类型:隧道接口的封装类型是指该隧道接口对报文进行的封装方式。有三种封装方式,分别是GRE、MPLS TE和IPv6-IPv4。
经过手工配置,成功建立隧道之后,就可以将隧道接口看成是一个物理接口,在其上运行动态路由协议或配置静态路由。
报文在GRE中的传输过程
报文在GRE隧道中传输包括封装和解封装两个过程。以图4-4的网络为例,如果私网报文从Ingress PE向Egress PE传输,则封装在Ingress PE上完成;而解封装在Egress PE上进行。
图4-23 私有网络通过GRE隧道互连
下面详细说明封装和解封装这两个过程。
封装
路由器Ingress PE从连接私网的接口接收到私网报文后,首先交由私网上运行的协议模块处理。
私网协议模块检查私网报文头中的目的地址域在私网路由表或转发表中查找出接口,确定如何路由此包。如果发现出接口是Tunnel接口,则将此报文发给隧道模块。
隧道模块收到此报文后进行如下处理:
· 隧道模块根据乘客报文的协议类型和当前GRE隧道所配置的Key和Checksum参数,对报文进行GRE封装,即添加GRE头。
· 根据配置信息(传输协议为IP),给报文加上IP头。该IP头的源地址就是隧道源地址,IP头的目的地址就是隧道目的地址。
· 将该报文交给IP模块处理。
IP模块根据该IP头目的地址,在公网路由表中查找相应的出接口并发送报文。之后,封装后的报文将在该IP公共网络中传输。
解封装
解封装过程和封装过程相反。Egress PE路由器从连接公网的接口收到该报文,分析IP头发现报文的目的地址为本路由器,且协议字段值为47,表示协议为GRE(参见RFC1700),于是交给GRE模块处理。GRE模块去掉IP头和GRE报头,并根据GRE头的Protocol Type字段,发现此报文的乘客协议为私网上运行的协议,于是交由此协议处理。此协议像对待一般数据报一样对此数据报进行转发。
GRE的安全机制
本节介绍如下内容:
· GRE的弱安全机制
· Keepalive检测
· 与IPSec的配合
在本章介绍的GRE应用一节中,每种组网都可以选择性地配置这三种GRE安全机制。
GRE的弱安全机制
GRE本身提供两种比较弱的安全机制:
· 校验和验证
· 识别关键字验证
校验和验证
校验和验证是指对封装的报文进行端到端校验。
RFC1701(Generic Routing Encapsulation)中规定:如果GRE报文头中的C位置位,则校验和有效。校验和是GRE头中的可选字段。如果C位置1,则发送方将根据GRE头及payload信息计算校验和,在报文头的Checksum字段的位置插入校验和,将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和进行比较。如果计算出来的校验和与报文中的校验和一致,则对报文进一步处理,否则丢弃报文。
实际应用时,隧道两端可以根据需要选择是否配置校验和,从而决定是否触发校验功能。
因校验和配置不同,对收发报文的处理方式也不同,请参见表4-1。
表4-4 校验和与报文处理
本端
对端
本端对接收报文的处理
本端对发送报文的处理
配置校验和
没有配置校验和
不检查校验和
计算校验和
没有配置校验和
配置校验和
检查校验和
不计算校验和
识别关键字验证
识别关键字(key)是指对Tunnel接口进行校验。通过这种弱安全机制,可以防止错误识别、接收其它地方来的报文。
RFC1701中规定:若GRE报文头中的K位置位,则在GRE头中插入关键字字段,收发双方将进行通道识别关键字的验证。
关键字字段是一个四字节长的数,在报文封装时被插入GRE头。关键字的作用是标志隧道中的流量。属于同一流量的报文使用相同的关键字。在报文解封装时,隧道端将基于关键字来识别属于相同流量的数据报。
只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。这里的“完全一致”是指两端都不设置识别关键字;或者两端都设置关键字,且关键字的值相等。
Keepalive检测
GRE的数据空洞
目前GRE协议并不具备探测链路状态的功能。如果远端端口不可达,隧道并不能及时关闭该Tunnel连接,这样会造成源端会不断的向对端转发数据,而对端却因Tunnel不通而丢弃所有报文,由此就会形成数据发送的空洞。
Keepalive检测功能
VRP实现了GRE隧道的链路状态检测功能(Keepalive检测功能)。Keepalive检测功能用于时刻检测隧道链路是否处于Keepalive状态,即检测隧道对端是否可达。如果对端不可达,隧道连接就会及时关闭,避免形成数据空洞。
如果GRE隧道本端使能Keepalive检测功能后,周期地发送link-alive探测报文给对端。若对端可达,则本端会收到对端的回应报文;否则,收不到对端的回应报文。
对于VRP实现的GRE,只要在隧道一端配置Keepalive,该端就具备keepalive功能,而不要求隧道对端也具备该功能。
不可达计数器
GRE隧道的源端使能Keepalive检测功能后,就创建一个定时器,周期地发送Keepalive探测报文,同时进行不可达计数。每发送一个探测报文,不可达计数加1。
对端每收到一个探测报文,就给源端发送一个回应报文。
如果源端的计数器值未达到预先设置的值就收到回应报文,就表明对端可达。如果源端的计数器值到达预先设置的值——重试次数(Retry Times)时,还没收到回送报文,就认为对端不可达。此时,源端将关闭隧道连接。
与IPSec的配合
为了防止攻击,可以在GRE封装的基础上,再使用IPSec协议加密。即使用IP的安全机制来保护GRE头及其负载,例如ESP(Encapsulating Security Payload)或AH(Authentication Header)。
· ESP保护整个GRE报文。
· AH认证除了可变域的整个IP报文。
关于ESP和AH的详细介绍请参见《VRP 特性描述 安全》的“IPSec”。
GRE应用
GRE可用于实现以下几种服务类型:
· 多协议的本地网可以通过单一协议的骨干网传输
· 扩大跳数受限的网络工作范围
· 将不连续的子网连接起来,用于组建VPN
· CE采用GRE隧道接入MPLS VPN
· 与IPSec结合,保护组播数据
多协议的本地网可以通过单一协议的骨干网传输
图4-24 多协议本地网通过单一协议骨干网传输
图4-5中,group1和group2是运行Novell IPX的本地网,term1和term2是运行IP的本地网。
通过在Router A和Router B之间采用GRE协议封装的隧道,group1和group2、term1和term2可以互不影响地进行通信。
扩大跳数受限的网络工作范围
图4-25 扩大网络工作范围
在图4-6中,网络运行IP协议,假设IP协议限制跳数为255。如果两台PC之间的跳数超过255,它们将无法通信。在网络中使用隧道可以隐藏一部分步跳,从而扩大网络的工作范围。
将不连续的子网连接起来,用于组建VPN
使用GRE隧道可以将不连续的子网连接起来,实现跨越广域网的VPN。
例如,两个VPN子网Site1和Site2位于不同的城市,通过在网络边界设备之间建立GRE隧道,可以把这两个子网连接成一个连续的VPN网络。
GRE可应用于L2VPN,也可以应用于L3VPN。有两种模式:
· CPE-based VPN中,GRE隧道两端驻留在用户边缘CE(Customer Edge)路由器上,如图4-7。
图4-26 GRE in CPE-based VPN
· Network-based VPN中,GRE隧道两端驻留在运营商边缘PE(Provider Edge)路由器上,如图4-8。
图4-27 GRE in Network-based VPN
通常,MPLS VPN骨干网使用LSP作为公网隧道。但如果骨干网核心路由器(P路由器)只提供纯IP功能,不具备MPLS功能;而网络边缘的PE路由器具备MPLS功能,这样,就不能使用LSP作为公网隧道。此时,可以使用GRE隧道替代LSP,在核心网提供三层或二层VPN解决方案。其私网报文在VPN骨干网中传输时,报文格式如图4-9。
图4-28 含MPLS标签的GRE报文格式
GRE隧道也可以作为非MPLS的VPN骨干网隧道。这种情况下,私网报文在VPN骨干网中传输时不含有MPLS标签,其报文格式如图4-10。
图4-29 不含MPLS标签的GRE报文格式
CE采用GRE隧道接入MPLS VPN
应用环境
基于MPLS骨干网的VPN服务可以给客户提供比传统IP VPN更优质的服务。因此,MPLS VPN技术是运营商选择的主流VPN技术。但是Internet是基于IP技术的,且基于IP技术的骨干网还是大量存在的。
在MPLS VPN中,为了让用户端设备CE(Customer Edge)接入VPN中往往需要CE与MPLS骨干网的PE(Provider Edge)设备之间有直接的物理链路,即在同一个网络中。在这样的组网中,需要在PE上将VPN与PE到CE的物理接口进行关联。
但实际组网中,并非所有的CE和PE都能用物理链路直接相连。例如,很多已经连接到internet或基于IP技术的骨干网上的机构,其CE和PE设备之间地理位置上相距甚远,不可能直接接入到MPLS骨干网的PE设备上。这样就无法通过Internet或者是IP骨干网直接访问MPLS VPN内部的站点。
图4-30 CE使用基于IP技术的骨干网接入MPLS VPN骨干网
为了让CE也能接入到MPLS VPN中,可以考虑在CE和PE之间创建“逻辑上的直连”。也就是说,可以在CE和PE间利用公共网络或某私有网络相连,并在CE与PE之间创建GRE隧道。这样,可以看成CE和PE直连。在PE上将VPN与PE-CE之间的接口进行关联时,就可以把GRE隧道当作一个物理接口,在这个接口上进行VPN关联。
实现模式
采用GRE隧道接入MPLS VPN时,GRE的实现模式可按以下三种情形来划分:
· 私有网络的GRE:GRE隧道关联某个VPN实例,而GRE隧道的源接口(或源地址)和目的地址也属于该VPN实例。
· 穿过公网的GRE:GRE隧道关联某个VPN实例,GRE隧道的源地址和目的地址为公网地址,不属于VPN实例。
· 穿越VPN的GRE:GRE隧道关联某个VPN实例(例如VPN1),GRE隧道的源接口绑定了另一个VPN实例(例如VPN2),即GRE隧道需要穿越VPN2。
私有网络的GRE
图4-31 私有网络的GRE示意图
在这种组网中,GRE隧道的源和目的地址都属于私有网络,在实际的应用中在私有网络里再创建一个隧道到PE,没有什么价值,因此不推荐使用。图4-12中,不如直接使用R1作为CE设备。
穿过公网的GRE
在这种组网中,CE和PE都需要有属于公网的接口,该接口需要使用公网IP地址。CE的公网路由表中需要有到PE的路由,PE公网路由表也需要有到CE的路由。
图4-32 穿越公网的GRE示意图
此外,为了让CE上的私网流量通过隧道传输到PE上,CE的路由表中,到远端site网段路由的出接口为GRE隧道接口,下一跳为隧道接口的IP地址。
穿越VPN的GRE
与穿过公网的GRE相比,穿越VPN的GRE不同点在于CE不是通过公共网络与PE互连,而是通过另一个VPN(如VPN2)与PE互连。也就是说,CE流向PE的私网数据的出接口及PE流向PE的私网数据流量的出接口都属于VPN2。
图4-33 穿越VPN的GRE示意图
例如图4-14中,路由器PE1和PE2是一级运营商的MPLS骨干网边界设备。VPN2是属于二级运营商的一个VPN。CE1和CE2是属于用户的设备。
为了在此网络环境中部署一个基于MPLS网络的VPN(如VPN1),可以在PE1和CE1之间搭建一个穿越VPN2的GRE,在逻辑上使CE1与PE1直连。
与IPSec结合,保护组播数据
图4-34 GRE-IPSec隧道应用
GRE可以封装组播数据并在GRE隧道中传输,而IPSec目前只能对单播数据进行加密保护。对于组播数据需要在IPSec隧道中传输的情况,可以先建立GRE隧道,对组播数据进行GRE封装,再对封装后的报文进行IPSec加密,从而实现组播数据在IPSec隧道中的加密传输。
· 关于IPSec的详细介绍请参见《VRP 特性描述 安全》的“IPSec”。
· 关于组播的详细介绍请参见《VRP 特性描述 IP组播》。
参考资料清单
如果要更详细了解GRE的原理,请参考以下文档。
文档编号
描述
RFC1701
Generic Routing Encapsulation(GRE)
RFC1702
Routing Encapsulation over IPv4 networks
RFC2784
Generic Routing Encapsulation (GRE)
draft-ietf-l3vpn-gre-ip-2547-02
Use of PE-PE GRE or IP in BGP/MPLS IP VPNs
draft-ietf-mpls-in-ip-or-gre-08
Encapsulating MPLS in IP or Generic Routing Encapsulation (GRE)
5 MPLS LDP
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref151803851 \h
MPLS LDP简介
介绍LDP的基本概念
REF _Ref151803853 \h
LDP的工作过程
介绍LDP的工作过程
REF _Ref151803855 \h
LDP基本操作
介绍LDP的基本操作
REF _Ref151803857 \h
CR-LDP信令建立路径的过程
介绍CR-LDP信令建立路径的过程
REF _Ref151803859 \h
MPLS LDP的高级特性
介绍LDP的高级特性
REF _Ref150230097 \h
MPLS基本术语
查阅MPLS LDP的术语
REF _Ref151803861 \h
参考资料清单
查阅其他的参考资料
MPLS LDP简介
本节介绍MPLS LDP的基本概念、基本原理,包括以下内容:
· MPLS LDP的引入
· MPLS LDP的基本概念
· MPLS LDP的特性
MPLS LDP的引入
MPLS体系有多种标签分配协议,LDP标签分配协议是这些协议中使用较广的一种。LDP是LSR之间协商标签含义的过程。
利用LDP可以实现将网络层的路由信息直接映射到数据链路层的交换路由,进而建立起标签交换路径(LSP)。LSR之间将依据本地转发表中对应于一个特定FEC的入标签、下一跳节点、出标签等信息连接在一起,从而形成跨越整个MPLS域的标签交换路径。
MPLS LDP的基本概念
LDP(Label Distribution Protocol)规定标签分发过程中的各种消息以及相关的处理进程。
通过LDP协议,LSR可以把网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的LSP。LSP既可以建立在两个相邻的LSR之间,也可以终止于网络出口节点,从而在网络中所有中间节点上都使用标签交换。
FEC及映射过程
当LSR建立了LSP以后,必须确定哪些报文可以映射到哪个LSP上,从而对这些报文按照LSP进行标签转发,FEC(Forwarding Equivalence Class,转发等价类)就用于将某些类型的报文映射到LSP。
FEC由一个或者多个FEC要素组成,每个FEC要素标识了一种可以映射到LSP的报文类型,目前有两种类型的FEC要素:
· 网络前缀:可以是从0-32位长度的网络前缀。
· 主机地址:32位长度的主机地址。
一个32位长度的网络前缀FEC要素和一个32位的主机地址FEC要素即使地址完全相同,但是应用的效果仍然是不同的。当且仅当一个地址匹配了网络前缀的时候可以说这个地址匹配了FEC的网络前缀要素;当且仅当一个报文的目的地址匹配FEC要素的主机地址的时候可以说这个报文匹配了FEC的主机地址要素。
报文映射到FEC的过程按照如下的顺序进行:
1. 首先如果报文的目的地址可以映射到一个FEC的主机地址上,则匹配相应的LSP。如果多个LSP对应一个FEC的主机地址,报文的匹配方法不在本文的讨论范围之内,请查阅相关文档。
2. 如果报文目的地址可以映射到一个或者多个FEC的网络前缀上,则报文按照最长匹配原则找到对应的FEC,最终匹配到相应的LSP,当多个LSP对应一个FEC的网络前缀时,报文匹配方法请查阅相关文档。
3. 如果LSR已知报文的下一跳是另一个LSR,并且本地LSR有一个FEC的主机地址要素是这个LSR的地址,则本地LSR会将报文映射到这个LSP上。(LSR可以根据链路状态或者BGP等路由协议来发现报文的下一跳地址)。
RFC3036规定,对于上面的第三条并不是强制的,LSR可以不匹配这样的报文。具体需要看厂家是如何实现的。
LDP对等体
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签或FEC映射关系的两个LSR。
LDP对等体通过它们之间的LDP会话获得对方的标签映射消息。
LDP会话
LDP会话用于在LSR之间交换标签映射、释放等消息。LDP会话分为两种类型:
· 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
· 远端LDP会话(Remote LDP Session):建立会话的两个LSR之间是非直连的。
LDP消息类型
LDP协议主要使用四类消息:
· 发现(Discovery)消息:用于通告和维护网络中LSR的存在;
· 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话;
· 通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射;
· 通知(Notification)消息:用于提供建议性的消息和差错通知。
为保证LDP消息的可靠发送,除了Discovery消息使用UDP外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP传输。
标签空间与LDP标识符
LDP对等体之间分配标签的数值范围称为标签空间(Label Space)。可以为LSR的每个接口指定一个标签空间(per-Interface Label Space),也可以整个LSR使用一个标签空间(per-Platform Label Space)。
LDP标识符(LDP Identifier)用于标识特定LSR的标签空间范围,是一个六字节的数值,格式如下:
LSR ID:标签空间序号
其中,LSR ID占四字节,标签空间序号占两字节。
MPLS LDP的特性
LDP环路检测
在MPLS域中建立LSP也要防止产生环路,LDP环路检测机制可以检测LSP环路的出现,并避免标签请求等消息发生环路。
LDP环路检测有两种方式:
· 最大跳数
在传递标签绑定的消息中包含跳数信息,每经过一跳该值就加1。当该值超过规定的最大值时认为出现环路,终止LSP的建立过程。
· 路径向量
在传递标签绑定的消息中记录路径信息,每经过一跳,相应的路由器就检查自己的ID是否在此记录中。如果没有,将自己的ID添加到该记录中;如果有,说明出现了环路,终止LSP的建立过程。
LDP FRR
传统的IP FRR(Fast ReRoute)无法有效保护MPLS网络中的流量,VRP提供LDP FRR功能,为MPLS网络提供端口级的保护方案。
· LDP FRR的实现原理
LDP工作在下游自主标签分发(DU)、有序标签控制(Ordered)以及自由标签保持方式(Liberal)时,LSR会保存所有收到的标签映射,但只有从FEC对应路由的下一跳发送来的标签映射会生成标签转发表。
利用这一特点,如果为liberal标签映射也生成标签转发表,就相当于建立了备份LSP。
网络运行正常时,使用正常的LSP转发,如果正常LSP的出接口Down,使用备份LSP转发,这样可以在网络收敛之前的短时间内保证流量不中断。
· 基于BFD检测的LDP FRR
通常情况下,LDP FRR直接检测接口状态、或通过快速感知特性检测接口状态。
对于MPLS采用软件转发的产品,例如NE16E/08E/05路由器,还提供基于双向转发检测BFD(Bidirectional Forwarding Detection)的LDP FRR。这种情况下,通过被保护接口在端口状态表PST(Port State Table)中的状态触发倒换。
BFD的详细介绍请参考《VRP 配置指南 系统分册》“12 BFD配置”。
LDP的工作过程
本节介绍MPLS LDP的工作过程,请见下面的图示。
图1-1为LDP标签分发过程示意图。
图5-35 标签分发过程
本章前面提到,标签的分发过程有两种模式,主要区别在于标签映射的发布是上游请求(DoD)还是下游主动发布(DU)。下面分别描述这两种模式的标签分发过程。
DoD模式
上游LSR向下游LSR发送标签请求消息(Label Request Message),包含FEC的描述信息。下游LSR为此FEC分配标签,并将绑定的标签通过标签映射消息(Label Mapping Message)反馈给上游LSR。
下游LSR何时反馈标签映射消息,取决于该LSR采用的标签控制方式。
· 采用Ordered方式时,只有收到它的下游返回的标签映射消息后,才向其上游发送标签映射消息。
· 采用Independent方式时,不管有没有收到它的下游返回的标签映射消息,都立即向其上游发送标签映射消息。
上游LSR一般是根据其路由表中的信息来选择下游LSR。在图1-1中,LSP1沿途的LSR都采用Ordered方式,LSP2上的LSR F则采用Independent方式。
DU模式
下游LSR在LDP会话建立成功后,主动向其上游LSR发布标签映射消息。上游LSR保存标签映射信息,并根据路由表信息来处理收到的标签映射信息。
LDP基本操作
按照先后顺序,LDP的操作主要包括以下四个阶段:
· 发现阶段
· 会话建立与维护
· LSP建立与维护
· 会话撤销
发现阶段
在这一阶段,希望建立会话的LSR向相邻LSR周期性地发送Hello消息,通知相邻节点的本地对等关系。通过这一过程,LSR可以自动发现它的LDP对等体,而无需进行手工配置。
LDP有两种发现机制:
· 基本发现机制
基本发现机制用于发现本地的LDP对等体,即通过链路层直接相连的LSR,建立本地LDP会话。
这种方式下,LSR周期性以UDP报文形式从接口发送LDP链路Hello消息(LDP Link Hello),发往标识“子网内所有路由器”的组播地址。
LDP链路Hello消息带有接口的LDP标识符及其他相关信息,如果LSR在某个接口收到了LDP链路Hello消息,则表明在该接口(链路层)可能存在LDP对等体。
· 扩展发现机制
扩展发现机制用于发现远端的LDP对等体,即不通过链路层直接相连的LSR,建立远端LDP会话。
这种方式下,LSR周期性以UDP报文形式向指定的IP地址发送LDP目标Hello消息(LDP Targeted Hello)。
LDP目标Hello消息带有LSR的LDP标识符及其他相关信息,如果LSR收到LDP目标Hello消息,则表明在网络层可能存在LDP对等体。
LSR之间在LDP发现阶段建立Hello邻接关系,之后通过进一步的消息交换建立LDP会话。
会话建立与维护
对等关系建立之后,LSR开始建立会话。这一过程又可分为两步:
· 建立传输层连接,即,在LSR之间建立TCP连接;
· 随后对LSR之间的会话进行初始化,协商会话中涉及的各种参数,如LDP版本、标签分发方式、定时器值、标签空间等。
LSP建立与维护
LSP的建立过程实际就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR。这个过程是通过LDP实现的。下面结合DoD标签发布方式和有序标签控制方式来说明其主要步骤:
步骤 1 当网络的路由改变时,如果有一个边缘节点发现自己的路由表中出现了新的目的地址,并且这一地址不属于任何现有的FEC,则该边缘节点需要为这一目的地址建立一个新的FEC。边缘节点决定该FEC将要使用的路由,向其下游LSR发起标签请求消息,并指明是要为哪个FEC分配标签;
步骤 2 收到标签请求消息的下游LSR记录这一请求消息,根据本地的路由表找出对应该FEC的下一跳,继续向下游LSR发出标签请求消息;
步骤 3 当标签请求消息到达目的节点或MPLS网络的出节点时,如果这些节点尚有可供分配的标签,并且判定上述标签请求消息合法,则该节点为FEC分配标签,并向上游发出标签映射消息,标签映射消息中包含分配的标签等信息;
步骤 4 收到标签映射消息的LSR检查本地存储的标签请求消息状态。对于某一FEC的标签映射消息,如果数据库中记录了相应的标签请求消息,LSR将为该FEC进行标签分配,并在其标签转发表中增加相应的条目,然后向上游LSR发送标签映射消息;
步骤 5 当入节点LSR收到标签映射消息时,它也需要在标签转发表中增加相应的条目。这时,就完成了LSP的建立,接下来就可以对该FEC对应的数据分组进行标签转发了。
----结束
会话撤销
LDP通过检测会话连接上传输的LDP PDU来判断会话的完整性。
LSR为每个会话建立一个“生存状态”定时器,每收到一个LDP PDU时刷新该定时器。如果在收到新的LDP PDU之前定时器超时,LSR认为会话中断,对等关系失效。LSR将关闭相应的传输层连接,终止会话进程。
LDP使用的定时器
LDP使用不同的定时器来维持LDP邻接关系和LDP会话。
· Hello保持定时器:建立了Hello邻接关系的LDP对等体之间,通过周期性发送Hello报文表明自己希望继续维持这种邻接关系。如果Hello保持定时器超时,没有收到新的Hello报文,则拆除Hello邻接关系。
· 会话保持定时器:LDP对等体之间通过LDP会话连接上传送的LDP协议报文(PDU)维持LDP会话,如果会话保持定时器超时时没有收到任何LDP PDU,则关闭连接,结束LDP会话。
CR-LDP信令建立路径的过程
本节介绍通过CR-LDP信令建立路径的过程,包括以下内容。
· CR-LDP概述
· CR-LDP如何建立LSP隧道
CR-LDP概述
CR-LDP
基于约束路由的LDP机制CR-LDP(Constraint-Based Routing using LDP)是对普通LDP的扩展,在MPLS TE中用于从入节点到出节点建立一条显式路径,并在此路径上进行资源的预留。
所谓CR-LDP,是指入节点在发起建立LSP时,在标签请求消息中对LSP路由附加一定的约束信息。
CR-LDP的详细介绍可参考RFC3212(Constraint-Based LSP Setup using LDP)。
CR-LDP如何建立LSP隧道
CR-LDP采用DOD、Order方式来建立LSP。具体内容请参见LDP的工作过程。
MPLS LDP的高级特性
本节介绍MPLS LDP的一些高级特性,包括以下内容。
· 快速重路由
· LDP 环路检测
· 策略路由到LSP
快速重路由
简介
LDP快速重路由(LDP FRR)为MPLS网络提供快速重路由功能,实现本地的端口级备份。
与IGP快速收敛相比,事先计算备份端口,省去了故障发生后的路由计算时间以及LSP重新建立的时间,加快了保护倒换的速度。
LDP FRR的实现原理
LDP工作在下游自主标签分发(DU)、有序标签控制(Ordered)以及自由标签保持方式(Liberal)时,LSR会保存所有收到的标签映射,但只有从FEC对应路由的下一跳发送来的标签映射会生成标签转发表。
利用这一特点,如果为liberal标签映射也生成标签转发表,就相当于建立了备份LSP。
网络运行正常时,使用正常的LSP转发,如果正常LSP的出接口Down,使用备份LSP转发,这样可以在网络收敛之前的短时间内保证流量不中断。
基于BFD检测的LDP FRR
通常情况下,LDP FRR直接检测接口状态、或通过快速感知特性检测接口状态。
BFD的详细介绍请参考《VRP
DOCPROPERTY ProductFullName 配置指南 可靠性》“5 BFD配置”。
LDP 环路检测
如果对MPLS域进行环路检测,则必须在所有节点上都配置环路检测,并且需要在所有接口使能LDP之前进行配置。但在建立LDP会话时,并不要求双方的环路检测配置一致。
LDP环路检测有最大跳数和路径向量两种方式。
· 当环路检测采用最大跳数方式时,当超过规定的最大值即认为出现环路,LSP建立失败。缺省情况下,最大跳数为32;
· 当环路检测采用路径向量方式时,也需要规定LSP路径的最大值。缺省情况下,路径向量的最大跳数为32。路径信息记录表中已有本LSR的记录,或路径的跳数超过设置的最大值时,均认为出现环路,LSP建立失败。
对环路检测的修改只对修改后建立的LSP有效,即,修改环路检测配置不影响已经建立的LSP。可以在用户视图下采用reset mpls ldp命令使配置生效。
在采用路径向量方式配置环路检测时,本地路由触发和非本地路由触发的Egress LSP的处理方式不同。假设配置的路径向量最大跳数为n,本地路由触发的Egress LSP需要经过n+1跳才会检测到环路,而非本地路由触发的Egress LSP(Proxy Egress)经过n跳就能检测到环路。
策略路由到LSP
简介
策略路由依据用户制定的策略进行路由选择,可应用于安全、负载分担等目的。VRP支持策略路由到LSP,在MPLS网络中,可以使符合过滤条件的IP报文通过指定的LSP路径转发。
典型应用
在图1-2中,原网络有RouterA、RouterB、RouterC、RouterD、RouterE这几台路由器,为提供新业务增加了RouterF和RouterG两台路由器。新的业务通过RouterF、RouterG转发,老的业务通过原有网络。
图5-36 策略路由到LSP的应用
如果希望一部分新业务通过老的网络传输,可以在RouterA上配置策略路由到LSP,使符合特定条件的流量使用老的网络的LSP转发。
如果将策略路由到LSP与LDP FRR相结合,可以将流量指定到备份LSP转发。因为备份LSP上可能相对空闲,可以分担一部分流量。
MPLS基本术语
· LDP对等体
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签——FEC映射关系的两个LSR。两个LDP对等体可以同时通过一个LDP会话获得对方的标签映射消息,即,LDP协议可以是双向的。
· LDP会话
LDP会话用于在LSR之间交换标签映射、释放等消息。LDP会话可以分为两种类型:
· 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的。
· 远端LDP会话(Remote LDP Session):建立会话的两个LSR之间是非直连的。
· LDP消息类型
LDP协议主要使用四类消息:
· 发现(Discovery)消息:用于通告和维护网络中LSR的存在;
· 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话;
· 通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射;
· 通知(Notification)消息:用于提供建议性的消息和差错通知。
为保证LDP消息的可靠发送,除了Discovery消息使用UDP外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP传输。
· 标签空间
LDP对等体之间分配标签的数值范围称为标签空间(Label Space)。可以为LSR的每个接口指定一个标签空间(per-Interface Label Space),也可以整个LSR使用一个标签空间(per-Platform Label Space)。
标签空间是用来讨论标签分配/分发的。现存在两种标签空间:基于接口的,基于平台的。基于接口的标签空间是为每个接口分配一个空间。只有当LDP对等体直连到接口上时基于接口的标签空间才有意义。基于平台的标签空间是为多个接口分享同一个标签空间。
· LDP标识符
LDP标识符(LDP Identifier)用于标识特定LSR的标签空间范围,是一个六字节的数值,格式如下:
LSR ID:标签空间序号
其中,LSR ID占四字节,标签空间序号占两字节。
· LDP FRR
VRP提供LDP快速重路由功能,为MPLS网络提供端口级的保护方案。
· NHLFE
NHLFE(Next Hop Label Forwarding Entry):下一跳标签转发条目。用于描述对标签执行的操作,包括入栈(Push)、出栈(Pop)、交换(Swap)
· FTN
FTN(FEC to NHLFE):用于将转发等价类FEC映射到NHLFE。
参考资料清单
如果您想了解更多关于LDP的信息,请参考以下文档。
文档编号
描述
RFC 3031
Multiprotocol Label Switching Architecture
RFC 3032
MPLS Label Stack Encoding
RFC 3034
Use of Label Switching on Frame Relay Networks Specification
RFC 3035
MPLS using LDP and ATM VC Switching
RFC 3035
MPLS using LDP and ATM VC Switching
RFC 3036
LDP Specification
RFC3037
LDP Applicability
RFC3038
VCID Notification over ATM link for LDP
draft-bonica-icmp-mpls-02
ICMP Extensions for MultiProtocol Label Switching
draft-ietf-mpls-lsp-ping-07
Detecting MPLS Data Plane Failures
6 BGP/MPLS IP VPN
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref143848407 \h
BGP/MPLS IP VPN简介
介绍BGP/MPLS IP VPN的基本概念
REF _Ref151550523 \h
BGP/MPLS IP VPN基本原理
介绍MP-BGP、VPN路由选择和报文转发的基本实现原理及VPN QOS
REF _Ref151551081 \h
BGP/MPLS IP VPN基本组网
介绍VPN的几种基本组网方案,包括Intranet、Extranet及Hub&Spoke
REF _Ref83549726 \h
跨域VPN
介绍三种跨域方式VPN的路由发布和报文转发过程,并对三种方式的优缺点进行了描述
REF _Ref151551098 \h
运营商的运营商
介绍运营商的运营商组网方案的基本原理和优缺点,重点介绍路由发布和报文转发过程
REF _Ref143849059 \h
多角色主机
介绍为某个VPN中地理位置和角色相对固定的服务器或终端访问其他VPN的解决方案
REF _Ref143849314 \h
HoVPN
介绍分层VPN网络模型——多个PE承担不同的角色,并形成层次结构,共同完成一个PE功能,以降低对PE的性能要求
REF _Ref151551119 \h
OSPF VPN扩展
PE和CE之间使用OSPF交互VPN路由,使经过MPLS VPN骨干网的路由也成为OSPF区域内路由
REF _Ref151551128 \h
VPN与Internet互联
介绍VPN与Internet互联的实现方法
REF _Ref151551134 \h
参考资料清单
列举与BGP/MPLS IP VPN相关的RFC和IETF的draft参考文档
BGP/MPLS IP VPN简介
本节介绍如下内容:
· BGP/MPLS IP VPN概述
· 基本概念
BGP/MPLS IP VPN概述
什么是BGP/MPLS IP VPN
BGP/MPLS IP VPN是一种L3VPN(Layer 3 Virtual Private Network)。它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS(Multiprotocol Label Switch)在服务提供商骨干网上转发VPN报文。这里的IP是指服务提供商骨干网为IP网络。
BGP/MPLS IP VPN的基本模型如图5-1。
图6-37 BGP/MPLS IP VPN模型
BGP/MPLS IP VPN的基本模型由三部分组成:CE、PE和P。
· CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商SP(Service Provider)网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。
· PE(Provider Edge):服务提供商边缘路由器,是服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。
· P(Provider):服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN信息。
PE和P路由器仅由SP管理;CE设备仅由用户管理,除非用户把管理权委托给SP。
一台PE设备可以接入多台CE设备。一台CE设备也可以连接属于相同或不同服务提供商的多台PE设备。
为什么选择IP
Internet的迅速增长为ISP(Internet Service Provider)提供了巨大的商机,同时也对其骨干网络提出了更高的要求。人们希望IP网络不仅能够提供E-Mail、上网等服务,还能够提供宽带、实时性业务。ATM(Asynchronous Transfer Mode)因其快速的交换技术并能够提供多种业务曾被普遍看好。但实际的网络已经普遍采用IP技术,不可能使用纯ATM网络;现有ATM网络也一般用来承载IP。目前,运营商普遍使用IP网络作为VPN骨干网。
为什么选择MPLS
MPLS无缝地集成了IP路由技术的灵活性和ATM标签交换技术的简捷性。MPLS在无连接的IP网络中增加了面向连接的控制平面,为IP网络增添了管理和运营的手段。在IP网络中,MPLS流量工程技术成为一种主要的管理网络流量、减少拥塞、一定程度上保证IP网络的QoS的重要工具。
因此,使用基于MPLS的IP网络作为骨干网的VPN(MPLS VPN)越来越被运营商看好,成为在IP网络运营商提供增值业务的重要手段。
为什么选择BGP
BGP与IGP不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。VPN本身就是利用公共网络传递VPN数据,而公共网络通常已经应用IGP发现和计算自身的路由。构建VPN的关键在于控制VPN路由的传播,及如何在两个PE之间选择最佳的路由。
BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性。可以利用这一点来进行跨路由器的两个PE设备之间直接交换VPN路由。
BGP可以承载附加在路由后的任何信息,作为可选的BGP属性,任何不了解这些属性的BGP路由器都将透明的转发它们。这为在PE间传播VPN路由提供了便利。
路由更新时,BGP只发送更新的路由,大大减少了传播路由所占用的带宽,提供了在公共网络上传播大量的VPN路由的可能。
BGP是一种外部网关协议(EGP),因此实现跨运营商的VPN更加容易。
基本概念
site
在介绍VPN时经常会提到“site”,site(站点)的含义可以从下述几个方面理解:
· site是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过服务提供商网络实现。
如图5-2左半边的网络中,A市X公司总部网络是一个site;B市X公司分支机构网络是另一个site。这两个网络各自内部的任何IP设备之间不需要通过运营商网络就可以互通。
图6-38 Site示意图
· site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个site中的设备地理位置相邻。地理位置隔离的两组IP系统,如果它们使用专线互联,不需要通过服务提供商网络就可以互通,那么这两组IP系统也组成一个site。
如图5-2右半边网络,如果B市的分支机构网络不通过服务提供商网络,而是通过专线直接与A市的总部相连,那么A市的总部网络与B市的分支机构网络构成了一个site。
· 一个site中的设备可以属于多个VPN,换言之,一个site可以属于多个VPN。
如图5-3,X公司位于A市的决策部网络(Site A)允许与位于B市的研发部网络(Site B)和位于C市的财务部网络(Site C)互通。但是不允许Site B与Site C互通。这种情况下,可以构建两个VPN(VPN1和VPN2),Site A和Site B属于VPN1,Site A和Site C属于VPN2。这样,Site A就属于多个VPN。
图6-39 一个site属于多个VPN
· site通过CE连接到服务提供商网络,一个site可以包含多个CE,但一个CE只属于一个site。
根据site的情况,建议CE设备选择方案如下:
· 如果site只是一台主机,则这台主机就作为CE设备;
· 如果site是个子网,则使用交换机作为CE设备;
· 如果site是多个子网,则使用路由器作为CE设备。
对于多个连接到同一服务提供商网络的sites,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的sites之间才能通过服务提供商网络互访,这种集合就是VPN。
· 在本手册描述中,两个PE之间如果建立BGP会话连接交换VPN路由信息,则互相称对方为自己的对端PE(peer PE)。
· PE本身接入的CE称为该PE的本地CE(local CE)。
· 对端PE接入的CE称为远端CE(remote CE)。
· 在本章中描述的Site都是使用IPv4地址。
VPN实例
VPN实例(VPN-instance)也称为VPN路由转发表VRF(VPN Routing and Forwarding table)。PE上存在多个路由转发表,包括一个公网路由转发表,以及一个或多个VPN路由转发表。也就是说,PE上存在多个实例,包括一个公网实例和一个或多个VPN实例。
图6-40 VPN实例示意图
公网路由转发表与VPN路由转发表的不同在于:
· 公网路由表包括所有PE和P路由器的IPv4路由,由骨干网的路由协议或静态路由产生。
· VPN路由表包括属于该VPN实例的所有site的路由,通过CE与PE之间或者两个PE之间的VPN路由信息交互获得。
· 公网转发表是根据路由管理策略从公网路由表提取出来的最小转发信息;而VPN转发表是根据路由管理策略从对应的VPN路由表提取出来的最小转发信息。
可以看出,PE上的各VPN实例之间相互独立,并与公网路由转发表相互独立。
可以将每个VPN实例看作一台虚拟的路由器:维护独立的地址空间、有连接到该路由器的接口。
在RFC2547(BGP/MPLS VPNs)中,VPN实例被称为per-site forwarding table,顾名思义,VPN实例与site对应。更准确的描述是:每条CE与PE的连接对应一个VPN实例(但不是一一对应关系),实现这种对应关系的方法是将VPN实例和PE上与CE直接相连的接口关联(或称为绑定),这需要手工设置。
VPN实例通过路由标识符RD(Route Distinguisher)实现地址空间独立,通过VPN Target属性实现直连site的VPN成员关系和路由规则控制。
关于RD和VPN Target的介绍请参见本章下面的内容。
VPN、Site和VPN实例的关系
VPN实例、Site、VPN之间的关系如下:
· VPN是多个Site的组合。一个Site可以属于多个VPN。
· 每一个Site在PE上都关联一个VPN实例。VPN实例综合了它所关联的Site的VPN成员关系和路由规则。多个Site根据VPN实例的规则组合成一个VPN。
· VPN实例与VPN不是一一对应的关系。
地址空间重叠
PE从CE接收到私网路由后,需要将这些路由发布给其他PE。
VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。不同VPN的地址空间可能会在一定范围内重合,例如,VPN1和VPN2都使用 spaces overlapping)。
以下两种情况允许VPN使用重叠的地址空间:
· 两个VPN没有共同的site;
· 两个VPN有共同的site,但此site中的设备不与两个VPN中使用重叠地址空间的设备互访。
VPN-IPv4地址
传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1和VPN2都使用了
BGP选路规则的相关介绍请参见《VRP 特性描述 BGP》。
产生上述问题的原因是BGP无法区分不同VPN中相同的IP地址前缀,为解决这一问题,BGP/MPLS IP VPN使用了VPN-IPv4地址族。
VPN-IPv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀,如图5-5所示。
图6-41 VPN-IPv4地址结构
RD有两种格式:
· Type为0时,Administrator子字段占2字节,Assigned Number子字段占4字节。
其中,Administrator子字段是16bits自治系统号;Assigned Number子字段是32bits用户自定义数字。
· Type为1时,Administrator子字段占4字节,Assigned Number子字段占2字节。
其中,Administrator子字段是32bits IPv4地址;Assigned Number子字段是16bits用户自定义数字。
配置RD时,只需要指定RD的Administrator子字段和Assigned Number子字段。RD的配置格式有两种:
· 16bits自治系统号:32bits用户自定义数字(例如:100:1)。
· 32bits IPv4地址:16bits用户自定义数字(例如::1)。
本文描述的RD值均以RD的配置值表示,不带Type字段。
增加了RD的IPv4地址称为VPN-IPv4地址。PE从CE接收到IPv4路由后,转换为全局唯一的VPN-IPv4路由,并在公网上发布。RD为零的VPN-IPv4地址相当于普通IPv4地址。
RD
RD用于区分使用相同地址空间的IPv4前缀。RD的结构使得每个服务供应商可以独立地分配RD,但为了在CE双归属的情况下保证路由正常,必须保证RD全局唯一。
如果RD非全局唯一,在CE双归属的情况下将不能正确路由。如图5-6,CE以双归属方式接入到PE1和PE2。PE1同时作为路由反射器RR。
图6-42 CE双归属组网示意图
该组网中,没有故障的情况下,PE1作为骨干网边界设备发布一条IPv4前缀为
当PE1与CE之间的任何一条链路出现故障时,PE1会发布Update消息给PE3,通知删除到 PE2-> CE。
此时,出现以下情况能使PE3到
如果该VPN在PE1和PE2上的RD不同,那么PE3从PE1接收的到
为保证RD的唯一性,建议不要使用私有AS号或私有IP地址作为Administrator子字段的值。
RD不能用于判断某条路由的发起者,也不能判断某条路由源于哪个VPN。例如VRF-to-VRF方式的跨域VPN(请参见跨域VPN)中,不同ASBR(AS Boundary Routers) PE设备之间互相发布的路由并不携带RD。某个ASBR PE设备从其他AS的ASBR PE收到路由,并不知道该路由的发起者是哪个设备,源于哪个VPN。
VPN Target
BGP/MPLS IP VPN使用32位的BGP扩展团体属性-VPN Target(也称为Route Target)来控制VPN路由信息的发布。
每个VPN实例关联一个或多个VPN Target属性。有两类VPN Target属性:
· Export Target:本地PE从直接相连site学到IPv4路由后,转换为VPN IPv4路由,并为这些路由设置Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布。
· Import Target:PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例的路由表。
也就是说,VPN Target属性定义了一条VPN路由可以为哪些Site所接收,以及PE可以接收哪些Site发送来的路由。
当收到直连CE传过来的路由时,PE将该路由与一个或多个Export Target属性关联。Export Target属性将和VPN-IPv4路由一起由BGP发布给其他相关的PE。当这些相关的PE收到该VPN-IPv4路由时,将其Export Target属性与本设备所有的VPN实例的Import Target属性值比较。如果相等,就将该路由注入到该VPN路由表。
与RD类似,VPN Target有两种格式(如图5-7):
· Type为0时,Administrator子字段占2字节,Assigned Number子字段占4字节。
其中,Administrator子字段是16bits自治系统号;Assigned Number子字段是32bits用户自定义数字。
· Type为1时,Administrator子字段占4字节,Assigned Number子字段占2字节。
其中,Administrator子字段是32bits IPv4地址;Assigned Number子字段是16bits用户自定义数字。
图6-43 VPN-Target格式
配置VPN-Target时,只需要指定VPN-Target的Administrator子字段和Assigned Number子字段。VPN-Target的配置格式有两种:
· 16bits自治系统号:32bits用户自定义数字(例如:100:1)。
· 32bits IPv4地址:16bits用户自定义数字(例如::1)。
本文描述的VPN-Target值均以配置值表示,不带Type字段。
使用VPN Target而不直接用RD作为BGP扩展团体属性的原因在于:
· 一条VPN-IPv4路由只能有一个RD,但可以关联多个VPN Target属性;BGP如果携带多个扩展团体属性,可以大大提高网络的灵活性和可扩展性。
· VPN Target适用于同一PE上不同VPN之间的路由发布控制。即,同一PE上的不同VPN之间可以设置相同的VPN Target来实现路由的互相引入。
· 在同一PE上,不同VPN具有不同的RD,而BGP携带的扩展团体属性是有限的,如果直接用RD作为BGP扩展团体属性来实现路由的互相引入,势必影响网络的扩展。
在BGP/MPLS IP VPN网络中,通过VPN Target属性来控制VPN路由信息在各site之间的发布和接收。VPN Export Target和Import Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案,具体请参见BGP/MPLS IP VPN基本组网。
BGP/MPLS IP VPN基本原理
本节描述如下内容:
· MP-BGP
· PE上的VPN路由选择
· VPNv4路由发布
· 应用于BGP/MPLS IP VPN的隧道
· MP-BGP标签分配
· 基本BGP/MPLS IP VPN的路由发布
· 基本BGP/MPLS IP VPN报文转发
· BGP的AS号替换
· VPN路由反射器
· VPN QoS
MP-BGP
VPN为什么使用MP-BGP
前面提过,传统的BGP-4(RFC1771)只能管理IPv4的路由信息,无法正确处理地址空间重叠的VPN的路由。
为了正确处理VPN路由,VPN使用RFC2858(Multiprotocol Extensions for BGP-4)中规定的MP-BGP,即BGP-4的多协议扩展。MP-BGP实现了对多种网络层协议的支持,在Update报文中,将网络层协议信息反映到NLRI(Network Layer Reachability Information)及Next Hop。
MP-BGP采用地址族(Address Family)来区分不同的网络层协议,既可以支持传统的IPv4地址族,又可以支持其它地址族(比如VPN-IPv4地址族、IPv6地址族等)。关于地址族的一些取值可以参考RFC1700(Assigned Numbers)。
VRP实现多种MP-BGP扩展应用,包括对VPN的扩展、对IPv6的扩展等,不同的扩展应在各自的地址族视图下配置。默认情况下,对于IPv4地址族,只要指定了对等体的地址及其所在的AS,本端就自动具备与对等体建立会话能力。但是对于其他地址族,需要手工使能。
MP-BGP能够在PE路由器之间传播VPN组成信息和VPN-IPv4路由,是通过在BGP中引入扩展团体属性来实现的。
MP-BGP中引入了两个新的路径属性:
· MP_REACH_NLRI
· MP_UNREACH_NLRI
这两个属性都是可选非过渡(Optional non-transitive)的,不提供多协议能力的BGP发言者将忽略这两个属性的信息,不把它们传递给其它邻居。因此,在VPN中,提供多协议能力的PE设备将把VPN路由信息通过MP-BGP发布给具备该能力的对端PE或作为ASBR的PE。不具备该能力的其他BGP对等体将忽略该属性,也就不会识别和保存VPN路由信息。
可选非过渡是BGP的一种属性类型。如果BGP路由器不支持此类属性,则相应的Update消息会被忽略,且不会通告给其他对等体。
下面介绍这两个属性:
MP_REACH_NLRI
MP_REACH_NLRI(Multiprotocol Reachable NLRI),即多协议可达NLRI,用于发布可达路由及下一跳信息。该属性由一个或多个三元组<地址族信息、下一跳信息、网络可达性信息>组成,格式如下:
图6-44 MP_REACH_NLRI属性的格式
· 地址族信息(Address Family Information)域:由2字节的地址族标识AFI(Address Family Identifier)和1字节的子地址族标识SAFI(Subsequent Address Family Identifier)组成。
· AFI标识网络层协议,对应RFC1700的“Address Family Number”所定义的地址族值。例如IPv4的值是1,IPv6的值是2。
· SAFI表示NLRI的类型。
AFI值为1,SAFI值为128表示NLRI中的地址为MPLS-labeled VPN-IPv4地址。
· 下一跳信息(Next Hop Network Address Information)域:由一字节的下一跳网络地址长度和可变长度的下一跳网络地址组成。下一跳网络地址是指去往目的系统的路径上的下一个路由器网络地址。MP-BGP中,BGP发言者在向EBGP对等体发布MP_REACH_NLRI属性时,会把下一跳网络地址设置为本地与对端连接的接口地址。BGP发言者在向IBGP对等体发布MP_REACH_NLRI属性时,保持下一跳网络地址不变。
· 网络层可达性信息(NLRI)域:由一个或多个三元组<长度、标签、前缀>组成。其格式如下:
图6-45 携带标签的NLRI格式
· 长度域:标签域和前缀域的总比特数。
· 标签域:标签域由一个或多个标签组成,每个标签长度为3字节。标签的格式与MPLS中定义的一样,最高位表示是否为栈底,接下来三位为0,后面20位是标签值。关于标签的详细介绍请参见《VRP 特性描述 MPLS》。
· 前缀域:在BGP/MPLS IP VPN中,前缀域由RD和IPv4地址前缀组成。
当两个PE(或ASBR PE)之间交换VPN路由信息时,在Update消息中携带MP_REACH_NLRI属性。一个Update消息可以携带多条具有相同路由属性的可达路由信息。
MP_UNREACH_NLRI
MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI),即多协议不可达NLRI,用于通知对等体删除不可达的路由。该属性的格式如下:
图6-46 MP_UNREACH_NLRI属性的格式
· 地址族标识AFI:与MP_REACH_NLRI属性中的相同,用于标识网络层协议,对应RFC1700的“Address Family Number”所定义的地址族值。
· 子地址族标识SAFI:与MP_REACH_NLRI属性中的相同,表示NLRI的类型。
· 撤销路由(Withdrawn Routes):不可达路由列表,也是由一个或多个NLRI组成。BGP发言者可以通过在撤销路由域中携带与之前发布的可达路由中相同的NLRI来撤销路由。
BGP发言者通过携带MP_UNREACH_NLRI属性的Update消息来撤销VPN-IPv4路由。一个Update消息可以携带多条不可达路由信息。
当撤销路由时,如果指定了标签,只有指定的标签被撤销;如果没有指定标签,只有不带标签的路由被撤销。
携带MP_UNREACH_NLRI属性的Update消息不再携带其他路径属性。因为不同的路径分配的标签不同,对端只需根据标签来删除对应的路由。
MP-BGP能力协商
BGP路由器通过Open消息协商能力,通过查看OPEN消息中的能力参数来确定对等体所具有的能力(如使用多协议扩展来携带标签映射信息的能力)。BGP路由器如果支持某功能,并且确定对方也具备该能力,那么该BGP路由器将使用该功能与对等体交互。
Open消息包含可选的能力协商参数Capabilities,由一个或多个三元组<Parameter Type、Parameter Length、Parameter Value>组成。其格式如图5-11。
图6-47 BGP可选能力协商参数格式
· Capability Code:唯一标识了该能力的类型。该值为1表示BGP发言者具备MP-BGP能力。
· Capability Length:表示能力值域的长度。MP-BGP能力参数中,能力值域的长度为4。
· Capability Value:能力值域,可变长度,决定于Capability Code。MP-BGP能力参数中,能力值域的格式如图5-12。其中,
· AFI(2字节)和SAFI(1字节)的含义与MP_REACH_NLRI中的相同。
· Res.为保留域(1字节)。发送方应将其置0;接收方应忽略该域信息。
图6-48 MP-BGP能力值域的格式
目前BGP不支持动态能力协商。BGP发言者发布了一个携带可选能力参数后,
· 如果收到对端回应的Notification消息,表明对端不支持能力发布。此时BGP发言者将中断与该对等体的会话,发送一个不携带任何可选能力参数的Open消息,试图重新建立BGP连接。
· 如果对端支持能力发布,但该可选能力参数是未知的或不支持的,则协商失败。此时BGP发言者将中断与该对等体的会话,发送一个不携带该可选能力参数的Open消息(可能还携带其他可选能力参数),试图重新建立BGP连接。
因此BGP能力的变化,如使能或禁止标签路由能力、使能或禁止某地址族能力(如IPv4、IPv6、VPNv4、VPNv6)、使能GR能力等,BGP发言者都会中断与该邻居的会话,之后重新进行邻居能力协商。
BGP路由交互的条件
MP-BGP对等体之间进行路由交互,必须具备如下条件:
· MP-BGP对等体之间有互相到对方的可达路由
BGP的运行是通过消息驱动的,这些消息通过TCP协议进行传播(端口号是179)。为了在对等体之间建立TCP连接,MP-BGP对等体之间必需有到对方的可达路由。
BGP对等体不一定就是相邻的路由器,利用逻辑链路也可以建立BGP对等体关系。为了增强BGP连接的稳定性,使用32位掩码的Loopback接口地址建立连接。
BGP不会自己去发现和计算AS内部的路由信息,一般通过引入IGP路由、静态配置的路由或直连路由到BGP路由表中。
· MP-BGP对等体之间建立和维持BGP会话连接
Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间才进行其他类型消息的交换。因此MP-BGP对等体之间必须建立和维持BGP会话连接。
VPN-IPv4路由更新请求
以下几种情况,PE设备需要向对等体请求重传BGP Update消息来刷新路由:
· 本端入口策略发生变化
· 本端新增或删除VPN-Instance实例
· 本端VPN-Instance的VPN-Target属性的添加或删除
当需要向对等体请求重传BGP Update消息时,PE向已经和自己成功进行能力协商的邻居发送Route Refresh消息,其中携带AFI和SAFI。
邻居收到Route-Refresh消息会重传满足特定AFI和SAFI的所有路由。
PE上的VPN路由选择
私网路由交叉
两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到VPNv4路由,PE先进行如下处理:
· 检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。
· 对于RR发送过来的VPNv4路由,如果本地已有该路由,需检查其Cluster ID是否相同。如果相同,丢弃该路由。
· 进行BGP的路由策略过滤,如果不通过,拒丢弃该路由。
之后,PE把没有丢弃的路由与本地的各个VPN实例的Import Target属性匹配。
VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后,既不进行优选,也不检查隧道是否存在,直接将其与本地的VPN实例进行交叉。
PE上有种特殊的路由——来自本地CE的属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功,PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称为本地交叉。要使本地交叉成功,需要在被交叉的路由所属VPN对应的BGP-VPN实例地址族下引入直连路由。
为了能够将报文正确转发出去,BGP路由器必须先找到一个直接可达的地址,通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。
在PE上执行display ip routing-table vpn-instance vpn-instance-name verbose命令可查看该PE上交叉成功的私网路由和来自本地CE的路由。该命令的显示结果中,只有对应的状态带有“Active”的路由才被放入VPN实例路由表。VPN实例路由表的查看方法是执行不带参数verbose的display ip routing-table vpn-instance vpn-instance-name命令。
隧道迭代
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,查找合适的隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做隧道迭代。
关于隧道的详细介绍请参见“VPN隧道”。
隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID用于唯一标识一条隧道。VPN报文转发时根据Tunnel ID查找对应的隧道,然后从隧道上发送出去。
display ip routing-table vpn-instance vpn-instance-name verbose命令的显示结果中,路由的状态带有“GotQ”表示隧道迭代成功;带有“WaitQ”表示隧道迭代不成功。隧道迭代成功的交叉路由对应的隧道标识符(Tunnel ID)不为0x0。如果交叉路由的隧道标识符为0x0,表示隧道迭代不成功。去往本地CE的报文不从隧道转发,因此本地CE路由和本地交叉路由对应的隧道标识符都是0x0。
私网路由的选择规则
经过路由交叉和隧道迭代的路由并不是全部被放入VPN实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入VPN实例路由表。
对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:
· 同时存在直接从CE收到的路由和交叉成功后的同一目的地址路由,则优选从CE收到的路由。
· 同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉路由。
对于到同一目的地址的多条路由,如果进行路由的负载分担,则:
· 优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。
· 只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。
· 选择了交叉路由进行负载分担后,一旦从本地CE收到VPN路由,PE选择从本地CE收到的路由之间进行负载分担。
· 负载分担的AS-PATH属性必须完全相同。
VPNv4路由发布
PE设备通过MP-BGP发布给对端PE的VPNv4路由分为两种情况:
· 从本地CE接收的IPv4路由
· 没有配置负载分担时,从CE收到的路由直接转换为VPNv4的路由发送所有对等体
· 配置了负载分担后,从CE收到的路由优选后条数发生了变化,但发送给对等体的只有一条,下一跳为本PE设备。配置负载分担和取消负载分担的配置都会使PE重新发布这条VPNv4路由。
· 从其他对等体接收过来的VPNv4路由
PE把VPNv4路由向别的对等体发送前,需要检查是否从该对等体收到了RD相同的同一条路由:如果没有收到就发送给该对等体;如果收到了,则不再发送。
MP-BGP的VPN-IPv4路由发布策略仍与普通BGP相同:
· 存在多条有效路由时,BGP Speaker只将最优的路由发布给对等体。
· BGP Speaker只把自己使用的路由发布给对等体。
· BGP Speaker从EBGP获得的路由会向它所有BGP对等体发布(包括EBGP对等体和IBGP对等体)。
· BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布。
· BGP Speaker从IBGP获得的路由发布给它的EBGP对等体(在不使能BGP与IGP同步特性的情况下)。
· 连接一旦建立,BGP Speaker把自己所有BGP路由发布给新对等体。
应用于BGP/MPLS IP VPN的隧道
BGP/MPLS IP VPN中常用的隧道有:
· LSP隧道
使用标签转发,是应用于BGP/MPLS IP VPN中常见的隧道。使用LSP隧道作为BGP/MPLS IP VPN的公网隧道,骨干网在转发VPN数据转发时,只在PE设备分析IP报文头,而不用在VPN报文经过的每一台设备都分析IP报文头。这样,节约了对VPN报文的处理时间,可降低VPN报文时延。另外,标签能够被任意的链路层所支持。LSP在功能上与ATM和帧中继的虚电路相同,其安全性与ATM和帧中继网络相当。因此,如果传输BGP/MPLS IP VPN报文的骨干网设备都支持MPLS,建议使用LSP或MPLS TE(Traffic Engineered)作为公网隧道。
· GRE隧道
如果网络边缘的PE路由器具备MPLS功能,但骨干网核心路由器(P路由器)只提供纯IP功能,不具备MPLS功能。这样,就不能使用LSP作为公网隧道。此时,可以使用GRE隧道替代LSP作为VPN骨干网隧道。GRE的详细介绍请参见“GRE协议”。
· L2TP隧道
对于出差用户,不可能总是可以直接接入到MPLS骨干网的PE设备上。这样就无法通过Internet或者是IP骨干网直接访问MPLS VPN内部的站点。此时可以采用L2TP协议来解决此问题。这种技术也称为L2TP接入三层VPN技术。详细介绍请参见“L2TP协议”。
· MPLS TE隧道
MPLS TE是MPLS技术与TE流量工程相结合的技术,通过建立到达指定路径的LSP隧道进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的。MPLS TE中用到的这种LSP隧道就称为MPLS TE隧道,也是应用于BGP/MPLS IP VPN中常见的隧道。
除了具备LSP隧道的优势外,MPLS TE隧道在解决网络拥塞问题方面有着自己的优势。利用MPLS TE隧道,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。
在MPLS VPN业务中,运营商往往需要为VPN用户的各种业务类型(如语音业务、视频业务、关键数据业务、普通上网业务)提供端到端的QoS保证。为满足用户需求,可以使用MPLS TE隧道,为用户创建具有QoS保证的隧道。
此外,使用MPLS TE隧道,运营商还可以根据VPN用户的不同服务要求,通过一定的策略构建各种有QoS保证的VPN服务,具体请参见VPN QoS。
MP-BGP标签分配
MPLS及其标签的介绍请参见《VRP 特性描述 MPLS》。
在BGP/MPLS IP VPN中,PE通过MP-BGP发布给骨干网的其他相关的PE前,需要将私网路由与MPLS标签关联。当用户数据包在骨干网传输时,携带MPLS标签。
每个PE在分配标签前,需要发布一个标识自己的路由。该路由需要通过IGP发布给骨干网的其他PE节点,使其他节点根据该路由为PE分配标签。为了减少全网LSP数量,推荐使用只对32位掩码的Loopback接口的路由分配标签,一般与BGP会话使用同一个Loopback接口。
PE分配标签的方法有多种。VRP实现如下两种方法:
· 基于路由的MPLS标签分配:默认情况下,VRP为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,路由器入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对路由器容量的要求。
· 基于VPN的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
运营商的运营商(Carriers' Carrier)中采用基于路由的MPLS标签分配方式,在目前的VRP版本中,不能在运营商的运营商组网中使用基于VPN的MPLS标签分配。
基本BGP/MPLS IP VPN的路由发布
这里的基本BGP/MPLS IP VPN是指只包括一个运营商、MPLS骨干网不跨域,使用LSP为公网隧道,PE、P、CE设备不兼任其它功能(没有一台设备既是PE,又是CE)。
如果要了解其他BGP/MPLS IP VPN组网的路由信息发布,请参见后面对应组网中的描述。
概述
在基本BGP/MPLS IP VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器一般只维护自身接入的VPN的路由信息,不维护所有VPN路由。
VPN路由信息的发布过程包括三部分:
· 本地CE到入口PE
· 入口PE到出口PE
· 出口PE到远端CE
完成这三部分后,本地CE与远端CE之间建立可达路由,VPN路由信息能够在骨干网上发布。
下面分别对这三部分进行介绍。
本地CE到入口PE的路由信息交换
CE与直接相连的PE建立邻居或对等体关系后,把本站点的VPN路由发布给PE。CE与PE之间可以使用静态路由、RIP、OSPF、IS-IS或BGP。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。
PE上的各VPN路由转发表之间相互隔离,并与公网路由转发表相互独立。PE从CE学习路由信息时,PE需要区分该路由应注入哪个路由转发表。通常的静态路由和路由协议自身并不具备这种区分能力,必须使用手工配置实现:
· 如果CE与PE之间使用静态路由,需要在配置静态路由时指定VPN实例(使用命令ip route-static vpn-instance)。
通常情况下,静态路由用于stub VPN的CE与PE间交换路由,或者CE是个主机或者交换机的情况。如果CE是台主机或者交换机,通常在与之相连的PE上配置到该CE所在site的静态路由,无需使用路由协议。
· 如果一个VPN接收本VPN以外的、非PE发布的路由,并将这些路由发布给PE,这类VPN称为过渡VPN(transit VPN)。
· 只接收本VPN路由以及PE发布的路由的VPN称为stub VPN。
PE与CE之间采用静态路由的好处是配置简单,并且可以避免因CE设备的路由振荡影响骨干网PE设备的BGP VPNv6路由的稳定性。
· 如果CE与PE之间使用IGP,每个VPN单独使用一个进程,不同的VPN使用不同的进程。此时需要在配置IGP进程时指定VPN实例(例如,ospf process-id vpn-instance vpn-instance-name)。
当CE与PE之间使用IGP交换路由信息时,如果站点内包括后门连接(backdoor link)时,处理相对复杂,具体请参见OSPF VPN扩展。另外,在Hub&Spoke组网中IGP在CE与PE之间的使用也有一定的限制,具体请参见Hub-CE与Hub-PE使用IGP,Spoke-PE与Spoke-CE使用EBGP。
后门连接是指两个Site之间的连接,该连接不经过VPN骨干网。这两个site的流量主要通过VPN骨干网的链路传输,后门连接作为备份链路。
· 如果CE与PE之间运行EBGP,需要在相应的BGP VPN实例视图下使能MP-EBGP对等体。
从技术角度看,使用BGP是较好的选择:
· BGP是一种外部网关协议,可以用来实现不同AS之间传递路由信息。
· 使用BGP,CE更易于传递路由属性(如AS-PATH)给PE。
· BGP提供了丰富的路由策略,能够对VPN路由实现灵活的过滤和选择。
· 如果站点内包括backdoor,BGP也能正确处理,而使用IGP的处理相对复杂。
如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。但VPN站点使用的是私有AS号,不同VPN的站点可能使用相同的AS号。Transit VPN站点使用的AS号要求全局唯一。
Stub VPN站点可以复用相同的私有AS号,此时需要在PE上使用BGP的AS号替换功能。
入口PE到出口PE的路由信息交换
入口PE到出口PE的路由信息交换过程可分为三部分:
· PE从CE学到VPN路由信息后,为这些标准IPv4路由增加RD和VPN Target属性,形成VPN-IPv4路由,存放到VPN实例中。
· 入口PE通过MP-BGP的Update报文把VPN-IPv4路由发布给出口PE。Update报文中还携带RD、VPN-Target属性及MPLS标签。
BGP发布的VPN-IPv4路由,首先通过策略路由的过滤,然后通过BGP路由策略的过滤,才能被下一跳PE接收到。
出口PE收到VPN-IPv4路由后,进行本地交叉、隧道迭代和路由优选,决定是否将该路由加入到VPN实例的路由表。从其他PE接收的并被加入到VPN路由表的路由,本地PE为其保留如下信息以供后续转发报文时使用:
· MP-BGP Update消息中携带的MPLS标签值
· 隧道迭代成功后的Tunnel ID
出口PE到远端CE的路由信息交换
远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和BGP,与本地CE到入口PE的路由信息交换相同。此处不再赘述。值得注意的是,出口PE发布给远端CE的路由是普通IPv4路由。
VPN路由发布过程举例
下面以图5-13(PE-CE之间使用BGP,公网隧道为LSP)为例,说明将CE2的一条路由发送到CE1的过程。
图6-49 CE2->CE1的路由发布过程
2. 在CE2的BGP IPv4单播地址族下引入IGP路由。
3. CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE从连接CE2的接口收到Update消息,把该路由转化为VPN IPv4路由,加入对应的VPN实例路由表。如果Egress上有其他VPN实例的路由表,比较其Import RT是否与该路由的Export RT一样。如果一样,将该路由加入相应的VPN实例的路由表。
4. 同时,Egress PE为该路由分配MPLS标签,并将标签和VPNI IPv4路由信息加入MP-IBGP的Update消息中的NLRI,Export-RT属性加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给Ingress PE。
5. Ingress PE先要对该路由进行BGP的路由策略过滤。如果不通过,则拒绝接收;如果通过,则Ingress PE对该路由进行路由交叉。交叉成功则根据路由目的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该隧道的Tunnel ID和标签,并将路由加入该VPN实例路由表。
6. Ingress PE把该路由通过BGP Update消息发布给CE2。此时路由是普通IPv4路由。
7. CE2收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP路由的方法可使CE把该路由加入IGP路由表。
上面过程只是将CE2的路由发布给CE1。要实现CE1与CE2的互通,还需要将CE1的路由发布给CE2,其过程与上面的步骤类似,此处不再赘述。
基本BGP/MPLS IP VPN报文转发
这里的基本BGP/MPLS IP VPN是指只包括一个运营商、MPLS骨干网不跨域,使用LSP为公网隧道,PE、P、CE设备不兼任其它功能(没有一台设备既是PE,又是CE)。
如果要了解其他BGP/MPLS IP VPN组网方案的报文转发,请参见后面对应组网方案中的描述。
在BGP/MPLS IP VPN骨干网中,P路由器并不知道VPN路由信息,VPN报文通过隧道在PE之间转发。以图5-13为例说明BGP/MPLS IP VPN报文的转发过程。图5-14是CE1发送报文给CE2的过程。其中,I-L表示内层标签,O-L表示外层标签。
图6-50 VPN报文转发过程
8. CE1发送一个VPN报文。
9. Ingress PE从绑定了VPN实例的接口上接收VPN数据包后进行如下操作:
· 先根据绑定的VPN实例的RD查找对应VPN的转发表。
· 匹配目的IPv4前缀,查找对应的Tunnel-ID,
· 根据Tunnel-ID找到隧道,并打上对应的标签(I-L)。
· 将报文从隧道发送出去。此例的隧道是LSP,则打上公网(外层)MPLS标签头(O-L1)。
接着,该报文携带两层MPLS标签穿越骨干网。骨干网的每台P设备都对该报文进行外层标签交换。
10. Egress PE收到该携带两层标签的报文,交给MPLS协议处理。MPLS协议将去掉外层标签(此例最后的外层标签是O-L2)。
11. 此时Egress PE就可以看见内层标签,发现该标签处于栈底,将内层标签剥离。
12. Egress PE将报文从对应出接口发送给CE1。此时报文是个纯IP报文。
这样,报文就成功地从CE1传到CE2了。CE2按照普通的IP转发过程将报文传送到目的地。
BGP的AS号替换
VPN站点使用的是私有AS号,不同VPN的站点可能使用相同的AS号。由于EBGP使用AS号检测路由环路,如果PE和CE之间运行EBGP,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。
实现方法是在PE上配置BGP的AS号替换功能(在BGP-VPN实例视图下配置peer ip-address substitute-as命令),使复用的AS号在离开骨干网时剥离。此功能是BGP的出口策略,在发布路由时有效。
使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_Path中有与CE相同的AS号,将被替换成PE的AS号后再发布。对于对等体组,处理规则一样,即PE向对等体组中所有已建立连接的CE重新发送所有路由,并对发送路由中的AS_Path属性按上述规则替换。
图6-51 BGP AS号替换应用示意图
在图5-15中,CE1和CE2都使用AS号800,在PE2上使能针对CE2的AS号替换功能。当CE1发来的Update信息从PE2发布给CE2时,PE2发现AS_PATH中存在与CE2相同的AS号800,就把它替换为自己的AS号100,这样,CE2就可以正确接收CE1的路由信息。
对于PE使用不同接口连接多个CE的情况,如上图中的CE2和CE3,也可以使用BGP的AS号替换功能。
VPN路由反射器
BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布。为了让PE将自己接入的VPN的路由发布给同一个AS的BGP VPNv4对等体,该PE必须与所有对等体建立IBGP连接,以便直接交互VPN路由信息。即,MP-IBGP对等体之间需要建立全连接关系。假设在一个AS内部有n台PE(包括ASBR PE),那么应该建立的MP-IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,需要消耗大量网络资源和CPU资源。
利用BGP的路由反射RR(Route Reflector)可以解决这一问题。在一个AS内选择一台路由器作为RR(反射VPNv4路由),其它PE和ASBR PE做为客户机(Client)。RR可以是P路由、PE路由器、ASBR PE路由器或者其他路由器。为了减轻RR的负担,可以使RR只维护路由信息,不用于转发用户数据。
使用路由反射器,可以减少PE之间的MP-IBGP连接的数量,既减轻了PE的负担,也给维护和管理带来方便。
VPNv4路由的反射规则与IPv4路由反射规则一样,请参见《VRP 特性描述 BGP》。
VPN QoS
现有的VPN QoS解决方案
VPN用户需要的是一种端到端的QoS保证,PE-CE之间的QoS是用户自己的网络来保证的,因此对于MPLS VPN运营商来说就要实现两个PE之间对于VPN流量的QoS保证。
MPLS VPN骨干网使用MPLS转发VPN报文。MPLS具有面向连接的特点。MPLS作为一种叠加模型,可以方便地在物理的网络拓扑上建立一个虚拟的拓扑,然后将流量映射到这个拓扑上。如果针对该拓扑实施QoS,就有可能解决通过LSP的数据流的QoS问题。按照这个思路,DiffServ和IntServ模型被运用到MPLS中:
· MPLS同DiffServ结合,产生了MPLS DiffServ技术。
MPLS DiffServ提供了基于类的QoS,具有良好的可扩展性,但缺乏有效的端到端部署的机制。
· MPLS同IntServ的结合,产生了MPLS流量工程(Traffic Engineer)技术。
MPLS TE通过有效地管理带宽资源间接改善网络服务质量,但其带宽管理以及MPLS TE隧道都无法做到基于业务类别(例如时延)。如果EF(Expedited Forwarding)、AF(Assured Forwarding)、BE(Best-Effort)业务都承载在一个MPLS TE隧道中,各VPN竞争资源时EF和AF业务将受到严重的影响。
MPLS DiffServ-Aware TE在原来MPLS TE的基础上,增加了基于类别的资源管理,例如可根据带宽及时延的不同将接口资源划分为EF、AF、BE三类,通过信令协议携带类别建立LSP。
由于MPLS VPN网络是多个VPN用户共享的网络资源,普通的DiffServ模型和IntServ模型都不能满足用户的多样QoS需求。另外,用户期望运营商提供的VPN业务能达到物理专线,或是ATM PVC的QoS效果。
可能的VPN QoS解决方案有:
· Diffserv方式
这种方式先在PE间建立LSP,VPN流量进入PE前预先设置优先级,或者由PE设置优先级;进入MPLS域后,根据优先级在每一跳上进行不同的处理。
这种方式实现简单,但存在两个问题:
· 每一跳上为某个优先级分配的资源是被多个业务流共享的,包括VPN业务流,也包括其他业务流(如Internet业务流)。多个业务流之间存在着竞争。由于IP流量具有突发性的特点,如果按照高峰流量分配带宽,存在极大的资源浪费;如果按照平均流量分配带宽,则无法避免某个业务流在拥塞时发生的丢包。
· 业务流经过多个链路,虽然这些链路上都为优先级分配了带宽,但可能存在不匹配的情况,有些链路带宽是足够的,而有些链路可能不够,这就无法保证端到端的QoS。
· CE-CE专用隧道
为每一对CE-CE连接建立专用的TE隧道,这个TE隧道是有带宽保证,两端的PE-CE链路是专用的,因此保证了端到端的带宽。
这种方式的缺点是扩展性差,由于没有采用隧道复用技术,LSP的数目与CE的平方成正比,在骨干网中需要大量的LSP。MPLS TE需要有信令协议定时刷新整个隧道上的协议状态,消耗资源比较大。
上述这两种VPN QoS解决方案只能实现按优先级的QoS,无法区分具体VPN业务,或者扩展性差,无法复用。
VRP提供了两种具备VPN QoS特性的解决方案——资源隔离VPN和VPN隧道绑定,可以较好的解决这些问题,从而为企业网络互连以及虚拟业务平台等应用提供了适合的技术解决方案。
资源隔离VPN和VPN隧道绑定为解决MPLS VPN网络应用中,MPLS VPN运营商对承载的多个VPN的业务共享网络资源而提出的一种新的技术方案,可以满足每个VPN的QoS需求,从而提供VPN用户端到端的QoS服务要求。
资源隔离VPN解决方案
资源隔离VPN技术采用隧道复用技术,根据VPN对带宽的需求进行调整的方法实现VPN QoS保证。
图6-52 资源隔离VPN示意图
如图5-16,PE1和PE2都与两个VPN(VPNA和VPNB)相连,CE1与CE3属于VPNA,CE2与CE4属于VPNB;VPNA和VPNB共用PE1和PE2之间的Tunnel。以带宽为例,如果Tunnel配置的带宽是10M,VPNA需要2M,VPNB需要3M,通过配置资源隔离VPN特性,VPNA和VPNB的带宽都可以得到保证。
资源隔离VPN主要解决两个问题:
· 不同业务类型进行隧道资源抢占
可以把VPN业务的分为3~4种主要业务类型,如视频和语音,关键数据业务,普通上网业务(对应于DiffServ模型中的EF、AF和BE三种业务),或其他特殊业务类型。在两个PE设备之间创建3~4条隧道。其中每一条隧道对应了VPN用户的一种业务类型,让两个PE之间类型相同的VPN业务走同一条隧道,这样可以保证几种不同类型业资源隔离务之间不会有资源抢占问题。比如FTP流量不会影响到语音的时延和抖动。
如果由于新增的VPN用户或是用户对带宽的需求增加了,可以通过动态调整一条TE隧道的带宽,或是另外创建一条新的TE隧道来接纳VPN用户的业务。
· 同种业务类型对同一个隧道的资源抢占
如两个VPN用户都有语音流量进入了同一条TE隧道,两者之间也会产生资源竞争。这可以通过CAR来解决。运营商在向VPN用户提供服务时,和用户签订相关的QoS服务协议,比如总带宽、业务类型、每种业务类型的带宽等。在接入一个VPN用户的业务时,确定这个VPN用户的业务类型和对应的带宽要求。将VPN用户的业务和某个TE隧道关联时,确保用户的流量不会超过预知的带宽;如果超过,在TE隧道的入口做CAR来做带宽限制。
如果整个TE隧道的带宽并没有达到满负荷的程度,可以允许用户流量超过预定的带宽。
资源隔离VPN实现原理如下:
· 入口PE收到出口PE发布的私网路由信息后,查找对应的公网TE隧道。如果此隧道绑定了VPN实例且配置了QoS参数,比较绑定的VPN实例是否与私网路由所属的VPN实例一致。如果一致,将配置了QoS参数的VPN实例隧道与该私网路由关联,形成私网转发项,以此来指导转发。
· 接着在入口PE的绑定VPN的接口上应用策略路由;收到VPN数据后,从私网转发项中查找对应的QoS参数,匹配后,执行相应的QoS动作。
VPN隧道绑定
VPN隧道绑定是指在VPN骨干网的PE设备上将VPN的对端与某条MPLS TE隧道相关联。
例如图5-17,PE1和PE3之间建立了两条MPLS TE隧道(Tunnel1和Tunnel2)。
图6-53 VPN隧道绑定组网图
如果配置VPN隧道绑定,将VPNA与Tunnel1绑定,将VPNB与Tunnel2绑定,那么VPNA和VPNB分别使用专用的TE隧道,从而可以保证VPNA与VPNB的带宽需求,使VPNA业务和VPNB业务不受其他业务干扰,VPNA业务和VPNB业务也互不干扰。
VPN隧道绑定的特点:
· VPN到对端的数据固定地从专用的TE隧道传输。
· 被绑定的TE隧道只承载指定的VPN业务,不再承载其他VPN业务,以保证该VPN业务的QoS。
规划网络资源,建立不同QoS特性的MPLS TE隧道,然后通过手工配置,可以人为限定每个TE隧道能承载哪些VPN业务。因此可以充分利用网络资源,一定程度避免网络资源的浪费。
资源隔离VPN与VPN隧道绑定的比较
资源隔离VPN与VPN隧道绑定都能在一定程度上保证VPN业务的QoS。两者主要的区别在于:
· 资源隔离VPN采用隧道复用技术。在隧道复用的基础上,保证该隧道中承载的每个VPN的QoS。
资源隔离VPN中,一般将相同类型的VPN业务通过同一条隧道传输,不同类型的VPN业务通过不同的隧道传输。因此,对于从同一个Ingress PE到同一个Egress-PE的属于同一个VPN的数据,不同的业务类型可能通过不同的隧道传输。
· VPN隧道绑定并不关注隧道是否复用,也不区分VPN的业务类型。对于从同一个Ingress PE到同一个Egress-PE的属于同一个VPN的数据,不管其业务类型,都通过同一个隧道传输。VPN隧道绑定保证的是一个VPN的所有业务的QoS。
使用VPN隧道绑定,应对骨干网隧道进行整体规划,然后限定每个TE隧道能承载哪些VPN的业务。
典型应用
目前,MPLS VPN的主要应用包括企业互连和虚拟业务网络。对于企业互连应用,可通过MPLS VPN将分布在各地的分支机构、出差员工和合作伙伴联系在一起;而对于虚拟业务网络,运营商可在同一物理网络上运行多种业务,如VoIP、IPTV等,为每个业务建立一个VPN,实施业务隔离,此时MPLS VPN成为一种多业务承载平台。
· 企业互连
资源隔离的MPLS VPN具备与ATM、FR同样的QoS和安全性,可完全替代传统的专线,避免运营商维护运营多张物理网络的高成本、反应慢和业务定位不清晰的问题。
与传统的专线相比,MPLS VPN具有明显的优势。MPLS VPN可以实现“一点接入,全网连通”,支持异种介质的互连。而不像传统专线那样在每一对用户设备间采用同样的介质连接,可方便地提供普遍服务。
传统专线的带宽是固定的,用户租用的带宽固定,网络部署缓慢,扩容困难,用户只能选择被物理特性所限制的离散的带宽值。但是,MPLS VPN则可以实现“弹性带宽”,采用流量监管技术,在保证用户基本带宽的同时,对突发流量尽力而为,同时基本带宽也可以“软扩容”,即根据用户的需求在一个范围内连续选择。
· 虚拟业务平台
为每种业务建立一个专网,这种方案的建网成本和运维成本昂贵,在新业务层出不穷的今天,难以为继。但是,由于IP/MPLS具有与业务无关的特性,适合实现统一的多业务平台。而引入资源隔离或隧道绑定的MPLS VPN,可以消除各种业务在一个物理平台上传输所造成的影响。
在资源隔离或隧道绑定的MPLS VPN技术保证下,每种业务使用一个VPN,并与其它VPN在信息、用户、网络资源上隔离起来,就好象运行在一个物理专网上。通过资源隔离或隧道绑定的VPN,充分保证每个VPN的专有带宽,满足各类业务有不同的用户,不同的流量模型,不同的QoS要求。
BGP/MPLS IP VPN基本组网
本节介绍VPN的几种基本组网:
· Intranet
· Extranet
· Hub&Spoke
Intranet
最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。这种组网方式的VPN叫做Intranet VPN,其站点通常是属于同一个组织。
对于这种组网,需要为每个VPN分配一个VPN Target,作为该VPN的Export Target和Import Target,并且,此VPN Target不能被其他VPN使用。
图6-54 Intranet VPN组网方案
在图5-18中,PE上为VPN1分配的VPN Target值为100:1,为VPN2分配的VPN Target值为200:1。VPN1的两个site之间可以互访,VPN2的两个site之间也可以互访,但VPN1和VPN2的site之间不能互访。
Extranet
如果一个VPN用户希望提供部分本VPN的站点资源给其他VPN的用户访问,可以使用Extranet组网方案。
对于这种组网,如果某个VPN需要访问共享站点,则该VPN的Export Target必须包含在共享站点的VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。
图6-55 Extranet组网方案
在图5-19中,VPN1的site3能够被VPN1和VPN2访问:
· PE3能够接收PE1和PE2发布的VPN-IPv4路由;
· PE3发布的VPN-IPv4路由能够被PE1和PE2接收;
· 基于以上两点,VPN1的site1和site3之间能够互访,VPN2的site2和VPN1的site3之间能够互访;
· PE3不把从PE1接收的VPN-IPv4路由发布给PE2,也不把从PE2接收的VPN-IPv4路由发布给PE1,因此,VPN1的site1和VPN2的site2之间不能互访。
Hub&Spoke
基本原理
如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub&Spoke组网方案。其中,中心访问控制设备所在站点称为Hub站点,其他用户站点称为Spoke站点。Hub站点侧接入VPN骨干网的设备叫Hub-CE;Spoke站点侧接入VPN骨干网的设备叫Spoke-CE。VPN骨干网侧接入Hub站点的设备叫Hub-PE,接入Spoke站点的设备叫Spoke-PE。
Spoke站点需要把路由发布给Hub站点,再通过Hub站点发布给其他Spoke站点。Spoke站点之间不直接通过路由。Hub站点对Spoke站点之间的通讯进行集中控制。
对于这种组网情况,需要设置两个VPN Target,一个表示“Hub”,另一个表示“Spoke”。
各site在PE上的VPN实例的VPN Target设置规则为:
· 连接Spoke站点的PE(Spoke-PE):Export Target为“Spoke”,Import Target为“Hub”;
· 连接Hub站点的PE(Hub-PE):Hub-PE上需要使用两个接口或子接口,一个用于接收Spoke-PE发来的路由,其VPN实例的Import Target为“Spoke”;另一个用于向Spoke-PE发布路由,其VPN实例的Export Target为“Hub”。
图6-56 Hub&Spoke组网Site2到Site1的路由发布途经
在图5-20中,Spoke站点之间的通信通过Hub站点进行(图中箭头所示为site2的路由向site1的发布过程):
· Hub-PE能够接收所有Spoke-PE发布的VPN-IPv4路由;
· Hub-PE发布的VPN-IPv4路由能够为所有Spoke-PE接收;
· Hub-PE将从Spoke-PE学到的路由发布给CE-Spok,并将从CE-Hub学到的路由发布给所有Spoke-Hub。因此,Spoke站点之间可以通过Hub站点互访。
· 任意Spoke-PE的Import Target属性不与其它Spoke-PE的Export Target属性相同。因此,任意两个Spoke-PE之间不直接发布VPN-IPv4路由,Spoke站点之间不能直接互访。
图5-20中的site1和site2之间通讯数据的传输路径请参见图5-21(图中箭头所示为数据传输方向)。
图6-57 Site1到Site2的数据传输途经
Hub&Spoke组网方案
Hub&Spoke有以下组网方案:
· Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用EBGP
· Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用IGP
· Hub-CE与Hub-PE使用EBGP,Spoke-PE与Spoke-CE使用IGP
· Hub-CE与Hub-PE使用IGP,Spoke-PE与Spoke-CE使用EBGP
其中,前三种组网方案可以通过一定的策略实现,最后一种组网方案行不通。
下面详细介绍这几种方案:
Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用EBGP
图6-58 Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用EBGP组网
以图5-22为例,路由从Spoke-CE1发布到Spoke-CE2的大体过程如下:
2. Spoke-CE1通过EBGP将路由发布给Spoke-PE1。
3. Spoke-PE1通过IBGP将该路由发布给Hub-PE。
4. Hub-PE通过BGP-VPN实例(VPN-in)的Import Target属性将该路由引入VPN-in路由表,并通过EBGP发布给Hub-CE。
5. Hub-CE通过EBGP连接学习到该路由,并通过另一个EBGP连接将该路由发布给Hub-PE的VPN实例(VPN-out)。
6. Hub-PE通过VPN-out的Export Target属性发布该路由给所有Spoke-PE。
7. Spoke-PE2通过EBGP将该路由发布给Spoke-CE2。
VRP实现中,BGP向邻居发送路由的原则是:
· BGP向对端Peer(无论是IBGP peer还是EBGP peer)发送路由时,不检查路由的AS_Path属性是否包含Peer的AS号;相应的AS-Loop的检查由接收方进行。BGP Peer会将它学到的路由向所有Peer发送,不管这些路由是否同从一个AS学到。
· 默认情况下,BGP会检查EBGP对等体发来的路由的AS_Path属性,如果其中已存在本地AS号,则BGP会丢弃此路由,以免形成路由环路。
· 从某个Peer收到的路由不再发送给该Peer,减少无谓的网络流量。
Hub&Spoke中,来自Spoke-CE的路由需要在Hub-CE和Hub-PE上转一圈再发给其他Spoke-PE。根据以上原则,如果Hub-PE与Hub-CE之间使用EBGP,Hub-PE会对该路由进行AS-Loop检查。此时,Hub-PE发现该路由已包含自己的AS号,于是丢弃此路由。因此,如果Hub-PE与Hub-CE之间使用EBGP,为了实现Hub&Spoke,Hub-PE上必须手工配置允许本地AS编号重复(在BGP-VPNv4地址族视图下配置命令peer { ip-address | group-name } allow-as-loop [ number ])。
Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用IGP
图6-59 Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用IGP组网
以图5-23为例,路由从Spoke-CE1发布到Spoke-CE2的大体过程如下:
2. Spoke-CE1通过OSPF100将路由发布给Spoke-PE1。
3. Spoke-PE1通过IBGP将路由发布给Hub-PE。
4. Hub-PE通过VPN实例(VPN-in)的Import Target属性将该路由引入VPN-in路由表;并通过OSPF100多实例发布给Hub-CE。
5. Hub-CE通过OSPF100接收该路由;并通过OSPF200将路由发布给Hub-PE。
6. Hub-PE的BGP-VPN实例(VPN-out)引入OSPF100多实例的路由,通过Export Target属性将路由发布给所有Spoke-PE。
7. Spoke-PE2通过OSPF100多实例将该路由发布给Spoke-CE2。
由于所有的PE-CE之间都使用IGP交换路由信息,IGP路由不携带AS-PATH属性,所以BGP VPNv4路由的AS-PATH都为空。
Hub-CE与Hub-PE使用EBGP,Spoke-PE与Spoke-CE使用IGP
图6-60 Hub-CE与Hub-PE使用EBGP,Spoke-PE与Spoke-CE使用IGP组网
与Hub-CE与Hub-PE,Spoke-PE与Spoke-CE使用EBGP组网的实现类似,Hub-PE从Hub-CE接收来自Spoke-CE的路由的AS-PATH属性已包含该Hub-PE所在AS的编号。因此,必须在Hub-PE上手工配置允许本地AS编号重复出现(在BGP-VPNv4地址族视图下配置命令peer { ip-address | group-name } allow-as-loop [ number ])。
Hub-CE与Hub-PE使用IGP,Spoke-PE与Spoke-CE使用EBGP
图6-61 Hub-CE与Hub-PE使用IGP,Spoke-PE与Spoke-CE使用EBGP组网
这种组网方案行不通。原因如下:
以图5-25为例,路由(目的地址为
2. Spoke-CE1通过EBGP将路由发布给Spoke-PE1。
3. Spoke-PE1通过IBGP将路由发布给Hub-PE。
4. Hub-PE通过BGP-VPN实例(VPN-in)的Import Target属性将该路由引入VPN-in路由表;并通过OSPF100多实例发布给Hub-CE。
5. Hub-CE通过OSPF100学习到该路由;并通过OSPF200将路由发布给Hub-PE。
6. Hub-PE的BGP-VPN实例(VPN-out)引入OSPF200多实例路由,并通过VPN-out的Export Target属性将路由发布给所有Spoke-PE。
7. Spoke-PE2的VPN实例通过Import Target属性引入该路由;Spoke-PE2通过EBGP发布给本地Spoke-CE2。
Hub-PE的BGP-VPN实例(VPN-out)通过Export Target属性将路由发布给Spoke-PE2的同时,也会将该路由发布给Spoke-PE1。此时,这条路由是Hub-PE通过IGP(OSPF200多实例)引入的,由于IGP路由不携带AS-PATH属性,AS-PATH为空;而原来从Spoke-CE1来的
8. Spoke-CE1来的路由就变成非最佳路由,导致Spoke-PE1发布Update撤销路由的报文给Hub-PE。
9. Hub-PE撤销发给Hub-CE的路由。
10. Hub-CE撤销发给Hub-PE的路由。
11. Hub-PE撤销发给Spoke-PE1的路由。
于是在Spoke-PE1上从Spoke-CE1来的路由又变成最佳路由。Spoke-PE1又通过IBGP将路由发布给Hub-PE。Hub-PE又会返回该路由,从Spoke-CE1来的路由又变成非最佳路由。如此反复。
跨域VPN
本节介绍如下内容:
· 概述
· 跨域VPN-OptionA方式
· 跨域VPN-OptionB方式
· 跨域VPN-OptionC方式
· 跨域VPN的其他方案
概述
跨域VPN的产生
随着MPLS VPN解决方案的广泛应用,国内运营商的不同城域网之间,或相互协作的不同运营商的骨干网之间都存在着跨越不同自治域的情况。
一般的MPLS VPN体系结构都是在一个自治系统内运行,任何VPN的路由信息都是可以在一个自治系统内按需扩散,没有提供自治系统内的VPN信息向其他自治系统扩散的功能。因此,为了支持运营商之间的VPN路由选择信息交换,就需要扩展现有的协议和修改MPLS VPN体系框架,提供一个不同于基本的MPLS VPN体系结构所提供的互连模型——跨域(Inter-AS)的MPLS VPN,以便可以穿过运营商间的链路来发布路由前缀和标签信息。
跨域VPN的解决方案
RFC2547bis中提出了三种跨域VPN解决方案,分别是:
· 跨域VPN-OptionA(Inter-Provider Backbones Option A)方式:需要跨域的VPN在ASBR间通过专用的接口管理自己的VPN路由,也称为VRF-to-VRF;
· 跨域VPN-OptionB(Inter-Provider Backbones Option B)方式:ASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为EBGP Redistribution of labeled VPN-IPv4 routes;
· 跨域VPN-OptionC(Inter-Provider Backbones Option C)方式:PE间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由,也称为Multihop EBGP redistribution of labeled VPN-IPv4 routes。
VRP支持以上三种解决方案,下面逐一对这些方案进行介绍。
跨域VPN-OptionA方式
跨域VPN-OptionA概述
跨域VPN-OptionA实际是基本BGP/MPLS IP VPN在跨域环境下的应用,不需要专门配置。这种方式下,两个AS的边界路由器ASBR直接相连,ASBR同时也是各自所在自治系统的PE(这里被称为ASBR PE)。两个ASBR PE都把对端ASBR PE看作自己的CE设备,使用EBGP方式向对端发布IPv4路由。
图6-62 ASBR间使用OptionA方式管理VPN路由组网图
在图5-26中,对于AS100的ASBR-PE1来说,AS200的ASBR-PE2只是它的一台CE设备;同样,对于ASBR-PE2,ASBR-PE1也只是一台接入的CE设备。
跨域VPN-OptionA的特点
VRF-to-VRF方式实现跨域VPN的优点是简单:ASBR PE之间不需要运行MPLS,也不需要为跨域进行特殊配置。
缺点是可扩展性差:ASBR PE需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致PE上的VPN-IPv4路由数量过大。并且,由于ASBR PE间是普通的IP转发,要求为每个跨域的VPN使用不同的接口(可以是子接口、物理接口、捆绑的逻辑接口),从而提高了对PE设备的要求。如果跨越多个自治域,中间域必须支持VPN业务,不仅配置量大,而且对中间域影响大。在需要跨域的VPN数量比较少的情况,可以考虑使用。
跨域VPN-OptionA的路由信息发布
在PE和ASBR PE之间运行MP-IBGP协议交换VPN-IPv4路由信息。两个ASBR :PE之间可以运行普通的PE-CE路由协议(BGP或IGP多实例)或静态路由来交互VPN信息;但这是不同AS之间的交互,不建议使用IGP多实例。
VRF-to-VRF方案应用的信令和基本AS内的MPLS VPN一样,因此不需要扩展任何信令协议,也不需要增加特殊的处理流程。
比如CE1将目的地址为 label表示所携带的私网标签。图中省略了公网IGP路由和标签的分配。
图6-63 跨域VPN-OptionA的路由信息发布
跨域VPN-OptionA的报文转发
以LSP为公网隧道的报文转发流程如图5-28。其中,L1和L2表示私网标签,L'1和L'2表示AS100的公网外层隧道标签;L'3和L'4表示AS200的公网外层隧道标签。IP表示IP数据包。
图6-64 VRF-to-VRF报文转发
VPN报文在每个AS内的转发机制和普通的域内的MPLS VPN一样。由于PE和ASBR PE之间可能有P设备,报文转发时需要加上AS内的外层标签,并且在P设备上进行标签交换。如果支持倒数第二跳弹出PHP(Penultimate Hop Popping),到PE设备时报文应该只剩下一层标签。在两个ASBR PE之间是普通的IP转发,不能区分VPN,因此不同的VPN需要在ASBR PE之间使用独享的逻辑链路。
跨域VPN-OptionB方式
跨域VPN-OptionB概述
跨域VPN-OptionB中,两个ASBR通过MP-EBGP交换它们从各自AS的PE路由器接收的标签VPN-IPv4路由。
路由发布过程如下:
1. AS100内的PE先通过MP-IBGP方式把标签VPN-IPv4路由发布给AS100的ASBR PE,或发布给为PE反射路由的路由反射器RR(Route Reflector)。
2. ASBR-PE1通过MP-EBGP方式把标签VPN-IPv4路由发布给ASBR-PE2。
3. ASBR-PE2再通过MP-IBGP方式把标签VPN-IPv4路由发布给AS200内的PE,或发布给为PE反射路由的路由反射器。
图6-65 ASBR间通过跨域VPN-OptionB方式发布标签VPN-IPv4路由组网图
跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN的路由,再把VPN发布出去。但MPLS VPN的基本实现中,PE上只保存与本地VPN实例的VPN-Target相匹配的VPN路由。因此,如果ASBR上没有配置对应的VPN实例,可采取以下三种方法:
· ASBR对标签VPN-IPv4路由进行特殊处理,让ASBR把收到的VPN路由全部的保存下来,而不管本地是否有和它匹配的VPN实例。
采用该方案时,需要注意:
· ASBR之间不对接收的VPN-IPv4路由进行VPN Target过滤,因此,交换VPN-IPv4路由的各AS服务提供商之间需要就这种路由交换达成信任协议;
· VPN-IPv4路由交换仅发生在私网对等点之间,不能与公网交换VPN-IPv4路由,也不能与没有达成信任协议的MP-EBGP对等体交换VPN-IPv4路由。
这种方案的优点是所有的流量都经过ASBR转发,流量的可控性较好,但ASBR的负担重。
· 使用BGP路由策略(如对RT的过滤)控制VPN-IPv4路由信息的收发。
· 在ASBR上配置需要通过该ASBR传递路由的VPN实例,但不绑定任何接口。
跨域VPN-OptionB的特点
与Option A相比,不受ASBR之间互连链路数目的限制。
此方案也有局限性:VPN的路由信息是通过AS之间的ASBR路由器来保存和扩散的,当VPN路由较多时,ASBR负担重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再负责公网IP转发。
跨域VPN-OptionB的路由信息发布
在两个ASBR之间运行MP-EBGP,MP-EBGP将一个域内的所有的VPN信息传递给另一个域,传递的是私网路由和标签信息。MP-EBGP在传递路由时,需要改变路由的下一跳。根据标签分配原则,当一个FEC(Forwarding Equivalence Class)的下一跳被改变时,必须在本地更换标签。因此,ASBR在收到域内的VPN路由信息,再向外发布时,必须给这些VPN路由信息重新分配标签,即ASBR需要对新旧标签进行一个标签的交换操作。VPN路由信息带着新的标签发布给其他AS的ASBR。
对端的ASBR收到从MP-EBGP来的VPN路由信息后,在本地保存,再继续向自己域内的PE设备扩散。当此ASBR向域内的MP-IBGP邻居发布路由时,将下一跳改为自己。
比如在CE1中有一条 label表示所携带的私网标签。图中省略了公网IGP路由和标签的分配。
图6-66 跨域VPN-OptionB的路由信息发布
在ASBR-PE1和ASBR-PE2上都对VPN路由交换内层标签。整条VPN LSP由三段组成:每个域内有一段VPN LSP;两个ASBR之间有一段独立的VPN LSP,域间的标签由BGP携带,因此ASBR之间不需要运行LDP或RSVP等协议。
跨域VPN-OptionB的报文转发
在跨域VPN-OptionB方式的报文转发中,在两个ASBR上都要对VPN的LSP做一次交换。以LSP为公网隧道的报文转发流程如图5-31。其中,L1、L2和L3表示私网标签。L'1和L'2表示AS100的公网外层隧道标签;L'3和L'4表示AS200的公网外层隧道标签。IP表示IP数据包。
图6-67 跨域VPN-OptionB的报文转发
在PE之间的转发过程中,路由器只分析报文的最外层标签,不区分该标签是公网标签还是私网标签。在ASBR PE间转发时只有一层私网标签,不涉及公网标签,报文通过私网标签的交换而转发。
跨域VPN-OptionC方式
跨域VPN-OptionC概述
前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR就很可能成为阻碍网络进一步扩展的瓶颈。
解决上述问题的方案是:ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由。
· ASBR通过MP-IBGP向各自AS内的PE路由器发布标签IPv4路由,并将到达本AS内PE的标签IPv4路由通告给它在对端AS的ASBR对等体,过渡自治系统中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口PE之间建立一条LDP LSP;
· 不同AS的PE之间建立Multihop方式的EBGP连接,交换VPN-IPv4路由;
· ASBR上不保存VPN-IPv4路由,相互之间也不通告VPN-IPv4路由。
图6-68 PE间通过跨域VPN-OptionC方式发布标签VPN-IPv4路由
为提高可扩展性,可以在每个AS中指定一个路由反射器RR(如图5-33),由RR保存所有VPN-IPv4路由,与AS的PE交换VPN-IPv4路由信息。两个AS的RR之间建立MP-EBGP连接,通告VPN-IPv4路由。
图6-69 采用RR的跨域VPN OptionC方式组网图
跨域VPN-OptionC的特点
跨域VPN-OptionC组网方案有如下优势:
· VPN路由在入口PE和出口PE之间直接交互,不需要中间设备的保存和转发。
· VPN的路由信息只出现在PE设备上,而P和ASBR路由器只负责报文的转发,使得中间域的设备可以不支持MPLS VPN业务,只需支持IP转发,ASBR设备不再成为性能瓶颈。因此跨域VPN-OptionC更适合在跨越多个AS时使用。
· 更适合支持MPLS VPN的负载分担。
跨域VPN-OptionC的路由信息发布
跨域VPN-OptionC关键实现是公网跨域隧道的建立。
比如在CE1中有一条 label表示所携带的私网标签。图中省略了公网IGP路由和标签的分配。
图6-70 跨域VPN-OptionC的标签分配
公网跨域隧道的建立过程如下:
2. PE1发布自己的地址 PE1。域内标签信令协议为这条路由创建了一条公网LSP。
3. ASBR1把这条路由向对端的ASBR2发送时,为该路由分配一个标签L1(此时该路由携带标签,称为标签IPv4路由)。
两个ASBR之间虽然交互的是公网路由,但与普通公网路由不同,该路由携带了标签,称为标签路由(请参见RFC3107)。此处将标签路由的LSP称为BGP LSP。
4. 对端的ASBR-PE2学到这条公网路由后,也为这条公网分配一个新的标签L2,即在本地形成标签的交换信息。接着,ASBR-PE2把该路由发布给PE2。
两个AS并不需要为域内的每一条公网路由分配标签,只需为VPN路由下一跳分配标签。
5. PE2通过IBGP学到该标签路由后,根据BGP路由的下一跳地址来迭代一条域内IGP路由。
在图5-34中,PE2收到了 LSP,与AS100的公网LSP一起形成一条跨域的公网LSP。
这样,在PE1和PE2之间就建立了一条端到端的LSP隧道。将VPN路由关联到这条隧道上,PE1就可以直接分配私网标签给PE2。
报文转发
报文从PE2转出时,需要压上三层标签,分别的VPN路由的标签,BGP LSP的标签,公网LSP的标签。到ASBR2时,就只剩下两层标签了,分别是VPN的路由标签和BGP LSP的标签,进入ASBR1后,BGP LSP就终结掉了,就剩下VPN路由的标签和公网LSP的标签了,以后就是普通的MPLS VPN的转发流程了。
以LSP为公网隧道的报文转发流程如图5-35。其中,L1表示私网标签,L'1和L'2表示公网跨域隧道的内层标签,L''1、L''2、L''3和L''4表示域内公网外层隧道标签。IP表示IP数据包。
图6-71 跨域VPN-OptionC的报文转发
跨域VPN的其他方案
根据MPLS转发原则,对于单层标签所构成的LSP,如果需要跨过多台LSR转发,有以下两种方法:
· 在每台LSR上进行SWAP操作。
· 使用隧道技术进行透明传输。
对于跨域的情况,ASBR之间如果跨越多台LSR,那么必须在每台LSR上都要为私网路由分配标签。如果ASBR之间不存在运行MP-BGP的设备,不具备为VPN路由分配标签的能力,可以使用隧道技术。通常使用GRE(MPLS VPN over GRE),如图5-36。
图6-72 使用GRE的跨域VPN
运营商的运营商
本节介绍如下内容:
· 概述
· 二级运营商是普通ISP
· 二级运营商是BGP/MPLS IP VPN ISP
概述
基本概念
BGP/MPLS IP VPN服务提供商的用户本身也可能是一个服务提供商。这种情况下,前者称为提供商运营商(provider carrier)或一级运营商(first carrier),后者称为客户运营商(customer carrier)或二级运营商(second carrier),如图5-37。这种组网模型称为运营商的运营商(carriers' carrier),低级别的SP作为更高级别SP的VPN客户。
图6-73 运营商的运营商组网示例
为保持良好的可扩展性,二级运营商采用类似stub VPN的工作方式,即,CE只把自己所属VPN的路由发布给一级运营商的PE,不发布自己客户的路由。在本节的描述中,前一种路由称为内部路由,后一种路由称为外部路由。
内部路由和外部路由的区别:
· 内部路由是由二级运营商SP站点的路由。外部路由是指二级运营商客户站点的路由,即二级运营商的VPN路由。
· 内部路由需要在相关的一级运营商PE间运行BGP交换。外部路由不发布给一级运营商的PE设备,只在相关二级运营商PE间运行BGP交换。
· 客户BGP/MPLS VPN服务提供商(custom carrier)的VPN-IPv4路由被看作外部路由,骨干BGP/MPLS VPN服务提供商(provider carrier)并不将这些路由引入到它自己的VPN路由转发表,它只引入客户BGP/MPLS VPN服务提供商的内部路由。这样,大大减少了一级运营商网络中需要维护的路由数量。二级运营商需要维护内部路由和外部路由。
本章描述中的二级运营商CE设备指二级运营商接入一级运营商所使用的设备;而用户接入二级运营商的设备称为用户CE设备。
运营商的运营商优缺点
运营商的运营商组网方案具有以下优势:
· 可以减轻二级运营商的配置、管理和维护的负担,交由一级运营商来承担。
· 二级运营商使用的地址独立于其客户及一级运营商,便于二级运营商的地址规划。
· 一级运营商可以使用一个骨干网就可以为多个二级运营商提供VPN服务,同时提供其他的VPN服务和Internet服务,增加了一级运营商的收益。
· 一级运营商不必为每个运营商维护单独的骨干网,使用同样的方式管理和维护每个二级运营商的VPN业务,从而简化一级运营商的操作。
运营商的运营商也有其不足之处,它是一种严格的对称组网方式,要求用户分布在相同层次上。只有相同层次上的VPN用户之间才能互访;不同层次之间的VPN用户之间不能互访。
在同一层次的VPN用户之间直接交互VPN路由信息。因此,需要确保同一层次的路由可达,处于一个层次的用户必须维护该层面的路由信息。并且,同一层次的PE设备之间需要直接交互VPNv4路由信息。
实现原理
与普通BGP/MPLS IP VPN相比,运营商的运营商的实现关键在于二级运营商CE接入到一级运营商PE这一部分。而二级运营商可能只是普通ISP,也可能是BGP/MPLS IP VPN服务提供商。无论哪种情况,二级运营商CE都需要运行MPLS。
但两种情况的实现有些差异:
· 二级运营商是普通ISP时,其PE不需要运行MPLS功能,与二级运营商CE之间运行IGP。二级运营商PE之间通过BGP会话交换外部路由。如图5-38。
图6-74 二级运营商是普通ISP
· 二级运营商是BGP/MPLS IP VPN服务提供商时,其PE也需要运行MPLS,与二级运营商CE之间运行IGP和LDP。二级运营商PE之间通过MP-BGP会话交换外部路由,如图5-39。
图6-75 二级运营商是BGP/MPLS IP VPN服务提供商
下面详细介绍这两种情况的路由信息交互和报文转发:
二级运营商是普通ISP
有两种情况:
· 一级运营商的骨干网与二级运营商网络处于相同AS
这种情况下,一级运营商PE与二级运营商CE之间使用IGP和LDP交互路由信息。二级运营商PE之间使用IBGP交互路由信息。
· 一级运营商的骨干网与二级运营商网络处于不同AS
这种情况下,一级运营商PE与二级运营商CE之间使用BGP交互标签IPv4路由信息。二级运营商PE之间使用EBGP交互路由信息。
两种情况下的报文转发过程一样。
下面详细介绍两种情况的路由信息交互报文转发过程:
相同AS的路由信息交互
当二级运营商是普通ISP,且一级运营商的骨干网与二级运营商网络处于相同AS时,路由信息交互过程如图5-40。其中,D表示路由的目的地址;N表示下一跳;L表示标签。
图6-76 相同AS的路由信息交互示意图1
以PE4发布VPN路由
2. PE4通过二级运营商SP的IGP将到自己的路由发布给CE2。
3. CE2通过和PE2之间运行的IGP将到PE4的路由发布给PE2。
4. PE2通过MP-IBGP为到PE4的路由分配标签L1,并将该路由信息和标签L1发布给PE1。
在此之前,PE2已通过一级运营商骨干网的IGP将到自己的路由发布给PE1,同时为到自己的路由分配公网标签L',在PE2与PE1之间建立了一条公网LSP。
5. PE1通过LDP协议为该路由分配标签L2并通过IGP将该路由和标签L2发布给CE1。
6. CE1通过二级运营商SP的IGP将该路由发布给PE3。
7. 此时完成了将到PE4的路由发布给PE3;当到PE3的路由信息也成功发布给PE4时,PE3与PE4之间就可以成功建立IBGP连接。此时,PE3和PE4之间可以为VPN建立隧道(如GRE)。
8. 最后,PE4通过该IBGP连接将VPN路由
PE3将VPN路由发布给PE4的过程与此类似,此处不再赘述。
不同AS的路由信息交互
当二级运营商是普通ISP,且一级运营商的骨干网与二级运营商的SP Site处于不同AS时,路由信息交互过程如图5-41。其中,D表示路由的目的地址;N表示下一跳;L表示标签。
图6-77 不同AS的路由信息交互示意图1
以PE4发布VPN路由
2. PE4通过二级运营商SP的IGP将到自己的路由发布给CE2。
3. CE2通过和PE2之间建立的MP-EBGP连接将到PE4的路由信息发布给PE2。注意,此时CE2并不分配标签。
4. PE2通过MP-IBGP为到PE4的路由分配标签L1,并将该路由信息发布给PE1。
在此之前,PE2已通过一级运营商骨干网的IGP将到自己的路由发布给PE1,同时为到自己的路由分配公网标签L',在PE2与PE1之间建立了一条公网LSP。
5. PE1通过和CE1之间建立的MP-EBGP连接为到PE4的路由分配标签L2,并将该路由信息和标签L2发布给CE1。
6. CE1通过二级运营商SP的IBGP连接将到PE4的路由信息发布给PE3。
在IBGP连接建立之前,PE2已通过二级运营商骨干网的IGP将到自己的路由发布给PE3。
7. 此时完成了将到PE4的路由发布给PE3;当到PE3的路由信息也成功发布给PE4时,PE3与PE4之间就可以成功建立IBGP连接。此时,PE3和PE4之间可以为VPN建立隧道(如GRE)。
8. 最后,PE4通过该IBGP连接将VPN路由
PE3将VPN路由发布给PE4的过程与此类似,此处不再赘述。
报文转发
当二级运营商是普通ISP,VPN报文在运营商网络的传输过程如图5-42。其中,L表示一级运营商MP-BGP分配的标签,L'表示一级运营商公网标签。
图6-78 二级运营商是普通ISP的报文转发示意图
以目的地址为
2. PE3通过非LSP的隧道(如GRE)将VPN报文透明传输给CE1;
3. CE1为该报文打上标签L2(L2标识该报文要转发给PE4),转发给PE1。
4. PE1进行标签交换,弹出标签L2,并打上标签L1,同时打上公网标签L',通过公网隧道LSP将报文传输给PE2。公网标签L'在PE2的上一跳LSR上被弹出。
5. PE2弹出标签L1,将报文转发给CE2。
6. CE2通过二级运营商的非LSP的隧道将报文透明传输给PE4。
7. PE4将报文转发给CE4。
二级运营商是BGP/MPLS IP VPN ISP
路由信息交互
当二级运营商是BGP/MPLS IP VPN ISP,不论一级运营商的骨干网与二级运营商的SP Site是否处于相同AS,以下过程都是一样的:
· 一级运营商的骨干网需要在一级运营商PE之间建立公网LSP
· 二级运营商的骨干网也要在二级运营商PE之间建立公网LSP
不同之处在于:
· 一级运营商PE和二级运营商CE之间运行的协议不同:
· 如果是相同AS,它们之间通过IGP和LDP交互路由和标签
· 如果是不同AS,它们之间使用MP-EGBP交互标签路由
· VPN报文初次进入二级运营商网络时需要携带的标签数量不同:
· 如果是相同AS,VPN报文携带两层标签
· 如果是不同AS,VPN报文携带三层标签
下面详细介绍路由交互过程。
相同AS的路由信息交互
当二级运营商是BGP/MPLS IP VPN ISP,且一级运营商的骨干网与二级运营商的SP Site处于相同AS时,路由信息交互过程如图5-43。其中,D表示路由的目的地址;N表示下一跳;L表示标签。
图6-79 相同AS的路由信息交互示意图2
以PE4发布VPN路由
2. PE4通过二级运营商SP的IGP将到自己的路由发布给CE2。同时分配标签L''1给IGP下一跳并在PE4与CE2之间建立公网LSP隧道。
3. CE2通过和PE2之间的IGP将到PE4的路由信息发布给PE2。同时通过LDP协议为该路由分配标签L1。
4. PE2为到PE4的路由分配标签L2,并通过MP-IBGP将该路由信息和标签发布给PE1。在此之前,PE2已通过一级运营商骨干网的IGP将到自己的路由发布给PE1,同时为到自己的路由分配公网标签L',在PE2与PE1之间建立了一条公网LSP。
5. PE1通过和CE1之间的LDP为到PE4的路由分配标签L3,并将该路由信息和标签L3发布给CE1。
6. CE1通过二级运营商SP的IGP连接将到PE4的路由信息发布给PE3。
在此之前,CE1已通过二级运营商骨干网的IGP将到自己的路由发布给PE3,同时为到自己的路由分配公网标签L''2,在CE1与PE3之间建立了一条二级运营商的公网LSP。
7. 此时完成了将到PE4的路由发布给PE3;当到PE3的路由信息也成功发布给PE4时,PE3与PE4之间就可以成功建立MP-IBGP连接。
8. PE3通过该MP-IBGP连接为VPN路由
PE3将VPN路由发布给PE4的过程与此类似,此处不再赘述。
相同AS的报文转发
当二级运营商是BGP/MPLS IP VPN ISP,且一级运营商的骨干网与二级运营商的SP Site处于相同AS时,VPN报文在运营商网络的传输过程如图5-44。其中,I-L表示MP-BGP分配的私网标签;L'表示一级运营商公网标签;L''1和L''2表示二级运营商公网标签;L1、L2和L3表示到PE4的标签。
图6-80 二级运营商是BGP/MPLS IP VPN ISP的报文转发示意图(相同AS)
以目的地址为
2. PE3收到目的地址为
将报文传给CE1之前,CE1的上一跳LSR将外层公网标签弹出。
3. CE1为该报文打上标签L3,转发给PE1。
4. PE1进行标签交换,弹出标签L3,并打上标签L2,接着打上公网标签L',通过公网隧道LSP将报文传输给PE2。公网标签L'在PE2的上一跳LSR上被弹出。
5. PE2也进行标签交换,弹出标签L2,打上标签L1,并将报文转发给CE2。
6. CE2弹出标签L1,接着打上二级运营商公网标签L''1,通过二级运营商的LSP的隧道将报文透明传输给PE4。
将报文传给PE4之前,PE4的上一跳LSR将二级运营商公网标签弹出。
7. PE4弹出标签I-L,并根据标签I-L将报文转发给CE4。
不同AS的路由信息交互
当二级运营商是BGP/MPLS IP VPN ISP,且一级运营商的骨干网与二级运营商的SP Site处于不同AS时,路由信息交互过程如图5-45。其中,D表示路由的目的地址;N表示下一跳;L表示标签。
图6-81 不同AS的路由信息交互示意图2
以PE4发布VPN路由
2. PE4通过二级运营商SP的IGP将到自己的路由发布给CE2。同时分配标签L''1给IGP下一跳并在PE4与CE2之间建立公网LSP隧道。
3. CE2通过和PE2之间建立的MP-EBGP连接为到PE4的路由分配标签L1,并将该标签路由发布给PE2。
4. PE2为到PE4的路由分配标签L2,并通过MP-IBGP将该路由信息和标签发布给PE1。
在此之前,PE2已通过一级运营商骨干网的IGP将到自己的路由发布给PE1,同时为到自己的路由分配公网标签L',在PE2与PE1之间建立了一条公网LSP。
5. PE1通过和CE1之间建立的MP-EBGP连接为到PE4的路由分配标签L3,并将该路由信息和标签L3发布给CE1。
6. CE1为到PE4的路由分配标签L4,并通过和PE3之间建立的MP-IBGP连接将该路由信息和标签L3发布给PE2。
在此之前,CE1已通过二级运营商骨干网的IGP将到自己的路由发布给PE3,同时为到自己的路由分配公网标签L''2,在CE1与PE3之间建立了一条二级运营商的公网LSP。
7. 此时完成了将到PE4的路由和标签发布给PE3;在CE2与PE3之间形成了一条BGP LSP。
当到PE3的路由信息也成功发布给PE4时,PE3与PE4之间就可以成功建立MP-EBGP连接。
8. PE3通过该MP-EBGP连接为VPN路由
PE3将VPN路由发布给PE4的过程与此类似,此处不再赘述。
不同AS的报文转发
当二级运营商是BGP/MPLS IP VPN ISP,且一级运营商的骨干网与二级运营商的SP Site处于相同AS时,VPN报文在运营商网络的传输过程如。其中,I-L表示MP-BGP分配的私网标签;L'表示一级运营商公网标签;L''1和L''2表示二级运营商公网标签;L1、L2、L3、L4表示到PE4的标签。
图6-82 二级运营商是BGP/MPLS IP VPN ISP的报文转发示意图(不同AS)
以目的地址为
2. PE3收到目的地址为 LSP的隧道标签L4,并通过二级运营商公网LSP隧道将VPN报文透明传输给CE1。
将报文传给CE1之前,CE1的上一跳LSR将外层公网标签弹出。
3. CE1上对BGP LSP进行标签交换,弹出L4,打上L3,转发给PE1。
4. PE1也进行标签交换,弹出标签L3,并打上标签L2,接着打上公网标签L',通过公网隧道LSP将报文传输给PE2。公网标签L'在PE2的上一跳LSR上被弹出。
5. PE2也进行标签交换,弹出标签L2,打上标签L1,并将报文转发给CE2。
6. CE2弹出标签L1,接着打上二级运营商公网标签L''1,通过二级运营商的LSP的隧道将报文透明传输给PE4。
将报文传给PE4之前,PE4的上一跳LSR将二级运营商公网标签弹出。
7. PE4弹出标签I-L,并根据标签I-L将报文转发给CE4。
多角色主机
本节介绍如下内容:
· 技术背景
· 实现原理
技术背景
BGP/MPLS IP VPN中,从CE进入PE的报文的VPN属性由入接口绑定的VPN实例决定,这就决定了由同一入接口经PE转发的所有CE设备都应该属于同一个VPN。
但在实际网络中,往往存在一些服务器或终端身兼数职,需要能够访问多个VPN。这种服务器或终端称为多角色主机。例如,财务系统(VPN1)可能有一台服务器需要和计费系统(VPN2)的一台服务器互访。
虽然使用L2TP协议也可以实现多角色主机功能,PE根据用户名和密码动态将用户接入不同的VPN。但L2TP隧道内封装了整个PPP帧,在L2TP封装后还要进行UDP头和IP头的封装,导致了很大的开销,传输效率低;PPP的LCP及NCP协商对时间敏感,可能存在PPP对话超时问题。
但有些多角色主机的位置和角色相对固定,不适合使用L2TP协议实现。VRP为这种需求提供了多角色主机解决方案:通过在PE上配置策略路由,使来自同一CE的报文可以访问多个VPN。
多角色主机方案中,只有多角色主机可以访问多个VPN资源,而非多角色主机的设备只能访问所属的VPN的资源。
实现原理
多角色主机特性的实现原理比较简单,主要是完成以下两个功能:
· 多角色主机的数据流能够到达目的VPN网络
· 目的VPN网络返回的数据流能够送往多角色主机
图5-47中,多角色主机(PC)所属VPN为VPN1。如果PE1上VPN1和VPN2的路由不互相引入,那么多角色主机只能访问VPN1的资源,不能访问VPN2的资源。多角色主机发往VPN2的数据流只能到达PE1的VPN1路由表。PE1发现VPN1路由表中没有到数据包目的地址(属于VPN2的地址)的路由,会被丢弃该数据包。
为了使多角色主机的数据流能够到达VPN2网络,VRP的实现是对PE1上接入CE1的接口应用策略路由,使得CE1发来的数据流如果在VPN1的路由表中找不到路由,还可以在VPN2私网路由中查找路由,然后转发。该策略路由一般是针对IP地址的策略路由,以指导数据流对不同VPN的访问。
图6-83 多角色主机的实现
而目的VPN网络返回的数据流能够送往多角色主机,需要在PE1上实现使VPN2返回给多角色主机的数据流能够在VPN1的路由表中查找路由。这是通过在PE的VPN2私网路由表中添加到多角色主机的静态路由,此静态路由的出接口是VPN1中PE1连接CE1的出接口地址。
总之,多角色主机特性的实现都集中在多角色主机所属CE所接入的PE上:
· 通过PE上的策略路由,允许来自同一个VPN的数据流可以同时访问不同的VPN路由表
· 通过在目的VPN路由表中添加静态路由,以多角色主机所在的VPN中的接口作为出接口
使用多角色主机特性时需要注意:应保证多角色主机所能访问的所有VPN中,IP地址都是唯一的。
HoVPN
本节介绍如下内容:
· 为什么需要HoVPN
· HoVPN的实现
· HoVPN的典型组网
· HoVPN的优势
为什么需要HoVPN
分层模型与平面模型
在BGP/MPLS IP VPN中,PE设备最为关键,它完成两方面的功能:
· 为用户提供接入功能,这需要PE具有大量接口;
· 管理和发布VPN路由,处理用户报文,这需要PE设备具有大容量内存和高转发能力。
目前的网络设计大多采用经典的分层结构,例如,城域网的典型结构是三层模型:核心层、汇聚层、接入层。从核心层到接入层,对设备的性能要求依次下降,网络规模则依次扩大。
而BGP/MPLS IP VPN是一种平面模型,对网络中所有PE设备的性能要求相同,当网络中某些PE在性能和可扩展性方面存在问题时,整个网络的性能和可扩展性将受到影响。
由于BGP/MPLS IP VPN的平面模型与典型的分层网络模型不相符,在每一个层次上部署PE都会遇到扩展性问题,不利于大规模部署VPN。
HoVPN
为解决可扩展性问题,BGP/MPLS IP VPN必然要从平面模型转变为分层模型。
分层VPN(Hierarchy of VPN,简称HoVPN)解决方案将PE的功能分布到多个PE设备上,多个PE承担不同的角色,并形成层次结构,共同完成一个PE的功能。因此,这种解决方案有时也被称为分层PE(Hierarchy of PE,HoPE)。
HoVPN对处于较高层次的设备的路由能力和转发性能要求较高,而对处于较低层次的设备的相应要求也较低,符合典型的分层网络模型。
HoVPN的实现
HoVPN的基本结构
图6-84 HoVPN的基本结构
在图5-48中,直接连接用户的设备称为下层PE(Underlayer PE)或用户侧PE(User-end PE),简称UPE;连结UPE并位于网络内部的设备称为上层PE(Superstratum PE)或运营商侧PE(Service Provider-end PE),简称SPE。
SPE与UPE的关系是:
· UPE主要完成用户接入功能。UPE维护其直接相连的VPN Site的路由,但不维护VPN中其它远端Site的路由或仅维护它们的聚合路由;UPE为其直接相连的Site的路由分配内层标签,并通过MP-BGP随VPN路由发布此标签给SPE;
· SPE主要完成VPN路由的管理和发布。SPE维护其通过UPE连接的VPN所有路由,包括本地和远端Site的路由,但SPE不发布远端Site的路由给UPE,只发布VPN实例的缺省路由或聚合路由,并携带标签;
· UPE和SPE之间采用标签转发,只需要一个接口连接,SPE不需要使用大量接口来接入用户。UPE和SPE之间的接口可以是物理接口、子接口(如VLAN,PVC)或隧道接口(如GRE、LSP)。采用隧道接口时,SPE和UPE之间可以相隔一个IP网络或MPLS网络,UPE或SPE发出的标签报文经过隧道传递。如果是GRE隧道,要求GRE支持对MPLS报文的封装。
由于分工的不同,对SPE和UPE的要求也不同:SPE的路由表容量大,转发性能强,但接口资源较少;UPE的路由容量和转发性能较低,但接入能力强。
需要说明的是,SPE和UPE是相对的。在多个层次的PE结构中,上层PE相对于下层就是SPE,下层PE相对于上层就是UPE。
分层式PE可以和普通PE共存于一个MPLS网络。
SPE-UPE
SPE和UPE之间运行MP-BGP,根据UPE和SPE是否属于同一个AS,可以是MP-IBGP,也可以是MP-EBGP。
采用MP-IBGP时,为了在IBGP对等体之间通告路由,SPE可以作为多个UPE的路由反射器。SPE作为UPE的路由反射器时,为了减少UPE上的路由条数,建议SPE不再作为其它PE的路由反射器。
HoVPN的标签操作
以SPE和PE间使用LSP隧道为例,说明HoVPN中的标签操作过程。
图6-85 HoVPN的标签传输示意图
· CE1->CE2
· UPE收到CE1的数据,插入一个内层标签发送给SPE;
· SPE收到该标签报文后,对内层标签进行Swap操作(去掉原来的内层标签,打上一个新内层标签);同时插入一个外层LSP隧道的标签。
· PE的上一跳收到报文后,对外层LSP隧道的标签进行POP操作(倒数第二跳弹出)。
· PE收到报文后,对内层标签进行POP操作。
· CE2->CE1
· PE收到CE2的数据,插入一个内层标签,之后再插入外层LSP隧道的标签,发送给SPE;
· SPE的上一跳收到报文后,对外层LSP隧道的标签进行POP操作(倒数第二跳弹出)
· SPE收到该标签报文后,对内层标签进行Swap操作(去掉原来的内层标签,打上一个新内层标签),发送给UPE。
· UPE收到报文后,对内层标签进行POP操作。
HoVPN的嵌套与扩展
HoVPN支持分层式PE的嵌套:
· 一个分层式PE可以作为UPE,同另一个SPE组成新的分层式PE;
· 一个分层式PE可以作为SPE,同多个UPE组成新的分层式PE;
· 以上这两种嵌套可以多次进行。
通过分层式PE的嵌套,理论上可以将VPN无限扩展。
图6-86 分层式PE的嵌套
图5-50是一个三层的分层式PE,称中间的PE为MPE(Middle-level PE)。SPE和MPE之间,以及MPE和UPE之间,均运行MP-BGP。
“MPE”这种说法只是为了表述方便,在HoVPN模型中并没有MPE。
MP-BGP为上层PE发布下层PE上的所有VPN路由,但只为下层PE发布上层PE的VPN实例缺省路由。
SPE维护分层式PE接入的所有Site的VPN路由,路由数目最多;UPE只维护它所直接连接的Site的VPN路由,路由数目最少;MPE的路由数目介于SPE和UPE之间。
HoVPN的典型组网
HoVPN扩展
MPLS VPN在全国范围内部署时,通常采用一种扁平化的组网结构,也就是直接通过骨干网来提供MPLS VPN业务。在这种结构中,骨干网的PE通常设置在中心城市,用户CE都通过一条链路汇聚到PE节点,如图5-51。
图6-87 非分层结构组网
这种方式的缺陷在于:中心城市在接入远程CE时,需要消耗大量的广域链路资源;骨干网的规模不可能无限制地扩展,其覆盖能力和扩展性面临严峻挑战。
采用HoVPN可以在地市甚至县部署UPE节点,形成多层结构,就近接入VPN用户,如。同时网络的覆盖能力得到了增强,可以根据需要实现业务的平滑演进,以及网络的扩展与延伸。SPE和UPE可以在同一个AS内,也可以实现AS之间的连接。
图6-88 分层结构组网
UPE同多个SPE连接
UPE同多个SPE连接也称为UPE多归属。UPE多归属中,多个SPE都向UPE发布VRF默认路由。UPE选择其中一条作为优选路由,或者选择多条路由进行负载分担。
UPE向多个SPE发布其VPN路由,可以全部发布给所有SPE,也可以给每个SPE发布一部分VPN路由,从而形成负载分担。
跨域VPN部署HoVPN
如图5-53所示,骨干网和城域网属于不同的自治系统,骨干网可以设置SPE,城域网设置UPE。UPE将城域网全部路由发送给SPE,而SPE只发送VPN实例的默认路由给UPE。这样,城域网只需要维护内部的VPN Site路由,而不需要维护城域网之外Site的路由。骨干网需要维护全局VPN Site的路由。
在跨AS方案中,SPE和UPE之间可以采用MP-EBGP或Multi-Hop EBGP方式,实现灵活的部署。
采用HoVPN实现的跨AS方案的优点在于适应了网络分级的要求,上级网络(骨干网)处理全局业务;下级网络(城域网)只需要处理本地业务,这样就不会因为全局VPN业务发展导致下级网络出现容量和扩展性问题。
图6-89 使用HoVPN方案部署跨域VPN
HoVPN的优势
HoVPN组网方案具有以下优势:
· BGP/MPLS VPN可以逐层部署。当UPE的性能不够的时候,可以添加一个SPE,将UPE的位置下移。当SPE的接入能力不足的时候,可以为其添加UPE。
· UPE和SPE之间采用标签转发,因而只需要一个(子)接口相互连接,节约有限的接口资源。
· 若UPE和SPE之间相隔一个IP/MPLS网络,采用GRE或LSP等隧道连接。在分层部署MPLS VPN时,有良好的可扩展性。
· UPE上只需维护本地接入的VPN路由,所有远端路由都用一条缺省或去和路由替代,大大减轻了UPE的负担。
· SPE和UPE通过动态路由协议MP-BGP交换路由、发布标签。每一个UPE只要运行一个MP-BGP对等体,协议开销小,配置工作量小。
OSPF VPN扩展
OSPF是一种应用广泛的IGP,很多情况下,VPN用户内部网络运行OSPF。如果能够在PE-CE之间使用OSPF,PE通过OSPF向CE发布VPN路由,则CE上就不需要为到PE的连接支持其它路由协议,从而简化CE的管理和配置。
VRP实现OSPF VPN扩展特性,主要用于BGP/MPLS IP VPN中在PE和CE间使用OSPF。
本节介绍如下内容:
· 基本概念
· PE上的OSPF多实例
· Sham link
· Multi-VPN-Instance CE
基本概念
标准BGP/OSPF
BGP/MPLS VPN中,PE之间使用MP-BGP传递路由信息。如果PE-CE之间使用标准BGP/OSPF交互来传递路由信息,会出现问题:PE使用OSPF发布远端Site的路由给某个Site的CE时,都看成是AS外部的路由,即发布Type5 LSA。
而实际上,如果两个要互通的Site都在相同的AS内,那么每个Site都应该将另一个Site的路由看成区域间路由,而不是AS外部路由。因为,如果将相同AS内的其他Site路由看成AS外部路由,则该Site要与本AS外的其他VPN互通,它将分辨不出真正的AS域外路由(其他VPN的路由才是真正的AS外部路由)。
以图5-54为例,CE1、CE3和CE4都属于VPN1,且属于同一个OSPF域(OSPF Domain)。图中OSPF之后的数字表示PE设备上运行的OSPF多实例进程号。
CE1到CE3和CE4的路由的发布过程可以描述为:
1. PE1将CE1的OSPF路由引入BGP;
2. PE1通过MP-BGP将这些VPN路由发布给PE2;
3. PE2将BGP的VPN路由引入到OSPF,再发布给CE3和CE4。
图6-90 在VPN中使用OSPF
如果使用标准的BGP/OSPF,PE2将把BGP VPN路由通过Type5 LSAs,即ASE LSAs,发布给CE3和CE4。但实际上,CE1与CE3、CE4属于同一个OSPF域,它们之间的路由发布应该使用Type3 LSAs,即区域间路由(inter-area routes)。
本节重点介绍OSPF对VPN的扩展,如果需要了解OSPF的基本知识,请参见《VRP 特性描述 IP路由》。
Domain ID
BGP/MPLS VPN中,如果PE-CE之间使用OSPF协议交互路由信息,对于VPN实例中引入的来自不同OSPF域的路由,PE将其作为External-LSA发布给CE。但对于属于同一个OSPF域不同节点的目的地,这样的路由应该将被作为Type3 LSA(区域内路由)发布。因此,需要采取必要措施区分路由是否来自同一个OSPF域。
域标识符(Domain ID)就是用来区分VPN实例中引入的路由是否来自同一个OSPF域。域ID作为BGP的扩展团体属性传播,这样,在收到BGP的VPN路由时,域ID相同的是来自同一VPN实例的路由。
在VRP的实现中,要求每个OSPF域有可配置的Domain ID。Domain ID是在该OSPF视图下使用命令domain-id配置的。
每个OSPF域都有一个或多个Domain ID:
· 如果一个OSPF域只配置了一个Domain ID,那么该Domain ID就是主Domain ID;
· 如果一个OSPF域配置了多个Domain ID,那么只有一个Domain ID是主Domain ID,其他的Domain ID就是从Domain ID(Second Domain ID);只有配置了主Domain ID后,才能配置从Domain ID。
· 缺省情况下,Domain ID的值为0(NULL)。如果不同OSPF域都使用NULL作为Domain ID,将无法区分OSPF域,因此它们之间的路由将被当作区域内路由。
· 如果一个OSPF域配置了非0(即非NULL)的Domain ID,NULL不再是该OSPF域的Domain ID
建议与同一个VPN相关的所有OSPF实例都使用相同的Domain ID,或者都使用缺省的Domain ID。
Domain ID可以做为BGP的扩展团体属性随路由一起发给远端的PE,在远端的OSPF实例中引入BGP的私网路由时会对Domain ID进行判断,根据Domain ID的配置决定OSPF引入的BGP路由生成5、7类还是3类LSA。
· 当Domain ID和本地相同时:
· 对于1,2,3类LSA均生成3类LSA;
· 对于5、7类LSA,如果本地是非NSSA(Not So Stubby Area)区域,生成5类LSA;如果本地是NSSA区域,生成7类LSA。
· 当Domain ID和本地不同时:无论何种类型LSA,如果本地是非NSSA区域,生成5类LSA;如果本地是NSSA区域,生成7类LSA。
DN位
为了防止3类LSA环路,OSPF多实例进程使用LSA Options域中一个原先未使用的bit作为标志位,称为DN位(如图5-55)。PE在生成Type3、Type5或Type7 LSAs发布给CE时,都将DN位置位(值为1),其他类型LSA的DN位不置位(值为0)。PE路由器的OSPF多实例进程在进行计算时,忽略DN置位的LSA。这样就防止了PE又从CE学到发出的LSA而引起的环路。具体实现过程请参见Type3 LSA产生的环路的检测。
图6-91 LSA Options域中的DN位
在VRP中,只要在PE上OSPF的进程绑定了VPN,无论CE是否通过骨干区域接入PE,对于从MPLS/BGP学到的BGP路由,PE路由器生成3类LSA时,都设置DN 位。LSA在非0区域传播时,其DN位可以置位,也可以不置位。
VPN Route Tag
路由标记(Route Tag)可以用来标识协议相关的信息,如OSPF接收BGP时用来区分自治系统的编号。
在draft-ietf-l3vpn-ospf-2547-02中称为VPN路由标记(VPN Route Tag),PE根据收到的BGP的私网路由产生的5/7类LSA中必须包含这个参数。VPN路由标记不在BGP的扩展团体属性中传递,只是本地概念,只在收到BGP路由并且产生OSPF LSA的PE路由器上有意义。
PE向CE发布Type5或Type7 LSA时,PE作为ASBR,在LSA中包含OSPF实例的VPN路由标记。当一个PE接收到的Type5或Type7 LSA的VPN路由标记值与此PE的VPN路由标记值相同时,这条LSA被丢弃,不参与SPF计算。
因此VPN路由标记可用于在CE双归属中防止5类LSA发生环路。当一个CE接入两个PE时,PE1将根据BGP路由产生的5类LSA发给CE,CE又将这条LSA发给PE2,由于OSPF的路由比BGP的路由优先级高,在PE2中就会将BGP路由替换为OSPF路由,产生环路。设置VPN路由标记之后,当PE发现LSA的VPN路由标记(LSA的Tag值)和自己的一样,就会忽略这条LSA,因此避免了环路。关于该类环路的产生与避免的详细介绍请参见Type5/7 LSA产生的环路的检测。
在VRP实现中,VPN路由标记是可配置的,且在PE上与OSPF VPN实例视图中使用命令route-tag配置。在VRP v5版本上VPN Route Tag的取值范围是0~4294967295。缺省情况下,路由标记值的前面两个字节为固定的0xD000,后面的两个字节为本端BGP的AS号,比如本端BGP AS号为100,则其默认的路由标记十进制值为3489661028。
同一个区域的PE建议配置相同的route-tag。不同OSPF进程也可配置相同的route-tag。
对于同一个AS,OSPF的路由标记值缺省是一样的,也就是不需要额外的配置就可以防止5类LSA环路。
注意Route Tag与Tag的区别和联系:
· Tag是OSPF中用来标识LSA是一条外部路由(External Route),以便通过路由策略控制路由发布,仅存在于5类LSA中。在RFC2328中称为External Route Tag,可以在进行路由引入的时候通过策略或者直接加上参数改变。在路由器上配置多进程(非多实例),进程之间互相引入。设置Tag可以和路由策略配合起到阻止相同的路由又被引回来或者只引入指定Tag的路由。
· Route Tag和Tag的最大区别是Route Tag仅用于PE上OSPF多实例引入BGP的情况,并且只对从BGP引入的外部路由生效。而Tag是对引入的外部路由设置的。
· 在PE上当OSPF发现一条5类LSA的Tag和自己Route Tag的一样,也会忽略这条路由,不进行处理。
PE上的OSPF多实例
BGP/OSPF互操作
如果使用标准BGP/OSPF,PE发布远端Site的路由给某个Site的CE时,都被看成是AS外部路由;而实际上,如果两个要互通的Site都在相同的AS内,那么每个Site都应该将另一个Site的路由看成区域间路由,而不是AS外部路由。为了解决该问题,PE使用一种经过修改的BGP/OSPF交互过程(简称为BGP/OSPF互操作功能),发布从一个Site到另一个Site的路由,将这种路由与真正的AS-External路由进行区分。这一过程需要BGP使用扩展团体属性,携带可以标识OSPF属性的信息。
draft-ietf-l3vpn-ospf-2547-02中规定,可以携带的OSPF属性的BGP扩展团体属性包括:
· Domain ID扩展团体属性:PE通过MP-BGP发布CE路由时,路由属性中必须携带该属性,除非该CE所在OSPF Domain的Domain ID为NULL。
· OSPF路由类型扩展团体属性:PE通过MP-BGP发布CE路由时,路由属性中也必须携带该属性。该属性包含长度为两个字节的类型字段、4字节的Area号字段、1字节的OSPF路由类型字段和1字节的可选字段。
其中,1字节的OSPF路由类型字段的定义如下:
· 值为1或2表示区域内部路由
· 值为3表示聚合路由
· 值为5表示区域外部路由,此时区域值为0
· 值为7表示NSSA区域的路由
· 129表示Sham link的端点地址
· OSPF路由器ID扩展团体属性:该属性是可选的。
· MED(Multi-Exit-Discriminator):缺省情况下,MED值为路由的OSPF度量值加1。
BGP/OSPF的互操作的过程如图5-56。其中,Adv表示路由发布者(Advertiser);D表示报文的目的地址。
图6-92 BGP/OSPF的互操作示意图
此过程需关注如下两点:
· OSPF路由引入到BGP的处理
· BGP路由引入到OSPF的处理
OSPF路由引入到BGP的处理
PE收到CE来的OSPF路由时,按如下处理:
· 对于5类和7类LSA路由,如果包含与VPN Route Tag值相等的OSPF route Tag,将被丢弃;否则按正常处理流程引入BGP中。
· 如果收到4类LSA路由,将其丢弃。
· 对于3类LSA路由,如果其DN位置位,将被丢弃;否则按正常处理流程引入BGP中。
· 对于1类和2类LSA路由,都引入到BGP中,忽略其拓扑信息。
OSPF路由引入到BGP后,将随BGP扩展团体属性一起发布给其他相关的PE。其中的BGP扩展团体属性包括Domain ID扩展团体属性、OSPF路由类型扩展团体属性、MED等。
BGP路由引入到OSPF的处理
当对端PE通过MP-BGP收到来自远端CE的路由时,分析其中的OSPF路由类型扩展团体属性,按如下处理:
· 对于OSPF路由类型字段值为5或7,PE将充当ASBR,对应生成5类LSA或7类LSA发布给本地相关CE。其中的OSPF cost值即为该BGP路由的MED值。
· 对于OSPF路由类型字段值为1、2或3,PE将充当ABR,生成3类LSA,并且将其中的DN位置位。其中的OSPF cost值即为该BGP路由的MED值。
此时,CE收到来自PE的LSA与普通OSPF的LSA没有什么区别,且将PE看成是OSPF中的ABR或者ASBR路由器。并且,CE感觉路由是直接从远端的OSPF域传递过来的而不是通过VPN骨干网。
Type5/7 LSA产生的环路的检测
如果在CE与PE间运行OSPF,当一个PE通过LSA向CE发布从VPN骨干网学到的BGP VPN路由时,此LSA可能会通过CE的OSPF区域被发布给另一个PE,形成路由环,甚至可能引起路由振荡。
图5-57是Type5 LSA路由产生环路的例子。其中site1和site2都属于VPN1。site2通过EBGP接入骨干网的PE3;site1通过OSPF分别接入骨干网的PE1和PE2(双归属)。环路产生过程如下:
1. Site2通过EBGP发布到
2. PE3通过MP-IBGP将该路由发布给PE1。
3. PE1在OSPF VPN1多实例进程中引入BGP路由,发布到 LSA给CE1;同时,通过MP-IBGP发布给PE2。
4. CE1将该Type5 LSA发布给PE2。
5. 此时PE2收到两条BGP的VPN-IPv4路由:一条是MP-IBGP对等体发布的,另一条是从OSPF VPN1多实例进程引入的。缺省情况下,IGP(OSPF)路由优先级高于IBGP路由,因此PE2将选择OSPF路由,并通过MP-IBGP发布Update消息给PE1。
6. PE1收到PE2返回的MP-IBGP Update消息。由于其中的路由是PE2的BGP引入的IGP(OSPF)路由,其AS-PATH为空,因此PE2返回的MP-IBGP路由优先级比从PE3发布的MP-IBGP路由优先级高,PE1将撤销从PE3学来的路由,采用PE2返回的路由。
7. 此时形成一条路由环路:PE1—>CE1—>PE2—>PE1。
由于PE1将撤销从PE3学来的路由,PE1中的OSPF VPN1多实例进程中也要对应撤销引入的BGP路由,继而CE1、PE2、PE1都相继撤销该OSPF路由。在PE1上,从PE3学来的路由又变成最优路由。这样,形成了路由振荡。
图6-93 Type3 LSA路由产生的环路
在OSPF VPN扩展中,使用VPN Route Tag来防止此类路由环路。在上面例子中,PE2收到CE1来的Type5 LSA时,发现其VPN Route Tag(LSA的Tag值)和自己的一样,就会忽略这条LSA,因此避免了环路,也就消除了上面描述的路由振荡。
Type7 LSA环路的产生和消除的过程与Type5类似,此处不再赘述。
Type3 LSA产生的环路的检测
图5-58是Type3 LSA路由产生环路的例子。其中site1和site2都属于VPN1。site2通过OSPF Area0接入骨干网的PE3;site1通过OSPF Area0分别接入骨干网的PE1和PE2(双归属负载分担)。环路产生过程如下:
1. Site2通过Type3 LSA发布到
2. PE3的BGP引入OSPF VPN1进程,通过MP-IBGP将该路由发布给PE1和PE2。
3. PE1在OSPF VPN1多实例进程中引入BGP路由,发布到 LSA给CE1。
4. 同时,PE2在OSPF VPN1多实例进程中引入BGP路由,发布到 LSA给CE1;
5. 此时,CE1有两条到
6. CE1将来自PE1的Type3 LSA发布给PE2。
7. 此时PE2收到两条BGP的VPN-IPv4路由:一条是PE3发布的,另一条是从OSPF VPN1多实例进程引入的。由于缺省情况下,IGP(OSPF)路由优先级高于IBGP路由,PE2将选择OSPF路由,丢弃来自PE3的路由。
8. 此时形成一条路由环路:PE2—>CE1—>PE2。
同理,在PE1和CE1之间也会形成一条环路:PE1—>CE1—>PE1。
图6-94 Type3 LSA产生的环路
使用DN位可以防止Type3 LSA环路。VRP的实现中,PE生成Type3、Type5或Type7 LSAs发布给CE时,都将DN位置位,其他类型LSA的DN值为0。PE路由器的OSPF多实例进程在进行SPF计算时,忽略DN置位的Type3、Type5和Type7 LSAs。
在上述环路产生过程7中,PE2收到两条BGP的VPN-IPv4路由:一条是PE3发布的,另一条是从OSPF VPN1多实例进程引入的。如果DN位置位,PE2的OSPF VPN1多实例进程将丢弃从CE1发布的到 LSA)。即,该路由不存在于PE2的OSPF VPN1多实例路由表中,也不会被PE2的BGP引入。因此,PE2选择来自PE3的路由,避免了环路的产生。
Type3与Type5/7 LSA环路产生的异同
Type3与Type5/7 LSA环路产生的相同点在于:PE通过MP-BGP学到VPN路由后,又通过CE的OSPF区域学到该路由。由于默认的OSPF路由优先级高于IBGP路由,PE选择OSPF路由,并将该路由发布给对等体或邻居,从而产生环路。
Type3与Type5/7 LSA环路产生的不同点在于:
· Type3 LSA的路由源站点使用OSPF接入VPN骨干网,其区域为0;而Type5/7 LSA的路由源站点使用EBGP接入VPN骨干网。
· Type3 LSA环路是在一台PE设备与其接入的站点之间产生;而Type5/7 LSA环路是在用户站点与其双归属接入的两台PE三者之间产生。
PE-CE的OSPF区域配置限定
PE与CE之间的OSPF区域可以是非骨干区域,也可以是骨干区域。
在OSPF VPN扩展应用中,MPLS VPN骨干网被看作是area 0。由于OSPF要求area 0连续,因此,所有VPN站点的area 0必须与MPLS VPN骨干网相连。如果VPN site中存在OSPF area 0,则CE接入的PE必须通过area 0与这个VPN站点的骨干区域相连(可以通过Virtual-link实现逻辑连通),如图5-59。
图6-95 VPN site通过area 0与VPN骨干相连
Sham link
Sham link的产生
通常情况下,BGP对等体之间通过BGP扩展团体属性在MPLS VPN骨干网上承载路由信息。另一端PE上运行的OSPF可利用这些信息来生成PE到CE的Type-3 LSA,这些路由是区域间路由。
如图5-60所示:在OSPF的PE-CE连接中,同一个OSPF区域中有两个Site连接到不同的PE,两个Site属于同一个VPN,它们之间存在一条区域内OSPF链路(backdoor link)。可以将这两个site看成是一个Site(多归属)。
这种情况下,通过PE连接两个Site的路由将作为区域间路由(Inter-Area Route),其优先级低于经过backdoor链路的区域内路由(Intra-Area Route),不被OSPF优选。
图6-96 Sham link应用示意图
上述情况导致VPN流量总是通过后门路由转发,而不走骨干网。为了避免这一问题,可以在PE路由器之间建立OSPF伪连接(Sham link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由。
Sham link的实现
Sham link作为区域内的一条点到点链路,包含在Type1 LSA中发布。用户可以通过调整度量值在Sham link和backdoor之间进行选路。
Sham link被看成是两个VPN实例之间的链路,每个VPN实例中必须有一个Sham link的端点地址,它是PE路由器上VPN地址空间中的一个有32位掩码的Loopback接口地址。同一个OSPF进程的多条Sham link可以共用端点地址,但不同OSPF进程不能拥有两条端点地址完全相同的Sham link。
Sham link的端点地址被BGP作为VPN-IPv4地址发布。如果路由经过了Sham link,它就不能再以VPN-IPv4路由的形式被引入到BGP。
缺省情况下,Sham link端点地址所在接口发送Hello报文的间隔是10秒;重传LSA报文的时间间隔为5秒;延迟发送LSA报文的时间间隔1秒;失效时间间隔为40秒。可以手工配置改变这些定时器参数值。
Sham link可以在任何区域配置,需要手工配置,并且本端VPN实例中必须有到Sham link目的地址(对端PE的Sham link端点地址)的路由。
Sham link中路由发布过程
Sham link在两个PE之间建立起来后,这两个PE将成为Sham link邻居,交互LSDB。此时骨干网将被看成是点到点的区域内部链路,PE通过其发布Type1 LSA。
此时,Sham link中的路由发布过程如图5-61。其中,Adv表示路由发布者(Advertiser);D表示报文的目的地址,Cost表示Sham link的路由开销。
如果把Sham link看成一条链路,则Sham link的路由开销相当于该链路接口的OSPF路由开销。在配置Sham link时可以指定Sham link的路由开销。缺省值为1。
为了使VPN流量通过MPLS骨干网转发,Sham link的路由开销应小于backdoor链路的OSPF路由OSPF路由开销。
图6-97 Sham link路由发布
从图5-61可以看出,Sham link路由发布整个过程,LSA的类型、发布者及Cost值始终不变,相当于LSA从PE1透明传送到PE2。
Multi-VPN-Instance CE
概述
单纯使用传统路由器很难实现局域网中不同业务的完全隔离。目前,局域网不同业务的隔离一般是通过交换机的VLAN功能实现的。但交换机的路由功能相对较弱。因此,为了保证局域网的安全隔离并提高局域网的路由能力,需要同时布置路由器和交换机,这对小网络而言是不经济的。
VRP支持在一台路由器上运行多个OSPF进程,可以在一台路由器上运行多个OSPF进程,将不同的进程绑定到不同的VPN实例。就像在PE上使用OSPF多实例一样,在CE通过为不同的业务建立各自的OSPF实例,相当于不同的业务使用不同的虚拟CE路由器。这样,可以以较低成本实现不同业务的隔离,保证各自的安全性。
OSPF多实例通常运行在PE路由器上,在用户局域网内部运行OSPF多实例的路由器称为Multi-VPN-Instance CE,即多实例CE。与PE上的OSPF多实例相比,Multi-VPN-Instance CE不需要支持BGP/OSPF互操作功能。
Multi-VPN-Instance CE主要用于以较低的成本解决局域网的安全问题。
例如,X公司在A市的研发部和销售部属于同一个局域网,且使用同一个CE设备接入VPN骨干网。为了让A市的销售部与B市的销售部互通,让A市的研发部与C市的研发部互通,同时保证研发部与销售部的完全隔离,可以在A市的CE及其接入的PE上都配置OSPF多实例。如图5-62。
图6-98 Multi-VPN-Instance CE组网示意图
实现原理
Multi-VPN-Instance CE的实现原理较简单,就是在同一台CE和PE路由器上实现不同的OSPF多实例。关键的实现在于禁止路由环的检查,直接进行路由计算。
通常情况下,如果PE-CE之间运行OSPF,则PE设备对接收的Summary LSA进行DN位检查,以防止PE又从CE学到发出的LSA而引起环路。但在运行OSPF VPN多实例的非PE设备上,对路由环的检测反而不能正确进行路由选路。
图6-99 MCE进行环路检测的情况
如图5-63,PE2向MCE发布的OSPF Type3 LSA时,由于使用OSPF多实例发布,该3类LSA中的DN被置位。当MCE收到该LSA时,发现其DN位置位,就会丢弃该LSA。这样,MCE上就没有到CE1站点的路由。
如果在MCE上禁止路由环的检查,对PE2来的3类LSA,不管其DN位是否置位,都使用它来进行路由计算。这样,MCE就可以正确接收来自CE1站点的路由。
VPN与Internet互联
本节介绍如下内容:
· 概述
· 在PE侧实现
· 在Internet网关侧实现
· 在用户侧实现
· 三种方法的比较
概述
一般VPN内的用户只能相互通信,不能与Internet用户通信,也不能接入Internet。但VPN的各个sites可能有访问internet的需要。为了实现VPN与Internet互联,需要满足以下条件:
· 要访问Internet的用户设备必须有到达Internet目的地址的路由;
· 有从Internet返回的路由;
· 如果需要访问公网的VPN用户的地址是私网地址,则需要进行网络地址转换(NAT),把私网地址转换成公网地址。
· 像非VPN用户与Internet互联方式一样,必须采用一定的安全机制(如使用防火墙)。
有三种实现方法:
· 一种方法是在骨干网边缘路由器PE侧实现,该PE负责区别两种不同的数据流,并分别转发至VPN及Internet。同时,在VPN与Internet两个域之间提供防火墙功能。
· 在Internet网关侧实现。这里的Internet网关是指接入Internet的运营商设备,必须具备VPN路由管理功能,可以是不接入任何VPN用户的PE设备。
· 另一种方法是在用户侧实现。此时,由私网边缘路由器CE区分两种不同的数据流,并分别引导两个不同的域:一个通过PE边缘路由器接入VPN,一个通过不包含在VPN内的ISP路由器接入Internet。同时,CE设备提供防火墙功能。
在PE侧实现
VPN骨干网中:
· Internet路由存在于PE路由器的公网路由表中
· 用户路由信息存放于PE的VPN实例路由表中,不在公网路由表中
· PE/CE接口不被公网所知,即不在公网路由表中
这是在VPN骨干网的PE侧实现VPN与Internet互联所面临的难题,也是实现的关键突破口。
图6-100 在PE侧实现VPN与Internet互联
在PE侧实现VPN与Internet互联,一般采用静态缺省路由的方式。
· PE路由器向CE发出一条去往Internet的缺省路由或者NAT转换后的地址路由。这通过
· 在CE上添加一条静态路由到PE来实现,其目的地址为NAT转换后的地址,下一跳为PE上的PE/CE接口IP地址。
用户侧设备获得这条路由并不是公网路由,而是通过NAT转换后的路由。
· 也可以使用缺省路由。
· 在VPN实例路由表添加一条缺省路由,指向Internet网关。
Internet网关不必与PE直连,不同的VPN实例也可以使用不同的Internet网关。在VRP实现中,使用的命令是ip route-static vpn-instance vpn-instance-name 0 nexthop-address public,注意需要在命令中下一跳地址后面加上关键字public
· 要实现从Internet返回的路由,需要将去往CE并指向PE/CE接口的静态路由加入到公网路由表中,并发布到Internet。这通过在PE公网路由表中添加一条静态路由来实现,其目的地址为VPN用户地址通过NAT转换后的地址,出接口为PE/CE接口;并将该路由通过IGP发布到Internet上。
NAT转换可以在PE连向Internet网关的接口上进行,也可以在连接CE的接口上进行,甚至在CE上连接PE的接口进行。
进行NAT转换后:
· 如果在PE连向Internet网关的接口上进行NAT转换,只需确保PE的VPN实例路由表中有到需要访问Internet的用户的路由;此时NAT转换使用普通的NAT转换命令:nat server global public-ip-address inside private-ip-address
· 如果在PE上连接CE的接口进行NAT转换,使用的命令必须指定VPN实例:nat server vpn-instance vpn-instance-name global public-ip-address inside private-ip-address,另外,在PE的VPN实例路由表中需要添加一条静态路由,目的地址为NAT转换后的地址,下一跳为CE
· 如果在CE上连接PE的接口进行NAT转换,则NAT转换的命令在CE上配置,使用普通的NAT转换命令:nat server global public-ip-address inside private-ip-address。另外,还需要在PE上在PE的VPN实例路由表中需要添加一条静态路由,目的地址为NAT转换后的地址,下一跳为CE
推荐在PE连向Internet网关的接口上进行NAT转换,实现简单。
在Internet网关侧实现
实现方法是在Internet网关上为每个VPN配置一个VPN实例,且使用单独的接口接入Internet,在该接口上关联VPN实例,就像接入CE设备一样。并且在该出接口上进行NAT转换。
图6-101 在Internet网关侧实现VPN与Internet互联
另外,还要在PE的VPN路由表及CE路由表中到NAT转换后的地址的路由。
在用户侧实现
在用户侧实现有两种方法:
· 直接将CE接入Internet,如图5-66。
此时,NAT转换是在CE连接Internet的接口上进行。直接将CE接入Internet还可分为两种方式:
· 将用户其中一个站点(中心站点)接入Internet。在中心站点的CE上配置到Internet的默认路由;然后使用VPN骨干网将该默认路由发布给其他站点。只在中心站点部署防火墙。这种方式中,除中心站点的用户外,其他用户访问Internet的流量都经过VPN骨干网。
· 将每个用户站点单独接入Internet,即每个站点的CE都配置到Internet的默认路由。在每个站点都部署防火墙进行安全保护。所有用户访问Internet的流量都不需要经过VPN骨干网。
图6-102 直接将CE接入Internet实现VPN与Internet互联
· 另一种是使用单独的接口或子接口接入PE,由PE将CE上的路由注入到公网路由表中,并发布到Internet,并将缺省路由或者Internet路由发布到CE。此时这个接口不属于任何VPN,即不关联任何VPN实例。也就是说,该用户既以VPN用户的角色接入PE,又以普通非VPN用户接入PE,如图5-67。
这种方法中,也是在CE上进行NAT转换,并且在接入PE的单独的接口或子接口上进行。建议在接入Internet的VPN骨干网设备与接入CE的PE之间建立隧道,使Internet路由通过隧道传递,P不接收Internet路由。
图6-103 使用独立接口接入PE实现VPN与Internet互联
三种方法的比较
在用户侧实现,其实现方法简单,公网和私网路由隔离,安全可靠;但缺点是需使用单独的接口,占用接口资源,并且每个VPN都需要单独使用一个公网地址。
在PE侧实现,与VPN接入使用同一个接口,节约接口资源,并且不同的VPN可以共享一个公IP地址;缺点是在PE上实现复杂,且存在安全隐患:
· 如果CE使用逻辑链路接入PE访问Internet,来自Internet的恶意的大流量攻击会使得PE-CE链路饱和,从而使得正常的VPN数据包无法传输。
· 不论CE使用逻辑链路还是独立链路接入PE访问Internet,该PE设备都有可能受到Internet的DoS(Denial of Service)攻击。
在Internet网关处实现,比在PE侧实现安全性高,但Internet网关要创建多个VPN实例,负担重。且Internet网关要使用多个接口接入Internet,占用多个公有IP地址,为每个VPN使用个接口和共有IP地址。
表6-5 三种VPN与Internet互联的实现方法比较
实现方法
安全性
使用接口
使用公有IP地址
NAT转换
实现难易程度
在用户侧实现
相对较高
每个VPN单独使用一个接口,占用用户接口资源
每个VPN单独使用一个公有IP地址
在CE侧进行
实现简单
在PE侧实现
相对较低
与VPN接入使用同一个接口,节约接口资源
PE上多个VPN共用一个公有IP地址
一般在PE侧进行
实现复杂
在Internet网关侧实现
相对较高
每个VPN单独使用一个接口,占用Internet网关的接口资源
每个VPN单独使用一个公有IP地址
一般在Internet网关侧进行
实现复杂
参考资料清单
如果您想了解更多关于VPN基本概念的信息,请参考以下文档。
文档编号
描述
RFC2858
Multiprotocol Extensions for BGP-4
RFC2547
BGP/MPLS VPNs
RFC2764
A Framework for IP Based Virtual Private Networks
RFC2842
Capabilities Advertisement with BGP-4
RFC2917
A Core MPLS IP VPN Architecture
RFC3107
Carrying Label Information in BGP-4
RFC4026
Provider Provisioned Virtual Private Network (VPN) Terminology
draft-ietf-l3vpn-ospf-2547-02
OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP VPNs
7 MPLS L2VPN
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref147305495 \h
MPLS L2VPN简介
MPLS L2VPN的基本原理。
REF _Ref147305510 \h
MPLS L2VPN的分类
MPLS L2VPN的分类方法。
REF _Ref147305525 \h
MPLS L2VPN VPWS简介
MPLS L2VPN VPWS的基本内容
REF _Ref147305545 \h
MPLS L2VPN VPWS的实现方式
MPLS L2VPN VPWS方式的几种实现方法和报文交互过程。具体内容包括:
CCC方式MPLS L2VPN
SVC方式MPLS L2VPN
Martini方式MPLS L2VPN
Kompella方式MPLS L2VPN
REF _Ref147305558 \h
MPLS L2VPN与BGP/MPLS VPN比较
介绍Martini方式的MPLS L2VPN、Kompella方式的MPLS L2VPN以及BGP/MPLS VPN的区别。
REF _Ref147305577 \h
MPLS L2VPN VPWS的跨域问题
介绍MPLS L2VPN VPWS方式的跨域问题。
REF _Ref147305592 \h
MPLS L2VPN异种介质互通
介绍MPLS L2VPN异种介质互通以及需要注意的地方。
REF _Ref147305613 \h
参考资料清单
MPLS L2VPN的相关参考资料清单
MPLS L2VPN简介
本节介绍L2VPN的基本概念、基本原理,具体内容如下所列。
· MPLS L2VPN的引入
· MPLS L2VPN的基本概念
· MPLS L2VPN的优势
· MPLS L2VPN的基本架构
MPLS L2VPN的引入
传统VPN面临的困难
随着社会发展,经济全球化的趋势越来越明显,越来越多的企业的分布范围日益扩大,公司员工的移动性也不断增加,迫切需要电信运营商提供二层链路连接,以便企业各分支机构组成自己的企业网,同时公司员工能在企业以外的地方方便地访问企业内部网络。
最初,电信运营商是以租赁专线(Leased Line)的方式为企业提供二层链路,这种方式的主要缺点是:
· 建设时间长
· 价格昂贵
· 难于管理
此后,随着ATM和帧中继(Frame Relay)技术的兴起,电信运营商转而使用虚电路方式为客户提供点到点的二层连接,客户在其上建立自己的三层网络以承载IP、IPX等数据流。虚电路方式与租赁专线相比,运营商提供服务的时间短、价格低,能在不同VPN间共享运营商的基础网络设备。这种VPN的不足在于:
· 依赖于专用的介质(如ATM或FR):为提供基于ATM的VPN服务,运营商需要建立覆盖全部服务范围的ATM网络;为提供基于FR的VPN服务,又需要建立覆盖全部服务范围的FR网络。在网络建设上造成浪费。
· 速率较慢,达不到当前Internet中已实现的OC-192c/STM-64速率。
· 部署复杂:尤其是向已有的VPN加入新的站点时,需要同时修改所有接入此VPN站点的边缘节点的配置。
以上缺点导致了新的替代方案的产生,在同一个网上同时提供IP服务和二层VPN服务、可方便设定速率、配置简单的技术应运而生,这种技术即基于MPLS的二层VPN(以下简称MPLS L2VPN)。
这样,运营商就可以只管理、运行和维护一个网络,并在一个网络上同时提供Best-effort IP服务、三层VPN、二层VPN、流量工程和区分服务(Diffserv)等许多服务,从而减少运营商的建设、维护和运行费用。
MPLS L2VPN
MPLS L2VPN提供基于MPLS网络的二层VPN服务,使运营商可以在统一的MPLS网络上提供基于不同介质的二层VPN,如ATM、FR、VLAN、Ethernet、PPP。同时,MPLS网络仍可以提供传统IP、MPLS L3VPN、流量工程和QoS等服务。
简单来说,MPLS L2VPN就是在MPLS网络上透明传输用户二层数据。从用户的角度来看,MPLS网络是一个二层交换网络,可以在不同节点间建立二层连接。
如图6-1所示,以ATM为例,每个CE配置一条ATM虚电路,通过MPLS网络与远端CE相连,这与通过ATM网络实现互联类似。
在MPLS L2VPN中,CE、PE、P的概念与BGP/MPLS L3VPN一样,原理也相似。
图7-104 CE使用ATM接入组网示意图
MPLS L2VPN的基本概念
· CCC(Circuit Cross Connect):交叉电路连接,是通过静态配置来实现L2VPN的一种方式。
· SVC(Static Virtual Circuit):与LDP方式L2VPN类似,但是不使用LDP作为传递二层VC和链路信息的信令,使用手工配置VC Label传递标签信息,是MPLS L2VPN的一种实现方式。
· Martini:遵循草案draft-martini-l2circuit-trans-mpls,使用LDP作为传递VC信息的信令,是MPLS L2VPN的一种实现方式。
· Kompella:使用BGP作为传递VC信息的信令,是MPLS L2VPN的一种实现方式。
· VPWS(Virtual Private Wire Service):是指在分组交换网络PSN(Packet Switched Network)中尽可能真实地模仿ATM、帧中继、以太网、低速TDM(Time Division Multiplexing)电路和SONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)等业务的基本行为和特征的一种二层业务承载技术。
· VPLS(Virtual Private LAN Service):虚拟专用局域网业务VPLS是LAN之间通过虚拟专用网段互连,是局域网在IP公共网络上的延伸。
· VLL(Virtual Leased Line):VLL是对传统租用线业务的仿真,使用IP网络模拟租用线,提供非对称、低成本的“DDN”业务。从虚拟租用线两端的用户来看,该虚拟租用线近似于传统的租用线。
· PWE3(Pseudo-Wire Emulation Edge to Edge):是一种端到端的二层业务承载技术。PWE3对VPWS进行了扩展,主要表现在对Martini方式的扩展。PWE3采用了Martini协议的部分内容,包括信令Target LDP和封装模式。
MPLS L2VPN的优势
扩展了运营商的网络功能和服务能力
运营商只需要使用一个网络就可以提供MPLS L2VPN、三层BGP/MPLS VPN、IP数据等服务。并且可利用MPLS相关的增强技术,如流量工程、QoS等功能为客户提供不同的服务级别,以满足客户多种多样的需求。
具有更高的可扩展性
在非MPLS的ATM或FR网络中,二层VPN由虚电路(VC)提供。对于每一条VC,网络中的边缘设备(PE)和核心设备(P)都需要维护完整的VC信息。这样,当运营商要连接PE上的多个CE设备时,需要建立多条VC,因此,在PE和P设备上需要维护许多VC的信息。而对于MPLS L2VPN,通过使用标签栈技术,可以在一条LSP中复用多条VC,因此核心设备P需维护一条LSP信息,提高了系统的可扩展性。
管理责任分工明确
在BGP/MPLS VPN中,运营商负责提供三层的连接性。客户在CE上的错误配置,可能导致PE甚至整个运营商网络的不稳定。而在MPLS L2VPN中,运营商仅提供二层的连接性,客户负责三层的连接性,如路由等。这样,当用户由于配置错误,引起路由振荡时,不会影响运营商网络的稳定性。
路由私有、安全
由于用户自己维护其路由信息,运营商不必考虑各个用户的地址重叠问题,不需要关注用户的IP地址规划,也不用担心一个用户的路由信息会泄漏到其它用户的私有网络。一方面减少了运营商的管理负担,另一方面,增加了用户信息的安全性。
配置简单
传统的二层VPN存在N平方问题:当有N个CE时,如果CE之间全连接,在每个CE要配置N-1个到其它CE的PVC。这样整个网络的PVC连接数量就会达到N×(N-1)÷2个。尤其当新增加一个CE时,不但要在当前新增加的CE上配置N条PVC,还要在原来的N个CE上,各建立一条新的PVC连接到当前新增加的CE上。而对于Kompella方式的MPLS L2VPN,通过初始时的过量配置,当新增加一个CE站点时,只需要在与新CE直接相连的PE修改配置,其他PE不需要进行任何修改。
多协议支持
由于运营商只提供二层连接,客户可以使用任何三层协议,如IP、IPv6等。
网络平滑升级
由于MPLS L2VPN对于用户是透明的,当运营商从ATM、FR等传统的二层VPN向MPLS L2VPN升级时,不需要用户进行任何重新配置,除了切换时可能造成短时间的数据丢失外,对用户来说几乎没有影响。
MPLS L2VPN的基本架构
MPLS L2VPN的基本架构可以分为AC、VC和Tunnel三个部分。
结构图
MPLS L2VPN的基本结构如图6-2。
图7-105 MPLS L2VPN基本结构
功能组件
MPLS L2VPN功能需要如下三个部分:
· AC(Attachment Circuit):接入电路。AC是一条连接CE和PE的独立的链路或电路。AC接口可以是物理接口或逻辑接口。AC属性包括封装类型、最大传输单元MTU、以及特定链路类型的接口参数。
· VC(Virtual Circuit):虚电路。这里指在两个PE节点之间的一种逻辑连接。
· Tunnel(Network Tunnel):隧道,用于透明传送用户数据。
用户报文的传送
MPLS L2VPN也是通过标签栈实现用户报文在MPLS网络中的透明传送。
· 外层标签(称为Tunnel标签)用于将报文从一个PE传递到另一个PE。
· 内层标签(在MPLS L2VPN中称为VC标签)用于区分不同VPN中的不同连接,接收方PE根据VC标签决定将报文转发给哪个CE。
下面是MPLS L2VPN转发过程中,报文标签栈变化的示意图:
图7-106 MPLS L2VPN标签栈处理
图6-3中,L2 PDU(Protocol Data Unit)是链路层报文;T是Tunnel标签;V是VC标签;T’表示转发过程中外层标签被替换。
当前支持的封装类型
在运营商网络中传递的帧格式为:
图7-107 MPLS L2VPN的帧格式
MPLS L2VPN支持的链路层封装类型有:ATM AAL5、ATM cell relay、FR、HDLC、PPP、VLAN、Ethernet。
MPLS L2VPN报文结构
MPLS L2VPN的报文结构如图6-5所示。MPLS L2VPN报文就是在二层报文外面封装了两个4字节的MPLS标签和一个4字节的控制字。其中外层的MPLS标签是表示Tunnel Label,内层的MPLS标签表示的是VC Label。
标签共有4个域:
· Label:20比特,标签值字段,用于转发;
· Exp:3比特,保留,现在通常用做CoS(Class of Service);
· S:1比特,栈底标识。MPLS支持标签的分层结构,即多重标签,S值为1时表明为最底层标签;
· TTL:8比特,和IP分组中的TTL(Time To Live)意义相同。
控制字是可选内容,如果不需要配置控制字时,4字节的控制字将被删除,普通二层报文外面就只封装两个4字节的MPLS标签。
图7-108 MPLS L2VPN的报文结构
控制字
控制字是一个4字节的封装报文头,在MPLS分组交换网络里用来传递报文信息。
控制字主要有三个功能:
· 携带报文转发的序列号
在转发层面,如果支持控制字,则在数据报文前增加一个32比特的控制字,用来表示报文顺序。在支持负载分担时报文才可能乱序,可以使用控制字对报文进行编号,以便对端重组报文。
· 填充报文,防止报文过短
例如,当PE到PE间为以太网、PE与CE间为PPP连接时,由于PPP的控制报文大小达不到以太网支持的最小MTU,PPP不能协商成功。这时,通过添加控制字可以避免此问题。
· 携带二层帧头控制信息
有些情况下,在网络上传输L2VPN报文的时候没有必要传送整个的二层帧,而是在入节点(Ingress端)剥离二层头,然后在出节点(Egress端)重新添加。但是如果二层头中有些信息需要携带,这种方式就不可取了。使用控制字可以解决该问题,控制字可以携带PE之间Ingress端和Egress端事先协商好的信息。
在控制层面,两端同时支持或者同时不支持控制字时,才能协商成功。在转发层面,按照控制层面的协商结果决定是否对报文添加控制字。
表7-6 需要控制字携带二层帧头控制信息的封装类型
封装类型
是否需要控制字
ATM(AAL5)
是
Ethernet
否
Frame Relay
是
HDLC
否
PPP
否
MPLS L2VPN的分类
MPLS L2VPN包括VPWS和VPLS两种方式。
VPWS
VPWS是指在分组交换网络PSN(Packet Switched Network)中尽可能真实地模仿ATM、帧中继、以太网、低速TDM电路和SONET/SDH等业务的基本行为和特征的一种二层业务承载技术。
在PSN网络中,VPWS以LDP、BGP为信令,通过隧道(如MPLS LSP、GRE、L2TPv3)模拟CE端的各种二层业务(如各种二层数据报文),透明传递CE端的二层数据。这种模拟是近似的,对于TDM数据,将产生失真。VPWS属于点到点方式的二层VPN技术,VPWS包括Martini和Kompella方式。
VPLS
VPLS是通过分组交换网络PSN(Packet Switched Network)连接多个以太网LAN网段,使它们像一个LAN那样工作。VPLS也称为透明局域网服务TLS(Transparent LAN Service)或虚拟专用交换网服务(Virtual Private Switched Network Service),不同于普通L2VPN的点到点业务,利用VPLS技术,服务提供商可以通过MPLS骨干网向用户提供基于以太的多点业务。
MPLS L2VPN VPWS简介
VPWS技术是一种点到点的虚拟专线技术,能够支持几乎所有的链路层协议。
为了实现点到多点的MPLS L2VPN虚拟专线,目前的实现是VPLS(Virtual Private LAN Service),VPLS技术不在本文中讨论。VPLS的相关技术请参考VPLS的特性描述手册,PWE3的相关技术请参考PWE3的特性描述手册。
VPWS技术作为一种虚拟租用线路的实现方法,主要是在接入层和汇聚层使用。
VPWS技术也是建立在MPLS技术下的二层隧道技术。传统的二层隧道是通过二层的交换技术来实现的,比如、FR、ATM网络,通过对应二层设备来完成用户节点间二层隧道的建立。由于使用了不同的二层协议,因此不同种二层网络是隔离的。
MPLS标签技术的产生,为建立统一兼容的二层交换网络提供了可能。可以把MPLS理解成为一个特殊的二层协议,也就是说在原有的各种二层封装基础上再进行MPLS封装。
VPWS技术的好处在于:
· 同一个ISP网络可以提供多种二层协议的接续和交换。
· 为不同的L2交换网络互连提供了可能性。
因为VPWS是MPLS技术的产物,因此类似MPLS L3VPN的结构,使用内层标签来标识不同的VC(Virtual Circuit),使用外层标签来做公共隧道。
SP(Service Provider)网络的P(Provider)设备不需要维护任何二层信息,只根据MPLS标签信息在公网隧道上进行MPLS转发。
VPWS的FEC(Forwarding Equivalence Class)与L3VPN的FEC的概念有所不同,在L3VPN中FEC实际上就是路由信息,而VPWS中FEC是一些二层信息和VC标志等。
MPLS L2VPN VPWS的实现方式
本节主要介绍如下内容:
· VPWS实现方式概述
· CCC方式MPLS L2VPN
· SVC方式MPLS L2VPN
· Martini方式MPLS L2VPN
· Kompella方式MPLS L2VPN
· MPLS L2VPN VPWS几种实现方式比较
VPWS实现方式概述
目前使用VRP平台的华为中高端数据通信产品支持VPWS技术,VPWS的实现方式分为4种:CCC、SVC、Martini、Kompella。
· CCC、SVC方式不使用信令协议,通过静态配置VC标签的方式来实现MPLS L2VPN。
· Martini方式使用LDP信令,通过LDP信令协议传递二层信息和VC标签的方式来实现MPLS L2VPN。
· Kompella方式使用BGP信令,通过BGP信令协议传递二层信息和VC标签的方式来实现MPLS L2VPN。
Martini草案和Kompella草案是IETF的PPVPN(Provider-provisioned Virtual Private Network)工作组制订的多个MPLS L2VPN框架草案中最主要的两种。
下面具体对上述的MPLS L2VPN的几种实现方式进行介绍。
CCC方式MPLS L2VPN
CCC方式概述
CCC方式是一种静态配置VC连接的方式,根据配置把VC一端收到的二层协议报文映射到一个静态的LSP隧道上去,这样二层报文在途经的每一跳设备就根据该静态LSP进行MPLS转发,最后将报文转发到VC的另一端。
与普通MPLS L2VPN不同,CCC采用一层标签传送用户数据,这一层标签在每个LSR上进行标签交换。因此CCC对LSP的使用是独占性的,而且在两个方向都需要配置静态的LSP。CCC的LSP只用于传递这个CCC连接的数据,不能用于其他MPLS L2VPN连接,也不能用于BGP/MPLS VPN或承载普通的IP报文。CCC方式只需要ISP网络支持MPLS转发。
CCC在两个CE之间透明传递用户数据,源CE的二层报文被发送到目的CE中去,只有二层地址被改变了,增加了用户数据的安全。
CCC适用于小型、拓扑简单的MPLS网络,需要管理员手工配置。因为不进行信令协商,不需要交互控制报文,因此消耗资源比较小,易于理解,但维护不方便,扩展性差。
CCC连接分类
CCC的连接方式可以分为本地连接和远程连接两种方式。
· 本地连接:在两个本地CE之间建立的连接,即两个CE连在同一个PE上。PE的作用类似二层交换机,可以直接完成交换,不需要配置静态LSP。
· 远程连接:在本地CE和远程CE之间建立的连接,即两个CE连在不同的PE上,需要配置静态LSP来把报文从一个PE传递到另一个PE。PE侧通过配置命令将静态LSP与CCC连接进行对应。
CCC方式的结构
CCC方式的MPLS L2VPN既支持远程连接,也支持本地连接。CCC方式支持的拓扑结构如图6-6所示。
图7-109 CCC连接方式
对于图6-6中,VPN1的Site1和Site2,它们通过CCC远程连接(蓝色虚线)互连。Site1与Site2间需要两条静态LSP,一条从PE1到PE2,表示从Site1到Site2的LSP,另一条从PE2到PE1,表示从Site2到Site1的LSP。两条蓝色虚线组成一条双向的VC,即CCC远程连接,为客户提供类似传统二层VPN的二层连接。
对于图6-6中,VPN2的Site1和Site2通过CCC本地连接(红色虚线)进行互连,它们接入的PE3相当于一个二层交换机,CE之间不需要LSP隧道。可以直接进行VLAN、Ethernet、FR、ATM AAL5、PPP、HDLC等不同链路类型的数据交换。
这种方式的最大优点是:不需要任何标签信令传递二层VPN信息,ISP网络能支持MPLS转发即可。此外,由于CCC的LSP是专用的,因此可以提供QoS保证。
CCC方式的报文交互过程
CCC方式的报文交互,分为两种情况:CCC本地连接和CCC远程连接。
· CCC本地连接
图7-110 CCC的本地连接的报文交互过程
如图6-7所示,PE1收到CE1接口发送来的L2 PDU后,PE1根据CCC的关联配置发现这是一个本地连接。PE1得到出接口名称后对L2 PDU不做任何处理,将二层报文通过出接口发送到CE2。
· CCC远程连接
图7-111 CCC的远程连接的报文交互过程
如图6-8所示,以CE1发送报文到CE2为例(反方向过程相同):
2. PE1收到CE1接口发送来的二层报文。
3. PE1根据CCC的关联配置查找静态LSP,得到下一跳为PE2,出标签为100。
4. PE1在L2 PDU报文外封装MPLS头(Lable=100)并发送到连接P的接口。
5. P设备收到报文后查找LSP表,弹出标签100后,在L2 PDU报文外封装MPLS头(Lable=101)并发送到连接PE2的接口。
6. PE2收到报文后查找LSP表,进行弹出操作,根据CCC的关联配置得到对应的出接口
7. PE2将二层报文直接送到CE2。
这个过程中,在入接口,PE设备只关心接收二层报文的接口名称。如果这个接口关联某一个CCC连接,则PE查找CCC的相关配置,并且进行MPLS封装和MPLS转发。PE连接CE的接口并不做任何二层的处理。同样在出接口,PE只是解封装MPLS,并直接将报文发送到出接口。
因此PE的CCC连接一旦建立起来,PE上AC接口的二层协议状态实质上是处于Down状态。这一点在所有形式的VPWS实现上都是相同的。
VPWS在实现上也可以在报文进入的PE时进行二层报文头的解封装,并且在出口PE上对报文进行重新二层封装,这样就可以实现二层协议的相互转换,也就是异种介质互联。
SVC方式MPLS L2VPN
在Martini中用LDP进行VC标签的交互,如果不使用LDP,而是在PE上直接根据VC ID来手动分配内层标签,这就是SVC的模式,可以认为SVC是Martini的简化。
SVC的外层标签(公网隧道)建立的方法与Martini相同。内层标签在配置VC的时候进行手工指定,不需要使用VC标签的传递信令。所以SVC的网络拓扑模型与报文交互过程与Martini完全相同。
创建SVC的静态二层VC连接时,可以通过隧道策略指定使用的隧道类型(LDP LSP、CR LDP、GRE),并支持负载分担。SVC支持Multi-Hop方式的跨域L2VPN,不支持本地连接。Multi-Hop方式的具体内容,请参见PWE3的特性描述手册。
Martini方式MPLS L2VPN
Martini方式概述
Martini方式使用两层标签,内层标签是采用扩展的LDP作为信令进行交互。这种方式遵循草案draft-martini-l2circuit-trans-mpls,在Martini草案中对标准的LDP进行了扩展,增加了FEC类型(VC FEC)用于VC标签的交换。此外,如果交换VC标签的两个PE不是直接相连的,必须建立Remote LDP会话,在这个会话上传递VC FEC和VC标签。PE为CE之间的每条连接分配一个VC标签。二层VPN信息将携带着VC标签,通过LDP建立的LSP,转发到Remote Session的对端PE。这样实际上在普通的LSP上建立了一条VC LSP。
在Martini方式中,两个CE之间的VC Type + VC ID来识别一个VC。
· VC-Type:表明VC的封装类型,例如ATM、VLAN或PPP;
· VC-ID:标识VC。相同VC-Type的所有VC,其VC-ID必须在整个PE唯一。
同一个VC Type的所有VC中,其VC ID必须在整个PE中唯一。连接两个CE的PE通过LDP交换VC标签,并通过VC ID将对应的CE绑定起来。当AC接口物理状态变为UP,PE间的隧道建立成功,并完成双方的标签交换和绑定后,一条VC就建立起来了。一个VC建立起来后,两个CE通过这个VC来传递二层数据。
Martini方式支持Multi-Hop方式的跨域L2VPN,不支持本地连接。不能提供像CCC方式那样的本地交换功能。也不像CCC远程连接那样,一条LSP只能被一条远程CCC连接独享。在Martini方式下,外层标签用于将各个VC的数据在ISP网络中进行传递。通过内层的VC标签可以对用户数据进行区分,因此ISP网络中的一条LSP可以被多条VC共享使用。
外层隧道是用于VC数据穿越ISP网络,所以外层隧道也可以使用IP隧道封装,比如使用GRE隧道。
部署Martini方式需要ISP网络能够自动的建立LSP隧道,所以需要ISP网络支持MPLS转发及MPLS LDP,如果ISP网络不支持LDP,那么可以使用GRE隧道封装。
Martini方式MPLS L2VPN支持Graceful Restart,路由器发生倒换后,VC标签保持不变。倒换过程中,VC状态保持UP。报文在VC上的转发不受倒换影响。
倒换后,如果从LDP对等体学来的标签与本地保存的不同,原来的标签将被删除,使用此标签的VC状态变为Down。
Martini方式的结构
Martini方式的MPLS L2VPN只支持远程连接,而不支持本地连接。Martini方式支持的拓扑结构如图6-9。
图7-112 Martini支持的拓扑模型
对于图6-9中,VPN1的Site1和Site2,通过Martini远程连接(红色虚线)互连。VPN2的Site1和Site2,也通过Martini远程连接(蓝色虚线)互连。VPN1和VPN2在ISP的网络里分别通过两条不同的LSP互联,也可以复用一条LSP,通过一条LSP进行互联。
Martini方式的报文交互过程
图7-113 Martini的报文交互过程
如图6-10所示,Martini的报文交互过程分为从Site1到Site2和从Site2到Site1。
· 从Site1到Site2
VPN1的Site1中发送到PE1的VLAN10的报文,在到达PE1后,PE1先打上VC Label=3000,然后再打上LSP1的出标签1000,即进入LSP1隧道(红色虚线);对于VPN2的Site1发送到PE1的VCI=100的ATM报文,PE1在其上打上VC Label=4000,然后再打上LSP1的出标签1000,同样进入LSP1隧道(红色虚线)。
这些报文在到达PE2后,PE2去掉LSP1的入标签1002,根据内层VC Label=3000,选择到VPN1的Site2的出接口;根据VC Label=4000,选择到VPN2的Site2的出接口。因为VC Label(3000、4000)是Egress PE2在建立各自VC时,通过LDP信令传给Ingress PE1的。
· 从Site2到Site1
VPN1的Site2中发送到PE2的VLAN20的报文,在到达PE2后,PE2先打上VC Label=3500,然后再打上LSP2的出标签2000,即进入LSP2隧道(蓝色虚线);对于VPN2的Site2发送到PE1的VCI=205的ATM报文,PE2在其上打上VC Label=4500,然后再打上LSP2的出标签2000,同样进入LSP2隧道(蓝虚线)。
这些报文在到达PE1后,PE1去掉LSP1的入标签2002,根据内层VC Label=3500,选择到VPN1的Site1的出接口;根据VC Label=4500,选择到VPN2的Site1的出接口。因为VC Label(3500、4500)是Egress PE1在建立各自VC时,通过LDP信令传给Ingress PE2的。
从上面的交互过程中,我们可以看到,外层的LSP隧道是被共享的。PE2收到报文后会根据内层标签的不同映射到不同的VC上。
在Martini方式中,由于在运营商网络中,只有PE设备需要保存VC Label和LSP的映射等少量信息,P设备不包含任何二层VPN信息,所以扩展性好。此外,当需要新增加一条VC时,只在相关的两端PE设备上各配置一个单方向VC连接即可,不影响网络的运行。
与Kompella方式相比,Martini使用LDP作为信令而不是使用BGP作为信令,不依赖于定时刷新机制,所以对故障的感知速度要快。
Martini方式适合稀疏的二层连接,例如星型连接。
VC标签的交互信令
前面已经提到过Martini方式对传统的LDP做了扩展,用于交互VC的信息,也就是传递VC标签。
Martini方式中,如果要在PE间配置一条VC连接,只需在相关的两个PE上各配置一个单向连接即可。当PE与CE相连的接口变为UP状态后,如果存在从本端PE到对端PE的LSP,则本地PE通过LDP向对端发送一个Label Mapping消息,在此Label Mapping消息中携带新定义的VC FEC,此VC FEC描述了CE接口的类型、使用的内层VC Label以及接口的参数等信息。当前定义的接口参数有:MTU、最大可拼接的ATM信元数、接口描述等。
在LDP会话中VC FEC出现在标签映射消息中,图6-11是一个标签映射消息的结构。
图7-114 LDP的标签映射消息
Martini方式在PE间建立扩展的远程LDP会话,通过会话来交互VC信息。为了交互VC信息,增加了新的FEC的定义,新的FEC类型为128。图6-12是VC FEC结构。
图7-115 128类VC FEC结构
在128类FEC类型里,Interface Parameters是长度是不确定的,其长度信息包含在VC Info Length里。
表7-7 128类VC FEC报文字段描述
字段名
含义
位数(bit)
说明
VC TLV
VC的TLV值
8
取值为0x80,即十进制的128。
C
控制字
1
1表示支持控制字;0为不支持控制字。
VC Type
VC类型
15
类型包括FR、ATM、VLAN、Ethernet,PPP和HDLC。
VC Info Length
VC信息长度
8
VC ID和interface parameters的长度。
Group ID
组ID值
32
一些VC组成一个组,主要用来批量撤消相应的VC信息。
VC ID
VC的ID值
32
VC ID值,一个VC是由VC ID和VC Type来唯一确定。
Interface Parameters
接口参数
不确定
一些接口参数值,常用的是接口的MTU值。
Martini方式通过VC Type + VC ID来区分不同的VC,在Interface parameters部分描述了与CE连接的接口以及MTU等其它一些信息。128类VC FEC报文就封装在本地PE通过LDP向对端发布的Label Mapping消息中。
Kompella方式MPLS L2VPN
Kompella方式
Kompella方式的L2VPN与RFC2547定义的三层BGP/MPLS VPN很相似,是使用BGP作为交换信令。与MPLS L3 VPN类似,各个PE之间通过建立BGP会话自动发现L2 VPN的各个节点,使用BGP作为传递二层信息和VC标签的信令协议,在MPLS网络上以端到端(CE到CE)方式实现L2VPN。类似于BGP/MPLS VPN,Kompella方式也使用VPN Target来进行VPN路由收发的控制,给组网带来了很大的灵活性。
与Martini完全不同的是这里出现了真正VPN的概念,在不同的VPN内,CE ID是可以相同的,但是同一VPN的CE ID必须唯一。Kompella方式的MPLS L2VPN不直接对CE与CE之间的连接进行操作,而是在整个运营商网络中划分不同的VPN,在VPN内部对CE进行全局编号。
在内层标签的分配上,Kompella方式与Martini方式完全不同。Kompella采取标签块的方式,事先为每个CE分配一个标签块,这个标签块的大小决定了这个CE可以与其它CE建立多少个连接。这样做的好处是允许为VPN分配一些额外的标签,留待以后扩容使用。PE根据这些标签块进行计算,得到的实际的内层标签,用于报文的传输。
无论是使用Kompella方式还是Martini方式,二层报文传递时的MPLS封装是完全相同的,都是二层标签。另外,Kompella支持本地连接。
要建立两个CE之间的连接时,需要在PE上设置本地CE和远程CE的CE ID。
Kompella方式支持本地连接和远程连接;并支持下述两种方式的跨域L2VPN:
· Multi-Hop方式:采用BGP标签路由。
· VRF-to-VRF方式:在ASBR上保存标签块。
标签块
Kompella方式采用标签块(Label Block)分配标签,一次为多个连接分配标签。
用户可以指定一个本地CE的范围(CE range),表明这个CE能与多少个CE建立连接。系统一次为这个CE分配一个标签块,标签块的大小等于CE range。这种方式允许用户为VPN分配一些额外的标签,短期可能会造成标签资源的浪费,但能够减少VPN扩容时的配置工作量。
假设一个企业的VPN包括10个CE,考虑到企业扩展业务,将来可能会有20个CE。这时,可以把每个CE的CE range设置为20,预先为未来的10个CE分配标签。以后VPN添加CE节点时,只需要在与新CE直接相连的PE修改配置,其他PE不需要进行任何修改。
Kompella方式的结构
Kompella方式的MPLS L2VPN既支持远程连接,也支持本地连接。Kompella方式支持的拓扑结构如图6-13所示。
图7-116 Kompella方式支持的拓扑模型
对于图6-13中,VPN1的Site1和Site2,通过Kompella远程连接(红色虚线)互连。VPN2的Site1和Site2,通过Kompella本地连接(蓝色虚线)互连。
Kompella方式对各种复杂的拓扑支持能力更好,这得益于BGP的节点自动发现能力。
Kompella方式的报文交互过程
Kompella方式的报文交互过程与Martini方式的报文交互过程类似,都使用标准的两层标签。Maitini方式的内层标签是采用扩展的LDP作为信令进行交互,而Kompella方式的内层标签则是采用MP-BGP作为信令进行交互,两者VC表项的形式略有不同。
图7-117 Kompella的连接方式
如图6-14所示,起初6个客户设备(CE1~CE6)接入不同的VPN。为了使这6个CE设备可以相互通信,需要建立CE之间的全连接拓朴结构,即每个CE与其它5个CE各建立一条VC。为建立这些连接,在这些CE接入的PE1、PE2、PE3上只要进行如下的配置:
2. 在每个PE上创建VPN1,并创建PE含有的CE,如在PE1上,创建CE1、CE2、CE3。
3. 为每个CE分配含有足够Label的标签块。这里,由于一个CE和其它5个CE相连,需要分配5个label的标签块。
4. 在PE上绑定与CE相连的链路名称和对端CE编号。
如在PE1上绑定<atm1/0/,对端CE ID=2>;<POS1/0/1,对端CE ID=1>;<GE1/0/0,对端CE ID=4>等。
可以看到Kompella方式也可以象CCC方式二层连接一样,可以建立本地连接,PE充当交换机。采用Kompella方式,在全连接的情况下配置简单。
此外,如果用户在开始时,为VPN多分配一些额外的标签,那么再新增加二层VPN站点时,则只需要配置新站点所连接的PE,而不必配置其他的PE。
如图6-14所示,如果在初始时在各个PE上为每个CE分配的标签数大于6个,并且事先绑定了到CE7的链路,那么当新加入站点Site5中的CE7时,只需在PE3上增加CE7和在PE3上绑定与CE7到其他CE的链路即可。
VC标签的计算
Kompella的实现相对复杂,主要是VC标签的计算部分,本节将介绍Kompella方式下标签的计算方法。
Kompella方式的内层标签则是采用MP-BGP作为信令进行交互,BGP交互的内容是标签块,也就是Label Block。标签块是一个连续的标签范围。
为了清楚的描述标签块,需要定义几个值:
· 标签块的起始标签LB(Label Base)。
· 块的大小LR(Label Range)。
· 偏移量LO(Label-block Offset)。
图7-118 Kompella方式VC标签块的计算
这样这个标签块就被清楚的定义了,如图6-15。
当PE上增加一个CE的相关配置时,需要指定标签块的大小LR,LB是PE自动分配的。这个标签块作为一个NLRI(Network Layer Reachable Information)条目通过BGP传递到其它PE。当该CE的配置被删除或者PE与该CE的连接失效,这个标签块也会被删除,BGP同样会做撤销通告。
假设在开始部署Kompella方式的VPN时,CE1需要与远端其它CE建立两条VC,那么这时定义标签块的大小不能小于2。为了今后扩容的考虑,也可以定义Rang=10。
无论Rang为多大,随着网络的扩容VC数量的增加,总会出现标签不够用的时候。这时候我们就需要重新定义Rang的大小,给一个更大的标签空间。但问题出现了,前面已经介绍了标签块的数据是通过BGP的NLRI来传递的,并且这个标签块已经被用于计算VC标签和实际数据的转发。为了不破坏原有的VC连接,采用一个办法,就是给这个CE分配一个新的标签块,并且作为一条新的NLRI通过BGP通告。也就是说一个CE的标签空间可能是由许多个标签块组成的,这种机制解决了网络扩展的需求。
多个标签之间的关系通过偏移量LO(Label-block Offset)来定义。LO标志前面所有标签块大小的总合。比如第一个标签块的LR为100,LO为0;第二个标签块的LR为50,那么LO为100;如果有第三个标签块,它的LO就是150。LO会在VC标签计算被使用。现在每一个标签块都可以用三个参数来描述,那就是LB/LR/LO。
CE ID是在同一个VPN内唯一标识CE的参数。在同一个VPN内CE ID必须是互不相同的,CE ID会在每一个NLRI中携带,这样就可以将不同的标签块与它对应的CE关联起来。
CE ID的另一个作用是用于VC标签的计算,所以CE ID不能随便选择。简单的判断方法是本端CE配置的Range值为x,要与对端CE(CE ID为y)连接,那么必须满足条件x > y。否则就需要增加x的大小。
图7-119 标签块的计算
内容
定义
内容
定义
PE-A为CE-m分配的Lable Block
Lm
PE-B为CE-n分配的Label Block
Ln
Lm的Block Offset
LOm
Ln的Block Offset
LOn
Lm的Label-Base
LBm
Ln的Label-Base
LBn
Lm的Label-Range
LRm
Ln的Label-Range
LRn
VC标签的计算过程如图6-16所示。
假设PE-A、PE-B为同属于同一个VPN-x的CE-m和CE-n建立一条VC。
PE-A收到远端PE-B发过来一个标签块LBn/LRn/LOn。
2. 检查从PE-B收到CE-n的封装类型是否与CE-m的相同。如果封装类型不一致,则停止处理。
3. 检查CE ID,是否m=n,如果是m与n的值相同,则报错“CE ID k has been allocated to two CEs in VPN-x(check CE-m at PE-A)”,然后停止处理。
4. 如果CE-m有多个标签块,检查这些标签块是否有满足LOm <= n < LOm + LRm。如果任何一个都不满足,则报错“Cannot communicate with CE-m(PE-A)of VPN-x:outside range”然后停止处理。
5. 检查和CE-n相关的所有的标签块是否有满足LOn <= m < LOn + LRn,如果任何一个都不满足,则报错“Cannot communicate with CE-m(PE-A)of VPN-x:outside range”然后停止处理。
6. 检查PE-m和PE-n之间的外层通道是否正常建立。如果没有正常建立,就停止处理,这里假设为LSP隧道,标签为Z。
对于外层隧道是否建立的判断决定了是否为一个VC计算VC标签,这一点与L3VPN不同。如果外层隧道没有建立,就不为VC计算标签。
7. PE-A为CE-n分配内层标签为(LBn + m - LOn),即VC的出标签;PE-A为CE-m分配内层标签为(LBm + n - LOm),即VC的入标签。
8. PEB到PEA的外层隧道的标签为Z。
9. 内外层标签都已经计算出来并且VC处于UP状态后,就可以继续进行二层报文的传输。
下面的举例分阶段说明了CE标签块分配的过程。
假设PE之间都是通过BGP来交换标签块的信息。全部公网LSP隧道都处于正常UP的状态,只需要进行VC标签的计算。图中CE1的CE ID为1,CE2的CE ID为2,以此类推。
图7-120 Kompella的VC标签计算
如图6-17所示,CE1与CE3标签块的分配过程如下:
10. PE1为CE1分配标签块LB/LR/LO=1000/5/0,并且收到PE2给CE3分配的标签块LB/LR/LO=1010/2/0。根据前面的计算规则可以计算出VC的入标签及出标签。
11. PE1上还连接了CE2,PE1为CE2分配的标签块为LB/LR/LO=1005/50/0(接着CE1的标签块继续分配)。CE2目前并没有建立连接,是为今后的扩容而做准备,因此PE不会为CE2计算标签。
12. PE1上的判断,如表6-3所示。
表7-8 PE1对CE1和CE3的标签判断
类别
数值
是否满足(LOm<= n < LOm + LRm)
是否满足(LOn <= m < LOn + LRn)
m
1
0 < 3 < 0+5
满足条件
0 < 1 < 0+2
满足条件
LBm
1000
LRm
5
LOm
0
n
3
LBn
1010
LRn
2
LOn
0
13. PE1进行VC标签计算,如表6-4所示。
表7-9 PE1对VC的标签计算
类别
数值
PE计算VC出标签(CE3)
(LBn + m - LOn)
PE计算VC入标签(CE1)
(LBm + n - LOm)
m
1
1010 + 1 – 0 = 1011
1000 + 3 – 0 = 1003
LBm
1000
LRm
5
LOm
0
n
3
LBn
1010
LRn
2
LOn
0
14. PE2上的判断,如表6-5所示。
表7-10 PE2对CE1和CE3的标签判断
类别
数值
是否满足(LOm<= n < LOm + LRm)
是否满足(LOn <= m < LOn + LRn)
m
3
0 < 1 < 0+2
满足条件
0 < 3 < 0+5
满足条件
LBm
1010
LRm
2
LOm
0
n
1
LBn
1000
LRn
5
LOn
0
m是指与PE直接相连的本端CE的编号;n是指不与PE直接相连的对端CE的编号。所以PE1与PE2的m和n值相反,具体数值请参见表6-3和表6-5。
15. PE2进行VC标签计算,如表6-6所示。
表7-11 PE2对VC的标签计算
类别
数值
PE计算VC出标签(CE1)
(LBn + m - LOn)
PE计算VC入标签(CE3)
(LBm + n - LOm)
m
3
1000 + 3 – 0 = 1003
1010 + 1 – 0 = 1011
LBm
1010
LRm
2
LOm
0
n
1
LBn
1000
LRn
5
LOn
0
如图6-18所示,一个新的CE13加入VPN,需要与CE1建立一条VC。PE3为CE13分配块LB/LR/LO=1000/4/0,CE1和CE13需要建立一条新的VC。
图7-121 增加新CE后Kompella的VC标签计算
仍按照上述方法对CE ID进行判断:
表7-12 PE1对CE1和CE13的标签判断
类别
数值
是否满足(LOm<= n < LOm + LRm)
是否满足(LOn <= m < LOn + LRn)
m
1
0 < 13,满足条件;
0+5<13,不满足条件。
0 < 1 < 0+4,满足条件。
LBm
1000
LRm
5
LOm
0
n
13
LBn
1000
LRn
4
LOn
0
CE ID为13大于CE1的LO+LR,不能计算CE1的出标签,这时需要更改PE1上CE1的Label Range配置,本例中修改为15,需要再为CE1分配一个标签块,Label Range是10。这样PE1会为CE1分配第二个标签块为LB/LR/LO=1055/10/5(接着给CE2预留的标签块继续分配)。然后重新判断如表6-8所示。
表7-13 PE1对CE1和CE13的标签判断
类别
数值
是否满足(LOm<= n < LOm + LRm)
是否满足(LOn <= m < LOn + LRn)
m
1
5 < 13< 10+5
满足条件
0 < 1 <0+4
满足条件
LBm
1055
LRm
10
LOm
5
n
13
LBn
1000
LRn
4
LOn
0
同理,PE3会收到PE1就为CE1分配的两个标签块LB/LR/LO=1000/5/0和LB/LR/LO=1055/10/5,进行判断如下。只有标签块LB/LR/LO=1055/10/5能够满足条件。判断如表6-9所示。
表7-14 PE3对CE1和CE13的标签判断
类别
数值
是否满足(LOm<= n < LOm + LRm)
是否满足(LOn <= m < LOn + LRn)
m
13
0 < 1 < 0+4
满足条件
5 < 13 <10+5
满足条件
LBm
1000
LRm
4
LOm
0
n
1
LBn
1055
LRn
10
LOn
5
5 < 13 < 10 + 5命中CE1的第二个标签块,即需要从CE1的第二个标签块中分配标签。PE1再判断对端CE ID与本端标签的关系0 < 1 < 4 + 0。两个条件都满足。最后PE1根据公式进行VC标签计算,得到CE13的出标签Remote Label=1001;CE13的入标签Local Label=1063。计算如表6-10所示。
表7-15 PE1对VC的标签计算
类别
数值
PE1计算VC出标签(CE13)
(LBn + m - LOn)
PE1计算VC入标签(CE1)
(LBm + n - LOm)
m
1
1000 +1– 0 = 1001
1055 + 13 – 5= 1063
LBm
1055
LRm
10
LOm
5
n
13
LBn
1000
LRn
4
LOn
0
PE3根据公式进行VC标签计算,得到CE1的出标签Remote Label=1063;CE13的入标签Local Label=1001。计算如表6-11所示。
表7-16 PE3对VC的标签计算
类别
数值
PE3计算VC出标签(CE1)
(LBn + m - LOn)
PE计算VC入标签(CE13)
(LBm + n - LOm)
m
13
1055 +13 – 5 = 1063
1000 + 1 – 0 = 1001
LBm
1000
LRm
4
LOm
0
n
1
LBn
1055
LRn
10
LOn
5
根据上面的例子,可以看出:虽然Kompella方式的标签分配会造成浪费,但是在一个PE上建立的VC数量毕竟是有限的。因此,这种浪费可以忽略不计。
在网络的实际部署中,有可能出现这样的情况:网络管理员习惯上用CE ID来标志这个CE的位置,因此CE ID有时候会配置的很大,这样就会造成大量的标签空间浪费,甚至有可能超出Label Range的可使用范围。解决的办法是可以用CE的名字(字符串)来描述CE的位置,并且建立一个表格记录每个CE实际的CE ID。
VC标签的交互信令
为了交互VC信息,Kompella对MP-BGP的NLRI部分做了扩展。用于携带L2VPN的信息。与L3VPN类似,Kompella方式的L2VPN也使用了Route-Distinguisher和RT的信息。需要重点说明的是VPWS技术毕竟是点到点的VC,如果一个CE需要与多个CE建立VC,那么就需要有多个接口或者子接口。即使在同一个VPN内,两个CE之间必须有VC连接才能够直接通讯。
图6-19是NLRI中描述标签块的信息,在可变长的TLV部分有一个CSV(Circuit Status Vector)部分用于描述标签块的LR、Tunnel Status等。
图7-122 MP-BGP的扩展信息
为了携带更多的L2VPN信息,定义了一个新的二层信息扩展团体属性,如图6-20所示。
图7-123 二层信息扩展团体属性
图6-20中各个字段的说明请参见表6-12中的描述。
表7-17 二层信息扩展团体字段描述
字段名
含义
位数(bit)
说明
Extended Community Type
扩展信息类型
16
扩展团体的类型
Encaps Type
封装类型
8
标识二层封装类型。如FR,ATM等
Control Flags
控制字
8
控制字。
· MBZ:MUST Be Zero
· C:1表示需要控制字;0为不需要
· S:1表示需要序列号;0为不需要
· Q&F:保留
Layer-2 MTU
二层MTU值
16
-
Reserved
保留
16
保留
MPLS L2VPN VPWS几种实现方式比较
前面已经具体介绍了MPLS L2VPN VPWS的四种实现方式的原来和报文交互过程。四种实现方式的比较,请参考表6-13中的内容。
表7-18 MPLS L2VPN VPWS实现方式比较
比较项目
信令协议
隧道情况
应用场景
扩展性
支持本地连接
CCC
无
静态LSP,独占
NA
较差
是
SVC
无
GRE,LSP隧道,共用
NA
差
否
Martini
LDP
GRE,LSP隧道,共用
稀疏模式
差
否
Kompella
BGP
GRE,LSP隧道,共用
密集模式
较好
是
MPLS L2VPN与BGP/MPLS VPN比较
MPLS L2VPN与BGP/MPLS VPN的比较,请参考表6-14中的内容。
表7-19 MPLS L2VPN与BGP/MPLS VPN比较
项目
BGP/MPLS VPN
Maritni L2VPN
Kompella L2VPN
PE设备开销
内存开销大,接口资源消耗小,信令协议开销小
内存开销小,接口资源消耗大,信令协议开销大
内存开销小,接口资源消耗大,信令协议开销小
VPN拓扑扩散方式
BGP自动发现
手工配置
BGP自动发现
VPN路由扩散方式
通过PE设备扩散,收敛慢
在CE之间直接扩散,收敛快
在CE之间直接扩散,收敛快
CE的接入方式
任何2层连接、2层隧道和3层隧道,同一个VPN中不同站点接入方式可以不相同
ATM、FR、PPP、HDLC、Ethernet(VLAN)不同封装之间不能互通,通过异种介质互连可实现互通
ATM、FR、PPP、HDLC、Ethernet(VLAN)不同封装之间不能互通,通过异种介质互连可实现互通
VPN的嵌套能力
支持
不支持
不支持
组播支持能力
协议开销大,转发开销小
协议开销小,转发开销大
协议开销小,转发开销大
协议独立性
只能承载IP
承载任何3层协议
承载任何3层协议
隧道的多样性
支持LSP/GRE/IPSec
支持LSP/GRE
支持LSP/GRE
对传统VPN的继承性
改进继承传统L2VPN
改进继承传统L2VPN
改进继承传统L2VPN
标准的成熟度
成熟
不成熟
较成熟
易用性
简单
复杂
较复杂
可管理性
外包路由、分权管理
外包拓扑、集中管理
外包拓扑、集中管理
MPLS L2VPN VPWS的跨域问题
VPWS的跨域问题与实现方式有关。CCC模式是单层标签,因此只要ASBR之间建立静态LSP,那么就可以完成跨域。我们对照L3VPN中的三种跨域方法来分析一下其他L2VPN方式的跨域实现情况。
SVC、Martini和Kompella方式都可以实现OpionA(VRF-to-VRF)方式的跨域,在L2VPN的跨域组网环境中,需要考虑ASBR之间使用的链路类型是否与VC的类型一致。这种跨域方式的缺点是ASBR上要为每一条跨域的VC准备一个子接口。如果需要跨域的VC数量较少,可以采用这种跨域方式。与L3VPN比较,这种跨域方式的L2VPN需要消耗更多的资源和更大的配置量,不推荐使用
。
Option B需要在ASBR处对内层和外层标签都做交换,并不适合L2VPN。
Option C是最好的解决方案,SP网络设备只需要在不同AS的PE上建立外层隧道就可以了。ASBR不维护跨域的L2VPN信息,也不必为跨域的L2VPN准备接口。L2VPN的信息只是在PE间交换,对资源的消耗小,对配置量也没有什么增加。
MPLS L2VPN异种介质互通
本节介绍MPLS L2VPN异种介质互通,包括以下内容。
· MPLS L2VPN异种介质互通概述
· 不同链路层协议的处理
MPLS L2VPN异种介质互通概述
如果同一L2VPN两端CE链路类型不一致,就需要使用L2VPN异种介质互通特性。
根据draft-kompella-ppvpn-l2vpn的建议,在建立L2VPN连接时,PE的L2VPN接口的封装类型使用ip-interworking,在MPLS网络上透明传递用户的三层数据,即IP报文。
使用L2VPN异种介质互通功能时:
· 两端PE的L2VPN接口上需要封装ip-interworking;
· 接口物理状态变为UP后,启动L2VPN连接的建立;
· 一旦建立L2VPN连接,就认为用于进行透明传输的物理链路可用(即使此时链路层协议状态为DOWN),PE允许进行L2VPN转发;
· 当两端AC链路状态协议为UP,并且L2VPN隧道的状态也为UP后,两端CE就可以进行IP数据报文的收发了。
· L2VPN连接建立后,对报文的传输处理如下:
· PE收到来自CE的报文,解除链路层封装后,将IP报文传递给MPLS网络;
· IP报文通过MPLS网络透明传输到对端PE;
· 对端PE根据自己的链路层协议类型重新对IP报文封装,发送给与自己相连的CE。
· CE发送的链路层控制报文由PE处理,不进入MPLS网络传输。
· 非IP报文(如MPLS、IPX等协议的报文)一律丢弃,不进入MPLS网络。
不同链路层协议的处理
在下面描述中有关CE-PE之间的配置,如果没有特殊说明,则PE是指本地PE。
Ethernet和VLAN
PE上的以太网接口中,可以封装成ip-interworking方式的L2VPN接口的有:
· Ethernet类型的以太接口或子接口
· GigabitEthernet类型的以太接口或子接口
· Virtual-Ethernet类型的以太接口
需要注意:
· PE的以太接口无需配置IP地址,即使配置IP地址也不生成路由;
· 封装后,PE以太接口只处理ARP报文和IP报文,丢弃其他类型的报文;
· PE收到CE的IP报文时,不会更新动态MAC;
· 对于ATM接口或子接口,不能与它们的与PVC关联的VE接口同时封装ip-interworking方式的L2VPN。
对于ARP的处理:
· ARP表项与未封装ip-interworking的L2VPN以太接口的普通ARP表项不同;
· PE上封装ip-interworking的L2VPN入接口,如果收到CE的ARP请求报文,不论其目的地是什么,都用PE自己的MAC地址应答;
· PE的一个以太网接口或子接口只能连接一个CE,不能通过HUB或LAN Switch连接多个CE或其他设备。否则,PE可能学到无用的MAC地址,导致转发不通。
PPP
· 支持PAP、CHAP认证,验证方式与普通情况相同,可以选择本地验证或者RADIUS、HWTACACS验证;
· 支持STAC-LZS压缩,但不支持IPHC和VJ压缩;
· 可以由PE为CE分配IP地址,也可以由CE为PE分配IP地址。分配地址的机制与普通情况相同。
· 支持IP报文从本端CE到对端CE的透明传输,不支持MPLS、IS-IS、IPX等协议透明传输。如果接口上配置了这些协议,仍然协商这些协议的NCP,但不转发其数据报文。
对于PPP链路,推荐采用由CE给PE分配IP地址的方式,一方面避免PE上发生地址冲突,另一方面也便于网络的部署。
帧中继FR(Frame Relay)
· 支持压缩,不支持帧中继IP头压缩;
· 支持LMI协议;
· 支持INARP(逆向地址解析协议);
· 支持IP报文从本端CE到对端CE的透明传输,不支持MPLS、IS-IS、IPX等协议透明传输。
配置帧中继时还需要注意:
· 当接口类型为DCE或NNI时,必须为接口(不论是主接口还是子接口)配置虚电路号。
· 当接口类型为DTE时,如果是主接口,系统可根据对端设备自动确定本端的虚电路号;如果是子接口,必须手工为子接口配置虚电路号。
参考资料清单
如果您想了解更多关于MPLS TE的信息,请参考以下文档。
文档编号
描述
draft-ietf-l2vpn-l2-framework-05
Framework for Layer 2 Virtual Private Networks (L2VPNs)
draft-ietf-l2vpn-requirements-02
Service Requirements for Layer-2 Provider Provisioned Virtual Private Networks
draft-ietf-l2vpn-signaling-02
Provisioning Models and Endpoint Identifiers in L2VPN Signaling
draft-ietf-l2vpn-ipls-00
IP-Only LAN Service (IPLS)
draft-kompella-ppvpn-l2vpn-03
Layer 2 VPNs Over Tunnels
8 VPLS
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref147308945 \h
简介
VPLS的基本原理。
REF _Ref147308953 \h
VPLS的实现方式
VPLS在控制平面和数据平面的实现方法。
REF _Ref147308962 \h
报文的封装与接入
VPLS报文的封装方法和用户接入方式。
REF _Ref147308979 \h
HVPLS
介绍HVPLS的产生、基本原理和实现方式。
REF _Ref147308993 \h
VPLS的可靠性
介绍CE接入和PW接入的可靠性以及PE间的链路保护。
REF _Ref147309007 \h
VPLS的应用
介绍VPLS的典型组网应用以及需要注意的地方。
REF _Ref147309015 \h
参考资料清单
VPLS的相关参考资料清单。
简介
本节介绍VPLS的基本概念、基本原理,具体内容如下所列。
· VPLS的引入
· VPLS的基本概念
· VPLS的转发模型
· VPLS的特性
· VPLS的基本架构
VPLS的引入
在过去的十年,以太网技术得到了迅速的发展和广泛的应用,速率从10M到100M,到1000M,部署成本也越来越低。以太网技术不但在企业网得到广泛应用,在运营网络,特别是MAN(城域网)也日渐增多。由于高带宽和低成本,以太网有很强的竞争力。城域以太网通常提供点到点的业务,并且不能跨广域网(WAN)提供服务。MPLS的发展使得基于MPLS的L2VPN得到广泛应用,为了能在MAN/WAN上提供类似以太网的多点服务,VPLS应运而生。
VPLS是一种基于MPLS和以太网技术的二层VPN技术。VPLS可以实现多点到多点的VPN组网,VPLS为许多原来使用点到点L2VPN业务的运营商提供了一种更完备的解决方案,还可以避免像L3VPN那样需要管理用户内部的路由信息。
VPLS也称为透明局域网服务TLS(Transparent LAN Service)或虚拟专用交换网服务(Virtual Private Switched Network Service)。不同于普通L2VPN的点到点业务,利用VPLS技术,服务提供商可以通过MPLS骨干网向用户提供基于以太的多点业务。IETF相应的一系列草案中描述了使用MPLS的虚链路作为以太网桥链路的VPLS解决方案,通过MPLS网络提供透明传输的LAN服务。
VPLS的主要目的就是通过分组交换网络PSN连接多个以太网LAN网段,使它们像一个LAN那样工作。
在最简单的情况下,一个VPLS包括连接到PE的多个Site,实现局域网仿真(Emulated LAN)。
图8-124 VPLS基本结构示意图
在VPLS中,MPLS骨干网模拟网桥设备,基于MAC地址或MAC地址和VLAN Tag进行转发。
VPLS的基本概念
· MPLS L2VPN:就是在MPLS网络上透明传递用户的二层数据。从用户的角度来看,这个MPLS网络就是一个二层的交换网络,通过这个网络,可以在不同站点之间建立二层的连接。MPLS L2VPN包括VPLS和VPWS两种。
· 虚拟专用局域网服务VPLS(Virtual Private LAN Service):在公用网络中提供的一种点到多点的L2VPN业务。VPLS使地域上隔离的用户站点能通过MAN/WAN相连,并且使各个站点间的连接效果像在一个LAN中一样。
· VPWS(Virtual Private Wire Service):是指在分组交换网络PSN(Packet Switched Network)中尽可能真实地模仿ATM、帧中继、以太网、低速TDM(Time Division Multiplexing)电路和SONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)等业务的基本行为和特征的一种二层业务承载技术。在公用网络中提供的一种点到点的L2VPN业务。VPWS可以让两个站点之间的连接效果像直接用线路连接一样,它不能直接在服务提供者处进行多点间的交换。
· CE(Custom Edge):直接与服务提供商相连的用户边缘设备。
· PE(Provider Edge):指骨干网上的边缘设备,与CE相连,主要负责VPN业务的接入。它完成了报文从私网到公网隧道、从公网隧道到私网的映射与转发。PE可以细分为UPE和SPE。
· UPE(Underlayer Provider Edge):用户的汇聚设备,即直接连接CE的设备称为下层PE,简称UPE。UPE只需要与基本VPLS全连接网络的其中一台PE建立连接。UPE支持路由和MPLS封装。如果一个UPE连接多个CE,且具备基本桥接功能,那么数据帧转发只需要在UPE进行,这样减轻了SPE的负担。
· SPE(Superstratum Provider Edge):连结UPE并位于基本VPLS全连接网络内部的核心设备称为上层PE,简称SPE。SPE与基本VPLS全连接网络内部的其他设备都建立连接。对于SPE来说,与之相连的UPE就像一个CE,UPE与SPE之间建立的PW将作为SPE的AC。SPE需要学习所有UPE侧Site的MAC地址,及与SPE相连的UPE接口的MAC地址。有时也称为NPE(Network Provider Edge)。
· VSI(Virtual Switch Instance):虚拟交换实例。通过VSI,可以将VPLS的实际接入链路映射到各条虚链接上。
· 虚链路PW(Pseudo-Wires):在两个VSI之间的一条双向的虚拟连接,VSI由一对单向的MPLS VC构成。
· 接入链路AC(Attachment Circuit):指CE与PE的连接,它可以是实际的物理接口,也可以是虚拟接口。AC上的所有用户报文一般都要求原封不动的转发到对端Site去,包括用户的二三层协议报文。
· Q-in-Q( in ):一种直接使用以太网交换机基于封装的隧道协议提供多点L2VPN服务的机制。它将用户私网VLAN Tag封装在公网VLAN Tag中,报文带着两层Tag穿越服务商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。
· 转发器(Forwarders):PE的一种。PE收到AC上送的数据帧,由转发器选定转发报文使用的PW,转发器事实上就是VPLS的转发表。
· 隧道(Tunnels):用于承载PW,一条隧道上可以承载多条PW,一般情况下为MPLS隧道。隧道是一条本地PE与对端PE之间的直连通道,完成PE之间的数据透传。
· 封装(Encapsulation):PW上传输的报文使用标准的PW封装格式和技术。PW上的VPLS报文封装有两种模式:Tagged和Raw模式。
· PW信令协议(Pseudo-Wire Signaling):是VPLS的实现基础,用于创建和维护PW。PW信令协议还可用于自动发现VSI的对端PE设备。目前,PW信令协议主要有LDP和BGP。
· 服务质量(Service Quality):根据用户二层报文头的优先级信息,映射成在公用网络上传输的QoS优先级来转发,这个一般需要应用支持流量工程的MPLS网络。
VPLS的转发模型
PE使用虚拟交换实例VSI进行VPLS转发。PE之间通过全连接的Ethernet仿真电路或伪电路PW转发以太网帧。
VPLS的转发模型如图7-2所示。
图8-125 VPLS转发模型
同一VPLS中的PE必须是全连接的,即,彼此之间存在伪电路PW,从入口PE到出口PE的报文可以直接到达,不必经过中间PE转发。因此,PE之间不会形成环路,不需要运行STP(Spanning Tree Protocol)协议。
VPLS的特性
VPLS特性概述
虚拟专用LAN业务VPLS(Virtual Private LAN Services),是一种在MPLS网络上提供类似LAN的一种业务,它可以使用户从多个地理位置分散的点同时接入网络,相互访问,就像这些点直接接入到LAN上一样。VPLS使用户延伸他们的LAN到MAN,甚至WAN上。
VPLS典型组网
VPLS的典型组网如图7-3所示。VPLS-A与VPLS-B分别接入不同的UPE,并通过ISP的网络通信。在VPLS的每个用户网络看来,和其他的用户网络就如同在一个LAN里面一样。加入VPLS的接口必须能广播,转发和过滤以太网帧。UPE之间通过PW(Pseudo Wire)互相连接,对客户形成一个仿真LAN。每个PE不但要学习从PW来的以太网报文的MAC地址,也要学习所连接CE来的MAC地址。PW通常使用MPLS隧道,也可以使用其他任何隧道,如GRE、L2TP等。PE通常是MPLS边缘路由器,并能够建立到其他PE的隧道。
图8-126 VPLS典型组网图
VPLS隧道建立方式
PW间隧道的建立有两种方式:
· LDP(draft-ietf-l2vpn_vpls_ldp_07)
· MP-BGP(draft-ietf-l2vpn_vpls_bgp_06)
它们之间的异同处,主要包括以下几个方面:
· 采用LDP协议比较简单,对PE要求相对较低,LDP不能提供VPN成员自动发现机制,需要手工配置;采用BGP协议要求PE运行BGP,对PE要求较高,可以提供VPN成员自动发现机制。
· LDP方式需要在每两个PE之间建立LDP Session,其Session数与PE数的平方成正比;而用BGP方式可以利用RR(Route Reflector)降低BGP连接数。
· LDP方式分配标签是对每个PE分配一个标签,需要的时候才分配;BGP方式则是分配一个标签块,对标签有一定浪费。
· LDP方式必须保证所有域中配置的VPLS Instance都使用同一个VSI ID值空间,BGP方式采用VPN Target识别VPN关系。
表8-20 VPLS隧道两种信令方式的比较
类别
LDP方式
BGP方式
对PE的能力要求
一般
高
支持自动发现
否
是
实现复杂度
低
高
可扩展性
差
好
标签利用率
高
低
配置工作量
大
小
跨域时的限制
大
小
综合上述特点:
· LDP方式适合用在VPLS的Site点比较少,不需要或很少跨域的情况,特别是PE不运行BGP的时候。
· BGP方式适合用在大型网络的核心层,PE本身运行BGP以及有跨域需求的情况。
当VPLS网络比较大时(节点多,地理范围大),可以采用两种方式结合的HVPLS(分层VPLS:Hierarchical VPLS),核心层使用BGP方式,接入层使用LDP方式。
VPLS假设每个PE都有建立隧道的能力,PW标签用作业务分割标识,隧道负责把VPLS数据从一个PE传送到另一个PE。隧道的建立和隧道传送数据的方式不在VPLS范畴内,实际实现时可以采用LSP隧道,GRE隧道等。
VPLS的基本架构
VPLS相关的草案中提供了两种VPLS网络架构:
· PW逻辑全连接的VPLS网络架构,如图7-4
· 分层的VPLS架构,如图7-5
PW逻辑全连接的VPLS网络架构
图8-127 PW逻辑全连接的VPLS网络结构
如图7-4所示,VPLS的各站点对应的PE设备(PE1,PE2,PE3,PE4)之间逻辑全连接,它可以像L3VPN一样提供点到多点的连接服务。PE设备能在多点之间进行MAC地址学习以及报文交换。MPLS网络提供隧道作VPN报文的透传用,网络中的核心设备并不参与MAC地址的学习与交换,只作普通的MPLS报文转发。并且,PE上各个VPN之间的转发表相互独立,可以实现VPN间的MAC地址重叠。
分层的VPLS架构
图8-128 分层的VPLS网络结构
如图7-5所示,分层的VPLS网络结构中,在核心设备(SPE)中逻辑全连接,用户设备(UPE)只与最近的NPE建立虚连接,通过NPE与对端站点进行报文交换,这样可以层次化网络拓扑和扩展接入范围。
在核心网中的核心设备(SPE)性能好,VPN业务流量集中;边缘设备(UPE)性能要求比较低,主要用于VPN的业务接入。同时,边缘接入设备与核心设备之间可以链路备份,增强了网络的健壮性。UPE与NPE之间的接入网络可以是MPLS边缘网络(通过VPLS或VPWS连接),也可以是简单的以太交换网(通过Q-in-Q连接)。另外,分层VPLS网络架构中的各个UPE的接入方式可以混合使用,VPN的站点可以按实际接入网络的不同自由选择UPE到NPE的接入类型,具体内容请参见HVPLS的接入方式。
VPLS的实现方式
本节包括如下内容:
· VPLS实现概述
· VPLS基本传输构件
· MAC地址学习与泛洪
· VPLS的环路避免
· 对端PE发现与PW信令协议
VPLS实现概述
VPLS的实现主要分为控制平面与数据平面两部分。
VPLS PE的控制平面主要功能
· 成员发现:找到同一VPLS中所有其他PE的过程。这可以通过手工配置的方式实现,也可以使用协议自动完成,如BGP。使用协议自动完成的发现方式称为“自动发现”。
· 信令机制:在同一VPLS的PE之间建立、维护和拆除PW的任务是由信令协议完成的,如LDP和BGP。
VPLS PE的数据平面主要功能
· 封装:从CE收到以太网帧后,PE首先对其封装后再发送到分组交换网络上。
· 转发:根据报文是从哪个接口上接收的以及报文的目的MAC地址决定如何转发报文。
VPLS控制平面的功能在VRP中的实现
VRP5支持使用BGP或LDP实现VPLS的控制平面的功能,分别称为Kompella方式的VPLS和Martini方式的VPLS。
· Kompella方式的VPLS:采用BGP作为信令,可以通过配置VPN Target实现VPLS成员的自动发现,增加PE或删除PE时,所需的额外操作很少,因而具有较好的扩展性。
· Martini方式的VPLS:采用LDP作为信令,需要手工指定PE的各对等体,由于同一VPLS中各PE之间需要建立全连接,每当有新的PE加入时,所有相关PE上都修改配置,导致可扩展性较差。由于PW实际是点到点链路,使用LDP进行PW的建立、维护和拆除更为有效。
VPLS基本传输构件
VPLS相关草案中描述了构成VPLS网络的基本传输构件,VPLS业务都由这一系列传输构件完成。草案提供的VPLS解决方案也主要是围绕基本传输构件的形成与应用展开,同时它还提供了PW非全连接的分层VPLS应用方案。
整个VPLS网络就像一个交换机,它通过MPLS隧道在每个VPN的各个Site之间建立虚链接(PW),并通过PW将用户二层报文在站点间透传。对于PE设备,它会在转发报文的同时学习源MAC并建立MAC转发表项,完成MAC地址与用户接入接口(AC)和虚链路(PW)的映射关系。对于P设备,只需要完成依据MPLS标签进行MPLS转发,不关心MPLS报文内部封装的二层用户报文。
VPLS网络的基本传输构件包括:
· 接入链路
· 虚链路
· 转发器
· 隧道
· 封装
· PW信令协议
· 服务质量
基本传输构件的定义和作用,请参见VPLS的基本概念中的内容。
VPLS基本传输构件在网络中的位置如图7-6所示:
图8-129 VPLS基本传输构件
以CE1到CE3的VPN1报文流向为例,说明基本数据流走向:
2. CE1上送二层报文,通过AC接入PE1。
3. PE1收到报文后,由转发器(Forwarder)选定转发报文的PW。
4. PE1再根据PW的转发表项生成两层MPLS标签(私网标签用于标识PW,公网标签用于穿越隧道到达PE2)。
5. 二层报文经公网隧道到达PE2,系统弹出私网标签(公网标签在P设备上经PHP弹出)
6. 由PE2的转发器(Forwarder)将选定转发报文的AC,将CE1上送的二层报文转发给CE3。
从上面的交互过程,可以发现VPLS与VPWS(Virtual Private Wire Service)最大的区别就在于,在VPLS中增多了一个转发器(Forwarder)选定转发报文的PW的过程。
此外如果不知道目的地址,PE会向所有的PW广播的过程。
MAC地址学习与泛洪
MAC地址学习概述
以太网的特点之一是:对于广播报文、组播报文和目的MAC地址未知的单播报文,将发送给本以太网段内的所有其它端口。
为了能转发报文,PE需要能建立MAC转发表。与BGP L3VPN不同,BGP L3VPN使用路由发布机制建立路由表,工作在控制平面。VPLS使用标准learning bridge功能建立转发表,由转发平面来完成。
建立MAC转发表的方式是MAC地址学习,包括对用户侧来的报文的学习和从PW来的报文的学习。PW包括两个方向的VC,当且仅当两个方向的VC都建立起来后PW才能变成Up状态。从入VC来的报文学习后必须可以关联到出VC上。
VPLS的控制面并不需要通告和分发可达信息,而让数据面上的标准桥接功能的地址学习来提供可达性。
在VPLS中,分组交换网络模拟网桥设备,由PE进行MAC地址学习。为了能够转发报文,PE必须能够将目的MAC地址与PW进行关联。PE通过PW学到远端MAC地址,通过AC学到直接接入的MAC地址。
MAC地址学习有两种模式:
· Qualified:PE根据用户以太报文的MAC地址和VLAN Tag进行学习,即,基于每个VSI的每个VLAN进行学习。这种模式下,每个用户VLAN形成自己的广播域,有独立的MAC地址空间,同交换机的IVL(Independent VLAN Learning)。
· Unqualified:PE仅根据用户以太报文的MAC地址进行学习,即,基于每个VSI进行学习。这种模式下,所有用户VLAN共享一个广播域和一个MAC地址空间,用户VLAN的MAC地址必须唯一,不能发生地址重叠。同交换机的SVL(Shared VLAN Learning)。
如果PE收到本地用户发出的广播流量,它将向同一VPLS的所有其它端口以及同一VPLS的所有其他PE转发广播流量。如果PE收到远端PE发来的广播流量,它只向同一VPLS的所有直连端口转发流量,不向其他PE转发,这个特性就是VPLS中的水平分割。
对于目的MAC地址为非广播地址的报文,如果PE还没有学习到该MAC地址,则PE将向所有的PW广播该报文。
VPLS的泛洪(Flood)
以太网处理未知地址的报文方式是广播,所以在VPLS里,对收到未知单播地址、广播地址和组播地址的以太报文都采用Flood方式,将收到的报文转发到其余所有端口。如果需要使用组播,PE需要采取其他方法,比如IGMP snooping,PIM snooping等。
源MAC地址学习
MAC地址学习过程包含两部分:
· 跟PW关联的远程MAC地址学习
由于PW由一对单向的VC LSP组成。当在入方向的VC LSP上学习到一个原来未知的MAC地址后,需要PW将此MAC地址与出方向的VC LSP形成映射关系。
· 跟用户直接相连端口的本地MAC地址学习
对于CE上送的二层报文,需要将报文中的源MAC学习到VSI的对应端口上。
图8-130 PE的地址学习与泛洪过程
PE的地址学习与泛洪的过程如图7-7所示。蓝色虚线为ARP广播报文,红色虚线为ARP Reply报文。
2. PE1从连接PC1的端口Port1(Port1属于VLAN10)收到来自PC1的ARP广播报文,PE1把PC1的MAC地址添加到在自己的MAC表项中(PE1的MAC表项中蓝色字体内容)。
3. PE1从其它端口(PW1和PW2此时可以看成端口)广播该ARP报文(PE1上的蓝色虚线)。
4. PE2从PW1上收到PE1转发来的PC1的ARP报文,把PC1的MAC地址添加到自己的MAC表项中(PE2的MAC表中蓝色字体内容)。
5. PE2只从连接CE的端口转发该ARP报文(PE2上的蓝色虚线),而不从PW上转发,所以该ARP只发送给PC2。这是就是VPLS的水平分割特点,即从公网侧PW收到的数据包不再转发到其他PW上,而只能转发到私网侧。
6. PC2收到PE2转发来的PC1的ARP报文,发现目的地址是自己,就发送一个ARP Reply报文给PC1(PC2上的红色虚线)。
7. PE2从Port1端口收到PC2给PC1的ARP回应报文。PE2添加PC2的MAC地址到自己的MAC表项中(PE2的MAC表中红色字体内容)。ARP Reply报文的目的地MAC是PC1(0001-1111-abcd),PE2查询自己的MAC表后,往PW1发送ARP Reply报文。
8. PE1收到PE2转发来的PC2的ARP Reply报文,也一样添加PC2的MAC地址到自己的表项中(PE2的MAC表中红色字体内容),并查找MAC表,发送该ARP Reply报文到Port1。
9. PC1收到PC2的ARP Reply报文,完成MAC地址的学习。
10. 步骤2中,PE1也通过PW2向PE3发送ARP报文。PE3收到来自PE1的ARP广播报文,添加PC1的MAC地址到自己的MAC表项中(PE3的MAC表中蓝色字体内容),根据水平分割的特性,PE3也只向PC3发送该ARP报文,因为PC3不是该ARP的目的地址,所以PC3没有ARP Replay报文。
MAC地址回收
动态学习到的MAC地址必须有刷新和重学习的机制。VPLS相关草案中提供了一种可选MAC TLV的地址回收消息,用来移除或重学习MAC地址列表。
在拓扑结构改变时为了能快速的移除MAC地址,可以使用地址回收消息。地址消息分为两类:
· 带有MAC表项地址列表的消息。
· 不带MAC地址列表的消息。
如果一条备份链路(AC链路或者VC链路)变为活动状态后,感知到链路状态变化的PE会收到系统发送的带有重新学习MAC表项列表的通知消息。该PE收到此更新消息后,将更新VPLS实例的FIB表中对应的MAC表项,并将此消息发送给其他相关的LDP会话直连的PE。如果通知消息中包含空的MAC地址TLV列表,表示告知PE移除指定VPLS实例中的所有MAC地址,但是从发送此消息的PE处学习到的MAC地址除外。
MAC地址老化
PE学习到的远程MAC地址需要有老化机制来移除与VC标签相关的不再使用的表项。PE在接收到报文时根据源地址会重置与该地址对应的老化定时器。
VPLS的环路避免
在以太网上,为了避免环路,一般的二层网络都要求使能STP协议。但是私网的STP协议不应该参与到ISP的网络中去,而是只在私网的设备间运行,避免私网设备间的环路。
VPLS中,使用“全连接”和“水平分割转发”来避免环路。每个PE必须为每一个VPLS转发实例创建一棵到该实例下的所有其他PE路由器的树。每个PE路由器必须支持“水平分割”策略来避免环路,即PE不能在具有相同VPLS实例的PW之间转发报文。通常在同一个VPLS实例中每个PE是通过PW连接的。从此意义上讲,“水平分割转发”的意思就是从公网侧PW收到的数据包不再转发到其他PW上,只能转发到私网侧,从PE收到的报文不转发到其他PE。
PE间全连接和水平分割一起保证了VPLS转发的可达性和无环路。当CE有多条连接到PE,或连接到一个VPLS VPN的不同CE间有连接时,VPLS不能保证没有环路发生,需要使用其他方法,如STP等来避环。
对于用户来说,他在L2VPN私网内跑STP协议是允许的,所有的STP的BPDU报文只是在ISP的网络上透传。
对端PE发现与PW信令协议
对于同一个VSI内的PE设备,可以使用人工配置远程PE地址指定,也可以有其他的自动发现机制。目前,可以通过BGP来自动发现VSI对端PE,同时BGP和LDP协议也可以作为PW信令协议来创建PW。报文交互过程与VPWS方式相似,具体内容请参考MPLS L2VPN特性描述手册,这里不再赘述。
PW的创建主要工作是分配一个多路复用分离标记(VC标签),并将分配的VC标签通告给对端PE。除了标签的分发,PW信令协议还用于通告VPLS系统相关参数,例如PW ID,控制字,接口参数等。通过PW信令协议,可以在各PE之间建立全连接的PW,以用于VPLS服务。
报文的封装与接入
本节包括如下内容:
· AC上的报文封装
· PW上的报文封装
· VPLS报文及封装示意图
· VPLS的接入方式
· 封装方式与接入方式的关系
· 用户数据在网络中的处理
AC上的报文封装
AC上的报文封装方式由用户接入方式决定,用户接入方式可以分为两种:VLAN接入和Ethernet接入。其含义如下:
· VLAN接入:如果是VLAN接入,CE发送到PE或PE发送到CE的以太网帧头带有一个VLAN TAG。该TAG是一个ISP为了区分用户而要求用户打上的“服务定界符”,称为P-TAG(Provider-TAG)。
· Ethernet接入:如果是Ethernet接入,CE发送到PE或PE发送到CE的以太网帧头中不带P-TAG。如果此时帧头中有VLAN TAG,则它只是用户报文的内部VLAN TAG称为U-TAG(User-TAG)。U-TAG是该报文在发送到CE前已携带,而不是CE打上的,用于CE区分该报文的VLAN,对于PE设备没有意义。
用户的VSI接入方式可以使用配置的方式来指定。目前VRP中,默认的封装方式为VLAN。
PW上的报文封装
PW上的报文封装方式也可以分为两种:Raw模式和Tagged模式。
· Raw模式:P-TAG不在PW上传输。对于CE发送到PE的报文,如果PE收到带有P-TAG的报文,则将P-TAG去除后,再打上两层MPLS标签(外层标签和内层标签)后转发;如果PE收到不带P-TAG的报文,则直接打上两层MPLS标签(外层标签和内层标签)后转发。对于PE发送到CE的报文,PE根据实际配置选择添加或不添加P-TAG后转发给CE,但是它不允许重写或移除已经存在的任何TAG。
· Tagged模式:上送到PW的帧必须带P-TAG传输。对于CE发送到PE的报文,如果PE收到带有P-TAG的报文,则不去除P-TAG,而是直接打上两层MPLS标签(外层标签和内层标签)后转发;如果PE收到不带P-TAG的报文,则添加一个空TAG后,再打上两层MPLS标签(外层标签和内层标签)后转发。对于PE发送到CE的报文,PE根据实际配置选择重写、去除、保留服务定界符后转发给CE。
协议规定默认情况下,PW上的报文封装使用Tagged模式。
VPLS中PE给PW上的报文分配外层标签与内层标签的方法,与VPWS中PE给PW上的报文分配外层标签与内层标签的方法相同这里不再赘述,具体内容请参考MPLS L2VPN特性描述手册。
VPLS报文及封装示意图
根据上述的AC与PW的封装模式,VPLS的报文和封装可以分为8种类型,请参考表7-2中的内容。
表8-21 VPLS报文和封装类型
AC
PW
是否带有用户内部TAG
类型
Ethernet
Raw
否
Ethernet接入Raw模式(不带U-TAG)
Ethernet
Raw
是
Ethernet接入Raw模式(带U-TAG)
Ethernet
Tagged
否
Ethernet接入Tagged模式(不带U-TAG)
Ethernet
Tagged
是
Ethernet接入Tagged模式(带U-TAG)
VLAN
Raw
否
VLAN接入Raw模式(不带U-TAG)
VLAN
Raw
是
VLAN接入Raw模式(带U-TAG)
VLAN
Tagged
否
VLAN接入Tagged模式(不带U-TAG)
VLAN
Tagged
是
VLAN接入Tagged模式(带U-TAG)
下面分别介绍VPLS的各种类型的报文和封装。这里假设PE设备间(PW上)的封装格式是不考虑外层隧道标签倒数第二跳弹出特性PHP(Penultimate Hop Popping)操作的,如果考虑外层隧道标签的PHP操作,则PW上的报文封装可能只是单层的MPLS标签(内层标签)。
Ethernet接入Raw模式(不带U-TAG)
图8-131 Ethernet接入Raw模式(不带U-TAG)
如图7-8所示,AC采用Ethernet封装,PW采用Raw模式,从CE发送到PE的报文中不含有U-TAG。
Ethernet接入Raw模式(不带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,该报文不含U-TAG和P-TAG。
3. PE1收到不带P-TAG的报文,查对应的VSI中的表项。为该报文选择隧道和PW。
4. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
5. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签。
6. PE2把解封装后的CE1原始二层报文发送给CE2。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
Ethernet接入Raw模式(带U-TAG)
图8-132 Ethernet接入Raw模式(带U-TAG)
如图7-9所示,AC采用Ethernet封装,PW采用Raw模式,从CE发送到PE的报文中含有U-TAG,但是不含P-TAG。
Ethernet接入Raw模式(带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文含有U-TAG,不含P-TAG。
3. PE1收到含U-TAG但是不含P-TAG的报文,U-TAG对与PE1没有意义,所以PE1不对U-TAG进行处理,而把它当作用户数据来对待。
4. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
5. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
6. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签。
7. PE2把解封装后的CE1原始二层报文发送给CE2,此报文含有U-TAG,不含P-TAG。
从CE2发往CE1的报文的处理过程与上述过程类,这里不再赘述。
Ethernet接入Tagged模式(不带U-TAG)
图8-133 Ethernet接入Tagged模式(不带U-TAG)
如图7-10所示,AC采用Ethernet封装,PW采用Tagged模式,从CE发送到PE的报文中不含有U-TAG和P-TAG。
Ethernet接入Tagged模式(不带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文不含U-TAG和P-TAG。
3. PE1收到不含U-TAG和P-TAG的报文,但是PW是Tagged封装,要求发送到PW的帧必须带P-TAG传输,PE1在该报文中添加一个P-TAG。
4. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
5. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
6. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签,去掉PE1添加的P-TAG。
7. PE2把解封装后的CE1原始二层报文发送给CE2,此报文不含U-TAG和P-TAG。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
Ethernet接入Tagged模式(带U-TAG)
图8-134 Ethernet接入Tagged模式(带U-TAG)
如图7-11所示,AC采用Ethernet封装,PW采用Tagged模式,从CE发送到PE的报文中含U-TAG,不含P-TAG。
Ethernet接入Tagged模式(带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文含U-TAG,不含P-TAG。
3. PE1收到该报文,U-TAG对与PE1没有意义,所以PE1不对U-TAG进行处理,而把它当作用户数据来对待。
4. PW是Tagged封装,要求发送到PW的帧必须带P-TAG传输,PE1收到不带P-TAG的报文后在该报文中添加一个P-TAG。
5. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
6. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
7. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签,去掉PE1添加的P-TAG。
8. PE2把解封装后的CE1原始二层报文发送给CE2,此报含U-TAG。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VLAN接入Raw模式(不带U-TAG)
图8-135 VLAN接入Raw模式(不带U-TAG)
如图7-12所示,AC采用VLAN封装,PW采用Raw模式,从CE发送到PE的报文中含P-TAG,不含U-TAG。
VLAN接入Raw模式(不带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文含P-TAG,不含U-TAG。
3. PE1收到含P-TAG但不含U-TAG的报文。PW是Raw封装,要求发送到PW的帧不能带P-TAG传输,PE1收到带P-TAG的报文后,在该报文中去掉P-TAG。
4. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
5. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
6. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签,并给该报文添加被PE1去掉的P-TAG。
7. PE2把解封装后的CE1原始二层报文发送给CE2,此报文含P-TAG,不含U-TAG。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VLAN接入Raw模式(带U-TAG)
图8-136 VLAN接入Raw模式(带U-TAG)
如图7-13所示,AC采用VLAN封装,PW采用Raw模式,从CE发送到PE的报文中含U-TAG和P-TAG。
VLAN接入Raw模式(带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文含U-TAG和P-TAG。
3. PE1收到含U-TAG和P-TAG的报文,U-TAG对与PE1没有意义,所以PE1不对U-TAG进行处理,而把它当作用户数据来对待。
4. PW是Raw封装,要求发送到PW的帧不能带P-TAG传输,PE1收到带P-TAG的报文后,在该报文中去掉P-TAG。
5. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
6. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
7. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签,并给该报文添加被PE1去掉的P-TAG。
8. PE2把解封装后的CE1原始二层报文发送给CE2,此报文含U-TAG和P-TAG。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VLAN接入Tagged模式(不带U-TAG)
图8-137 VLAN接入Tagged模式(不带U-TAG)
如图7-14所示,AC采用VLAN封装,PW采用Tagged模式,从CE发送到PE的报文中含P-TAG,不含U-TAG。
VLAN接入Tagged模式(不带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文含P-TAG,不含U-TAG。
3. PE1收到含P-TAG,不含U-TAG的报文。PW是TAGGED封装,要求发送到PW的帧必须带P-TAG传输。PE1收到带P-TAG的报文后,不对该报文进行处理。
4. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
5. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层TUNNEL标签和内层VC标签),再进行二层封装后转发。
6. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签。
7. PE2把解封装后的CE1原始二层报文发送给CE2,此报文含P-TAG,不含U-TAG。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VLAN接入Tagged模式(带U-TAG)
图8-138 VLAN接入Tagged模式(带U-TAG)
如图7-15所示,AC采用VLAN封装,PW采用Tagged模式,从CE发送到PE的报文中含U-TAG和P-TAG。
VLAN接入Tagged模式(带U-TAG)报文的交互过程为:
2. CE1发送经过二层封装的报文到PE1,报文含U-TAG和P-TAG。
3. PE1收到含U-TAG和P-TAG的报文,U-TAG对与PE1没有意义,所以PE1不对U-TAG进行处理,而把它当作用户数据来对待。
4. PW是Tagged封装,要求发送到PW的帧必须带P-TAG传输,PE1收到带P-TAG的报文后,不对该报文进行处理。
5. PE1查对应的VSI中的表项。为该报文选择隧道和PW。
6. PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
7. PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签。
8. PE2把解封装后的CE1原始二层报文发送给CE2,此报文含U-TAG和P-TAG。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VPLS的接入方式
交换机或路由器VLAN接口
VLAN接口有两种类型:
· 终端VLAN接口(terminal VLAN interface):复用一个物理接口。例如,一个GE接口可以被划分为多个子接口,每个子接口作为一个VLAN接口。
· 交换机模式VLAN接口:VLAN接口是逻辑接口,而不是某个物理接口的子接口。一个VLAN接口可以包括多个物理接口,即,可以从多个物理接口接收VLAN报文。
被设置为交换端口的物理接口,以下几种模式可用于发送VLAN流量:
· Access模式:只允许使用缺省VLAN ID的报文通过。
· Trunk模式:只允许使用本接口VALN ID的报文通过。
· Q-in-Q()模式:对原报文增加缺省VLAN ID,只允许使用缺省VLAN ID的报文通过。
对于Q-in-Q模式,报文带着两层Tag在隧道中传输。到了目的端PE,目的端PE将去掉报文的外层Tag再转发给CE。使用Q-in-Q模式可以构建层次化的VPLS。
1483B桥接
VRP的Virtual-Ethernet接口支持ATM 1483B,也能够用于VLAN报文的转发。
CE接入到PE的方式
CE可以通过Access端口或Trunk端口接入到PE。
· 通过Access端口接入:Access端口只允许属于该端口缺省VLAN的报文通过。该VLAN在该物理端口上的流量为Untag流量。
可以将PE的多个Access端口分配给一个VLAN进行用户接入。
· 通过Trunk端口接入:Trunk端口允许多个VLAN的流量通过,这些VLAN中有一个是缺省VLAN。缺省VLAN的流量是Untag报文,其余VLAN的流量都是Tag报文。可以将PE的Trunk端口与以太网交换机连接,允许多个VLAN用户接入。
封装方式与接入方式的关系
前面已经分别介绍了VPLS的封装方式和CE的接入方式,VPLS的封装方式与接入方式的关系如图7-16所示。
图8-139 VPLS封装方式与接入方式的关系
用户数据在网络中的处理
用户普通二层、三层数据在网络中的处理
根据VPLS业务的特点,用户的普通二层数据将被原封不动的透传到对端,包括用户报文的MAC头部以及用户的私有VLAN TAG等。具体处理过程,可以参考VPLS报文及封装示意图。
对于目的MAC已知的单播报文,系统会将该报文透传给对应的CE设备。
对于用户的未知单播、组播和广播报文,系统会在整个VPLS域内进行广播,也就是所有的CE设备都会收到该报文。
用户的三层报文,VPLS系统根据报文的二层头部进行转发,不关心三层报文内容。
用户协议报文数据在网络中的处理
由于网络中的P设备进行报文转发时,只根据外层的MPLS标签进行转发,并不关心用户数据是普通报文还是协议报文,用户的所有二层、三层协议报文都将被VPLS系统透传。私网的协议报文不参与跟VPLS系统的协议交互,两者相互独立,私网的协议数据对公网协议不影响。
对于目的MAC为单播MAC的用户协议报文,系统将该协议报文透传给对应的CE设备。
对于目的MAC为组播或广播的用户协议报文,系统会在整个VPLS域内进行广播,所有的CE设备都会收到该协议报文。
HVPLS
本节包括以下内容:
· HVPLS的产生
· HVPLS的基本原理
· HVPLS实现方式
HVPLS的产生
无论是以BGP方式,还是LDP方式为信令的VPLS,为了避免环路,其基本解决办法都是在信令上建立所有站点的全连接,LDP建立所有站点之间的LDP会话的全连接,BGP也一样。在进行数据转发时,对于从PW来的报文,根据水平分割转发的原理,将不会再向其他的PW转发。如果一个VPLS有N台PE设备,该VPLS就有N×(N-1)÷2个连接。当VPLS的PE增多时,VPLS的连接数就成N平方级数增加。假设有100个站点,站点间的LDP会话数目将是4950个。
为解决VPLS的全连接问题,增加网络的可扩展性,产生了HVPLS(Hierarchical Virtual Private LAN Service)组网方案。在协议draft-ietf-l2vpn_vpls_ldp中引入了HVPLS(层次化的VPLS方案)。根据协议draft-ietf-l2vpn_vpls_bgp同样也能演化出HVPLS方案。
HVPLS的核心思想是通过把网络分级,每一级网络形成全连接,分级间的设备通过Q-in-Q或者PW来连接,分级之间的设备的数据转发不遵守水平分割原则,而是可以相互转发。
HVPLS的基本原理
HVPLS的基本模型如图7-17所示。
图8-140 HVPLS模型
HVPLS的基本模型中,可以把PE分为两种:
· UPE:用户的汇聚设备,即直接连接CE的设备称为下层PE(Underlayer PE),简称UPE。UPE只需要与基本VPLS全连接网络的其中一台PE建立连接。UPE支持路由和MPLS封装。如果一个UPE连接多个CE,且具备基本桥接功能,那么数据帧转发只需要在UPE进行,这样减轻了SPE的负担。
· SPE:连结UPE并位于基本VPLS全连接网络内部的核心设备称为上层PE(Superstratum PE),简称SPE。SPE与基本VPLS全连接网络内部的其他设备都建立连接。
对于SPE来说,与之相连的UPE就像一个CE,UPE与SPE之间建立的PW将作为SPE的AC。SPE需要学习所有UPE侧Site的MAC地址,及与SPE相连的UPE接口的MAC地址。
HVPLS实现方式
HPLS实现方式概述
前面已经描述了VPLS解决方案需要在提供VPLS服务所有的PE路由器之间建立全连接的隧道LSP。对每一个VPLS服务,必须在PE路由器之间创建N×(N-1)÷2条PW。不过这些都是由信令协议生成的,上述方案不能大规模的应用的真正缺点是提供VC的PE路由器需要复制数据包,对于第一个报文和广播、组播报文,每个PE设备需要向所有的对端设备广播报文,这样就会浪费带宽。但是通过分级连接,可以减少信令协议和数据包复制的负担,使得VPLS可以大规模应用。
通常,ISP会将一些小的边缘设备放置到用户聚居区域,并将其汇聚到一个中央局的PE设备中。因此将VPLS服务的隧道技术延伸到MTU(多点租赁单元)非常必要。这样就可以将MTU设备看成一个PE设备并在每个边缘上提供基本的VPLS虚连接业务。可行的技术包括在MTU和PE间使用虚连接和Q-in-Q逻辑接口。在两层的分级VPLS中,一层为VPLS的核心PW,一层为扩展的接入PW。
HVPLS的接入方式
HVPLS的接入方式根据所采用的信令不同,可以分为LDP 方式的HVPLS和BGP 方式的HVPLS。其中:
LDP方式的HVPLS,根据UPE接入SPE的方式不同又可以分为:
· LSP接入方式
· Q-in-Q接入方式
BGP方式的HVPLS,根据UPE接入SPE的方式不同又可以分为:
· MP-EBGP接入方式
· Hybrid混和接入方式
HVPLS的各种接入方式的关系,如图7-18。
图8-141 HVPLS的接入方式
LDP方式的HVPLS
· LSP接入方式
图8-142 HVPLS的LSP方式接入
如图7-19所示,UPE1作为汇聚设备,它只跟SPE1建立一条虚连接接入链路PW,跟其他所有的对端都不建立虚链接。UPE与SPE之间的PW称为U-PW,SPE间的PW称为S-PW。
以CE1发送报文到CE2为例,数据转发流程如下:
2. CE1发送报文给UPE1,报文的目的MAC地址是CE2。
3. UPE1负责将CE1发送的报文发给SPE1,UPE1为该报文打上两层MPLS标签,外层标签标识UPE1与SPE1之间的LSP Tunnel ID,内层标签标识UPE1与SPE1之间的VC ID。
4. UPE1与SPE1之间的LSR对用户报文进行传递和标签交换,最终在倒数第二跳报文的外层标签被剥离。
5. SPE1收到报文后,根据MPLS内层标签判断报文所属的VSI,发现该报文属于VSI1。
6. SPE1去掉UPE1给用户报文打上的MPLS内层标签。
7. SPE1根据用户报文的目的MAC,查找VSI的表项,发现该报文应该被发往SPE2。SPE1给该报文打上两层MPLS标签,外层标签标识SPE1与SPE2之间的LSP Tunnel ID,内层标签标识SPE1与SPE2之间的VC ID。
8. SPE1与SPE2之间的LSR对用户报文进行传递和标签交换,最终在倒数第二跳报文的外层标签被剥离。
9. SPE2从S-PW侧收到该报文后,根据内层MPLS标签判断报文所属的VSI,发现该报文属于VSI1,并去掉SPE1给该报文打上的内层MPLS标签。
10. SPE2为该报文打上两层MPLS标签,外层标签标识SPE2与UPE2之间的LSP Tunnel ID,内层标签标识UPE2与SPE2之间的VC ID,并转发该报文。
11. SPE2与UPE2之间的LSR对用户报文进行传递和标签交换,最终在倒数第二跳报文的外层标签被剥离。
12. UPE2收到该报文后,去掉UPE2给用户报文打上的MPLS内层标签,根据用户报文的目的MAC,查找VSI的表项,发现该报文应该被发往CE2,并转发该报文。
如果CE4与CE5为本地CE之间交换数据,由于UPE本身具有桥接功能,UPE直接完成两者间的报文转发,而无需将报文上送SPE1。不过对于从SPE1发来的目的MAC未知的第一个报文或广播报文,UPE1在广播到CE5的同时,仍然会通过U-PW转发给SPE1,由SPE1来完成报文的复制并转发到各个对端CE。
· Q-in-Q接入方式
图8-143 H-VPLS的Q-in-Q方式接入
如图7-20所示,UPE1作为汇聚设备,它只跟SPE1建立一条虚连接接入链路PW,跟其他所有的对端都不建立虚链接。UPE与SPE之间的PW称为U-PW,SPE间的PW称为S-PW。
以CE1发送报文到CE2为例,数据转发流程如下:
13. CE1发送报文给UPE1,报文的目的MAC地址是CE2。
14. UPE1负责将CE1发送的报文发给SPE1,UPE1为该报文打上两层VLAN-TAG标签,外层TAG标识UPE1与SPE1之间的LSP Tunnel ID,内层TAG标识该报文来自名为VPN1的VSI。
15. SPE1收到报文后,去掉该报文的外层TAG。
16. SPE1再根据内层TAG判断报文所属的VSI,发现该报文属于VSI1。
17. SPE1去掉UPE1给用户报文打上的内层TAG。
18. SPE1根据用户报文的目的MAC,查找VSI的表项,发现该报文应该被发往SPE2。SPE1给该报文打上两层MPLS标签,外层标签标识SPE1与SPE2之间的LSP Tunnel ID,内层标签标识SPE1与SPE2之间的VC ID。
19. SPE1与SPE2之间的LSR对用户报文进行传递和标签交换,最终在倒数第二跳报文的外层标签被剥离。
20. SPE2从S-PW侧收到该报文后,根据内层MPLS标签判断报文所属的VSI,发现该报文属于VSI1,并去掉SPE1给该报文打上的内层MPLS标签。
21. SPE2为该报文打上两层VLAN-TAG,外层TAG标识SPE2与UPE2之间的LSP Tunnel ID,内层TAG标识该报文来自名为VPN1的VSI,并转发该报文。
22. UPE2收到该报文后,去掉该报文的外层TAG。
23. SPE1再根据内层TAG判断报文所属的VSI,发现该报文属于VSI1。
24. SPE1去掉UPE2给用户报文打上的内层TAG,根据用户报文的目的MAC,查找VSI的表项,发现该报文应该被发往CE2,并转发该报文。
如果CE4与CE5为本地CE之间交换数据,由于UPE本身具有桥接功能,UPE直接完成两者间的报文转发,而无需将报文上送SPE1。不过对于从SPE1发来的目的MAC未知的第一个报文或广播报文,UPE1在广播到CE5的同时,仍然会通过U-PW转发给SPE1,由SPE1来完成报文的复制并转发到各个对端CE。
从上面的LSP和Q-in-Q的数据交互过程可以发现,用户的数据在S-PW之间是完全一样的。只是用户数据在UPE和SPE之间的虚连接链路U-PW上的封装方式不同。LSP方式使用两层MPLS标签来表示隧道和用户报文所属的VSI。Q-in-Q方式用两层Tag来表示隧道和用户报文所属的VSI。
BGP 方式的HVPLS
· MP-EBGP接入方式
图8-144 MP-EBGP接入方式下的HVPLS方案
在LDP HVPLS方案中,如果UPE和SPE之间采用的是LDP + IGP的方式来建立PW,这种方式在城域网中出现跨多个自治系统域的时候就会出现问题,因为自治系统域之间的路由器SPE和UPE之间无法运行IGP + LDP。因此只能采用MP-EBGP方案来解决。如图7-21,在UPE和SPE之间通过运行MP-EBGP来实现HVPLS。
· 混和接入方式
混和接入方式就是指HVPLS采用MP-BGP方式和IGP+LDP方式的混合接入,在大域内采用BGP路由反射器,如图7-22所示。
图8-145 混和接入方式下的HVPLS方案
在图7-22中,低层次的VPLS内可以采用LDP方式组成全连接,然后因为和高层次的VPLS在同一个AS域内(AS1),因此可以采用LDP PW方式接入BGP VPLS。骨干网因为PE数量仍然庞大,因此采用BGP RR来减少全连接数量,通过RR反射来间接的达到逻辑上的全连接。而如果低层次的VPLS和高层次所在的AS不在一个域内(如AS2),则仍然可以采用MP-EBGP方式。图7-22是一个LDP PW接入,MP-EBGP接入以及骨干内采用BGP的一个混合组网模型。
HVPLS接入链路的备份
UPE与SPE,CE与PE设备之间只有单条链路连接的方案具有明显的弱点:一旦该接入链路失败,汇聚设备上下挂的所有VPN都将失去连通性。所以,HVPLS的两个接入模型需要有备份链路的存在。在正常情况下,设备只使用一条链路(主链路)接入,一旦VPLS系统检测到接入链路失败,它将启用备用链路来继续提供VPN业务。
对于LSP接入的HVPLS,由于UPE与SPE之间运行LDP会话,可以根据LDP会话的活动状态来判断主PW是否失效;对于Q-in-Q接入的HVPLS,需要在CE与它相连的PE设备之间运行STP,保证在一条链路失败以后启用另一条链路。
如图7-23所示,UPE检测到与SPE1之间的PW4失败,它将自动启用备份PW4(Backup)传输数据。
假设CE1内有一个MAC地址为“0001-1111-abcd”的报文原来走主PW4到达CE3,由于VPLS的MAC学习机制,在SPE1、SPE3上都将MAC学习到了对应的虚接口上(图7-23MAC表中的红色字体),由于SPE3不知道对端发生链路倒换,仍然保留了该MAC地址表项,CE3发往CE1的报文如果仍按照原MAC表中的表项转发,必然不能成功。所以,UPE在进行主备PW4切换的时候,需要将相关的MAC地址回收。MAC地址回收可以使用LDP的地址回收消息来实现,如果要回收的MAC地址较多,可以直接发MAC地址列表为空的地址回收消息,把VPN内的所有MAC地址都清空(除了发送MAC地址回收消息的链路上的表项不清空外)。
图8-146 主备PW切换后的MAC地址更新
MAC地址回收消息的发送和处理过程如下:
2. UPE发送MAC地址回收消息(蓝色虚线箭头)给SPE2
3. SPE2处理该MAC地址回收消息将MAC“0001-1111-abcd”学习到PW4(Backup)上
4. SPE2发送地址回收消息给其他对端(SPE1,SPE3),其他对端进行地址回收消息处理,将MAC“0001-1111-abcd”学习到对应的PW上。
多域VPLS服务
分级VPLS也可以用来创建更大规模的VPLS服务,在单个VPLS域内或跨越多个域,而不要求所有的VPLS使能设备全连接。每个全连接的VPLS网络通过单条LSP隧道相连,每个VPLS使用一条PW来连接两个域。当多于两个域相连时,需要在边缘PE上建立域间PW全连接。这样就创建了一个三层模型:在CE和PE之间的直接相连;在域内PE之间的全连接;在域间的边缘PE设备之间全连接。
VPLS的可靠性
本节包括以下内容:
· CE接入的可靠性
· PW接入的可靠性
· PE间链路的保护
CE接入的可靠性
类似L3VPN,为了保证接入用户在接入点设备PE失效后,仍然不中断业务,CE可以接入两个PE设备,一主一备,在主用的设备失效后,可以自动切换到备用的设备上。
PW接入的可靠性
在HVPLS中,UPE可以双归接入SPE,采用主备用方式,在一个PW失效后,可以立即切换到另外一个PW,参考图7-24:
图8-147 HVPLS中PW双归情况下的保护
图7-24中,UPE接入两个SPE,一个主用,一个为备用,在主用的SPE发生故障后,会切换到备用的SPE上面。
PE间链路的保护
PE之间的链路需要保护的是构建PW的隧道,隧道的保护分为两种类型,一种是承载隧道本身的物理链路的保护,一种是通过协议来在不同的物理链路进行备份。RPR(弹性分组环)为一个双环结构,物理上,环的一个方向失效后,可以通过另外一个方向迂回,因此如果隧道本身建立于这样的物理链路上就自动增加了保护。另外,可以通过上层协议,例如RSVP-TE协议来保护隧道,就是采用RSVP-TE的FRR(快速重路由技术),在链路发生故障时,迅速切换,保证端到端的隧道保护。
VPLS的应用
本节包括以下内容:
· 综合组网
· VPLS组网要点
综合组网
MPLS VPLS是城域网中的重要技术,通过它可以互连各种现有以太网技术构建的企业网,VPLS以其低廉的价格和高可靠性越来越受到青睐。
MPLS L2VPN适用于网络庞大,路由数目众多;有能力独立维护自己的网络;对服务质量要求较高;可以使用较高级的CE设备的大型企业。
如运营商ISP拥有全国骨干,用户在多个城市有自己分公司的企业网,希望租用运营商ISP的带宽,将各地的网络互联起来。
用户具有足够的网络管理、维护能力,同时为了保持路由的私有性,采取MPLS L2VPN组网。如图7-25所示,用户在北京,上海,深圳的分公司通过ISP提供的MPLS骨干网,使用VPLS技术,把用户在三地的企业网互联起来,形成一个连续的企业网。
图8-148 VPLS典型应用
VPLS组网要点
各个PE之间的逻辑全连接
· VPLS基本组网的所有PE之间必须建立全连接的PW。
· HVPLS组网中,SPE之间必须建立全连接的PW。
用户接入方式与接入端口的正确配置
· 接入端口的所有VPLS实例的接入方式必须一致。
· VLAN方式接入时,用户的上行报文必须带P-TAG,接入端口配置为Trunk,并且允许接入的VPN对应的VLAN通过。
· Ethernet方式接入时,用户的上行报文不能带P-TAG,允许带用户私网TAG,接入端口配置为Access,并且使能端口的Q-in-Q功能。
HVPLS中,UPE的正确配置
· UPE与SPE的角色必须明确区分,不正确的配置会引起VPLS域的环路。
· UPE只允许接入一个SPE设备。有主备链路时,允许接入两个SPE设备。
· SPE可以接入多个UPE设备;
· UPE以Q-in-Q接入SPE时,SPE上对应实例的接入方式应为VLAN接入,如果有链路备份,在UPE与两个SPE之间需要启用STP来备份链路。
· UPE以LSP接入SPE时,UPE可以使用VPWS、VPLS方式接入SPE,并且在SPE需要明确指明接入的设备为UPE,如果有主备PW备份,需要指明SPE的主备关系;
· UPE与SPE的角色定义仅限于某个VPLS实例内。
参考资料清单
如果您想了解更多关于VPLS的信息,请参考以下文档。
文档编号
描述
draft-ietf-l2vpn-vpls-ldp-05
Virtual Private LAN Services over MPLS
draft-ietf-l2vpn-vpls-bgp-04
Virtual Private LAN Service
draft-ietf-l2vpn-oam-req-frmk-01
VPLS OAM Requirements and Framework
9 PWE3
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref153101618 \h
PWE3简介
PWE3的基本原理
REF _Ref153101632 \h
PWE3与L2VPN的关系
PWE3与传统L2VPN的关系
REF _Ref153101640 \h
PWE3的分类
PWE3的分类方法
REF _Ref144979101 \h
PWE3的信令
PWE3中所使用的信令及报文交互过程
REF _Ref153101657 \h
PWE3中的报文转发
PWE3的报文转发过程
REF _Ref153101668 \h
PWE3实现中的关键技术
PWE3实现中的几种关键技术
REF _Ref153101694 \h
ATM信元透传技术
PWE3模拟ATM的技术
REF _Ref153101728 \h
PWE3的跨域技术
PWE3的几种典型跨越技术
REF _Ref153101741 \h
PWE3的典型应用
PWE3在网络中的典型应用
REF _Ref153101749 \h
参考资料清单
PWE3的相关参考资料清单
PWE3简介
本节介绍理解PWE3所需要的基本知识,具体内容如下。
· PWE3概述
· PWE3的基本概念
PWE3概述
随着IP数据网的发展,IP网络本身的可拓展、可升级以及兼容互通能力非常强。而传统的通信网络的升级、扩展、互通的灵活性则相对比较差,受限于传输的方式和业务的类型,并且新建的网络共用性也较差,不宜于互通管理。因此在传统通信网的升级和拓展过程中应考虑建立重复的网络还是充分利用现有或公共网络资源。PWE3(Pseudo-Wire Emulation Edge to Edge)正是将传统通信网络与现有分组网络结合而提出的解决方案之一。
PWE3是指在分组交换网络PSN(Packet Switched Network)中尽可能真实地模仿ATM、帧中继、以太网、低速TDM(Time Division Multiplexed)电路和SONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)等业务的基本行为和特征的一种二层业务承载技术。
通过PWE3技术可以将传统的网络与分组交换网络互连起来,从而实现资源的共享和网络的拓展。PWE3是对Martini协议的扩展。PWE3扩展了新的信令,减少了信令的开销,规定了多跳的协商方式,使得组网方式更加灵活。
PWE3以LDP为信令协议,通过隧道(如MPLS隧道、GRE)模拟CE(Customer Edge)端的各种二层业务(如各种二层数据报文),透明传递CE端的二层数据。这种模拟是近似的,对于TDM数据,将产生失真。
PWE3的基本概念
PWE3术语
· 接入链路(Attachment Circuit,AC):连接CE和PE的物理或虚拟电路。比如,AC可以是帧中继、ATM VPI/VCI、以太网端口、VLAN、物理接口上的PPP链接、L2TP隧道上的PPP会话、或者MPLS LSP。如果物理AC和虚拟AC都用同种技术(如ATM、Ethernet或者帧中继),PW就可以提供“同种介质传输”,否则提供“异种介质传输”。
· 转发器(Forwarders):一个选择PW来传输AC上收到的净载荷的PE子系统。
· 隧道(Tunnels):在网络上透明承载信息的一种机制。用于承载PW。一条隧道上可以承载多条PW,一般情况下为MPLS隧道。隧道是一条本地PE与对端PE之间的直连通道,完成PE之间的数据透传。
· 封装(Encapsulation):PW上传输的报文使用标准的PW封装格式和技术。PW上的PWE3报文封装有多种,在RFC4446中有具体的定义。
· PW信令协议(Pseudo-Wire Signaling):PW信令协议是PWE3的实现基础,用于创建和维护PW。目前,PW信令协议主要是LDP。
· PW(Pseudo Wire):在PSN上承载PE间模拟业务必要元素的一种机制。
· CE(Custom Edge):发起或终结业务的设备。CE不能感知正在使用的是模拟业务还是本地业务。
· PE(Provider Edge router):向CE提供PWE3的设备。通常指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。它完成了报文从私网到公网隧道、从公网隧道到私网的映射与转发。
· U-PE(Ultimate PE):是指直接与用户边缘设备相连的骨干网络边缘设备。
· S-PE(Switching PE):是指在骨干网内部负责交换PW,进行PW标签转发的设备。
· CW(Control Word):控制字。它是一个4字节的封装报文头,MPLS分组交换网络里用来传递报文信息。
· VCCV(Virtual Circuit Connectivity Verification):虚电路连接验证。它是一种手工检测虚电路连接状态的工具,通过扩展LSP-PING实现的。
· CE Signaling:CE控制面发送和接收的消息。对于PE加入或监控该信令从而模拟业务是必需的。
PWE3的基本传输构件
如图8-1所示,PWE3网络的基本传输构件包括:
· 接入链路
· 虚链路
· 转发器
· 隧道
· PW信令协议
图9-149 PWE3的基本传输构件
以CE1到CE3的VPN1报文流向为例,说明基本数据流走向:
2. CE1上送二层报文,通过AC接入PE1。
3. PE1收到报文后,由转发器(Forwarder)选定转发报文的PW。
4. PE1再根据PW的转发表项生成两层MPLS标签(私网标签用于标识PW,公网标签用于穿越隧道到达PE2)。
5. 二层报文经公网隧道到达PE2,系统弹出私网标签(公网标签在P设备上经倒数第二跳弹出)
6. 由PE2的转发器(Forwarder)选定转发报文的AC,将该二层报文转发给CE3。
PWE3与L2VPN的关系
PWE3属于点到点方式的二层VPN技术,Martini方式的L2VPN是PWE3的一个子集。PWE3采用了Martini L2VPN的部分内容,包括信令LDP和封装模式。同时,PWE3对Martini方式的L2VPN进行了扩展。
PWE3是Martini协议的扩展,两者的基本的信令过程是一样的。后面介绍的PWE3的信令交互过程包含了Martini的信令,在此不对Martini协议作特别的介绍,它们之间的区别和联系如下。
控制层面的扩展
信令扩展
LDP信令增加了Notification方式,只通告状态,不拆除信令,除非配置删除或者信令协议中断。这样能够减少控制报文的交互,降低信令开销,兼容原来的LDP和Martini方式。还可以用L2TPv3作为信令。此外PWE3还支持用RSVP作为信令建立有带宽保证的PW,就是RSVP-TE PW。
PW隧道的建立常用有两种信令:LDP(draft-ietf-pwe3-control-protocol-x)和RSVP(draft-raggarwa-rsvpte-pw-x),其中前者是主标准,后者是从标准。
多跳扩展
增加PW多跳功能,扩展了组网方式。
· PW多跳能够降低对接入设备支持的LDP连接数目的要求,即降低了接入节点的LDP Session的开销。
· 多跳的接入节点满足PW的汇聚功能,使得网络更加灵活,适合分级(接入、汇聚和核心)。
TDM接口扩展
支持更多的电信低速TDM接口。通过控制字CW(Control Word)及转发平面RTP(Real-time Transport Protocol)协议,引入对TDM的报文排序、时钟提取和同步的功能。
支持电信低速TDM接口的好处在于:
· 增加了封装类型(可封装低速TDM)。
· 支持三网合一。
· 是替代传统DDN业务的一种方式。
其他扩展
控制层面的扩展还包括以下方面:
· 控制层面增加分片能力协商机制。
· 增加了PW连接性检测功能,如虚电路连接验证VCCV(Virtual Circuit Connectivity Verification)和PW维护与操作OAM(Operation Administration and Maintenance),提高网络的快速收敛能力和可靠性。
· 丰富和完善了MIB(Management Information Base)功能,提高了MIB的可维护性。
数据平面的扩展
· 实时信息的扩展
· 引入RTP(Real-time Transport Protocol),进行时钟提取和同步。
· 保证电信信号的带宽、抖动和时延。
· 对报文进行乱序重传
PWE3的分类
按不同角度,PW可分为多种类型:
· 按实现方案,可分为静态PW和动态PW
· 按组网类型,可分为单跳PW和多跳PW
静态PW和动态PW
· 静态PW
静态PW(Static PW)不使用信令协议进行参数协商,而是通过命令行手工指定相关信息,数据通过隧道在PE之间传递。
· 动态PW
动态PW是指通过信令协议建立起来的PW。U-PE通过LDP交换VC标签,并通过VC-ID绑定对应的CE。当连接两个PE的隧道建立成功,双方的标签交换和绑定完成后,只要这两个PE的AC链路为Up,一个VC就建立起来了。
动态PW的消息报文包括:
· Request:用于向对方请求分配标签
· Mapping:用于向远端分配标签,并可以根据默认信令行为选择是否携带状态字(Default Martini模式不支持状态字)
· Notification:用于通告状态,协商PW状态信息,减少报文交互的数量
· Withdraw:携带对应的标签和状态,用于通知对端撤销标签
· Release:作为对Withdraw的回应报文,通知发送Withdraw的对端撤销标签
单跳PW和多跳PW
单跳PW
单跳PW(Single-Hop Pseudo-Wire)是指U-PE与U-PE之间只有一条PW,不需要PW Label层面的标签交换。如图8-2。
图9-150 PWE3单跳组网图示例
多跳
多跳PW(Multi-Hop Pseudo-Wire)是指U-PE与U-PE之间存在多个PW,如图8-3。多跳中的U-PE和单跳中的U-PE转发机制相同,只是多跳转发时需要在S-PE(Switching PE)上做PW Label层面的标签交换。
图9-151 PWE3多跳组网图示例
多跳PW需要通过PW交换设备S-PE将两侧的单跳PW连接起来,并在S-PE处完成PW层面的标签交换。交换PW有三种形式:动动交换,静静交换,静动混合交换。
· 动动交换:指交换节点(S-PE)两侧的PW通过信令协议建立起来的PW。动动交换PW中,远端标签会通过信令从两个相邻的端点(U-PE或者S-PE)发送到该S-PE节点;控制字和VCCV能力会通过信令从两个U-PE节点发送到该S-PE节点。
· 静静交换:指S-PE两侧的PW都是静态PW。
· 静动混合:指S-PE两侧PW中,一侧是通过信令协议建立的PW,另一侧是通过静态配置的PW。
PWE3的信令
使用LDP信令的PW
PW采用LDP作信令时,通过扩展标准LDP的TLV来携带VC的信息,增加了128类型和129类型的FEC TLV。建立PW时的标签分配顺序采用下游自主分发DU(downstream unsolicited)模式,标签保留模式采用自由模式(liberal label retention),用来交换VC信令的LDP连接需要配置成Remote方式。
LDP方式单跳PW
采用LDP方式作信令的PW单跳的典型网络拓扑如图8-4所示。
图9-152 PWE3单跳拓扑
图8-4是一个采用LDP方式作信令的动态PW单跳建立与拆除的典型过程。
图9-153 PWE3单跳信令建立和维护的过程
PE1上配置了一个VC(Virtual Circuit)并指定PE2为其Peer;PE2上也配置了一个VC并指定PE1为其Peer。PE1和PE2之间PW的建立、维护和拆除的过程如下:
· PW建立和维护过程
动态PW标签分配在发送和接收两个方向分别进行。以图8-4为例,其消息报文具体的交互过程如下:
2. 如果PE1与PE2间的LDP Session已经建立,PE1发送Request报文到PE2。
* PE1 L2V/8/DBG:
! [L2VPN-LDP]Info :
sent label request message.
content of message as follow:
-----------------------------
peer pe ip address is:
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
* PE1 L2V/8/DBG:
! L2VPN LDP - Send LABEL REQUEST to ldp success
3. PE1接着为PE2分配一个VC标签,发送Mapping消息到PE2。Mapping消息中携带该VC标签。
* PE1 L2V/8/DBG:
! [L2VPN-LDP]Info :
sent label mapping message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21504
status-code is forwarding: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 8
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 16
content of vc_fec_tlv is: 80 00 07 08 00 00 00 00 00 00 00 65 01 04 05 dc
* PE1 L2V/8/DBG:
! L2VPN LDP - Send LABEL MAPPING to ldp success
4. PE2接收到来自PE1的Request和Mapping消息。
* PE2 L2V/8/DBG:
! [L2VPN-LDP]Info :
received label request message.
content of message as follow:
-----------------------------
peer pe ip address is:
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
* PE2 L2V/8/DBG:
! [L2VPN-LDP]Info :
received label mapping message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21504
status-code is forwarding: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 8
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 16
content of vc_fec_tlv is: 80 00 07 08 00 00 00 00 00 00 00 65 01 04 05 dc
5. 如果PE2与PE1配置的PW一致,经系统处理后,将VC置为Up状态,并发送Mapping消息给PE1。
PE2收到Mapping消息后检查本地是否也配置了同样的VC。如果配置了该VC,并且VC ID、VC-Type相同,则说明这两个PE上的VC都在一个VPN内。此外如果彼此接口参数都一致,则PE2端的VC就建立起来了。
* PE2 L2V/8/DBG:
PWE3 [REQUEST] MSG Processing...
* PE2 L2V/8/DBG:
! [L2VPN-LDP]Info :
sent label mapping message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21505
status-code is forwarding: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 8
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 16
content of vc_fec_tlv is: 80 00 07 08 00 00 00 00 00 00 00 65 01 04 05 dc
* PE2 L2V/8/DBG:
! L2VPN LDP - Send LABEL MAPPING to ldp success
6. PE1收到来自PE2的Mapping消息,经系统处理后,将VC置为Up状态。此时PE1和PE2的动态PW建立完成。
PE1收到Mapping消息后,检查其中的VC ID、VC-Type及接口参数,如果两端都一致,则PE1端的VC也建立起来了。此时,PE1和PE2之间的PW(由两条反向的VC组成)建立成功。
*Oct 13 21:01:35 2006 Quidway L2V/8/DBG:
! PWE3 [Session Up] Processing…
7. PW建立以后,PE1和PE2通过Notification消息来通报彼此的状态。
* PE2 L2V/8/DBG:
PWE3 [NOTIFICATION] MSG Processing...
· PW拆除过程
图8-6为动态PW的拆除过程中的消息报文交互情况。
图9-154 PWE3单跳信令拆除的过程
消息报文具体的交互过程如下:
8. 如果检测到LDP会话变为Down,则PE1将VC置为Down状态,并发送Withdraw消息给PE2。
#Dec 5 14:25:20 2006 PE1 L2V/4/TRAP:
! L2VPN LDP VC state DOWN:(vcid=101,vctype=7,dest=,Reason=VC Deleted)
* PE1 L2V/8/DBG:
! [L2VPN-LDP]Info :
sent label withdraw message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21505
status-code is normal: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
* PE1 L2V/8/DBG:
! L2VPN LDP - Send LABEL WITHDRAW to ldp success
9. PE1接着发送Release消息给PE2。
* PE1 L2V/8/DBG:
! [L2VPN-LDP]Info :
sent label release message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21505
status-code is normal: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
* PE1 L2V/8/DBG:
! L2VPN LDP - Send LABEL RELEASE to ldp success
10. PE2收到PE1的Withdraw和Release消息后,也将VC状态置为Down。
* PE2 L2V/8/DBG:
! [L2VPN-LDP]Info :
received label withdraw message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21505
status-code is normal: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
* PE2 L2V/8/DBG:
! [L2VPN-LDP]Info :
received label release message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21505
status-code is normal: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
#Dec 5 14:25:24 2006 PE2 L2V/4/TRAP:
! L2VPN LDP VC state DOWN:(vcid=101,vctype=7,dest=,Reason=LDP Withdrawn
Received)
11. PE2接着处理PE1的Withdraw消息,并向PE1发送Release消息。
* PE2 L2V/8/DBG:
PWE3 [WITHDRAW] MSG Processing...
* PE2 L2V/8/DBG:
! [L2VPN-LDP]Info :
sent label release message.
content of message as follow:
-----------------------------
peer pe ip address is:
label is: 21505
status-code is normal: 0x0
fec element type is: 128
c-Bit is: 0
vc type is: ppp
vc info length is: 4
group id is: 0
vc id is: 101
length of vc_fec_tlv is: 12
content of vc_fec_tlv is: 80 00 07 04 00 00 00 00 00 00 00 65
* PE2 L2V/8/DBG:
! L2VPN LDP - Send LABEL RELEASE to ldp success
12. PE1与PE2完成对PW的删除。
综上所述,当PW的AC端口Down或者Tunnel Down的时候,Martini协议的处理是发送Withdraw报文,拆除PW连接,这样等AC变为Up或者Tunnel变为Up的时候,需要重新进行一轮协商过程,以便建立连接。
而PWE3协议的处理是发送Notification报文给对端,通知对端当前处于不能转发数据的状态,但PW连接本身并不拆除,等AC变为Up或者Tunnel 变为Up的时候再用Notification报文知会对端可以转发数据。
当PW1不再转发PE2的报文(例如用户撤销指定PE2为Peer)时,它发送Withdraw消息给PE2,PE2收到Withdraw消息后拆除PW,并回应Release消息,PE1收到Release消息后释放标签,拆除PW。
PWE3协议采用Notification报文方式的好处是在网络不稳定时,Notification报文可以减少报文交互的数量。例如,PE路由器如果出现AC链路振荡,只需发送Notification报文通告本端AC链路状态,而对端收到该报文并不拆除VC。而在Martini方式中,如果PE出现AC链路振荡,就不断发送Withdraw报文,导致PW的反复建立和删除。
PWE3支持Notification方式协商PW状态信息,同时兼容Withdraw方式撤销标签。采用哪种方式,在PW建立时由两边协商决定。
LDP方式多跳PW
在大多数情况下单跳PW就可以满足实际需求,但是在以下三种情况下单跳PW就不能满足需求:
· 两台PE之间不在同一个AS域中,且不能在两台PE之间建立信令连接或者建立隧道。
· 两台PE上的信令不同,比如一端运行LDP一端运行RSVP;
· 如果接入设备可以运行MPLS,但又没有能力建立大量的LDP会话,这时可以把UFPE(User Facing Provider Devices)作为U-PE,把高性能的设备S-PE作为LDP会话的交换节点,类似信令反射器。
采用LDP方式作信令的PW多跳的典型网络拓扑如图8-7所示。
图9-155 PWE3多跳拓扑
图8-8是一个采用LDP方式作信令的动态PW多跳建立与拆除的典型过程。
图9-156 PWE3多跳信令过程
多跳PW与单跳PW相比,两个PE之间多了一个S-PE。如图8-8所示,多跳PW的连接不是直接在PE1与PE2之间建立的,而是通过S-PE转接在一起的。PE1与PE2分别与S-PE建立连接,S-PE将两段PW连接在一起。在连接建立的信令协商过程中,PE1发给S-PE的Mapping报文中携带的参数,S-PE会将其转发给PE2;同样PE2的参数也通过Mapping带给S-PE后,由S-PE转发给PE1,两端的参数协商一致后,PW就Up起来了。Release、Withdraw和Notification报文同Mapping报文一样也是逐跳传递。S-PE的数量是没有限制的,可以任意多跳。
使用RSVP信令的PW
PWE3的信令也可以是RSVP-TE,即以RSVP-TE为信令建立PW。建立的PW是双向的。以RSVP信令建立PW连接的时候,单跳与LDP的配置方式类似,但是多跳不需要在S-PE节点进行配置,PW连接不是多个PW粘连在一起,而是在两个方向各建一个。
采用RSVP方式作信令的PW的典型网络拓扑如图8-9所示。
图9-157 PWE3 RSVP信令拓扑
图8-10是一个采用RSVP方式作信令的动态PW建立与拆除的典型过程。
图9-158 PWE3 RSVP信令过程
关于以RSVP-TE为信令建立PW,有兴趣的读者请参考相关的其他文档。
PWE3中的报文转发
PWE3建立的是一个点到点通道,通道之间互相隔离,用户二层报文在PW间透传。对于PE设备,PW连接建立后,用户接入接口(AC)和虚链路(PW)的映射关系已经确定;对于P设备,只需依据MPLS标签进行MPLS转发,不必关心MPLS报文内部封装的二层用户报文。
PWE3中的报文转发过程,请参见图8-1中的说明,这里不再赘述。
PWE3实现中的关键技术
动静混和多跳组网
混合多跳PW是指一端是静态PW、一端是动态PW(LDP),其中静态PW或者动态PW也可能是多跳的,但不包括静态PW和动态PW交错出现的情况。
如图8-11所示,U-PE1与S-PE之间是动态PW;U-PE2与S-PE之间是静态PW。
图9-159 动静混和多跳典型组网图
除了在静态PW和动态PW交汇的S-PE上配置和处理不一致以外,其它单一形式的PW在U-PE和S-PE上的处理和前面描述的静态PW或者动态PW的处理方法一致。
在动态PW和静态PW交汇处的S-PE上,对于动态PW一端来说,静态PW一端可以认为是动态PW的AC,静态PW状态的变化相当于动态PW的AC状态变化。为了信令协商,需要指明该PW的类型、接口MTU等参数。这些参数必须和静态PW的AC接口一致。
对于静态PW,如果隧道存在,静态PW就UP;对于动态PW,如果隧道存在,远端PW的状态UP,远端PW Type和MTU和本地配置的一致,则动态PW也UP。
综上所述,对于静态PW,不使用信令协议进行参数协商,而是通过命令行手工指定相关信息,数据通过隧道在PE之间传递,因此对系统的资源消耗比较少,但是配置比较复杂。对于动态PW,是通过信令协议建立起来的PW,因此更加灵活,配置也简单,但是对系统的要求比较高。而动静结合的PW则综合了静态PW和动态PW的特点,在实际组网中得到广泛的应用。
PW保护
PW的链路保护技术
PW保护是为了在一个PW出现问题,如一个PW的隧道被删除后,能够快速切换到另一个PW,实现数据层面的快速切换,如图8-12所示。
图9-160 PW保护的拓扑模型
多跳情况下,为了实现PW保护:
· 在两个U-PE上需要分别配置两个PW,一一对应,其中一个U-PE(U-PE1)上的一个PW(PW5)配置为备份PW;在经过的S-PE上分别配上PW,与U-PE的配置一起实现Multi-Hop-PW,如图8-12所示。
· 主备PW都需要进行信令协商和处理,且与普通的动态多跳PW的信令处理一致。
· 如果主PW状态出现问题(LDP会话DOWN、隧道被删除),需要立即通告备份PW;如果备份PW状态UP,会升级为主PW。
控制字
控制字(CW)需要通过控制层面协商,用于转发层面报文顺序检测、报文分片和重组等功能。PWE3协议中要求支持CW的有ATM AAL5和FR两种。控制层面控制字的协商比较简单,如果控制层面协商结果支持控制字,则需要把结果下发给转发模块,由转发层面具体实现报文顺序检测和报文重组等功能。
控制字是一个4字节的封装报文头,在MPLS分组交换网络里用来传递报文信息。如图8-13所示。
图9-161 控制字在报文中的位置
控制字主要有三个功能:
· 携带报文转发的序列号
在转发层面,如果支持控制字,则在数据报文前增加一个32比特的控制字,用来表示报文顺序。在支持负载分担时报文才可能乱序,可以使用控制字对报文进行编号,以便对端重组报文。
· 填充报文,防止报文过短
例如,当PE到PE间为以太网、PE与CE间为PPP连接时,由于PPP的控制报文大小达不到以太网支持的最小MTU,PPP不能协商成功。这时,通过添加控制字(即添加填充位)可以避免此问题。
· 携带二层帧头控制信息
有些情况下,在网络上传输L2VPN报文的时候没有必要传送整个的二层帧,而是在入节点(Ingress端)剥离二层头,然后在出节点(Egress端)重新添加。但是如果二层头中有些信息需要携带,这种方式就不可取了。使用控制字可以解决该问题,控制字可以携带PE之间Ingress端和Egress端事先协商好的信息。
在控制层面,两端同时支持或者同时不支持控制字时,才能协商成功。在转发层面,按照控制层面的协商结果决定是否对报文添加控制字。
表9-22 需要控制字携带二层帧头控制信息的封装类型
封装类型
是否需要控制字
ATM(AAL5)
是
Ethernet
否
Frame Relay
是
HDLC
否
PPP
否
VCCV-PING
VCCV-PING(Virtual Circuit Connectivity Verification PING)是一种手工检测虚电路连接状态的工具,就像ICMP-PING和LSP-PING一样,它是通过扩展LSP-PING实现的。VCCV定义了在PE之间交互的一系列消息来验证PW的连通性。为了确保VCCV的报文和PW中的数据报文经过的路径一致,VCCV的报文就必须与PW的封装方式相同且通过与PW报文相同的隧道。具体请参照草案draft-ietf-pwe3-vccv和draft-ietf-mpls- lsp-ping。
VRP支持在U-PE上手工检测LDP PW的连接性(VCCV-PING),包括检测静态PW、动态PW、单跳PW和多跳PW的连通性。PWE3 VCCV的参考模型如图8-14所示。
图9-162 PWE3 VCCV参考模型
VCCV-PING包括控制字(CW)通道和MPLS router alert通道:
· 控制字通道CC(Control Channel):支持从U-PE到U-PE之间端到端的检测。
· MPLS router alert通道:支持端到端的检测,也支持U-PE到S-PE的逐跳检测。
VCCV既可以被用作故障检测也可以被用作PW的诊断工具。由于底层分组交换网络的不同(LSP-PING,L2TPV3,或者ICMP PING),VCCV可以是多种控制通道(CC)类型中的一种和多种连接验证(CV)类型中的一种的组合。
MPLS网络的VCCV
在信令建立时,需要在Mapping报文的Interface TLV中携带VCCV参数,如下图8-15所示。
图9-163 VCCV参数
CC Type用来表示控制通道的类型。其中CC Type的取值和对应关系,请参见表8-2。
表9-23 CC Type的取值和对应关系
取值
含义
0x00
无
0x01
PWE3的控制字是以0x01作为第一个8位组。
0x02
MPLS Router Aler标签
0x04
MPLS内部标签的TTL值等于1
CV Type用来表示连接验证的类型。其中CVType的取值和对应关系,请参见表8-3。
表9-24 CV Type的取值和对应关系
取值
含义
0x00
无
0x01
ICMP Ping
0x02
LSP Ping
0x04
BFD只用作PW建立失败检测
0x08
BFD用作PW建立失败检测和AC/PW的错误状态信令。
如果需要支持VCCV-PING,控制通道的类型CC需要支持Control Word或者Router Alert Label,连接验证的类型CV需要支持ICMP PING(PSN为IP网络、如GRE或者L2TPv3等)或者LSP PING(PSN为MPLS网络)。
在进行连接性验证时,控制层面首先把VCCV能力下发到转发层面。在转发层面,PW的Ingress节点,VCCV-PING报文封装在数据报文的PayLoad中,也就是Control Word或者Router Alert Label的后面。通过虚电路后,在PW的Egress节点,VCCV-PING报文会被送到CPU处理,而不是直接转到CE。
VCCV-PING报文的内容按照LSP-PING中的要求,是UDP报文。其中包括PW FEC信息,VCCV-PING用于检测两个PE之间PW的连接性,类似于LSP-PING,可以使用Control Word或者MPLS Router Alert Label实现。
图8-16是Ping报文的格式
图9-164 Ping报文
其中TLV的结构如图8-17所示
图9-165 Ping报文中的TLV结构
Value的内容为Sub_TLV,Sub_TLV的结构如图8-18所示。
图9-166 Sub_TLV的结构
PW模板
PW模板(PW template),是指从PW中抽象出来的公共属性,便于被不同的PW共享。为了便于扩展,增加了PW template命令模式,把一些PW的公共属性配置在PW的模板上。当在接口模式下创建PW时,可以引用该模板。
VRP支持PW和PW template的绑定。并且支持PW的reset机制。
异种介质互连
VRP不仅支持PWE3同种介质互连,而且还支持异种介质互连的网络,透明传输不同封装类型的数据。
当不同的site用不同的介质接入PWE3骨干网时,就要配置异种介质互连的PWE3。如图8-19,site3和site4用同一种介质接入PWE3的骨干网;而site1和site2是用异种介质接入PWE3骨干网。
图9-167 异种介质互连的PWE3网络
可以通过PWE3透明传输的数据类型见表8-4。
表9-25 可以通过PWE3透明传输的数据类型
类型号
类型
0x0001
Frame Relay DLCI ( Martini Mode )
0x0002
ATM AAL5 SDU VCC transport
0x0003
ATM transparent cell transport
0x0004
Ethernet Tagged Mode
0x0005
Ethernet
0x0006
HDLC
0x0007
PPP
0x0009
ATM n-to-one VCC cell transport
0x000A
ATM n-to-one VPC cell transport
0x000B
IP Layer2 Transport
0x000C
ATM one-to-one VCC Cell Mode
0x000D
ATM one-to-one VPC Cell Mode
0x000E
ATM AAL5 PDU VCC transport
其他特性
目前,VRP不仅支持以上基本特性,且有以下特性:
· 支持PW保护(信令为LDP)。同一个接口下配置两个PW ID不同的PW,一个为主一个为备。一个PW出现问题,自动切换到备份PW,以此实现对PW的保护。此配置应用在多跳的情况下比较合适。
· 支持VlanIf接口和Trunk接口配置。
· 支持PW QoS和资源隔离VPN。
· 支持PW标签的上下行控制。
· 支持二层设备上配置PWE3。
ATM信元透传技术
ATM信元透传技术的引入
ATM是历史悠久的多业务承载技术,是传统的骨干网络技术,它可以承载:IP、FR、Voice、会议电话、以及ISDN/DSL等,具有强大的QoS能力。已有的ATM网络已经承载了非常重要的业务。
但是目前随着IP数据网的发展,IP网络本身的可拓展、可升级性以及兼容互通能力非常强大,而传统的通信网络的升级、扩展、互通的灵活性则相对比较差,受限于传输的方式和业务的类型,并且新建的网络与原网络的共用性比较差,不宜于互通管理。因此在传统的通信网面临升级,拓展应用的过程中,如何充分利用现有或公共的资源达到升级网络,扩展应用,使得传统通信网络与现有分组网络相互结合呢?
ATM信元透传特性就是利用PSN网络将传统的ATM网络资源连通起来,在PSN网络上提供传统的ATM业务的仿真,在传统的ATM网络业务穿越PSN网络时极大限度的仿真原始业务,使端用户感受不到差异性,在网络整合和建设中保护用户和运营商的已有投资。
图9-168 ATM透传典型组网图
如图8-20所示,通过高速PSN网络(MPLS/IP网络)将ATM网络连接起来。ATM透传可以用于通过PSN网络迁移原来老的ATM网络,而原来的ISP网络不用增加新的ATM设备,也不用改变ATM CE设备的配置。ATM CEs将ATM信元透传业务看成TDM leased line,通过PSN透传信元实现ATM的互连。
ATM信元透传(ATM Cell Relay)是一种在PWE3虚电路上承载ATM信元的技术。
ATM信元透传的基本概念
ATM信元
异步传输模式ATM(Asynchronous Transfer Mode)最基本的特征就是具有最小网络功能的分组交换。ATM是以信元为基本单位进行信息传输、复接和交换的。ATM信元具有53字节的固定长度,其中5个字节构成信元头部,其余48个字节是有效载荷。在这种情况下,异步意味着每个信元在不和其他信元发生关系的情况下独立传输,而且信元的长度很小,意味着传输延时很短。
虚电路VC
ATM是一种基于虚电路的面向连接的交换技术。每条虚电路VC(Virtual Circuit)用虚路径标识符VPI(Virtual Path Identifier)和虚通道标识符VCI(Virtual Channel Identifier)来标识。一对VPI/VCI值对只在ATM节点之间的一段链路上有局部意义。
永久虚电路PVC
永久虚电路PVC(Permanet Virtual Connection)是通过网络管理接口建立的一种ATM连接。这种连接的建立不需要信令。
交换虚电路SVC
交换虚电路SVC(SwitchVirtual Connection)是通过信令动态建立的一种ATM连接。这种连接的建立需要信令。
虚电路连接VCC
VCC(Virtual Circuit Connection)是指以ATM信元头中的VCI值进行交换的一种ATM连接方式。
虚路径连接VPC
VPC(Virtual Path Connection)是指以ATM信元头中的VPI值进行交换的一种ATM连接方式。
PTI
PTI(Payload Type Indentifier)是净荷类型标识,用于标识净荷的类型。
CLP
CLP(Cell Loss Priority)表示信元丢弃优先等级,用于拥塞控制。发生拥塞时优先丢弃CLP等于1的信元。
关于ATM的其他相关概念和特性描述,请参考《VRP 特性描述 广域网接入》中的ATM特性描述。
ATM信元透传的实现概述
PWE3 的现实目标是利用PSN网络将传统的网络资源(ATM/FR/LAN等)连通起来,在PSN网络上提供传统业务的仿真。在传统网络业务穿越PSN网络时极大限度的仿真原始业务,使端用户感受不到差异性,在网络整合和建设中保护用户和运营商的已有投资。
PSN上的二层仿真业务,通过建立P2P tunnel,承载数据包、信元、比特流穿越公共或专用的分组交换网络(PSN)。在PW相连的两个PE点之间,尽量对原始业务的行为进行仿真。
利用PSN网络透传ATM业务的标签封装形式如图8-21所示。
图9-169 利用PSN网络透传ATM业务示意图
其中,外层标签PSN Label用于标识PSN tunnel;内层标签PW Header用于标识PW。
ATM信元透传是指在PSN网络承载以下两种业务:
· PW的净荷是ATM信元的业务
· PW的净荷是AAL5 SDU/PDU的业务
· 严格的说,仅当PW的净荷是ATM信元时才称作ATM信元透传;当PW净荷是AAL5 SDU/PDU时,应称作AAL5 SDU/PDU透传。但有时也把这些ATM业务的透传笼统地称作ATM信元透传。
· SDU和PDU分别指ATM适配层中的业务数据单元和协议数据单元。
ATM信元透传可以用于通过PSN网络迁移原来老的ATM网络,而不用增加新的ATM设备,也不用改变ATM CE设备的配置。ATM CE将ATM信元透传业务看成TDM租用专线,通过PSN透传信元实现ATM的互连。
VRP支持基于永久虚电路PVC(Permanent Virtual Circuit)和永久虚通道PVP(Permanent Virtual Path)的信元透传,以及AAL5 SDU透传。如下所示:
· 基于端口方式的ATM信元透传
· 1 to 1 VCC 信元透传
· N to 1 VCC 信元透传
· 1 to 1 VPC 信元透传
· N to 1 VPC 信元透传
· ATM AAL5-SDU VCC帧模式透传
下面针对上述的几种实现方式,分别介绍。
基于端口方式的ATM信元透传
基于端口方式的ATM信元透传业务,主要是模拟两个远端ATM端口间的连接。该业务用于端口不通过VPC层和VCC层处理而需要连接两个CE的情况。入口PE丢弃从入口ATM端口收到的所有闲置和未分配的信元,并且将所有其他接受的信元映射到一个PW。
出口PE在通过出口ATM端口发送信元时不改变VPI、VCI、PTI和CLP位。因此,基于端口方式的ATM信元透传业务似乎是在两个端口间模拟了一个ATM传输汇聚层连接。然而,由于入口PE丢弃了闲置和未分配的信元,该业务能节约带宽。
基于端口的信元透传是在一条PW承载一个ATM端口的信元,并支持所有的AAL类型。需要在PW承载的隧道报文中携带VPI/VCI值。
此种应用是仿真连接两个远程ATM端口的专线,通过PW连接两个CE的ATM端口,而不需要在VPC /VCC层进行处理或者交换,将一个端口的所有ATM CELL都透传到对端。
基于端口的ATM信元透传又可以分为:基于端口的远程ATM信元透传和基于端口的本地ATM信元透传。
基于端口的远程ATM信元透传
图9-170 基于端口的远程ATM信元透传
基于端口的远程ATM信元透传如图8-22所示,CE设备分别接入PSN网络的两个不同的PE设备,ATM信元需要透传整个PSN网络。
基于端口的本地ATM信元透传
图9-171 基于端口的本地ATM信元透传
基于端口的本地ATM信元透传如图8-23所示,CE设备接入同一个PE设备,ATM信元不需要透传整个PSN网络,而是直接由PE设备完成转发。
1-to-1 VCC方式的ATM信元透传
1-to-1 VCC方式的ATM信元透传一条PW承载一条ATM VCC的信元。它支持所有的AAL类型。对于1 to 1 VCC信元透传,因为一条PW承载一条ATM VCC的信元,所以隧道报文中不包含VPI/VCI值,其PW上的封装结构如图8-39所示。
由于PW中只承载一条ATM VCC,此时PE两侧是通过PW将PVC对应起来的,相当于将MPLS PW当成ATM交换机,故无需在PE上不需要配置交换关系,就支持VPI/VCI的交换,
1-to-1 VCC方式的ATM信元透传又可以分为:1-to-1 VCC方式的远程ATM信元透传和1-to-1 VCC方式的本地ATM信元透传。
1-to-1 VCC方式的远程ATM信元透传
图9-172 1-to-1 VCC方式的远程ATM信元透传
1-to-1 VCC方式的远程ATM信元透传如图8-24所示,CE设备分别接入PSN网络的两个不同的PE设备,ATM信元需要透传整个PSN网络,一条PW只承载一条ATM VCC的信元。
1-to-1 VCC方式的本地ATM信元透传
图9-173 1-to-1 VCC方式的本地ATM信元透传
1-to-1 VCC方式的本地ATM信元透传如图8-25所示,CE设备分别接入PSN网络的同一个PE设备,ATM信元不需要透传整个PSN网络,而是直接由PE设备完成转发。
按照draft-ietf-pwe3-atm-encap的描述,1-to-1 VCC方式的ATM信元透传属于可选项,也可以用N-to-1 VCC方式的ATM信元透传所代替。
N-to-1 VCC方式的ATM信元透传
N-to-1 VCC方式的ATM信元透传是指一条PW承载多条ATM VCC的信元。它支持所有的AAL类型。因为一条PW承载多条ATM VCC的信元,所以N to 1 VCC信元透传隧道报文中包含VPI/VCI,其PW上封装结构如图8-38所示。
按照draft-ietf-pwe3-atm-encap的要求,此种透传方式属于必选项。在PE和CE之间可以建立多条VC的连接,每条VC的传输都是独立于其他VC的。
此种封装支持同一个ATM子接口下的多条VC映射到一条PW中,不支持不同ATM接口下的多条VC映射到一条PW中,更不支持跨业务板的多条VC映射到一条PW中。
N-to-1 VCC方式的ATM信元透传又可以分为:N-to-1 VCC方式的远程ATM信元透传和N-to-1 VCC方式的本地ATM信元透传。
N-to-1 VCC方式的远程ATM信元透传
图9-174 N-to-1 VCC方式的远程ATM信元透传
N-to-1 VCC方式的远程ATM信元透传如图8-26所示,CE设备分别接入PSN网络的两个不同的PE设备,ATM信元需要透传整个PSN网络,一条PW承载多条ATM VCC的信元。
N-to-1 VCC方式的本地ATM信元透传
图9-175 N-to-1 VCC方式的本地ATM信元透传
N-to-1 VCC方式的本地ATM信元透传如图8-27所示,CE设备分别接入PSN网络的同一个PE设备,ATM信元不需要透传整个PSN网络,而是直接由PE设备完成转发。
N-to-1 VCC的封装方式还支持VPI/VCI交换的功能,VPI/VCI交换适用于原有的ATM网络中的对端的PVP和PVC链路使用不同的VPI/VCI或者VPI标识,不用更改原ATM网络中的对端设备的配置,而只需要在接入端的PE设备进行相应的配置即可,如图8-28所示,只需要在PE1和PE2上进行相应的配置即可将CE1 VPI1/VCI1上的业务映射到CE2 VPI2/VCI2上。
图9-176 N-to-1 VCC的封装方式远程VPI/VCI交换
图9-177 N-to-1 VCC的封装方式本地VPI/VCI交换
1-to-1 VPC方式的ATM信元透传
1-to-1 VPC方式的ATM信元透传一条PW承载一条ATM VPC的信元。它支持所有的AAL类型。与对于1-to-1 VCC信元透传相比,1-to-1 VPC方式的ATM信元透传隧道报文中只包含VCI值,出口路由器根据VCI的值来决定目的CE,1-to-1 VPC方式的ATM信元透传在PW上的封装结构如图8-40所示。
由于PW中只承载一条ATM VPC,此时PE两侧是通过PW将PVC对应起来的,相当于将MPLS PW当成ATM交换机,故无需在PE上配置交换关系,就支持VPI的交换,
1-to-1 VPC方式的ATM信元透传又可以分为:1-to-1 VPC方式的远程ATM信元透传和1-to-1 VPC方式的本地ATM信元透传。
1-to-1 VPC方式的远程ATM信元透传
图9-178 1-to-1 VPC方式的远程ATM信元透传
1-to-1 VPC方式的远程ATM信元透传如图8-30所示,CE设备分别接入PSN网络的两个不同的PE设备,ATM信元需要透传整个PSN网络,一条PW只承载一条ATM VPC的信元。
1-to-1 VPC方式的本地ATM信元透传
图9-179 1-to-1 VPC方式的本地ATM信元透传
1-to-1 VPC方式的本地ATM信元透传如图8-31所示,CE设备分别接入PSN网络的同一个PE设备,ATM信元不需要透传整个PSN网络,而是直接由PE设备完成转发。
按照draft-ietf-pwe3-atm-encap的描述,1-to-1 VPC方式的ATM信元透传属于可选项,也可以用N-to-1 VPC方式的ATM信元透传所代替。
N-to-1 VPC方式的ATM信元透传
N-to-1 VPC方式的ATM信元透传是指一条PW承载多条ATM VPC的信元。它支持所有的AAL类型。因为一条PW承载多条ATM VPC的信元,所以N to 1 VPC信元透传隧道报文中包含VPI/VCI,其PW上封装结构如图8-38所示。N-to-1 VPC方式与N-to-1 VCC方式在PW上的封装相同。
按照draft-ietf-pwe3-atm-encap的要求,此种透传方式属于必选项。在PE和CE之间可以建立多条VP的连接,每条VP的传输都是独立于其他VP的。
此种封装支持同一个ATM子接口下的多条VP映射到一条PW中,不支持不同ATM接口下的多条VP映射到一条PW中,更不支持跨业务板的多条VP映射到一条PW中。
N-to-1 VPC方式的ATM信元透传又可以分为:N-to-1 VPC方式的远程ATM信元透传和N-to-1 VPC方式的本地ATM信元透传。
N-to-1 VPC方式的远程ATM信元透传
图9-180 N-to-1 VPC方式的远程ATM信元透传
N-to-1 VPC方式的远程ATM信元透传如图8-32所示,CE设备分别接入PSN网络的两个不同的PE设备,ATM信元需要透传整个PSN网络,一条PW承载多条ATM VPC的信元。
N-to-1 VPC方式的本地ATM信元透传
图9-181 N-to-1 VPC方式的本地ATM信元透传
N-to-1 VPC方式的本地ATM信元透传如图8-33所示,CE设备分别接入PSN网络的同一个PE设备,ATM信元不需要透传整个PSN网络,而是直接由PE设备完成转发。
N-to-1 VPC的封装方式还支持VPI交换的功能,VPI交换适用于原有的ATM网络中的对端的PVP链路使用不同VPI标识,不用更改原ATM网络中的对端设备的配置,而只需要在接入端的PE设备进行相应的配置即可,如图8-34所示,只需要在PE1和PE2上进行相应的配置即可将CE1 VPI1上的业务映射到CE2 VPI2上。
图9-182 N-to-1 VPC的封装方式远程VPI交换
图9-183 N-to-1 VPC的封装方式本地VPI交换
ATM AAL5 SDU/PDU VCC帧透传
ATM网络中存在大量AAL5帧形式的业务,AAL5映射到PW与信元映射到PW相比的优势在于,AAL5充分利用了PSN的带宽。AAL5的封装需要PE-CE的ATM接口具备分割和汇聚的功能。
限制AAL5-SDU的透传,每个ATM子接口只支持一条PVC,一条VCC映射到一条PW。其在PW上的封装结构如图8-42和图8-43所示。
ATM AAL5 SDU VCC透传又可以分为:ATM AAL5 SDU远程VCC帧透传和ATM AAL5 SDU本地VCC帧透传。
ATM AAL5 SDU远程VCC帧透传
图9-184 ATM AAL5 SDU远程VCC帧透传
ATM AAL5 SDU远程VCC帧透传如图8-36所示,CE设备分别接入PSN网络的两个不同的PE设备,ATM SDU帧需要透传整个PSN网络,一条PW只承载一条ATM PVC的信元。
ATM AAL5 SDU本地VCC帧透传
图9-185 ATM AAL5 SDU本地VCC帧透传
ATM AAL5 SDU本地VCC帧透传如图8-37所示,CE设备分别接入PSN网络的同一个PE设备,ATM SDU帧不需要透传整个PSN网络,而是直接由PE设备完成转发。
VRP目前支持ATM AAL5-SDU的透传,但是不支持ATM AAL5-PDU的信元透传。
ATM信元透传的封装方式
PWE3目前有两个draft:
· draft-ietf-pwe3-atm-encap:定义了基于VPC、VCC的ATM透传业务。
· draft-ietf-pwe3-cell-transport:定义了基于接口的ATM透传业务。
关于ATM信元透传,目前分为基于永久虚电路PVC(Permanent Virtual Circuit)、永久虚通道PVP(Permanent Virtual Path)和基于接口的三种透传业务,包括One-to-one、N-to-one、AAL5 SDU三种封装方式,分为信元和帧两种透传模式,分别应用于不同的场合。不同级别的ATM信元透传业务的特点如表8-5所示。
表9-26 ATM信元透传业务的特点
封装方式
透传模式
AAL类型
支持的连接类型
封装方法
N-to-1 VCC
信元
所有AAL
VC
包含VPI/VCI,控制字可选,可支持vpi/vci交换
1-to-1 VCC
信元
所有AAL
VC
不含VPI/VCI,控制字必需,可支持vpi/vci交换
N-to-1 VPC
信元
所有AAL
VP
包含VPI/VCI,控制字可选
1-to-1 VPC
信元
所有AAL
VP
不含VPI,包含VCI,控制字必需
AAL5-SDU
帧
AAL5
VC
控制字可选
接口透传
信元
所有AAL
接口
包含VPI/VCI,控制字可选
各种连接类型的适用场合,请参见表8-6。
表9-27 各种连接适用的场合
连接类型
适用场合
VCC cell 透传
虚拟通道连接,是ATM网络中的基本单位。
适用于各种ATM网络业务的传输。
VPC cell 透传
虚拟路径连接,是一群具有相同目的地的VCCs。
适用于各种ATM网络业务的传输,但是当用户在传输方向上有多对通信,且目的地相同,则更适用于使用VPC cell 透传,因为VPC cell透传比VCC cell透传更加快捷、易于管理和配置。
Whole port透传
将设备当作是一条ATM传输专线,不需要VP和VC层面的处理的情况下。
ATM AAL5-SDU
适用于ATM通过PSN网络传输AAL5帧的情况下。
One-to-one方式与N-to-one方式,也写作1-to-1和N-to-1,它们之间的关系请参考表8-7。
表9-28 One-to-one方式与N-to-one方式对比
方式
含义
适用范围
区别
One-to-one(1-to-1)
指一条VCC或VPC映射到一条PW。
所有的AAL类型
· N-to-1方式必须在封装中携带VPI/VCI(不论N=1或N>1)。
· 1-to-1封装不携带VPI/VCI。
N-to-one(N-to-1)
指多条VCC或VPC映射到一条PW,其中N >= 1。
所有的AAL类型
按PWE3 draft的定义,N-to-1方式是必须实现的,1-to-1方式可选。因此可以用N-to-1代替1-to-1。
ATM网络中也存在着大量AAL5帧形式的业务。目前定义了两种专门针对AAL5帧的封装方式:AAL5-PDU和AAL5-SDU。其含义是一条PW仅承载一条ATM VCC,VCC上承载AAL5帧。
与信元映射到PW(VPC、VCC)相比,AAL5-PDU和AAL5-SDU直接映射到PW,能够更加充分利用PSN的带宽。
ATM N-to-one Cell Mode
N-to-one Cell Mode(N>=1)允许运营商通过MPLS网络提供ATM PVC或者SVC服务。N-to-one封装允许一条PSN Tunnel承载多条ATM VCC或者VPC。当然运营商也可以使用一条PSN Tunnel承载一条ATM VCC或者一条ATM VPC。
图9-186 ATM N-to-1封装
N-to-one封装如图8-38所示,其中控制字是可选项,控制字被插在ATM净荷前面。如果MPLS PSN支持ECMP(equal-cost Multiple Path)负载分担,那么报文就可能不是按照原有的顺序到达目的地,这时就必须使用控制字中的Sequence Number来恢复报文的原有顺序。如果MPLS PSN不支持ECMP负载分担,或者目的网络对报文的无序到达没有严格要求,那么此时控制字就是可选的。如果采用N-to-one封装没有采用控制字,则在MPLS Label后面讲以0x4或者0x6开始,此时报文就会被认为是IPv4或者IPv6的协议报文。
对于控制字各个字段的含义:
· 前4个bits必须是0,以表明是PW数据,报文必须被接收到的PE忽略掉。
· Flags,4 bits。有些情况下,网络没有必要传送整个的二层帧,而是在入口端把二层头给剥离,然后在出口端重新添加。但是如果二层头中有些信息需要携带,此时就将这些信息就是放在Flags位中。例如帧中继中的BECN、FECN、DE和C/R位信息。
· Res,2 bits,保留字段,通常被设置为0。
· Length,6 bits。在N-to-one Cell Mode中不使用,被设置为0。
· Sequence Number,16 bits。用来确保报文的顺序。此项内容是可选的。如果Sequence Number的值是0,则表明当前没有使能报文顺序检查机制。
ATM Service Payload包括两个部分:4字节的ATM Header和48字节的ATM Cell Payload。其中ATM Header主要包括4部分内容:
· VPI:入口路由器把原ATM信元中的VPI值复制到此处。MPLS PSN网络中的路由器构建VC时,不会使用ATM Service Payload中包含的原ATM Cell的VPI值。
· VCI:入口路由器把原ATM信元中的VCI值复制到此处。MPLS PSN网络中的路由器构建VC时,不会使用ATM Service Payload中包含的原ATM Cell的VPI值。
· PTI:净荷类型标识,3bits,用于标识净荷的类型。入口路由器把原ATM信元中的PTI值复制到此处。
· C:即CLP,信元丢弃优先等级,1bit,用于拥塞控制。发生拥塞时优先丢弃CLP=1的信元。入口路由器把原ATM信元中的CLP值复制到此处。
一个ATM Service Payload为52字节(4字节的ATM Header+48字节的ATM Cell Payload)。而普通的ATM Cell为53字节。因此相对于ATM NNI信元,ATM Service Payload丢弃了ATM NNI信头中一个字节的HEC(信头差错控制),即53-1=52字节。
ATM one-to-one Cell Mode
ATM one-to-one Cell Mode是指一条VCC或VPC映射到一条PW。因此ATM one-to-one Cell Mode可以分为
· Single ATM VCC封装
· Single ATM VPC封装
下面就对这两种封装分别进行说明。
图9-187 ATM VCC封装
ATM VCC封装如图8-39所示,其中控制字是必选项,控制字被插在Pseudowire Header后面。ATM S-PEcific Header被插在ATM Cell净荷前面。ATM S-PEcific Header包含了ATM Service中需要携带的控制位信息。ATM S-PEcific Header的长度也不一定是1个字节,而是由ATM Service的类型决定。
VCC信元透明传输是指把一条VCC映射到一条PW上面,对于所有的ATM AAL类型都是完全透明传输的。
对于控制字各个字段的含义:
· 前4个bits必须是0,以表明是PW数据,报文必须被接收到的PE忽略掉。
· Resvd,4bits,保留。在传输时必须被设置为0,在接收时被忽略。
· Optional Sequence Number,16 bits。用来确保报文的顺序。此项内容是可选的。如果Sequence Number的值是0,则表明当前没有使能报文顺序检查机制。
对于ATM S-PEcific Header各个字段的含义:
· M:1bit,传输模式。该位用来表明后面的报文包含的是一个ATM信元还是一个帧的净荷。如果M=0,则表示后面的报文包含的是一个ATM信元;如果M=1,则表示后面的报文包含的是一个帧的净荷。
· V:1bit,VCI标志位。该位用来表示报文中是否含有VCI字段。如果V=0,表示报文中没有VCI字段;如果VCI=1,表示报文中含有VCI字段。VCC是以ATM信元头中的VCI值进行交换的一种ATM连接方式。因此对于VCC,VCI字段是不需要的。VPC是以ATM信元头中的VPI值进行交换的一种ATM连接方式。因此对于VPC,VCI字段是需要的,并且在每个cell中被传输。
· Resvd,2bits,保留。在传输时必须被设置为0,在接收时被忽略。
· PTI:净荷类型标识,3bits,用于标识净荷的类型。这个3字节的净荷类型标识符包括信元的ATM层PTI编码。这些字节设为封装后的ATM信元的PTI值。
· C:即CLP,信元丢弃优先等级,1bit,用于拥塞控制。发生拥塞时优先丢弃CLP=1的信元。用来表示封装后的ATM Cell的CLP值。
当一次封装多个ATM信元时,封装ATM信元数量的多少是通过入口设备和出口设备共同协商决定的。被封装的每个ATM信元前都有一个字节的ATM S-PEcific Header信息。因此可以认为是用49字节内容封装了53字节ATM信元信息。
图9-188 ATM VPC封装
ATM VPC封装如图8-40所示,其中控制字是必选项,控制字被插在Pseudowire Header后面。ATM S-PEcific Header被插在ATM Cell净荷前面。ATM S-PEcific Header包含了ATM Service中需要携带的控制位信息。ATM S-PEcific Header的长度也不一定是1个字节,而是由ATM Service的类型决定。
VPC信元透明传输是指把一条VPC映射到一条PW上面,对于所有的ATM AAL类型都是完全透明传输的。所有属于此VPC的VCC都可以被透明的承载。
对于普通的ATM VPC,出口PE是不能够改变报文中VCI的字段的。但是对于这里所介绍的VPC信元透明传输,出口PE是可以给报文的VCI字段设置一个和入口VCI不同的值。出口PE所设置的VCI值仅由PW Header所决定。
对于控制字各个字段的含义:
· 前4个bits必须是0,以表明是PW数据,报文必须被接收到的PE忽略掉。
· Resvd,4bits,保留。在传输时必须被设置为0,在接收时被忽略。
· Optional Sequence Number,16 bits。用来确保报文的顺序。此项内容是可选的。如果Sequence Number的值是0,则表明当前没有使能报文顺序检查机制。
对于ATM S-PEcific Header各个字段的含义:
· M:1bit,传输模式。该位用来表明后面的报文包含的是一个ATM信元还是一个帧的净荷。如果M=0,则表示后面的报文包含的是一个ATM信元;如果M=1,则表示后面的报文包含的是一个帧的净荷。
· V:1bit,VCI标志位。该位用来表示报文中是否含有VCI字段。如果V=0,表示报文中没有VCI字段;如果VCI=1,表示报文中含有VCI字段。VCC是以ATM信元头中的VCI值进行交换的一种ATM连接方式。因此对于VCC,VCI字段是不需要的。VPC是以ATM信元头中的VPI值进行交换的一种ATM连接方式。因此对于VPC,VCI字段是需要的,并且在每个cell中被传输。
· Resvd,2bits,保留。在传输时必须被设置为0,在接收时被忽略。
· PTI:净荷类型标识,3bits,用于标识净荷的类型。这个3字节的净荷类型标识符包括信元的ATM层PTI编码。这些字节设为封装后的ATM信元的PTI值。
· C:即CLP,信元丢弃优先等级,1bit,用于拥塞控制。发生拥塞时优先丢弃CLP=1的信元。用来表示封装后的ATM Cell的CLP值。
· VCI:16bits。用来表示封装后的ATM Cell的VCI值。
当一次封装多个ATM信元时,封装数量的多少是通过入口设备和出口设备共同协商决定的。被封装的每个ATM信元前都有一个字节的ATM S-PEcific Header信息和2个字节的VCI信息。因此可以认为是用51字节内容封装了53字节ATM信元信息。
ATM AAL5 CPCS-SDU Mode
ATM AAL5 CPCS-SDU Mode是指把ATM AAL5的净荷映射到一条PW上,它要求PE支持ATM的分片和重组功能。
图9-189 ATM信元的分组
如图8-41所示,在ATM的适配层中,ATM的数据块会被分组为48字节的ATM信元净荷。有时如果剩余的数据不够48个字节,为了传输的需要,就需要在信元的净荷中填入填充位。这样会浪费带宽。
在ATM AAL5 CPCS-SDU Mode中,入口PE在重组数据块时,不考虑填充位和尾部信息,只在PW上传输数据块的内容。在出口PE上,PE会重新生成填充位和尾部信息。
图9-190 AAL5 CPCS-SDU封装
AAL5 CPCS-SDU封装如图8-42所示,其中控制字是必选项,控制字被插在ATM净荷前面。
对于控制字各个字段的含义:
· 前4个bits必须是0,以表明是PW数据,报文必须被接收到的PE忽略掉。
· T,1bit,传输模式。该位用来表明报文中封装的是ATM管理信元还是AAL5的净荷。如果T=1,则报文中封装的是ATM信元,此时的封装模式和ATM VCC封装一样,如图8-39所示。如果T=0,则报文中封装的是AAL净荷。
· E:1bit结束位。如果发送的AAL5 CPCS-SDU数据块的最后一个信元的E标志位是1或者发送的一个ATM信元的E标志位是1,那么入口路由器需要把控制字中的E标志位也设置为1。其他情况控制字中的E标志位都设置为0。出口路由器根据控制字中的E标志位的数值,为每个信元设置相应的E标志位。
· C:1bit,即CLP,信元丢弃优先等级,1bit,用于拥塞控制。发生拥塞时优先丢弃CLP=1的信元。如果发送的AAL5 CPCS-SDU数据块的有一个信元的C标志位是1或者发送的一个ATM信元的C标志位是1,那么入口路由器需要把控制字中的E标志位也设置为1。其他情况控制字中的C标志位都设置为0。出口路由器根据控制字中的C标志位的数值,为每个信元设置相应的C标志位。
· U:1bit。该位用来表明对于FR或者异种介质互联,AAL5 CPCS-SDU的公用部分会聚子层用户到用户字段(CPCS-UU),含有FR的C/R值等一些二层信息,这是入口路由器就要把CPCS-UU中的值复制到控制字中的U字段中。出口路由器再把控制字中U字段的信息复制到CPCS-UU中。
· Res,2 bits,保留字段,通常被设置为0。
· Length,6 bits。该字段用来标识二层净荷和控制字的长度。如果二层净荷和控制字的长度小于64字节,那么这个字段就填入实际长度。如果二层净荷和控制字的长度不小于64字节,那么这个字段就填入0。
· Sequence Number,16 bits。用来确保报文的顺序。此项内容是可选的。如果Sequence Number的值是0,则表明当前没有使能报文顺序检查机制。
AAL5 CPCS-PDU Mode
AAL5 CPCS-PDU Mode要比VCC封装的传输效率高。AAL5 CPCS-PDU Mode中,入口路由器封装了全部的CPCS-PDU信息,包括填充位和trailer信息。
图9-191 AAL5 CPCS-PDU封装
对于控制字各个字段的含义:
· 前4个bits必须是0,以表明是PW数据,报文必须被接收到的PE忽略掉。
· Resvd,4bits,保留。在传输时必须被设置为0,在接收时被忽略。
· Optional Sequence Number,16 bits。用来确保报文的顺序。此项内容是可选的。如果Sequence Number的值是0,则表明当前没有使能报文顺序检查机制。
对于ATM S-PEcific Header各个字段的含义:
· M:1bit,传输模式。该位用来表明后面的报文包含的是一个ATM信元还是一个帧的净荷。如果M=0,则表示后面的报文包含的是一个ATM信元;如果M=1,则表示后面的报文包含的是一个帧的净荷。
· V:1bit,VCI标志位。该位用来表示报文中是否含有VCI字段。如果V=0,表示报文中没有VCI字段;如果VCI=1,表示报文中含有VCI字段。VCC是以ATM信元头中的VCI值进行交换的一种ATM连接方式。因此对于VCC,VCI字段是不需要的。VPC是以ATM信元头中的VPI值进行交换的一种ATM连接方式。因此对于VPC,VCI字段是需要的,并且在每个cell中被传输。
· Resvd,3bits,保留。在传输时必须被设置为0,在接收时被忽略。
· U:1bit。该位表示报文中是否含有AAL5 PDU的最后一个信元以及代表CPCS-UU的值。
· E:1bit。该位用来传送ATM信元中的EFCI位的状态(每个ATM信元的EFCI的状态由信元头中的PTI字段的中间一位表示)。如果是从ATM到PSN(入方向),该位就被设置为与AAL5 PDU或者AAL5分片中最后一个信元中的EFCI值一致。如果从是PSN到ATM(出方向),组成AAL5 PDU或者AAL5分片的所有信元中的EFCI值都被设置为与控制中的EFCI值一致。
· C:1bit。该位用来传送ATM信元中的CLP位的状态。如果是从ATM到PSN(入方向),如果组成AAL5 PDU或者AAL5分片的信元中,任何一个信元的C标志位是1,那么控制字中的C位也被设置为1。如果从是PSN到ATM(出方向),组成AAL5 PDU或者AAL5分片的所有信元中的C标志位的值都被设置为与控制中的C标志位的值一致。
VPI/VCI映射
一个VPI/VCI值对只在ATM节点之间的一段链路上有局部意义。如图8-44所示,两台ATM交换机ATM Switch1和ATM Switch2,中间经过了一或多个ATM交换机连接,那么同一条VC在ATM Switch1侧VPI/VCI值对是1/100,在ATM Switch2侧为2/200。
用PSN网络模拟P2P Tunnel来仿真ATM Switch1和ATM Switch2之间的连接时,为保持ATM Switch1和ATM Switch2的配置无须修改,需要PE路由器建立VPI/VCI值对1/100和2/200之间的映射关系,并完成这一转换。
具体的说,PE1收到ATM Switch1传过来的1/100信元,通过PSN网络将其透传至PE2;PE2保持信元的内容不变,修改信元头中VPI/VCI为2/200,再发送给ATM Switch2;反之亦然。这样就实现了同一条VC两个CE侧VPI/VCI值对的映射。
图9-192 利用PSN网络模拟P2P Tunnel来仿真ATM业务示意图
PWE3的跨域技术
跨域技术产生的原因
随着MPLS VPN解决方案的越来越流行,服务的终端用户的规格和范围也在增长,在一个特殊的企业内部的站点数目越来越大,某个地理位置与另外一个服务提供商相连的可能性的需求变得非常的普遍,比如不同运营商的不同城域网之间,或是同骨干网之间都存在着非常现实的跨越不同自治域问题。
为了支持服务提供商之间的VPN路由选择信息交换,需要一个新的机制,以便可以穿过提供商间的链路来广播路由前缀和标签信息。但是一般的MPLS VPN体系结构都是在一个自治系统内运行,任何VPN的路由信息都是只在一个自治系统内按需扩散,不具有把一个自治系统内的VPN信息向其他服务商所属的自治系统扩散的功能。为了支持以上的跨域VPN的需求,就需要对现有的MPLS VPN体系框架协议进行扩展和修改。
图9-193 跨域技术产生的原因
实际组网应用中,如图8-45,某VPN用户分别连接在两个不同的自治域AS1和AS2上,如果两个AS内的VPN不能交换路由信息,那么位于不同地点的VPN用户就无法互通。图中仅仅是在跨越两个自治域的VPN客户互连,现实中的用户也可能需要跨越更多的自治域。这些问题都需要一个不同于基本的MPLS VPN体系结构所提供的互连模型,这种互连模型中,跨越多个AS的VPN应用方式被称为跨域(Inter-AS)VPN。
有三种跨域PWE3解决方案:
· Inter-AS PWE3-Option A:跨域的用户数据在ASBR间通过专用的接口传输,该用户对ASBR间的链路是独占的。这种方式也常被称作VRF-TO-VRF方式(背靠背方式)。
· PWE3多跳跨域:ASBR间进行动态PW标签交换。
· Inter-AS PWE3-Option C:PE间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由。
支持上述三种方式的跨域PWE3,详细描述如下。
Inter-AS PWE3-OptionA
概述
这种方式下,两个AS的边界路由器ASBR直接相连,ASBR同时也是各自所在自治系统的PE。两个ASBR都把对端ASBR看作自己的CE设备。
图9-194 Inter-AS PWE3-OptionA组网示意图
在图8-46中,对于AS100的ASBR-PE1来说,AS200的ASBR-2只是它的一台CE设备;同样,对于ASBR-PE2,ASBR-PE1也只是一台接入的CE设备。
OptionA的特点
Inter-AS PWE3-OptionA方式实现跨域VPN的优点是简单:两个作为ASBR的PE之间不需要运行MPLS,也不需要为跨域进行特殊配置。
缺点是可扩展性差:作为ASBR的PE需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致PE上的VPN-IPv4路由数量过于庞大。并且,由于ASBR间是普通的IP转发,要求为每个跨域的VPN使用不同的接口(可以是子接口、物理接口、捆绑的逻辑接口),从而提高了对PE设备的要求。如果跨越多个自治域,中间域必须支持VPN业务,不仅配置工作量大,而且对中间域影响大。在需要跨域的VPN数量比较少的情况,可以考虑使用。
PWE3多跳跨域
概述
这种方式是建立多跳PW,在两个ASBR PE上进行PW交换,因此它们之间需建立LDP会话连接和隧道。
图9-195 PWE3多跳跨域组网示意图
在可扩展性方面,ASBR间通过LDP会话交换PW信息而不是使用专门的链路,优于OptionA方式。
多跳跨域的特点
与Option A相比,多跳跨域不受VPN数目和ASBR之间互连链路数目的限制。
此方案也有其不可避免的局限性:VPN的路由信息是通过自治域之间的ASBR路由器来保存和扩散的,当VPN路由较多时,ASBR负担很重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再充当负责公网IP转发的ASBR。
Inter-AS PWE3-Option C
概述
前面介绍的两种方式都能够满足跨域PWE3的组网需求,但这两种方式也都需要ASBR参与PW的标签分发和维护。当每个AS都有大量的跨域PW时,ASBR就很可能成为阻碍网络进一步扩展的瓶颈。
解决上述问题的方案是:ASBR上建立和维护PW,PE之间直接进行PW标签交换。
· ASBR通过MP-IBGP向各自AS内的PE路由器发布标签IPv4路由,并将到达本AS内PE的标签IPv4路由通告给它在对端AS的ASBR对等体,过渡自治系统中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口PE之间建立一条LDP LSP;
· 不同AS的PE之间建立Multihop方式的MPLS LDP远端会话连接,交换PW信息。
图9-196 Inter-AS PWE3-OptionC组网示意图
Option C的特点
Option C组网方案有如下优势:
· 和一个域的MPLS VPN网络一样,VPN路由是直接交互的,不需要中间设备的保存和转发。
· 这跨域方案符合MPLS VPN的体系结构的要求:如VPN的路由信息只出现在PE设备上,而P路由器只负责报文的转发,这样就使中间域的设备可以不支持MPLS VPN业务,只是一个普通的支持IP转发的ASBR路由器,不再成为性能瓶颈。Multi-hop方式在跨越多个AS时的优势更加明显。
· 更适合支持MPLS VPN的负载分担等功能。
有关跨域技术的更多内容,情参考《VRP 特性描述 VPN》中第5章 BGP/MPLS IP VPN中的相关内容。这里不再赘述。
PWE3的典型应用
MPLS PWE3是城域网中的重要技术,通过它可以将原有的接入方式与现有的IP骨干网很好的融合在一起,减少网络的重复建设,节约运营成本。
图9-197 PWE3的典型应用
图8-49是一个典型的PWE3单跳组网应用,骨干网是IP网,各个接入的局域网的接入方式不同。
例如,某运营商建立了一个全国骨干网,提供了PWE3业务,客户有两个分部,分别分布在北京、上海。北京分部是以ATM接入运营商的骨干网,上海是以FR接入运营商的骨干网。运营商可以在两个接入点-北京的PE1与上海的PE2之间建立PWE3连接。
这样,通过PWE3,运营商就可以给客户提供跨域广域网的私网点到点业务,不会因为接入方式的不同而作特别的处理。对客户而言,组网简单、方便,不需要改变自己原有的企业网规划;对运营商而言,不需要改变原有的接入方式,能直接将原有的接入方式平滑迁移到IP骨干网中。
参考资料清单
如果您想了解更多关于PWE3的信息,请参考以下文档。
文档编号
描述
RFC3916
Requirements for Pseudo-Wire Emulation Edge-to-Edge (PWE3)
RFC3985
Pseudo Wire Emulation Edge-to-Edge (PWE3) Architecture
RFC4446
IANA Allocations for Pseudowire Edge to Edge Emulation (PWE3)
draft-ietf-pwe3-control-protocol-17
Pseudo wire Setup and Maintenance using the Label Distribution Protocol
draft-martini-pwe3-pw-switching-03
Pseudo Wire Switching
draft-ietf-pwe3-cw-00
PWE3 Control Word for use over an MPLS PSN
draft-ietf-pwe3-vccv-03
Pseudo Wire Virtual Circuit Connectivity Verification (VCCV)
draft-ietf-pwe3-ethernet-encap-10
Encapsulation Methods for Transport of Ethernet Over MPLS Networks
draft-ietf-pwe3-atm-encap-11
Encapsulation Methods for Transport of ATM Over MPLS Networks
draft-ietf-pwe3-cell-transport-05
PWE3 ATM Transparent Cell Transport Service
10 MPLS TE
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref150054538 \h
MPLS TE简介
介绍MPLS TE的引入、基本概念和原理
REF _Ref151803908 \h
TEDB的建立
介绍VRP中MPLS TE的基本实现机制
REF _Ref151803910 \h
路径的计算
介绍MPLS TE路径的计算过程
REF _Ref151803912 \h
RSVP-TE信令建立路径的过程
介绍通过RSVP-TE信令建立路径的过程
REF _Ref151803914 \h
CR-LDP信令建立路径的过程
介绍通过CR-LDP信令建立路径的过程
REF _Ref151803916 \h
MPLS TE的高级特性
介绍MPLS TE的高级特性
REF _Ref151803918 \h
在TE隧道上承载LDP
介绍在TE隧道上承载LDP的相关知识
REF _Ref151803920 \h
MPLS TE上的QoS
介绍MPLS TE和QoS之间的关系
REF _Ref81295291 \h
MPLS TE的应用
介绍MPLS TE的常见应用和组网
REF _Ref151803922 \h
MPLS TE术语
定义了MPLS TE的术语
REF _Ref151803924 \h
参考资料清单
提供相关的参考资料
MPLS TE简介
MPLS TE结合了MPLS技术与TE流量工程,通过建立到达指定路径的LSP隧道进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的。
本节介绍MPLS TE的基本概念、基本原理,包括以下内容。
· MPLS TE的引入
· MPLS TE的基本架构
· MPLS TE的基本概念
· MPLS TE的特性
MPLS TE的引入
传统IP网络处理流量面临的困难
传统的路由器选择最短的路径作为路由,不考虑带宽等因素。这样,即使某条路径发生拥塞,也不会将流量切换到其他的路径上。在网络流量比较小的情况下,这种问题不是很严重,但是随着Internet走出实验室,走出少数研究人员的范围,应用越来越广泛,传统的最短路径优先的路由的问题暴露无遗。
图10-198 传统路由的困难
如图2-1所示,假设每个链路的metric值相同。R1(R8)到R5的最短路径为R1(R8)→R2→R3→R4→R5,尽管存在其他到达R5的路径,数据转发也走R1(R8)→R2→R3→R4→R5这条最短路径。这样,就可能出现一条链路R1(R8)→R2→R3→R4→R5过载而出现拥塞,而另外一条链路R1(R8)→R2→R6→R7→R4→R5空闲的情况。
传统的解决方案
网络拥塞是影响骨干网络性能的主要问题。拥塞的原因可能是网络资源不足,也可能是网络资源负载不均衡,导致局部拥塞。流量工程解决的是由于负载不均衡导致的拥塞。为解决前面的问题,传统的流量工程往往采取如下的方法:
· 通过调整路径Metric而控制网络流量
为了解决上述问题,可以采用调整链路metric值的方法。通过分析拓扑结构,如图2-2所示将R2→R3→R4段的metric值调整,使其大于R2→R6→R7→R4段的metric值。这样,可以将流量引到链路R1(R8)→R2→R6→R7→R4→R5上来。
图10-199 调整Metric值之后
这种解决方法解决了一条链路上的拥塞(R1(R8)→R2→R3→R4→R5),但是可能会引起另外的链路拥塞(R1(R8)→R2→R6→R7→R4→R5)。另外,在拓扑结构复杂的网络上,metric值的调整比较困难,往往一条链路的改动会影响多个路由,难以把握和权衡。
· 采用叠加的网络模型,建立虚连接引导部分流量
现有的IGP协议都是拓扑驱动的,只考虑网络的连接情况,不能灵活反映带宽和流量特性这类动态状况。
解决IGP缺点的一种方法是使用重叠模型(Overlay),如IP over ATM、IP over FR等。重叠模型在网络的物理拓扑结构上提供一个虚拟拓扑结构,从而扩展了网络设计的空间,为支持流量与资源控制提供了许多重要功能,可以实现多种流量工程策略。然而,由于协议之间往往存在很大差异,重叠模型在可扩展性方面存在不足。
MPLS TE对流量的处理方法
为了在大型骨干网络中部署流量工程,必须采用一种可扩展性好、简单的解决方案。MPLS作为一种叠加模型,可以方便地在物理的网络拓扑上建立一个虚拟的拓扑,然后将流量映射到这个拓扑上。因此,MPLS与流量工程相结合的技术——MPLS TE应运而生。MPLS TE在解决网络拥塞问题有着自己的优势。MPLS TE结合了MPLS技术与TE流量工程,通过建立到达指定路径的LSP隧道进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的。
图10-200 MPLS TE的解决方案
如图2-3所示,采用了流量工程之后,R2→R6→R7→R4这段链路有效地分担了流量,减少了网络拥塞的可能性,使现有的带宽资源得到充分利用。
MPLS本身具有一些不同于IGP的特性,其中正有实现流量工程所需要的,例如:
· 支持建立显示LSP隧道,可以对路径进行控制;
· 通过信令建立LSP隧道,配置起来比较简单,容易维护;
· 网络流量可以方便地映射到某条LSP隧道上;
· LSP隧道有优先级、抢占等多种属性,可以方便地控制LSP隧道的行为;
· 颜色等属性可以控制LSP隧道经由的路径;
· MPLS允许流量聚合和非聚合两种方式,比IP灵活;
· MPLS可以容易地集成约束路由;
· 建立LSP隧道的负荷小,不会影响网络的正常业务。
通过MPLS TE,运营商可以精确地控制流量流经的路径,从而可以避开拥塞的节点,解决一部分路径过载,另一部路径空闲的问题,使现有的带宽资源充分利用起来。同时,MPLS TE在建立LSP隧道的过程中,可以预留资源,保证服务质量;为了保证服务的连续性,MPLS TE还引入路径备份和快速重路由FRR(Fast ReRoute)的机制,可以在链路出现问题时及时进行切换。使用MPLS TE,网络管理员只需要建立多条LSP和旁路拥塞节点,就可以降低网络拥塞的可能性。随着LSP数量的增长,还可以使用专门的离线工具进行流量分析。
MPLS TE的详细介绍可参考RFC2702(Requirements for Traffic Engineering Over MPLS)。
MPLS TE的基本架构
MPLS TE的结构图
MPLS TE的结构如图2-4所示。
图10-201 MPLS TE组件
MPLS TE功能需要如下四个组件:
· 信息发布组件
· 路径选择组件
· 信令组件
· 报文转发组件
信息发布组件
除了网络的拓扑信息外,流量工程还需要知道网络的负载信息。为此,MPLS TE引入信息发布组件,即通过对现有的IGP进行扩展,比如在IS-IS协议中引入新的TLV,或者在OSPF中引入新的LSA,来发布链路状态信息,包括最大链路带宽、最大可预留带宽、当前预留带宽、链路颜色等。
通过IGP扩展,在每个路由器上,维护网络的链路属性和拓扑属性,形成流量工程数据库TEDB。利用TEDB,可以计算出满足各种约束的路径。
扩展后的OSPF和IS-IS协议在链路连接状态中增加了链路带宽、着色等TE相关属性,其中,链路的最大可预留带宽和每个优先级的链路未被预留带宽尤为重要。
每台路由器收集本区域所有路由器每条链路的TE相关信息,生成流量工程数据库TEDB(TE DataBase)。
· OSPF使用Type 10 LSAs(Opaque Area-Local)传递TE相关属性信息;
· IS-IS使用Type 22 TLVs传递TE相关属性信息。
路径选择组件
通过信息发布组件形成TEDB后,在每个入口路由器上可以指定LSP隧道经过的路径。这种显示路由可以是严格的,也可以是松散的。可以指定必须经过某个路由器,或者不经过某个路由器,可以逐跳指定,也可以指定部分跳。此外,还可以指定带宽等约束条件。
路径选择组件是通过CSPF(Constraint Shortest Path First)算法,利用TEDB中的数据来计算满足指定约束的路径的。CSPF算法由最短路径优先算法演变而来,它首先在当前拓扑结构中删除不满足条件的节点和链路,然后再通过SPF(Shortest Path First)算法来计算。
使用链路状态算法的路由协议通过最短路径优先算法SPF计算出到达网络各个节点的最短路径。MPLS TE使用基于约束的最短路径优先算法CSPF(Constraint Shortest Path First)计算出到达某个节点的最短路径。
信令组件
在获得从LSP的入口到LSP出口的最短路径后,需要建立TE隧道用于转发从LSP入口进入的流量。这一过程是通过信令组件来完成的。
· 建立LSP隧道的两种信令
VRP支持使用如下的两种信令建立LSP隧道:
· CR-LDP
· RSVP-TE
两种信令都能够携带LSP的带宽、部分显式路由、着色等约束参数,两者完成的功能是一样的。
通过信令动态地建立LSP隧道可以避免逐跳配置的麻烦。普通的不带约束的LSP隧道可以通过LDP协议来建立。而带约束的LSP隧道的建立则可以通过CR-LDP协议,或者RSVP-TE协议来完成。
为了能够建立LSP隧道,对RSVP协议进行了扩展,在RSVP PATH消息中引入Label Request对象,支持发起标签请求;在RSVP RESV消息中引入Label对象支持标签分配。这样就可以建立LSP隧道了。此外RSVP还通过扩展对象支持MPLS TE相关的属性。
CR-LDP协议在LDP协议的基础上进行扩展,通过引入新的TLV同样支持MPLS TE的相关属性,如显式路径、带宽、亲和属性、优先级与抢占等。
· 两种信令的比较
扩展RSVP与CR-LDP信令系统都能够达到流量工程的基本要求,同时,它们二者可以说是各有优势,各有缺点。下面从技术的成熟性和可扩展性方面重点比较了这两项技术:
· 技术的成熟性
RSVP技术已经经历了多年的发展,其体系结构、协议规程与对各种业务的支持机制也已经十分成熟。该技术在一定范围内获得了应用,实际应用的经验使其技术不断完善,性能日趋可靠稳定。
相对于RSVP,CR-LDP是一种较新的技术,其协议在很多方面功能还十分简单,有待进一步的完善。而且这种技术目前还没有获得大规模的部署,其实际应用经验远不如RSVP丰富。
· 网络的可扩展性
可扩展性是MPLS网络最为关心的问题。所谓网络的可扩展性是指当网络中的节点与用户数量增加时,网络在稳定性与传输性能方面表现出来的适应能力。
RSVP-TE通过Raw IP建立LSP连接,采用软状态技术,当网络的节点数与需要建立的LSP数增加时,由于要对各条路径的状态进行刷新,刷新消息的数量将等比增加,最终将导致网络可扩展性的恶化。
CR-LDP通过TCP建立LSP,使用的是一种简单的“硬状态”机制。这种硬状态机制使得该技术对于网络节点数量的增加表现出很强的可扩展性。从CR-LDP的规程可以看出,它对标准LDP的改动很小,对消息与各种状态的处理十分简单,而且所需的消息数量很少,对于网络的运算资源的要求并不高。CR-LDP的管理,故障检测与分析过程都将是十分简单的。
报文转发组件
MPLS TE报文转发组件是基于标签的,通过标签沿着预先建立好的LSP进行报文转发。由于LSP隧道的路径是可以指定的,因而可以避免IGP的弊端。
MPLS TE的基本概念
· LSP隧道
对于一条LSP,一旦在Ingress节点为FEC分配了标签,流量的转发就完全由标签决定,流量对LSP的中间节点透明,从这个意义上来说,一条LSP可以看作是一条LSP隧道。
· MPLS TE隧道
在部署重路由(reroute)或需要将流量通过多条路径传输时,可能需要用到多条LSP隧道。在TE中,这样的一组LSP隧道称为TE隧道(Traffic Engineered Tunnel)。这类LSP隧道由两个标识符标识:一个是Tunnel ID,用于唯一定义TE隧道;另一个是的LSP ID。
· 主干流(Traffic Trunk)
主干流是属于同一服务类型的流量的聚合,并使用同一条LSP。
MPLS TE的特性
带宽保证
带宽保证是MPLS TE的基本属性,在建立CR-LSP时,可以指定其带宽,CSPF可以根据带宽要求确定满足该特性的路径。RSVP-TE和CR-LDP协议都可以携带带宽信息,在沿路径的各个节点实施带宽预留。CR-LSP建立成功后,转发能够为对应的业务流提供所要求的带宽保证。
显式路径
CR-LSP能够按照指定的路径建立,该路径称为显式路径。显式路径可以分为如下两种:
· 严格显式路径
所谓的严格显式路径,就是下一跳与前一跳必须直接相连。通过严格显式路径,可以最精确地控制LSP所经过的路径。
图10-202 严格显式路径
在图2-5中,RouterA作为LSP的入节点,RouterF作为出节点,从RouterA到RouterF用严格显式路径建立一条LSP。“B strict”表示该LSP必须经过RouterB,并且RouterB的前一跳是RouterA,“C strict”表示该LSP必须经过RouterC,并且RouterC的前一跳是RouterB,依此类推,就可以精确控制该条LSP所经过的路径。
· 松散显式路径
松散方式可以指定路径上必须经过那些节点,但是该节点和前一跳之间可以有其他路由器。
图10-203 松散显式路径
在图2-6中,从入节点RouterA到出节点RouterF用松散显式路径建立一条LSP。“D loose”表示该LSP必须经过RouterD,但是RouterD与RouterA之间可以存在其他路由器,不必直接相连。
严格显式路径与松散显式路径可以单独使用,也可以混合使用。MPLS TE信令能够携带显式路径节点及其严格/松散属性,按照指定的路径建立CR-LSP。
除了能够指定松散/严格属性,用户还可以在入口节点指定显式路径经过哪些节点,不经过哪些节点。CSPF可以根据这些显式路径的要求计算出相符和的路径。
链路颜色
通过赋予链路以颜色属性,可以帮助选择链路。链路能够支持多达32种颜色。在指定CR-LSP路径时,可以增加颜色的约束,可以要求所经历的路径是某种颜色,也可以要求所经历的路径不是某种颜色。CSPF可以根据TEDB中的链路信息和CR-LSP的颜色约束计算出符合条件的路径。RSVP-TE和CR-LDP也可以携带颜色属性,沿路径选择满足条件的链路。
优先级与抢占
优先级属性定义CR-LSP的相对重要性。CR-LSP隧道有一个建立优先级和一个保持优先级。优先级的范围从0到7,7为最低优先权。
当多条CR-LSP需要建立时,建立优先级高的LSP隧道优先占有资源、优先建立。当带宽等资源不够时,保持优先级低的、已建成的LSP隧道的带宽资源可能被一个建立优先级高的并且资源不够的LSP隧道抢占。
优先级和抢占属性一起共同决定隧道之间的资源抢占关系。
路径锁定
路径锁定(Pinning)属性要求在网络拓扑变化时,CR-LSP能够保持初始选定的路径,而不会按照新的可能的路径重新建立。
该属性的目的是保证业务流量的连续性,并能够提供一定的安全保证。
Make-before-break
TE的需求之一是在一系列约束条件下对已经建立的隧道进行重路由以满足约束条件。例如,存在一条更优的路由或已建立的隧道资源不够时,需要重新建立路径切换流量。Make-before-break就是在原有路径被拆除前先建立新路径,在流量切换时尽可能不丢失数据、也不占用额外带宽的前提下改变MPLS TE隧道属性的机制。
新路径建立时,可能会与原路径在某些共同链路上竞争带宽资源,这会导致新路径竞争失败而无法建立。通过Make-before-break机制,新路径需要预留的带宽不被重复计算,即采用原路径使用的带宽。
与此类似的是增加隧道的带宽,只要共用链路的可预留带宽满足增量要求,新路径就可以建立成功。
图10-204 Make-before-break示意图
在图2-7中,假设需要建立一条R1到R4的路径,路径带宽为30Mbit/s,开始建立的路径是R1-R2-R3-R4。
现在希望将路径带宽增大为40Mbit/s,并通过负载较轻的R5进行数据转发。R3-R4上剩余的可预留带宽只有30Mbit/s,不能满足40Mbit/s的总量要求,但满足增量要求即10Mbit/s。这时可以通过Make-before-break机制来解决。
通过Make-before-break,新建立的路径R1-R5-R3-R4在R3-R4上进行资源预留时采用原路径使用的带宽,并追加增量带宽。新路径建立成功后,流量转到新路径上后拆除原路径。
隧道优化
流量工程一个主要的目标就是优化网络上流量的分布。隧道建立之后,可以根据网络上的带宽变化、流量变化、管理策略变化等对已经建立LSP隧道进行优化(Reoptimum)。
对于某条隧道而言,当发现更优的路径时进行优化。所谓更优,至少需要满足metric值小、跳数更小并且不会引起抢占等条件。
在优化时,用户的业务流不中断是非常重要的。即新的LSP隧道必须先建立,业务在旧的LSP隧道被拆除前切换到新的LSP隧道上。在新旧LSP隧道共享的链路上,由于旧的LSP隧道使用的资源不能在新的LSP隧道建立前释放,共享链路上资源是否被计算两次非常关键。这是因为可能会造成由于资源的缺乏而造成新的LSP隧道无法建成。
RSVP-TE信令的SE预留风格能够非常好的解决这个问题,SE预留风格允许新旧的LSP隧道共享资源,使新的LSP隧道不会因为链路资源缺乏而必须等到旧的LSP隧道拆除才能完成。
隧道备份
对于重要的LSP隧道,需要进行备份。作为流量保护的一个重要组成部分,在主LSP隧道失败后,能够将流量及时切换到备份隧道上。
· 主隧道LSP(Primary LSP):主隧道LSP是期望的最优的路径,它是隧道备份的对象。主隧道LSP失败后,流量会切换,然后发起重建主隧道LSP。重建的次数是可配置的,缺省为0,即一直重建,直到成功为止。
· 热备份隧道LSP(Hot-Standby LSP):热备份隧道LSP在主隧道LSP建成之后,发起建立。当主隧道LSP失败消息传到入口路由器后,流量会切换到热备份隧道LSP。当主隧道LSP恢复后,将流量切换回去。
· 普通备份隧道LSP(Ordinary Backup LSP):普通备份隧道LSP在主隧道LSP失败消息传到入口路由器后,发起建立。建立成功后,将流量切换到该隧道LSP上。当主隧道LSP恢复后,将流量切换回去。
TEDB的建立
本节介绍MPLS TE数据库(TEDB)的建立过程,包含以下内容。
· 概述
· 使用OSPF-TE收集网络信息
· 流量工程数据库
概述
收集网络拓扑信息,包括各链路的约束信息、带宽使用状况等,形成流量工程数据库(TEDB),以供约束路由计算使用。
需要收集哪些信息
在TEDB建立过程中,需要收集以下信息:
· 带宽(Bandwidth)
· 链路属性(Link Attributes)
· 管理权重(Administrative Weight)
使用哪些协议收集信息
相应链路状态协议包括:
· OSPF-TE
· ISIS-TE
使用OSPF-TE收集网络信息
OSPF TE扩展概述
· Opaque LSA
OSPF定义了第1~5、7类的LSA来携带区域内、区域间、自治系统外部等路由信息,并用于路由计算。
在前面几种固定格式LSA的基础上,扩展出了Opaque LSA,Opaque LSA由三类LSA构成,分别被定义为第9、10、11类LSA。
使用第10类Opaque LSA来发布链路的流量工程信息。
· OSPF-TE发布的流量工程信息
OSPF是一种基于连接设备间链路的路由协议,具有较强的扩展功能。OSPF使用新的LSA(opaque type 10)来发布链路的流量工程信息。目前RFC的草案已经出台,华为的设备遵循该RFC草案,保证了与其他厂商遵循此标准的设备互通。
OSPF TE发布的流量工程信息有:
· Link type (1 octet)
· Link ID (4 octets)
· Local interface IP address (4 octets)
· Remote interface IP address (4 octets)
· Traffic engineering metric (4 octets)
· Maximum bandwidth (4 octets)
· Maximum reservable bandwidth (4 octets)
· Unreserved bandwidth (32 octets)
· Administrative group (4 octets)
· TE Router ID (4 octets)
链路类型有MA,点到点,点到多点。
通过OSPF TE收集了网络的流量工程数据后,就能利用CSPF检查或计算出是否有满足要求的流量工程路径。
Opaque type 10 LSA是在OSPF区域内发布的,所以CSPF计算也是基于区域的,跨区域的LSP需要分段计算。
Opaque LSA扩展
OSPF定义了第1~5和7类的LSA来携带区域内、区域间、自治系统外部等路由信息,并用于路由计算。但是,这几种LSA的固定格式已经不能够适应不断出现的新业务类型的需求,因而扩展出了Opaque LSA来满足这些需求,其中包括流量工程。
Opaque LSA其实由三类LSA构成,分别被定义为第9、10、11类LSA,与其它几类LSA具有相同的头部结构,但是可以携带更加灵活的信息。其中,第9类LSA只能在某一个接口上扩散;第10类LSA只能在某一个区域内扩散;而第11类LSA则与第5类LSA具有相同的扩散范围,可以在除了STUB、NSSA之外的整个自治系统内部扩散。
图10-205 Opaque LSA的头部信息
其中,四字节的LSID字段被分为了两部分:“Opaque Type”和“Opaque ID”。最高位的一个字节称为“Opaque Type”,用来区分此LSA的应用类型;低位的三个字节称为“Opaque ID”,用来区分同一种应用类型的不同的LSA。
因此,同一种Opaque LSA可以有255种不同的应用,而每一种应用可以在相应的扩散范围内同时拥有16777216个不同的LSA。
例如,应用于Graceful Restart的LSA属于第9类LSA,其应用类型为“3”;而应用于流量工程扩展的则属于第10类LSA,其应用类型为“1”。
“Opaque Information”字段中是LSA携带的信息,信息格式可由不同的应用根据各自的需求来单独定义。
通常,采用一种非常具有扩展能力的TLV(Type/Length/Value)结构:
图10-206 TLV结构
其中,“Type”字段标志了这个结构中携带的信息类型,“Length”字段则标明了“Value”字段的有效字节长度,“Value”字段则是携带的信息,仍然可以是一个TLV结构;这种嵌套的TLV称为“子TLV(sub-TLV)”。
TE LSA扩展
应用于流量工程扩展的LSA称为“TE LSA”,属于第10类LSA,其应用类型为“1”。因此,TE LSA都具有“”形式的LSID,而其扩散范围被限制在一个区域内。
TE LSA使用TLV结构来携带需要的信息。目前只定义了两种TLV:
· Router Address TLV,唯一标示一个MPLS节点,在CSPF中相当于OSPF中的Router ID的作用;
· Link TLV,携带了一条使能了MPLS TE的链路的属性。
下面的表格标明了这两种TLV的主要区别。
表10-29 Router Address TLV和Link TLV主要区别
Type
Length
Value
总长
说明
1(Router Address TLV)
4
IP地址格式的TE Router ID
8
IP地址格式的TE Router ID
2(Link TLV)
可变
九种(或者八种)sub-TLV
可变
TE链路的信息,由九种(或者八种)sub-TLV组成
根据CSPF计算的需求,Link TLV中携带了如下的链路信息:
· 链路类型 Link type;
· 链路标识 Link ID;
· 本端IP地址 Local interface IP address;
· 对端IP地址 Remote interface IP address;
· 流量工程权值 Traffic engineering metric;
· 最大带宽 Maximum bandwidth;
· 最大预留带宽 Maximum reservable bandwidth;
· 未预留带宽 Unreserved bandwidth;
· 管理组属性 Administrative group。
表10-30 Link TLV携带的链路信息
Type
Length
Value
总长
说明
1、Link Type sub-TLV
1
Point-to-Point链路:1
8
Value字段有效长度为1,但是会填充3个字节。
-
-
MultiAccess链路:2
-
-
2、Link ID sub-TLV
4
Point-to-Point链路:邻居的OSPF Router ID
8
IP地址格式。
-
-
MultiAccess链路:DR路由器的接口IP地址
-
-
3、Local IP Address sub-TLV
4×n
n个本地接口的IP地址
4×n+4
IP地址格式。
4、Remote IP Address sub-TLV
4×n
Point-to-Point链路:n个对端接口的IP地址
4×n+4
对于Point-to-Point链路,使用对端IP地址。对于MultiAccess链路,则可以使用,也可以省略此sub-TLV。
-
-
MultiAccess链路:
-
-
5、Traffic Engineering Metric sub-TLV
4
Traffic Engineering Metric
8
在TE链路上配置的TE Metric。ULONG数据格式。
6、Maximum Bandwidth sub-TLV
4
Maximum Bandwidth
8
链路上的最大带宽。以四个字节存储的浮点数据格式。
7、Maximum Reservable Bandwidth sub-TLV
4
Maximum Reservable Bandwidth
8
链路上的最大可预留带宽。以四个字节存储的浮点数据格式。
8、Unreserved Bandwidth sub-TLV
32
Unreserved Bandwidth
36
链路上的8个优先级的可预留带宽。每个优先级都是以四个字节存储的浮点数据格式。
9、Administrative Group sub-TLV
4
Administrative Group
8
接口的管理组属性。以32个比特标示32个管理组。
这些信息都是以TLV格式存放在Link TLV的“Value”字段中的。
下图中给出了一个典型的TE LSA结构的例子。
图10-207 TE LSA结构
当将一条链路标记为一条MPLS TE链路时,若该链路也同时运行了OSPF协议、并且已经建立了OSPF邻居,那么OSPF的TE扩展功能就会根据这一条TE链路产生一条对应的TE LSA发布到区域中。如果区域中有其它的路由器也支持TE的扩展,那么在这些路由器之间就会产生一个TE链路组成的网络拓扑。当然,每一个发布TE LSA的路由器必须具有一个唯一的Router Address。
由TE LSA组成的链路状态数据库称为流量工程数据库(TEDB)。由CSPF根据TEDB中的信息计算出区域内到达其它路由器的最短路径;这条路径被MPLS TE用于建立LSP。
流量工程数据库
通过IGP扩展,在每个路由器上,维护网络的链路属性和拓扑属性,形成流量工程数据库TEDB。利用TEDB,可以计算出满足各种约束的路径。
路径的计算
本节介绍MPLS TE路径的计算过程,包括以下内容。
· 路径计算概述
· SPF的计算过程
· CSPF的计算过程
· CSPF与SPF的区别
路径计算概述
所谓路径的计算就是如何建立TE隧道,本文所讲的CSPF算法是路径计算的重要组成部分。
SPF的计算过程
SPF采用Dijkstra算法进行路径计算。简单说来,Dijkstra算法就是每台路由器都以自己为根节点,运行SPF算法创建分支节点;然后继续在此基础上为自己的“最短路经树”添加叶节点。
如果要查看SPF算法的详细细节,请参考RFC 2328。
CSPF的计算过程
约束SPF(CSPF)算法是从SPF算法衍生来的,CSPF有两个输入条件:
· 需要建立的LSP的带宽、着色、抢占/保持优先级、显式路径等约束条件,这些都在LSP的入口处配置;
· 流量工程数据库TEDB。
CSPF的计算过程如下:
· 针对LSP要求,先对TEDB中的链路进行剪切,把不满足TE属性要求的链路剪掉;
· 再采用SPF算法,寻找一条到LSP出口的最短路径。
CSPF与SPF的区别
CSPF是专门用于MPLS TE路径计算的算法,它与一般的SPF算法相差不大,但又有几点区别:
· CSPF只计算到达隧道终点的最短路径,而SPF需要计算到达所有节点的最短路经。
· CSPF不再使用简单的邻居间链路代价作为度量值,而使用带宽,链路属性和管理权重作为度量值。
· CSPF不存在负载分担,当两条路经有同样的属性时还有几种最高仲裁方法:最小路径带宽,路径的最小IGP度量和路径的最小跳数。
RSVP-TE信令建立路径的过程
本节介绍通过RSVP-TE信令建立路径的过程,包括以下内容。
· RSVP-TE信令概述
· 扩展RSVP如何建立LSP隧道
· Make-Before-Break
· 软状态刷新
RSVP-TE信令概述
RSVP简介
资源预留协议RSVP(Resource Reservation Protocol)是为Integrated Service模型而设计的,用于在一条路径的各节点上进行资源预留。RSVP工作在传输层,但不参与应用数据的传送,是一种网络上的控制协议,类似于ICMP。
简单来说,RSVP具有以下几个主要特点:
· 单向;
· 面向接收者,由接收者发起对资源预留的请求,并维护资源预留信息;
· 使用“软状态”(soft state)机制维护资源预留信息。
扩展RSVP的消息
RSVP经扩展后支持MPLS标签的分发,并在传送标签绑定消息的同时携带资源预留信息,这种扩展后的RSVP称为RSVP-TE,用于MPLS TE。
采用RSVP-TE建立的LSP具有资源预留功能,沿途的LSR可以为该LSP分配一定的资源,使在此LSP上传送的业务得到保证。
RSVP的扩展主要是在其Path消息和Resv消息中增加新的对象,新增对象除了可以携带标签绑定信息外,还可以携带对沿途LSR寻径时的限制信息,从而支持LSP约束路由的功能。
扩展的RSVP还支持快速重路由(Fast Reroute,FRR),即在一定条件下LSP需要改变时,可以在不中断用户业务的同时,将原来的业务流重新路由到新建立的LSP上。
扩展RSVP的消息中的对象
RSVP的扩展主要是在其Path消息和Resv消息中增加新的对象,新增对象除了可以携带标签绑定信息外,还可以携带对沿途LSR寻径时的限制信息,从而支持LSP约束路由的功能。
扩展RSVP如何建立LSP隧道
图2-11是使用扩展的RSVP建立LSP隧道的示意图。
图10-208 建立LSP隧道
使用RSVP-TE建立LSP隧道的过程可以简单描述为:
· Ingress产生Path消息,向Egress方向发送;
· Egress收到Path消息后,产生Resv消息,返回Ingress,同时,Resv消息在沿途的LSR上进行资源预留;
· 当Ingress收到Resv消息时,LSP建立成功。
采用RSVP-TE建立的LSP具有资源预留功能,沿途的LSR可以为该LSP分配一定的资源,使在此LSP上传送的业务得到保证。
RESV消息的处理过程
遵循标准的RSVP处理过程,LSR为会话产生一个RESV消息以分配标记和为LSP隧道建立转发状态。RESV消息的IP目的地址是前一跳节点的单点传送地址,从LSR的本地路径状态模块中获得。
Make-Before-Break
TE的需求之一是在一系列约束条件下对已经建立的隧道进行重路由以满足约束条件。例如,存在一条更优的路由或已建立的隧道资源不够时,需要重新建立路径切换流量。Make-before-break就是在原有路径被拆除前先建立新路径,在流量切换时尽可能不丢失数据、也不占用额外带宽的前提下改变MPLS TE隧道属性的机制。
新路径建立时,可能会与原路径在某些共同链路上竞争带宽资源,这会导致新路径竞争失败而无法建立。通过Make-before-break机制,新路径需要预留的带宽不被重复计算,即采用原路径使用的带宽。
与此类似的是增加隧道的带宽,只要共用链路的可预留带宽满足增量要求,新路径就可以建立成功。
图10-209 Make-before-break示意图
在图2-12中,假设需要建立一条R1到R4的路径,路径带宽为30Mbit/s,开始建立的路径是R1-R2-R3-R4。
现在希望将路径带宽增大为40Mbit/s,并通过负载较轻的R5进行数据转发。R3-R4上剩余的可预留带宽只有30Mbit/s,不能满足40Mbit/s的总量要求,但满足增量要求即10Mbit/s。这时可以通过Make-before-break机制来解决。
通过Make-before-break,新建立的路径R1-R5-R3-R4在R3-R4上进行资源预留时采用原路径使用的带宽,并追加增量带宽。新路径建立成功后,流量转到新路径上后拆除原路径。
软状态刷新
“软状态”是指在RSVP中,通过消息的定时刷新来维持节点上的资源预留状态。
资源预留状态包括由Path消息创建的路径状态(Path State)和由Resv消息创建的预留状态(Reservation State)。这两种状态分别由Path消息和Resv消息定时刷新。对于某个状态,如果连续没有收到刷新消息,这个状态将被删除。
CR-LDP信令建立路径的过程
本节介绍通过CR-LDP信令建立路径的过程,包括以下内容。
· CR-LDP如何建立LSP隧道
· CR-LDP概述
· CR-LDP如何建立LSP隧道
CR-LDP概述
基于约束路由的LDP机制(Constraint-Based Routing using LDP)是对普通LDP的扩展,在MPLS TE中用于从Ingress节点到Egress节点建立一条显式路径,并在此路径上进行资源的预留。
所谓CR-LDP,是指入节点在发起建立LSP时,在标签请求消息中对LSP路由附加一定的约束信息。
CR-LDP如何建立LSP隧道
CR-LDP通过TCP建立LSP,使用的是一种简单的“硬状态”机制。这种硬状态机制使得该技术对于网络节点数量的增加表现出很强的可扩展性。从CR-LDP的规程可以看出,它对标准LDP的改动很小,对消息与各种状态的处理十分简单,而且所需的消息数量很少,对于网络的运算资源的要求并不高。CR-LDP的管理,故障检测与分析过程都将是十分简单的。
MPLS TE的高级特性
本节介绍MPLS TE的一些高级特性,包括以下内容。
· 快速重路由
· 自动带宽调节
· 重优化
· 隧道备份
快速重路由
快速重路由概述
MPLS TE可以支持快速重新路由(FRR)。快速重新路由是一种对需要备份的LSP的每隔一跳建立局部备份路由进行备份的一种机制。由于快速重新路由在发现链路或路由器故障以后,是通过硬件直接进行切换的,可以做到从链路故障到快速重新路由切换成功的延时小于50ms,从而能够最大程度减少网络故障时数据的丢失。
FRR只是一种临时性保护措施,一旦被保护的LSP恢复正常或建立了新的LSP,流量就会切换回原LSP或新建立的LSP。
基本概念
下面介绍FRR中的几个概念:
· 主LSP:被保护的LSP。
· Bypass LSP:保护主LSP的LSP。
· PLR(Point of Local Repair):本地修复节点。Bypass LSP的入节点,必须在主LSP的路径上,可以是主LSP的入节点,但不能是主LSP的出节点。
· MP(Merge Point):汇聚点。Bypass LSP的出节点,必须在主LSP的路径上,并且不能是主LSP的入节点。
· 带宽保护:旁路隧道预留足够多的带宽为主隧道的流量提供保护。
保护方式
根据保护的对象不同,FRR分为两类:
· 链路保护:PLR和MP之间有直接链路连接,主LSP经过这条链路。当这条链路失效时,流量可以切换到Bypass LSP上。如图2-13所示,主LSP是R1→R2→R3→R4,Bypass LSP是R2→R6→R3。
图10-210 FRR链路保护示意图
· 节点保护:如图2-14所示,PLR和MP之间通过路由器R3连接,主LSP经过R3。当R3失效时,流量可以切换到Bypass LSP上。图中,主LSP是R1→R2→R3→R4→R5,Bypass LSP是R2→R6→R4,R3是被保护的路由器。
图10-211 FRR节点保护示意图
部署快速重路由
在配置Bypass LSP时,应该规划好它所保护的链路或节点,并确保该Bypass LSP不会经过它所保护的链路或节点,否则不能真正起到保护作用。
另外,由于Bypass隧道需要预先建立,快速重路由会占用额外的带宽。在网络带宽余量不多的情况下,只能对关键的链路或节点进行快速重路由保护。
自动带宽调节
CR-LSP隧道在建立时可以根据SLS/TCS分配一定的带宽。在基于以往该LSP隧道上的流量统计的基础上,自动带宽分配技术允许对该隧道占用的带宽进行调节,这种调节不会影响当前通过隧道的流量。
通过定时(比如5分钟)的采样,可以获得通过该隧道在一个采样周期的平均带宽。通过在一段时间(比如24小时)的多次采样后,根据采样值统计平均值计算新带宽,发起建立一条新的LSP隧道。建立成功后,将流量切换到新的LSP隧道上,同时拆除原来的LSP隧道;如果建立不成功,则流量继续走原来的LSP隧道,在下一个采样周期结束后再做下一次调节。
为了减少不必要的调节,可以配置调节阈值。只有本次的最大平均带宽与上次的最大平均带宽变化百分比达到一定的阈值,才发起调节。同时,还可以配置带宽的最小值和最大值,所调节的带宽必须在这个范围之内。
重优化
通常需要服务提供商利用一定的机制去优化CR-LSP,以优化网络资源使用。一种方法是人工配置,但是需要服务提供商进行测量和对CR-LSP微调。使用MPLS TE则能够动态优化CR-LSP,从而节省人力。
动态优化CR-LSP即定期重计算CR-LSP穿越的路由。如果重计算的路由优于当前路由,则创建一条新的CR-LSP,为之分配新路由,并将业务从旧的CR-LSP切换至新的CR-LSP,删除旧CR-LSP。
隧道备份
对于重要的LSP隧道,需要进行备份。作为流量保护的一个重要组成部分,在主LSP隧道失败后,能够将流量及时切换到备份隧道上。
隧道备份有两种方式:
· 热备份(Hot-Standby):热备份隧道LSP在主隧道LSP建成之后,发起建立。当主隧道LSP失败消息传到入口路由器后,流量会切换到热备份隧道LSP。当主隧道LSP恢复后,将流量切换回去。
· 普通备份(Ordinary):普通备份隧道LSP在主隧道LSP失败消息传到入口路由器后,发起建立。建立成功后,将流量切换到该隧道LSP上。 当主隧道LSP恢复后,将流量切换回去。
隧道备份常常和快速重路由结合使用。快速重路由可以及时响应链路故障,将流量在最短的时间内切换到旁路隧道上。链路故障信息通过信令带到入口节点,然后将流量切换到备份隧道上。
在TE隧道上承载LDP
本节介绍在TE隧道上承载LDP的相关知识,包含以下内容。
· 概述
· IGP Shortcut
概述
LDP over TE的背景
在现有网络中,并不是所有设备都支持MPLS TE,可能仅有网络的核心部分支持TE,而在边缘使用LDP。由此产生了LDP over TE的应用,即TE Tunnel作为整个LDP LSP的“一跳”。
目前,LDP被广泛应用在MPLS VPN中,为防止VPN流量在某些节点发生拥塞,可以配置LDP over TE特性。
LDP over TE的工作过程
简单来说,LDP over TE的工作过程可以描述为:
· 在RSVP TE域建立MPLS TE隧道后,在隧道入节点配置出节点为其LDP远端对等体,建立LDP Remote Session;
· 配置IGP Shortcut或Forwarding Adjacency,使路由以TE的隧道接口作为出接口。
· 这样,LDP可以通过LDP Remote Session发送Mapping消息,建立以TE隧道接口为出接口的LDP LSP。
IGP Shortcut
IGP Short-cut功能是基于单个路由器的,只有入口路由器才可以利用该LSP作为隧道,用在IGP计算中。配置转发邻居功能可以使CR-LSP隧道参与到其他路由器的路由计算中,该隧道被看作是其入口路由器和目的地址直接相连的一个逻辑接口。
为了使CR-LSP隧道能够参与其他路由器的路由计算,需要通过IGP协议通告该隧道的存在,并在链路状态数据库中维护这些信息。由于CR-LSP隧道是单向隧道,为了满足SPF的双向链路的需求,必须同时存在一个反向的隧道,即从隧道的目的地址至其入口路由器的隧道。
MPLS TE上的QoS
本节介绍在MPLS TE中的QoS的相关知识,包含以下内容。
· 概述
· MPLS TE与QoS
概述
VRP支持基于MPLS的流量工程和差分服务Diff-Serv特性,在保证网络高利用率的同时,可以根据不同数据流的优先级实现差别服务,从而为语音,视频数据流提供有带宽保证的低延时、低丢包率的服务。
由于全网实施流量工程的难度比较大,因此,在实际的组网方案中往往通过差分服务模型来实施QoS。
Diff-Serv的基本机制是在网络边缘,根据业务的服务质量要求将该业务映射到一定的业务类别中,利用IP分组中的DS(Differentiated Service)字段(由ToS域而来)唯一的标记该类业务;然后,骨干网络中的各节点根据该字段对各种业务采取预先设定的服务策略,保证相应的服务质量。
Diff-Serv对服务质量的分类和标签机制与MPLS的标签分配十分相似,事实上,基于MPLS的Diff-Serv就是通过将DS的分配与MPLS的标签分配过程结合来实现的。
MPLS TE与QoS
MPLS QoS和MPLS TE可以结合在一起使用。MPLS QoS有两种实现方式:L-LSP和E-LSP。
MPLS DS-TE
差分服务机制只能在单个节点上预留资源,无法在整个路径上保证服务质量。如果需要在差分服务网络上进行全路径的资源预留,将差分服务机制与MPLS TE结合起来比较方便。而在MPLS TE网络上支持EF、AF等不同等级的QoS的话,也需要结合差分服务的机制。MPLS DS-TE能够结合差分服务与流量工程的优点,能够对不同类的流进行不同带宽的带宽约束,并且根据该流的带宽约束动态调节流量。
MPLS TE允许CR-LSP隧道在指定的路径上预留带宽的资源。MPLS DS-TE对MPLS TE进行了扩展,可以提供不同类型的带宽资源的保证服务,满足更严格的带宽约束。
在MPLS DS-TE模型中,MPLS TE链路可以提供两种类型的带宽,分别为类型0和类型1,其中类型1的带宽是类型0的带宽的一部分。类型1可以对应差分服务中的EF服务,类型0对应差分服务中的AF服务。IGP协议(OSPF和IS-IS)通过扩展,可以携带链路的DS-TE信息在网络上传送,相应地TEDB中包含了链路的DS-TE信息。
CR-LSP隧道在建立时能够不仅能够指定所需要带宽,而且能够指定所需要的带宽类型。CSPF在计算路径时,不仅要考虑带宽约束,同时需要考虑带宽类型约束。RSVP-TE和CRLDP可以携带带宽类型和带宽信息,沿路按照指定的带宽类型和带宽预留资源。这样MPLS DS-TE可以提供严格的不同等级的带宽保证服务。
MPLS L-LSP
MPLS TE可以与L-LSP结合使用。它需要为入口LSR和出口LSR所支持的不同服务类型分别建立LSP,即一个CR-LSP隧道只能提供一种服务类型。
MPLS E-LSP
MPLS TE也可以与E-LSP结合使用。一个CR-LSP隧道可以指定多种服务类型的带宽。在建立CR-LSP隧道的过程中,各个节点会预留多种服务类型的带宽,这样的一个E-LSP隧道能够提供多种服务等级的QoS保证。在该E-LSP转发的报文,根据MPLS报头中EXP选择相应的QoS,实现带宽保证服务。
L-LSP与E-LSP的比较
MPLS为了支持差分服务,将LSP分为两类:
· L-LSP,每个L-LSP有各自预定的约束(OA),支持一个BA,通过EXP域来区分丢弃优先级。
· E-LSP,每个E-LSP共享某种预定的约束(OA),通过EXP域,每个E-LSP可以支持多达8个BA。
采用L-LSP方案,为了在入口LSR和出口LSR之间支持QoS,必须为每一种所支持的OA建立一条LSP。
采用E-LSP方案,在入口LSR和出口LSR之间只需要一条LSP便可以支持多达8种PHB。
表10-31 E-LSP 与 L-LSP的比较
E-LSP
L-LSP
通过Exp域决定PHB(丢弃优先级)
通过标签或Exp决定PHB
不需要附加的信令
需要用LDP或RSVP信令建立LSP
在ATM链路上不支持
支持ATM链路
每条LSP可以支持多达8个BA。
每条LSP只能支持多达1个BA。
L-LSP与E-LSP的使用选择
选择取决于需要的服务种类、丢弃优先级以及是否是ATM路由器。
· 基于链路层的考虑:在PPP与LAN上,可以根据需要,选用E-LSP、L-LSP或者两者结合起来使用。而在ATM网络上,由于EXP域不可见,只能够使用L-LSP。
· 基于服务类型多少的考虑:仅仅使用E-LSP,最多只能够支持8 个PHB。如果需要支持多于8个的PHB,必须使用L-LSP,或者E-LSP与L-LSP混合使用。
· 基于网络负荷的考虑:使用E-LSP,节省了LSP的数量、标签资源、信令的负荷;使用L-LSP,相对来说耗费资源。
一般目前网络上提供最多4种类型的服务,E-LSP就可以满足了。只有对于ATM路由器,或者有着大量的服务类型与丢弃优先级需求的QoS网络部署需求,才需要利用L-LSP。
MPLS TE的应用
负载分担
图10-212 MPLS TE隧道的负载分担
使用MPLS TE隧道可以很容易实现负载分担。如图2-15所示,MPLS TE隧道可以按照指定的显式路径建立,在R1和R5直接可以采用不同的显式路径建立多条隧道,并且各个隧道可以具有其他不同的属性。
为了报文可以映射到不同的隧道上,可以采用静态路由或策略路由的方法,在R1上,用户可以为到达R5的报文进行分类,不同类的报文流映射到不同的隧道上,从而实现报文的负载分担。
VoIP
采用MPLS TE隧道可以开展VoIP业务。语音业务需要较小的延迟,可以采用差分服务模型中的EF服务。
图10-213 MPLS TE隧道用于VoIP业务
如图2-16所示,采用MPLS DS-TE,隧道可以在网络中的两个方向上建立,并采用类型1的带宽预留。R6和R7的通话双方可以在网络边界(R1和R5)将报文映射到MPLS TE隧道中,在整个网络内实施类型1的带宽保证,可以满足语音业务的要求。
VLL
因为MPLS TE隧道可以提供多种特性,所以可以使用MPLS TE隧道开展VLL业务。
图10-214 MPLS TE隧道用于VLL业务
如图2-17所示,运营商可以根据用户的需要签订服务等级协议,在网络中建立具有相应服务类型和带宽的隧道,该隧道可以被用户专用,提供用户所需要的服务。另外该隧道还可以根据用户的需要开展其他增值服务,例如采用快速重路由和备份隧道提高业务传送的可靠性,自动重优化和自动带宽调节提高隧道的自适应能力,合理配置网络资源。
资源隔离VPN
VPN业务可以采用不同类型的隧道,如普通的LSP隧道、GRE隧道。采用MPLS TE隧道承载VPN业务具有很多方面的优势,使得VPN业务不仅有良好的安全性,而且有可靠的QoS保证。此外运营商还可以根据VPN用户的不同服务要求定制不同特性的MPLS TE隧道,最大限度地满足用户的要求。在MPLS VPN中,多个VPN复用PE-PE间的LSP,采用TE技术建立这样的LSP,其带宽被多个VPN共享。但各VPN竞争资源时必将导致QoS的下降,如一个VPN遭受攻击,就会影响其它VPN的正常通信。为此,资源隔离VPN技术采用由TE隧道根据VPN对带宽的需求进行调整的方法实现VPN QoS保证。
图2-18是MPLS TE隧道用于VPN的例子,通过配置资源隔离VPN特性,VPN1和VPN2的带宽都可以得到保证。
图10-215 MPLS TE隧道用于VPN业务
MPLS TE术语
· CSPF
CSPF算法是最短路径优先算法的变种,它首先在当前拓扑结构中删除不满足条件的节点和链路,然后再通过SPF算法来计算。
· LSP隧道
对于一条LSP,一旦在Ingress节点为报文分配了标签,流量的转发就完全由标签决定,流量对LSP的中间节点透明,从这个意义上来说,一条LSP可以看作是一条LSP隧道。
· MPLS TE隧道
在部署重路由(reroute)或需要将流量通过多条路径传输时,可能需要用到多条LSP隧道。在TE中,这样的一组LSP隧道称为TE隧道。这类LSP隧道由两个标识符标识:一个是SENDER对象携带的Tunnel ID,用于唯一定义TE隧道;另一个是SENDER_TEMPLATE对象或FILTER_SPEC对象携带的LSP ID。
· 主干流
主干流(Traffic Trunk)是属于同一服务类型的流量的聚合,并使用同一条LSP。
· 路径锁定
路径锁定(Pinning)属性要求在网络拓扑变化时,CR-LSP能够保持初始选定的路径,而不会按照新的可能的路径重新建立。该属性的目的是保证业务流量的连续性,并能够提供一定的安全保证。
· 显式路径
CR-LSP能够按照指定的路径建立,该路径称为显式路径。显式路径分为严格显式路径和松散显式路径:
· 所谓的严格显示路径,就是下一跳与前一跳必须直接相连。通过严格显示路径,可以最精确地控制LSP所经过的路径。
· 松散显式路径可以指定路径上必须经过那些节点,但是该节点和前一跳之间可以存在其他路由器。
· 链路颜色
通过赋予链路以颜色属性,可以帮助选择链路。链路能够支持多达32种颜色。在指定CR-LSP路径时,可以增加颜色的约束,可以要求所经历的路径是某种颜色,也可以要求所经历的路径不是某种颜色。
CSPF可以根据TEDB中的链路信息和CR-LSP的颜色约束计算出符合条件的路径。RSVP-TE和CR-LDP也可以携带颜色属性,沿路径选择满足条件的链路。
· 带宽保证
带宽保证是MPLS TE的基本属性,在建立CR-LSP时,可以指定其带宽,CSPF可以根据带宽要求确定满足该特性的路径。RSVP-TE和CRLDP协议都可以携带带宽信息,在沿路径的各个节点实施带宽预留。CR-LSP建立成功后,转发能够为对应的业务流提供所要求的带宽保证。
· 优先级与抢占
优先级属性定义CR-LSP的相对重要性。CR-LSP隧道有一个建立优先级和一个保持优先级。优先级的范围从0到7,7为最低优先权。
当多条CR-LSP需要建立时,建立优先级高的LSP隧道优先占有资源、优先建立。当带宽等资源不够时,保持优先级低的、已建成的LSP隧道的带宽资源可能被一个建立优先级高的并且资源不够的LSP隧道抢占。
· 快速重路由
快速重路由(Fast ReRoute)是MPLS TE中实现网络局部保护的技术。FRR的切换速度可以达到50毫秒,能够最大程度减少网络故障时数据的丢失。
· 主LSP
在快速重路由中,被保护的LSP称之为主LSP。
· 备份LSP
在快速重路由中,保护主LSP的LSP称之为备份LSP。
· 本地修复节点PLR
本地修复节点是Bypass LSP的入节点,必须在主LSP的路径上,可以是主LSP的入节点,但不能是主LSP的出节点。
· 汇聚点MP
汇聚点(Merge Point),是Bypass LSP的出节点。汇聚点必须在主LSP的路径上,并且不能是主LSP的入节点。
· 自动带宽调节
流量工程要求在环境发生变化时能够动态分配资源,并且不中断业务。
这通常是由于:客户最初不能确定有多少业务需要通过服务提供商的网络传输,他们更愿意为已经使用的带宽付费。因此,服务提供商需要具备这样一种功能:
· 能在最初时为客户请求带宽,建立流量工程隧道CR-LSP;
· 当客户业务变化时,自动调整分配给这些CR-LSP的带宽。
MPLS TE的自动带宽调整特性可以实现此功能,这一基于测量的特性动态调整流量工程隧道分配的带宽。
· 重优化
通常需要服务提供商利用一定的机制去优化CR-LSP,以优化网络资源使用。一种方法是人工配置,但是需要服务提供商进行测量和对CR-LSP微调。使用MPLS TE则能够动态优化CR-LSP,从而节省人力。
动态优化CR-LSP即定期重计算CR-LSP穿越的路由。如果重计算的路由优于当前路由,则创建一条新的CR-LSP,为之分配新路由,并将业务从旧的CR-LSP切换至新的CR-LSP,删除旧CR-LSP。
参考资料清单
如果您想了解更多关于MPLS TE的信息,请参考以下文档。
文档编号
描述
RFC 2205
Resource ReSerVation Protocol
RFC 2209
Resource ReSerVation Protocol (RSVP) -- Version 1 Message Processing Rules
RFC 2370
The OSPF Opaque LSA Option
RFC 2547
BGP/MPLS VPNs
RFC 2702
Requirements for Traffic Engineering Over MPLS
RFC 2747
RSVP Cryptographic Authentication
RFC 2961
RSVP Refresh Overhead Reduction Extensions
RFC 3031
Multiprotocol Label Switching Architecture
RFC 3032
MPLS Label Stack Encoding
RFC 3034
Use of Label Switching on Frame Relay Networks Specification
RFC 3035
MPLS using LDP and ATM VC Switching
RFC 3035
MPLS using LDP and ATM VC Switching
RFC 3036
LDP Specification
RFC 3209
RSVP-TE: Extensions to RSVP for LSP Tunnels
RFC 3210
Applicability Statement for Extensions to RSVP for LSP-Tunnels
RFC 3630
Traffic Engineering (TE) Extensions to OSPF Version 2
draft-ietf-mpls-rsvp-lsp-fastreroute-02
Fast Reroute Extensions t o RSVP-TE for LSP Tunnels
draft-ietf-mpls-nodeid-subobject-01
Definition of an RRO node-id subobject
draft-ietf-tewg-diff-te-proto-02
Protocol extensions for support of Diff-Serv-aware MPLS Traffic Engineering
draft-ietf-mpls-diff-te-reqts-00
Requirements for support of Diff-Serv-aware MPLS Traffic Engineering
draft-ietf-mpls-diff-ext-09
MPLS Support of Differentiated Services
11 MPLS OAM
关于本章
本章描述内容如下表所示。
标题
内容
REF _Ref148522252 \h
MPLS OAM简介
介绍MPLS OAM的产生背景、主要特点和基本概念
REF _Ref153343223 \h
MPLS OAM报文格式
介绍了各种MPLS OAM报文的格式和作用
REF _Ref148522256 \h
MPLS OAM检测功能
介绍了MPLS OAM检测机制的实现
REF _Ref148522258 \h
MPLS OAM保护倒换
介绍了MPLS OAM提供的保护倒换功能
REF _Ref148522260 \h
MPLS OAM在VRP中的实现
介绍了MPLS OAM在VRP中的实现机制以及VRP提供的扩展功能
REF _Ref148522262 \h
MPLS OAM应用
介绍了MPLS OAM的主要应用
REF _Ref148522266 \h
参考资料清单
介绍了读者可以参考的资料清单
MPLS OAM简介
OAM
OAM(Operation Administration & Maintenance)可以简化网络操作、随时检验网络性能、降低网络运行成本。
部署有效的OAM机制对于公众电信网的运行非常重要,尤其是对于需要提供服务质量保障,即达到一定的性能和可用度要求的网络。
MPLS OAM
为什么需要MPLS OAM
MPLS作为可扩展的下一代网络的关键承载技术,提供具有QoS保障的多业务能力,并且,MPLS引入了一个新的网络层次,会存在由这个新的网络层引起的故障。因此,MPLS网络需要具备OAM能力。
承载MPLS的服务层(server-layer),例如SONET/SDH,以及利用MPLS的客户层(client-layer),例如IP、FR、ATM,都有各自的OAM机制。但MPLS网络层本身的故障不能完全通过其他层的OAM机制解决。并且,网络技术的分层要求,也需要MPLS具有自己独立的OAM机制,从而减少各层之间的依赖关系。
图11-216 MPLS引入的网络层次位置示意
本章介绍的MPLS OAM,如果没有特别说明,是指MPLS用户平面的OAM。
MPLS OAM应满足的要求
MPLS OAM应能够满足下述两方面的要求:
· 检测不同用户平面缺陷
MPLS采用标签栈技术,理论上可以无限制嵌套标签,形成多个用户平面(user plane,在IETF文档中,用户平面也称为数据平面data plane)。MPLS OAM应能够检测不同用户平面的缺陷。
· 与控制平面的OAM分离
MPLS用户平面的OAM需要与MPLS控制平面的OAM相互独立,这是因为:
· 控制平面传送的是信令,用户平面传送的是用户数据,二者使用的路径可能不同,并且,在设备上的处理机制也不同。
· 对于静态建立的LSP,不存在MPLS控制平面。
· MPLS控制平面故障时,可能并不影响用户平面的流量转发。
MPLS OAM需要实现的功能
MPLS OAM在提供检测工具的同时,还应具备完善的保护倒换机制,能够在MPLS层发生缺陷后50ms内完成倒换,使用户数据的损失减小到最低。
MPLS OAM需要实现以下功能:
· 提供按需查询和连续的检测,随时了解被监控的LSP是否存在缺陷。
· 发生缺陷后,能够探测到缺陷、分析、定位,通知网管系统,并根据缺陷的类型采取适当的行动。
· 在链路出现缺陷或故障时迅速进行保护倒换,以便能根据与客户签订的SLA(Service Level Agreements)提供业务。并通过缩短业务中断的时间,减少维护时间和维护资源。
· 在LSP迭代应用中,适当的处理可以抑制告警风暴。
· 具备良好的兼容性,对于不支持OAM功能的标签交换节点LSN(Label Switching Node),丢弃OAM报文,但不影响用户流量,也不引发其他无关的动作。
· 能够测量LSP的可用度和网络性能,为用户计费提供依据。
MPLS OAM主要对ER-LSP(explicit routed LSP)进行检测,目前是指TE隧道。
MPLS OAM基本概念
· 后向(backward direction)
与前向相对。
· LSP源宿连接标识(Trail Termination Source Identifier)
由LSP的Ingress LSR ID和LSP ID构成,用于在网络中唯一标识一条LSP。
· 前向(forward direction)
被检测LSP上流量的方向。
· Path Merge LSR
MPLS OAM保护倒换功能中,接收保护路径流量的LSR。如果该LSR不是流量的目的地时,它将流量合并到工作路径;如果该LSR是流量的目的地,它将流量交给上层协议处理。
· Path Switch LSR
MPLS OAM保护倒换功能中,在主LSP和备LSP之间交换或复制流量的LSR。
· 用户平面(user-plane)
流量经过的一系列转发组件的集合。OAM CV或FFD报文周期性地插入到转发的流量中,监测转发组件的工作状态。在IETF的文档中,用户平面被称为数据平面(data-plane)。
· 源端(source point)
前向LSP的Ingress LSR,也是反向LSP的Egress LSR。
· 宿端(sink point)
前向LSP的Egress LSR,也是反向LSP的Ingress LSR。
MPLS OAM报文格式
MPLS OAM使用的报文分为三类:
· 连通性检测:包括两种类型的探测报文
· CV(Connectivity Verification)
· FFD(Fast Failure Detection)
· 前向缺陷通告FDI(Forward Defect Indication)
· 后向缺陷通告BDI(Backward Defect Indication)
MPLS OAM通过在被检测的LSP上周期性发送检测报文CV或FFD实现。
公共属性
OAM报文头
MPLS OAM报文的标签栈深度比它所监控的LSP大1,通过这种方式,OAM报文能够与用户平面的普通流量形成不同的层次。
图11-217 OAM报文头格式
与普通MPLS报文相比,OAM报文的报文头有以下特点:
· Label字段取值14,表示OAM报文。
· TTL字段取值为1,以此来保证OAM报文不被传递到其所监控的LSP宿端之外的LSR。
OAM报文对于Transit LSR和倒数第二跳LSR(penultimate LSR)是透明的。
TTSI
LSP源宿连接标识TTSI(Trail Termination Source Identifier)用于在网络中唯一标识一条LSP。
图11-218 TTSI格式
如图3-3所示,TTSI长度为20字节,由16字节的Ingress LSR ID和4字节的LSP ID组成。
图3-3是Ingress节点采用IPv4地址时的LSR ID结构,如果Ingress节点采用IPv6地址,则LSR ID完全由IPv6地址构成。
在4字节的LSP ID中,前两个字节全部填充为0,后两个字节是与LSP绑定的Tunnel ID。
BIP16
MPLS OAM报文使用2字节的比特交叉奇偶校验BIP16(Bit Interleaved Parity)检测报文错误。如果接收方发现报文的BIP16不正确,将丢弃此OAM报文。
当持续发生由于BIP16错误导致报文被丢弃时,设备应该向网管系统通报。对于CV报文和FFD报文,持续的BIP16错误还可能引起dLOCV。关于dLOCV的含义参见表3-1。
BIP基于OAM载荷的全部字段计算,包括Function Type字段和BIP字段本身,在初始计算时,BIP字段全部置为0。
CV报文
CV报文在LSP的源端LSR以每秒1个的速率产生,由LSP的宿端LSR接收。由于产生的速率较低且不可调整,通常用于普通的LSP可用度检测。
CV报文可用于检测和诊断所有类型的LSP连通性缺陷,包括MPLS层以及MPLS层之下的缺陷。
CV报文的格式如图3-4所示,Function Type为0x01。
图11-219 OAM CV报文格式
FFD报文
FFD提供对P2P类型的LSP的检测机制。在LSP源端,FFD探测报文的产生速率可以调整,通常应用FFD来获得更快的检测速度。
OAM FFD报文同CV报文一样,也可以检测和诊断所有类型的LSP连通性缺陷,包括MPLS层以及MPLS层之下的缺陷。
FFD报文的格式如图3-5,Function Type为0x07。与CV报文相比,FFD报文中增加了一个频率(Frequency)字段,能够支持多种发送间隔。
图11-220 OAM FFD报文格式
FDI报文
前向缺陷通告FDI报文是对CV或FFD检测到的缺陷进行的响应,由检测到缺陷的LSR产生,其主要目的是抑制受影响的客户LSP层产生告警。
对于底层LSP:
· LSP的源端使用FDI报文将缺陷通告给LSP宿端。
· 启用自动协议时,LSP源端使用FDI报文通知宿端停止OAM检测。
FDI报文格式如图3-6,Function Type为0x02,包含缺陷类型(Defect type)和缺陷位置(Defect location)字段。
图11-221 OAM FDI报文格式
第一个检测到缺陷的节点向下游发送FDI报文。
FDI报文中的TTSI字段是可选的,在应用倒数第二跳弹出PHP(Penultimate Hop Popping)的情况下使用,其他情况下不使用TTSI,全部填0。
缺陷位置DL(Defect location)字段中包含检测到缺陷的网络AS号。
图11-222 DL格式
FDI报文将逐层上报,当上层LSP通过自己的CV或FFD检测到缺陷时,也会收到下层LSP上报的FDI,从而可以判断出缺陷产生在底层,避免误判。
BDI报文
下游LSP的宿端LSR检测到缺陷后,使用后向缺陷通告BDI报文,沿反向通道将缺陷告知上游的源端LSR。
OAM BDI报文的格式如图3-8,Function Type为0x03,包含缺陷类型(Defect type)和缺陷位置(Defect location)字段。
图11-223 OAM BDI报文格式
BDI报文中的TTSI字段是可选的,在使用共享反向通道或带外反向通道的情况下,需要使用TTSI。对于双向LSP,此字段可以填0。如果使用TTSI,该字段值是BDI对应的前向LSP的TTSI。
如果接收到底层LSP上报的FDI报文,BDI的缺陷类型DT和缺陷位置DL字段将根据FDI的相应字段生成。
MPLS OAM检测功能
缺陷检测
基本检测过程
MPLS OAM通过在被检测的LSP上周期性发送检测报文CV或FFD实现。
· 对于宿端CV检测,宿端设定宽度为3秒的滑动窗口(sliding window),根据在滑动窗口内接收到的CV报文判断LSP状态。
· 对于宿端FFD检测,宿端设定宽度为3倍FFD发送周期的滑动窗口,根据在滑动窗口内接收到的FFD报文判断LSP状态。
CV检测与FFD检测
FFD与CV这两种类型的探测报文互斥,即,对于同一条LSP,同一个时间只能应用一种探测报文。
实际应用时,使用FFD检测的应该是最底层的LSP,否则可能导致对缺陷位置的判断错误。
以图3-9为例,假设存在两条具有迭代关系的LSP,对底层的Level1 LSP采用CV检测,对Level2 LSP采用FFD检测。
图11-224 FFD与CV检测速度示意图
假设Level1 LSP在t1点产生了一个缺陷,最坏的情况下,经过3秒才会向上一层的Level2 LSP发送FDI上报缺陷。由于FFD的发送间隔远比CV报文短,Level2 LSP在t2点就会认为本LSP产生了缺陷,但实际上缺陷是Level1 LSP产生的。这就导致对缺陷位置的错误判断。
另外,在最底层的LSP应用FFD检测有助于抑制潜在的告警风暴。
缺陷类型
对于OAM FDI/BDI报文中的缺陷类型,定义了如下9种取值:
· 4种MPLS用户层缺陷:dLOCV、dTTSI_Mismatch、dTTSI_Mismerge和dExcess。
· 3种非MPLS用户层缺陷:dServer、dPeerMe、dUnknown。
· 2种保留的缺陷类型。
表3-1对这些缺陷类型进行了具体介绍。
表11-32 OAM FDI/BDI报文中的缺陷类型(Defect type)
缺陷类型
取值
含义及产生条件
dSever
0x 0101
MPLS网络层之下的任何服务层产生的缺陷。这类缺陷是由服务层上报给MPLS OAM处理的。
dPeerMe
0x 0102
MPLS子网络之外的对等维护实体产生的缺陷。这类缺陷是其他互联网络层报给MPLS OAM处理的。
dLOCV
0x 0201
如果没有从服务层(下层)LSP收到FDI,并且没有收到携带非预期TTSI的CV或FFD报文:
· 对于采用CV检测的LSP,在连续的3秒内没有收到预期的CV报文。
· 对于采用FFD检测的LSP,在连续的3个时间周期内没有收到预期的FFD报文(时间周期是指FFD报文的发送间隔)。
说明
如果从服务层收到FDI,缺陷类型设置为dServer;如果由网络互通功能收到FDI,缺陷类型设置为dPeerMe。这两种情况本LSP都不产生新的缺陷。
dTTSI_Mismatch
0x 0202
接收到的CV或FFD报文携带非预期TTSI或没有携带预期TTSI。
· 对于采用CV检测的LSP,在连续的3秒内收到携带非预期TTSI的CV或FFD报文,同时没有收到携带预期TTSI的CV报文。
· 对于采用FFD检测的LSP,在连续的3个时间周期内,收到携带非预期TTSI的CV或FFD报文,同时没有收到携带预期TTSI的FFD报文。
说明
如果同时满足dTTSI_Mismatch和dLOCV的产生条件,将上报dTTSI_mismatch缺陷,即,dTTSI_Mismatch缺陷的优先级高于dLOCV。
dTTSI_Mismerge
0x 0203
· 对于采用CV检测的LSP,在连续的3秒内既收到携带非预期TTSI的CV或FFD报文,也收到携带预期TTSI的CV报文。
· 对于采用FFD检测的LSP,在连续的3个时间周期内,既收到携带非预期TTSI的CV或FFD报文,也收到携带预期TTSI的FFD报文。
dExcess
0x 0204
· 对于采用CV检测的LSP,在连续的3秒内,收到(5个携带预期TTSI的CV报文。
· 对于采用FFD检测的LSP,在连续的3个时间周期内,收到(5个携带预期TTSI的FFD报文。
dUnknown
0x 02FF
MPLS节点内部产生、影响用户平面流量的缺陷。这类缺陷是上报给MPLS OAM处理的。
None
0x 0000
保留
None
0x FFFF
保留
对于MPLS用户层缺陷,其优先级按照由高到低的顺序排列为:dTTSI_Mismatch、dTTSI_Mismerge、dLOCV、dExcess。
当存在多层LSP时,由于OAM报文不在不同层次的LSP之间同步,可能会发生客户层(上层)LSP先于它的服务层(下层)LSP检测到缺陷的情况。为避免由于这种情况引发不恰当的处理,建议在检测到缺陷后,至少等待2秒再发出告警信号。
退出MPLS用户层缺陷状态的条件如下:
· 对于采用CV检测的LSP,在连续的3秒内:
· 收到携带预期TTSI的CV报文数为n,2 ( n ( 4,并且
· 没有收到携带非预期TTSI的CV或FFD报文。
· 对于采用FFD检测的LSP,在连续的3个时间周期内:
· 收到携带预期TTSI的FFD报文数为m,2 ( m ( 4,并且
· 没有收到携带非预期TTSI的CV或FFD报文。
检测过程
MPLS OAM是基于单条LSP的连通性检测,源端发送探测报文,宿端进行检测。
结合图3-10,介绍MPLPS OAM的检测过程。
图11-225 MPLS OAM检测过程示意图
2. 源端节点周期性发送OAM连通性检测报文(CV或FFD),报文沿被检测的LSP到达宿端。
OAM报文在Ingress节点被封装为MPLS报文,外层标签是LSP在该节点的出标签,内层标签值为14,表示OAM报文,其余部分为OAM净荷。
3. 宿端检查接收到的报文的类型、频率、TTSI等信息,判断报文是否正确,并统计检测周期内收到的报文情况,从而对LSP的连通性进行监控。
4. 宿端检测到缺陷后,通过反向通道,将携带缺陷信息的BDI报文发给源端,使源端及时获知缺陷状态。如果正确配置了保护组,还会触发相应的保护倒换。
反向通道
BDI报文使用反向通道传送,反向通道可以是与被检测LSP具有相反入节点和出节点的LSP,也可以是连接被检测LSP的入节点和出节点的非MPLS路径。
具体来说,承载BDI报文的反向通道包括以下三种类型:
· 专用反向LSP:每条前向LSP有自己的反向LSP。这种方法相对稳定,但可能造成资源浪费。
· 共享反向LSP:多条前向LSP共用一条反向LSP,通过BDI携带的TTSI区分前向LSP。这种方法减少了资源浪费,但当多条前向LSP同时出现缺陷时,反向LSP可能发生拥塞。
· 非MPLS返回路径。这种方法存在安全隐患。例如,恶意用户可以制造一条BDI报文发给被检测LSP的源端,造成不必要的中断。
只支持前两种类型,即,只能使用LSP作为反向通道。
MPLS OAM保护倒换
MPLS OAM机制需要实现两大功能:缺陷检测、保护倒换。本节介绍MPLS OAM的保护倒换机制。
保护倒换与重路由
当网络发生故障时,目前主要有两类技术用于恢复被中断的业务:保护倒换PS(Protection Switching)、重路由(Rerouting)。
· 保护倒换:在故障发生前,对指定的被保护LSP预先计算路由并分配资源。可以实现快速的流量切换。
· 重路由:通常不预先为被保护的LSP计算路由和分配资源,需要路由协议和信令协议配合。当发生故障时,通过网络或用户下发的重连请求获得所需要的资源。流量切换速度慢于保护倒换。
保护倒换的工作模式
MPLS OAM保护倒换提供对整条LSP的保护,而不是对其中一段或某个节点的保护。
对选定的主LSP,备LSP的路由和带宽都是预留的。因此,保护倒换是一种完全指配的保护机制。为了保证在主LSP所有可能的失效情况下,保护都会有效实施,备LSP需要采用一条与主LSP完全不同的物理通道,
MPLS OAM保护倒换共有四种工作模式,下面分别进行介绍。
实现的是MPLS OAM 1:1保护模式。
1:1保护模式
在1:1模式下,每条主LSP都有自己的备LSP。
· 正常情况下,数据通过主LSP传输,备LSP上没有主LSP的流量。
图11-226 正常情况下的1:1保护模式
· 当宿端通过检测机制发现主LSP故障时,宿端先切换到备LSP上,再通过反向通道向源端发送BDI报文,通知Ingress将主LSP的流量旁路到备LSP上,从而完成1:1模式的保护切换。
图11-227 主LSP故障时的1:1保护模式
1:1保护模式不能处理dTTSI_Mismerge类型的缺陷。
1+1保护模式
在1+1模式下,每条主LSP都有自己的备LSP。
· 正常情况下,源端向两条LSP发送相同的流量,但宿端只接收主LSP传送的流量。
图11-228 正常情况下的1+1保护模式
· 当宿端通过检测机制发现主LSP故障时,停止从主LSP接收数据包,转而从备LSP接收。
图11-229 主LSP故障时的1+1保护模式
共享保护模式(Shared mesh)
共享保护模式主要是为了在采用网状拓扑(mesh topology)的网络中节省带宽。
在共享保护模式下,使用一条LSP作为多条主LSP的备LSP,当任何一条主LSP故障时,都将数据倒换到共享的备LSP上。这种方式的触发机制和倒换机制与1:1模式类似。
包级保护模式(Packet 1+1)
这种倒换类似于1+1倒换,区别在于,在包级保护模式下,源端发送报文时增加顺序标签,将带有顺序标签的报文通过主备两条LSP发送到宿端。对于具有相同顺序标签的报文,宿端选择先到达的接收,后到达的被丢弃。
这种方法比较复杂,控制起来也比较困难。
MPLS OAM在VRP中的实现
模块位置
图3-15和图3-16分别显示了MPLS OAM和PS在VRP的集中式和分布式这两种系统结构中的位置及与其他子系统的关系。
图11-230 OAM和PS模块在集中式系统中的位置示意图
图11-231 OAM和PS模块在分布式系统中的位置示意图
与OAM模块有交互的子系统是MPLS模块:
· MPLS模块通知OAM模块LSP的UP/DOWN状态;
· MPLS模块提供LSP转发信息,OAM模块可以查询。
与PS/PS Agent模块交互的子系统包括OAM模块和MPLS模块:
· MPLS模块创建Tunnel保护关系,由PS Agent将保护组信息通知给PS模块;
· MPLS模块通知PS模块LSP的UP/DOWN状态变化或被删除的事件。
OAM自动协议
ITU-T OAM标准中的问题
ITU-T Recommendation 、中存在一些不完善的地方,例如:
· 如果LSP宿端晚于源端开启OAM功能,或宿端开启而源端不开启OAM功能,将产生连通性检测丢失dLOCV(Loss of Connectivity Verification defect)。
· 停止OAM功能时存在同样问题。当源端停止MPLS OAM功能时,协议并未设计通告机制,即宿端仍按固定的时长进行缺陷监测,将产生dLOCV。
· 当需要修改检测报文的类型以及刷新频率时,必须先分别在源端和宿端停止OAM功能,使用不便。
· 源端和宿端的OAM参数需要分别配置,这容易导致人为的检测报文类型及发送频率配置不一致,造成OAM检测功能失效。
OAM自动协议
VRP实现OAM自动协议,解决ITU-T OAM标准中存在的问题。
OAM自动协议在宿端配置,提供首包触发和动态启停功能。
· 首包触发功能:
· 如果宿端不提供OAM连通性检测功能及参数(检测报文类型及发送频率),当宿端接收到第一个CV/FFD报文后,自动记录报文类型和发送频率,并以此时作为连通性检测的起点。
· 如果宿端在配置OAM功能后的既定时间内,没有接收到CV/FFD报文,则产生BDI报文,并通知网管。
· 动态启停功能:
当源端停止OAM功能,或当源端需要修改检测报文的类型及刷新频率时,发送扩展的FDI报文,通知宿端停止OAM功能。
MPLS OAM应用
上报网络故障
虽然MPLS OAM提供了检测和保护机制,但故障定位并不是MPLS OAM所关注的。
MPLS OAM主要是提供手段,帮助网络管理员处理故障。例如,当检测到LSP缺陷并将用户数据旁路到备LSP上后,MPLS OAM应提供告警,由管理员来选择解决问题的方法。
MPLS OAM检测到LSP故障后,向网管上报告警,包含详细的错误信息,如错误的TTSI、连接丢失时间、缺陷类型等。
分层OAM
不同网络层的OAM功能
不同网络层次的OAM关注点存在差异。对于物理层和数据链路层,连通性是其最主要的关注点。MPLS层则更关注于转发系统内部的缺陷,包括转发表老化引起的连接中断等。
虽然不同网络层的OAM在功能上存在一定程度的重叠,例如大部分OAM功能都包括连通性检测,但不同层次OAM功能的检测对象、检测方法以及检测粒度都不同,不能相互替代。
分层保护
分层保护是提高整个系统可靠性的一种策略,作为一种纠正连接缺陷的措施,在不同网络层次的连接中实施不同的保护策略。
例如链路层的RPR倒换和MPLS层的保护倒换,它们都是以本层的检测缺陷结果作为输入,保证本层业务在连接发生缺陷时将损失降到最低,并将缺陷终结在本层,避免向上层渗透。
分层保护的前提是网络每一层都有OAM和保护倒换机制,并在发生缺陷后能够成功完成倒换。但在实际的系统中,并不是每一层都有全套的OAM和保护倒换,并且,完全实施分层保护对设备的性能要求很高,对网络带宽占用率也会增大。
所以,通常采用上下层配合:
· 底层主要提供快速检测能力,存在保护倒换机制。
· 上层主要实现保护倒换能力,检测工具可选。
这样,可以对上层应用指定保护能力。
例如,在PW模型中,对Tunnel实施MPLS OAM,由PW层提供保护倒换能力。Tunnel检测到缺陷后,通知上层应用,即PW,触发PW完成倒换。
由于MPLS OAM使用自己的协议机制,不依赖于MPLS控制层面,使得MPLS OAM的实现可以更贴近底层,从而使快速检测缺陷、实现电信级倒换成为可能。
全程LSP检测
快速重路由FRR(Fast ReRoute)虽然也为MPLS层提供了检测和保护机制,但其作用域是在一段链路或某个节点,而MPLS OAM的作用域是一条LSP的全程链路及节点,检测范围更广。
参考资料清单
如果您想了解更多关于MPLS OAM的信息,请参考以下文档。
文档编号
描述
ITU-T Recommendation
Requirements for Operation & Maintenance functionality for MPLS networks
ITU-T Recommendation
Operation & Maintenance mechanism for MPLS networks
ITU-T Recommendation
Protection switching for MPLS networks
RFC3429
Assignment of the 'OAM Alert Label' for Multiprotocol Label Switching Architecture (MPLS) Operation and Maintenance (OAM) Functions
01
华为技术有限公司
1
vi
华为技术有限公司
文档版本 01(2006-12-08)
文档版本 01 (2006-12-08)
华为技术有限公司
i
NPE2
NPE3
NPE1
NPE4
VPN 2
Site 2
VPN 1
Site 2
VPN 1
Site 1
VPN 2
Site 1
UPE2
UPE1
CE4
CE3
CE2
CE1