最大伝送単位
Virtual Private Cloud(VPC)ネットワークのデフォルトの最大伝送単位(MTU)は 1,460 バイトです。ただし、MTU が異なる VPC ネットワークを構成できます。
MTU は、ネットワーク レイヤ プロトコルでサポートされる、ヘッダーとデータの両方を含めた最大パケットのサイズ(バイト単位)です。Google Cloud では、VPC ネットワークごとに MTU を構成できます。そのネットワークを使用する VM インターフェースも、その MTU を使用するように構成する必要があります。この MTU 値は、IP パケット(データグラム)のサイズを表します。イーサネット ヘッダーは含みません。
有効な MTU
VPC ネットワークにはデフォルトの MTU 1460
がありますが、MTU として 1500
(標準イーサネット)、最大 8896
(ジャンボ フレーム)、最小 1300
をサポートするように構成できます。
次の表に、VM が別の VM と通信する際に使用できる最大パケットサイズを示します。
宛先 VM のロケーション | IP アドレスの種類 | 許可されるパケットサイズ | 注 |
---|---|---|---|
送信側の VM と同じ VPC ネットワークか、Google Cloud の内部 IP アドレスを使用する VPC ネットワーク ピアリングで接続されたピアリング済みの VPC ネットワーク。 | IPv4 または IPv6(ルートまたは転送ルールを使用して到達可能な IP アドレスを含む)。 | 8896 |
両方の VM インターフェースの MTU がネットワークと同じで、送信側と受信側の VPC ネットワークが 8896 の MTU を使用している場合、TCP トラフィックと UDP トラフィックの両方がネットワーク MTU で送信されます。 |
受信側の VM が、送信側の VM よりも小さい MTU の VPC ネットワークにある場合。 | 内部 IPv4 または IPv6 | 1600 |
|
インターネット 別の VM の外部 IP アドレス |
外部 IPv4 または IPv6 | 1500 。ただし、最大 1,600 バイトまでのパケットはドロップされません。 |
|
Cloud VPN に接続されたオンプレミス環境 | 内部 | 1460 |
Cloud VPN での MTU の違いをご覧ください。 |
Cloud Interconnect に接続されたオンプレミス環境 | 内部 | 1440 または 1500 |
Cloud Interconnect での MTU の違いをご覧ください。 |
MTU を超えるパケットの処理
MTU は、UDP トラフィックと TCP トラフィックの両方に影響します。
- すべての IP プロトコル: Don't-Fragment(DF)ビットが設定されている場合、IP パケットが宛先パスにあるリンクの MTU を超えると、パケットがドロップされます。また、リンクが Google Cloud 内にある場合は、DF ビットが設定されていなくてもパケットがドロップされます。パケットがドロップされると、リンクで受け入れ可能な MTU を示すタイプ 3 コード 4
Fragmentation-Needed
の ICMP パケットが送信側に返されます。パス検出の詳細については、パス MTU 検出(PMTUD)をご覧ください。 - TCP: 接続の確立中に、両方のシステムが独自の最大接続セグメント サイズ(MSS)をアドバタイズします。MSS は、TCP ヘッダーと IP ヘッダーを除いて、システムが TCP セグメントで受け入れる最大データ量を表します。MSS + TCP ヘッダー(20~60 バイト)と IP ヘッダー(20 バイト)は、ネットワーク パスの MTU 以下でなければなりません。VPC ネットワークは IP の断片化をサポートしていないため、送信側は TCP セグメントを MTU に適した MSS 以下になるように適切にサイズ調整する必要があります。一部のネットワーク パスでは、Google Cloud は MSS クランプを実行します。これにより、送信者のアドバタイズされた SYN パケットの MSS 値、または受信者のアドバタイズされた SYN-ACK パケットの MSS 値が低くなります。
VM と MTU の設定
Google 提供の OS イメージに基づく Linux VM の場合、その作成時に VPC ネットワークの MTU がインターフェースの MTU に自動的に設定されます。VM に複数のネットワーク インターフェースがある場合、接続されたネットワークの MTU が各インターフェースに設定されます。VM を実行している VPC の MTU を変更する場合は、VM を停止して再起動し、新しい MTU を取得する必要があります。VM が再起動すると、変更されたネットワーク MTU が DHCP から通知されます。DHCP オプション 26 にネットワークの MTU が含まれます。
Windows VM のインターフェースは、起動時に VPC ネットワークの MTU を使用するように自動的に構成されません。代わりに、Google 提供の OS イメージに基づく Windows VM には固定の MTU 1460
が構成されています。Google 提供の OS イメージに基づく Windows VM が存在する VPC ネットワークの MTU を変更する場合は、Windows VM の MTU 設定を変更する必要があります。
カスタム イメージを使用する VM で MTU 設定を確認します。VPC ネットワークの MTU が優先される可能性もありますが、MTU が固定値に設定されている可能性もあります。
手順については、VPC ネットワークの MTU 設定を変更するをご覧ください。
GKE と MTU の設定
Pod インターフェースに選択される MTU は、クラスタノードで使用される Container Network Interface(CNI)と、基盤となる VPC MTU の設定によって異なります。詳細については、Pod をご覧ください。
Pod インターフェースの MTU 値は 1460
か、ノードのプライマリ インターフェースから継承されます。
CNI | MTU | GKE Standard |
---|---|---|
kubenet | 1460 | デフォルト |
kubenet (GKE バージョン 1.26.1 以降) |
継承 | デフォルト |
Calico | 1460 |
詳細については、ネットワーク ポリシーを使用して Pod と Service 間の通信を制御するをご覧ください。 |
netd | 継承 | 次のいずれかを使用して有効にします。 |
GKE Dataplane V2 | 継承 |
詳細については、GKE Dataplane V2 の使用をご覧ください。 |
MTU の不一致
MTU の不一致は、通信を行う 2 つの VM で MTU の設定が異なる状態を意味します。これにより、接続の問題が発生することがあります。インスタンスをルーターとして使用し、VM 内で Kubernetes を使用しているケースもあります。
ほとんどの場合、異なる MTU のインスタンス間の TCP 接続は、MSS ネゴシエーションによって成功しますが、その場合、接続の両端で低いほうの MTU が使用されます。
これは、2 つの VM が同じネットワークかピアリングされたネットワークかに関係なく適用されます。
Cloud VPN での MTU の違い
Cloud VPN では常に 1,460 バイトの MTU が使用されます。トンネルの片側の VM とネットワークで MTU が高い場合、Google Cloud は MSS クランプを使用して TCP MTU を 1,460 に減らします。
VM が、構成で処理可能なサイズを超える TCP または UDP パケットを送信すると、Google Cloud はパケットをドロップし、PMTUD を有効にするために ICMP エラー メッセージを送信して UDP パケットの MTU を低く設定します。
Cloud VPN と MTU の詳細については、トンネル MTU と MTU に関する考慮事項をご覧ください。
Cloud Interconnect での MTU の違い
Cloud Interconnect の MTU には 1440
または 1500
を指定できます。
通信する VM の MTU が 1460
より高く、VLAN アタッチメントの MTU が 1440
の場合は、MSS クランプにより TCP 接続の MTU が 1440
に設定され、TCP トラフィックが送信されます。
MSS クランプは UDP パケットに影響しないため、VPC ネットワークの MTU が 1460
より高く、VLAN アタッチメントの MTU が 1440
の場合、1,412 バイトを超える UDP データグラム(1,412 バイトの UDP データ + 8 バイトの UDP ヘッダー + 20 バイトの IPv4 ヘッダー = 1,440 バイト)はドロップされます。その場合、次のいずれかを行います。
- 接続された VPC ネットワークの MTU を
1460
に下げる。 - 小さい UDP パケットを送信するようにアプリケーションを調整する。
- VPC ネットワークの MTU が
1500
の場合、既存の VLAN アタッチメントの MTU を変更するか(1,500 バイトに変更)、MTU が 1,500 バイトの新しい VLAN アタッチメントを作成できます。
Cloud Interconnect と MTU の詳細については、Cloud Interconnect MTU をご覧ください。
次のステップ
- ジャンボ フレーム MTU ネットワークの作成と確認で、機能する別の MTU を確認する。
- 指定された MTU を持つ VPC ネットワークを作成する。
- VPC ネットワークの MTU 設定を変更する
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの VPC のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
VPC 無料トライアル