Archive
Juniper Employee , Juniper Employee Juniper Employee
Archive
6PE and 6VPE over IPv4 BGP-LU - Part II
Mar 29, 2013

Next hop usability at off-the-path Route Reflectors

 

Once Inter-AS Option C connectivity has been prepared, off-the-path Route Reflectors should be in charge of advertising and propagating end customer routes among PEs in both ASs. In our example, R6 and R12 play that role in AS65000, and R15 and R19 in AS65001:

 

6PE-interASC-route-advertisement.jpg

Note that the off-the-path term has been used for these routers. This means, that they merely reflect end customer routing information without resetting the next hop to self and therefore without attracting the traffic. This goal is achievable in this model, because next-hop information is precisely propagated between ASs to other PEs by means of another vehicle: the BGP IPv4 labeled-unicast routes in a separate mesh. So far so good, these are the Inter-AS Option C basics.

 

Let's consider now that these Route Reflector servers also transport inet6 labeled-unicast routes to set up the 6PE model across both ASs. Even though no next-hop changes take effect, Junos OS performs next-hop validation for received routes so as to determine the route usability (this is actually the first step in the Junos OS BGP path selection algorithm).

 

Thus, checking default behavior at one of the Route Reflectors, for instance, inet6 labeled-unicast routes may appear as hidden:

 

juniper@R6> show route hidden extensive

[...]

2001:db8:6500:1::/64 (4 entries, 1 announced)

TSI:

KRT in-kernel 2001:db8:6500:1::/64 -> {indirect(262146)}

Page 0 idx 0 Type 1 val 9355ab0

    Nexthop: ::ffff:192.168.255.10

    Localpref: 100

    AS path: [65000] 65001 I

    Communities: 65001:100             

    Cluster ID: 192.168.255.6

    Originator ID: 192.168.255.10

    Advertise: 0000002f

Path 2001:db8:6500:1:: from 192.168.255.10 Vector len 4.  Val: 0

         BGP    Preference: 170/-101

                Next hop type: Unusable

                Address: 0x8f24804

                Next-hop reference count: 16

                State: <Hidden Ext>

                Inactive reason: Unusable path

                Local AS: 65000 Peer AS: 65001

                Age: 57

                Task: BGP_65001.192.168.255.15+52778

                AS path: 65001 I

                Communities: 65001:100

                Accepted

                Route Label: 2

                Localpref: 100

                Router ID: 192.168.255.15

                Indirect next hops: 1

                        Protocol next hop: ::ffff:192.168.255.15

                        Push 2

                        Indirect next hop: 0 -

         BGP    Preference: 170/-101

                Next hop type: Unusable

                Address: 0x8f24804

                Next-hop reference count: 16

                State: <Hidden Ext>

                Inactive reason: Unusable path

                Local AS: 65000 Peer AS: 65001

                Age: 58

                Task: BGP_65001.192.168.255.19+179

                AS path: 65001 I

                Communities: 65001:100

                Accepted

                Route Label: 2

                Localpref: 100

                Router ID: 192.168.255.19

                Indirect next hops: 1

                        Protocol next hop: ::ffff:192.168.255.19

                        Push 2

                        Indirect next hop: 0 -

 

and the reason is because such off-the-path Route Reflectors also need next-hop reachability information available although their final purpose is just reflecting the routes.

 

There are multiple options to grant such path usability, such as setting a default route in the adequate RIB etc. A simple technique in this case could be based on adding inet6.3 to the corresponding rib-group to inject the reachability information in these Route Reflectors and make use of the address-translation capabilities of rib-groups:

 

[edit]

juniper@R6# run show route ::ffff:192.168.255.19

 

[edit]

juniper@R6# run show route 192.168.255.19          

 

