I am getting ready for a prototype IPv6 test and had a chance to setup a quick lab to test the configuration. On a core router, I have two VRF's (VRF-lite). An ADMIN and a PRODUCTION VRF, and no usable global VRF (all interfaces are either in ADMIN or PRODUCTION).
Some interfaces are dual-stacked, others are native. The IPv4 route bleeding works fine. I am using the BGP address-familys and route-target import/exports to exchange the routes.
For IPv6, I added address families to the vrf definitions and placed the appropriate import/export commands. Under BGP, I added the address-family for IPv6 for both VRF's, then added the appropriate /64 networks for each VRF's interfaces.
Debug on bgp vpvn6 and ipv6 routing shows the tables being checked and populated with the different routes. The show ipv6 route vrf ADMIN or vrf PRODUCTION shows the correct BGP routes for the imported VRF's. show ip bgp vpnv6 unicast all shows the correct entries for each VRF.
When I attempt a ping (example):
ping vrf ADMIN ipv6
Target: <ADMIN host>
Source Interface <PRODUCTION address>
specifying the source and destination, I get 0 responses. Debug on IPv6 packets show the FIB lookup succeeds and the correct src/dest packet is sent on the correct VLAN of the destination host. No response.
I did a capture in the IOS on the destination VLAN and did not see any ICMP packets arriving. I may have to source the capture off the rp/sp to see those packets perhaps?
Anyway - I am trying to do something that isn't supported? Everything seems to be in place, but it just doesn't work. I'd post the config, but the lab is in a closed system with no export capability..
I tried moving a native v6 VLAN interface (2000) to the global vrf and put in static routes, where vlan 3000 is in the ADMIN vrf:
ipv6 route 2600::/64 vlan 3000
ipv6 route vrf ADMIN 2700::/64 vlan 2000
which the IOS accepts, but do not show up in the routing table. The <next-hop-vrf> option isn't available like in the router code. So VRF to global static routes don't work either... I think I may be trying to do something that the IOS can't satisfy.