DZ000505 MPLS L2 VPN 原理 - J

Download Report

Transcript DZ000505 MPLS L2 VPN 原理 - J

MPLS L2 VPN原理
0
学习完此课程,您将会:
 掌握MPLS L2 VPN的原理
1
第一章 MPLS L2 VPN 概述
第二章 MPLS L2 VPN 原理
2
传统的L2VPN
 租赁专线(leased line)方式
 主要缺点是:建设时间长,价格昂贵,难于管理。
 虚电路方式
 虚电路方式与租赁专线相比,建设时间短、价格低
 在不同类型的网络(如ATM、FR)上提供业务,需要建设并
维护独立的网络
 其速率较慢
 配置较复杂
3
MPLS L2VPN
Customer
Site
Customer
Site
Tunnel
虚电路
PE
PE
Customer
Site
Customer
Site
 MPLS L2VPN就是在MPLS网络上透明传递用户的
二层数据。从用户的角度来看,这个MPLS网络就
是一个二层的交换网络,通过这个网络,可以在不
同站点之间建立二层的连接。
4
MPLS方式的L2VPN







扩展了运营商的网络功能和服务能力
具有更高的可扩展性
管理责任分工明确
路由私有、安全
易配置(N方解决?主要体现在隧道复用)
多协议支持
网络平滑升级
5
L2VPN-VRP实现
 Martini:遵循草案draft-martini-l2circuittrans-mpls,使用LDP作为传递VC信息的信令。
 Kompella:遵循草案draft-kompella-ppvpnl2vpn-xx,与RFC2547定义的BGP/MPLS VPN
相似。
 CCC:在两条PE-CE连接之间配置透明的连接,独
占隧道,一层标签。
 SVC:Martini的一种静态实现
6
第一章 MPLS L2 VPN 概述
第二章 MPLS L2 VPN 原理
7
第二章 MPLS L2
第一节 报文结构
VPN
原理
第二节 CCC
第三节 Martini
第四节 SVC
第五节 Kompella
8
协议结构
连接控制(LDP、BGP、STATIC-LSP)
连接控制
用于 VC-Label 协商, 撤销, 差错通告
‘Emulated Circuits’ 有三层封装
Transport
Component
Tunneling
Component
L2 PDU
(Emulated)
Tunnel 标签
从入口PE 到出口PE获取PDU
MPLS label 或GRE tunnel
VC 标签
用于在相同的tunnel上标识不同的虚电路
MPLS label.
模拟 VC 的封装(Control Word)
 32-bit 的控制字
9
报文结构


有些情况下,在网络上传输l2vpn报文的时候没有必要传
送整个的二层帧,而是在入口端把二层头给剥离,然后在
出口端重新添加。但是如果二层头中有些信息需要携带,
这种方式就不可取了,因此提出了控制字的方法来解决这
个问题,控制字里携带的信息都是INGRESS端和
EGRESS端协商好的。
控制字主要有三个功能:



1、报文转发时需要的序列号
2、当最小的mtu大于实际的传输报文时需要进行填充
3、二层帧头中需要携带的控制位
10
报文举例-FR
 Frame Relay帧在转发的时候不携带Frame
Relay header和FCS,控制字是必须使用的
 BECN、FECN、 DE和C/R位使用控制字来携带。
11
第二章 MPLS L2
第一节 报文结构
VPN
原理
第二节 CCC
第三节 Martini
第四节 SVC
第五节 Kompella
12
CCC介绍

CCC是Circuit Cross Connect(电路交叉连接)的缩写,
是通过静态配置来实现L2VPN的一种方式。
13
CCC连接类型
 CCC方式分为本地CCC连接和远程CCC连接。
 对于本地CCC连接, 这两个CE连接到同一个PE设备上,PE
设备相当于一个二层交换机。
 对于远程CCC连接,两个CE连接到不同的PE上,使用PE之间
独享的静态LSP作为隧道,不需要任何信令协议传递二层VPN
信息。
14
CCC的实现
 CCC的实现
 CCC采用一层标记来传送用户数据,因此它对LSP的使用是独
占性(不能用于其他L2VPN连接,也不能用于BGP/MPLS
VPN或承载普通的IP报文)的,用户必须单独为每一个CCC连
接手工配置两条L2VPN LSP(两个方向各一条),这两条
L2VPN LSP将只能用于传递这个CCC连接的数据。
 P节点也要进行STATIC LSP的配置
