1 MPLS L2VPN介绍及方案设计 1 文档目的 1. 介绍MPLS L2VPN的相关知识; 2. 介绍MPLS L2VPN的实现方案及相关功能模块 2 MPLS L2VPN介绍 2.1 MPLS L2VPN概念 MPLS L2VPN提供基于 MPLS(MultiProtocol Label Switching,多协议标签交换)网络的二层 VPN服务,使运营商可以在统一的 MPLS网络上提供基于不同数据链路层的二层 VPN,包括 ATM、 FR、Vlan、Ethernet、PPP等 简单来说,MPLS L2VPN就是在 MPLS网络上透明传输用户二层数据从用户的角度来看,MPLS网络是一个二层交换网络,可以在不同节点间建立二层连接 图表 2-1 MPLS L2VPN组网图 1. CE(Customer Edge)设备:用户网络边缘设备,有接口直接与 SP相连CE可以是路由器或交换机,也可以是一台主机CE“感知”不到 VPN的存在,也不需要必须支持 MPLS; 2. PE(Provider Edge)路由器:服务提供商边缘路由器,是服务提供商网络的边缘设备,与用户的 CE直接相连在 MPLS网络中,对 VPN的所有处理都发生在 PE上; 3. P(Provider)路由器:服务提供商网络中的骨干路由器,不与 CE 直接相连P 设备只需要具备基本 MPLS转发能力; 4. UPE(User facing-Provider Edge):靠近用户侧的PE设备,主要作为用户接入VPN的汇聚设备; 5. NPE(Network Provider Edge):网络核心PE设备,处于VPLS网络的核心域边缘,提供在 2 核心网之间的VPLS透传服务; 6. SPE(Switched Provider Edge):交换节点PE设备,主要用于多段伪线网络中,它在两台PE设备之间作为多段伪线的控制面和数据面的拼接点; 7. 外层标签(称为 Tunnel标签)用于将报文从一个 PE传递到另一个 PE; 8. 内层标签(称为 VC标签)用于区分不同 VPN中的不同连接,用于将报文从一个CE传递到另一个CE 2.1.1 MPLS专业术语 1. 转发等价类(Forwarding Equivalence Class,FEC):MPLS转发过程中,将等价方式处理的一种数据分组归为一类划分FEC的好处是:不同目的地址的数据报文,在MPLS网络的入口处被划分为相同的FEC,具有相同的标签,转发时只根据标签的快速交换实现报文的传递,不用在每一跳都进行重新划分FEC,也就是一次路由、多次交换传统的IP路由转发则相当于在每一跳都重新划分了FEC 2. 标签(LABEL):是一个短而定长的、具有本地意义的标识符,主要用来标识一个FEC特定分组上的标签代表着分配给该分组的FECMPLS通过标签的嵌套提供无限的业务支持能力 3. 标签转发路径(Label Switched Path,LSP): MPLS转发时,一特定FEC的数据流在不同的节点被赋于确定的标签,根据标签进行转发MPLS数据流所走的路径就是LSP一条LSP就是一条MPLS隧道通过这条隧道可以为分组提供MPLS转发服务,实现隧道的数据透传 4. 标签分配协议(Label Distributed Protocol,LDP):用于LSR在网络中分配标签,并定义一系列过程和消息来完成LSR之间标签的发送和处理,LSR通过LDP可以建立网络层路由信息到链路层转发路径映射的LSP,再将FEC与LSP相关联,即可完成MPLS的标签转发LDP实现LSP与FEC关联 5. 标签交换路由器(Label Switching Router,LSR)是 MPLS网络中的基本元素,所有 LSR都支持MPLS技术 6. 多层标签栈:如果分组在超过一层的 LSP 隧道中传送,就会有多层标签,形成标签栈(Label Stack)在每一隧道的入口和出口处,进行标签的入栈(PUSH)和出栈(POP)操作 标签栈按照“后进先出”(Last-In-First-Out)方式组织标签,MPLS从栈顶开始处理标签 MPLS对标签栈的深度没有限制若一个分组的标签栈深度为 m,则位于栈底的标签为 1级标签,位于栈顶的标签为 m级标签未压入标签的分组可看作标签栈为空(即标签栈深度为零)的分组 2.1.2 MPLS转发的基本过程 1. 标签分配协议和传统路由协议一起,在各个LSR中为有业务需求的FEC建立路由表和MPLS转发相关的表项; 2. 当MPLS域入口处的LER收到分组后,完成第三层功能,即判定分组所属的FEC,并给分组打上标签,此时该分组就成为一个MPLS报文,并根据MPLS表项将报文转发出去; 3. 在LSR构成的MPLS网络中,LSR对收到的MPLS报文分组不再进行任何第三层处理,只是依据分组上的标签以及标签转发表对分组进行转发; 4. 在MPLS域的出口LER上,将分组中的标签弹掉后继续进行转发此时,转发可能分成 3 两种情况:(1)标签栈非空,说明分组将进入另一个MPLS域,继续进行MPLS转发(2)标签栈为空,即分组为正常的IP分组,这时进行传统的路由转发当MPLS域的出口LER弹出最外层标签后,还要进行其它较复杂的三层工作,为节省这些工作,可以采用倒数第二跳弹出机制(Penultimate Hop Popping, PHP ) 2.1.3 MPLS平面结构图 图表 2-2 MPLS平面结构图 1. MPLS控制平面 MPLS节点运行IP路由选择协议来和网络中的所有其他MPLS节点交换IP路由选择信息,建立路由选择表提供标签绑定使用的目的网络和子网前缀 MPLS节点运行标签分配协议分配本地标签绑定信息,并和邻接MPLS节点交换标签绑定信息,组成标签信息库(LBI)以建立标签转发信息库(LFIB) 2. MPLS数据平面 MPLS转发层面使用标签转发信息库(LFIB)转发带有标签的数据包一个数据在具有MPLS功能的网络中传递可由以下四步完成: 第一步:网络可自动生成路由表,因为路由器或ATM交换机可参与内部网关协议如OSPF/ISIS信息交换LDP使用路由表中的信息去建立相邻设备的标记值,这个标准创建了LSP,预先设置了与最终目的地之间的对应关系; 第二步:一个数据包进入边缘LER时,它会被处理,决定需要哪种第三层的业务,如QoS和带宽管理基于路由和策略的需求,边缘LER有选择地放入一个标记到数据包头中,然后转发; 第三步:位于网络核心的LSR读每一个数据包的标记,并根据标签转发信息库替换一个新的标记,这个动作将会在所有中心设备中重复; 第四步:在出口边缘的LER,除去标记,读数据包头,将其转发到最终目的地 2.2 组网模型 2.2.1 VPLS模型 VPLS,即Virtual Private LAN Service,实际上是一种基于以太网的L2VPN技术VPLS集以太网和MPLS的优点于一体,它使分散在不同地理位置上的用户网络可以相互通信,就像它们直 4 接相互连接在一起一样,广域网对于所有用户来说是透明的 用户接入方式为以太网,支持的接入接口类型单一从用户的角度来看,整个MPLS网络就是一个二层的交换网络VPLS可选择使用LDP信令和MP-BGP信令来构建PW,基于LDP协议的信令通过在每一对PE之间建立点到点的LDP会话来建立虚电路基于BGP协议的信令机制则可以充分利用BGP路由反射器的特点,这样PE只需路由反射器建立信令会话即可,这就大大提高了可扩展性同时,BGP协议还可以支持跨越多个自治系统(AS)网络结构,这对于多个网络运营商并存情况下的VPLS实现非常有利 图表 2-3 VPLS组网图 2.2.2 VPWS模型 VPWS是指在分组交换网络PSN(Packet Switched Network)中尽可能真实地模仿ATM、帧中继、以太网、低速TDM电路和SONET/SDH等业务的基本行为和特征的一种二层业务承载技术 本质上,VPWS技术是一种点到点的虚拟专线技术,能够支持几乎所有的链路层协议 图表 2-4 VPWS组网 2.2.3 PWE3模型 PWE3(Pseudo-Wire Emulation Edge to Edge):是一种端到端的二层业务承载技术PWE3对VPWS进行了扩展,主要表现在对Martini方式的扩展 扩展的方面: 1) 信令扩展 a) LDP信令增加了Notification方式,只通告状态,不拆除信令,除非配置删除或者 5 信令协议中断这样能够减少控制报文的交互,降低信令开销,兼容原来的LDP和Martini方式还可以用L2TPv3作为信令此外PWE3还支持用RSVP作为信令建立有带宽保证的PW,就是RSVP-TE PW b) PW隧道的建立常用有两种信令:LDP和RSVP,其中前者是主标准,后者是从标准 2) 多跳扩展(MS-PW) a) 增加PW多跳功能,扩展了组网方式PW多跳能够降低对接入设备支持的LDP连接数目的要求,即降低了接入节点的LDP Session的开销 b) 多跳的接入节点满足PW的汇聚功能,使得网络更加灵活,适合分级(接入、汇聚和核心) 3) TDM接口扩展 a) 支持更多的电信低速TDM接口通过控制字CW(Control Word)及转发平面RTP(Real-time Transport Protocol)协议,引入对TDM的报文排序、时钟提取和同步的功能 b) 支持电信低速TDM接口的好处在于:增加了封装类型(可封装低速TDM)支持三网合一是替代传统DDN业务的一种方式 4) 实时信息的扩展 a) 引入RTP(Real-time Transport Protocol),进行时钟提取和同步 b) 保证电信信号的带宽、抖动和时延 5) 对报文进行乱序重传 图表 2-5 MS-PW组网 2.3 L2VPN实现方式 1. CCC方式: CCC采用一层标签传送用户数据, CCC对 LSP的使用是独占性的(不能用于其他L2VPN连接,也不能用于BGP/MPLS VPN或承载普通的IP报文),不需要任何标签信令传递二层 VPN 信息,只要能支持 MPLS 转发即可,分为本地CCC连接和远程CCC连接 CE-ACE-BU-PE1U-PE2S-PEP1P2Dynamic PWStatic PW 6 图表 2-6 CCC远程连接 2. SVC方式:SVC(Static Virtual Circuit,静态虚拟电路)也是一种静态的 MPLS L2VPN,在 L2VPN信息传递中不使用信令协议 SVC方式与 Martini方式的 MPLS L2PVN非常类似,但它不使用 LDP传递二层 VC和链路信息,手工配置 VC标签信息即可,其实是 Martini方式的一种静态实现外层标签(公网隧道)由MPLS LDP建立,内层标签在配置VC的时候进行手工指定,PE之间不需要信令来传递标签信息 图表 2-7 SVC 连接方式 3. Martini方式:Martini方式MPLS L2VPN着重于在两个 CE之间建立 VC(Virtual Circuit,虚电路)连接两个 CE的 PE通过扩展的LDP交换VC标签,并通过 VC ID绑定对应的 CE当连接两个 PE的 LSP建立成功,双方的标签交换和绑定完成后,一个 VC就建立起来了,CE之间可以通过此 VC传递二层数据一条隧道可以被多条VC共享使用使用两层标签,内层标签是采用扩展的LDP作为信令进行交互 图表 2-8 Martini连接方式 4. Kompella方式(此方案暂时不做): Kompella方式的 MPLS L2VPN不直接对 CE与 CE之间的连接进行操作,而是在整个运营商网络中划分不同的 VPN,在 VPN 内部对 CE 进行编号要建立两个 CE 之间的连接,只需在 PE上设置本地 CE和远程 CE的 CE ID,并指定本地 CE为这个连接分配的 Circuit ID(例如 ATM的 VPI/VCI) Kompella方式 MPLS L2VPN以 BGP扩展为信令协议来分发 VC标签 7 3功能需求 3.1移动招标要求 表格 3-1 移动招标要求支持的功能 CPE-PTN HUB-PTN DC-HUB-PTN VPWS 支持 支持 支持 VPLS 支持 支持 MS-PW 支持 支持 支持 3.2设备功能需求 表格 3-2 设备功能模块细化 实现方式 需要实现的功能模块 VPWS(点对点) CCC方式 报文封装:二层协议仿真 内层标签的静态配置(一层标签) 转发模块 SVC方式 报文封装:二层协议仿真 LDP信令协议分配外层标签 内层标签的静态配置 转发模块 Martini 报文封装:二层协议仿真 LDP信令协议 (外层标签) LDP扩展协议( 内层标签) 转发模块 VPLS(点对多点) Martini 以太网报文封装(tagged, Raw, QinQ接入,Vlan接入) LDP信令模块(标签策略:DU 有序 自由) MAC地址学习、老化、转发和洪泛(水平分割原则) 环路避免(PE全连接,私网STP协议) H-VPLS分层的VPLS(UPE,NPE) BFD检测机制(H-VPLS中使用) 转发模块 MS-PW(多段伪线) PWE3(端到端) 报文封装:二层协议仿真 LDP扩展协议(SPE设备标签映射) 控制层面增加了报文分片、顺序、重组 静动混合多跳组网 环路检测 VCCV-PING(连接性检查) 转发模块 8 4 LDP信令模块 作为一种MPLS控制与信息协议,用于LSR设备在MPLS网络中为FEC分配标签,完成标签与FEC间的映射,并定义了一系列过程和消息来创建和维护LSP,将FEC与LSP相关联,使MPLS报文能按标签进行转发 LDP操作的基本单元是一对LDP PEERLDP PEER就是使用LDP协议交换LDP消息的两个LSRPEER之间存在着LDP会话,通过会话来交换标签和FEC映射消息会话就是LDP PEER间一个连接 LDP协议的主要有四种消息类型: 1. Discovery messages:用来通告和维护网络中LSR的存在;LSR设备通过发送各种类型的发现消息,实现LSR上LDP PEER的维护 2. Session messages:用来建立、维护和停止对等体之间的session;两个LSR确定为LDP PEER关系后,先建立两LSR间的TCP连接,然后在连接的基础上,通过两者会话消息的交互实现LDP会话的建立与维护 3. Advertisement messages:用来创建、改变和删除针对FEC的标签绑定;当LDP会话建立起来后,通过LDP的标签通告Advertisement消息完成标签的分配与回收,实现LSP的创建与维护 4. Notification messages:用来提供建议性的消息和错误通知Notification消息又分为两种:一、错误通知消息,用于本地LSR将错误信息通知给对端LSR二、建议性通知消息:用于通过LDP会话传递特定LSR的有关信息或状态 LDP消息交换的过程可为三个不同的阶段: 1. 发现阶段:主要是通过Discovery messages 来发现并建立LDP PEER; 2. 会话建立与维护阶段; 3. LSP的建立和维护阶段 4.1发现阶段 发现阶段的主要目的是为了发现并建立LDP PEER,LDP提供了两种PEER的发现机制: 1. 基本发现机制:用于发现链路上直连的LSR邻居 LSR通过周期性地发送Link Hello消息来发现直连的PEERLink Hello报文的目的地址为224.0.0.2的组播地址,源地址为出接口或者本地LSR ID,使用UDP承载,源端口和目的端口都为646 2. 扩展发现机制:用于发现链路上非直连LSR LSR通过周期性地发送Target Hello消息来发现非直连的PEERTarget Hello消息以用户配置的远端PEER地址为单播目的地址,该Hello消息仍然采用UDP协议,源和目的端口都为646 两种发现机制都是周期性地发送Hello消息异同点在于:(1)基本发现机制为组播报文,而扩展发现机制为单播报文;(2)基本发现机制是对称的,即两端LSR均要支持LDP能力,通过互相发送Link Hello消息实现PEER信息的维护;而扩展发现机制为非对称的,两个LSR可能只有一端使用扩展发现机制来与另一端建立连接,连接的接收端可以决定自己是否响应该Hello消息 9 图表 4-1 LDP信令建立流程 4.2会话的建立与维护 当LSR通过发现消息发现并建立LDP PEER后,触发LDP SEEEION的建立 图表 4-2 会话的建立与维护 1. 会话的建立 两台LSR之间交换Hello消息触发LDP Session 的建立,Hello消息中携带了消息发送端的LDP ID及其它相关信息LSR通过所收到的HELLO消息便发现其对端LSR的存在,并建立在本地 10 创建其对端PEER的信息对于收到的Hello消息,若为Link Hello类型,则检查这个消息是否有效;若为Target Hello类型,则必须根据消息中携带的信息检查本地是否配置相应的远端PEER如果满足条件,则两端开始搭建会话 互为对等体关系的两个LSR在建立会话时,双方必须协商出主从关系来决定谁来发起TCP连接LSR通过对TCP连接的源地址和目的地址的比较大小来决定主从端,地址大的为主源地址大于目的地址,则本地为主动端;源地址小于目的地址,则本地为被动端由主动端来发起TCP连接,被动端则永远不会主动发起TCP连接 当对等体关系的两LSR的TCP连接建立起来后,双方将发送LDP初始化消息进行LDP参数的协商协商的参数为LDP协议版本号、标签分发方式、会话保持定时间的时间,VPI/VCI/DLCI标签空间范围、环路检测功能等参数如果参数协商成功,则回应一个Keep alive消息,建立两端的LDP会话;否则,双方由于不断尝试创建会话,会反复发送Initialization消息和Notification错误消息为了减少带宽的占用,协议规定以指数倒退的方式来抑制会话的重启建立:当LSR收到Notification错误消息以后等待不少于15秒时间再次发起Initialization消息协商,并且下一次的延迟时间应该不少于2分钟 2. 会话的维护 LDP通过Keep alive消息来维护其会话,LSR会为每一个LDP会话维护一个Keep alive定时器,只要在LDP Session中收到了一个LDP PDU或收到对端发送的一个Keep alive消息,LSR就会重置Keep alive计时器,如果Keep alive超时,LSR便中断LDP会话和TCP连接 注意重置Keep alive计时器不一定是Keep alive消息,只要是LDP PDU即可LSR建立LDP 会话后,会定期发送Keep alive 消息来保持LDP 会话LSR 可以在任何时候中止 LDP Session,只需要发送一个Shutdown消息即可 4.3 LSP的建立与维护 LSP的建立和维护的过程就是VC标签的分配和回收的过程分配标签时建立相应的LSP,删除LSP就是回收相应的标签LDP协议采用下游分配(Downstream assigned)的方式来分配标签,即流量转发的下游设备为特定的FEC分配标签,并将标签与FEC的绑定信息通告给其上游 一、 标签的分发和管理 LDP对标签的管理主要通过标签的分发和管理实现的LSR通过标签分配方式、标签保持方式、标签通告方式对标签实现分发和管理 标签分配方式决定了LSR是如何向上游分配标签,即下游LSR分配标签的时序LDP的标签分配方式有两种类型: 1. 独立模式:该模式中,LSR 可以在任何时候向其上游邻居通告标签映射,而不需要等待其下游的邻居为其通告的标签映射该模式可以在何意时间建立及发布标签映射,没有消息等待的延时,因此 LSP 的聚集与创建快其缺点为不利于环路的检测 2. 有序模式:该模式中,LSR 必须在收到其下游邻居为其通告标签映射后才能为其上游邻居通告标签映射消息由于 LSR 在通告标签映射消息时可能有一段的等待延迟,因此 LSP 的聚集与创建速度慢但由于映射消息是有序发布的,利于环路检测的实现 标签保持方式则定义了当LSR收到当前无效的标签映射时,其对该标签的处理方式主要有两种处理方式: 1. 保守模式:如果 LSR 收到多个相同的 FEC 的不同 LSP 的标签映射消息,但 LSR 只保留和路由表中下一跳匹配的 LSP,即只保留数据转发的标签映射保守模式最大的优点在于只保存和维护真正数据转发的标签,这样可极大地节省标签空间但是,保守模式 11 的收敛时间较长,当路由发生变化时,保守模式必须等到收到新的标签映射才能进行数据转发 2. 自由模式:该模式中,LSR 保存所有收到的标签映射自由模式最大的优点是当路由发生变化时,由于标签已存在,所以收敛的速度很快其缺点是需要为所有的标签映射进行管理和维护 标签通告方式决定了LSR何时向上游发送标签映射消息主要有两种模式: 1. 下游自主:LSR 主动向其上游 LSR 发送标签映射消息,而不需要等待上游标签请求消息 2. 下游按需:下游只有在收到上游发送的标签请求消息后才能向上游发送一个相应的标签映射消息 一般地,基于数据包的 MPLS 使用下游自主模式,而 ATM MPLS 使用的则是下游按需 的标签通告方式 二、 标签通告机制 LDP主要通过四种标签通告消息实现对标签的管理: 1. 标签映射消息(Label Mapping Message):下游 LSR 为 FEC 分配标签,并将标签与 FEC 的绑定信息通告给其上游 2. 标签请求消息(Label Request Message):上游 LSR 向其下游请求相应 FEC 的标签映射 3. 标签回收消息(Label Withdraw Message):下游 LSR 向其上游通告回收之前通过标签映射消息通告给上游的一个标签 4. 标签释放消息(Label Release Message):上游 LSR 通知下游 LSR 不再使用上游标签映射通告的标签 LSP 建立起来后,就能通过该 LSP 进行 MPLS 的数据转发LSP 也就是 MPLS 方式隧道数据包有 LSP 的入口处打上相应隧道的标签后,在 MPLS 域中按照标签进行数据的逐跳转发 4.4 LDP环路检测 LDP 提供路径向量(Path-Vector)及路数(Hop-count)两种机制LDP 的这两种环路检测机制都是可选的,都是在 LDP 的标签映射及请求消息中增加相应的消息内容来实现的 在 Path-Vector 机制中,标签映射消息及标签请求消息维护了一个消息所经过的路径向量表,当该消息经过一个 LSR,就将该 LSR 的 LSR-ID 添加到消息当一个 LSR 收到一个带 Path-Vector 消息的标签映射或标签请求消息后,先标签该消息中是否存在自己的 LSR-ID,若存在则检测到环路的发生;若不存在其 LSR-ID,,则先将其 LSR-ID 添加到该消息中,然后再将这个消息转发去且该机制还提供了一个最长路径向量长度:当消息中的路径向量长度超过系统预设的值时,则说明检测到环路的发生 在 Hop-Count 机制中,标签映射及请求消息为消息维护了一个路径路数值,该消息在发送起始端将 Hop-Count 值置为 1,然后消息每经过一个 LSR 就将 Hop-Count 的值加1当 Hop-Count 的值超过系统预设的最大值时,则说明检测到环路的发生当检测到环路时,LSR 必须向消息的发送端回应一个带环路检测状态位的通知消息,并丢弃这个消息 12 4.5 LDP状态机 图表 4-3 LDP会话建立操作的状态转移 LDP会话建立操作的状态迁移的具体过程如下: 1. 在建立会话之前,LSR1,LSR2在每个接口的UDP端口646发送Hello消息,消息中包括一个LDP标识符,同时也要接收UDP端口646的消息; 2. LSR1,LSR2接收到Hello消息后,判断是否已经同发送方建立会话,如果没有开始,准备建立会话; 3. LSR1,LSR2根据双方地址,决定在会话建立中哪个是主动方,哪个是被动方,地址大的一方为主动方,NONEXSITENT状态; 4. 建立支持会话的TCP连接,NIITIALIZED状态; 5. 主动方发送INIT消息,进入OPENSENT状态; 6. 被动方接收到可以接收的Init消息,进入OPENREC状态,同时向对方发送Init消息和Keep Alive消息; 7. 进入OPENSEND的一方接收到可以接收的Init消息进入OPENREC状态,同时向对方发送Keep Alive消息; 8. 进入OPENREC的一方接收到Keep Alive消息进入OPERATIONAL状态 5 VPWS实现方案 VPWS是指在分组交换网络 PSN(Packet Switched Network)中尽可能真实地模仿 ATM、帧中继、以太网、低速 TDM(Time Division Multiplexing)电路和 SONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)等业务的基本行为和特征的一种二层业务承 13 载技术在公用网络中提供的一种点到点的 L2VPN业务VPWS 可以让两个站点之间的连接效果像直接用线路连接一样,它不能直接在服务提供者处进行多点间的交换 5.1协议模块  LDP信令协议  LDP扩展信令协议  提供新型FEC支持  标签的映射、回收、释放处理  支持非直连LDP Session的建立与维护 5.2支撑模块  二层VPN路由信息的管理  与外层隧道的匹配  生成转发表和标签转发表 5.3数据包处理模块  封装、解封装  接口管理和属性配置操作  根据入口数据提供路由匹配  数据转发 6 VPLS实现方案 6.1控制平面 6.1.1成员发现 找到同一VPLS中所有其他 PE 的过程这可以通过手工配置的方式实现,也可以使用协议自动完成,如 BGP使用协议自动完成的发现方式称为“自动发现” VPLS信令协议有LDP和MP-BGP两种,前者利用LDP作为传递VC信息的信令,此方式只能手工静态指定PE邻居后者利用MP-BGP作为传递VC信息的信令,MP-BGP支持拓扑自动发现 LDP方式适合用在VPLS的站点比较少,不需要或者很少跨域的情况,特别是PE不运行BGP的时候当VPLS网络比较大时,可以采用两种方式结合的HVPLS,核心层使用BGP方式,接入层使用LDP方式 14 6.1.2信令机制 在同一 VPLS的 PE 之间建立、维护和拆除 PW 的任务是由信令协议完成的,如LDP和 BGP外层标签为公网MPLS LSP标签,由LDP协议分配,有了外层标签,报文才能在公网上传输内层标签为VC标签,由remote LDP Session协商分配,PE为每条VC分配一个标签,如何分配是由两端PE事先协商确定的PE根据内层标签判断报文属于哪条VC,从而传给正确的CE只有两层标签都正确分配了,VC才能up,VPLS才能开始工作 LDP信令协议作为一种MPLS控制与信息协议,用于LSR设备在MPLS网络中为FEC分配标签,完成标签与FEC间的映射,并定义了一系列过程和消息来创建和维护LSP,将FEC与LSP相关联,使MPLS报文能按标签进行转发 LDP操作的基本单元是一对LDP PEERLDP PEER就是使用LDP协议交换LDP消息的两个LSRPEER之间存在着LDP会话,通过会话来交换标签和FEC映射消息会话就是LDP PEER间一个连接 6.2数据平面 在数据转发层,每个PE为每个VPLS服务实例维护一个转发信息库(FIB),并且把已知的MAC地址加入到相应的FIB表中所有流量都基于MAC地址进行交换,未知的数据包(如目的MAC地址未知)将广播给所有参与该VPN的PE,直至目的站响应且与该VPN相关的PE学习到该MAC地址 6.2.1封装 从 CE 收到以太网帧后,PE 首先对其封装后再发送到分组交换网络上 6.2.1.1 AC上的报文封装 AC 上的报文封装方式由用户的 VSI 接入方式决定用户接入方式可以分为两种:VLAN 接入和Ethernet接入其含义如下: VLAN接入:CE发送给 PE或 PE发送给 CE的以太网帧头带有一个 VLAN Tag,该 Tag是一个服务提供商网络为了区分用户而要求用户压入的“服务定界符”我们把这个作为服务定界符的 Tag称为 P-Tag Ethernet 接入:CE 发送给 PE 或 PE 发送给 CE 的以太网帧头中没有服务定界符,如果此时帧头中有 VLAN Tag,则说明它只是用户报文的内部 VLAN Tag,对于 PE设备没有意义这种用户内部 VLAN的 Tag称为 U-Tag 6.2.1.2 PW上的报文封装 PW上的报文封装方式也可以分为两种:Ethernet模式和 VLAN模式 Ethernet模式下,P-Tag不在 PW上传输:对于 CE侧的报文,如果收到带有服务定界符的 15 报文,则将其去除后再压入两层 MPLS 标签后转发;如果收到不带服务定界符的报文,则直接压入两层 MPLS 标签后转发对于 PE 侧的下行报文,根据实际配置选择添加或不添加服务定界符后转发给 CE,但是它不允许重写或移除已经存在的任何 Tag VLAN模式下,PW上传输的帧必须带 P-Tag:对于 CE侧的报文,如果收到带有服务界定符的报文,保留 P-Tag,或者将 P-Tag改写为对端 PE期望的VLAN Tag或者空 Tag(Tag值为0),再压入 PW标签和隧道标签后转发;如果收到不带服务界定符的报文,则添加一个对端PE期望的VLAN Tag或空 Tag后,再压入 PW标签和隧道标签后转发对于 PE侧的下行报文,根据实际配置选择重写、去除或保留服务界定符后转发给 CE 针对不同的入报文格式,VPLS网络有不同的处理方式 表 6-1 VPLS报文和封装类型 6.2.2转发 在数据转发层,PE 为每个 VPLS 实例维护一个转发信息库(FIB),并且把已知的 MAC 地址加入到相应的 FIB 表中所有流量都基于 MAC 地址进行交换,未知的数据包(如目的 MAC 地址未知)将广播给所有参与该 VPN 的 PE,直至目的站响应且与该 VPN 相关的 PE 学习到该 MAC 地址 VPLS为用户网络模拟了一个以太网桥,基于MAC地址或者MAC地址加VLAN TAG来做出转发决策跟一个特定的VPLS服务关联的每个PE设备都为该VPLS实例建立一个VSI(虚拟交换实例,每个VSI由一对单向的MPLS VC构成,一个PE内有多个VSI ),每个VSI维护一张MAC地址表,并具有泛洪和转发、MAC地址学习和老化的功能,以便实现报文的转发MPLS转发也是通过相关表项的创建和查找实现当MPLS转发相关的表项建立起来后,根据查到的表项进行相应的操作,进而实现MPLS标签转发 主要包括下面几个方面:  MAC地址学习  MAC地址泛洪  环路避免 具体的数据传送过程:当位于 VPLS 域内的 PE 收到用户通过以太网端口发来的数据包,将进行以下处理: 1.去掉该以太网数据包的前导字节和校验字节,具体如下: (1)分析该以太网数据包的 DMAC 字段,查找 PE 上的 MAC 地址表,寻址对应的出口; (2)如果出口是普通的以太网端口,则直接转发,并在 MAC 地址表中更新/增加针对源地址的条目; (3)如果出口是经某 PW 到达另一个 PE,则转到步骤 2; 16 (4)如果 PE 上 MAC 地址表中没有对应的表项,则泛洪该数据包到所有端口,其中对泛洪到 PW 端口的数据包按照步骤 2 进行后续处理 2.如果需要,在经步骤 1 处理后的数据包前面添加 control word 字段; 3.在经步骤 2 处理后的数据包前面添加子隧道标记和外层隧道标记,即内外层标签; 4.打包好的数据包进入运营商提供的网络,通过外层标签一路转发到目的 PE设备; 5.目的 PE 根据内存标签查找对应的 VPLS 内的 MAC 地址表,而后转发到相应的以太网端口,整个数据转发过程结束 6.2.2.1与转发相关的表项 1. 标签栈:MPLS分组上可以承载一系列按照“后进先出”方式组织起来的标签,这种结构为标签栈若一个分组的标签栈深度为d,则栈底标签为1级标签,栈顶标签为d级标签未打标签的分组为标签栈为空的分组 2. 下一跳标签转发条目(Next Hop Label Forwarding Entry ,NHLFE):转发MPLS报文时将查找下一跳标签转发条目查该表项可以得到转发该分组的下一跳及标签操作因此该表项必须包含下列两个信息:(1)分组的下一跳;(2)标签栈栈项标签的操作 标签操作有三种:  SWAP:用特定的新标签替代标签栈顶的标签;  POP:弹出标签栈栈底的标签;  PUSH:将一个新的标签压入到标签栈中 3. FTN表:该表项主要是为了实现FEC到NHLFE的映射FTN将每个FEC映射到一组NHLFE当LER收到未打标记的分组时,如果该分组要进行MPLS转发,则转发时需要使用FTN为分组打上标签使之成为一个MPLS包FTN主要实现FEC与NHLFE之间的映射,即当FTN将某一特定标签映射到包含多个元素的一组NHLFE上时,在对该分组进行转发之前必须从该组中明确地选出一个元素 4. 入射标签映射(Incoming Label Map,ILM):LSR收到MPLS报文时,查找其ILM将每个入标签映射到一组NHLFE当ILM将某一特定标签映射到包含多个元素的一组NHLFE时,转发该分组之前必须从该组中明确地选出一个元素 5. 标签转发信息库(LFIB):使用标签来进行索引,作用类似于路由表,包含各个标签所对应的转发信息 图表 6-2 LFIB结构 6.2.2.2转发过程 1、标签分配协议和传统路由协议一起,在各个LSR中为有业务需求的FEC建立路由表和MPLS转发相关的表项; 2、当MPLS域入口处的LER收到分组后,完成第三层功能,即判定分组所属的FEC,并给分组打上标签,此时该分组就成为一个MPLS报文,并根据MPLS表项将报文转发出去; 3、在LSR构成的MPLS网络中,LSR对收到的MPLS报文分组不再进行任何第三层处理,只 17 是依据分组上的标签以及标签转发表对分组进行转发; 4、在MPLS域的出口LER上,将分组中的标签弹掉后继续进行转发此时,转发可能分成两种情况:(1)标签栈非空,说明分组将进入另一个MPLS域,继续进行MPLS转发(2)标签栈为空,即分组为正常的IP分组,这时进行传统的路由转发当MPLS域的出口LER弹出最外层标签后,还要进行其它较复杂的三层工作,为节省这些工作,可以采用倒数第二跳弹出机制(Penultimate Hop Popping,PHP ) 6.3MAC地址学习,回收,泛洪和老化 6.3.1 MAC地址学习 1. 远程MAC地址学习模块 由于PW由一对单向的VC LSP组成(只有两个方向的VC LSP都UP才认为PW是UP的),当在入方向的VC LSP上学习到一个原来未知的MAC地址后,需要PW将此MAC地址与出方向的VC LSP形成映射关系 2. 跟用户直连端口的本地MAC地址学习模块 对于CE上送的二层报文,需要将报文中的源MAC学习到VSI的对应端口上 3. MAC地址学习能力问题 电信的典型切换时间是 50ms那么,MAC地址学习能力多强合适?设备 MAC地址容量典型为 64K MAC地址时, 64K MAC地址在 50ms内完成倒换, 学习能力要求为:64K/50ms = 1.28M次/秒;当为 16K MAC地址,学习能力要求为:16K/50ms = 320K次/秒 MAC 地址学习有两种模式: 1. Qualified PE 根据用户以太报文的 MAC 地址和VLAN Tag 进行学习,即,基于每个 VSI 的每个 VLAN 进行学习这种模式下,每个用户 VLAN 形成自己的广播域,有独立的 MAC 地址空间 2. Unqualified PE 仅根据用户以太报文的 MAC 地址进行学习,即,基于每个 VSI 进行学习这种模式下,所有用户 VLAN 共享一个广播域和一个 MAC 地址空间,用户 VLAN的 MAC 地址必须唯一,不能发生地址重叠 6.3.2 MAC地址回收 动态学习到的 MAC 地址必须有刷新和重学习的机制VPLS 相关草案中提供了一种可选 MAC TLV的地址回收消息,用来移除或重学习 MAC 地址列表 在拓扑结构改变时为了能快速的移除 MAC 地址,可以使用地址回收消息地址消息分为两类: 1. 带有 MAC 表项地址列表的消息 2. 不带 MAC 地址列表的消息 如果一条备份链路(AC 链路或者 VC 链路)变为活动状态后,感知到链路状态变化的PE 会收到系统发送的带有重新学习 MAC 表项列表的通知消息该 PE 收到此更新消息后,将更新 VPLS实例的 FIB 表中对应的 MAC 表项,并将此消息发送给其他相关的LDP会话直连的 18 PE如果通知消息中包含空的 MAC 地址 TLV列表,表示告知 PE 移除指定 VPLS实例中的所有 MAC 地址,但是从发送此消息的 PE 处学习到的 MAC 地址除外 6.3.3 MAC地址泛洪 当FIB表不包含目的MAC地址的时候,就需要VPLS泛洪,广播和多播同样也需要泛洪要泛洪的包有可能是从用户端口或者其他PE站点收到的如果是从用户端口收到的,包必须要泛洪到其他的用户端口以及其他的PE如果是从其他的PE收到的,则只能泛洪到面向端口的用户,这类似于水平分割 图表 6-3 MAC地址的学习与泛洪 6.3.4 MAC地址老化 PE 学习到的远程 MAC 地址需要有老化机制来移除与 VC 标签相关的不再使用的表项PE 在接收到报文时根据源地址会重置与该地址对应的老化定时器 6.4 VPLS环路避免 1. PE 之间逻辑上全连接(PW 全连接),也就是每个 PE 必须为每一个 VPLS 转发实例创建一棵到该实例下的所有其他 PE的树 2. 每个 PE设备必须支持水平分割策略来避免环路,即 PE不能在具有相同 VSI的 PW之间转发报文(由于在同一个 VSI中每个 PE直连),也就是说,从公网侧 PW收到的数据包不再转发到其他 PW上,只能转发到私网侧 3. 当CE有多条连接到PE,或连接到一个VPLS VPN的不同CE间有连接时,VPLS不能避免环路发生,需要使用其他方法,如STP等来避环 6.5全连接VPLS 全连接VPLS就是所有的 PE 设备之间建立全连接的隧道 LSP对每一个 VPLS服务,必须在 PE 设备之间创建 N×(N-1)÷2 条 PW不过这些都是由信令协议生成的 全连接VPLS不能大规模的应用的真正缺点是提供 VC的 PE 设备需要复制数据包,对于第一个报文和广播、组播报文,每个 PE 设备需要向所有的对端设备广播报文,这样就会浪费 19 带宽 6.6分层VPLS H-VPLS是为了解决当PE数目增大时PW全连接的问题,它的核心思想是通过把网络分级,每一级网络形成全连接,分级间的设备通过QinQ或者 PW 来连接,分级之间的设备的数据转发不遵守水平分割原则,而是可以相互转发 HVPLS组网中,SPE 之间必须建立全连接的 PWUPE 只允许接入一个 SPE 设备有主备链路时,允许接入两个 SPE 设备 SPE 可以接入多个 UPE 设备; 分层VPLS有两中接入方式: 1. LSP 接入 UPE作为汇聚设备,它只跟 SPE建立一条虚连接而接入链路 PW,跟其他所有的对端都不建立虚链接 2. QinQ接入 UPE作为汇聚设备,它只跟 SPE建立一条QinQ隧道,跟其他所有的对端都不建立连接 UPE 以 QinQ接入 SPE 时,SPE 上对应实例的接入方式应为 VLAN 接入,如果有链路备份,在 UPE 与两个 SPE 之间需要启用 STP来备份链路 UPE 以 LSP接入 SPE 时,UPE 可以使用 VPWS、VPLS方式接入 SPE,并且在 SPE 需要明确指明接入的设备为 UPE,如果有主备 PW 备份,需要指明 SPE 的主备关系; UPE 与 SPE 的角色定义仅限于某个 VPLS实例内 图表 6-4 分层VPLS的LSP接入方式 6.7 双向失效检测协议 BFD检测链路状态的机制 7 MS-PW实现方案 多段 PW 组网方式的引入弥补单段 PW 方式组网的不足多段 PW 组网的应用场景主要有六种: 20 1. 跨运营商网络建立 PW; 2. 单段 PW 要求 PE 知道其远端 PE 的信息及 IP 地址,但是由于设置及安全方面的限制,PE 获取不到其远端 PE 的相关信息,并且单段 PW 要求其隧道在同一个自制区域(AS)内,交换的是内层和外层标签当两个 PE 不在同一 AS 中时,不能跨区域建立 PE 间隧道这时就需要通过建立多段 PW 来实现 PE 间的伪线路连接; 3. 当两 TPE 处于不同运营商网络中时,不同的运营商在建立和维护 PW 且 PW 转发数据时,对数据的安全性要求不同,可以运用了多种加密方式,而单段 PW 的组网方式则要求两 TEP 间信息的互通,因此这种情况下只能通过多段 PW 来实现不同运营商间 PW 的建立与维护; 4. 在不同运营商网络中,PWE3 所用的信令协议及 PSN 的类型也不同; 5. 从流量工程及网络带宽方面考虑; 6. 在 PW 中,无论是接入网还是核心网,运营商都希望能降低 PW 维护和复杂度及和运营的价,多段 PW 技术的简化、灵活了 PW 的组网、降低了维护的代价对 PE 设备而言,其建立 LDP 会话的能力也是有限的,多段 PW 的组网方式不仅减少了 TPE 在 LDP 会话上开销,而且降低了对 PE 设备 LDP 会话连接能力的要求 图表 7-1 多段MS-PW网络参考模型 只有当 MS-PW 所组成的 SS-PW 段均处于可操作状态时,该 MS-PW 才为可操作的因此,组成 MS-PW 的各 SS-PW 段不能独立工作,不能独自进行信令交互与数据报的转发操作 SPE 并没有封装层,因此 SPE 对不改变报文的内容只是根据接收的报文的 PW 标签查表进行标签上的操作,将报文上的 PW 标签由上一个实例的标签转为下一 PW的标签若切换的两条 SS-PW 段的承载隧道的类型不同,则还需根据隧道类型在隧道封装层上作相应的更新 7.1 报文封装 对 ATM、帧中继、以太网、低速 TDM 电路和 SONET/SDH 等业务进行仿真根据数据的特征可以将 PWE3 的载荷分为四种载荷类型:分组、信元、结构化比特流、非结构化比特流 1. 分组 分组就是通过 AC 传递给 PE 的变长数据单元一般与数据报边缘的描述及封装格式有关在 PWE3 业务中,Ethernet、HDLC、FR、ATM AAL5 PDU 就是典型的分组报文分组报文在进入 PW 时会剥去其传输头部对分组报文的处理有分片、排序、实时及过滤等 2. 信元 与分组相比,信元的长度是固定的信元有两种类型 ATM 的 53 字节信元、DVB 传输的 21 188 字节的 MPEG 信元为了减少 PSN PDU 的传输数量,可以将信元进行级联,同时这种级联的形式可以减少因为 PSN PDU 数量太大导致的时延抖动加剧和报文丢失概率信元载荷通常需要时序及时钟功能的支持 3. 非结构化比特流 非结构化的比特流为逐比特图,是对比特图进行的捕获、传输,并在 PW 上重放传统的 TDM 电路数据就是典型的非结构化比特流该类型的承载通常也需要时序及时钟功能的支持非结构化仿真(SAToP)模式, 4. 结构化比特流 结构化比特流与非结构化比特流一样,也是对比特图进行捕获、传输并在 PW 上重放,但是,结构化比特流还需要结合比特流的内部结构,当然,时序与时钟功能的支持也是必要的该类型承载的典型代表就是 SONET/SDH 业务结构化仿真(CESoPSN)模式支持基于SDH仿真(CEP)模式 7.2 MS-PW组网实现 按 SPE 实现 PW 路由选择的方式分,多段 PW 组网可以为静态配置方式或动态 PW 路由选择两种方式 7.2.1静态配置方式多段PW 静态配置方式指的是在 SPE 处由用户手工配置指定两切换的 SS-PW 段与静态配置方式相比,动态 PW 路由选择则是指在每个 SPE 自动选择下一跳 SS-PW 段,当然,自动 PW 路由的实现要求 SPE 知道网络的拓扑中所有 SPE 及 TPE 的信息,这与传统 IP自动路由的情况非常类似 静态配置方式的多段 PW 主要有三种:纯静态多段 PW、纯动态多段 PW、动静态混合多段 PW 1. 纯静态多段 PW 组成 MS-PW 的各成员 SS-PW 段的类型均为静态 PW每个 SPE 都必须手工配置各条 PW 段的起始及交换信息在纯静态多段PW中,SPE要实现两条静态PW段的连接,只要在配置SPE时直接指出切换的两条PW就可以了,数据转发面基于PW-ID在标签层面上实现两静态PW间的相互切换,报文的PW标签做SWAP操作SPE处不涉及控制协议上的处理 2. 纯动态多段 PW MS-PW 组成成员的 SS-PW 段的类型都是动态 PW动态 PW 的建立与维护是通过扩展 LDP 实现的,两端 PE 通过信令的交互保证 PW可用性动态 PW 的建立与维护是通过扩展 LDP 实现的,两端 PE 通过信令的交互保证 PW可用性多段 PW 中,要在 SPE 实现两动态 SS-PW 段间的切换,就必须通过 SPE 的消息转载,实现两 TPE 间的信令交互,即 TPE 的信令消息通过 SPE 的转接到达对端 TPE 信令交互过程:在 MS-PW 创建时,由 TPE1 触发开始 MS-PW的创建,即通过 LDP 会话向 SPE 发送 Request 消息及 Mapping 消息,当然这两个消息可以封装在同一个数据报文中当 SPE 收到该信令消息报文后,对于 Request 消息更新后直接转发到下一 PW 上;而对于 Mapping 消息,将消息中的 TPE1 的 LDP VC 相关信息在本地保存一份,然后对消息做相应的更新并其下一跳 PW 中转发TPE2 收到消息后,对于Request 消息,如果 VC 链路可用,收回一个 Mapping 消息;若收到 Mapping 消息,则先对 Mapping 消息进行处理, 22 即在本地保存 TPE1 的 LDP VC 相关信息,再检查 PW 类型、接口参数是否匹配,若匹配则置该 PW 段为可操作状态,并向其所在 PW 段的对端回应一个Mapping 消息;否则就向接收消息的 LDP 会话回复一个 Notification 消息TPE2 回复的信令消息经 SPE 更新、中转后转发过 TPE1,若消息为 Mapping 消息,则 SPE 也是先保存TPE2 的 LDP VC 信息,然后进行参数的匹配,匹配成功则置两 SS-PW 段为可操作状态当TPE1 收到 Mapping 消息后也是进行同样的操作,置 PW 段为可操作状态,此时 SPE 与两TPE 端的 PW 均为可操作状态若收到的为 Notification 消息,则开始标签的回收过程,即发送 Withdraw 消息并等待对端回应 Release 消息 3. 动静态混合多段 PW MS-PW 的成员 SS-PW 段中既有静态 PW,也有动态 PW 信令交互过程:当 TPE2 链路可用时,向 SPE 发送一个 Request 消息及Mapping 消息当 SPE 收到信令消息后,查看作为该 动态 PW 的 AC 链路是否可用,即检查静态 PW 段是否处于可操作状态若可用则向 TPE2 回一个 Mapping 消息,当然,该Mapping 消息的接口相关的参数为静态 PW 链路接口相关参数对于 Mapping 消息,SPE先将 TPE2 的 LDP VC 相关的信息保留在本地,然后检查 SPE 与 TPE2 两端的参数是否匹配,若匹配置 PW 为可操作状态,否则向 TPE2 回一个参数不匹配的 Notification 消息TPE2 收到 SPE 回应的 Mapping 消息后,进行 Mapping 消息的处理,将 PW 置为可操作状态PW 拆除时,SPE 与 TPE2 均可以发送标签 Withdraw 消息并等待对端应答的 Release消息 7.2.2动态PW路由方式多段PW 动态路由方式多段 PW是指组网过程中每个 SPE 自动选择下一跳 PW 的 SPE信令交互过程:当 源端 TPE(S-TPE)接入链路可用时,发送标签映射消息开始多段 PW 的创建当 SPE 收到一个映射消息后,根据映射消息的 FEC 的TAII 检查本地是否存在一个相同的 AII,若存在则说明该 SPE 为 TPE;若不存在,则再根据 TAII 查找其 PW 路由表,看是否存在相应的表项指明到达 TAII 的下一跳 PE,则为下一跳 PE 申请标签并向下一跳发送标签映射消息开始下一条 PW 段的创建;如果不存在到达TAII 的相关信息,即 TAII 不可达,说明两 TPE 间的 MS-PW 创建失败,则向映射消息发送端回应一个标签释放消息,消息中携带“AII 不可达”信息当目的端 TPE(T-TPE)收到一个映射消息后,先在本地保存相关信息,然后进行映射消息的处理过程且若其链路可用,回应一个标签映射消息当一个 TPE 链路不可用时,该 TPE 应发送一个标签收回消息,开始多段 PW 的拆除工作SPE 所进行的工作就是 PW 路由选择,并根据情况形成相应的信令消息,当然中间参插着标签的申请与释放 7.3多段伪线环路检测 在多段 PW 中,两 TPE 间的 SPE 的个数可以有多个在组网过程中,构成 MS-PW 的 PW段中可能有环路的出现,这主要出现在纯动态多段 PW 中为保证 PWE3 服务的正常进行,多段 PW 需提供环路检测机制 多段 PW体系可以引用 Path-Vector 环路检测机制的相应原理:标签映射消息每经过一个 SPE,就将该 SPE 的 LSR-ID 加到映射消息中当一个 SPE 收到一个标签映射消息后,先检查映射消息中是否存在其 LSR-ID,若存在则说明环路的发生;若不存在,则在中继转发消息时,将其 LSR-ID 添加至映射消息的 SPE 的 LSR-ID 列表中一起转发 23 1. Path-Vector 机制 在 Path-Vector 机制中,标签映射消息及标签请求消息维护了一个消息所经过的路径向量表,当该消息经过一个 LSR,就将该 LSR 的 LSR-ID 添加到消息当一个 LSR 收到一个带 Path-Vector 消息的标签映射或标签请求消息后,先标签该消息中是否存在自己的 LSR-ID,若存在则检测到环路的发生;若不存在其 LSR-ID,,则先将其 LSR-ID 添加到该消息中,然后再将这个消息转发去且该机制还提供了一个最长路径向量长度:当消息中的路径向量长度超过系统预设的值时,则说明检测到环路的发生 2. Hop-Count 机制 在 Hop-Count 机制中,标签映射及请求消息为消息维护了一个路径路数值,该消息在发送起始端将 Hop-Count 值置为 1,然后消息每经过一个 LSR 就将 Hop-Count 的值加1当 Hop-Count 的值超过系统预设的最大值时,则说明检测到环路的发生 当检测到环路时,LSR 必须向消息的发送端回应一个带环路检测状态位的通知消息,并丢弃这个消息 7.4 VCCV-PING VCCV-PING是一种手工检测虚电路连接状态的工具,就像ICMP-PING和LSP-PING一样,它是通过扩展LSP-PING实现的,我来为大家科普一下关于L2VPN介绍及方案设计?以下内容希望对你有帮助!

