第17章 MTU 設定の構成

17.1. MTU の概要

Red Hat Enterprise Linux OpenStack Platform 7 (kilo) の OpenStack Networking では、DHCP からの設定を割り当てるのと同様に、インスタンスに MTU サイズを通知する機能があります。MTU の値は、単一のネットワークパケットが転送できる最大データ量を指定します。この数は、アプリケーションに最も適した使用量により変化します。たとえば、NFS 共有で必要な MTU サイズは VoIP アプリケーションで必要なサイズとは異なる可能性があります。

注記

Red Hat Enterprise Linux OpenStack Platform 7 (kilo) では、DHCP 経由の MTU 設定の通知機能がサポートされています。 また、「neutron net-show」コマンドを使用して、MTU 計算の結果を表示することも可能です。

MTU 設定を正しく機能させるにはエンドツーエンドで一貫して設定する必要があります。つまり、MTU 設定は、仮想マシン自体、仮想ネットワークのインフラストラクチャー、物理ネットワーク、宛先のサーバー自体など、パケットがパススルーするすべてのポイントで同じサイズに指定する必要があります。

たとえば、以下の図の赤の点は、インスタンスと物理サーバーの間のトラフィックに合わせて MTU 値を調節する必要があるポイントを示しています。ネットワークトラフィックを処理するインターフェースの MTU 値はすべて、特定の MTU サイズのパケットに対応するように変更する必要があります。トラフィックが 192.168.200.15 から物理サーバー 10.20.15.25 に伝送されることが想定される場合には、この変更が必要です。

MTU settings

MTU 値に一貫性がないと、ネットワークに複数の問題が発生します。最も一般的な問題は、ランダムなパケットロスにより接続が中断して、ネットワークのパフォーマンスが低下することです。このような問題は、可能なすべてのネットワークポイントを特定してから、正しい MTU 値が設定されていることを検証する必要があるため、トラブルシューティングが困難です。

17.1.1. MTU 通知の設定

MTU 広告により、自動化された DHCP 設定や IPv6 RA 設定のレルムに MTU 設定が移動されるため、MTU 設定プロセスが簡素化されます。その結果、DHCPv4 または IPv6 RA を使用してインスタンスに最適な MTU サイズが広告されます。

MTU 広告は /etc/neutron/neutron.conf で有効にします。

advertise_mtu = True

このオプションは、Mitaka ではデフォルトで有効化されていますが、Newton では非推奨となり、今後のリリースでは削除される見込みです。このオプションを設定した場合には、テナントネットワークの設定済み MTU オプションが DHCPv4 および IPv6 RA を使用してインスタンスに広告されます。

注記

すべての DHCPv4 クライアントが MTU 値の自動設定をサポートしているわけではありません。

17.2. テナントネットワークの設定

固有の MTU 値をテナントネットワークに割り当て、DHCP でインスタンスに分散することができます。/etc/neutron/plugins/ml2/ml2_conf.ini で個別のテナントネットワークの MTU 設定を調節します。

注記: MTU 設定は現在、VXLAN/GRE ネットワークの個別レベルでは適用されません。

  • path_mtu: このオプションは (ルーティングされた) レイヤー 3 トラフィックに適用され、ネットワークパケットの最大サイズを設定します。OpenStack Networking はこの値を参照して、テナントネットワークの最大許容 MTU 値を算出します。これらの値は、ネットワーク種別を考慮して算出されます。

    • Flat/VLAN: (segment_mtu または physical_network_mtus) の最小値
    • GRE: (segment_mtu, path_mtu) − (GRE_ENCAP_OVERHEAD (42 バイト)) の最小値
    • VXLAN: (segment_mtu, path_mtu) − (VXLAN_ENCAP_OVERHEAD (50 バイト)) の最小値

path_mtu 設定は、L3 メカニズムドライバーに適用される単一の整数値です。以下に例を示します。

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 path_mtu 1450
  • segment_mtu: このオプションは、(スイッチされた) レイヤー 2 トラフィックに適用され、断片化が発生する前にレイヤー 2 ネットワークパケット (別称: フレーム) が達することのできる最大サイズを設定します。

segment_mtu 設定は、L3 メカニズムドライバーに適用される単一の整数値です。以下に例を示します。

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 segment_mtu 1475
  • physical_network_mtus: この値は物理ネットワークを設定済みの MTU 値にマッピングします。この設定を使用して、カスタムの MTU を外部およびプロバイダーネットワークに適用します。以下に例を示します。
physical_network_mtus = physnet1:1550, physnet2:1500

17.3. 更新した設定の確認

neutron コマンドを使用して、既存ネットワークの MTU 値を検証します。

# neutron net-show <network>