WireGuardで家に接続する環境(NAT環境の内側)を作成してて、viを実行しようとしたり、topを実行しようとしたりすると
下記のような感じで、SSH接続したコンソールが反応しなくなった。。。
root@vpnserve:~# vi
root@vpnserve:~# top
調べて行くと、どうもこれはMTG が関係しているようでした。
デフォルトだと、このようにwg0のMTUは、1420になってる。
これだと、
# ip -4 a 7: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 inet 10.10.10.2/24 scope global wg0 valid_lft forever preferred_lft forever
このコマンドで確認すると、パケットが1317以上だとロスする。
# ping -S 1317 10.10.10.1 PING 10.10.10.1 (10.10.10.1) 1317(1345) bytes of data. --- 10.10.10.1 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2059ms
# ping -S 1316 10.10.10.1 PING 10.10.10.1 (10.10.10.1) 1317(1345) bytes of data. 1324 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=0.747 ms 1324 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=1.26 ms 1324 bytes from 10.10.10.1: icmp_seq=3 ttl=64 time=1.45 ms --- 10.10.10.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2032ms
NAT環境の内側から、グローバルへ接続している場合、NAT環境のWireGuardは、MTU 1353にしてあげる
具体的には、2024.02.21 WireguardクライアントをGatewayにする で見た時WireGuard02のwg0をMTU 1353にしてあげる。