13-PBB配置
本章节下载: 13-PBB配置 (335.91 KB)
目 录
PBB(Provider Backbone Bridge,运营商骨干网桥)协议也称为“MAC-in-MAC”技术,它由IEEE 802.1ah所定义。作为一种二层VPN(Virtual Private Network,虚拟专用网络)技术,PBB通过MAC地址嵌套,将用户MAC地址封装在运营商MAC地址之中,实现对不同的用户业务进行隔离。
运营商通常使用QinQ技术为用户提供二层隧道服务,但使用该技术的网络不可避免地存在一些限制,主要表现在:运营商网络中未能做到对用户MAC地址的有效隔离,造成运营网络中的设备需要支持庞大的MAC地址表;由于运营商网络只能提供4094个VLAN,成为运营商大规模开展以太网业务的瓶颈。
采用PBB技术则可以弥补这些不足:它通过为用户网络报文再封装一层报文头,实现了运营商网络对用户MAC地址的隔离,减小了MAC地址表的大小;它通过增加专门的服务实例标识,可提供1600余万个服务实例。
有关QinQ的详细介绍,请参见“二层技术-以太网交换配置指导”中的“QinQ”。
图1-1是PBB的基本组网模型,本节将对PBB的相关基本概念进行介绍。
图1-1 PBB的基本组网模型
采用了PBB协议的网络称为PBBN(Provider Backbone Bridge Network,运营商骨干桥接网)。PBBN是一个二层交换网络,可以在不同节点之间建立二层连接。
采用了QinQ或VLAN映射技术的网络称为PBN(Provider Bridge Network,运营商桥接网)。用户网络既可以直接接入PBBN,也可以通过PBN接入PBBN。
经过PBB封装的报文简称为PBB报文,有关PBB报文的具体封装格式,请参见“1.1.2 ”一节的介绍。
BEB(Backbone Edge Bridge,骨干网边缘网桥)是PBBN的边缘设备。它负责:
· 将来自用户网络的报文进行PBB封装,并转发到PBBN中。
· 将来自PBBN的PBB报文进行解封装,并转发到用户网络中。
BEB需要学习对应用户网络的MAC地址。
BCB(Backbone Core Bridge,骨干网核心网桥)是PBBN的核心设备。它负责按照报文头中的B-MAC和B-VLAN转发PBB报文。BCB只需要转发报文和学习骨干网中的MAC地址,不需要学习用户网络中大量的MAC地址,从而降低了网络部署的成本,也为PBBN提供了更好的可扩展性。
CE(Customer Edge,用户网络边缘)是直接与运营商网络相连的用户网络侧设备。本文中指用户网络或PBN中直接与BEB相连的边缘设备。
BEB在对用户报文进行封装时,会为其打上运营商分配的MAC地址和VLAN。这个由运营商分配的MAC地址和VLAN被分别称为B-MAC(Backbone MAC,骨干网MAC)和B-VLAN(Backbone VLAN,骨干网VLAN)。在PBBN中,BCB按照B-MAC和B-VLAN转发PBB报文。
B-MAC包括源B-MAC和目的B-MAC,BEB在对用户报文进行封装时,会将自己的B-MAC作为源B-MAC、将PBBN隧道目的端BEB的B-MAC作为目的B-MAC。
BEB上连接PBBN的端口称为上行口,连接用户网络的端口称为下行口。BEB将来自用户网络的报文封装成PBB报文后,会通过相应的上行口发送进入PBBN;而将来自PBBN的PBB报文解封装后,会按照该报文的目的用户MAC地址,通过相应的下行口转发出去。
在PBBN中,一个PBB VSI(Virtual Switch Instance,虚拟交换实例)实例代表了运营商提供的一类业务,I-SID(Backbone Service Instance Identifier,骨干网服务实例编号)就是这个PBB VSI实例的唯一编号。每一个I-SID代表一类业务,具有相同I-SID的BEB属于同一类业务,PBBN中BEB上可以指定不同的I-SID,以实现在同一个公共网络上划分不同的业务。有关VSI的详细介绍,请参见“MPLS配置指导”中的“VPLS”。
AC(Attachment Circuit,接入电路)是连接CE和BEB的物理电路或虚拟电路,例如Frame Relay的DLCI、ATM的VPI/VCI、Ethernet接口、VLAN、物理接口上的PPP连接。
图1-2 PBB报文封装格式
图1-2是PBB报文的封装格式,其中各重点字段的具体含义如表1-1所示。
表1-1 PBB报文封装重点字段含义
字段 |
全称 |
含义 |
B-DA |
Backbone Destination MAC address(骨干网目的MAC地址) |
即目的B-MAC,是PBB封装的外层目的MAC地址,为PBBN隧道目的端BEB的MAC地址,与B-SA合称为B-MAC |
B-SA |
Backbone Source MAC address(骨干网源MAC地址) |
即源B-MAC,是PBB封装的外层源MAC地址,为PBBN隧道源端BEB的MAC地址,与B-DA合称为B-MAC |
B-Tag |
Backbone VLAN Tag(骨干网VLAN标签) |
即B-VLAN Tag,是PBB封装的外层VLAN Tag,用来标识报文在PBBN中的VLAN和优先级信息,其TPID值固定为0x8100 |
I-Tag |
Backbone Service Instance Tag(骨干网服务实例标签) |
PBB封装中的业务标记,包括以下字段: · TPID:标签协议标识符,TPID值固定为0x88E7 · I-PCP:传送优先级 · I-DEI:丢弃优先级 · I-SID:业务实例标识 · C-DA:用户报文的目的MAC地址 · C-SA:用户报文的源MAC地址 |
S-Tag |
Service VLAN Tag(服务VLAN标签) |
报文在PBN中的外层VLAN Tag,用来标识报文在PBN中的VLAN和优先级信息 |
C-Tag |
Customer VLAN Tag(用户VLAN标签) |
报文在PBN中的内层VLAN Tag,用来标识报文在用户网络中的VLAN和优先级信息 |
图1-3 PBB报文转发示意图
在如图1-3所示的PBBN中,用户网络存在两个分支,现两个分支间要通过运营商网络交互报文。当用户网络的报文到达BEB后,需要封装成PBB格式的报文,并选择合适的上行口进行转发。转发表项中包含了报文封装所需的B-MAC地址、B-VLAN、I-SID以及报文的出接口等信息。
对于BEB(假设为BEB 1)从用户侧收到的第一个报文,首先根据下行口上的匹配规则判断该报文所属的PBB VSI实例,由于该报文还没有对应的单播转发表项,则为该报文封装上报文所属PBB VSI实例的组播B-MAC地址、以及对应的B-VLAN和I-SID后,从该PBB VSI实例的所有上行口进行组播发送。
当封装后的PBB报文到达另一侧BEB(假设为BEB 2)的上行口时,BEB 2处理该报文,完成单播转发表项的学习,同时将该报文解封装,从该报文中I-SID对应的下行口向用户网络转发。通过这个过程,BEB 2就学到了到达BEB 1的单播转发表项。类似的,BEB 1也会学到到达BEB 2的单播转发表项。
在完成转发表项的建立后,PBB报文的转发过程如下:
(1) BEB 1将来自用户网络的报文封装上相应的B-MAC、B-VLAN和I-SID,然后通过其上行口转发给BCB。
(2) BCB将来自BEB 1的PBB报文按照其B-MAC和B-VLAN转发给BEB 2。
(3) BEB 2将来自BCB的PBB报文解封装,还原成原始的以太网报文,然后按照其目的MAC地址,通过相应的下行口向用户网络转发。
与PBB相关的协议规范有:
· IEEE 802.1ah:Virtual Bridged Local Area Networks Amendment 7: Provider Backbone Bridges
只需在BEB上配置PBB。BCB只需按照B-MAC和B-VLAN转发PBB报文,因此无需配置PBB,但BCB上需要创建与BEB上的B-VLAN相同的VLAN。
表1-2 PBB配置任务简介
配置任务 |
说明 |
详细配置 |
开启L2VPN功能 |
必选 |
1.3.1 |
创建PBB VSI实例 |
必选 |
1.3.2 |
为PBB VSI实例指定B-VLAN |
必选 |
1.3.3 |
配置上行口 |
必选 |
1.3.4 |
配置下行口 |
必选 |
1.3.5 |
配置数据封装类型 |
可选 |
作为二层VPN技术的一种,在配置PBB时,只有在BEB上开启L2VPN功能后,PBB配置才能生效。
表1-3 开启L2VPN功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启L2VPN功能 |
l2vpn enable |
缺省情况下,L2VPN处于关闭状态 |
创建PBB VSI实例时,需要注意:
· 在同一个VSI视图下,PBB和SPBM(Shortest Path Bridging MAC,最短路径桥MAC模式)的I-SID不能相同。有关SPBM的详细介绍,请参见“SPB配置指导”中的“SPBM”。
· 在PBBN中同一PBB VSI实例必须指定相同的I-SID,不同PBB VSI实例的I-SID不能相同。
表1-4 创建PBB VSI实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VSI,并进入VSI视图 |
vsi vsi-name |
缺省情况下,不存在任何VSI |
创建PBB VSI实例,并进入VSI PBB视图 |
pbb i-sid i-sid |
缺省情况下,不存在PBB VSI实例 |
PBB VSI实例必须指定B-VLAN才能够生效。只有两台BEB上存在I-SID和B-VLAN都相同的PBB VSI实例时,这两台BEB才能互通。一个PBB VSI实例只能指定一个B-VLAN,不同的PBB VSI实例可以指定相同的B-VLAN。
表1-5 配置B-VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入VSI PBB视图 |
pbb i-sid i-sid |
- |
为PBB VSI实例指定B-VLAN |
bvlan vlan-id |
缺省情况下,PBB VSI实例未指定B-VLAN |
在BEB上,来自用户网络、属于某PBB VSI实例的报文被封装成PBB报文后,将通过该实例对应的上行口转发出去。
配置上行口时,需要注意:
· 可以为一个PBB VSI实例配置一个或多个上行口。如果为某PBB VSI实例配置了多个上行口,则会选择合适的上行口发送对应的来自用户网络的PBB报文。
· 只有为PBB VSI实例指定了B-VLAN后,上行口的配置才会生效。
· 上行口必须加入到PBB VSI实例的B-VLAN中且链路状态为up,否则该上行口配置不会生效。
· 如果将聚合组的某成员端口配置为上行口,则该配置不会生效。
表1-6 配置上行口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图/二层聚合接口视图 |
interface interface-type interface-number |
- |
将端口指定为PBB VSI实例的上行口 |
pbb uplink { all | vsi vsi-name-list } |
缺省情况下,端口不是任何PBB VSI实例的上行口 |
需要注意的是:
· 可以为一个PBB VSI实例配置一个或多个下行口。
· 请不要将下行口加入B-VLAN。
· 二层聚合接口及其成员端口上均可以手工创建以太网服务实例,并将以太网服务实例与PBB VSI关联。成员端口上的以太网服务实例处于Down状态。只有成员端口退出二层聚合组后,该端口上的以太网服务实例才能Up。
有关本表格中service-instance、encapsulation和xconnect vsi命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图/二层聚合接口视图 |
interface interface-type interface-number |
- |
创建以太网服务实例,并进入以太网服务实例视图 |
service-instance instance-id |
缺省情况下,不存在任何以太网服务实例 |
配置报文匹配规则 |
encapsulation s-vid vlan-id [ c-vid { vlan-id-list | all } | only-tagged ] |
缺省情况下,未配置任何报文匹配规则 |
encapsulation s-vid vlan-id-list [ c-vid vlan-id-list ] |
||
encapsulation { default | tagged | untagged } |
||
将服务实例与PBB VSI实例相关联 |
xconnect vsi vsi-name [ access-mode { ethernet | vlan } ] |
缺省情况下,服务实例没有与任何PBB VSI实例关联 |
接入模式是BEB对从CE收到的以太网帧携带的外层VLAN Tag的理解方式,以及BEB向CE发送以太网帧的方式。根据xconnect vsi命令配置,接入模式分为两种:
· VLAN接入模式:CE发送给BEB的以太网帧头需要带有一个VLAN Tag,该Tag被称为P-Tag,即服务提供商网络为了区分用户而添加的“服务定界符”。BEB发送以太网帧给CE时,也需要携带P-Tag。
· Ethernet接入模式:CE发送给BEB的以太网帧头中如果带有VLAN Tag,则该Tag被称为U-Tag,即用户网络的内部VLAN Tag,对于BEB没有意义。BEB发送以太网帧给CE时,不需要携带P-Tag。
PBB VSI实例对应的数据封装类型有两种:
· Ethernet数据封装类型下,向PBBN侧传输的帧不能带服务提供商网络为了区分用户而要求用户添加的P-Tag。对于CE侧的报文,如果BEB从CE收到带有P-Tag的报文,则将其去除后再进行PBB封装并转发;如果从CE收到不带P-Tag的报文,则直接进行PBB封装后转发。对于BEB发送给CE的报文,如果xconnect vsi命令配置的接入模式为VLAN,则添加P-Tag后转发给CE;如果配置的接入模式为Ethernet,则不添加P-Tag,直接转发给CE;不允许重写或去除已经存在的任何Tag。
· VLAN数据封装类型下,向PBBN侧传输的帧必须带P-Tag。对于CE侧的报文,BEB从CE收到带有P-Tag的报文后,如果远端BEB不要求Ingress改写P-Tag,则保留P-Tag,如果远端BEB要求Ingress改写P-Tag,则将P-Tag改写为远端BEB期望的VLAN Tag(Tag可能是值为0的空Tag),再进行PBB封装后转发;从CE收到不带P-Tag的报文后,如果远端BEB不要求Ingress改写P-Tag,则添加值为0的空P-Tag,如果远端BEB要求Ingress改写P-Tag,则添加一个远端BEB期望的VLAN Tag(Tag可能是值为0的空Tag)后,再进行PBB封装后转发。对于BEB发送给CE的报文,如果xconnect vsi命令配置的接入模式为VLAN,则转发给CE时重写或保留P-Tag;如果配置的接入模式为Ethernet,则去除P-Tag后转发给CE。
表1-8 配置数据封装类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入VSI PBB视图 |
pbb i-sid i-sid |
- |
配置数据封装类型 |
encapsulation { ethernet | vlan } |
缺省情况下,数据封装类型为VLAN |
在完成上述配置后,在任意视图下执行display命令可以显示配置后PBB的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset pbb connection命令可以清除由报文产生的连接信息。
表1-9 PBB显示和维护
操作 |
命令 |
查看PBB VSI实例的连接信息 |
display pbb connection |
查看MAC-in-MAC连接信息 |
display l2vpn minm connection [ vsi vsi-name ] |
查看MAC-in-MAC转发表项信息 |
display l2vpn minm forwarding [ vsi vsi-name ] [ slot slot-number] |
查看VSI的信息 |
display l2vpn vsi [ name vsi-name ] [ verbose ] |
清除PBB VSI实例的连接信息 |
reset pbb connection [ bvlan vlan-id | interface interface-type interface-number ] * |
通过配置,使Customer A的两个分支机构Site 1和Site 2之间利用PBB互通,从而实现Core network对Site 1和Site 2中用户MAC地址的隔离,减轻Core network中设备的MAC地址表规模的压力。
图1-4 PBB典型配置组网图
以BEB 1配置为例,BEB 2的配置与BEB 1相同。
# 创建VLAN 20。
<BEB1> system-view
[BEB1] vlan 20
[BEB1-vlan20] quit
# 开启L2VPN功能。
[BEB1] l2vpn enable
# 创建名为aaa的VSI。
[BEB1] vsi aaa
# 指定其模式为PBB,I-SID为1。
[BEB1-vsi-aaa] pbb i-sid 1
# 为PBB VSI实例aaa指定B-VLAN 20。
[BEB1-vsi-aaa-1] bvlan 20
[BEB1-vsi-aaa-1] quit
[BEB1-vsi-aaa] quit
# 将上行口Ten-GigabitEthernet1/0/1配置为Trunk端口且允许VLAN 20通过,并将该端口指定为PBB VSI实例aaa的上行口。
[BEB1] interface ten-gigabitethernet 1/0/1
[BEB1-Ten-GigabitEthernet1/0/1] port link-type trunk
[BEB1-Ten-GigabitEthernet1/0/1] port trunk permit vlan 20
[BEB1-Ten-GigabitEthernet1/0/1] pbb uplink vsi aaa
[BEB1-Ten-GigabitEthernet1/0/1] quit
# 在下行口上创建以太网服务实例1,配置报文匹配规则为匹配携带VLAN标签的报文,并将该以太网服务实例与PBB VSI实例aaa关联(接入模式为Ethernet)。
[BEB1] interface ten-gigabitethernet 1/0/2
[BEB1-Ten-GigabitEthernet1/0/2] service-instance 1
[BEB1-Ten-GigabitEthernet1/0/2-srv1] encapsulation tagged
[BEB1-Ten-GigabitEthernet1/0/2-srv1] xconnect vsi aaa access-mode ethernet
[BEB1-Ten-GigabitEthernet1/0/2-srv1] quit
[BEB1-Ten-GigabitEthernet1/0/2] quit
# 指定PBB VSI实例aaa对应的数据封装类型为Ethernet。
[BEB1] vsi aaa
[BEB1-vsi-aaa] pbb i-sid 1
[BEB1-vsi-aaa-1] encapsulation ethernet
[BEB1-vsi-aaa-1] quit
# 在BEB 1上显示PBB VSI实例连接信息。
[BEB1] display pbb connection
BMAC BVLAN Port Type Aging
011e-8300-0001 20 XGE1/0/1 MC N
000f-e200-0001 20 XGE1/0/1 UC Y
Device A和Device B之间可以相互ping通,这表明Site 1和Site 2之间实现了互通。
用户报文无法通过PBBN到达对方。
· BEB上没有配置PBB类型的VSI,或该VSI的状态为Down。
· BEB上的PBB配置不一致。
· BCB上没有创建与BEB中B-VLAN相同的VLAN,或者PBB报文传输路径上的端口没有全部加入该VLAN。
(1) 通过display l2vpn vsi verbose命令显示VSI中的PBB配置。如果没有配置PBB,需要进行配置;如果VSI的状态为Down,需要执行undo shutdown命令使该VSI的状态变为Up。
(2) 在所有BEB上通过display l2vpn vsi verbose命令显示PBB配置是否一致,特别是I-SID和B-VLAN是否一致。所有BEB上的PBB配置都应保持一致。
(3) 在所有BCB上通过display vlan all命令显示是否创建了与BEB中B-VLAN相同的VLAN,且各设备间相连的端口是否都已加入该VLAN。需要保证PBB报文经过的BCB创建了与BEB中B-VLAN相同的VLAN,且PBB报文经过的所有端口都加入了该VLAN。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!