前回<SoftEther Ver.4.44にバージョンアップ - treedown’s Report>にてバージョンアップを実施した際に気づいたことを記録します。
WindowsのクライアントHyper-VのゲストOS環境
Windows11のクライアントHyper-VのゲストOSでDebian11(Bullseye)を稼働し、そこにSoftEther VPN Serverをインストールして使用してる環境があります。
RaspberryPiで稼働するSoftEther環境と並行して稼働しています。
症状
SoftEther VPN Clientからアクセスした際に、いつの間にか上手く動作しなくなっていました。(以前は正常動作していましたので、Hyper-V側の「MACアドレスのスピーフィングを有効にする」設定有効化などは既に完了しています。)
接続すると、

この画面でSoftEtherの向こう側にいるDHCPサーバからIPを取得してくれないような動作になってしまったり、何回かに一回はIPが取得できるのですが、接続完了後にNASの共有フォルダにアクセスすると

このようなエラーになってしまってアクセス出来ないというエラーが表示されます。
同じPC(とインターネット接続経由で)RaspberryPi側の(正常動作する)SoftEtherに接続すると、IPの取得も問題ないし、

共有フォルダへのアクセスも問題なく可能な状況です。
差は接続先のSoftEther ServerなのでHyper-VでホストしているSoftEtherに問題があると切り分けました。
MTUの設定
Hyper-V上のDebianゲスト環境でSoftEtherを使っている構成において、MTUの値を調整することで通信が安定したという記事を見つけました。
参考:<https://takabus.com/tips/2765/>
こちら、当方の環境とほぼ同じ構成となっていて参考になりました。
参考にさせていただいた記事内容によれば、MTU値を設定することで通信が安定するとのことです。
結論を言ってしまうと、自分の環境でも同じくMTU値を二箇所設定してみたところ、問題になっていた前述のVPN接続の症状は収まって、正常に接続することができるRaspberryPi側のSoftEtherと同様に通信できるようになりました。
MTU(Maximum Transmission Unit)は、ネットワーク上で一度に送れるデータの最大サイズの指定です。RaspberryPiのSoftEtherで設定する必要はなかったので、Hyper-VのゲストOSで稼働させるSoftEtherだと必要になると認識しています。
設定方法
設定は</etc/network/interfaces>ファイル内にMTU項目を追記してOS再起動で適用させました。
--------------------------------------------------------------
$ cat /etc/network/interfaces
--------------------------------------------------------------
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.0.11
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
mtu 1454
auto eth1
iface eth1 inet static
#iface eth1 inet manual
address 0.0.0.0
mtu 2000
--------------------------------------------------------------
上記の「mtu 1454」と「mtu 2000」が追記した設定です。各NIC(eth0/eth1)の末尾に追記しています。
追記後にOSを再起動して有効化しました。
症状が改善した
結果として、上記の</etc/network/interfaces>ファイル内に記載したMTU値の設定が有効になったことで、今回問題となっていた以下の症状は発生しなくなりました。
・VPNクライアント接続時にIPアドレスが取得できないことがある
・共有フォルダに接続できず、エラーでアクセスが中断されることがある
MTUの設定を調整した後は、VPN接続直後にDHCPサーバからIPが割り当てられますし、共有フォルダもエラーになることなく開けるようになりました。
数回にわたって接続テストを行いましたが、いずれも正常動作が確認できています。
同じネットワーク環境に設置されたSoftEther VPN Serverであっても、Hyper-VゲストOSのDebian環境とRaspberryPiをベースにしたDebian環境(RaspberryPiはDebian派生OSですが)では、仮想化の有無で通信の処理に差がでることがあるようです。
Hyper-VのゲストOS環境では、仮想NICやホスト側ネットワーク(NIC)が影響してMTU値を明示的に調整する必要がある、ということだと考えました。