Basic question about GRE tunnels

I was thinking about traffic accounting on my MikroTik router and came to GRE tunnels.

My question is around the “R” (running) in the web gui interface next to the GRE tunnel.

Based on my rudimentary testing, MikroTik doesn’t really know if that R is accurate. I think.

I set up a GRE tunnel with no traffic on it, just the basic tunnel setup between 2 MT routers, both sides say that the tunnel is running.

I did a sniffer trace for a while and detected no GRE related packets at all, even when I disabled and enabled the interface. I did not sniff the initial setup.

I read RFC 1701 and 1702, and there is no recommendation about “tunnel maintenance”. I also read the NetBSD man page (because Linux is a mess) and skimmed through the code (if_gre.c).

So I think that GRE tunnels themselves create no traffic. Maybe a few packets at the time they are created, but otherwise possibly none at all.

You have to actually send traffic over the interface for IP protocol 47 packets to show up.

Does this sound right?

You have to actually send traffic over the interface for IP protocol 47 packets to show up.

Does this sound right?

Does for me… ROS can assess if tunnel is running or not, and while doing so it won’t use prot 47 but possibly IP.

For traffic to be directed towards the tunnel itself, it should be routed first, then you’ll see prot 47 working.

There is a “keepalive” function on GRE tunnels that you can enable (assuming the other side supports it, most routers do) and
it will make the R state meaningful. When there is no replies on the keepalives, the tunnel state goes down.
Without keepalive, the interface is always up as you noted, without any traffic.