MTU(Maximum Transmission Unit)は、インターフェースが一度に転送できる最大パケットサイズを示します。
FortiGateでも標準は1500バイトですが、VPNやPPPoEなどの環境ではオーバーヘッドにより調整が必要になる場合があります。
設定値の確認
show system interface <インターフェース名>
実際の有効値の確認
diagnose netlink interface list <ifname>
fnsysctl ifconfig <ifname>
diagnose hardware deviceinfo nic <ifname>
出力に mtu=XXXX
が表示されます。
FortiOS v5.4以降はGUIからは設定できず、CLIで行います。
例
config system interface
edit port1
set mtu-override enable
set mtu 1400
next
end
set mtu-override enable
… デフォルト値を上書きする設定set mtu <値>
… 実際に適用するMTU値
execute ping-options df-bit yes
execute ping-options data-size 1472
execute ping 8.8.8.8
data-size
に28バイト(IP20+ICMP8)を足した値がMTUになります。
値を上下させ、断片化が起きない最大値を確認します。
MTUだけでなく、TCPのMSS(Maximum Segment Size)も調整することで安定性が向上します。
目安は MSS ≒ MTU − 40
(IPヘッダ20 + TCPヘッダ20)。
設定例
config firewall policy
edit 1
set tcp-mss-sender 1360
set tcp-mss-receiver 1360
next
end
IPsecではヘッダ分さらに減るため、1500MTU環境ならMSSは概ね1387程度が上限になります。
一部のFortiGateモデルでは9000〜9216バイト級のJumbo Frameをサポートします。
ただし、全経路が対応していないとドロップが発生するため、導入時はネットワーク全体での調整が必須です。
set mtu-override enable
→ set mtu <値>
を使う。以上、FortiGateのMTU設定についてでした。
最後までお読みいただき、ありがとうございました。