This seems to do the trick using the following Netplan config as a testcase.
All 3 interfaces (tun[0-2]) are correctly created with their local & remote properties set:
root@jj-abi:~/systemd# ip link show dev tun0
19: tun0@NONE: <NOARP,UP,LOWER_UP> mtu 1448 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/gre6 fe80::1 brd 2001:dead:beef::2 permaddr e262:75ae:2aa0::
root@jj-abi:~/systemd# ip link show dev tun1
20: tun1@NONE: <NOARP,UP,LOWER_UP> mtu 1332 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/tunnel6 fe80::2 brd 2001:dead:beef::3 permaddr c2aa:7446:cc29::
root@jj-abi:~/systemd# ip link show dev tun2
21: tun2@NONE: <NOARP,UP,LOWER_UP> mtu 1444 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/gre6 fe80::3 brd 2001:dead:beef::4 permaddr 3ef2:274c:a921::
This seems to do the trick using the following Netplan config as a testcase.
All 3 interfaces (tun[0-2]) are correctly created with their local & remote properties set:
root@jj- abi:~/systemd# ip link show dev tun0 abi:~/systemd# ip link show dev tun1 abi:~/systemd# ip link show dev tun2
19: tun0@NONE: <NOARP,UP,LOWER_UP> mtu 1448 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/gre6 fe80::1 brd 2001:dead:beef::2 permaddr e262:75ae:2aa0::
root@jj-
20: tun1@NONE: <NOARP,UP,LOWER_UP> mtu 1332 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/tunnel6 fe80::2 brd 2001:dead:beef::3 permaddr c2aa:7446:cc29::
root@jj-
21: tun2@NONE: <NOARP,UP,LOWER_UP> mtu 1444 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/gre6 fe80::3 brd 2001:dead:beef::4 permaddr 3ef2:274c:a921::
Netplan test config:
```
network:
version: 2
tunnels:
tun0:
mode: ip6gre
local: fe80::1
remote: 2001:dead:beef::2
tun1:
mode: vti6
local: fe80::2
remote: 2001:dead:beef::3
tun2:
mode: ip6gre
key: 1234
local: fe80::3
remote: 2001:dead:beef::4
```