Description

A router running External BGP with Interprovider VPNS for Option B:


https://www.juniper.net/documentation/us/en/software/junos/vpn-l3/topics/topic-map/l3-vpns-interprovider.html


Is seeing a problem with route installation. The test/topology uses a VRF:

 

set routing-instances 100 instance-type vrf

set routing-instances 100 interface et-0/0/4.2

set routing-instances 100 interface lo0.100

set routing-instances 100 vrf-target import target:577:100

set routing-instances 100 vrf-target export target:577:100

set routing-instances 100 vrf-table-label

 

With an EBGP peer in the parent routing-instance. That peer runs inet-vpn and inet6-vpn address families and is set to use IPv4 as the neighbor protocol:

 

set protocols bgp group e1 type external

set protocols bgp group e1 accept-remote-nexthop

set protocols bgp group e1 family inet-vpn unicast

set protocols bgp group e1 family inet6-vpn unicast

set protocols bgp group e1 peer-as 65002

set protocols bgp group e1 neighbor 1.0.0.2

 

VPNv4 routes are received and installed as expected:

 

labroot@e12-44> show bgp summary 

Threading mode: BGP I/O

Default eBGP mode: advertise - accept, receive - accept

Groups: 1 Peers: 1 Down peers: 0

Table     Tot Paths Act Paths Suppressed  History Damp State  Pending

bgp.l3vpn.0      

            2     2     0     0     0     0

bgp.l3vpn-inet6.0   

            2     0     0     0     0     0

Peer           AS   InPkt   OutPkt  OutQ  Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...

1.0.0.2        65002    9457    9450    0    9 2d 22:48:08 Establ

 bgp.l3vpn.0: 2/2/2/0

 100.inet.0: 2/2/2/0

 bgp.l3vpn-inet6.0: 0/2/2/0

 100.inet6.0: 0/2/2/0

 

labroot@e12-44> show route receive-protocol bgp 1.0.0.2 detail table bgp.l3vpn.0 

 

bgp.l3vpn.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)

* 2.2.2.2:6:99.99.99.2/32 (1 entry, 0 announced)

   Import Accepted

   Route Distinguisher: 2.2.2.2:6

   VPN Label: 16

   Nexthop: 1.0.0.2

   AS path: 65002 I 

   Communities: target:577:100

 

* 2.2.2.2:6:100.0.0.0/24 (1 entry, 0 announced)

   Import Accepted

   Route Distinguisher: 2.2.2.2:6

   VPN Label: 16

   Nexthop: 1.0.0.2

   AS path: 65002 I 

   Communities: target:577:100

 

But, the vpnv6 routes sent by the peer are marked hidden:

 

labroot@e12-44> show route receive-protocol bgp 1.0.0.2 detail table bgp.l3vpn-inet6.0 hidden 

 

bgp.l3vpn-inet6.0: 6 destinations, 6 routes (4 active, 0 holddown, 2 hidden)

- 2.2.2.2:6:2000:99::2/128 (1 entry, 0 announced)

   Import Accepted

   Route Distinguisher: 2.2.2.2:6

   VPN Label: 16

   Nexthop: ::ffff:1.0.0.2

   AS path: 65002 I 

   Communities: target:577:100

 

- 2.2.2.2:6:2100::/64 (1 entry, 0 announced)

   Import Accepted

   Route Distinguisher: 2.2.2.2:6

   VPN Label: 16

   Nexthop: ::ffff:1.0.0.2

   AS path: 65002 I 

   Communities: target:577:100

 

Because the IPv6 to IPv4 converted NH (::ffff:1.0.0.2) cannot be resolved:

 

2.2.2.2:6:2000:99::2/128 (1 entry, 0 announced)

    -BGP  Preference: 170/-101

        Route Distinguisher: 2.2.2.2:6

        Next hop type: Unusable, Next hop index: 0

        Address: 0x559437b5b47c

        Next-hop reference count: 4

        Kernel Table Id: 0

        Source: 1.0.0.2

        State: <Hidden Ext Changed ProtectionPath ProtectionCand>

        Local AS: 65001 Peer AS: 65002

        Age: 3:18 

        Validation State: unverified 

        Task: BGP_65002.1.0.0.2

        AS path: 65002 I 

        Communities: target:577:100

        Import Accepted

        VPN Label: 16

        Localpref: 100

        Router ID: 2.2.2.2

        Secondary Tables: 100.inet6.0

        Thread: junos-main 

        Indirect next hops: 1

            Protocol next hop: ::ffff:1.0.0.2 ResolvState: PnhUnresolv

            Label operation: Push 16

            Label TTL action: prop-ttl

            Load balance label: Label 16: None; 

            Indirect next hop: (nil) - INH Session ID: 0

            Indirect next hop: INH non-key opaque: (nil) INH key opaque: (nil)


Solution

The issue here is that the protocol next-hop cannot be resolved. Router is set with a rib-group to import/share between inet6.0 and inet6.3:

 

set routing-options interface-routes rib-group inet ifrg-inet0toinet3

set routing-options interface-routes rib-group inet6 ifrg-inet60toinet63

set routing-options rib-groups ifrg-inet0toinet3 import-rib inet.0

set routing-options rib-groups ifrg-inet0toinet3 import-rib inet.3

set routing-options rib-groups ifrg-inet60toinet63 import-rib inet6.0

set routing-options rib-groups ifrg-inet60toinet63 import-rib inet6.3

 

But, resolution does not work. For the routes to be installed, BGP needs reachability to the protocol next-hop. That next-hop is the mapped IPv4/IPv6 value:

 

::ffff:1.0.0.2

 

If that address is configured on the interface used for the peering on each device:

 

set interfaces et-0/0/6 unit 0 family inet6 address ::ffff:1.0.0.1/126

 

The route is no longer hidden. It is received:

 

labroot@e12-44> show route receive-protocol bgp 1.0.0.2 detail table bgp.l3vpn-inet6.0      

 

bgp.l3vpn-inet6.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)

* 2.2.2.2:6:2000:99::2/128 (1 entry, 0 announced)

   Import Accepted

   Route Distinguisher: 2.2.2.2:6

   VPN Label: 16

   Nexthop: ::ffff:1.0.0.2

   AS path: 65002 I 

   Communities: target:577:100

 

* 2.2.2.2:6:2100::/64 (1 entry, 0 announced)

   Import Accepted

   Route Distinguisher: 2.2.2.2:6

   VPN Label: 16

   Nexthop: ::ffff:1.0.0.2

   AS path: 65002 I 

   Communities: target:577:100

 

And, installed in the VRF:

 

labroot@e12-44> show route protocol bgp table 100.inet6.0 

 

100.inet6.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)

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

 

2000:99::2/128   *[BGP/170] 04:51:57, localpref 100, from 1.0.0.2

           AS path: 65002 I, validation-state: unverified

          > to ::ffff:1.0.0.2 via et-0/0/6.0, Push 16

2100::/64     *[BGP/170] 04:51:57, localpref 100, from 1.0.0.2

           AS path: 65002 I, validation-state: unverified

          > to ::ffff:1.0.0.2 via et-0/0/6.0, Push 16

 

Modification History

2024-11-04 : Article Created