Hello,
I am testing a new device (a MX204 as a BNG) to replace our soon EOL BNG device. We are testing all the functionnalities so that we can make this replacement without any big trouble.
We managed to configure the PPP session through L2TP Tunnel and PPPoE through a vlan trunk.
Now we want to configure QinQ from our provider to our BNG, so that we don't have to manually configure every customer vlans on our BNG.
Here is the problem: we managed to receive the PADI from the customer (The SVLAN is 4000), we send him the PADO but, the BNG is not mapping correctly the inner vlan.
The inner vlan mapped to reply to the customer is the 1st vlan available in the vlan inner-range...(c-vlan 2001) which doesn't match with the proper c-vlan...(our customers have got the c-vlans 2100 and 2500).
So the connexion doesn't go up.
Here are the configuration made on our BNG:
The xe-0/1/1 interface faces the QFX with QinQ:
set interfaces xe-0/1/1 flexible-vlan-tagging
set interfaces xe-0/1/1 encapsulation flexible-ethernet-services
set interfaces xe-0/1/1 gigether-options speed 1g
set interfaces xe-0/1/1 unit 4000 vlan-tags outer 4000
set interfaces xe-0/1/1 unit 4000 vlan-tags inner-range 2001-2500
set interfaces xe-0/1/1 unit 4000 family pppoe dynamic-profile Profil_Dynamique_PPPoE_L2_QinQ
Here is the dynamic-profile configuration too:
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ routing-instances "$junos-routing-instance" interface "$junos-interface-name"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ routing-instances "$junos-routing-instance" routing-options access route $junos-framed-route-ip-address-prefix next-hop "$junos-framed-route-nexthop"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ routing-instances "$junos-routing-instance" routing-options access route $junos-framed-route-ip-address-prefix metric "$junos-framed-route-cost"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ routing-instances "$junos-routing-instance" routing-options access route $junos-framed-route-ip-address-prefix preference "$junos-framed-route-distance"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ routing-instances "$junos-routing-instance" routing-options access route $junos-framed-route-ip-address-prefix tag "$junos-framed-route-tag"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ routing-instances "$junos-routing-instance" routing-options access route $junos-subscriber-ip-address qualified-next-hop "$junos-interface-name"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" actual-transit-statistics
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" routing-services
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" ppp-options chap challenge-length maximum 16
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" ppp-options pap
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" ppp-options authentication pap
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" ppp-options authentication chap
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" ppp-options initiate-ncp ip
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" ppp-options mtu use-lower-layer
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" pppoe-options underlying-interface "$junos-underlying-interface"
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" pppoe-options server
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" keepalives interval 30
set dynamic-profiles Profil_Dynamique_PPPoE_L2_QinQ interfaces pp0 unit "$junos-interface-unit" family inet unnumbered-address "$junos-loopback-interface"
We can see the mismatch of c-vlan in the monitor traffic interface:
Listening on xe-0/1/1, capture size 1514 bytes
13:13:36.228997 In
Juniper PCAP Flags [Ext, In], PCAP Extension(s) total length 22
Device Media Type Extension TLV #3, length 1, value: Flexible-Ethernet-Services (52)
Logical Interface Encapsulation Extension TLV #6, length 1, value: Ethernet (14)
Device Interface Index Extension TLV #1, length 2, value: 166
Logical Interface Index Extension TLV #4, length 4, value: 363
Logical Unit Number Extension TLV #5, length 4, value: 4000
-----original packet-----
00:90:8f:cd:67:c7 > Broadcast, ethertype 802.1Q (0x8100), length 40: vlan 4000, p 0, ethertype 802.1Q, vlan 2100, p 0, ethertype PPPoE D, PPPoE PADI [Service-Name] [Host-Uniq UTF8]
13:13:36.229291 Out
Juniper PCAP Flags [Ext], PCAP Extension(s) total length 22
Device Media Type Extension TLV #3, length 1, value: Flexible-Ethernet-Services (52)
Logical Interface Encapsulation Extension TLV #6, length 1, value: Ethernet (14)
Device Interface Index Extension TLV #1, length 2, value: 166
Logical Interface Index Extension TLV #4, length 4, value: 363
Logical Unit Number Extension TLV #5, length 4, value: 4000
-----original packet-----
44:ec:ce:fd:44:14 > 00:90:8f:cd:67:c7, ethertype 802.1Q (0x8100), length 78: vlan 4000, p 6, ethertype 802.1Q, vlan 2001, p 6, ethertype PPPoE D, PPPoE PADO [AC-Name "core_lab_mx204"] [Host-Uniq UTF8] [Service-Name] [AC-Cookie UTF8]
Can someone please help me to fix this issue? We would like the customer c-vlan to be correctly mapped when the BNG replies to the customer's PADI request.
Thank you!
Regards.