L2VPN介绍及方案设计(L2VPN介绍及方案设计)

L2VPN介绍及方案设计

1 MPLS L2VPN介绍及方案设计 1 文档目的 1. 介绍MPLS L2VPN的相关知识; 2. 介绍MPLS L2VPN的实现方案及相关功能模块。 2 MPLS L2VPN介绍 2.1 MPLS L2VPN概念 MPLS L2VPN提供基于 MPLS(MultiProtocol Label Switching,多协议标签交换)网络的二层 VPN服务,使运营商可以在统一的 MPLS网络上提供基于不同数据链路层的二层 VPN,包括 ATM、 FR、Vlan、Ethernet、PPP等。 简单来说,MPLS L2VPN就是在 MPLS网络上透明传输用户二层数据。从用户的角度来看,MPLS网络是一个二层交换网络,可以在不同节点间建立二层连接。 图表 2-1 MPLS L2VPN组网图 1. CE(Customer Edge)设备:用户网络边缘设备,有接口直接与 SP相连。CE可以是路由器或交换机,也可以是一台主机。CE“感知”不到 VPN的存在,也不需要必须支持 MPLS; 2. PE(Provider Edge)路由器:服务提供商边缘路由器,是服务提供商网络的边缘设备,与用户的 CE直接相连。在 MPLS网络中,对 VPN的所有处理都发生在 PE上; 3. P(Provider)路由器:服务提供商网络中的骨干路由器,不与 CE 直接相连。P 设备只需要具备基本 MPLS转发能力; 4. UPE(User facing-Provider Edge):靠近用户侧的PE设备,主要作为用户接入VPN的汇聚设备; 5. NPE(Network Provider Edge):网络核心PE设备,处于VPLS网络的核心域边缘,提供在 2 核心网之间的VPLS透传服务; 6. SPE(Switched Provider Edge):交换节点PE设备,主要用于多段伪线网络中,它在两台PE设备之间作为多段伪线的控制面和数据面的拼接点; 7. 外层标签(称为 Tunnel标签)用于将报文从一个 PE传递到另一个 PE; 8. 内层标签(称为 VC标签)用于区分不同 VPN中的不同连接,用于将报文从一个CE传递到另一个CE。 2.1.1 MPLS专业术语 1. 转发等价类(Forwarding Equivalence Class,FEC):MPLS转发过程中,将等价方式处理的一种数据分组归为一类。划分FEC的好处是:不同目的地址的数据报文,在MPLS网络的入口处被划分为相同的FEC,具有相同的标签,转发时只根据标签的快速交换实现报文的传递,不用在每一跳都进行重新划分FEC,也就是一次路由、多次交换。传统的IP路由转发则相当于在每一跳都重新划分了FEC。 2. 标签(LABEL):是一个短而定长的、具有本地意义的标识符,主要用来标识一个FEC。特定分组上的标签代表着分配给该分组的FEC。MPLS通过标签的嵌套提供无限的业务支持能力。 3. 标签转发路径(Label Switched Path,LSP): MPLS转发时,一特定FEC的数据流在不同的节点被赋于确定的标签,根据标签进行转发。MPLS数据流所走的路径就是LSP。一条LSP就是一条MPLS隧道。通过这条隧道可以为分组提供MPLS转发服务,实现隧道的数据透传。 4. 标签分配协议(Label Distributed Protocol,LDP):用于LSR在网络中分配标签,并定义一系列过程和消息来完成LSR之间标签的发送和处理,LSR通过LDP可以建立网络层路由信息到链路层转发路径映射的LSP,再将FEC与LSP相关联,即可完成MPLS的标签转发。LDP实现LSP与FEC关联。 5. 标签交换路由器(Label Switching Router,LSR)是 MPLS网络中的基本元素,所有 LSR都支持MPLS技术。 6. 多层标签栈:如果分组在超过一层的 LSP 隧道中传送,就会有多层标签,形成标签栈(Label Stack)。在每一隧道的入口和出口处,进行标签的入栈(PUSH)和出栈(POP)操作。 标签栈按照“后进先出”(Last-In-First-Out)方式组织标签,MPLS从栈顶开始处理标签。 MPLS对标签栈的深度没有限制。若一个分组的标签栈深度为 m,则位于栈底的标签为 1级标签,位于栈顶的标签为 m级标签。未压入标签的分组可看作标签栈为空(即标签栈深度为零)的分组。 2.1.2 MPLS转发的基本过程 1. 标签分配协议和传统路由协议一起,在各个LSR中为有业务需求的FEC建立路由表和MPLS转发相关的表项; 2. 当MPLS域入口处的LER收到分组后,完成第三层功能,即判定分组所属的FEC,并给分组打上标签,此时该分组就成为一个MPLS报文,并根据MPLS表项将报文转发出去; 3. 在LSR构成的MPLS网络中,LSR对收到的MPLS报文分组不再进行任何第三层处理,只是依据分组上的标签以及标签转发表对分组进行转发; 4. 在MPLS域的出口LER上,将分组中的标签弹掉后继续进行转发。此时,转发可能分成 3 两种情况:(1)标签栈非空,说明分组将进入另一个MPLS域,继续进行MPLS转发。(2)标签栈为空,即分组为正常的IP分组,这时进行传统的路由转发。当MPLS域的出口LER弹出最外层标签后,还要进行其它较复杂的三层工作,为节省这些工作,可以采用倒数第二跳弹出机制(Penultimate Hop Popping, PHP )。 2.1.3 MPLS平面结构图 图表 2-2 MPLS平面结构图 1. MPLS控制平面 MPLS节点运行IP路由选择协议来和网络中的所有其他MPLS节点交换IP路由选择信息,建立路由选择表提供标签绑定使用的目的网络和子网前缀。 MPLS节点运行标签分配协议分配本地标签绑定信息,并和邻接MPLS节点交换标签绑定信息,组成标签信息库(LBI)以建立标签转发信息库(LFIB)。 2. MPLS数据平面 MPLS转发层面使用标签转发信息库(LFIB)转发带有标签的数据包一个数据在具有MPLS功能的网络中传递可由以下四步完成: 第一步:网络可自动生成路由表,因为路由器或ATM交换机可参与内部网关协议如OSPF/ISIS信息交换LDP使用路由表中的信息去建立相邻设备的标记值,这个标准创建了LSP,预先设置了与最终目的地之间的对应关系; 第二步:一个数据包进入边缘LER时,它会被处理,决定需要哪种第三层的业务,如QoS和带宽管理基于路由和策略的需求,边缘LER有选择地放入一个标记到数据包头中,然后转发; 第三步:位于网络核心的LSR读每一个数据包的标记,并根据标签转发信息库替换一个新的标记,这个动作将会在所有中心设备中重复; 第四步:在出口边缘的LER,除去标记,读数据包头,将其转发到最终目的地。 2.2 组网模型 2.2.1 VPLS模型 VPLS,即Virtual Private LAN Service,实际上是一种基于以太网的L2VPN技术。VPLS集以太网和MPLS的优点于一体,它使分散在不同地理位置上的用户网络可以相互通信,就像它们直 4 接相互连接在一起一样,广域网对于所有用户来说是透明的。 用户接入方式为以太网,支持的接入接口类型单一。从用户的角度来看,整个MPLS网络就是一个二层的交换网络。VPLS可选择使用LDP信令和MP-BGP信令来构建PW,基于LDP协议的信令通过在每一对PE之间建立点到点的LDP会话来建立虚电路。基于BGP协议的信令机制则可以充分利用BGP路由反射器的特点,这样PE只需路由反射器建立信令会话即可,这就大大提高了可扩展性。同时,BGP协议还可以支持跨越多个自治系统(AS)网络结构,这对于多个网络运营商并存情况下的VPLS实现非常有利。 图表 2-3 VPLS组网图 2.2.2 VPWS模型 VPWS是指在分组交换网络PSN(Packet Switched Network)中尽可能真实地模仿ATM、帧中继、以太网、低速TDM电路和SONET/SDH等业务的基本行为和特征的一种二层业务承载技术。 本质上,VPWS技术是一种点到点的虚拟专线技术,能够支持几乎所有的链路层协议。 图表 2-4 VPWS组网 2.2.3 PWE3模型 PWE3(Pseudo-Wire Emulation Edge to Edge):是一种端到端的二层业务承载技术。PWE3对VPWS进行了扩展,主要表现在对Martini方式的扩展。 扩展的方面: 1) 信令扩展 a) LDP信令增加了Notification方式,只通告状态,不拆除信令,除非配置删除或者 5 信令协议中断。这样能够减少控制报文的交互,降低信令开销,兼容原来的LDP和Martini方式。还可以用L2TPv3作为信令。此外PWE3还支持用RSVP作为信令建立有带宽保证的PW,就是RSVP-TE PW。 b) PW隧道的建立常用有两种信令:LDP和RSVP,其中前者是主标准,后者是从标准。 2) 多跳扩展(MS-PW) a) 增加PW多跳功能,扩展了组网方式。PW多跳能够降低对接入设备支持的LDP连接数目的要求,即降低了接入节点的LDP Session的开销。 b) 多跳的接入节点满足PW的汇聚功能,使得网络更加灵活,适合分级(接入、汇聚和核心)。 3) TDM接口扩展 a) 支持更多的电信低速TDM接口。通过控制字CW(Control Word)及转发平面RTP(Real-time Transport Protocol)协议,引入对TDM的报文排序、时钟提取和同步的功能。 b) 支持电信低速TDM接口的好处在于:增加了封装类型(可封装低速TDM)。支持三网合一。是替代传统DDN业务的一种方式。 4) 实时信息的扩展 a) 引入RTP(Real-time Transport Protocol),进行时钟提取和同步。 b) 保证电信信号的带宽、抖动和时延。 5) 对报文进行乱序重传 图表 2-5 MS-PW组网 2.3 L2VPN实现方式 1. CCC方式: CCC采用一层标签传送用户数据, CCC对 LSP的使用是独占性的(不能用于其他L2VPN连接,也不能用于BGP/MPLS VPN或承载普通的IP报文),不需要任何标签信令传递二层 VPN 信息,只要能支持 MPLS 转发即可,分为本地CCC连接和远程CCC连接。 CE-ACE-BU-PE1U-PE2S-PEP1P2Dynamic PWStatic PW 6 图表 2-6 CCC远程连接 2. SVC方式:SVC(Static Virtual Circuit,静态虚拟电路)也是一种静态的 MPLS L2VPN,在 L2VPN信息传递中不使用信令协议。 SVC方式与 Martini方式的 MPLS L2PVN非常类似,但它不使用 LDP传递二层 VC和链路信息,手工配置 VC标签信息即可,其实是 Martini方式的一种静态实现。外层标签(公网隧道)由MPLS LDP建立,内层标签在配置VC的时候进行手工指定,PE之间不需要信令来传递标签信息。 图表 2-7 SVC 连接方式 3. Martini方式:Martini方式MPLS L2VPN着重于在两个 CE之间建立 VC(Virtual Circuit,虚电路)。连接两个 CE的 PE通过扩展的LDP交换VC标签,并通过 VC ID绑定对应的 CE。当连接两个 PE的 LSP建立成功,双方的标签交换和绑定完成后,一个 VC就建立起来了,CE之间可以通过此 VC传递二层数据。一条隧道可以被多条VC共享使用。使用两层标签,内层标签是采用扩展的LDP作为信令进行交互。 图表 2-8 Martini连接方式 4. Kompella方式(此方案暂时不做): Kompella方式的 MPLS L2VPN不直接对 CE与 CE之间的连接进行操作,而是在整个运营商网络中划分不同的 VPN,在 VPN 内部对 CE 进行编号。要建立两个 CE 之间的连接,只需在 PE上设置本地 CE和远程 CE的 CE ID,并指定本地 CE为这个连接分配的 Circuit ID(例如 ATM的 VPI/VCI)。 Kompella方式 MPLS L2VPN以 BGP扩展为信令协议来分发 VC标签。 7 3功能需求 3.1移动招标要求 表格 3-1 移动招标要求支持的功能 CPE-PTN HUB-PTN DC-HUB-PTN VPWS 支持 支持 支持 VPLS 支持 支持 MS-PW 支持 支持 支持 3.2设备功能需求 表格 3-2 设备功能模块细化 实现方式 需要实现的功能模块 VPWS(点对点) CCC方式 报文封装:二层协议仿真 内层标签的静态配置(一层标签) 转发模块 SVC方式 报文封装:二层协议仿真 LDP信令协议分配外层标签 内层标签的静态配置 转发模块 Martini 报文封装:二层协议仿真 LDP信令协议 (外层标签) LDP扩展协议( 内层标签) 转发模块 VPLS(点对多点) Martini 以太网报文封装(tagged, Raw, QinQ接入,Vlan接入) LDP信令模块(标签策略:DU 有序 自由) MAC地址学习、老化、转发和洪泛(水平分割原则) 环路避免(PE全连接,私网STP协议) H-VPLS分层的VPLS(UPE,NPE) BFD检测机制(H-VPLS中使用) 转发模块 MS-PW(多段伪线) PWE3(端到端) 报文封装:二层协议仿真 LDP扩展协议(SPE设备标签映射) 控制层面增加了报文分片、顺序、重组 静动混合多跳组网 环路检测 VCCV-PING(连接性检查) 转发模块 8 4 LDP信令模块 作为一种MPLS控制与信息协议,用于LSR设备在MPLS网络中为FEC分配标签,完成标签与FEC间的映射,并定义了一系列过程和消息来创建和维护LSP,将FEC与LSP相关联,使MPLS报文能按标签进行转发。 LDP操作的基本单元是一对LDP PEER。LDP PEER就是使用LDP协议交换LDP消息的两个LSR。PEER之间存在着LDP会话,通过会话来交换标签和FEC映射消息。会话就是LDP PEER间一个连接。 LDP协议的主要有四种消息类型: 1. Discovery messages:用来通告和维护网络中LSR的存在;LSR设备通过发送各种类型的发现消息,实现LSR上LDP PEER的维护。 2. Session messages:用来建立、维护和停止对等体之间的session;两个LSR确定为LDP PEER关系后,先建立两LSR间的TCP连接,然后在连接的基础上,通过两者会话消息的交互实现LDP会话的建立与维护。 3. Advertisement messages:用来创建、改变和删除针对FEC的标签绑定;当LDP会话建立起来后,通过LDP的标签通告Advertisement消息完成标签的分配与回收,实现LSP的创建与维护。 4. Notification messages:用来提供建议性的消息和错误通知。Notification消息又分为两种:一、错误通知消息,用于本地LSR将错误信息通知给对端LSR。二、建议性通知消息:用于通过LDP会话传递特定LSR的有关信息或状态。 LDP消息交换的过程可为三个不同的阶段: 1. 发现阶段:主要是通过Discovery messages 来发现并建立LDP PEER; 2. 会话建立与维护阶段; 3. LSP的建立和维护阶段。 4.1发现阶段 发现阶段的主要目的是为了发现并建立LDP PEER,LDP提供了两种PEER的发现机制: 1. 基本发现机制:用于发现链路上直连的LSR邻居。 LSR通过周期性地发送Link Hello消息来发现直连的PEER。Link Hello报文的目的地址为224.0.0.2的组播地址,源地址为出接口或者本地LSR ID,使用UDP承载,源端口和目的端口都为646。 2. 扩展发现机制:用于发现链路上非直连LSR。 LSR通过周期性地发送Target Hello消息来发现非直连的PEER。Target Hello消息以用户配置的远端PEER地址为单播目的地址,该Hello消息仍然采用UDP协议,源和目的端口都为646。 两种发现机制都是周期性地发送Hello消息。异同点在于:(1)基本发现机制为组播报文,而扩展发现机制为单播报文;(2)基本发现机制是对称的,即两端LSR均要支持LDP能力,通过互相发送Link Hello消息实现PEER信息的维护;而扩展发现机制为非对称的,两个LSR可能只有一端使用扩展发现机制来与另一端建立连接,连接的接收端可以决定自己是否响应该Hello消息。 9 图表 4-1 LDP信令建立流程 4.2会话的建立与维护 当LSR通过发现消息发现并建立LDP PEER后,触发LDP SEEEION的建立。 图表 4-2 会话的建立与维护 1. 会话的建立 两台LSR之间交换Hello消息触发LDP Session 的建立,Hello消息中携带了消息发送端的LDP ID及其它相关信息。LSR通过所收到的HELLO消息便发现其对端LSR的存在,并建立在本地 10 创建其对端PEER的信息。对于收到的Hello消息,若为Link Hello类型,则检查这个消息是否有效;若为Target Hello类型,则必须根据消息中携带的信息检查本地是否配置相应的远端PEER。如果满足条件,则两端开始搭建会话。 互为对等体关系的两个LSR在建立会话时,双方必须协商出主从关系来决定谁来发起TCP连接。LSR通过对TCP连接的源地址和目的地址的比较大小来决定主从端,地址大的为主。源地址大于目的地址,则本地为主动端;源地址小于目的地址,则本地为被动端。由主动端来发起TCP连接,被动端则永远不会主动发起TCP连接。 当对等体关系的两LSR的TCP连接建立起来后,双方将发送LDP初始化消息进行LDP参数的协商。协商的参数为LDP协议版本号、标签分发方式、会话保持定时间的时间,VPI/VCI/DLCI标签空间范围、环路检测功能等参数。如果参数协商成功,则回应一个Keep alive消息,建立两端的LDP会话;否则,双方由于不断尝试创建会话,会反复发送Initialization消息和Notification错误消息。为了减少带宽的占用,协议规定以指数倒退的方式来抑制会话的重启建立:当LSR收到Notification错误消息以后等待不少于15秒时间再次发起Initialization消息协商,并且下一次的延迟时间应该不少于2分钟。 2. 会话的维护 LDP通过Keep alive消息来维护其会话,LSR会为每一个LDP会话维护一个Keep alive定时器,只要在LDP Session中收到了一个LDP PDU或收到对端发送的一个Keep alive消息,LSR就会重置Keep alive计时器,如果Keep alive超时,LSR便中断LDP会话和TCP连接。 注意重置Keep alive计时器不一定是Keep alive消息,只要是LDP PDU即可。LSR建立LDP 会话后,会定期发送Keep alive 消息来保持LDP 会话。LSR 可以在任何时候中止 LDP Session,只需要发送一个Shutdown消息即可。 4.3 LSP的建立与维护 LSP的建立和维护的过程就是VC标签的分配和回收的过程。分配标签时建立相应的LSP,删除LSP就是回收相应的标签。LDP协议采用下游分配(Downstream assigned)的方式来分配标签,即流量转发的下游设备为特定的FEC分配标签,并将标签与FEC的绑定信息通告给其上游。 一、 标签的分发和管理 LDP对标签的管理主要通过标签的分发和管理实现的。LSR通过标签分配方式、标签保持方式、标签通告方式对标签实现分发和管理。 标签分配方式决定了LSR是如何向上游分配标签,即下游LSR分配标签的时序。LDP的标签分配方式有两种类型: 1. 独立模式:该模式中,LSR 可以在任何时候向其上游邻居通告标签映射,而不需要等待其下游的邻居为其通告的标签映射。该模式可以在何意时间建立及发布标签映射,没有消息等待的延时,因此 LSP 的聚集与创建快。其缺点为不利于环路的检测。 2. 有序模式:该模式中,LSR 必须在收到其下游邻居为其通告标签映射后才能为其上游邻居通告标签映射消息。由于 LSR 在通告标签映射消息时可能有一段的等待延迟,因此 LSP 的聚集与创建速度慢。但由于映射消息是有序发布的,利于环路检测的实现。 标签保持方式则定义了当LSR收到当前无效的标签映射时,其对该标签的处理方式。主要有两种处理方式: 1. 保守模式:如果 LSR 收到多个相同的 FEC 的不同 LSP 的标签映射消息,但 LSR 只保留和路由表中下一跳匹配的 LSP,即只保留数据转发的标签映射。保守模式最大的优点在于只保存和维护真正数据转发的标签,这样可极大地节省标签空间。但是,保守模式 11 的收敛时间较长,当路由发生变化时,保守模式必须等到收到新的标签映射才能进行数据转发。 2. 自由模式:该模式中,LSR 保存所有收到的标签映射。自由模式最大的优点是当路由发生变化时,由于标签已存在,所以收敛的速度很快。其缺点是需要为所有的标签映射进行管理和维护。 标签通告方式决定了LSR何时向上游发送标签映射消息。主要有两种模式: 1. 下游自主:LSR 主动向其上游 LSR 发送标签映射消息,而不需要等待上游标签请求消息。 2. 下游按需:下游只有在收到上游发送的标签请求消息后才能向上游发送一个相应的标签映射消息。 一般地,基于数据包的 MPLS 使用下游自主模式,而 ATM MPLS 使用的则是下游按需 的标签通告方式。 二、 标签通告机制 LDP主要通过四种标签通告消息实现对标签的管理: 1. 标签映射消息(Label Mapping Message):下游 LSR 为 FEC 分配标签,并将标签与 FEC 的绑定信息通告给其上游。 2. 标签请求消息(Label Request Message):上游 LSR 向其下游请求相应 FEC 的标签映射。 3. 标签回收消息(Label Withdraw Message):下游 LSR 向其上游通告回收之前通过标签映射消息通告给上游的一个标签。 4. 标签释放消息(Label Release Message):上游 LSR 通知下游 LSR 不再使用上游标签映射通告的标签。 LSP 建立起来后,就能通过该 LSP 进行 MPLS 的数据转发。LSP 也就是 MPLS 方式隧道。数据包有 LSP 的入口处打上相应隧道的标签后,在 MPLS 域中按照标签进行数据的逐跳转发。 4.4 LDP环路检测 LDP 提供路径向量(Path-Vector)及路数(Hop-count)两种机制。LDP 的这两种环路检测机制都是可选的,都是在 LDP 的标签映射及请求消息中增加相应的消息内容来实现的。 在 Path-Vector 机制中,标签映射消息及标签请求消息维护了一个消息所经过的路径向量表,当该消息经过一个 LSR,就将该 LSR 的 LSR-ID 添加到消息。当一个 LSR 收到一个带 Path-Vector 消息的标签映射或标签请求消息后,先标签该消息中是否存在自己的 LSR-ID,若存在则检测到环路的发生;若不存在其 LSR-ID,,则先将其 LSR-ID 添加到该消息中,然后再将这个消息转发去。且该机制还提供了一个最长路径向量长度:当消息中的路径向量长度超过系统预设的值时,则说明检测到环路的发生。 在 Hop-Count 机制中,标签映射及请求消息为消息维护了一个路径路数值,该消息在发送起始端将 Hop-Count 值置为 1,然后消息每经过一个 LSR 就将 Hop-Count 的值加1。当 Hop-Count 的值超过系统预设的最大值时,则说明检测到环路的发生。当检测到环路时,LSR 必须向消息的发送端回应一个带环路检测状态位的通知消息,并丢弃这个消息。 12 4.5 LDP状态机 图表 4-3 LDP会话建立操作的状态转移 LDP会话建立操作的状态迁移的具体过程如下: 1. 在建立会话之前,LSR1,LSR2在每个接口的UDP端口646发送Hello消息,消息中包括一个LDP标识符,同时也要接收UDP端口646的消息; 2. LSR1,LSR2接收到Hello消息后,判断是否已经同发送方建立会话,如果没有开始,准备建立会话; 3. LSR1,LSR2根据双方地址,决定在会话建立中哪个是主动方,哪个是被动方,地址大的一方为主动方,NONEXSITENT状态; 4. 建立支持会话的TCP连接,NIITIALIZED状态; 5. 主动方发送INIT消息,进入OPENSENT状态; 6. 被动方接收到可以接收的Init消息,进入OPENREC状态,同时向对方发送Init消息和Keep Alive消息; 7. 进入OPENSEND的一方接收到可以接收的Init消息进入OPENREC状态,同时向对方发送Keep Alive消息; 8. 进入OPENREC的一方接收到Keep Alive消息进入OPERATIONAL状态。 5 VPWS实现方案 VPWS是指在分组交换网络 PSN(Packet Switched Network)中尽可能真实地模仿 ATM、帧中继、以太网、低速 TDM(Time Division Multiplexing)电路和 SONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)等业务的基本行为和特征的一种二层业务承 13 载技术。在公用网络中提供的一种点到点的 L2VPN业务。VPWS 可以让两个站点之间的连接效果像直接用线路连接一样,它不能直接在服务提供者处进行多点间的交换。 5.1协议模块  LDP信令协议  LDP扩展信令协议  提供新型FEC支持  标签的映射、回收、释放处理  支持非直连LDP Session的建立与维护 5.2支撑模块  二层VPN路由信息的管理  与外层隧道的匹配  生成转发表和标签转发表 5.3数据包处理模块  封装、解封装  接口管理和属性配置操作  根据入口数据提供路由匹配  数据转发 6 VPLS实现方案 6.1控制平面 6.1.1成员发现 找到同一VPLS中所有其他 PE 的过程。这可以通过手工配置的方式实现,也可以使用协议自动完成,如 BGP。使用协议自动完成的发现方式称为“自动发现” 。 VPLS信令协议有LDP和MP-BGP两种,前者利用LDP作为传递VC信息的信令,此方式只能手工静态指定PE邻居。后者利用MP-BGP作为传递VC信息的信令,MP-BGP支持拓扑自动发现。 LDP方式适合用在VPLS的站点比较少,不需要或者很少跨域的情况,特别是PE不运行BGP的时候。当VPLS网络比较大时,可以采用两种方式结合的HVPLS,核心层使用BGP方式,接入层使用LDP方式。 14 6.1.2信令机制 在同一 VPLS的 PE 之间建立、维护和拆除 PW 的任务是由信令协议完成的,如LDP和 BGP。外层标签为公网MPLS LSP标签,由LDP协议分配,有了外层标签,报文才能在公网上传输。内层标签为VC标签,由remote LDP Session协商分配,PE为每条VC分配一个标签,如何分配是由两端PE事先协商确定的。PE根据内层标签判断报文属于哪条VC,从而传给正确的CE。只有两层标签都正确分配了,VC才能up,VPLS才能开始工作。 LDP信令协议作为一种MPLS控制与信息协议,用于LSR设备在MPLS网络中为FEC分配标签,完成标签与FEC间的映射,并定义了一系列过程和消息来创建和维护LSP,将FEC与LSP相关联,使MPLS报文能按标签进行转发。 LDP操作的基本单元是一对LDP PEER。LDP PEER就是使用LDP协议交换LDP消息的两个LSR。PEER之间存在着LDP会话,通过会话来交换标签和FEC映射消息。会话就是LDP PEER间一个连接。 6.2数据平面 在数据转发层,每个PE为每个VPLS服务实例维护一个转发信息库(FIB),并且把已知的MAC地址加入到相应的FIB表中。所有流量都基于MAC地址进行交换,未知的数据包(如目的MAC地址未知)将广播给所有参与该VPN的PE,直至目的站响应且与该VPN相关的PE学习到该MAC地址。 6.2.1封装 从 CE 收到以太网帧后,PE 首先对其封装后再发送到分组交换网络上。 6.2.1.1 AC上的报文封装 AC 上的报文封装方式由用户的 VSI 接入方式决定。用户接入方式可以分为两种:VLAN 接入和Ethernet接入。其含义如下: VLAN接入:CE发送给 PE或 PE发送给 CE的以太网帧头带有一个 VLAN Tag,该 Tag是一个服务提供商网络为了区分用户而要求用户压入的“服务定界符”。我们把这个作为服务定界符的 Tag称为 P-Tag。 Ethernet 接入:CE 发送给 PE 或 PE 发送给 CE 的以太网帧头中没有服务定界符,如果此时帧头中有 VLAN Tag,则说明它只是用户报文的内部 VLAN Tag,对于 PE设备没有意义。这种用户内部 VLAN的 Tag称为 U-Tag。 6.2.1.2 PW上的报文封装 PW上的报文封装方式也可以分为两种:Ethernet模式和 VLAN模式。 Ethernet模式下,P-Tag不在 PW上传输:对于 CE侧的报文,如果收到带有服务定界符的 15 报文,则将其去除后再压入两层 MPLS 标签后转发;如果收到不带服务定界符的报文,则直接压入两层 MPLS 标签后转发。对于 PE 侧的下行报文,根据实际配置选择添加或不添加服务定界符后转发给 CE,但是它不允许重写或移除已经存在的任何 Tag。 VLAN模式下,PW上传输的帧必须带 P-Tag:对于 CE侧的报文,如果收到带有服务界定符的报文,保留 P-Tag,或者将 P-Tag改写为对端 PE期望的VLAN Tag或者空 Tag(Tag值为0),再压入 PW标签和隧道标签后转发;如果收到不带服务界定符的报文,则添加一个对端PE期望的VLAN Tag或空 Tag后,再压入 PW标签和隧道标签后转发。对于 PE侧的下行报文,根据实际配置选择重写、去除或保留服务界定符后转发给 CE。 针对不同的入报文格式,VPLS网络有不同的处理方式。 表 6-1 VPLS报文和封装类型 6.2.2转发 在数据转发层,PE 为每个 VPLS 实例维护一个转发信息库(FIB),并且把已知的 MAC 地址加入到相应的 FIB 表中。所有流量都基于 MAC 地址进行交换,未知的数据包(如目的 MAC 地址未知)将广播给所有参与该 VPN 的 PE,直至目的站响应且与该 VPN 相关的 PE 学习到该 MAC 地址。 VPLS为用户网络模拟了一个以太网桥,基于MAC地址或者MAC地址加VLAN TAG来做出转发决策。跟一个特定的VPLS服务关联的每个PE设备都为该VPLS实例建立一个VSI(虚拟交换实例,每个VSI由一对单向的MPLS VC构成,一个PE内有多个VSI ),每个VSI维护一张MAC地址表,并具有泛洪和转发、MAC地址学习和老化的功能,以便实现报文的转发。MPLS转发也是通过相关表项的创建和查找实现。当MPLS转发相关的表项建立起来后,根据查到的表项进行相应的操作,进而实现MPLS标签转发。 主要包括下面几个方面:  MAC地址学习  MAC地址泛洪  环路避免 具体的数据传送过程:当位于 VPLS 域内的 PE 收到用户通过以太网端口发来的数据包,将进行以下处理: 1.去掉该以太网数据包的前导字节和校验字节,具体如下: (1)分析该以太网数据包的 DMAC 字段,查找 PE 上的 MAC 地址表,寻址对应的出口; (2)如果出口是普通的以太网端口,则直接转发,并在 MAC 地址表中更新/增加针对源地址的条目; (3)如果出口是经某 PW 到达另一个 PE,则转到步骤 2; 16 (4)如果 PE 上 MAC 地址表中没有对应的表项,则泛洪该数据包到所有端口,其中对泛洪到 PW 端口的数据包按照步骤 2 进行后续处理。 2.如果需要,在经步骤 1 处理后的数据包前面添加 control word 字段; 3.在经步骤 2 处理后的数据包前面添加子隧道标记和外层隧道标记,即内外层标签; 4.打包好的数据包进入运营商提供的网络,通过外层标签一路转发到目的 PE设备; 5.目的 PE 根据内存标签查找对应的 VPLS 内的 MAC 地址表,而后转发到相应的以太网端口,整个数据转发过程结束。 6.2.2.1与转发相关的表项 1. 标签栈:MPLS分组上可以承载一系列按照“后进先出”方式组织起来的标签,这种结构为标签栈。若一个分组的标签栈深度为d,则栈底标签为1级标签,栈顶标签为d级标签。未打标签的分组为标签栈为空的分组。 2. 下一跳标签转发条目(Next Hop Label Forwarding Entry ,NHLFE):转发MPLS报文时将查找下一跳标签转发条目。查该表项可以得到转发该分组的下一跳及标签操作。因此该表项必须包含下列两个信息:(1)分组的下一跳;(2)标签栈栈项标签的操作。 标签操作有三种:  SWAP:用特定的新标签替代标签栈顶的标签;  POP:弹出标签栈栈底的标签;  PUSH:将一个新的标签压入到标签栈中。 3. FTN表:该表项主要是为了实现FEC到NHLFE的映射。FTN将每个FEC映射到一组NHLFE。当LER收到未打标记的分组时,如果该分组要进行MPLS转发,则转发时需要使用FTN为分组打上标签使之成为一个MPLS包。FTN主要实现FEC与NHLFE之间的映射,即当FTN将某一特定标签映射到包含多个元素的一组NHLFE上时,在对该分组进行转发之前必须从该组中明确地选出一个元素。 4. 入射标签映射(Incoming Label Map,ILM):LSR收到MPLS报文时,查找其ILM将每个入标签映射到一组NHLFE。当ILM将某一特定标签映射到包含多个元素的一组NHLFE时,转发该分组之前必须从该组中明确地选出一个元素。 5. 标签转发信息库(LFIB):使用标签来进行索引,作用类似于路由表,包含各个标签所对应的转发信息。 图表 6-2 LFIB结构 6.2.2.2转发过程 1、标签分配协议和传统路由协议一起,在各个LSR中为有业务需求的FEC建立路由表和MPLS转发相关的表项; 2、当MPLS域入口处的LER收到分组后,完成第三层功能,即判定分组所属的FEC,并给分组打上标签,此时该分组就成为一个MPLS报文,并根据MPLS表项将报文转发出去; 3、在LSR构成的MPLS网络中,LSR对收到的MPLS报文分组不再进行任何第三层处理,只 17 是依据分组上的标签以及标签转发表对分组进行转发; 4、在MPLS域的出口LER上,将分组中的标签弹掉后继续进行转发。此时,转发可能分成两种情况:(1)标签栈非空,说明分组将进入另一个MPLS域,继续进行MPLS转发。(2)标签栈为空,即分组为正常的IP分组,这时进行传统的路由转发。当MPLS域的出口LER弹出最外层标签后,还要进行其它较复杂的三层工作,为节省这些工作,可以采用倒数第二跳弹出机制(Penultimate Hop Popping,PHP )。 6.3MAC地址学习,回收,泛洪和老化 6.3.1 MAC地址学习 1. 远程MAC地址学习模块 由于PW由一对单向的VC LSP组成(只有两个方向的VC LSP都UP才认为PW是UP的),当在入方向的VC LSP上学习到一个原来未知的MAC地址后,需要PW将此MAC地址与出方向的VC LSP形成映射关系。 2. 跟用户直连端口的本地MAC地址学习模块 对于CE上送的二层报文,需要将报文中的源MAC学习到VSI的对应端口上。 3. MAC地址学习能力问题 电信的典型切换时间是 50ms。那么,MAC地址学习能力多强合适?设备 MAC地址容量典型为 64K MAC地址时, 64K MAC地址在 50ms内完成倒换, 学习能力要求为:64K/50ms = 1.28M次/秒;当为 16K MAC地址,学习能力要求为:16K/50ms = 320K次/秒。 MAC 地址学习有两种模式: 1. Qualified PE 根据用户以太报文的 MAC 地址和VLAN Tag 进行学习,即,基于每个 VSI 的每个 VLAN 进行学习。这种模式下,每个用户 VLAN 形成自己的广播域,有独立的 MAC 地址空间。 2. Unqualified PE 仅根据用户以太报文的 MAC 地址进行学习,即,基于每个 VSI 进行学习。这种模式下,所有用户 VLAN 共享一个广播域和一个 MAC 地址空间,用户 VLAN的 MAC 地址必须唯一,不能发生地址重叠。 6.3.2 MAC地址回收 动态学习到的 MAC 地址必须有刷新和重学习的机制。VPLS 相关草案中提供了一种可选 MAC TLV的地址回收消息,用来移除或重学习 MAC 地址列表。 在拓扑结构改变时为了能快速的移除 MAC 地址,可以使用地址回收消息。地址消息分为两类: 1. 带有 MAC 表项地址列表的消息。 2. 不带 MAC 地址列表的消息。 如果一条备份链路(AC 链路或者 VC 链路)变为活动状态后,感知到链路状态变化的PE 会收到系统发送的带有重新学习 MAC 表项列表的通知消息。该 PE 收到此更新消息后,将更新 VPLS实例的 FIB 表中对应的 MAC 表项,并将此消息发送给其他相关的LDP会话直连的 18 PE。如果通知消息中包含空的 MAC 地址 TLV列表,表示告知 PE 移除指定 VPLS实例中的所有 MAC 地址,但是从发送此消息的 PE 处学习到的 MAC 地址除外。 6.3.3 MAC地址泛洪 当FIB表不包含目的MAC地址的时候,就需要VPLS泛洪,广播和多播同样也需要泛洪。要泛洪的包有可能是从用户端口或者其他PE站点收到的。如果是从用户端口收到的,包必须要泛洪到其他的用户端口以及其他的PE。如果是从其他的PE收到的,则只能泛洪到面向端口的用户,这类似于水平分割。 图表 6-3 MAC地址的学习与泛洪 6.3.4 MAC地址老化 PE 学习到的远程 MAC 地址需要有老化机制来移除与 VC 标签相关的不再使用的表项。PE 在接收到报文时根据源地址会重置与该地址对应的老化定时器。 6.4 VPLS环路避免 1. PE 之间逻辑上全连接(PW 全连接),也就是每个 PE 必须为每一个 VPLS 转发实例创建一棵到该实例下的所有其他 PE的树。 2. 每个 PE设备必须支持水平分割策略来避免环路,即 PE不能在具有相同 VSI的 PW之间转发报文(由于在同一个 VSI中每个 PE直连),也就是说,从公网侧 PW收到的数据包不再转发到其他 PW上,只能转发到私网侧。 3. 当CE有多条连接到PE,或连接到一个VPLS VPN的不同CE间有连接时,VPLS不能避免环路发生,需要使用其他方法,如STP等来避环。 6.5全连接VPLS 全连接VPLS就是所有的 PE 设备之间建立全连接的隧道 LSP。对每一个 VPLS服务,必须在 PE 设备之间创建 N×(N-1)÷2 条 PW。不过这些都是由信令协议生成的。 全连接VPLS不能大规模的应用的真正缺点是提供 VC的 PE 设备需要复制数据包,对于第一个报文和广播、组播报文,每个 PE 设备需要向所有的对端设备广播报文,这样就会浪费 19 带宽。 6.6分层VPLS H-VPLS是为了解决当PE数目增大时PW全连接的问题,它的核心思想是通过把网络分级,每一级网络形成全连接,分级间的设备通过QinQ或者 PW 来连接,分级之间的设备的数据转发不遵守水平分割原则,而是可以相互转发。 HVPLS组网中,SPE 之间必须建立全连接的 PW。UPE 只允许接入一个 SPE 设备。有主备链路时,允许接入两个 SPE 设备。 SPE 可以接入多个 UPE 设备; 分层VPLS有两中接入方式: 1. LSP 接入 UPE作为汇聚设备,它只跟 SPE建立一条虚连接而接入链路 PW,跟其他所有的对端都不建立虚链接。 2. QinQ接入 UPE作为汇聚设备,它只跟 SPE建立一条QinQ隧道,跟其他所有的对端都不建立连接。 UPE 以 QinQ接入 SPE 时,SPE 上对应实例的接入方式应为 VLAN 接入,如果有链路备份,在 UPE 与两个 SPE 之间需要启用 STP来备份链路。 UPE 以 LSP接入 SPE 时,UPE 可以使用 VPWS、VPLS方式接入 SPE,并且在 SPE 需要明确指明接入的设备为 UPE,如果有主备 PW 备份,需要指明 SPE 的主备关系; UPE 与 SPE 的角色定义仅限于某个 VPLS实例内。 图表 6-4 分层VPLS的LSP接入方式 6.7 双向失效检测协议 BFD检测链路状态的机制。 7 MS-PW实现方案 多段 PW 组网方式的引入弥补单段 PW 方式组网的不足。多段 PW 组网的应用场景主要有六种: 20 1. 跨运营商网络建立 PW; 2. 单段 PW 要求 PE 知道其远端 PE 的信息及 IP 地址,但是由于设置及安全方面的限制,PE 获取不到其远端 PE 的相关信息,并且单段 PW 要求其隧道在同一个自制区域(AS)内,交换的是内层和外层标签。当两个 PE 不在同一 AS 中时,不能跨区域建立 PE 间隧道。这时就需要通过建立多段 PW 来实现 PE 间的伪线路连接; 3. 当两 TPE 处于不同运营商网络中时,不同的运营商在建立和维护 PW 且 PW 转发数据时,对数据的安全性要求不同,可以运用了多种加密方式,而单段 PW 的组网方式则要求两 TEP 间信息的互通,因此这种情况下只能通过多段 PW 来实现不同运营商间 PW 的建立与维护; 4. 在不同运营商网络中,PWE3 所用的信令协议及 PSN 的类型也不同; 5. 从流量工程及网络带宽方面考虑; 6. 在 PW 中,无论是接入网还是核心网,运营商都希望能降低 PW 维护和复杂度及和运营的价,多段 PW 技术的简化、灵活了 PW 的组网、降低了维护的代价。对 PE 设备而言,其建立 LDP 会话的能力也是有限的,多段 PW 的组网方式不仅减少了 TPE 在 LDP 会话上开销,而且降低了对 PE 设备 LDP 会话连接能力的要求。 图表 7-1 多段MS-PW网络参考模型 只有当 MS-PW 所组成的 SS-PW 段均处于可操作状态时,该 MS-PW 才为可操作的。因此,组成 MS-PW 的各 SS-PW 段不能独立工作,不能独自进行信令交互与数据报的转发操作。 SPE 并没有封装层,因此 SPE 对不改变报文的内容。只是根据接收的报文的 PW 标签查表进行标签上的操作,将报文上的 PW 标签由上一个实例的标签转为下一 PW的标签。若切换的两条 SS-PW 段的承载隧道的类型不同,则还需根据隧道类型在隧道封装层上作相应的更新。 7.1 报文封装 对 ATM、帧中继、以太网、低速 TDM 电路和 SONET/SDH 等业务进行仿真。根据数据的特征可以将 PWE3 的载荷分为四种载荷类型:分组、信元、结构化比特流、非结构化比特流。 1. 分组 分组就是通过 AC 传递给 PE 的变长数据单元。一般与数据报边缘的描述及封装格式有关。在 PWE3 业务中,Ethernet、HDLC、FR、ATM AAL5 PDU 就是典型的分组报文。分组报文在进入 PW 时会剥去其传输头部。对分组报文的处理有分片、排序、实时及过滤等。 2. 信元 与分组相比,信元的长度是固定的。信元有两种类型 ATM 的 53 字节信元、DVB 传输的 21 188 字节的 MPEG 信元。为了减少 PSN PDU 的传输数量,可以将信元进行级联,同时这种级联的形式可以减少因为 PSN PDU 数量太大导致的时延抖动加剧和报文丢失概率。信元载荷通常需要时序及时钟功能的支持。 3. 非结构化比特流 非结构化的比特流为逐比特图,是对比特图进行的捕获、传输,并在 PW 上重放。传统的 TDM 电路数据就是典型的非结构化比特流。该类型的承载通常也需要时序及时钟功能的支持。非结构化仿真(SAToP)模式, 4. 结构化比特流 结构化比特流与非结构化比特流一样,也是对比特图进行捕获、传输并在 PW 上重放,但是,结构化比特流还需要结合比特流的内部结构,当然,时序与时钟功能的支持也是必要的。该类型承载的典型代表就是 SONET/SDH 业务。结构化仿真(CESoPSN)模式。支持基于SDH仿真(CEP)模式。 7.2 MS-PW组网实现 按 SPE 实现 PW 路由选择的方式分,多段 PW 组网可以为静态配置方式或动态 PW 路由选择两种方式。 7.2.1静态配置方式多段PW 静态配置方式指的是在 SPE 处由用户手工配置指定两切换的 SS-PW 段。与静态配置方式相比,动态 PW 路由选择则是指在每个 SPE 自动选择下一跳 SS-PW 段,当然,自动 PW 路由的实现要求 SPE 知道网络的拓扑中所有 SPE 及 TPE 的信息,这与传统 IP自动路由的情况非常类似。 静态配置方式的多段 PW 主要有三种:纯静态多段 PW、纯动态多段 PW、动静态混合多段 PW。 1. 纯静态多段 PW 组成 MS-PW 的各成员 SS-PW 段的类型均为静态 PW。每个 SPE 都必须手工配置各条 PW 段的起始及交换信息。在纯静态多段PW中,SPE要实现两条静态PW段的连接,只要在配置SPE时直接指出切换的两条PW就可以了,数据转发面基于PW-ID在标签层面上实现两静态PW间的相互切换,报文的PW标签做SWAP操作。SPE处不涉及控制协议上的处理。 2. 纯动态多段 PW MS-PW 组成成员的 SS-PW 段的类型都是动态 PW。动态 PW 的建立与维护是通过扩展 LDP 实现的,两端 PE 通过信令的交互保证 PW可用性。动态 PW 的建立与维护是通过扩展 LDP 实现的,两端 PE 通过信令的交互保证 PW可用性。多段 PW 中,要在 SPE 实现两动态 SS-PW 段间的切换,就必须通过 SPE 的消息转载,实现两 TPE 间的信令交互,即 TPE 的信令消息通过 SPE 的转接到达对端 TPE。 信令交互过程:在 MS-PW 创建时,由 TPE1 触发开始 MS-PW的创建,即通过 LDP 会话向 SPE 发送 Request 消息及 Mapping 消息,当然这两个消息可以封装在同一个数据报文中。当 SPE 收到该信令消息报文后,对于 Request 消息更新后直接转发到下一 PW 上;而对于 Mapping 消息,将消息中的 TPE1 的 LDP VC 相关信息在本地保存一份,然后对消息做相应的更新并其下一跳 PW 中转发。TPE2 收到消息后,对于Request 消息,如果 VC 链路可用,收回一个 Mapping 消息;若收到 Mapping 消息,则先对 Mapping 消息进行处理, 22 即在本地保存 TPE1 的 LDP VC 相关信息,再检查 PW 类型、接口参数是否匹配,若匹配则置该 PW 段为可操作状态,并向其所在 PW 段的对端回应一个Mapping 消息;否则就向接收消息的 LDP 会话回复一个 Notification 消息。TPE2 回复的信令消息经 SPE 更新、中转后转发过 TPE1,若消息为 Mapping 消息,则 SPE 也是先保存TPE2 的 LDP VC 信息,然后进行参数的匹配,匹配成功则置两 SS-PW 段为可操作状态。当TPE1 收到 Mapping 消息后也是进行同样的操作,置 PW 段为可操作状态,此时 SPE 与两TPE 端的 PW 均为可操作状态。若收到的为 Notification 消息,则开始标签的回收过程,即发送 Withdraw 消息并等待对端回应 Release 消息。 3. 动静态混合多段 PW MS-PW 的成员 SS-PW 段中既有静态 PW,也有动态 PW。 信令交互过程:当 TPE2 链路可用时,向 SPE 发送一个 Request 消息及Mapping 消息。当 SPE 收到信令消息后,查看作为该 动态 PW 的 AC 链路是否可用,即检查静态 PW 段是否处于可操作状态。若可用则向 TPE2 回一个 Mapping 消息,当然,该Mapping 消息的接口相关的参数为静态 PW 链路接口相关参数。对于 Mapping 消息,SPE先将 TPE2 的 LDP VC 相关的信息保留在本地,然后检查 SPE 与 TPE2 两端的参数是否匹配,若匹配置 PW 为可操作状态,否则向 TPE2 回一个参数不匹配的 Notification 消息。TPE2 收到 SPE 回应的 Mapping 消息后,进行 Mapping 消息的处理,将 PW 置为可操作状态。PW 拆除时,SPE 与 TPE2 均可以发送标签 Withdraw 消息并等待对端应答的 Release消息。 7.2.2动态PW路由方式多段PW 动态路由方式多段 PW是指组网过程中每个 SPE 自动选择下一跳 PW 的 SPE。信令交互过程:当 源端 TPE(S-TPE)接入链路可用时,发送标签映射消息开始多段 PW 的创建。当 SPE 收到一个映射消息后,根据映射消息的 FEC 的TAII 检查本地是否存在一个相同的 AII,若存在则说明该 SPE 为 TPE;若不存在,则再根据 TAII 查找其 PW 路由表,看是否存在相应的表项指明到达 TAII 的下一跳 PE,则为下一跳 PE 申请标签并向下一跳发送标签映射消息开始下一条 PW 段的创建;如果不存在到达TAII 的相关信息,即 TAII 不可达,说明两 TPE 间的 MS-PW 创建失败,则向映射消息发送端回应一个标签释放消息,消息中携带“AII 不可达”信息。当目的端 TPE(T-TPE)收到一个映射消息后,先在本地保存相关信息,然后进行映射消息的处理过程。且若其链路可用,回应一个标签映射消息。当一个 TPE 链路不可用时,该 TPE 应发送一个标签收回消息,开始多段 PW 的拆除工作。SPE 所进行的工作就是 PW 路由选择,并根据情况形成相应的信令消息,当然中间参插着标签的申请与释放。 7.3多段伪线环路检测 在多段 PW 中,两 TPE 间的 SPE 的个数可以有多个。在组网过程中,构成 MS-PW 的 PW段中可能有环路的出现,这主要出现在纯动态多段 PW 中。为保证 PWE3 服务的正常进行,多段 PW 需提供环路检测机制。 多段 PW体系可以引用 Path-Vector 环路检测机制的相应原理:标签映射消息每经过一个 SPE,就将该 SPE 的 LSR-ID 加到映射消息中。当一个 SPE 收到一个标签映射消息后,先检查映射消息中是否存在其 LSR-ID,若存在则说明环路的发生;若不存在,则在中继转发消息时,将其 LSR-ID 添加至映射消息的 SPE 的 LSR-ID 列表中一起转发。 23 1. Path-Vector 机制 在 Path-Vector 机制中,标签映射消息及标签请求消息维护了一个消息所经过的路径向量表,当该消息经过一个 LSR,就将该 LSR 的 LSR-ID 添加到消息。当一个 LSR 收到一个带 Path-Vector 消息的标签映射或标签请求消息后,先标签该消息中是否存在自己的 LSR-ID,若存在则检测到环路的发生;若不存在其 LSR-ID,,则先将其 LSR-ID 添加到该消息中,然后再将这个消息转发去。且该机制还提供了一个最长路径向量长度:当消息中的路径向量长度超过系统预设的值时,则说明检测到环路的发生。 2. Hop-Count 机制 在 Hop-Count 机制中,标签映射及请求消息为消息维护了一个路径路数值,该消息在发送起始端将 Hop-Count 值置为 1,然后消息每经过一个 LSR 就将 Hop-Count 的值加1。当 Hop-Count 的值超过系统预设的最大值时,则说明检测到环路的发生。 当检测到环路时,LSR 必须向消息的发送端回应一个带环路检测状态位的通知消息,并丢弃这个消息。 7.4 VCCV-PING VCCV-PING是一种手工检测虚电路连接状态的工具,就像ICMP-PING和LSP-PING一样,它是通过扩展LSP-PING实现的。

,