OpenVPNでsambaが遅い場合に高速化する方法

OpenVPNでsamba経由の通信が遅い場合の対処法です。

今回はMTUの値を調整するため、fragment、mssfixオプションを使用して解決します。

スポンサーリンク

MTUとは

MTUとは、ネットワークで一回に送信できるデータの最大サイズのこと。

ネットワークを流れるパケットは、MTUで定められた最大サイズに分割して送信されます。
送信側のサイズよりも受信側のサイズが小さいと受信できず、受信側のMTUに合わせて再分割されたうえで再送信されます。
この再分割時に通信エラーや通信速度の遅延が起こります。

OpenVPNではMTUで定められた値に加え、OpenVPN用のヘッダーが付加されます。

そのため、パケットサイズ+OpenVPNヘッダーサイズがMTUを超えない様に設定し、エラーや遅延を起こりにくくします。

サーバー側の設定

CentOS7にて。

通常の設定に加え、以下の項目を追加します。

編集ファイル /etc/openvpn/server.conf

tun-mtu 1500
fragment 1300
mssfix

tun-mtu: tunデバイスのMTUサイズ(デフォルト:1500)
fragment: UDPパケットのサイズ制限
mssfix: UDPパケット(カプセル化後)のサイズ制限(デフォルト:1450)

tun-mtu

tunデバイスのMTUサイズを指定します。(デフォルト値:1500)。

デフォルトの1500で動作させておき、MTUの調整にはfragmentオプションやmssfixオプションを使用することが推奨されています。

fragment

UDPパケットの最大サイズを指定します。

fragmentオプションはUDPプロトコル(–proto udp)を使用している場合にのみ有効です。

mssfix

OpenVPNによるカプセル化後、トンネル上を流れるUDPパケットの最大サイズを指定します。(デフォルト値:1450)。

fragmentオプションとmssfixオプションを同時に使用する場合、mssfixはfragmentから自動的にパラメータを取得します。

そのため、fragmentと同時に使用する場合、mssfixに値を設定する必要はありません。

クライアント側の設定

通常の設定に加え、以下の項目を追加。つまり、サーバー側と設定を合わせるということ。

注意点として、クライアント側のアプリがfragmentに対応していない場合は記載しないこと。iphoneやAndroidのOpenVPNアプリなどが該当します。

編集ファイル C:\Program Files\OpenVPN\config\client.ovpn

tun-mtu 1500
fragment 1300
mssfix

コメント

タイトルとURLをコピーしました