[j-nsp] 6PE and BGP signaled lsps

Tobias Heister lists at tobias-heister.de
Mon Jul 23 09:22:20 EDT 2012


Dear All,

I am trying to wrap my head around this for some days now and it seems I am stuck. Sorry for the lengthy post, bit I tried to give as much information as possible.
I have 6 routers setup like this, currently all are logical-systems on a MX80-48T running 10.4R9 in our lab.

  /--- 9 --- 8 --- \
10     |     |      5
  \--- 3 --- 4 --- /

all routers in the same AS, the IGP is ISIS with a single level2, all loopbacks visible on all routers via ISIS
routers 4, 8 and 5 are setup with a ldp lsp full mesh
routers 10, 9, 3, 4, 8 are setup with a rsvp lsp full mesh

The goal is to use labeled BGP to get a lsp up between routers 5 and 10 to use for services ( 6PE, inet-vpn etc.) as we are not allowed to extend neither the ldp nor the rsvp area to the other routers.

What I have done so far:
routers 4 and 8 are route reflectors for family inet unicast, family inet labeled-unicast and family inet6 labeled-unicast
routers 5 and 10 are configured like this:

## routing-options:
interface-routes {
    rib-group inet interfaces;
}
rib-groups {
    interfaces {
        import-rib [ inet.0 inet.3 ];
        import-policy only-lo;
    }
}

## bgp:
type internal;
local-address 5/10
import prefer-inet3-bgp;
family inet {
    unicast;
    labeled-unicast {
        rib {
            inet.3;
        }
    }
}
family inet6 {
    labeled-unicast {
        explicit-null;
    }
}
export export-inet3-lo
neighbor 4
neighbor 8

## policy
policy-statement only-lo:
term one {
    from interface lo0.10;
    then accept;
}
term two {
    to rib inet.3;
    then reject;
}
term three {
    to rib inet.0;
    then accept;
}

policy-statement prefer-inet3-bgp:
from {
    protocol bgp;
    rib inet.3;
    route-filter 0.0.0.0/0 prefix-length-range /32-/32;
}
then {
    preference 9;
    accept;
}

policy-statement export-inet3-lo:
from {
    protocol direct;
    route-filter 0.0.0.0/0 prefix-length-range /32-/32;
}
then accept;

routers 4 and 8 are setup like this:

## bgp:
type internal;
local-address 4/8
family inet {
    unicast;
    labeled-unicast {
        rib {
            inet.3;
        }
    }
}
family inet6 {
    labeled-unicast {
        explicit-null;
    }
}
export export-agg;
cluster 4/8
neighbor 10
neighbor 9
neighbor 3
neighbor 5

## policy
relevant term from policy-statement export-agg
term inet3 {
    from {
        protocol bgp;
        rib inet.3;
        route-filter 0.0.0.0/0 prefix-length-range /32-/32;
    }
    then {
        next-hop self;
    }
}

As far is I understand everything is fine. I have lsps (or at least routes in inet.3) to each other on routers 5 and 10

inet.3 on router 5
10.0.10.10/32      *[BGP/9] 1d 08:08:26, localpref 100, from 10.0.10.4
                      AS path: I
                    > to 10.0.4.1 via ge-1/0/3.110, Push 300752
                    [BGP/9] 1d 08:08:27, localpref 100, from 10.0.10.8
                      AS path: I
                    > to 10.0.4.13 via ge-1/0/3.107, Push 300272

inet.3 on router 10
10.0.10.5/32       *[BGP/9] 1d 03:02:33, localpref 100, from 10.0.10.4
                      AS path: I
                    > to 10.0.0.6 via ge-1/0/4.101, label-switched-path R4
                    [BGP/9] 1d 03:02:33, localpref 100, from 10.0.10.8
                      AS path: I

forwarding for example from router 5 to a bgp prefix learned from router 10 uses this lsp and the labels show up in a traceroute just fine.
both lsps are going via router 4 (which as far as i understand) is normal in this setup

now I want to use this lsp for 6PE and turned on ipv6-tunneling under protocols mpls on both routers. family inet6 labled-unicast on the Route reflectors is already in place (see above)
family inet6 on all core facing interfaces is also configured. Everything is as expected for all the lsps inside the rsvp area and as well for all lsps inside the ldp area. I have entries in the inet6.3 table (for the mapped v4 address) and IPv6 Traffic is passing fine.

for example inet6.3 on R10
::ffff:10.0.10.3/128
                   *[RSVP/7/1] 1d 10:08:33, metric 10
                    > to 10.0.0.6 via ge-1/0/4.101, label-switched-path R3

Unfortunately the lsp (or better said the mapped address) signaled via bgp does not show up in table inet6.3

I have read a bunch of documentation the last days and have not found a lot of help for this situation. The 6PE Feature Guide [1] says "This feature can be implemented with label-switched paths (LSPs) using the Label Distribution Protocol (LDP) or Resource Reservation Protocol (RSVP)." I am not quite sure if this means that it only can work with ldp/rsvp or if this is just a lack in documentation.

The document about scaling with labeled bgp [2] has a section about 6PE but it does not help much. First of all the method explained to get interface routes to inet6.3 does not work (at least on 10.4R9 but I figured out the correct way myself) and then when I try to follow the instructions and assign a ipv6 loopback manually and try to advertise it via family inet6 labeled-unicast rib inet6.3 I get the following commit error: "BGP: ribgroup inet6.3 is not defined for this address family and nlri"

Are there any steps I am missing to get this to work? Is 6PE even supported on lsps signaled via bgp? I also setup a static lsp between router 5 and router 10 but this did not change anything. still no route in inet6.3 for router 5 or router 10
If anybody can push me into the right direction or point out a part of the documentation I may have missed it would be appreciated.

[1] http://www.juniper.net/techpubs/en_US/junos11.2/information-products/topic-collections/fg-ipv6-islands-to-ipv4-mpls-tc/fg-ipv6-islands-to-ipv4-mpls-tc.pdf
[2] http://www.juniper.net/us/en/local/pdf/design-guides/8020013-en.pdf

regards
Tobias


More information about the juniper-nsp mailing list