第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 値に一貫性がないと、ネットワークに複数の問題が発生します。最も一般的な問題は、ランダムなパケットロスにより接続が中断して、ネットワークのパフォーマンスが低下することです。このような問題は、可能なすべてのネットワークポイントを特定してから、正しい 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>