15
CCC组网
Tunnel标签 2层头部
数据
A公司
分支机构2
PE
PE
远程
连接
MPLS网络
A公司
总部
PE
A公司
分支机构1
本地
连接
A公司
分支机构3
16
第二章 MPLS L2
第一节 报文结构
VPN
原理
第二节 CCC
第三节 Martini
第四节 SVC
第五节 Kompella
17
Martini介绍
 遵循草案draft-martini-l2circuit-trans-mpls,使用LDP
作为传递VC信息的信令。
 PE之间建立LDP的remote session,PE为CE之间的每条
连接分配一个VC标签。二层VPN信息将携带着VC标签,通
过LDP建立的LSP转发到remote session的对端PE。
 这种方式不能提供象CCC方式的本地交换功能,但是不象
CCC远程连接那样,一条LSP只能被一条远程CCC连接独
享,服务运行商网络中的一条隧道可以被多条VC共享使
用。
18
Martini结构
连接控制
连接控制(LDP)
用于 VC-Label 协商, 撤销, 差错通告
‘Emulated Circuits’ 有三层封装
Transport
Component
Tunneling
Component
L2 PDU
(Emulated)
Tunnel 标签
从入口PE 到出口PE获取PDU
MPLS label 或GRE tunnel
VC 标签
用于在相同的tunnel上标识不同的虚电路
MPLS label.
模拟 VC 的封装(Control Word)
 32-bit 的控制字
19
LDP扩展
 VC labels通过LDP REMOTE SESSION交换
 LABEL还是放在Label TLV中,在MAPPING中发送
 定义了新的LDP FEC用来携带VC信息
 FEC element type ‘128 ——Virtual Circuit FEC
 Element’: Carried within LDP Label Mapping Message
 VC信息的交换是通过DU方式进行的,
 Described in draft-martini-l2circuit-trans-mpls
20
Martini 的协议处理
 Martini的协议包括两部份
 Tunnel建立
 LDP 用来建立在PE之间建立Tunnel, 其他的tunnels协
议也可以使用如GRE.
 VC 建立
 通过LDP在两个PE 间建立远程邻居
 通过VCID来建立绑定关系,LDP为VC分配标签
(1,1000;PE1)
(1,2000;PE2)
VC-ID:1
DLCI:100 PE1
CE1
PE2
P
VC-ID:1
DLCI:200
CE2
21
Martini协议报文
22
Martini协议报文






C: Control Word (1 bit) – 1表示需要控制字;0为不需要
VC-type (15 bits) – VC类型, e.g FR, ATM, VLAN,
Ethernet, PPP, HDLC
VC info length (8 bits) –VCID field和interface parameters
的长度
Group ID (32 bits) – 一些VC组成一个组,主要用来批量撤消
相应的VC信息。
VC ID (32 bits) – 一个VC是由VC ID和VC TYPE来唯一确定
23
Interface Parameters (不定) –一些接口参数,目前用的有
MTU
Martini优点
 在这种Martini方式中,由于在运营商网络中,只有PE设备
需要保存少量的VC label&LSP的映射等少量信息,P设备不
包含任何二层VPN信息,所以扩展性好。
 当需要新增加一条VC时, 只在相关的两端PE设备上各配置
一个单方向VC连接即可,不影响网络的运行。
 它配置、实现相对简单,没有VPN的概念, 只是提供二层
链路的连接性,易于理解。
 Martini方式适合稀疏的二层连接,例如星型连接。
24
Martini组网
外层标签
VC标签
二层头部
A公司
分支机构1
数据
PE
A公司
总部
B公司
总部
MPLS网络
MPLS隧道(LSP)
PE
A公司
分支机构2
PE
B公司
分支机构1
LDP发布VC标签
B公司
分支机构2
25
第二章 MPLS L2
第一节
报文结构
VPN
原理
第二节 CCC
第三节 Martini
第四节 SVC
第五节 Kompella
第六节 L2VPN 的比
较
26
Static VC
 SVC方式的其实与LDP方式L2PVN非常类似,不同之点在于
他不用使用LDP作为传递二层VC和链路信息的信令,手工
配置VC Label信息即可;
 不用LDP就意味着不需要使用remote peer,不需要使用
