When setting up loopback interfaces with IPv6 addresses with static routes between two directly connected routers through their interfaces. It does not work to specify it with the outgoing physical interface rather than the next hop (the IPv6 address of the adjacent interface).
For reference this is the IOSv version for both running in GNS3 with the following configs for IPv6 addresses and routing with ipv6 unicast-routing
enabled:
R1#sh ver
Cisco IOS Software, IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M4, RELEASE SOFTWARE (fc3)
[ ... cut output ... ]
R1 lo0: 2001:db8:254::1/128
R1 ge0/1: 2001:db8:254:14::5/126
R4 lo0: 2001:db8:254::4/128
R4 ge0/0: 2001:db8:254:14::6/126
R1#sh ipv6 int br
GigabitEthernet0/1 [up/up]
FE80::E81:BFF:FEE7:1
2001:DB8:254:14::5
Loopback0 [up/up]
FE80::E81:BFF:FEE7:0
2001:DB8:254::1
R1# ! (I cut irrelevant intfs from output)
R4#sh ipv6 int br
GigabitEthernet0/0 [up/up]
FE80::E7F:FAFF:FE78:0
2001:DB8:254:14::6
Loopback0 [up/up]
FE80::E7F:FAFF:FE78:0
2001:DB8:254::4
R4# ! (I cut irrelevant intfs from output)
This doesn't work:
R1#sh run | i ipv6 route
ipv6 route 2001:DB8:254::4/128 GigabitEthernet0/1 name R4
R4#sh run | i ipv6 route
ipv6 route 2001:DB8:254::1/128 GigabitEthernet0/0 name R1
R1#ping 2001:db8:254::4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:254::4, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
But this does!
R1#sh run | i ipv6 route
ipv6 route 2001:DB8:254::4/128 2001:DB8:254:14::6 name R4
R4#sh run | i ipv6 route
ipv6 route 2001:DB8:254::1/128 2001:DB8:254:14::5 name R1
R1#ping 2001:db8:254::4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:254::4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Why?
Changing the source for pinging doesn't change anything either (nor would I expect it, both routes via loopback and the physical interface have routes to and from).
Let's see IPv4:
R1#sh ip int br ! (Again, irrelevent interfaces removed)
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/1 10.0.0.5 YES NVRAM up up
Loopback0 1.1.1.1 YES manual up up
R1#sh run | i ip route
ip route 4.4.4.4 255.255.255.255 GigabitEthernet0/1 name R4
R4#sh ip int br ! (Again, irrelevent interfaces removed)
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 10.0.0.6 YES NVRAM up up
Loopback0 4.4.4.4 YES manual up up
R4#sh run | i ip route
ip route 1.1.1.1 255.255.255.255 GigabitEthernet0/0 name R1
R1#ping 4.4.4.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
Huh? Why will specifying the outgoing physical interface work for a static route with IPv4 and not for IPv6?