I have configured a tunnel interface whose tunnel source and destination are IPv4 addresses. The tunnel mode is the default, 'gre ip'. The tunnel interface has only an IPv6 address. The result should be IPv6 over GRE over IPv4.
This all works fine UNTIL I enable keepalives. Upon expiry of retries, the tunel interface on which keepalives is enabled goes down.
A 'debug tunnel keepalive' indicates that the interface believes it is transmitting keepalive packets. However, 'debug ip packet' as well as wireshark indicate that no such packets are being transmitted.
Now, if I go to the tunnel interface and configure an IPv4 address, the interface begins to transmit the keepalives.
The other end of the tunnel does not process and return the keepalives until I also configure its tunnel interface with an IPv4 address. At that point the tunnel is up on both ends and all is well.
I have looked around cisco.com and the support community and cannot find mention if this should or should not work.
My IOS revs are 12.4(24)T4 and 15.1(4)M.
A coworker running 12.4(10) claims that he is not having this issue and keepalives are being sent without a v4 address at the tunnel interface.
Any ideas or information?
Do you believe you could post the configuration of both your Tunnel interfaces? This seems to be an interesting issue. GRE keepalives are constructed using the tunnel source/tunnel destination IPv4 addresses and theoretically should not depend on the actual protocols enabled on the tunnel interface itself - a nice info about the GRE keepalives can be found in these two documents:
This reply comes quite late after your inquiry... but I hope you are still interested in sorting this out.
The config is as follows:
no ip address
ipv6 address 2101::2/64
tunnel source 10.24.106.4
tunnel destination 10.24.106.2
encapsulation dot1Q 1106
ip address 10.24.106.4 255.255.255.0
The peer router (10.24.106.2) is connected to the ethernet of this router (10.24.106.4) via a L2 switch fabric via a trunk that also carries other vlans. This router interface has other subinterfaces.). The peer router is configured with the exact compliment of the config shown here.
I have definitely confirmed your findings. I've tested 2811 running 12.4(24)T4 and 12.4(24)T5 Advanced IP Services, and they behaved exactly as you described it: as soon as the keepalive is configured on a Tunnel interface that does not have its internal IPv4 address configured, the keepalives are simply not sent.
I have also confirmed on 1841 running 12.4(25d) and 2691 running 12.4(15)T3 Advanced IP Services that these particular IOSes send the keepalives correctly, without requiring that an IPv4 address is configured on the tunnel.
I have tried searching in the bug database but nothing came out, and I am certain that there is no logical requirement why should there be an IPv4 address configured on the interface for the keepalives to work. Thus, I believe you have discovered a bug. Do you have a support contract with Cisco? If so I strongly suggest you raise a TAC issue - you can even do it directly from this thread. This glitch should definitely be reported to Cisco and fixed.
An obvious workaround is either to deactivate the keepalives, or configure some phony IPv4 addresses on your GRE tunnel interfaces.
Thank you. Please keep me informed if you learn anything interesting from TAC. This issue has raised my interest indeed.