PBB-VPLS
Introduction
VPLS connects multiple
geographically separated customer sites by emulating a bridge domain.
All customer sites connected to the same VPLS instance appear to be in
the same LAN segment. However, VPLS requires all PE routers be fully
meshed with pseudowires. Hierarchical VPLS
is often implemented in service provider network to improve scalability
as it removes the requirement of pseudowire full mesh for PE routers,
thereby, reducing the number of Label Switched Paths (LSPs) and
pseudowires (PWs) each PE router must maintain.
However, PE routers in VPLS and
H-VPLS make traffic forwarding decision based on Customer MAC (C-MAC)
addresses. This causes a serious concern of MAC explosion in PE routers
due to a large number of customers connected to the service provider
networks. To solve this problem, PBB is integrated into VPLS solution.
In PBB, end-to-end solution is built around two components: the backbone component (B-Component) operating in the backbone domain (B-domain), and the customer component (I-Component)
operating in the customer addressing space. For PBB-VPLS, the
I-Component is represented by the customer-facing VPLS instance (I-VPLS).
An I-VPLS service instance still performs learning and forwarding based
on C-MAC addresses, just like regular VPLS instances. An I-VPLS can
also send traffic to associated B-VPLS
(Backbone VPLS instance) across the B-domain, if necessary. When the
I-VPLS service instance sends traffic to B-VPLS service instance, the
customer MAC addressing is encapsulated by another pair of MAC addresses
- the backbone source and destination MAC (B-MAC) addresses. Traffic in
the B-domain uses B-MAC addresses for forwarding decisions. The C-MAC
addresses are hidden from the B-VPLS service instances.
In a hub-spoke H-VPLS solution, the
PE router facing the customer in the edge is u-PE, and the aggregating
PE router facing the network at the core is n-PE. Several u-PEs are
connected to a single n-PE by spoke-PWs. The n-PEs are connected to
other n-PEs in full mesh using hub-PWs. The n-PE aggregates and
facilitates the forwarding of traffic between u-PEs, and between u-PEs
and other n-PEs. H-VPLS reduces the number of PWs, LSPs and
targeted-LDPs (T-LDPs) required in the network but it does not reduce
the number of C-MACs a PE router needs to learn- traffic forwarding in
H-VPLS is still based on C-MAC address learning. Since the n-PE is based
deep in the service provider network, it needs to learn more MAC
addresses than the u-PE. This problem is called MAC explosion.
In PBB, the Backbone Edge Bridge (BEB) adds another Ethernet encapsulation to customer Ethernet frames, called backbone header.
The backbone header contains B-MAC addresses which are meaningful to
BEBs and Backbone Core Bridges (BCBs) in the PBB network (PBBN). The
bridges in the PBBN use B-MAC addresses to make forwarding decisions.
The backbone VLAN ID (B-VLAN ID) is used to define backbone broadcast domain. The BEB also adds a 4-byte I-TAG in front of the customer MAC addressing. It contains an Interface Service Instance Indicator I-SID (24 bits) which allows each BEB to support multiple backbone service instances. Figure 1 shows PBB frame format.
Thus,
the C-MAC addresses are learned only by customer-facing ports of the
BEB. The BEB maps C-MAC to appropriate Destination B-MAC and then
forwards the frame to PBBN core. The nodes in PBBN are aware of
Destination B-MAC address and perform learning and forwarding based on
this address only. The PBBN runs Spanning Tree Protocol (STP) in the
core to prevent loops.
The BEB has 2 components-
- B-Component: It faces the PBB Backbone. The B-Component learns and forwards the PBB-encapsulated frames to other BEBs.
- I-Component: It faces the 802.1ad (Q-in-Q) network (or customer network). The I-Component adds the PBB header to the incoming customer traffic and maintains the mapping of C-MAC addresses and C-VLAN IDs to the B-MAC addresses and B-VLAN IDs.
PBB-VPLS Architecture
PBB provides exactly what is
required to solve the MAC explosion issue in VPLS - by adding a pair of
source/destination B-MAC addresses to every Ethernet frame. The backbone
switches make forwarding decisions based on these B-MAC addresses and
hence only need to be aware of these B-MAC addresses, and not C-MAC
addresses. When PBB is integrated into VPLS, the end-to-end solution is
divided into 2 parts: the backbone domain (B-domain) and one or multiple
edge domains (I-domains).
NOTE: Please note that this article is based on MPLS in the access i.e. I-domain. However, the draft http://tools.ietf.org/html/draft-sajassi-l2vpn-vpls-pbb-interop-04 also
discusses PBBN access. With MPLS access, the PBB functionality is
embedded either in u-PE or n-PE. The u-PEs connect to n-PE using
spoke-PWs, while n-PEs connect to other n-PEs using hub-PWs.
In figure 2, the B-domain contains
PE routers that are responsible for forwarding PBB-encapsulated customer
traffic using B-MAC addresses across the backbone. These routers now
have a new type of VPLS called Backbone VPLS (B-VPLS) configured instead of regular VPLS. The I-domain contains PE routers that participate in customer-facing VPLS (I-VPLS or Interface VPLS) and
perform learning and forwarding based on C-MAC addresses. The PE
routers draw the boundary between B-domain and I-domain, which contains
both B-VPLS and I-VPLS. The B-VPLS is configured and connected by
pseudowires to other PE routers in the B-domain. I-VPLS is configured
and connected to other PE routers in the I-domain that are running
regular VPLS.
The I-VPLS and B-VPLS communicate with each other in an IB-PE router using an internal link.
When the I-VPLS receives regular VPLS traffic from the I-domain, it
performs PBB encapsulation and forwards the traffic to the B-VPLS
towards the B-domain. When the B-VPLS receives PBB-encapsulated traffic
from the B-domain, it forwards the traffic to correct I-VPLS. The I-VPLS
then performs PBB decapsulation and forwards the traffic to correct
destination based on customer information. Each I-VPLS can have its own
B-VPLS connected to the B-domain (1:1 mode), or multiple I-VPLS
instances can share a common B-VPLS instance (N:1 mode).
I-VPLS
The I-VPLS instance in an IB-PE
router is responsible for connecting the regular VPLS from the I-domain
to B-VPLS in B-domain. The I-VPLS is also a Virtual Bridge that has
bridge ports and forwarding database. The I-VPLS has 3 types of bridge
ports:
- An internal link to the associated B-VPLS. The internal link is created when the association between I-VPLS and B-VPLS is manually configured in the I-VPLS in IB-PE router. The I-VPLS performs PBB encapsulation of the traffic when sent over the internal link to B-VPLS, and perform PBB decapsulation when receives traffic from B-VPLS over the internal link.
- The spoke PW(s) connected to the regular VPLS in the I-domain. This spoke PW sends and receives VPLS encapsulated traffic with regular VPLS PE routers in the I-domain.
- The interface facing the local customer site. The I-VPLS can have interfaces with attachment circuits to local customer sites.
One B-VPLS instance can be
associated with multiple I-VPLS instances. By incorporating PBB
function, the IB-PE router maps each service (for a given customer) onto
a single I-SID based on the configuration at IB-PE router. Many I-SIDs
can be multiplexed within a single bridge domain (e.g. B-VLAN). Then,
the IB-PE can either map a single I-SID into a B-VPLS instance, or it
can map a bridge domain (B-VLAN) onto a B-VPLS instance, as per
configuration. Next, the encapsulated frames are sent over the hub-PWs
associated with that B-VPLS instance.
When B-VPLS receives the
PBB-encapsulated traffic from remote B-VPLS PE routers, the B-VPLS uses
the I-SID to identify to which I-VPLS instance the traffic belongs. I-SID is the I-VPLS service de-multiplexer. Each I-VPLS instance has its own I-SID. I-SID value is configurable.
B-VPLS
The B-VPLS instance in an IB-PE
router is responsible for connecting other member PE routers in the
backbone network. The B-VPLS service performs learning and forwarding
based on B-MAC addresses, and it is not aware of C-MAC addresses. The
B-VPLS is also a Virtual Bridge that has bridge ports and forwarding
database. The B-VPLS has 3 types of bridge ports:
- An internal link to the associated I-VPLS. B-VPLS sends and receives traffic from I-VPLS over the internal link. One B-VPLS may be associated with more than one I-VPLS instances. The B-VPLS uses the I-SID in the PBB header to identify traffic belonging to different I-VPLSs.
- The hub PW(s) connected to other PE routers in the backbone network. These PWs are used to send and receive PBB-encapsulated VPLS traffic.
- The B-VPLS can have interface(s) connecting to other PBB (IEEE 802.1ah) networks.
Each B-VPLS service instance in a
PE router is explicitly configured with a B-MAC address. This B-MAC
address unique identifies the B-VPLS service instance in the PE router.
All I-VPLS service instances locally associated with a particular
B-VPLS, use this MAC address as source B-MAC address when performing PBB
encapsulation. When the B-VPLS service instance receives traffic from
other B-VPLS PE routers, it learns the source B-MAC address and adds to
its forwarding database.
PBB-VPLS Encapsulation
As mentioned above, the I-VPLS
performs PBB encapsulation on traffic arriving on spoke PWs. The PBB
header has 3 pieces of information:
- I-SID: The I-SID is the I-VPLS service identifier for the remote B-VPLS to identify which I-VPLS service instance associated with it, should receive the traffic. All I-VPLS instances belonging to the same service must use the same I-SID value and must be associated with same B-VPLS instance.
- Source B-MAC address: Each B-VPLS instance has its own globally unique B-MAC address defined manually. The I-VPLS uses the B-MAC defined in the B-VPLS instance, with which it is associated, as the source B-MAC address in the PBB header.
- Destination B-MAC address: The destination B-MAC address is learned by receiving PBB-encapsulated traffic from other B-VPLS PE routers.
Every time an I-VPLS receives
traffic from an I-domain destined for a remote I-domain, it checks its
PBB forwarding database to find the correct destination B-MAC address
for PBB encapsulation. In case of no match, the I-VPLS uses the group
B-MAC address of 01:1E:83:pq:rs:tu. The pq:rs:tu
part is achieved from the I-SID (24 bits). Once the B-MAC addresses are
acquired, the I-VPLS performs PBB encapsulation before sending the
traffic to B-VPLS over the internal link. The PBB encapsulation is as
follows:
- Insert B-MAC addresses. The destination B-MAC address is found in the PBB forwarding database of the I-VPLS instance.
- Insert the I-TAG which contains the I-SID. The I-SID is used at remote PE router to determine to which I-VPLS the traffic belongs.
- Insert the B-TAG which contains the B-VLAN ID for the backbone network.
When the remote PE router receives
PBB-VPLS encapsulated traffic from B-VPLS of another PE router in the
B-domain, it removes the VPLS header and checks the destination B-MAC of
the frame. If the destination B-MAC address matches, the traffic is
meant to be forwarded to local I-VPLS instance. Otherwise the traffic is
dropped. Then, it performs I-SID lookup to identify to which I-VPLS the
traffic belongs. The I-VPLS decapsulates the PBB frame and
forwards/floods to appropriate destination address.
Flooding in PBB-VPLS
The two modes of I-VPLS to B-VPLS
mapping are 1:1 and N:1, as discussed above. In 1:1 mode, each I-VPLS
representing a service connects to its own B-VPLS, and that B-VPLS only
connects to other IB-PE routers that have that I-VPLS instance
configured on them. In N:1 mode, multiple I-VPLS instances share a
common B-VPLS instance created in the B-domain, and all IB-PE routers
participate in that B-VPLS instance. The I-VPLS instances on different
IB-PE routers are different but share the same B-VPLS instance. The
IB-PE router receiving traffic from that B-VPLS instance identifies the
correct I-VPLS from the I-SID value, and forwards the traffic to that
I-VPLS.
In figure 4, multiple I-VPLS
instances share a common B-VPLS instance. One issue with N:1 mode is
that different I-VPLSs sharing a common B-VPLS may require different
network overlays. For example, in figure 4, I-VPLS 100 connects only to
IB-PE1 and IB-PE3, while I-VPLS 200 connects IB-PE1 and IB-PE2. Now, if
I-VPLS 100 on IB-PE1 router receives broadcast/unknown/multicast (BUM)
traffic, it is propagated to all IB-PE routers connecting to that
B-VPLS, regardless of I-VPLSs on them. Other IB-PE routers discard this
traffic because there is no corresponding I-VPLS locally bound to the
B-VPLS. This causes unnecessary bandwidth waste.
In order to solve this issue, a
mechanism is required to track the membership of IB-PE routers in each
I-VPLS instances. When a I-VPLS sends BUM traffic, only selected IB-PE
routers receives that traffic which have that I-VPLS instance locally
bound to the B-VPLS. The Multiple Registration Protocol (IEEE 802.1ak) can be used to optimize this behavior.
Summary
The PBB-VPLS solution solves the
problem of MAC explosion that can be caused by learning a large number
of C-MAC addresses. It incorporates PBB functionality into PE routers of
H-VPLS solution. The IB-PE router divides the network into I-domain and
B-domain. The VPLS in the I-domain learns C-MAC addresses and maps them
to B-MAC addresses. The VPLS in the B-domain uses B-MAC addresses to
perform learning and forwarding.
(source: https://sites.google.com/site/amitsciscozone/home/vpls/pbb-vpls)
Amazing . I have read your 1st part. And now finished your 2nd part. Actually you are great. I am a Student of CISCO. So i need to learn about VPLS, WAN , Leased line , all of thing about broadband line. I am very glad to learn about a very informative post about VPLS. Thanks for your effective posting. And i am waiting for your next part.
Trả lờiXóa