まとめ
SoftEther を動かしている Ubuntu の NIC の segmentation offload が悪さをしている可能性があるので segmentation offload を無効化してみよう。
環境
不具合
L2TP/IPSec で VPN 接続した端末で、VPN 側から端末側に大きなデータ(ファイル)をコピーしようとすると速度が出ない(数KB/s) & 失敗する。(SoftEther ネイティブ接続は未検証なので、ネイティブ接続だと影響がない可能性あり)
MTU 周りを疑い、仮想 HUB の拡張オプション AdjustTcpMssValue を下げたりしてみたが効果なし。
Proxmox ホスト側の NIC offload の無効化も効果なし。
対策
VM のローカルブリッジ用 NIC の offloading 具合を確認すると以下の通りで TSO, GSO, GRO が有効になっているのが分かる。
$ sudo ethtool -k ens19 | grep -v fixed (snip) tcp-segmentation-offload: on tx-tcp-segmentation: on tx-tcp-mangleid-segmentation: on generic-segmentation-offload: on generic-receive-offload: on
これらの offloading が悪さをしている場合があるとのことなので、NIC offloading を無効化する。
$ sudo ethtool -K ens19 tso off gso off gro off $ sudo ethtool -k ens19 | grep -v fixed (snip) tcp-segmentation-offload: off tx-tcp-segmentation: off tx-tcp-mangleid-segmentation: off generic-segmentation-offload: off generic-receive-offload: off
この状態でテストしたところ、ファイルのコピーの不安定さがなくなったので永続化設定をする。
netplan 環境なので永続化設定は次トピの通り。
Ubuntu netplan で NIC offloading を無効にする設定の書き方 - ..たれろぐ..