set interfaces tunnel tun10 local-ip 172.18.254.202 set interfaces tunnel tun10 remote-ip 172.18.254.201 set interfaces tunnel tun10 encapsulation gre-bridge set interfaces tunnel tun10 address 192.0.2.1/30 commit
$ ip -d link show tun10 11: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1476 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 1e:79:b5:00:6b:09 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 0 gretap remote 172.18.254.201 local 172.18.254.202 ttl inherit addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
Now change the tunnels remote IP address:
set interfaces tunnel tun10 remote-ip 172.18.254.203
$ ip -d link show tun10 11: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1476 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 1e:79:b5:00:6b:09 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 0 gretap remote 172.18.254.201 local 172.18.254.202 ttl inherit addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
The problem is b/c the GRETapIf class states:
# GreTap also called GRE Bridge class GRETapIf(_Tunnel): ... def change_options(self): pass
Thus the change is simply skipped. The reason is - the OS (Linux) Kernel does not support changing gretap tunnel interfaces parameters at all. A workaround will be to simply create and destroy the tunnel automatically.
Workaround: Remove and re-add tunnel by hand.