手当たり次第に書くんだ

飽きっぽいのは本能

OpenVPN の MTU 設定 – mssfix / fragment / tun-mtu の考え方

OpenVPN は接続できているのに、Web サイトの一部だけ開けない、SSH は通るのに大きな通信で止まる、特定の経路だけ不安定になる。このような場合、認証や証明書ではなく MTU / MSS の問題を疑う必要があります。

この記事では、OpenVPN の MTU 設定を、mssfixfragmenttun-mtu の役割に分けて整理します。

OpenVPN ではヘッダ分の余裕が必要になる

OpenVPN は、元の IP パケットを VPN のパケットとして包みます。そのため、物理回線の MTU をそのまま使えるとは限りません。特に PPPoE、IPv6、GRE、OpenVPN を重ねるような構成では、オーバーヘッドが積み重なります。

  • 元の IP パケット
  • OpenVPN のヘッダ
  • UDP または TCP のヘッダ
  • 外側 IP ヘッダ
  • 必要に応じて PPPoE や GRE などのヘッダ

mssfix は TCP の MSS を調整する

mssfix は、OpenVPN 経由で流れる TCP 通信の MSS を調整するための設定です。大きすぎる TCP セグメントを避けることで、フラグメントや PMTUD の問題を回避しやすくなります。

設定例

mssfix 1360

値は環境によって変わります。PPPoE やトンネルを重ねている場合は、かなり小さめにする必要が出ることがあります。

tun-mtu はトンネルインターフェイスの MTU を決める

tun-mtu は、OpenVPN の TUN インターフェイス側で扱う MTU です。mssfix が TCP MSS の調整であるのに対し、tun-mtu はトンネルインターフェイスそのものの MTU に関わります。

設定例

tun-mtu 1400
mssfix 1360

tun-mtu と mssfix は同じものではありません。TCP だけでなく UDP や ICMP なども含めて考える場合、MTU と MSS を分けて見る必要があります。

fragment は基本的に慎重に扱う

fragment は、OpenVPN 側でパケットを分割する設定です。古い構成や特定環境では使われてきましたが、現在は安易に使うより、まず MTU / MSS と経路側の問題を整理する方が安全です。

古い設定例

fragment 1300
mssfix 1300

fragment を使うと問題が隠れて見えることがあります。恒久対応として使う前に、物理回線、PPPoE、IPv6、Firewall、PMTUD、MSS clamp のどこで詰まっているかを確認します。

確認コマンド

MTU 問題は、接続できるかどうかだけでは判断できません。サイズを変えて ping したり、経路上でフラグメントが必要になっていないかを確認します。

ping -M do -s 1360 192.0.2.1
tracepath 192.0.2.1
ip link show tun0

OpenVPN が動いている環境や OS によってコマンドは変わります。重要なのは、単に ping が通るかではなく、どのサイズまで通るかを見ることです。

VyOS では経路側の MSS 調整も見る

VyOS で OpenVPN や GRE、PPPoE を組み合わせる場合、OpenVPN 設定だけではなく、インターフェイス側の MSS clamp も確認します。

set interfaces tunnel tun1000 mtu '1376'
set interfaces tunnel tun1000 ip adjust-mss '1336'
set interfaces tunnel tun1000 ipv6 adjust-mss '1316'

どこで MSS を調整するかは設計次第です。OpenVPN 側、VyOS のトンネル側、Firewall 側で同じ問題を別々に処理し始めると、後から原因が追いにくくなります。

まとめ

OpenVPN の MTU 問題は、接続可否ではなく、接続後の通信品質として現れることがあります。mssfixtun-mtufragment はそれぞれ役割が違うため、まとめて「MTU 設定」として雑に扱わない方が安全です。

まずは経路全体のオーバーヘッドを把握し、TCP MSS の調整、トンネル MTU、PMTUD、Firewall の影響を分けて確認します。VPN 経路は、暗号化だけでなくパケットサイズの設計でもあります。

関連する記事

次に進む

参考書籍

参考書籍
参考書籍
マスタリングTCP/IP ルーティング編

VPN、MTU、経路制御を含むネットワーク設計の前提を確認したい場合の参考書籍です。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

OpenVPN の MTU 設定 – mssfix / fragment / tun-mtu の考え方

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る