Linuxはip6tnlにオプションつけてくる。
*Jan 9 17:14:00.470: IPv6-Fwd: Unknown option received: 4
が出てた。
なんか4-over-6がコケてる。
原因はタイトル。
ip tun
で encaplimit none
にすると疎通。before
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
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