Routing

 View Only
last person joined: 2 days 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.  6PE in lab not working

    Posted 01-28-2020 05:10

    Hello everyone.

    I`m trying to set up 6PE schema in my lab using vMX as PE/P routers and vSRX as CE.

    Here what topology looks like:

    image.png

     

    Main goal is to ping inet6 address 2a00:f440:0:673::5 on vsrx called INTERNET from vsrx called CE-6PE.

    INTERNET config looks like this:

    show configuration interfaces ge-0/0/0
    unit 0 {
        family inet {
            address 192.168.100.0/31;
        }
        family inet6 {
            address 2a00:f440:0:673::5/126;
        }
    }
    

    BGP neighbors:

    show configuration protocols bgp
    group INTERNET {
        family inet {
            unicast;
        }
        family inet6 {
            unicast;
        }
        export EXPORT-DEFAULT;
        peer-as 65000;
        neighbor 192.168.100.1;
        neighbor 192.168.101.1;
    }
    
     policy-statement EXPORT-DEFAULT
    term 1 {
        from {
            route-filter 0.0.0.0/0 exact;
        }
        then accept;
    }
    term 2 {
        from {
            route-filter ::/0 exact;
        }
        then {
            next-hop 2a00:f440:0:673::5;
            accept;
        }
    }
    then reject;
    
    show route advertising-protocol bgp 192.168.100.1
    
    inet.0: 15 destinations, 24 routes (15 active, 0 holddown, 0 hidden)
      Prefix                  Nexthop              MED     Lclpref    AS path
    * 0.0.0.0/0               Self                                    I
    
    inet6.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)
      Prefix                  Nexthop              MED     Lclpref    AS path
    * ::/0                    2a00:f440:0:673::5                      I
    

    configuration of BNG1 which is ASBR in this topology:

    show configuration interfaces ge-0/0/2
    unit 0 {
        family inet {
            address 192.168.100.1/31;
        }
        family inet6 {
            address 2a00:f440:0:673::6/126;
        }
    }
    
     show configuration protocols bgp
    group ibgp {
        type internal;
        local-address 10.0.0.1;
        family inet {
            unicast;
        }
        family inet6 {
            labeled-unicast {
                explicit-null;
            }
        }
        family evpn {
            signaling;
        }
        family route-target;
        export EXPORT-DEFAULT;
        cluster 0.0.0.10;
        multipath;
        neighbor 10.0.0.3;
    }
    group INTERNET {
        import EBGP-IMPORT;
        family inet {
            unicast;
        }
        family inet6 {
            unicast;
        }
        export EBGP-DEFAULT;
        neighbor 192.168.100.0 {
            peer-as 65100;
        }
    }
    
    show route receive-protocol bgp 192.168.100.0
    
    inet.0: 23 destinations, 23 routes (23 active, 0 holddown, 0 hidden)
      Prefix                  Nexthop              MED     Lclpref    AS path
    * 0.0.0.0/0               192.168.100.0                           65100 I
    
    inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
    
    iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
    
    mpls.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)
    
    inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
      Prefix                  Nexthop              MED     Lclpref    AS path
    * ::/0                    2a00:f440:0:673::5                      65100 I
    
    inet6.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
    
    bgp.rtarget.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
    
     show route advertising-protocol bgp 192.168.100.0
    
    inet.0: 23 destinations, 23 routes (23 active, 0 holddown, 0 hidden)
      Prefix                  Nexthop              MED     Lclpref    AS path
    * 10.0.0.1/32             Self                                    I
    * 10.0.0.2/32             Self                 10                 I
    * 10.0.0.3/32             Self                 10                 I
    * 10.0.0.4/32             Self                 20                 I
    * 10.0.0.5/32             Self                 30                 I
    * 10.0.0.6/32             Self                 20                 I
    * 10.0.0.100/32           Self                 10                 I
    * 10.0.0.252/30           Self                 40                 I
    * 10.10.10.0/24           Self                 40                 I
    
    inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
      Prefix                  Nexthop              MED     Lclpref    AS path
    * 2a00:f440:a::/48        2a00:f440:0:673::6                      I
    

    10.0.0.3 is route-reflector:

    table inet6.0 advertising-protocol bgp 10.0.0.3 detail
    
    inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
    * ::/0 (1 entry, 1 announced)
     BGP group ibgp type Internal
         Route Label: 2
         Nexthop: Self
         Flags: Nexthop Change
         Localpref: 100
         AS path: [65000] 65100 I
         Communities: 65000:0
    

    Label 2 as expected.

     

     

    There is LSP to PE2:

    show configuration protocols mpls
    ipv6-tunneling;
    label-switched-path BNG1-PE2 {
        to 10.0.0.5;
        inter-domain;
    }
    interface ge-0/0/0.0;
    interface ge-0/0/1.0;
    

    and it is up and running:

     show mpls lsp ingress
    Ingress LSP: 1 sessions
    To              From            State Rt P     ActivePath       LSPname
    10.0.0.5        10.0.0.1        Up     0 *                      BNG1-PE2
    Total 1 displayed, Up 1, Down 0
    

    On RR(10.0.0.3)

    show configuration protocols bgp
    group ibgp {
        type internal;
        local-address 10.0.0.3;
        family inet {
            unicast;
        }
        family inet-vpn {
            unicast;
        }
        family inet6 {
            labeled-unicast {
                explicit-null;
            }
        }
        family evpn {
            signaling;
        }
        family route-target {
            advertise-default;
        }
        cluster 0.0.0.100;
        neighbor 10.0.0.1;
        neighbor 10.0.0.5;
        neighbor 10.0.0.6;
        neighbor 10.0.0.2;
    }
    

    routes advertised from RR(P1) to PE2 (10.0.0.5):

    advertising-protocol bgp 10.0.0.5 detail
    
    inet6.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
    * ::/0 (1 entry, 1 announced)
     BGP group ibgp type Internal
         Route Label: 2
         Nexthop: ::ffff:10.0.0.1
         Localpref: 100
         AS path: [65000] 65100 I
         Communities: 65000:0
         Cluster ID: 0.0.0.100
         Originator ID: 10.0.0.1
    

    route advertised fro RR(P1) to BNG1(10.0.0.1):

    able inet6.0 advertising-protocol bgp 10.0.0.1 detail
    
    inet6.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
    * 2a00:f440:a:2::4/127 (1 entry, 1 announced)
     BGP group ibgp type Internal
         Route Label: 2
         Nexthop: ::ffff:10.0.0.5
         Localpref: 100
         AS path: [65000] I
         Cluster ID: 0.0.0.100
         Originator ID: 10.0.0.5
    

    Link between PE2 and CE-6PE is redistributed to BGP on PE2 with a policy:

    show configuration policy-options policy-statement EXPORT-BGP
    term 1 {
        from {
            route-filter 10.0.0.0/24 orlonger;
        }
        then accept;
    }
    term 2 {
        from {
            route-filter 2a00:f440:a:2::4/127 exact;
        }
        then accept;
    }
    

    on CE-6PE:

    show configuration interfaces ge-0/0/0
    unit 0 {
        family inet {
            address 10.0.0.254/30;
        }
        family inet6 {
            address 2a00:f440:a:2::5/127;
        }
    }
    
    

    With static route pointing to ge-0/0/3 interface on PE2:

    show configuration routing-options
    rib inet6.0 {
        static {
            route ::/0 next-hop 2a00:f440:a:2::4;
        }
    

    PE2 config:

    label-switched-path PE1-BNG1 {
        to 10.0.0.1;
        inter-domain;
    }
    interface ge-0/0/0.0;
    interface ge-0/0/1.0;
    
     show configuration protocols bgp
    group ibgp {
        type internal;
        local-address 10.0.0.5;
        family inet {
            unicast;
        }
        family inet6 {
            labeled-unicast {
                explicit-null;
            }
        }
        family evpn {
            signaling;
        }
        family route-target;
        export EXPORT-BGP;
        neighbor 10.0.0.3;
    }
    

    ::/0 is in inet6.0 table:

    ::/0               *[BGP/170] 18:39:53, localpref 100, from 10.0.0.3
                          AS path: 65100 I, validation-state: unverified
                        >  to 192.168.0.11 via ge-0/0/0.0, label-switched-path PE1-BNG1
    

    After checking forwarding plane everything seems ok:

    The path is CE-6PE->PE2->PE1->P1->BNG1->INTERNET

    CE-6PE:

    show route 2a00:f440:0:673::5
    
    inet6.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    ::/0               *[Static/5] 1d 02:16:27
                        >  to 2a00:f440:a:2::4 via ge-0/0/0.0
    

    PE2:

    show route 2a00:f440:0:673::5 detail
    
    inet6.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
    ::/0 (1 entry, 1 announced)
            *BGP    Preference: 170/-101
                    Next hop type: Indirect, Next hop index: 0
                    Address: 0xce34330
                    Next-hop reference count: 2
                    Source: 10.0.0.3
                    Next hop type: Router, Next hop index: 514
                    Next hop: 192.168.0.11 via ge-0/0/0.0, selected
                    Label-switched-path PE1-BNG1
                    Label operation: Push 2, Push 300176(top)
                    Label TTL action: prop-ttl, prop-ttl(top)
                    Load balance label: Label 2: None; Label 300176: None;
                    Label element ptr: 0xcfdb224
                    Label parent element ptr: 0xcfdae34
                    Label element references: 1
                    Label element child references: 0
                    Label element lsp id: 0
                    Session Id: 0x140
                    Protocol next hop: ::ffff:10.0.0.1
                    Label operation: Push 2
                    Label TTL action: prop-ttl
                    Load balance label: Label 2: None;
                    Indirect next hop: 0xdd04cc0 1048575 INH Session ID: 0x14f
                    State: <Active Int Ext>
                    Local AS: 65000 Peer AS: 65000
                    Age: 18:45:18   Metric2: 30
                    Validation State: unverified
                    Task: BGP_65000.10.0.0.3
                    Announcement bits (2): 0-KRT 4-Resolve tree 5
                    AS path: 65100 I  (Originator)
                    Cluster list:  0.0.0.100
                    Originator ID: 10.0.0.1
                    Communities: 65000:0
                    Accepted
                    Route Label: 2
                    Localpref: 100
                    Router ID: 10.0.0.3
    

    PE1:

    show route table mpls.0 label 300176 detail
    
    mpls.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
    300176 (1 entry, 1 announced)
            *RSVP   Preference: 7/1
                    Next hop type: Router, Next hop index: 591
                    Address: 0xce343f0
                    Next-hop reference count: 2
                    Next hop: 192.168.0.2 via ge-0/0/1.0, selected
                    Label-switched-path PE1-BNG1
                    Label operation: Swap 299872
                    Load balance label: Label 299872: None;
                    Label element ptr: 0xcfdbb90
                    Label parent element ptr: 0x0
                    Label element references: 2
                    Label element child references: 0
                    Label element lsp id: 0
                    Session Id: 0x140
                    State: <Active Int AckRequest Accounting EL-capable>
                    Local AS: 65000
                    Age: 1d 2:47:14         Metric: 1
                    Validation State: unverified
                    Task: RSVP
                    Announcement bits (1): 1-KRT
                    AS path: I
    

    P1:

    show route table mpls.0 label 299872 detail
    
    mpls.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
    299872 (1 entry, 1 announced)
            *RSVP   Preference: 7/1
                    Next hop type: Router, Next hop index: 584
                    Address: 0xce35cb0
                    Next-hop reference count: 2
                    Next hop: 192.168.0.0 via ge-0/0/0.0, selected
                    Label-switched-path PE1-BNG1
                    Label operation: Pop
                    Load balance label: None;
                    Label element ptr: 0xcfdaee8
                    Label parent element ptr: 0x0
                    Label element references: 2
                    Label element child references: 0
                    Label element lsp id: 0
                    Session Id: 0x143
                    State: <Active Int AckRequest Accounting EL-capable>
                    Local AS: 65000
                    Age: 1d 2:48:20         Metric: 1
                    Validation State: unverified
                    Task: RSVP
                    Announcement bits (1): 1-KRT
                    AS path: I
    
    299872(S=0) (1 entry, 1 announced)
            *RSVP   Preference: 7/1
                    Next hop type: Router, Next hop index: 588
                    Address: 0xce34f90
                    Next-hop reference count: 2
                    Next hop: 192.168.0.0 via ge-0/0/0.0, selected
                    Label-switched-path PE1-BNG1
                    Label operation: Pop
                    Load balance label: None;
                    Label element ptr: 0xcfdb9bc
                    Label parent element ptr: 0x0
                    Label element references: 1
                    Label element child references: 0
                    Label element lsp id: 0
                    Session Id: 0x143
                    State: <Active Int AckRequest Accounting EL-capable>
                    Local AS: 65000
                    Age: 1d 2:48:20         Metric: 1
                    Validation State: unverified
                    Task: RSVP
                    Announcement bits (1): 1-KRT
                    AS path: I
    

    So the path looks like:

    pure inet 6 from CE-6PE to PE2, PE2 pushes label 300176 on top and label 2 as service label, 

     



  • 2.  RE: 6PE in lab not working
    Best Answer

    Posted 01-28-2020 05:51

    Hello,

    2 things:

    1/ "family inet6" needs to be enabled on PE core-facing interfaces. IPv6 address is not necessary, just "family inet6" is enough.

    2/ (v)SRX needs to be put either in packet-mode or IPv6 flow mode needs to be enabled

    https://kb.juniper.net/InfoCenter/index?page=content&id=KB25697&actp=METADATA

    HTH

    Thx

    Alex



  • 3.  RE: 6PE in lab not working

    Posted 01-28-2020 06:40

    Hello


    @aarseniev wrote:

    1/ "family inet6" needs to be enabled on PE core-facing interfaces. IPv6 address is not necessary, just "family inet6" is enough.

     


    Worked like a charm, thanks! 🙂



  • 4.  RE: 6PE in lab not working

    Posted 05-23-2022 10:15
    Edited by Michael Pappas 05-24-2022 16:25
    Hi,

    I would like to know "in detail" WHY we need fam inet6 on core facing interfaces in 6PE scenario. I know why every documentation suggests explicit-null for scalability sake (single label for all PE attached v6 routers) but why we need the inet6 there? Is it because the explicit-null label points to the inet6.0 table and the router MUST do a traditional v6 lookup?

    mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    2                  *[MPLS/0] 16:08:48, metric 1
                          to table inet6.0​


    Could one say that explicit-null label is treated as I standard IPv6 packet?

    No one seems to explain it in detail they just tell you that you SHOULD enable that family on those specific interfaces and thats it?
    It's confusting since to the eggress routers the encapsulated v6 packet has TWO labels at ingress so that is why I'm asking.

    Thanks in advance. 
     
    Regards
    Tomek


    EDIT: ok I found this statement in the 6PE docs:

    "….Even though Label 2 MPLS packets are sent in IPv4, these packets are treated as native IPv6 packets……"

    Link to article






  • 5.  RE: 6PE in lab not working

    Posted 06-07-2022 09:55
    Regarding your question as to why we need the family inet6 in the core-facing interfaces, it was not needed in the past (17.x versions). And indeed, these are treated and go through as IPv6 packets internally.

    Elvin