Routing

 View Only
last person joined: 8 hours ago 

Ask questions and share experiences about ACX Series, CTP Series, MX Series, PTX Series, SSR Series, JRR Series, and all things routing, including portfolios and protocols.
  • 1.  QinQ BNG MX204 to QFX5100

    Posted 06-27-2023 07:19

    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.



  • 2.  RE: QinQ BNG MX204 to QFX5100

    Posted 06-29-2023 04:52

    Hello,

    I finally managed to find a correct configuration that works:

    set interfaces xe-0/1/1 description Collecte_QinQ
    set interfaces xe-0/1/1 flexible-vlan-tagging
    set interfaces xe-0/1/1 auto-configure stacked-vlan-ranges dynamic-profile Vlan-QinQ accept inet
    set interfaces xe-0/1/1 auto-configure stacked-vlan-ranges dynamic-profile Vlan-QinQ accept pppoe
    set interfaces xe-0/1/1 auto-configure stacked-vlan-ranges dynamic-profile Vlan-QinQ ranges 4000-4000,1-4094
    set interfaces xe-0/1/1 encapsulation flexible-ethernet-services
    set interfaces xe-0/1/1 gigether-options speed 1g

    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" no-traps
    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" proxy-arp
    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" vlan-tags outer "$junos-stacked-vlan-id"
    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" vlan-tags inner "$junos-vlan-id"
    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" demux-options underlying-interface "$junos-interface-ifd-name"
    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" family pppoe duplicate-protection
    set dynamic-profiles Vlan-QinQ interfaces demux0 unit "$junos-interface-unit" family pppoe dynamic-profile Profil_Dynamique_PPPoE_L2_QinQ

    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 interface-set "$junos-svlan-interface-set-name" interface pp0 unit "$junos-interface-unit"
    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"

    Hope that will help!

    Regards!