VPLS原理
VPLS(Virtual Private LAN Services虚拟专用LAN业务), 是一种在MPLS网络上提供类似LAN的业务,可以使用户从多个地理位置分散的点同时接入网络,相互访问,就像这些点直接接入到LAN上.
上图为一个VPLS的组网图,加入VPLS的接口支持广播,转发和过滤以太网帧. PE之间通过PW(Pseudo Wire)互相连接,对客户形成一个仿真LAN,每个PE不但要学习从PW来的以太网报文的MAC地址,也要学习所连接CE来的MAC地址. PW通常使用MPLS隧道,也可以使用其他任何隧道,如GRE, L2TPV3, TE等;PE通常是MPLS边员路由器,并能够建立到其他PE的隧道。
VPLS PW建立的两种信令方式
PW隧道的建立常用有两种信令: LDP和MP-BGP.
LDP
采用LDP作为信令时,通过扩展标准LDP的TLV来携带VPLS信息,增加了128类型和129类型的FEC TLV. 建立PW时的标签分配顺序采用DU模式,标签保留模式采用liberal label retention,用来交换VC信令的LDP连接需要配置成Remote方式.
当PE1配置了一个VSI并指定PE2为peer,如果PE1与PE2之间的LDP session已经建立就会分配一个标签并给PE2发送mapping消息,PE2收到mapping消息后检查本地是否配置了同样的VSI,如果配置了,并且VSI ID与封装类型都相同,说明两个PE上的VSI都在一个VPN内,如果彼此接口参数都一致,则PE2端的PW就建立起来了. PE1收到PE2的mapping消息后作同样的检查和处理。
当PW1不想再转发PE2的报文(撤销指定PE2为peer),发送withdraw消息给PE2,PE2收到withdraw消息后查出PW,并回应release消息,PE1收到release消息后释放标签,查出PW.
MP-BGP
采用BGP作信令时,利用BGP的多协议扩展传递VPLS成员信息,其中MP-reach和MP-unreach属性传递VPLS的标签信息,接口参数信息在扩展团体属性中传递,VPN成员关系靠RD和VPN-TARGET来确定,RD和VPN-TARGET都在扩展团体属性中传递.
PE1配置一个VSI建立了到PE2的BGP session.并在该session上使能VPLS地址族(address-family l2vpn vpls),如果PE1与PE2之间的BGP session已经建立就会分配一个标签并给PE2发送MP-reach属性的update消息. PE2收到update消息后检查本地是否配置了相同的VSI,如果配置了并且VPN-TARTGET匹配(L3VPN匹配的含义相同),则说明这两个PE上的VSI都在一个VPN内,如果此时接口参数都一致则PE2的PW就建立起来了. PE1收到PE2的update消息后作同样的检查和处理.
当PW1不想转发PE2的报文,发送MP-unreach属性的update消息给PE2,同时拆除PW,释放标签. PE2收到update消息后拆除PW.
LDP和BGP的对比
LDP | BGP | |
---|---|---|
对PE能力要求 | 一般 | 高 |
支持自动发现 | 否 | 是 |
实现复杂度 | 低 | 高 |
可扩展性 | 差 | 好 |
标签利用率 | 高 | 低 |
配置工作量 | 大 | 小 |
跨域时的限制 | 大 | 小 |
相比之下,BGP方式适合用在大型网络核心层,PE本身运行BGP以及有跨域需求的情况;LDP适用于VPLS的site点比较少,不需要或很少跨域的情况,特别PE不运行BGP的时候.
当VPLS网络比较大时,可以采用两种方法结合的HVPLS(分层VPLS),核心层使用BGP方式,接入层使用LDP方式.
报文转发
VPLS通过在每个VPN的各个site之间建立PW,并通过PW将用户二层报文在站点间透析. 对于PE,会在转发报文的同时学习源MAC并建立MAC转发表项,完成MAC地址与用户介入接口AC和虚链路PW的映射关系.
VPLS网络的基本传输构件及作用如下:
- 接入链路AC: CE到PE之间的连接链路或者虚链路,AC上的所有用户报文都要求原封不动转发到对端site去,包括用户的二三层协议报文
- 虚链路PW: 虚连接就是VC加隧道, 隧道可以是LSP、L2TPV3、或者是TE. 虚连接是有方向的,VPLS中虚连接的建立是需要通过信令(LDP或者BGP)来传递VC信息,然后通过VSI管理来将VC信息和隧道管理形成一个PW. PW对于VPLS来说,就是一条本地AC到对端AC之间的一条直连线路,完成用户二层数据透传.
- 转发器: PE收到AC上的数据帧,由转发器选定转发报文使用的PW,转发器就是VPLS的转发表.
- 隧道Tunnels: 用于承载PW,一条隧道上可以承载多条PW,一般情况下为MPLS隧道. 隧道时一条本地PE与对端PE之间的直连通道,完成PE之间的数据透传.
- 封装: PW上传输的报文使用标准的PW封装格式和技术. PW上VPLS报文封装有两种模式: Tagged和Raw模式.
- PW信令协议: PW信令协议是VPLS的实现基础,用于创建和维护PW. PW信令协议还可以用于自动发现VSI对端的PE设备.
- 服务质量: 根据用户二层报文头的优先级信息,映射成在公用网络上传输的QoS优先级来转发,这个一般需要应用支持MPLS QoS.
CE1到CE3的VPN1报文流:
CE1上送二层报文,通过AC接入PE1,PE1收到报文后,由转发器选定转发报文的PW,系统在根据PW的转发表项压入PW标签,并送到外层隧道(PW标签用于表示PW,然后穿越隧道到达PE2),经过公网隧道到达PE2,PE2利用PW标签转发报文到相应的AC,将报文最终送到CE3.