Amazon EC2 インスタンスの MTU を設定する
ネットワーク接続の最大送信単位 (MTU) とは、接続を介して渡すことができる最大許容パケットサイズ (バイト単位) です。すべての Amazon EC2 インスタンスで標準フレーム (1500 MTU) がサポートされており、すべての現行世代のインスタンスタイプでジャンボフレーム (9001 MTU) がサポートされています。
Amazon EC2 インスタンスの MTU を表示したり、インスタンスと別のホストの間のパス MTU を表示したり、標準フレームまたはジャンボフレームを使用するようにインスタンスを設定したりできます。
2 つのホスト間のパス MTU の確認
EC2 インスタンスと別のホストとの間のパス MTU を確認できます。宛先として DNS 名または IP アドレスを指定できます。宛先が別の EC2 インスタンスの場合、そのセキュリティグループによりインバウンド UDP トラフィックが許可されていることを確認します。
使用する手順は、インスタンスのオペレーティングシステムによって異なります。
インスタンスで tracepath コマンドを実行して、EC2 インスタンスと指定された宛先の間のパス MTU を確認します。このコマンドは iputils
パッケージの一部であり、多くの Linux ディストリビューションでデフォルトで使用できます。
次の例では、EC2 インスタンスと amazon.com
との間のパス MTU を確認しています。
[ec2-user ~]$
tracepathamazon.com
この出力例では、パス MTU は 1500 となっています。
1?: [LOCALHOST] pmtu 9001 1: ip-172-31-16-1.us-west-1.compute.internal (172.31.16.1) 0.187ms pmtu 1500 1: no reply 2: no reply 3: no reply 4: 100.64.16.241 (100.64.16.241) 0.574ms 5: 72.21.222.221 (72.21.222.221) 84.447ms asymm 21 6: 205.251.229.97 (205.251.229.97) 79.970ms asymm 19 7: 72.21.222.194 (72.21.222.194) 96.546ms asymm 16 8: 72.21.222.239 (72.21.222.239) 79.244ms asymm 15 9: 205.251.225.73 (205.251.225.73) 91.867ms asymm 16 ... 31: no reply Too many hops: pmtu 1500 Resume: pmtu 1500
mturoute を使用してパス MTU を確認するには
-
http://www.elifulkerson.com/projects/mturoute.php
から EC2 インスタンスに mturoute.exe をダウンロードします。 -
コマンドプロンプトウィンドウを開いて、mturoute.exe をダウンロードしたディレクトリに移動します。
-
次のコマンドを使用して、EC2 インスタンスと指定した宛先との間のパス MTU を確認します。次の例では、EC2 インスタンスと
www.elifulkerson.com
との間のパス MTU を確認しています。.\mturoute.exe
www.elifulkerson.com
この出力例では、パス MTU は 1500 となっています。
* ICMP Fragmentation is not permitted. * * Speed optimization is enabled. * * Maximum payload is 10000 bytes. * + ICMP payload of 1472 bytes succeeded. - ICMP payload of 1473 bytes is too big. Path MTU: 1500 bytes.
インスタンスの MTU を確認する
インスタンスの MTU 値を確認できます。一部のインスタンスでは、ジャンボフレームを使用し、それ以外のドライバには標準フレームサイズを使用するように設定されています。
使用する手順は、インスタンスのオペレーティングシステムによって異なります。
Linux インスタンス上の MTU 設定を確認するには
EC2 インスタンスで次の ip コマンドを実行します。プライマリネットワークインターフェイスが eth0
でない場合は、eth0
を使用しているネットワークインターフェイスに置き換えます。
[ec2-user ~]$
ip link showeth0
この出力例で、mtu 9001
はこのインスタンスにジャンボフレームが使用されていることを示しています。
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 9001
qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 02:90:c0:b7:9e:d1 brd ff:ff:ff:ff:ff:ff
使用する手順は、インスタンスのドライバーによって異なります。
インスタンスの MTU を設定する
VPC 内のネットワークトラフィックにジャンボフレームを使用したり、インターネットトラフィックに標準フレームを使用したりする場合があるでしょう。どのようなユースケースでも、インスタンスが想定どおりに動作することを確認することをお勧めします。
使用する手順は、インスタンスのオペレーティングシステムによって異なります。
Linux インスタンス上の MTU 値を設定するには
-
インスタンスで次の ip コマンドを実行します。このコマンドで目的の MTU 値が 1500 に設定されますが、代わりに 9001 を使用することができます。
[ec2-user ~]$
sudo ip link set deveth0
mtu1500
-
(オプション) 再起動後もネットワーク MTU 設定を維持するには、オペレーティングシステムのタイプに基づいて、次の設定ファイルを変更します。
-
Amazon Linux 2 の場合、次の行を
/etc/sysconfig/network-scripts/ifcfg-
ファイルに追加します。eth0
MTU=
1500
次の行を
/etc/dhcp/dhclient.conf
ファイルに追加します。request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-search, domain-name-servers, host-name, nis-domain, nis-servers, ntp-servers;
-
Amazon Linux AMI の場合は、以下の行を
/etc/dhcp/dhclient-eth0.conf
ファイルに追加します。interface "eth0" { supersede interface-mtu
1500
; } -
その他の Linux ディストリビューションの場合は、特定のドキュメントを参照してください。
-
-
(オプション) インスタンスを再起動し、MTU 設定が正しいことを確認します。
使用する手順は、インスタンスのドライバーによって異なります。