So I have worked out that the PE is in fact forwarding the updates to the route reflector. The issue seems to be to do with what rd I am looking at. You see part of this scenario was to do a rewrite of the rt and rd at the change of AS. The rt rewrite is in fact working. Being translated from 2203:3000 to 46202:3000. The faulty assumption that I made was that the rd would also be translated. This is not happening.

So my problem is now not so much redistribution of routes, as this is working, but translation of the rd. I can't for the life of me work out how to do this on cisco.

Taken from a wireshark capture of the BGP updates:

Community Transitive Two-Octet AS Route Target: 46202:3000
Label Stack=16 (bottom) RD=2203:3000, IPv4=

Update on this first issue:

The commands to do this are missing from any IOS release other than on XE (and maybe XR, I don't have access to an XR device).

From one of our production BRAS's:

(config-route-map)#set extcommunity ?
  cost               Cost extended community
  rt                 Route Target extended community
  soo                Site-of-Origin extended community
  vpn-distinguisher  VPN Distinguisher

That last line doesn't exist on IOS ver 15, which is what I am running on my lab environment. So for the mean time that is as far as I can go with that part of the scenario.

End of update on that issue

So on top of this issue I have also found another one to do with MPLS PHP. From the PE going to the external AS it is popping off all labels and thus making it so it doesn't work at all. So the other AS receives a packet with no labels at all.

All packets from inside my AS are destined for the other AS next hop IP of

PE-4#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label   0             Gi0/0

As you can see it pops the label when it shouldn't as the other AS is expecting a label of 16:

LinkedISP#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label[V]   0             aggregate/CUSTOMER_3000

Also not sure about how to solve this. Turning off PHP for a next hop doesn't seem to be able to be done.

Thanks in advance for any thoughts on this.

Original Post + Asked for Show commands:

I am labbing up a scenario where we would peer with another service provider that is in a location that our service provider isn't. For example another country. My plan is to peer with that SP and exchange vpnv4 extended communities so that our customers can access their sites that are off that SP's network over a L3VPN. The basic premise is as follows:

Customer<-into a L3VPN->Our MPLS network<->Peering with other SP<->their MPLS network<-Out of L3VPN->Customer

I have configured it all up and I am successfully exchanging the communities over eBGP. The issue I have that I have been so far unable to solve is that for some reason the cisco routers are not re-advertising the externally learnt vpnv4 routes over the internal vpnv4 BGP sessions. Outputs:

PE-4#show ip bgp vpnv4 rd 46202:3000
   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 46202:3000 (default for vrf CUSTOMER_3000_Mapped)
*>              0             0 2203 ?
*>                  0         32768 ?
* i10.0.0.200/32             0    100      0 ?
*>i                    0    100      0 ?

You can see the route being received from the other service provider (AS2203) and is also inserted into the routing table:

PE-4#show ip route vrf CUSTOMER_3000_Mapped is subnetted, 3 subnets
B [20/0] via, 00:58:11
C is directly connected, Loopback3001
B [200/0] via, 00:58:11

It is also successfully receiving routes from the route reflector ( route).

The route reflector is not being given the routes from the other service provider.

RR1#show ip bgp vpnv4 rd 46202:3000
   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 46202:3000
*>i10.0.0.3/32             0    100      0 ?
*>i10.0.0.200/32             0    100      0 ?

I'm at a loss as to why the external vpnv4 routes are not redistributed internally. Below are the relevant configs. Thank you in advance for any help!

vrf definition CUSTOMER_3000_Mapped
 rd 46202:3000
 address-family ipv4
  route-target export 46202:3000
  route-target import 46202:3000
interface Loopback3001
 vrf forwarding CUSTOMER_3000_Mapped
 ip address
interface GigabitEthernet0/0
 description ### PE-4 <-> LinkedISP ###
 ip address
 duplex full
 speed 1000
 media-type gbic
 negotiation auto
 mpls bgp forwarding

router bgp 46202
 bgp log-neighbor-changes
 bgp graceful-restart restart-time 120
 bgp graceful-restart stalepath-time 360
 bgp graceful-restart
 no bgp default ipv4-unicast
 no bgp default route-target filter
 neighbor ROUTE-REFLECTORS peer-group
 neighbor ROUTE-REFLECTORS remote-as 46202
 neighbor remote-as 2203
 neighbor peer-group ROUTE-REFLECTORS
 neighbor peer-group ROUTE-REFLECTORS
 address-family ipv4
  neighbor ROUTE-REFLECTORS send-community extended
  neighbor activate
  neighbor activate
 address-family vpnv4
  neighbor ROUTE-REFLECTORS send-community extended
  neighbor activate
  neighbor send-community extended
  neighbor route-map community-rewrite-46202:3000 out
  neighbor activate
  neighbor activate
 address-family ipv6
  neighbor activate
  neighbor activate
 address-family vpnv6
  neighbor ROUTE-REFLECTORS send-community extended
  neighbor activate
  neighbor activate
 address-family ipv4 vrf CUSTOMER_3000_Mapped
  redistribute connected
ip extcommunity-list 2 permit rt 46202:3000
ip bgp-community new-format
route-map community-rewrite-46202:3000 permit 10
 match extcommunity 2
 set extcomm-list 2 delete
 set extcommunity rt 2203:3000

Route Reflectors are standard config, just simply set up with the PE's as route-reflector-clients.

The 'other provider' is set up basically as a mirror to the above config.


Updated with requested outputs:

PE-4#show bgp vpnv4 unicast all neighbors advertised-routes
--Output Omitted--
Route Distinguisher: 46202:3000 (default for vrf CUSTOMER_3000_Mapped)
*>                  0         32768 ?

PE-4#show bgp vpnv4 unicast rd 46202:3000
BGP routing table entry for 46202:3000:, version 37
Paths: (1 available, best #1, table CUSTOMER_3000_Mapped)
  Not advertised to any peer
  2203, imported path from 2203:3000: from (
      Origin incomplete, metric 0, localpref 100, valid, external, best
      Extended Community: RT:46202:3000
      mpls labels in/out nolabel/16

More Updated shows:

PE-4#show ip route vrf CUSTOMER_3000_Mapped

Routing Table: CUSTOMER_3000_Mapped
Routing entry for
  Known via "bgp 46202", distance 20, metric 0
  Tag 2203, type external
  Last update from 14:18:17 ago
  Routing Descriptor Blocks:
  * (default), from, 14:18:17 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 2203
      MPLS label: 16
      MPLS Flags: MPLS Required

PE-4#show ip cef vrf CUSTOMER_3000_Mapped
  nexthop GigabitEthernet0/0 label 16 is also advertised in the global routing table as a connected subnet over OSPF for MPLS:

PE-4#show ip ospf 1 interface
GigabitEthernet0/0 is up, line protocol is up
  Internet Address, Area 8, Attached via Network Statement
  Process ID 1, Router ID, Network Type BROADCAST, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Transmit Delay is 1 sec, State WAITING, Priority 1
  No designated router on this network
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    No Hellos (Passive interface)
    Wait time before Designated router selection 00:00:37
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 3/3, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 0, Adjacent neighbor count is 0
  Suppress hello for 0 neighbor(s)
  • Do you have vpn-ipv4 family enabled on Route Reflectors and other iBGP routers?
    – Rais
    Dec 17, 2014 at 12:34
  • Yes I do. It is all set up and working on the internal vpnv4.
    – Firebirdnz
    Dec 17, 2014 at 21:13
  • Can you check "show bgp vpnv4 unicast all neighbor <RR IP> advertised" to see if the border router is advertising the routes to the RR?
    – nicotine
    Dec 22, 2014 at 17:43
  • Also, the output of "show bgp vpnv4 unicast rd 46202:3000" on the border may provide more insight
    – nicotine
    Dec 22, 2014 at 17:45
  • I have added in the requested outputs. The second one shows that the route is not advertised to any peer, which is what I suspected. eBGP should always be readvertised into iBGP... well so I thought... Any help would be appreciated.
    – Firebirdnz
    Dec 23, 2014 at 0:48

2 Answers 2


Wasn't able to resolve my issue.

mpls labels in/out nolabel/16

Is "mpls bgp forwarding" configured on the interface facing your transit provider? Same on their interface facing you?

edit: Just reviewed your config, and you do have it -- would check with your peer to see if they have it configured as well

  • For reference, a sanitized, working output from a similar command on our inter-AS network: BGP routing table entry for 65534:126:, version 11090 BGP Bestpath: deterministic-med: med Paths: (1 available, best #1, no table) Advertised to update-groups: 4 Refresh Epoch 1 65535 65534 from ( Origin incomplete, metric 4294967295, localpref 100, valid, external, best Extended Community: RT:65534:126 mpls labels in/out 807/95 rx pathid: 0, tx pathid: 0x0
    – nicotine
    Dec 23, 2014 at 14:54
  • Hey there. It's in a lab environment at the moment. The other side does indeed have mpls bgp forwarding configured and is receiving routes. It just seems to be an issue with the PE forwarding the vpnv4 routes from eBGP to the Route Reflector.
    – Firebirdnz
    Dec 23, 2014 at 20:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.