500 likes | 816 Views
MPLS L2 VPN原理. 目 标. 学习完此课程,您将会: 掌握 MPLS L2 VPN 的原理. 内容介绍. 第一章 MPLS L2 VPN 概述 第二章 MPLS L2 VPN 原理. 传统的 L2VPN. 租赁专线( leased line )方式 主要缺点是:建设时间长,价格昂贵,难于管理。 虚电路方式 虚电路方式与租赁专线相比,建设时间短、价格低 在不同类型的网络(如 ATM 、 FR )上提供业务,需要建设并维护独立的网络 其速率较慢 配置较复杂. PE. PE. MPLS L2VPN. Customer Site.
E N D
目 标 学习完此课程,您将会: • 掌握MPLS L2 VPN的原理
内容介绍 第一章 MPLS L2 VPN 概述 第二章 MPLS L2 VPN 原理
传统的L2VPN • 租赁专线(leased line)方式 • 主要缺点是:建设时间长,价格昂贵,难于管理。 • 虚电路方式 • 虚电路方式与租赁专线相比,建设时间短、价格低 • 在不同类型的网络(如ATM、FR)上提供业务,需要建设并维护独立的网络 • 其速率较慢 • 配置较复杂
PE PE MPLS L2VPN Customer Site • MPLS L2VPN就是在MPLS网络上透明传递用户的二层数据。从用户的角度来看,这个MPLS网络就是一个二层的交换网络,通过这个网络,可以在不同站点之间建立二层的连接。 Customer Site Tunnel 虚电路 Customer Site Customer Site
MPLS方式的L2VPN • 扩展了运营商的网络功能和服务能力 • 具有更高的可扩展性 • 管理责任分工明确 • 路由私有、安全 • 易配置(N方解决?主要体现在隧道复用) • 多协议支持 • 网络平滑升级
L2VPN-VRP实现 • Martini:遵循草案draft-martini-l2circuit-trans-mpls,使用LDP作为传递VC信息的信令。 • Kompella:遵循草案draft-kompella-ppvpn-l2vpn-xx,与RFC2547定义的BGP/MPLS VPN相似。 • CCC:在两条PE-CE连接之间配置透明的连接,独占隧道,一层标签。 • SVC:Martini的一种静态实现
内容介绍 第一章 MPLS L2 VPN 概述 第二章 MPLS L2 VPN 原理
内容介绍 第二章 MPLS L2 VPN 原理 第一节 报文结构 第二节 CCC 第三节 Martini 第四节 SVC 第五节 Kompella
协议结构 连接控制(LDP、BGP、STATIC-LSP) 用于 VC-Label 协商, 撤销, 差错通告 连接控制 ‘Emulated Circuits’ 有三层封装 • Tunnel 标签 • 从入口PE 到出口PE获取PDU • MPLS label 或GRE tunnel • VC 标签 • 用于在相同的tunnel上标识不同的虚电路 • MPLS label. • 模拟 VC 的封装(Control Word) • 32-bit 的控制字 Transport Component Tunneling Component L2 PDU (Emulated)
报文结构 • 有些情况下,在网络上传输l2vpn报文的时候没有必要传送整个的二层帧,而是在入口端把二层头给剥离,然后在出口端重新添加。但是如果二层头中有些信息需要携带,这种方式就不可取了,因此提出了控制字的方法来解决这个问题,控制字里携带的信息都是INGRESS端和EGRESS端协商好的。 • 控制字主要有三个功能: • 1、报文转发时需要的序列号 • 2、当最小的mtu大于实际的传输报文时需要进行填充 • 3、二层帧头中需要携带的控制位
报文举例-FR • Frame Relay帧在转发的时候不携带Frame Relay header和FCS,控制字是必须使用的 • BECN、FECN、 DE和C/R位使用控制字来携带。
内容介绍 第二章 MPLS L2 VPN 原理 第一节 报文结构 第二节 CCC 第三节 Martini 第四节 SVC 第五节 Kompella
CCC介绍 • CCC是Circuit Cross Connect(电路交叉连接)的缩写,是通过静态配置来实现L2VPN的一种方式。
CCC连接类型 • CCC方式分为本地CCC连接和远程CCC连接。 • 对于本地CCC连接, 这两个CE连接到同一个PE设备上,PE设备相当于一个二层交换机。 • 对于远程CCC连接,两个CE连接到不同的PE上,使用PE之间独享的静态LSP作为隧道,不需要任何信令协议传递二层VPN信息。
CCC的实现 • CCC的实现 • CCC采用一层标记来传送用户数据,因此它对LSP的使用是独占性(不能用于其他L2VPN连接,也不能用于BGP/MPLS VPN或承载普通的IP报文)的,用户必须单独为每一个CCC连接手工配置两条L2VPN LSP(两个方向各一条),这两条L2VPN LSP将只能用于传递这个CCC连接的数据。 • P节点也要进行STATIC LSP的配置
CCC组网 Tunnel标签 2层头部 数据 A公司 分支机构2 PE LSP PE 远程 连接 MPLS网络 A公司 总部 LSP PE 本地 连接 A公司 分支机构1 A公司 分支机构3
内容介绍 第二章 MPLS L2 VPN 原理 第一节 报文结构 第二节 CCC 第三节 Martini 第四节 SVC 第五节 Kompella
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共享使用。
Martini结构 连接控制(LDP) 用于 VC-Label 协商, 撤销, 差错通告 连接控制 ‘Emulated Circuits’ 有三层封装 • Tunnel 标签 • 从入口PE 到出口PE获取PDU • MPLS label 或GRE tunnel • VC 标签 • 用于在相同的tunnel上标识不同的虚电路 • MPLS label. • 模拟 VC 的封装(Control Word) • 32-bit 的控制字 Transport Component LDP Tunneling Component L2 PDU (Emulated)
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
Martini 的协议处理 • Martini的协议包括两部份 • Tunnel建立 • LDP 用来建立在PE之间建立Tunnel, 其他的tunnels协议也可以使用如GRE. • VC 建立 • 通过LDP在两个PE 间建立远程邻居 • 通过VCID来建立绑定关系,LDP为VC分配标签 (1,1000;PE1) (1,2000;PE2) VC-ID:1 VC-ID:1 DLCI:200 DLCI:100 PE1 PE2 P CE1 CE2
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来唯一确定 • Interface Parameters (不定) –一些接口参数,目前用的有MTU
Martini优点 • 在这种Martini方式中,由于在运营商网络中,只有PE设备需要保存少量的VC label&LSP的映射等少量信息,P设备不包含任何二层VPN信息,所以扩展性好。 • 当需要新增加一条VC时, 只在相关的两端PE设备上各配置一个单方向VC连接即可,不影响网络的运行。 • 它配置、实现相对简单,没有VPN的概念, 只是提供二层链路的连接性,易于理解。 • Martini方式适合稀疏的二层连接,例如星型连接。
Martini组网 A公司 分支机构1 外层标签 VC标签 二层头部 数据 PE A公司 总部 B公司 总部 MPLS隧道(LSP) MPLS网络 MPLS隧道(LSP) PE A公司 分支机构2 MPLS隧道(LSP) PE B公司 分支机构1 B公司 分支机构2 LDP发布VC标签
内容介绍 第二章 MPLS L2 VPN 原理 第一节 报文结构 第二节 CCC 第三节 Martini 第四节 SVC 第五节 Kompella 第六节 L2VPN 的比较
Static VC • SVC方式的其实与LDP方式L2PVN非常类似,不同之点在于他不用使用LDP作为传递二层VC和链路信息的信令,手工配置VC Label信息即可; • 不用LDP就意味着不需要使用remote peer,不需要使用LDP相应扩展TLV。便于ISP的网络运营,如果隧道不使用LDP建立的LSP,那么LDP就完全不必使用了; • 其他的和Martini基本一致。
内容介绍 第二章 MPLS L2 VPN 原理 第一节 报文结构 第二节 CCC 第三节 Martini 第四节 SVC 第五节 Kompella 第六节 L2VPN 的比较
kompella结构 连接控制(MP-BGP) 用于 VC-Label 协商, 撤销, 差错通告 连接控制 ‘Emulated Circuits’ 有三层封装 • Tunnel 标签 • 从入口PE 到出口PE获取PDU • MPLS label 或GRE tunnel • VC 标签 • 用于在相同的tunnel上标识不同的虚电路 • MPLS label. • 模拟 VC 的封装(Control Word) • 32-bit 的控制字 Transport Component MP-BGP Tunneling Component L2 PDU (Emulated)
基本原理:kompella简介 • 与MPLS BGP VPN实现机理类似,特别是CE、PE、ROUTE-TARGET、RD、SITE的定义以及用途 • 区别是kompella传送的是二层信息,而MPLS BGP VPN传送的是三层路由信息,为此kompella进行了相应的BGP NLRI扩展 • 处理的信息不同了,那么发送接受二层信息的流程也发生了相应的变化。
kompella术语 • Label Block • Label Base • Label Range • Label-block Offset • CE ID • CONNECTION • L2VPN INSTANCE
kompella术语 • LABEL BLOCK1、 LABEL BLOCK2、 LABEL BLOCK3组成一个LABEL BLOCK; • LB:LABEL BASE • LR:LABEL RANGE • LBO:LABEL BLOCK OFFSET 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
kompella术语 • L3VPN传递FEC和单个LABEL的方式; • BGP方式L2VPN采取标记块的方式,一次为多个连接分配标记。用户可以指定一个本地CE的范围(CE range),表明这个CE能与多少个CE建立连接。系统会一次为这个CE分配一个标记块,标记块的大小等于CE range。这种方式允许用户为VPN分配一些额外的标记,留待以后使用。这样会造成标记资源的浪费,但是同时带来一个很大的好处:减少VPN部署和扩容时的配置工作量。
Kompella信息传递 • 假设PE A、PE B为同属于VPN X的CEm和CEk建立一条VC。 • 我们称PEA为CEm分配的LABEL BLOCK为Lm;称Lm的BlockOffset为LOm;称Lm的Label-Base为LBm;称Lm的Label-Range为LRm • 我们称PEB为CE k分配的LABEL BLOCK为Lk;称Lk的BlockOffset为LOk;称Lk的Label-Base为LBk;称Lk的Label-Range为LRk • 那么PEB收到PEA发送过来的信息会做如下工作: LSP CEm PEA PEB CEk
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分配内层标签为(LBk + m - LOk); • PEB到PEA的外层隧道的标签为Z; • 内外层标签兼备,可以干活了,Any Question?
BGP NLRI扩展 • 引入了新的sub-TLV • Circuit Status Vector • Label range • Tunnel status
BGP Layer2-Info Extended Community • Extended Community Type • TBD • Encapsulation Type • ATM, • Frame Relay • Ethernet • …… • Control Flags • MBZ:MUST Be Zero • C:1表示需要控制字;0为不需要 • S:1表示需要序列号;0为不需要 • Q&F:保留 • Layer-2 MTU
PURE IP • IP-only Layer 2 Interworking • 在INGRESS端,二层帧头全部剥离取出IP报文进行转发;此时转发是用到的二层信息依然基于接收帧的二层信息。 • 在EGRESS端,报文被重新封装成二层帧然后发送给CE,此时二层转发信息是依靠VC LABEL来获得的。 • INGRESS端和相应CE端的链路类型独立于EGRESS端和相应CE端的链路类型,因此这种情况下L2VPN独立于链路类型 • 目前这一块只有理论,并没有实现
kompella优点 • 自动拓扑发现—以MP-BGP为信令传播相应信息 • 组网灵活,部署方案成熟—route-target • 部分解决配置的n方问题—余额配置 • 同时支持本地、远程虚拟链路 • 支持不同接入方式—IP Interworking • 跨域的解决方式与MPLS L3 VPN类似
内容介绍 第二章 MPLS L2 VPN 原理 第一节 报文结构 第二节 CCC 第三节 Martini 第四节 SVC 第五节 Kompella 第六节 L2VPN 的比较