inet.0: 30 destinations, 57 routes (30 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

192.168.255.19/32  *[BGP/170] 00:04:57, localpref 100, from 192.168.255.10

                      AS path: 65001 I

                    > to 192.168.11.2 via ge-0/0/1.0, label-switched-path R6->R10

                    [BGP/170] 00:04:57, localpref 100, from 192.168.255.11

                      AS path: 65001 I

                    > to 192.168.11.2 via ge-0/0/1.0, label-switched-path R6->R11

 

inet.3: 27 destinations, 65 routes (27 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

192.168.255.19/32  *[BGP/170] 01:06:58, localpref 100, from 192.168.255.10

                      AS path: 65001 I

                    > to 192.168.11.2 via ge-0/0/1.0, label-switched-path R6->R10

                    [BGP/170] 01:06:58, localpref 100, from 192.168.255.11

                      AS path: 65001 I

                    > to 192.168.11.2 via ge-0/0/1.0, label-switched-path R6->R11

 

[edit]

juniper@R6# set routing-options rib-groups BGP-LU-to-inet0 import-rib inet6.3

 

 

[edit]

juniper@R6# commit and-quit

commit complete

Exiting configuration mode

 

juniper@R6> show route ::ffff:192.168.255.19

 

inet6.3: 43 destinations, 86 routes (43 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

::ffff:192.168.255.19/128

                   *[BGP/170] 00:00:09, localpref 100, from 192.168.255.10

                      AS path: 65001 I

                    > to 192.168.11.2 via ge-0/0/1.0, label-switched-path R6->R10

                    [BGP/170] 00:00:09, localpref 100, from 192.168.255.11

                      AS path: 65001 I

                    > to 192.168.11.2 via ge-0/0/1.0, label-switched-path R6->R11

 

juniper@R6> show route hidden                  

 

inet.0: 30 destinations, 57 routes (30 active, 0 holddown, 0 hidden)

 

inet.3: 27 destinations, 65 routes (27 active, 0 holddown, 0 hidden)

 

iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

 

mpls.0: 16 destinations, 16 routes (16 active, 0 holddown, 0 hidden)

 

inet6.0: 43 destinations, 86 routes (43 active, 0 holddown, 0 hidden)

 

inet6.3: 11 destinations, 22 routes (11 active, 0 holddown, 0 hidden)

 

At this point in time, 6PE routes become usable at Route Reflectors and get readvertised to clients.

 

Using rib-group address translation at PEs

 

So, end-to-end inet6 route reachability is intended and the address-translation rib-group capabilities come to rescue us again:

 

[edit protocols bgp]

log-updown;

vpn-apply-export;

group iBGP-transport-infra {

    type internal;

    local-address 192.168.255.6;

    family inet {

        unicast;

        labeled-unicast {

            rib-group BGP-LU-to-inet0;

            rib {

                inet.3;

            }

        }

    }

 

[edit routing-options]

    rib-groups {

        BGP-LU-to-inet0 {

            import-rib [ inet.3 inet.0 inet6.3 ];

        }

   }

 

Adding inet6.3 as secondary RIB effectively creates the IPv4-mapped IPv6 next hop needed for the inet6 labeled-unicast routes to become valid:

 

6PE-interASC-e2e-connectivity.jpg

As example:

 

juniper@R24> show route 2001:db8:6500:0::1   

 

inet6.0: 22 destinations, 35 routes (22 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

2001:db8:6500::/64 *[BGP/170] 00:03:41, localpref 100, from 192.168.255.15

                      AS path: 65000 I

                    > to 192.168.32.1 via ge-0/0/1.0, label-switched-path R24->R13

                    [BGP/170] 00:03:41, localpref 100, from 192.168.255.19

                      AS path: 65000 I

                    > to 192.168.32.1 via ge-0/0/1.0, label-switched-path R24->R13

 

Analyzing label stacks

 

When using IPv4 BGP labeled-unicast as MPLS label distribution protocol across both ASs, up to a triple label stack is created. Let's analyze the labels hop-by-hop in one arbitrary direction for the sake of clarity:

 

juniper@R1> traceroute 2001:db8:6500:1::1 source 2001:db8:6500:0::1

traceroute6 to 2001:db8:6500:1::1 (2001:db8:6500:1::1) from 2001:db8:6500:0::1, 64 hops max, 12 byte packets

1  2001:db8:0:ffff:192:168:255:3 (2001:db8:0:ffff:192:168:255:3)  66.187 ms  72.162 ms  59.894 ms

     MPLS Label=300192 CoS=0 TTL=1 S=0

     MPLS Label=301456 CoS=0 TTL=1 S=0

     MPLS Label=2 CoS=0 TTL=1 S=1

2  2001:db8:0:ffff:192:168:255:7 (2001:db8:0:ffff:192:168:255:7)  71.889 ms  59.915 ms  60.101 ms

     MPLS Label=300400 CoS=0 TTL=1 S=0

     MPLS Label=301456 CoS=0 TTL=2 S=0

     MPLS Label=2 CoS=0 TTL=2 S=1

3  2001:db8:0:ffff:192:168:255:10 (2001:db8:0:ffff:192:168:255:10)  71.972 ms  58.068 ms  71.994 ms

     MPLS Label=301456 CoS=0 TTL=1 S=0

     MPLS Label=2 CoS=0 TTL=3 S=1

4  ::ffff:192.168.15.2 (::ffff:192.168.15.2)  66.016 ms  60.033 ms  59.946 ms

     MPLS Label=300752 CoS=0 TTL=1 S=0

     MPLS Label=2 CoS=0 TTL=4 S=1

5  2001:db8:0:ffff:192:168:255:16 (2001:db8:0:ffff:192:168:255:16)  73.205 ms  60.026 ms  59.995 ms

     MPLS Label=301232 CoS=0 TTL=1 S=0

     MPLS Label=2 CoS=0 TTL=5 S=1

6  2001:db8:0:ffff:192:168:255:20 (2001:db8:0:ffff:192:168:255:20)  71.889 ms  60.015 ms  59.975 ms

     MPLS Label=301616 CoS=0 TTL=1 S=0

     MPLS Label=2 CoS=0 TTL=6 S=1

7  2001:db8:0:ffff:192:168:255:23 (2001:db8:0:ffff:192:168:255:23)  59.956 ms  60.328 ms  72.175 ms

     MPLS Label=300464 CoS=0 TTL=1 S=0

     MPLS Label=2 CoS=0 TTL=7 S=1

8  2001:db8:6500:1::1 (2001:db8:6500:1::1)  69.879 ms  66.055 ms  71.936 ms

6PE-interASC-labels.jpg

 

and labels may be checked at each step to confirm that they are aligned with this traceroute output:

 

  • At R1:

juniper@R1> show route forwarding-table destination 2001:db8:6500:1::1

Routing table: default.inet6

Internet6:

Destination        Type RtRef Next hop           Type Index NhRef Netif

2001:db8:6500:1::/64 user     0                  indr 262168     3

                              192.168.1.2      Push 2, Push 301456, Push 300192(top)   647     2 ge-0/0/2.0

 

Routing table: __master.anon__.inet6

Internet6:

Destination        Type RtRef Next hop           Type Index NhRef Netif

default            perm     0                    rjct   543     1

 

  • At R3:

juniper@R3> show route label 300192

 

mpls.0: 40 destinations, 40 routes (40 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

300192             *[RSVP/7/1] 11:01:44, metric 1

                    > to 192.168.4.2 via ge-0/0/3.0, label-switched-path R1->R10

 

juniper@R3> show route forwarding-table label 300192

Routing table: default.mpls

MPLS:

Destination        Type RtRef Next hop           Type Index NhRef Netif

300192             user     0 192.168.4.2       Swap 300400   618     2 ge-0/0/3.0

 

Routing table: :mpls-oam.mpls

MPLS:

Destination        Type RtRef Next hop           Type Index NhRef Netif

default            perm     0                    dscd   535     1

 

  • At R7:

 

juniper@R7> show route label 300400 

 

mpls.0: 81 destinations, 81 routes (81 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

300400             *[RSVP/7/1] 11:04:18, metric 1

                    > to 192.168.13.2 via ge-0/0/4.0, label-switched-path R1->R10

300400(S=0)        *[RSVP/7/1] 11:04:18, metric 1

                    > to 192.168.13.2 via ge-0/0/4.0, label-switched-path R1->R10

 

juniper@R7> show route label 300400 extensive

 

mpls.0: 81 destinations, 81 routes (81 active, 0 holddown, 0 hidden)

300400 (1 entry, 1 announced)

TSI:

KRT in-kernel 300400 /52 -> {Pop}

        *RSVP   Preference: 7/1

                Next hop type: Router, Next hop index: 653

                Address: 0x9322578

                Next-hop reference count: 3

                Next hop: 192.168.13.2 via ge-0/0/4.0 weight 0x1, selected

                Label-switched-path R1->R10

                Label operation: Pop     

                State: <Active Int AckRequest>

                Local AS: 65000

                Age: 11:04:23     Metric: 1

                Task: RSVP

                Announcement bits (1): 0-KRT

                AS path: I

[...]

 

  • At R10 (Note that IPv4 labeled-unicast derived labels appear as VPN😞

 

juniper@R10> show route label 301456

 

mpls.0: 50 destinations, 50 routes (50 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

301456             *[VPN/170] 00:33:25

                    > to 192.168.15.2 via ge-0/0/3.0, Swap 300752

 

juniper@R10> show route label 301456 extensive

 

mpls.0: 50 destinations, 50 routes (50 active, 0 holddown, 0 hidden)

301456 (1 entry, 1 announced)

TSI:

KRT in-kernel 301456 /52 -> {Swap 300752}

        *VPN    Preference: 170

                Next hop type: Router, Next hop index: 625

                Address: 0x9323148

                Next-hop reference count: 2

                Source: 192.168.15.2

                Next hop: 192.168.15.2 via ge-0/0/3.0, selected

                Label operation: Swap 300752

                State: <Active Int Ext>

                Local AS: 65000

                Age: 33:32

                Task: BGP_RT_Background

                Announcement bits (1): 0-KRT

                AS path: 65001 I

                Ref Cnt: 2

                Communities: 65000:101

  • At R13:

juniper@R13> show route label 300752

 

mpls.0: 51 destinations, 51 routes (51 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

300752             *[VPN/170] 00:37:58, metric2 80, from 192.168.255.24

                    > to 192.168.18.2 via ge-0/0/3.0, label-switched-path R13->R24

 

juniper@R13> show route forwarding-table label 300752

Routing table: default.mpls

MPLS:

Destination        Type RtRef Next hop           Type Index NhRef Netif

300752             user     0                    indr 262149     2

                              192.168.18.2      Swap 301232   625     2 ge-0/0/3.0

 

Routing table: :mpls-oam.mpls

MPLS:

Destination        Type RtRef Next hop           Type Index NhRef Netif

default            perm     0                    dscd   535     1

 

  • At R16:

juniper@R16> show route label 301232

mpls.0: 80 destinations, 80 routes (80 active, 0 holddown, 0 hidden
+ = Active Route, - = Last Active, * = Both

301232             *[RSVP/7/1] 11:07:23, metric 1
                    > to 192.168.25.2 via ge-0/0/4.0, label-switched-path R13->R24

juniper@R16> show route label 301232 extensive

mpls.0: 80 destinations, 80 routes (80 active, 0 holddown, 0 hidden)
301232 (1 entry, 1 announced)
TSI:
KRT in-kernel 301232 /52 -> {Swap 301616}
        *RSVP   Preference: 7/1
                Next hop type: Router, Next hop index: 686
                Address: 0x9322f50
                Next-hop reference count: 3
                Next hop: 192.168.25.2 via ge-0/0/4.0 weight 0x1, selected
                Label-switched-path R13->R24
                Label operation: Swap 301616
                State: <Active Int AckRequest>
                Local AS: 65001
                Age: 11:08:25     Metric: 1
                Task: RSVP
                Announcement bits (1): 0-KRT
                AS path: I

 

  • At R20:

juniper@R20> show route label 301616

 

mpls.0: 79 destinations, 79 routes (79 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

301616             *[RSVP/7/1] 11:10:14, metric 1

                    > to 192.168.30.2 via ge-0/0/4.0, label-switched-path R13->R24

 

juniper@R20> show route label 301616 extensive

 

mpls.0: 79 destinations, 79 routes (79 active, 0 holddown, 0 hidden)

301616 (1 entry, 1 announced)

TSI:

KRT in-kernel 301616 /52 -> {Swap 300464}

        *RSVP   Preference: 7/1

                Next hop type: Router, Next hop index: 648

                Address: 0x9320eb0

                Next-hop reference count: 3

                Next hop: 192.168.30.2 via ge-0/0/4.0 weight 0x1, selected

                Label-switched-path R13->R24

                Label operation: Swap 300464

                State: <Active Int AckRequest>

                Local AS: 65001

                Age: 11:10:18     Metric: 1

                Task: RSVP

                Announcement bits (1): 0-KRT

                AS path: I

 

  • At R23:

juniper@R23> show route label 300464

 

mpls.0: 65 destinations, 65 routes (65 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

300464             *[RSVP/7/1] 11:12:13, metric 1

                    > to 192.168.32.2 via ge-0/0/2.0, label-switched-path R13->R24

300464(S=0)        *[RSVP/7/1] 11:12:13, metric 1

                    > to 192.168.32.2 via ge-0/0/2.0, label-switched-path R13->R24

 

juniper@R23> show route label 300464 extensive

 

mpls.0: 65 destinations, 65 routes (65 active, 0 holddown, 0 hidden)

300464 (1 entry, 1 announced)

TSI:

KRT in-kernel 300464 /52 -> {Pop      }

        *RSVP   Preference: 7/1

                Next hop type: Router, Next hop index: 631

                Address: 0x9323cd0

                Next-hop reference count: 3

                Next hop: 192.168.32.2 via ge-0/0/2.0 weight 0x1, selected

                Label-switched-path R13->R24

                Label operation: Pop     

                State: <Active Int AckRequest>

                Local AS: 65001

                Age: 11:12:16     Metric: 1

                Task: RSVP

                Announcement bits (1): 0-KRT

                AS path: I

 

  • At R23:

 

juniper@R23> show route label 300464

 

mpls.0: 65 destinations, 65 routes (65 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

300464             *[RSVP/7/1] 11:12:13, metric 1

                    > to 192.168.32.2 via ge-0/0/2.0, label-switched-path R13->R24

300464(S=0)        *[RSVP/7/1] 11:12:13, metric 1

                    > to 192.168.32.2 via ge-0/0/2.0, label-switched-path R13->R24

 

juniper@R23> show route label 300464 extensive

 

mpls.0: 65 destinations, 65 routes (65 active, 0 holddown, 0 hidden)

300464 (1 entry, 1 announced)

TSI:

KRT in-kernel 300464 /52 -> {Pop      }

        *RSVP   Preference: 7/1

                Next hop type: Router, Next hop index: 631

                Address: 0x9323cd0

                Next-hop reference count: 3

                Next hop: 192.168.32.2 via ge-0/0/2.0 weight 0x1, selected

                Label-switched-path R13->R24

                Label operation: Pop     

                State: <Active Int AckRequest>

                Local AS: 65001

                Age: 11:12:16     Metric: 1

                Task: RSVP

                Announcement bits (1): 0-KRT

                AS path: I

 
And this results in a final pop to the end 6PE R24.

 

Conclusions

 

Junos OS includes an address-family translation feature with rib-groups that provides helpful assistance in the case of MPLS-based 6PE or 6VPE scenarios. This functionaly becomes useful at many stages:

 

  • To allow proper resolution (and IGP metric consideration) for BGP inet6 labeled-unicast (and inet6-vpn unicast) routes at Route Reflector servers
  • To create the adequate sibling inet6.3 routes for end system resolution at 6PEs and 6VPEs

As opposed to plain ipv6-tunneling for LDP or RSVP-TE, this configuration resource is more granular thanks to rib-groups import-policies that allow the definition of which routes are leaked where, to and how. Leaking on steroids!

 

In this particular case study, I wanted to illustrate this feature application in the 6PE model with a Junosphere MPLS Inter-AS Option C setup. As usual, there are other alternatives and the feature suitability depends on each scenario. But in recently popular topologies, like those based on seamless MPLS or simply using BGP-LU as the MPLS label distribution protocol of choice, this allows local, simple and easy IPv6 feasibility without needing to use another protocol artifact or signalling mechanism.

 

Any questions/comments/feedback are more than welcome, please drop them here or tweet me at @go_nzo

Mar 29, 2013

Hi Gonzalo,

 

I need some details from you about INTER-AS MPBGP for 6VPE.

 

I have MX-80 as acting as ASBR-1 which is connected to Cisco ASBR-2. Am trying to implement option B inter-as 6vpe. Cisco ASBR-2 is receving both vpnv4/6 routes from MX-80 ASBR-1 and i can see in IPV6 VRF route at PE-2 end.

 

Same way Cisco is advertising the router to MX-80 ASBR-1, but MX-80 is not accepting the routes throuwing an error nexthop is remote that is ::ffff:9.10.115.2.

 

This ::ffff:9.10.115.2 is not installed in inet6.3. Once i configured command "accept-remote-nexthop" the MX-80 is receiving the routes, but those are not installed in routing table since the nexthop type is unusable.

 

Have copied the Juniper MX-80 ASBR-1 configuration below.. request you suggest if any changes to be done.

 

I gone through your posts it say to configure rib-groups to import routes, but if commit that am getting error that rib-group is not defined.

 

Below is the Juniper end configuration:

-----------------------------------------------------

 

 show protocols bgp
group MPEBGP {
    type external;
    traceoptions {
        file ipv6vpn;
        flag all;
        flag update;
        flag packets;
    }
    accept-remote-nexthop;
    keep all;
    local-as 9583;
    neighbor 9.10.115.2 {
        family inet-vpn {
            unicast;
        }
        family inet6-vpn {
            unicast;
        }
        peer-as 101;
        local-as 9583;
    }
}
group MPIBGP {
    type internal;
    family inet {
        unicast;
    }
    family inet6-vpn {
        unicast {
            rib-group test;
        }
    }
    vpn-apply-export;
    local-as 9583;
    neighbor 10.20.0.3 {
        local-address 10.20.0.115;
        family inet-vpn {
            unicast;
        }
        family inet6-vpn {
            any;
        }
        export MPIBGP-NH-SELF;
        peer-as 9583;
    }
}

 

Regards.

Vikram

Apr 11, 2013
Juniper Employee

Hi Vikram,

 

apologies for the late response, I have been some days on holidays and somehow missed a notification related to your post.

 

Please note that this article is based on InterAS Option C, while you are asking about Option B. I am actually scoping an article about InterAS Option A+B covering 6VPE, so I'll take note about this and try to replicate and analyze the issue in a comprehensive fashion.

 

Are you still troubleshooting the problem? How does your external interface configuration look like?

 

Point in a 6VPE option B is that the next hop is currently derived from peering interface addressing, In your case, you should include 'family inet6 address ::ffff:9.10.115.1/126' in this external peering interface (i.e 9.10.115.2 for the control plane, and ::ffff:9.10.115.2 for the next hop that you see), so as to derive the IPv4-mapped IPv6 address needed to construct the inet6 vpn route next hop.

 

Please let us know the outcome and sorry for the delay.

 

Thanks for chiming in,

 

Gonzalo

 

 

Jun 20, 2013
Juniper Employee

Hi Vikram,

 

please note that I just posted an article to try and explain this previous comment: Inter-AS Option B for IPv4 and IPv6 L3VPNs

 

If possible, I would much appreciate your feedback about it. Please note that the article includes a Junosphere topology attached, in case you want to play around with it.

 

Thanks,

 

Gonzalo

Dec 29, 2014

Hi Gonzalo,

 

I have a question regarding the 6PE RR deployment.

 

I see that all the routers in your topology have LDP turned on including the RRs (i.e. R6). So the RRs would have their inet.3 populated with all the PE loopbacks and turning on the "mpls ipv6-tunneling" feature would automatically create the PE IPv4-mapped IPv6 addresses in the inet6.3 table. This way the BGP IPv6 NHs would be resolved in the RRs inet6.3 table and advertised to all the client PEs.

 

But what if the RRs are restricted to only partial-mesh RSVP and may not have inet.3 entries to all the client PEs. Without having the ability to turn on LDP on the RRs, can we use rib-groups to import routes into the inet.3/inet6.3 and create the IPv4-mapped IPv6 address? 

 

Any help would be greatly appreciated!

Jan 27, 2015
Juniper Employee

Hi mrahma04,

 

first of all, apologies for the late response. I was on holidays at the time you issued the comment and I somehow missed it afterwards.

 

Yes, there are multiple options to achieve that. The ability to use multi-family address translation with rib-groups explained in this article was actually originally designed for your exact use case: tracking IGP metric to inet6.3 next hops at RRs for 6PE model. The bottomline is that you could inherit the IGP metric visible in inet.3 FECs to inet6.3 and accurately use it for route selection purposes (imagine a design with multiple RR hierarchies and multihomed prefixes, where IGP metric becomes the most relevant tie breaker).

 

Did you finally test a rib-group such as import-rib [ inet.0 inet.3 inet6.3 ]  in the RR?

 

Thanks and apologies again for the delay,

 

Gonzalo

Aug 6, 2016
thanks mate , great article . helped me to solve the mystical 3 label stack with inter domain LSP . is fair to say 2 2011:310:1023::2 (2011:310:1023::2) 15.059 ms 10.151 ms 9.813 ms MPLS Label=302544 CoS=0 TTL=1 S=0 --- RSVP TE LABEl MPLS Label=301264 CoS=0 TTL=1 S=0 ------------- ( interdomain LSP / LU VPN LABEL ) MPLS Label=2 CoS=0 TTL=1 S=1 --- ipv4 explicit null mapped inner label will change when the LSP cross the AS . I would also like to know what happens if you use LSP Stitching across AS / DOMAINs . thanks again @mrahma04, i tried to used static default route in inet6.3 in RR and that does the magic . gonzalo also metioned .. " There are multiple options to grant such path usability, such as setting a default route in the adequate RIB etc. "
Feedback