Example: Configure Ethernet CFM over VPLS
In this example, both the customer and service provider are running Ethernet CFM over a VPLS and a multiprotocol label switching (MPLS) network. The network is shown in Figure 1. The customer has configured Ethernet CFM on MX Series routers L2-CE1 and L2-CE2. The service provider has configured Ethernet CFM on MX Series routers PE1, P, and PE2.
The configurations in this example are only partial examples of complete and functional router configurations. Do not copy these configurations and use them directly on an actual system.
The service provider is using CFM level 5 and the customer is using CFM level 7. The boundaries are marked with “up mep” and “down mep” CFM terminology in the figure.
The logical interfaces in a VPLS routing instance might have the same or different VLAN configurations. VLAN normalization is required to switch packets correctly among these interfaces. Normalization supports automatic mapping of VLANs and performs operations on VLAN tags to achieve the desired translation. See Configuring a Normalized VLAN for Translation or Tagging.
The following forwarding path considerations must be observed:
Packet receive path:
This is the forwarding path for packets received on the interfaces.
802.1ag Ethernet OAM for VPLS uses implicit interface filters and forwarding table filters to flood, accept, and drop the CFM packets.
Packet transmit path:
Junos OS uses the router’s hardware-based forwarding for CPU-generated packets.
For down MEPs, the packets are transmitted on the interface on which the MEP is configured.
In MX series routers, for up MEPs, the packets must be flooded to other interfaces in the VPLS routing instance. The router creates a flood route tied to a flood next hop (with all interfaces to flood) and then sources the packets to be forwarded with this flood route.
The following are the configurations of the VPLS and CFM on the service provider routers.
Configuration of PE1
[edit chassis] fpc 5 { pic 0 { tunnel-services { bandwidth 1g; } } } [edit interfaces] ge-1/0/7 { encapsulation flexible-ethernet-services; vlan-tagging; unit 1 { encapsulation vlan-vpls; vlan-id 2000; } } ge-0/0/0 { unit 0 { family inet { address 10.200.1.1/24; } family mpls; } } lo0 { unit 0 { family inet { address 10.255.168.231/32 { primary; } address 127.0.0.1/32; } } } [edit routing-instances] vpls-vlan2000 { instance-type vpls; vlan-id 2000; interface ge-1/0/7.1; route-distinguisher 10.255.168.231:2000; vrf-target target:1000:1; protocols { vpls { site-range 10; site vlan2000-PE1 { site-identifier 2; } } } } [edit protocols] rsvp { interface ge-0/0/0.0; } mpls { label-switched-path PE1-to-PE2 { to 10.100.1.1; } interface ge-0/0/0.0; } bgp { group PE1-to-PE2 { type internal; local-address 10.200.1.1; family l2vpn { signaling; } local-as 65000; neighbor 10.100.1.1; } } ospf { traffic-engineering; reference-bandwidth 4g; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } interface ge-0/0/0.0; } } oam { ethernet { connectivity-fault-management { maintenance-domain customer-site1 { level 5; maintenance-association customer-site1 { continuity-check { interval 1s; } mep 100 { interface ge-1/0/7.1; direction up; auto-discovery; } } } } } }
Configuration of PE2
[edit chassis] fpc 5 { pic 0 { tunnel-services { bandwidth 1g; } } } [edit interfaces] ge-5/0/9 { vlan-tagging; encapsulation flexible-ethernet-services; unit 1 { encapsulation vlan-vpls; vlan-id 2000; } } ge-5/2/7 { unit 0 { family inet { address 10.100.1.1/24; } family mpls; } } lo0 { unit 0 { family inet { address 10.255.168.230/32 { primary; } address 127.0.0.1/32; } } } [edit routing-instances] vpls-vlan2000 { instance-type vpls; vlan-id 2000; interface ge-5/0/9.1; route-distinguisher 10.255.168.230:2000; vrf-target target:1000:1; protocols { vpls { site-range 10; site vlan2000-PE2 { site-identifier 1; } } } } [edit protocols] rsvp { interface ge-5/2/7.0; } mpls { label-switched-path PE2-to-PE1 { to 10.200.1.1; } interface ge-5/2/7.0; } bgp { group PE2-to-PE1 { type internal; local-address 10.100.1.1; family l2vpn { signaling; } local-as 65000; neighbor 10.200.1.1; } } ospf { traffic-engineering; reference-bandwidth 4g; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } interface ge-5/2/7.0; } } oam { ethernet { connectivity-fault-management { maintenance-domain customer-site1 { level 5; maintenance-association customer-site1 { continuity-check { interval 1s; } mep 200 { interface ge-5/0/9.1; direction up; auto-discovery; } } } } } }
Configuration of P router
MPLS only, no CFM needed:
[edit] interfaces { ge-5/2/7 { # Connected to PE1 unit 0 { family inet { address 10.200.1.10/24; } family mpls; } } ge-0/1/0 { # Connected to PE2 unit 0 { family inet { address 10.100.1.10/24; } family mpls; } } lo0 { unit 0{ family inet { address 10.255.168.240/32; } } } } [edit] protocols { rsvp { interface ge-0/1/0.0; interface ge-5/2/7.0; } mpls { interface ge-0/1/0.0; interface ge-5/2/7.0; } ospf { traffic-engineering; reference-bandwidth 4g; area 0.0.0.0 { interface all; interface fxp0.0 { disable; } interface ge-0/1/0.0; interface ge-5/2/7.0; } } }
CFM on L2-CE1
Here is the configuration of CFM on L2-E1:
[edit interfaces] ge-5/2/3 { vlan-tagging; unit 0 { vlan-id 2000; } } [edit protocols oam] ethernet { connectivity-fault-management { maintenance-domain customer { level 7; maintenance-association customer-site1 { continuity-check { interval 1s; } mep 800 { interface ge-5/2/3.0; direction down; auto-discovery; } } } } }
CFM on L2-CE2
Here is the configuration of CFM L2-CE2:
[edit interfaces] ge-0/2/9 { vlan-tagging; unit 0 { vlan-id 2000; } } [edit protocols oam] ethernet { connectivity-fault-management { maintenance-domain customer { level 7; maintenance-association customer-site1 { continuity-check { interval 1s; } mep 700 { interface ge-0/2/9.0; direction down; auto-discovery; } } } } }