(Sorry for typing an answer instead of what should be a comment, the comment would be too long to fit...)
I had exactly the same question as you a little while ago, so I read the source code of iproute2
. As poige says, ip link
uses a different interface than ip tunnel
. ip tunnel
uses the ioctl SIOCGETTUNNEL
, SIOCADDTUNNEL
, etc, while ip link
uses the rtnl_link
interface.
This changes a bit the mode of the interface:
$ sudo ip tunnel add ipiptun mode ipip local 10.3.3.3 remote 10.4.4.4 ttl 64 dev eno1
$ sudo ip link add ipiptun2 type ipip local 10.6.6.6 remote 10.7.7.7 ttl 64 dev eno1 #curiously the mode is any/ip here
ipiptun: ip/ip remote 10.4.4.4 local 10.3.3.3 dev eno1 ttl 64
ipiptun2: any/ip remote 10.7.7.7 local 10.6.6.6 dev eno1 ttl 64
Note that now there is an even newer way to create tunnel, which is to use lightweight route tunnels. Cf my question here, trying to understand them:
Linux lightweight tunnels