Linuxはip6tnlにオプションつけてくる。

Linuxはip6tnlにオプションつけてくる。

*Jan 9 17:14:00.470: IPv6-Fwd: Unknown option received: 4
が出てた。
なんか4-over-6がコケてる。

原因はタイトル。
ip tun encaplimit none にすると疎通。

before
Copied!
kmc@yume:~$ ip -6 tun show
a_nana: any/ipv6 remote 240b:250:8020:d00::2 local 2409:250:8900:a00::eb96 dev enp3s0 encaplimit 0 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)

after
Copied!
kmc@yume:~$ ip -6 tun show
a_nana: any/ipv6 remote 240b:250:8020:d00::2 local 2409:250:8900:a00::eb96 dev enp3s0 encaplimit none hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)

systemd-network
.netdev で EncapsulationLimit=none をつける。

くわしいことが https://emeth.jp/diary/?p=370 に書いてあった。
IPv6ヘッダ内のNext HeaderがDestination Options for IPv6 (60)となっており、Tunnel Encapsulation Limitの情報が含まれていることがわかる。
そしてその中のNext HeaderはIPIP (4)で、IPヘッダが続くことを示している。
ping送信のパケットはDestination Options for IPv6 (60)はなく、IPv6ヘッダ内のNext HeaderはIPIP (4)となっていた。
IPパケットのカプセル化は入れ子が可能であり、Tunnel Encapsulation Limitはその上限を表している(参考:RFC2473)。
上限を示すためにこのオプションがあるのだが、残念なことにRTX1200ではこれをmalformedとして扱ってしまうようだ。
大体おなじようなことがこっちでも置きてるっぽい。
結論は同じ EncapsulationLimit=none

#ip6tnl
Powered by Helpfeel