LDP相应扩展TLV。便于ISP的网络运营,如果隧道不使用
LDP建立的LSP,那么LDP就完全不必使用了;
 其他的和Martini基本一致。
27
第二章 MPLS L2
第一节原理
报文结构
VPN
第二节 CCC
第三节 Martini
第四节 SVC
第五节 Kompella
第六节 L2VPN 的比
较
28
kompella结构
连接控制
连接控制(MP-BGP)
用于 VC-Label 协商, 撤销, 差错通告
‘Emulated Circuits’ 有三层封装
Transport
Component
Tunnel 标签
Tunneling
Component
VC 标签
L2 PDU
(Emulated)
从入口PE 到出口PE获取PDU
MPLS label 或GRE tunnel
用于在相同的tunnel上标识不同的虚电路
MPLS label.
模拟 VC 的封装(Control Word)
 32-bit 的控制字
29
基本原理:kompella简介
 与MPLS BGP VPN实现机理类似,特别是CE、PE、
ROUTE-TARGET、RD、SITE的定义以及用途
 区别是kompella传送的是二层信息,而MPLS BGP VPN传
送的是三层路由信息,为此kompella进行了相应的BGP
NLRI扩展
 处理的信息不同了,那么发送接受二层信息的流程也发生了
相应的变化。
30
kompella术语







Label Block
Label Base
Label Range
Label-block Offset
CE ID
CONNECTION
L2VPN INSTANCE
31
kompella术语
LABEL BLOCK 1
102400/10/0
LB/LR/LBO
LABEL BLOCK 2
102410/10/10
LB/LR/LBO
LABEL BLOCK 3
102420/10/20
LB/LR/LBO
 LABEL BLOCK1、 LABEL BLOCK2、 LABEL
BLOCK3组成一个LABEL BLOCK;
 LB:LABEL BASE
 LR:LABEL RANGE
 LBO:LABEL BLOCK OFFSET
32
kompella术语
 L3VPN传递FEC和单个LABEL的方式;
 BGP方式L2VPN采取标记块的方式,一次为多个连接分配标
记。用户可以指定一个本地CE的范围(CE range),表明
这个CE能与多少个CE建立连接。系统会一次为这个CE分配
一个标记块,标记块的大小等于CE range。这种方式允许
用户为VPN分配一些额外的标记,留待以后使用。这样会造
成标记资源的浪费,但是同时带来一个很大的好处:减少
VPN部署和扩容时的配置工作量。
33
Kompella信息传递
LSP
CEm
PEA
PEB
CEk
 假设PE A、PE B为同属于VPN X的CEm和CEk建立一条
VC。
 我们称PEA为CEm分配的LABEL BLOCK为Lm;称Lm的
Block Offset为LOm;称Lm的Label-Base为LBm;称
Lm的Label-Range为LRm
 我们称PEB为CE k分配的LABEL BLOCK为Lk;称Lk的
Block Offset为LOk;称Lk的Label-Base为LBk;称Lk的
Label-Range为LRk
34
 那么PEB收到PEA发送过来的信息会做如下工作:
Kompella信息传递
 首先检查从PEA收到CE的封装类型,如果不一致,弃之且停止处
理;
 检查是否 k=m,如果是,报错“CE ID k has been allocated to
two CEs in VPN X (check CE at PE A)”,然后停止处理;
 检查和CE m相关的所有的label-blocks是否满足LOm <= k <
LOm + LRm,如果任何一个都不满足,报错 “Cannot
communicate with CE m (PE A) of VPN X:outside range”然
后停止处理;
 检查和CE k相关的所有的label-blocks是否满足LOk <= m <
LOk + LRk,如果任何一个都不满足,报错 “Cannot
communicate with CE m (PE A) of VPN X:outside range”然
后停止处理;
 检查PEA和PEB之间的通道是否正常建立,如果没有就停止处理,这
里假设为LSP隧道,标签为Z;
 PEB为CE-m分配内层标签为(LBm + k - LOm) ,PEA为CE-k分
35
配内层标签为(LBk + m - LOk);
BGP NLRI扩展
Length (2 octets)
Route Distinguisher (8 octets)
CE ID (2 octets)
Label-block Offset (2 octets)
Label Base (3 octets)
Variable TLVs (0 to N octets)...
 引入了新的sub-TLV

