MPLS Inter AS Option C IPv4 VPNs.
The objective is to set up L3VPN that spans different autonomous systems to serve customers with sites on different service provider domains. In this case with reference to below topology, customers of AS64512 require to be connected to their other sites which are in AS64515.
Design
The design implemented in this case is known as Inter AS Option C in which the route reflectors from each AS will peer directly and exchange vpnv4 routes. For forwarding the ASBRs will be exchanging MPLS labels via BGP as more than often two different AS will not be running LDP or RSVP but BGP. ASBR64515 will redistribute the IP of RR64515 from OSPF to eBGP and redistribute to OSPF the IP of RR64512 received via eBGP from ASBR64512 as well as generate labels. ASBR64512 will redistribute the IP of RR64512 from OSPF to eBGP and redistribute to OSPF the IP of RR64515 received via eBGP from ASBR64515. The RRs will exchange routing information with each other making VRF routes from AS64512 available in AS64515 and vice versa. In this design case AS64512 is an all Cisco gear networks while AS64515 is an all Juniper network both ASs use OSPF as IGP and LDP for label distribution both protocols are preconfigured.
Configuration
ASBR64512
interface FastEthernet0/0.100 encapsulation dot1Q 100 ip address 10.100.100.2 255.255.255.252 mpls bgp forwarding router ospf 1 router-id 10.11.11.33 redistribute bgp 64512 subnets route-map MAP_IGP_OUT ! router bgp 64512 neighbor iBGP peer-group neighbor iBGP remote-as 64512 neighbor iBGP update-source Loopback0 neighbor eBGP peer-group neighbor eBGP remote-as 64515 neighbor 10.11.11.29 peer-group iBGP neighbor 10.100.100.1 peer-group eBGP ! address-family ipv4 redistribute ospf 1 route-map MAP_eBGP_OUT neighbor iBGP next-hop-self neighbor iBGP soft-reconfiguration inbound neighbor iBGP route-map MAP_iBGP_OUT out neighbor eBGP soft-reconfiguration inbound neighbor eBGP send-label neighbor 10.11.11.29 activate neighbor 10.100.100.1 activate exit-address-family ! address-family vpnv4 neighbor iBGP send-community both neighbor iBGP next-hop-self neighbor 10.11.11.29 activate exit-address-family ! ip prefix-list AS64515-RR seq 5 permit 10.33.33.29/32 ! ip prefix-list RR_IP seq 5 permit 10.11.11.29/32 ! route-map MAP_eBGP_OUT permit 10 description ADVERTISE RR IP match ip address prefix-list RR_IP ! route-map MAP_iBGP_OUT deny 10 description DO NOT ADVERTISE RR IP FROM AS64515 match ip address prefix-list AS64515-RR route-map MAP_iBGP_OUT permit 20 description PERMIT OTHERS ! route-map MAP_IGP_OUT permit 10 description ADVERTISE AS64515 RR IN IGP match ip address prefix-list AS64515-RR
RR64512
router bgp 64512 neighbor iBGP peer-group neighbor iBGP remote-as 64512 neighbor iBGP update-source Loopback0 neighbor eBGP-MPLS peer-group neighbor eBGP-MPLS remote-as 64515 neighbor eBGP-MPLS ebgp-multihop 255 neighbor eBGP-MPLS update-source Loopback0 neighbor 10.11.11.33 peer-group iBGP neighbor 10.11.11.36 peer-group iBGP neighbor 10.33.33.29 peer-group eBGP-MPLS ! address-family ipv4 neighbor iBGP route-reflector-client neighbor iBGP soft-reconfiguration inbound neighbor 10.11.11.33 activate neighbor 10.11.11.36 activate no neighbor 10.33.33.29 activate exit-address-family ! address-family vpnv4 neighbor iBGP send-community both neighbor iBGP route-reflector-client neighbor eBGP-MPLS send-community both neighbor 10.11.11.33 activate neighbor 10.11.11.36 activate neighbor 10.33.33.29 activate exit-address-family
ASBR64515
protocols { mpls { interface em0.5; interface em3.100; } bgp { local-as 64515; group iBGP { type internal; local-address 10.33.33.33; family inet { unicast; } family inet-vpn { unicast; } export POL_iBGP_EXPORT; neighbor 10.33.33.29; } group eBGP { type external; family inet { labeled-unicast; } export POL_eBGP_EXPORT; peer-as 64512; local-as 64515; neighbor 10.100.100.2; } } ospf { export POL_IGP_EXPORT; area 0.0.0.0 { interface lo0.300 { passive; } interface em0.5; } } ldp { egress-policy POL_GENERATE_LABELS; interface em0.5; interface lo0.300; } } policy-options { policy-statement POL_GENERATE_LABELS { term GENERATE_LABEL_FOR_MY_LOOPBACK { from { protocol direct; route-filter 10.33.33.33/32 exact; } then accept; } term GENERATE_LABEL_FOR_AS64512_RR { from { protocol bgp; route-filter 10.11.11.29/32 exact; } then accept; } } policy-statement POL_IGP_EXPORT { term ADVERTISE_RR_IP_FROM_AS64512 { from { protocol bgp; route-filter 10.11.11.29/32 exact; } then accept; } } policy-statement POL_eBGP_EXPORT { term ADVERTISE_RR_LOOPBACK { from { protocol ospf; route-filter 10.33.33.29/32 exact; } then accept; } } policy-statement POL_iBGP_EXPORT { term NEXT_HOP { then { next-hop self; } } term DENY_RR_IP_FROM_AS64512 { from { route-filter 10.11.11.29/32 exact; } then reject; } } } routing-options { router-id 10.33.33.33; autonomous-system 64515; }
RR64515
protocols { mpls { interface em0.5; interface em1.10; } bgp { group iBGP { type internal; local-address 10.33.33.29; family inet { unicast; } family inet-vpn { unicast; } cluster 10.33.33.29; neighbor 10.33.33.33; neighbor 10.33.33.36; } group eBGP-MPLS { multihop { ttl 255; } local-address 10.33.33.29; family inet-vpn { unicast; } peer-as 64512; neighbor 10.11.11.29; } } ospf { area 0.0.0.0 { interface em0.5; interface lo0.300 { passive; } interface em1.10; } } ldp { interface em0.5; interface em1.10; } } routing-options { router-id 10.33.33.29; autonomous-system 64515; }
The route reflectors and other PEs are configured with standard MPLS/IP support.
Verification
ASBR64515
show mpls interface logical-system Interface State Administrative groups (x: extended) em0.5 Upem3.100 Up show bgp neighbor 10.100.100.2 | match NLRI NLRI for restart configured on peer: inet-labeled-unicast NLRI advertised by peer: inet-unicast inet-labeled-unicast NLRI for this session: inet-labeled-unicast show route 10.11.11.29 inet.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.11.11.29/32 *[BGP/170] 00:58:12, MED 2, localpref 100 AS path: 64512 ? > to 10.100.100.2 via em3.100, Push 21
ASBR64512
sh mpls interfaces Interface IP Tunnel BGP Static Operational FastEthernet0/1 Yes (ldp) No No No Yes FastEthernet0/0.100 No No Yes No Yes sh bgp neighbor 10.100.100.1 | i ^BGP|v4 BGP neighbor is 10.100.100.1, remote AS 64515, external link Address family IPv4 Unicast: advertised ipv4 MPLS Label capability: advertised and received sh ip route 10.33.33.29 Routing entry for 10.33.33.29/32 Known via "bgp 64512", distance 20, metric 1 Tag 64515, type external Redistributing via ospf 1 Advertised by ospf 1 subnets route-map MAP_IGP_OUT Last update from 10.100.100.1 01:03:54 ago Routing Descriptor Blocks: * 10.100.100.1, from 10.100.100.1, 01:03:54 ago Route metric is 1, traffic share count is 1 AS Hops 1 Route tag 64515 MPLS label: 300656
The ASBRs on both ASs are learning the IP address of the RR on the other AS via BGP and they are redistributing to their IGP
RR64515
show route 10.11.11.29 # route to RR in AS64512 inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.11.11.29/32 *[OSPF/150] 01:27:59, metric 2, tag 0 > to 172.18.1.33 via em0.5 inet.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.11.11.29/32 *[LDP/9] 01:10:53, metric 1 > to 172.18.1.33 via em0.5, Push 300672 show bgp neighbor 10.11.11.29 | match "^Peer|NLRI" Peer: 10.11.11.29+30637 AS 64512 Local: 10.33.33.29+179 AS 64515 NLRI for restart configured on peer: inet-vpn-unicast NLRI advertised by peer: inet-vpn-unicast NLRI for this session: inet-vpn-unicast show bgp summary | find ^peer Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.11.11.29 64512 103 94 0 3 41:35 Establ bgp.l3vpn.0: 1/1/1/0 show route table bgp.l3vpn.0 receive-protocol bgp 10.11.11.29 bgp.l3vpn.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 100:1:10.10.0.36/32 * 10.11.11.29 64512 ? show route table bgp.l3vpn.0 advertising-protocol bgp 10.11.11.29 bgp.l3vpn.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 100:1:10.30.0.36/32 * Self I
RR64512
sh ip route 10.33.33.29 # route to RR in AS64515 Routing entry for 10.33.33.29/32 Known via "ospf 1", distance 110, metric 1 Tag 64515, type extern 2, forward metric 1 Last update from 172.16.1.33 on FastEthernet0/1, 01:17:55 ago Routing Descriptor Blocks: * 172.16.1.33, from 10.11.11.33, 01:17:55 ago, via FastEthernet0/1 Route metric is 1, traffic share count is 1 Route tag 64515 sh mpls forwarding-table 10.33.33.29 32 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 16 16 10.33.33.29/32 1750 Fa0/1 172.16.1.33 sh bgp vpnv4 unicast all neighbor 10.33.33.29 | include ^BGP|v4 BGP neighbor is 10.33.33.29, remote AS 64515, external link Address family VPNv4 Unicast: advertised and received sh bgp vpnv4 unicast all peer-group eBGP-MPLS summary | begin Neighbor Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.33.33.29 4 64515 89 98 11 0 0 00:42:05 sh bgp vpnv4 unicast all neighbor 10.33.33.29 advertised-routes | begin Network Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 100:1 *>i 10.10.0.36/32 10.11.11.36 0 100 0 ? Total number of prefixes 1
The route reflectors on both ASs are learning about each other via IGP (assigning MPLS labels as well) and are exchanging VRF routes via the eBGP session. The routes will then be advertised by the route reflectors to the rest of the PEs in each AS
Inter AS MPLS VPN Option C for IPv6 (6PE).
Objective
The objective is to tunnel IPv6 (6PE) traffic that spans different autonomous systems. This implementation offers the ability to tunnel IPv6 across segments that do not support IPv6. In this case with reference to below topology, the NNI between AS64512 and AS64515 does not support IPv6 yet both systems support IPv6 in their core network, therefore we need to tunnel IPv6 across the NNI which does not support IPv6 so as to bridge the IPv6 core networks from AS64512 and AS64515
Design
This design follows the principles of inter AS MPLS Option C in which ASBR64515 will redistribute the IP of RR64515 from OSPF to eBGP and redistribute to OSPF the IP of RR64512 received via eBGP from ASBR64512 as well as generate labels. ASBR64512 will redistribute the IP of RR64512 from OSPF to eBGP and redistribute to OSPF the IP of RR64515 received via eBGP from ASBR64515. The RRs will exchange routing information with each other making IPv6 routes from AS64512 available in AS64515 and vice versa.
Configuration
PE64512
interface Loopback0 ip address 11.11.11.36 255.255.255.255 ip ospf 1 area 0 ! interface FastEthernet0/0 description CONNECTION TO RR ip address 155.12.0.36 255.255.255.0 ip ospf 1 area 0 mpls ip ! interface FastEthernet0/1 description SAMPLE CUSTOMER ipv6 address 2001:ABCD:100::36/128 ! router ospf 1 ! router bgp 100 neighbor iBGP peer-group neighbor iBGP remote-as 100 neighbor iBGP update-source Loopback0 neighbor 10.11.11.29 peer-group iBGP ! address-family ipv4 neighbor iBGP next-hop-self neighbor 10.11.11.29 activate exit-address-family ! address-family ipv6 redistribute connected redistribute static neighbor iBGP send-community both neighbor iBGP next-hop-self neighbor iBGP send-label neighbor 10.11.11.29 activate exit-address-family ! ip bgp-community new-format ! ipv6 route 2002::/64 Null0
PE64515
interfaces { em0 { unit 200 { description "SAMPLE CUSTOMER"; vlan-id 200; family inet6 { address 2001:abcd:300::36/128; } } } em1 { unit 10 { description "CONNECTION TO RR"; vlan-id 10; family inet { address 172.17.0.36/24; } family inet6; family mpls; } } lo0 { unit 300 { family inet { address 10.33.33.36/32; } } } } protocols { mpls { ipv6-tunneling; interface em1.10; } bgp { group iBGP { type internal; local-address 10.33.33.36; family inet { unicast; } family inet6 { labeled-unicast { explicit-null; } } export POL_iBGP_EXPORT; local-as 64515; neighbor 10.33.33.29; } } ospf { area 0.0.0.0 { interface lo0.300 { passive; } interface em1.10; } } ldp { interface em1.10; interface lo0.300; } } policy-options { policy-statement POL_iBGP_EXPORT { term NEXT_HOP { then { next-hop self; } } term IPV6_TUNNELLING { from family inet6; then accept; } } } routing-options { rib inet6.0 { static { route 2003::/64 discard; } } router-id 10.33.33.36; autonomous-system 64515; }
RR64512
interface Loopback0 ip address 10.11.11.29 255.255.255.255 ip ospf 1 area 0 ! interface FastEthernet0/0 description CONNECTION TO PE1 ip address 172.16.0.29 255.255.255.0 ip ospf 1 area 0 mpls ip ! interface FastEthernet0/1 description CONNECTION TO ASBR1 ip address 172.16.1.29 255.255.255.0 ip ospf 1 area 0 mpls ip ! router ospf 1 ! router bgp 64512 neighbor iBGP peer-group neighbor iBGP remote-as 100 neighbor iBGP update-source Loopback0 neighbor eBGP-6PE peer-group neighbor eBGP-6PE remote-as 64515 neighbor eBGP-6PE ebgp-multihop 255 neighbor eBGP-6PE update-source Loopback0 neighbor 10.11.11.33 peer-group iBGP neighbor 10.11.11.36 peer-group iBGP neighbor 10.33.33.29 peer-group eBGP-6PE ! address-family ipv4 neighbor iBGP soft-reconfiguration inbound neighbor 10.11.11.33 activate neighbor 10.11.11.36 activate no neighbor 10.33.33.29 activate exit-address-family ! address-family ipv6 neighbor iBGP send-community both neighbor iBGP route-reflector-client neighbor iBGP soft-reconfiguration inbound neighbor iBGP send-label neighbor eBGP-6PE send-label neighbor 10.11.11.33 activate neighbor 10.11.11.36 activate neighbor 10.33.33.29 activate exit-address-family
RR64515
interfaces { em0 { unit 5 { description "CONNECTION TO ASBR"; vlan-id 5; family inet { address 172.17.1.29/24; } family inet6; family mpls; } } em1 { unit 10 { description "CONNECTION TO PE"; vlan-id 10; family inet { address 172.17.0.29/24; } family inet6; family mpls; } } lo0 { unit 300 { family inet { address 10.33.33.29/32; } } } } protocols { mpls { ipv6-tunneling; interface em0.5; interface em1.10; } bgp { group iBGP { type internal; local-address 10.33.33.29; family inet { unicast; } family inet6 { labeled-unicast { explicit-null; } } cluster 10.33.33.29; neighbor 10.33.33.36; neighbor 10.33.33.33; } group eBGP-6PE { type external; multihop { ttl 255; } local-address 10.33.33.29; family inet6 { labeled-unicast { explicit-null; } } peer-as 64512; neighbor 10.11.11.29; } } ospf { area 0.0.0.0 { interface em0.5; interface lo0.300 { passive; } interface em1.10; } } ldp { interface em0.5; interface em1.10; } } routing-options { router-id 10.33.33.29; autonomous-system 64515; }
ASBR64512
interface Loopback0 ip address 10.11.11.33 255.255.255.255 ip ospf 1 area 0 ! interface Loopback100 description SAMPLE CUSTOMER ipv6 address 2001:ABCD:100::33/128 ! interface FastEthernet0/0 description INTER-AS LINK no ip address ! interface FastEthernet0/0.100 encapsulation dot1Q 100 ip address 10.100.100.1 255.255.255.252 mpls bgp forwarding ! interface FastEthernet0/1 description CONNECTION TO RR ip address 172.16.1.33 255.255.255.0 ip ospf 1 area 0 mpls ip ! auto ! router ospf 1 redistribute bgp 100 subnets route-map MAP_IGP_OUT ! router bgp 64512 neighbor iBGP peer-group neighbor iBGP remote-as 100 neighbor iBGP update-source Loopback0 neighbor eBGP peer-group neighbor eBGP remote-as 300 neighbor 10.11.11.29 peer-group iBGP neighbor 10.100.100.2 peer-group eBGP ! address-family ipv4 network 10.11.11.29 mask 255.255.255.255 neighbor iBGP next-hop-self neighbor iBGP route-map MAP_iBGP_OUT out neighbor eBGP send-label neighbor 10.11.11.29 activate neighbor 10.100.100.2 activate exit-address-family ! address-family ipv6 neighbor iBGP send-community both neighbor iBGP next-hop-self neighbor iBGP send-label neighbor 10.11.11.29 activate exit-address-family ! ip prefix-list AS_64515_RR seq 5 permit 10.33.33.29/32 ! route-map MAP_iBGP_OUT deny 10 description DENY AS64515 RR IN iBGP match ip address prefix-list AS_64515_RR route-map MAP_iBGP_OUT permit 20 description PERMIT OTHERS ! route-map MAP_IGP_OUT permit 10 description ALLOW AS64515 RR IN IGP match ip address prefix-list AS_64515_RR
ASBR64515
interfaces { em0 { unit 5 { description "CONNECTION TO RR"; vlan-id 5; family inet { address 172.17.1.33/24; } family inet6; family mpls; } } em1 { unit 100 { description "NNI TO AS100"; vlan-id 100; family inet { address 10.100.100.2/30; } family inet6; family mpls; } } lo0 { unit 300 { family inet { address 10.33.33.33/32; } } } } protocols { mpls { ipv6-tunneling; interface em0.5; } bgp { group iBGP { type internal; local-address10.33.33.33; family inet { unicast; } family inet6 { labeled-unicast { explicit-null; } } export POL_iBGP_EXPORT; local-as 64515; neighbor 10.33.33.29; } group eBGP-6PE { type external; family inet { labeled-unicast; } export POL_eBGP_EXPORT; peer-as 64512; local-as 64515; neighbor 10.100.100.1; } } ospf { export POL_IGP_EXPORT; area 0.0.0.0 { interface lo0.300 { passive; } interface em0.5; } } ldp { egress-policy LABELS; interface em0.5; interface lo0.300; } } policy-options { policy-statement LABELS { from { protocol [ bgp direct ]; route-filter 0.0.0.0/0 prefix-length-range /32-/32; } then accept; } policy-statement POL_IGP_EXPORT { term AS64512_RR_IP { from { protocol bgp; route-filter 10.11.11.29/32 exact; } then accept; } } policy-statement POL_eBGP_EXPORT { term AS64515_RR { from { protocol ospf; route-filter 10.33.33.29/32 exact; } then accept; } } policy-statement POL_iBGP_EXPORT { term NEXT_HOP { then { next-hop self; } } term AS64512_RR_IP { from { route-filter 10.11.11.29/32 exact; } then reject; } } } routing-options { router-id 10.33.33.33; autonomous-system 64515; }
Verification
ASBR64515
show bgp summary | find ^peer Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.33.33.29 64515 172 163 0 0 1:11:45 Establ inet.0: 0/0/0/0 inet6.0: 4/4/4/0 10.100.100.1 64512 165 173 0 1 3:27 Establ inet.0: 1/1/1/0 show route advertising-protocol bgp 10.100.100.1 inet.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.33.33.29/32 Self 1 I
ASBR64512
sh bgp summary | b N Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.11.11.29 4 64512 81 94 5 0 0 01:13:03 0 10.100.100.2 4 64515 15 16 5 0 0 00:05:15 1 sh bgp neighbor 10.100.100.2 advertised-route | b Net Network Next Hop Metric LocPrf Weight Path *> 10.11.11.29/32 172.16.1.29 2 32768 i Total number of prefixes 1
RR64512
sh bgp * all summary For address family: IPv4 Unicast Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.11.11.33 4 64512 102 88 6 0 0 01:12:06 1 10.11.11.36 4 64512 92 89 6 0 0 01:11:08 0 For address family: IPv6 Unicast Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.11.11.33 4 64512 102 88 15 0 0 01:12:07 0 10.11.11.36 4 64512 92 89 15 0 0 01:11:08 2 10.33.33.29 4 64515 64 66 15 0 0 00:27:32 2 sh bgp ipv6 uni | b Net Network Next Hop Metric LocPrf Weight Path *>i 2001:ABCD:100::36/128 ::FFFF:10.11.11.36 0 100 0 ? *> 2001:ABCD:300::36/128 ::FFFF:10.33.33.29 0 64515 i *>i 2002::/64 ::FFFF:10.11.11.36 0 100 0 ? *> 2003::/64 ::FFFF:10.33.33.29 0 64515 i sh mpls forwarding-table 10.33.33.29 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 17 17 10.33.33.29/32 976 Fa0/1 172.16.1.33
RR64515
show bgp summary | find ^peer Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.11.11.29 64512 81 81 0 1 34:45 Establ inet6.0: 2/2/2/0 10.33.33.33 64512 198 206 0 0 1:27:51 Establ inet.0: 0/0/0/0 inet6.0: 0/0/0/0 10.33.33.36 64512 200 197 0 0 1:25:56 Establ inet.0: 0/0/0/0 inet6.0: 2/2/2/0 show route protocol bgp table inet6.0 inet6.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden) 2001:abcd:100::36/128 *[BGP/170] 00:37:06, localpref 100, from 10.11.11.29 AS path: 64512 ? > to 172.17.1.33 via em0.5, Push 19, Push 299904(top) 2001:abcd:300::36/128 *[BGP/170] 00:56:08, localpref 100, from 10.33.33.36 AS path: I > to 172.17.0.36 via em1.10, Push 2 2002::/64 *[BGP/170] 00:37:06, localpref 100, from 10.11.11.29 AS path: 64512 ? > to 172.17.1.33 via em0.5, Push 20, Push 299904(top) 2003::/64 *[BGP/170] 00:56:09, localpref 100, from 10.33.33.36 AS path: I > to 172.17.0.36 via em1.10, Push 2 show ldp path 10.11.11.29 Output Session (label) Input Session (label) 10.33.33.36:0(299824) 10.33.33.33:0(299904) 10.33.33.33:0(299824) Attached route: 10.11.11.29/32, Ingress route
Label analysis
PE64512 announces 2001:ABCD: 100::36/128 to RR64512 which then advertises the prefix to RR64515 which then advertises the prefix to PE64515
PE64512#sh run int lo100 interface Loopback100 ipv6 address 2001:ABCD:100::36/128 end PE64512#sh ipv6 route 2001:ABCD:100::36/128 Routing entry for 2001:ABCD:100::36/128 Known via "connected", distance 0, metric 0, type receive, connected, bgp 64512 Route count is 1/1, share count 0 Routing paths: receive via Loopback100 Last updated 01:49:12 ago PE64512#sh bgp ipv6 unicast 2001:ABCD:100::36/128 BGP routing table entry for 2001:ABCD:100::36/128, version 2 Paths: (1 available, best #1, table default) Advertised to update-groups: 1 Refresh Epoch 1 Local :: from 0.0.0.0 (10.11.11.36) Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best mpls labels in/out 20/nolabel rx pathid: 0, tx pathid: 0x0 PE64512#show mpls forwarding-table labels 20 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 20 Pop Label 2001:ABCD:100::36/128 \ 2876 aggregate
RR64512# sh bgp ipv6 uni 2001:ABCD:100::36/128 BGP routing table entry for 2001:ABCD:100::36/128, version 3 Paths: (1 available, best #1, table default) Advertised to update-groups: 1 5 Refresh Epoch 1 Local, (Received from a RR-client), (received & used) ::FFFF:10.11.11.36 (metric 2) from 10.11.11.36 (10.11.11.36) Origin incomplete, metric 0, localpref 100, valid, internal, best mpls labels in/out 19/20 rx pathid: 0, tx pathid: 0x0 RR64512#show mpls forwarding-table labels 19 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 19 20 2001:ABCD:100::36/128 \ 3398 Fa0/0 172.16.0.36 RR64512#show ip route 10.11.11.36 Routing entry for 10.11.11.36/32 Known via "ospf 1", distance 110, metric 2, type intra area Last update from 172.16.0.36 on FastEthernet0/0, 01:43:26 ago Routing Descriptor Blocks: * 172.16.0.36, from 10.11.11.36, 01:43:26 ago, via FastEthernet0/0 Route metric is 2, traffic share count is 1
RR64515# run show route table inet6.0 2001:ABCD:100::36/128 extensive inet6.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) 2001:abcd:100::36/128 (1 entry, 1 announced) TSI: KRT in-kernel 2001:abcd:100::36/128 -> {indirect(131072)} Page 0 idx 0 Type 1 val 9364cb0 Flags: Nexthop Change Nexthop: Self Localpref: 100 AS path: [64512] 64515 ? Communities: Path 2001:abcd:100::36 from 11.11.11.29 Vector len 4. Val: 0 *BGP Preference: 170/-101 Next hop type: Indirect Address: 0x9334dd8 Next-hop reference count: 3 Source: 10.11.11.29 Next hop type: Router, Next hop index: 696 Next hop: 172.17.1.33 via em0.5, selected Label operation: Push 19, Push 299904(top) Label TTL action: prop-ttl, prop-ttl(top) Protocol next hop: ::ffff:10.11.11.29 Push 19 Indirect next hop: 94b01f8 131072 State:Local AS: 64512 Peer AS: 64512 Age: 55:57 Metric2: 1 Task: BGP_100.10.11.11.29+35003 Announcement bits (3): 0-KRT 1-BGP_RT_Background 2-Resolve tree 3 AS path: 100 ? Accepted Route Label: 19 Localpref: 100 Router ID: 10.11.11.29 Indirect next hops: 1 Protocol next hop: ::ffff:10.11.11.29 Metric: 1 Push 19 Indirect next hop: 94b01f8 131072 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 172.17.1.33 via em0.5 ::ffff:10.11.11.29/128 Originating RIB: inet6.3 Metric: 1 Node path count: 1 Forwarding nexthops: 1 Nexthop: 172.17.1.33 via em0.5 RR64515# run show route ::ffff:10.11.11.29 inet6.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) ::ffff:10.11.11.29/128 *[LDP/9] 01:03:02, metric 1 > to 172.17.1.33 via em0.5, Push 299904 RR64515# run show ldp path 10.11.11.29 Output Session (label) Input Session (label) 10.33.33.36:0(299824) 10.33.33.33:0(299904) 10.33.33.33:0(299824) Attached route: 10.11.11.29/32, Ingress route
PE64515# run show route table inet6.0 2001:ABCD:100::36/128 extensive inet6.0: 8 destinations, 10 routes (8 active, 0 holddown, 0 hidden) 2001:abcd:100::36/128 (1 entry, 1 announced) TSI: KRT in-kernel 2001:abcd:100::36/128 -> {indirect(131070)} *BGP Preference: 170/-101 Next hop type: Indirect Address: 0x9334b08 Next-hop reference count: 9 Source: 10.33.33.29 Next hop type: Router, Next hop index: 708 Next hop: 172.17.0.29 via em1.10, selected Label operation: Push 2 Label TTL action: prop-ttl Protocol next hop: ::ffff:10.33.33.29 Push 2 Indirect next hop: 948c000 131070 State:Local AS: 64515 Peer AS: 64515 Age: 44:39 Metric2: 1 Task: BGP_300.10.33.33.29+179 Announcement bits (2): 0-KRT 2-Resolve tree 3 AS path: 64515 ? Accepted Route Label: 2 Localpref: 100 Router ID: 10.33.33.29 Indirect next hops: 1 Protocol next hop: ::ffff:10.33.33.29 Metric: 1 Push 2 Indirect next hop: 948c000 131070 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 172.17.0.29 via em1.10 ::ffff:10.33.33.29/128 Originating RIB: inet6.3 Metric: 1 Node path count: 1 Forwarding nexthops: 1 Nexthop: 172.17.0.29 via em1.10 # run show route ::ffff:10.33.33.29/128 inet6.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) ::ffff:10.33.33.29/128 *[LDP/9] 01:46:54, metric 1 > to 172.17.0.29 via em1.10
PE64515 Pushes label 2 because of the bgp protocol configuration
family inet6 { labeled-unicast { explicit-null; }