VyOS で TCP MSS を調整する設定例です。MSS は TCP SYN で通知される値であり、PPPoE や VPN のようにオーバーヘッドが増える経路では、フラグメント回避のために調整が必要になることがあります。
参考
書籍
書籍
参考書籍
マスタリング TCP/IP ルーティング編
ルーティング、NAT、VPN、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事は、現在の主軸である VyOS 1.5 で読むことを前提に、過去の VyOS 1.4 以前の記事内容も整理しています。TCP MSS 調整 の考え方自体は大きく変わりにくい一方で、細かなコマンド、表示、既定値は利用している ISO や環境で確認してください。
MSS の基本
MSS は TCP のペイロード最大サイズです。MTU から IP ヘッダと TCP ヘッダを差し引いた値として考えます。UDP や ICMP には直接関係しません。
| 項目 | 意味 |
| MTU | L2/L3 上で運べる最大フレーム/パケットサイズ |
| MSS | TCP ペイロードとして送れる最大サイズ |
| PMTUD | 経路 MTU を検出する仕組み |
設定例
configure
set policy route inside rule 3000 protocol 'tcp'
set policy route inside rule 3000 tcp flags 'SYN'
set policy route inside rule 3000 set tcp-mss '1414'
commit
save確認
show configuration commands | match 'tcp-mss'
sudo tcpdump -ni eth1 'tcp[tcpflags] & tcp-syn != 0'設計上の注意
- MSS 調整は TCP SYN に対する補正であり、すべての通信を直接小さくする設定ではない。
- PPPoE、VPN、トンネル、IPsec など、ヘッダオーバーヘッドが増える経路で検討する。
- 値は固定の暗記ではなく、MTU、経路、実際のパケットキャプチャで確認する。
まとめ
MSS 調整は「なんとなく小さくする」設定ではありません。PPPoE、VPN、トンネル、IPsec などでヘッダオーバーヘッドが増える場合に、パケットキャプチャで SYN の MSS を確認しながら調整します。
VyOS TCP MSS 調整 – PPPoE / VPN 経路で考える