Circuit Status Vector
 Label range
 Tunnel status
36
BGP Layer2-Info Extended
Community
 Extended Community Type

TBD
 Encapsulation Type




ATM,
Frame Relay
Ethernet
……
 Control Flags




Extended community type (2 octets)
Encapsulation Type (1 octet)
Control Flags (1 octet)
Layer-2 MTU (2 octet)
Reserved (2 octets)
MBZ:MUST Be Zero
C:1表示需要控制字;0为不需要
S:1表示需要序列号;0为不需要
Q&F:保留
 Layer-2 MTU
MBZ
Q
F
C
S
37
封装类型
0
Reserved
7
PPP
1
Frame Relay
8
CEM [8]
2
ATM AAL5 VCC
transport
9
ATM VCC cell
transport
3
ATM transparent cell
transport
10
ATM VPC cell
transport
4
Ethernet VLAN
11
MPLS
5
Ethernet
12
VPLS
6
Cisco-HDLC
64
IP-interworking
38
PURE IP
Tunnel Encap
VPN Label
IP Packet
Tunnel Encap
VPN Label
L2 Frame
 IP-only Layer 2 Interworking




在INGRESS端,二层帧头全部剥离取出IP报文进行转发;此时转
发是用到的二层信息依然基于接收帧的二层信息。
在EGRESS端,报文被重新封装成二层帧然后发送给CE,此时二
层转发信息是依靠VC LABEL来获得的。
INGRESS端和相应CE端的链路类型独立于EGRESS端和相应CE
端的链路类型,因此这种情况下L2VPN独立于链路类型
目前这一块只有理论,并没有实现
39
kompella优点






自动拓扑发现—以MP-BGP为信令传播相应信息
组网灵活,部署方案成熟—route-target
部分解决配置的n方问题—余额配置
同时支持本地、远程虚拟链路
支持不同接入方式—IP Interworking
跨域的解决方式与MPLS L3 VPN类似
40
第二章 MPLS L2
第一节
报文结构
VPN
原理
第二节 CCC
第三节 Martini
第四节 SVC
第五节 Kompella
第六节 L2VPN 的比
较
41
MPLS L2 VPN 比较
比较项目
Kompell
a
Martini
CCC
SVC
信令协议
BGP
LDP
否
否
隧道情况
GRE、LSP,GRE、LSP, 专门的静态 GRE、
共用
共用
LSP,独
LSP,共用
占
应用场景
密集模式
稀疏模式
NA
NA
扩展性
支持过量配
置,较好
差
很差
差
本地连接
是
否
是
否
42
相互对比:L3VPN VS L2VPN
项目
BGP/MPLS VPN
Kompella L2
VPN
Martinni L2
VPN
PE设备开销
内存开销大,接
口资源消耗小,
信令协议开销小
内存开销小,接
口资源消耗大,
信令协议开销小
内存开销小,接
口资源消耗大,
信令协议开销大
BGP自动发现
手工配置
VPN拓扑扩散方式 BGP自动发现
VPN路由扩散方式 通过PE设备扩散, 在CE之间直接扩
收敛慢
散,收敛快
在CE之间直接扩
散,收敛快
CE的接入方式
ATM、FR、PPP、
HDLC、Ethernet
(VLAN)
不同封装之间不
能互通
任何2层连接、2 ATM、FR、PPP、
层隧道和3层隧道,HDLC、Ethernet
同一个VPN中不同 (VLAN)
站点接入方式可 不同封装之间不
以不相同
能互通
PURE IP
43
相互对比:L3VPN VS L2VPN
项目
BGP/MPLS VPN
Kompella L2 VPN Martinni L2 VPN
VPN嵌套能力
支持
不支持
不支持
多播支持能力
协议开销大,转发
开销小
协议开销小,转发
开销大
协议开销小,转发
开销大
协议独立性
只能承载IP
承载任何3层协议
承载任何3层协议
隧道的多样性
支持LSP/GRE/IPSec 支持LSP/GRE
支持LSP
对传统VPN的继承性
对传统2层VPN的扬
弃
改进继承传统2层
VPN
改进继承传统2层
VPN
标准的成熟度
成熟
较成熟
不成熟
易用性
简单
较复杂
复杂
可管理性
外包路由、分权管
理
外包拓扑、集中管
理
外包拓扑、集中管
理
44