ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
iPerfを使用したOCIハブおよびスポークVCNルーティング・アーキテクチャ内のスループットのテスト
イントロダクション
急速に進化する今日のクラウド環境では、シームレスな運用を実現するために、最適なネットワーク・パフォーマンスを確保することが重要です。Oracle Cloud Infrastructure(OCI)は、ハブおよびスポークVirtual Cloud Network(VCN)ルーティング・アーキテクチャを含む堅牢なネットワーキング機能を提供し、効率的な通信およびリソース管理を促進します。このアーキテクチャを維持するための重要な側面の1つは、ネットワーク・スループットを定期的にテストして、潜在的なボトルネックを特定し、パフォーマンスを最適化することです。
このチュートリアルでは、強力なネットワーク・テスト・ツールであるiPerfを使用して、OCI HubおよびSpoke VCNルーティング・アーキテクチャ内のスループットを測定および分析します。このチュートリアルを終えるまでには、OCIネットワークのパフォーマンスを効果的に評価および強化し、アプリケーションとサービスを円滑に実行できるようにするための知識が備わっています。
ノート: iPerfを使用して取得したテスト結果は、ご使用の環境に固有のネットワーク条件、ハードウェア構成およびソフトウェア設定など、様々な要因によって大きく異なります。そのため、これらの結果は他の環境とは異なる場合があります。これらの結果を使用して、ネットワークまたは機器の期待されるパフォーマンスについて決定的な結論を下さないでください。これらは、パフォーマンスの絶対的な測定ではなく、指示的とみなす必要があります。
iPerfバージョン
iPerf、iPerf2およびiPerf3は、2つのエンドポイント間のネットワーク帯域幅、パフォーマンスおよびスループットの測定に使用するツールです。ただし、機能、パフォーマンスおよび開発ステータスの点では、いくつかの重要な違いがあります。
概要:
-
iPerf (オリジナル)
- リリース: 2003年頃にリリースされました。
- 開発:元のiPerfは、大部分が後続(iPerf2およびiPerf3)に置き換えられました。
- 機能: TCPおよびUDPを使用してネットワーク帯域幅をテストするための基本機能。
- 制限事項:時間の経過とともに、最新のネットワーク機能のサポートが不足しているため、時代遅れになりました。
-
iPerf2
- リリース:元のiPerfからフォークされ、独立して維持されます。
- 開発:特にEnergy Sciences Network (ESnet)によって積極的に維持されます。
- 機能:
- TCPと UDPの両方のテストをサポートします。
- マルチスレッド: iPerf2はマルチスレッド・テストをサポートしています。これは、高スループット環境のテストに役立ちます。
- UDPマルチキャストおよび双方向テスト。
- プロトコルの柔軟性: IPv6、マルチキャストおよびその他の高度なネットワーク・プロトコルのより適切な処理。
- パフォーマンス:マルチスレッドのサポートによりスループットが向上するため、元のiPerfよりパフォーマンスが向上します。
- ユースケース: IPv6やマルチキャストなどのレガシー機能が必要な場合、またはテストでマルチスレッドが必要な場合に最適です。
-
iPerf3
- リリース: iPerf2を保持する同じチーム(ESnet)によってリライトおよびリリースされます。このリライトは、コードベースのクリーンアップとツールの最新化に重点を置いています。
- 開発:頻繁な更新で積極的に保守されます。
- 機能:
- TCPと UDPの両方のテストをサポートします。
- シングルスレッド: iPerf3はマルチスレッドをサポートしていません。これは、特定の環境での高スループットの制限になる可能性があります。
- TCPテストでは、双方向テストおよび複数ストリームの両方向でテストするための逆モードをサポートします。
- JSON出力により、他のツールとの統合が容易になります。
- エラー報告およびネットワーク統計が改善されました。
- 最新のネットワーク・インタフェースおよびQoSや輻輳制御などの機能用に最適化されています。
- パフォーマンス: iPerf3は最新のネットワーク用に最適化されていますが、マルチスレッド機能がないため、高帯域幅またはマルチコア・システムでのパフォーマンスが制限されることがあります。
- ユースケース:マルチスレッドを必要とせずに、よりシンプルなパフォーマンス・テストが必要な最新のネットワーキング環境に最適です。
主な違い:
機能 | iPerf | iPerf2 | iPerf3 |
---|---|---|---|
開発 | 非継続 | 積極的に管理 | 積極的に管理 |
TCPおよびUDPテスト | ○ | ○ | ○ |
マルチスレッド・サポート | × | ○ | × |
UDPマルチキャスト | × | ○ | × |
IPv6のサポート | × | ○ | ○ |
JSON出力 | × | × | ○ |
リバース・モード | × | ○ | ○ |
ノート:このチュートリアルでは、可能な場合はiPerf2を使用します。
高スループットに最適
高スループット環境では、多くの場合、iPerf2はマルチスレッド機能によって最適な選択であり、複数のCPUコアを最大限に活用できます。これは、1秒間に複数のギガビット(Gbps)のトラフィックを処理できるネットワークインタフェースを操作する場合に特に重要です。
マルチスレッドが重要でない場合、iPerf3は、より単純なセットアップや、QoSや輻輳制御などの機能を備えた最新のネットワークに適しています。ただし、非常に高スループットの環境では、シングルスレッドの性質がボトルネックになる可能性があります。
最大セグメントサイズ(MSS)クランプが使用されるのはなぜですか?
ノート:トラフィックがインターネット・プロトコル・セキュリティ(IPSec)トンネルを経由してpfSenseファイアウォールMSSを経由する場合、注意が必要です。
MSSクランプとは、Maximum Segment Size Clampingのことを指します。これは、ネットワーク通信(特にTCP/IPネットワーク)で、接続設定プロセス中にTCPパケットのMSSを調整するために使用される手法です。MSSは、デバイスが単一のTCPセグメントで処理できる最大量のデータを定義し、通常はTCPハンドシェイク中に通信デバイス間でネゴシエートされます。
多くの場合、MSSクランプは、パケットの断片化に関連する問題を回避するために、ルーター、ファイアウォール、VPNなどのネットワークデバイスによって使用されます。その具体的な動作を次に示します。
-
パケット断片化の問題: MSSが大きすぎる場合、パケットがネットワーク・パスのMaximum Transmission Unit (MTU)を超える可能性があり、断片化が発生します。これにより、ネットワークが断片化を適切に処理しない場合に、非効率性、オーバーヘッドの増加、またはパケット損失が発生することがあります。
-
MSSの削減: MSSクランプを使用すると、ネットワーク・デバイスはTCPハンドシェイク中にMSS値を下方に調整(またはクランプ)できるため、断片化を必要とせずにネットワーク・パスを横断するのに十分なパケット・サイズが小さいことを確認できます。
-
VPNでの使用: MSSクランプは、暗号化のオーバーヘッドによりMTUサイズが削減されるVPNシナリオで一般的に使用されます。MSSクランプを使用しないと、パケットが断片化され、パフォーマンスが低下する可能性があります。
MSSクランプの例:クライアントデバイスがTCPハンドシェイク中に1460バイトのMSS値を送信するが、VPNカプセル化のためにネットワークのMTUが1400バイトに制限されている場合、ネットワークデバイスは断片化の問題を回避するために、MSSを1360バイトに固定(余分なオーバーヘッドを許容)できます。
重要なパラメータ
-
使用済ポート
iPerf2および iPerf3がTCPおよび UDPに使用するデフォルトのポートは次のとおりです。
TCPポート UDPポート iPerf2 5001 5001 iPerf3 5201 5201 どちらのバージョンでも、必要に応じて
-p
フラグを使用して別のポートを指定できます。テスト目的で、iPerfエンドポイントのソースIPアドレスと宛先IPアドレス間のすべてのポートを開くことをお薦めします。
-
MTUサイズ
iPerfは、事前に決定した特定のソースと宛先の間でデータを送信します。
iPerfテストの実行時には、ネットワーク・パフォーマンス、パケットの断片化およびテストの精度に直接影響するため、MTUサイズを理解することが重要です。ここでは、iPerfテスト中のMTUサイズについて考慮する必要があります。
-
デフォルトのMTUサイズ:
-
EthernetのデフォルトのMTUサイズは 1500バイトですが、これはネットワーク構成によって異なる場合があります。
-
MTUサイズが大きいか小さいと、iPerfテスト中に送信されるパケットの最大サイズに影響する可能性があります。MTUサイズが小さいほど、同じ量のデータに対してより多くのパケットが必要になりますが、MTUサイズが大きいほどオーバーヘッドが減少する可能性があります。
-
-
パケット断片化:
-
MTUサイズの設定が小さすぎる場合、またはiPerfパケット・サイズがネットワークのMTUより大きい場合、パケットは断片化される可能性があります。断片化されたパケットは、テストでの待機時間が長くなり、パフォーマンスが低下する可能性があります。
-
iPerfは、特定のサイズまでのパケットを生成でき、MTUを超える場合は分割する必要があり、余分なオーバーヘッドが発生し、実際のパフォーマンスの反射が少なくなります。
-
-
ジャンボフレーム:一部のネットワークではジャンボフレームがサポートされており、MTUが標準の1500バイトよりも大きく、9000バイトに達することがあります。ジャンボ・フレームが有効な環境でテストする場合、この大きいMTUと一致するようにiPerfを構成すると、ヘッダーおよび断片化のオーバーヘッドを削減することでスループットを最大化できます。
-
MTU検出およびパスMTU:
-
パスMTU検出は、パケットが中間ネットワークのMTUを超えないようにするのに役立ちます。iPerfがパスMTUより大きいパケットを送信し、断片化が許可されていない場合、パケットは破棄される可能性があります。
-
パスMTU検出に役立つため、ICMPの「断片化が必要」メッセージがファイアウォールによってブロックされないようにすることが重要です。これがないと、より大きなパケットが正常に配信されず、パフォーマンスの問題が発生する可能性があります。
-
-
TCPテストとUDPテスト:
-
TCPモードでは、iPerfはパケット・サイズを自動的に処理し、パスMTUに従って調整します。
-
UDPモードでは、パケット・サイズはユーザーによって(
-l
フラグを使用して)制御され、断片化を回避するには、このサイズがMTU以下である必要があります。
-
-
iPerfでのMTUの調整:
-
iPerfの
-l
オプションを使用して、UDPデータグラムの長さを手動で設定します。 -
特定のMTUサイズでのテストでは、ネットワークとインタフェースが目的のMTU値と一致するように構成されていることを確認して不一致を回避すると便利です。
-
-
ネットワーク・セグメント間の一貫性: 2つのエンドポイント間ですべてのネットワーク・デバイス間でMTUサイズが一貫していることを確認します。MTU設定が一致しない場合、断片化やパケットのドロップが原因で非効率になり、テスト結果が不正確になる可能性があります。
-
VPN (仮想プライベート・ネットワーク): VPNを使用すると、カプセル化と暗号化のレイヤーが追加されるため、MTUサイズおよびネットワーク・パフォーマンスがさらに重要になります。VPNでは、追加のオーバーヘッドが発生し、iPerfなどのツールのパフォーマンスに影響する可能性があります。
次に、VPN接続とそのネットワーク・テストへの影響の詳細を示します。
VPNとMTUの主な概念:
-
カプセル化オーバーヘッド:
-
IPsec、OpenVPN、WireGuard、PPTP、L2TPなどのVPNプロトコルは、暗号化およびトンネリングの目的で元のデータ・パケットに追加のヘッダーを追加します。
-
VPNは元のパケットと追加されたVPNヘッダーの両方に対応する必要があるため、この余分なオーバーヘッドにより、有効なMTUサイズが削減されます。たとえば次のようにします。
- IPsecは、約56から73バイトのオーバーヘッドを追加します。
- OpenVPNは、構成に応じて約40から60バイトを追加します(たとえば、UDPとTCP)。
- WireGuardは、約60バイトを追加します。
-
MTUを調整しないと、調整されたMTUより大きいパケットが断片化またはドロップされる可能性があります。
-
-
VPNのMTUおよびPath MTU Discovery:
-
VPNは、複数のネットワークにまたがるトンネルを作成することが多く、トンネルの両端間のパスMTUは、直接接続で使用されるものより小さくすることができます。パスMTU検出はVPNの断片化を回避するのに役立ちますが、一部のネットワークはICMPメッセージをブロックしますが、これはこの検出に不可欠です。
-
「断片化が必要」などのICMPメッセージがブロックされている場合、VPNトンネルは中間ネットワークに対して大きすぎるパケットを送信し、パケットの損失や再送信を引き起こす可能性があります。
-
-
フラグメンテーションの問題:
-
MTUの不一致が発生すると、VPNはネットワークレベルでパケットを断片化するか、断片化が許可されない場合(DF、または Do not Fragmentビットが設定されている場合)、パケットを削除します。断片化によって、待機時間が長くなり、スループットが低下し、パケットが失われる可能性があります。
-
VPNの有効性が低いMTU (たとえば、1500バイトではなく1400バイト)が多く、追加されたヘッダーを考慮し、断片化を防止します。
-
-
VPN接続のMTUの調整:ほとんどのVPNクライアントまたはルーターでは、断片化を回避するためにMTUサイズを調整できます。たとえば、VPNトンネルのMTUサイズを1400バイトまたは1350バイトに減らすことは、VPNのオーバーヘッドを考慮するのが一般的です。
-
-
インスタンス・ネットワーク速度
OCI内では、ネットワーク・アダプタ(vNIC)またはインスタンスの速度は、インスタンス・シェイプと、そのシェイプに割り当てたCPUの量にバインドされます。
このチュートリアルでは、Oracle Linux 8 Imageと1 OCPUのE4.Flex
シェイプを使用します。つまり、すべてのiPerfテスト結果について、1Gbpsのネットワーク帯域幅が(最大)取得されます。
- シェイプはE4です。フレックス
- OCPU数は1です。
- ネットワーク帯域幅は1Gbpsです。
ノート:別のシェイプを選択し、OCPUの量を増やすことで、ネットワーク帯域幅を増やすことができます。
目的
- iPerfを使用して、OCIハブおよびスポークVCNルーティング・アーキテクチャ内のスループットをテストします。
タスク1: OCIハブおよびスポークVCNルーティング・アーキテクチャの確認
このチュートリアルでは、すべてのiPerfスループット・テストに次のアーキテクチャを使用します。
これは、オンプレミスがIPSec VPNトンネルに接続されたフル・ハブおよびスポーク・ルーティング・アーキテクチャです。このルーティング・トポロジを再作成するには、次を参照してください。
タスク2: ハブ・インスタンスへのiPerf3のインストール
ノート:このタスクでは、iPerf3をインストールし、次のタスクにiPerf2をインストールします。
タスク2.1: ハブ・ステップ・ストーンへのiPerf3のインストール
ハブのステップ・ストーンは、Windowsサーバー・インスタンスです。Windowsには、windowsという様々なiPerfディストリビューションがあります。このチュートリアルでは、Directory Listerからダウンロードします。
-
zipファイルをダウンロードし、ハブ・ステップ・ストーンでファイルを解凍します。
- iPerf zipファイルを解凍したディレクトリに移動します。
- 解凍したフォルダが使用可能かどうかを確認します。
- 別のiPerfフォルダがあることを確認します。
- iPerfフォルダ内に移動します。
- iPerfフォルダ内のファイルを確認します。
- 実際のテストの実行に使用する
iPerf.exe
ファイルが必要です。
-
iPerf.exe
コマンドを実行して、動作するかどうかを確認します。
タスク2.2: pfSenseファイアウォールへのiPerf3のインストール
-
pfSenseにiPerfをインストールするには、パッケージ・マネージャを使用してパッケージをインストールする必要があります。
- 「システム・メニュー」に移動します。
- 「パッケージ・マネージャ」を選択します。
-
「Available Packages」をクリックします。
- 「検索語」にiPerfと入力します。
- 「検索」をクリックします。
- 結果は1つあり、これはiPerfパッケージ・バージョン3.0.3です(このチュートリアルを記述するとき)。
- +Installをクリックします
-
「確認」をクリックします。
-
インストールされるパッケージの数は 2です。
- 「診断メニュー」に移動します。
- iPerfを選択します。
-
「クライアント」をクリックします。
-
「サーバー」をクリックします。
ノート: pfSenseファイアウォールには、iPerfバージョン2パッケージをインストールするオプション(デフォルトでは)がありません。
タスク3: スポーク・インスタンスへのiPerf3のインストール
アーキテクチャのOCI内のLinuxインスタンスにiPerf3をインストールします。
タスク3.1: スポーク・インスタンスA1およびインスタンスA2へのiPerf3のインストール
-
インスタンスA1には、すでにiPerf3がインストールされています。
- インスタンスA1に接続します。
sudo dnf install iPerf3
コマンドを実行します。- iPerf3はすでにインストールされています。
-
iPerf3 -v
コマンドを実行して、インストールされているiPerfバージョンを確認します。 -
インスタンスA2にiPerf3をインストールします。
- インスタンスA2に接続します。
sudo dnf install iPerf3
コマンドを実行します。Y
と入力します。
-
iPerf3がインストールされ、インストールが完了したことがわかります。
タスク3.2: スポーク・インスタンスBへのiPerf3のインストール
- インスタンスBに接続します。
sudo dnf install iPerf3
コマンドを実行して、iPerf 3をインストールします。iPerf3がすでに使用可能である場合、iPerfがすでにインストールされているというメッセージが表示されます。
タスク3.3: スポーク・インスタンスCへのiPerf3のインストール
- インスタンスCに接続します。
sudo dnf install iPerf3
コマンドを実行して、iPerf 3をインストールします。iPerf3がすでに使用可能である場合、iPerfがすでにインストールされているというメッセージが表示されます。
タスク3.4: インスタンスDへのiPerf3のインストール
- インスタンスDに接続します。
sudo dnf install iPerf3
コマンドを実行して、iPerf 3をインストールします。iPerf3がすでに使用可能である場合、iPerfがすでにインストールされているというメッセージが表示されます。
タスク4: オンプレミス・インスタンスへのiPerf3のインストール
アーキテクチャのオンプレミスのLinuxインスタンスにiPerf3をインストールします。
タスク4.1: Oracle LinuxクライアントへのiPerf3のインストール
- オンプレミスのLinuxクライアント・インスタンスに接続します。
sudo dnf install iPerf3
コマンドを実行して、iPerf 3をインストールします。iPerf3がすでに使用可能である場合、iPerfがすでにインストールされているというメッセージが表示されます。
タスク4.2: Oracle LinuxクライアントCPEへのiPerf3のインストール
- オンプレミスのLinux CPEインスタンスに接続します。
sudo dnf install iPerf3
コマンドを実行して、iPerf 3をインストールします。iPerf3がすでに使用可能である場合、iPerfがすでにインストールされているというメッセージが表示されます。
タスク5: すべてのLinuxインスタンスへのiPerf2のインストール
iPerf3をインストールしました。次に、アーキテクチャ全体のすべてのLinuxインスタンスにiPerf2をインストールします。
Oracle Linux 8を使用しているため、Oracle Linux 8 (x86_64) EPELのiPerf2パッケージが必要です。Oracle Linux 9を使用している場合は、次のパッケージを使用します: Oracle Linux 9 (x86_64) EPEL、または別のOSまたはLinuxディストリビューションでは、そのOS用にコンパイルされたパッケージを使用します。
-
次のコマンドを実行して、すべてのOracle Linux 8インスタンスにiPerf 2をインストールします。
sudo dnf install https://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/x86_64/getPackage/iPerf-2.1.6-2.el8.x86_64.rpm
-
Y
と入力してインストールを確認します。 -
インストールが完了していることに注意してください。
iPerf -v
コマンドを実行して、インストールされているiPerfバージョンを確認します。- iPerfバージョン
2.1.6
がインストールされていることに注意してください。
ノート: iPerf2は、他のすべてのインスタンスにも必ずインストールしてください。
-
Windowsベースのハブ・ステップ・ストーンの場合は、iPerf-2.2.n-win64からダウンロードします。
iPerf.exe
コマンドを実行して、動作するかどうかを確認します。iPerf -v
コマンドを実行して、インストールされているiPerfバージョンを確認します。- iPerfバージョン
2.2.n
がインストールされていることに注意してください。
タスク6: iPerfテストの定義およびiPerfコマンドの準備
このタスクでは、いくつかのiPerfコマンドに追加のフラグを指定して、それらの意味を説明します。詳細は、ネットワーク・パフォーマンスを参照してください。
-
TCPを使用してテストするための基本的なiPerfコマンド:
-
iPerfサーバー側。
iPerf3 -s
-
iPerfクライアント側。
iPerf3 -c <server_instance_private_ip_address>
-
-
TCPでのテストに使用するiPerfコマンド:
ノート:
- 双方向帯域幅測定(
-r
)。 - TCPウィンドウ・サイズ(
-w
)。
-
iPerfサーバー側。
iPerf3 -s -w 4000
-
iPerfクライアント側。
iPerf3 -c <server_instance_private_ip_address> -r -w 2000 iPerf3 -c <server_instance_private_ip_address> -r -w 4000
- 双方向帯域幅測定(
-
UDPでのテストに使用するiPerfコマンド:
ノート:
- UDPテスト(
-u
)。 - 帯域幅の設定(
-b
)。
-
iPerfサーバー側。
iPerf -s -u -i 1
-
iPerfクライアント側。
iPerf -c <server_instance_private_ip_address> -u -b 10m iPerf -c <server_instance_private_ip_address> -u -b 100m iPerf -c <server_instance_private_ip_address> -u -b 1000m iPerf -c <server_instance_private_ip_address> -u -b 10000m iPerf -c <server_instance_private_ip_address> -u -b 100000m
- UDPテスト(
-
TCPでのテストに使用するiPerfコマンド(MSSを使用):
ノート:最大セグメント・サイズ(
-m
)。-
iPerfサーバー側。
iPerf -s
-
iPerfクライアント側。
iPerf -c <server_instance_private_ip_address> -m
-
-
TCP (パラレル)でのテストに使用するiPerfコマンド:
-
iPerfサーバー側。
iPerf -s
-
iPerfクライアント側。
iPerf -c <server_instance_private_ip_address> -P 2
ノート:このチュートリアルで実行するすべてのテストでは、次の最終コマンドを使用します。
-
-
テスト用のiPerf finalコマンド:
ノート:
- 帯域幅の設定(
-b
)。 - パラレル・テスト(
-P
)。
100Gbpsを使用した100GB接続のスループットをテストするには、11のパラレル・ストリームを使用してスループットを9Gbpsに設定します。
-
iPerfサーバー側。
iPerf -s
-
iPerfクライアント側。
iPerf -c <server_instance_private_ip_address> -b 9G -P 11
- 帯域幅の設定(
タスク7: 同じサブネット内の同じVCN内のiPerfテストの実行
このタスクでは、同じVCNおよび同じサブネット内でiPerf2スループット・テストを実行します。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク7.1: instance-A1からinstance-A2
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.1.50 |
iPerfクライアントのIP | 172.16.1.93 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.1.50 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.05Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク7.2: instance-A2からinstance-A1へ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.1.93 |
iPerfクライアントのIP | 172.16.1.50 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.1.93 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.05Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク8: 異なるサブネット間での同じVCN内のiPerfテストの実行
このタスクでは、同じVCN内で2つの異なるサブネット内でiPerf3スループット・テストを実行します。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク8.1: pfSenseファイアウォールからハブへのステップ・ストーン
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.0.252 |
iPerfクライアントのIP | 172.16.0.20 |
サーバー上のiPerfコマンド | iPerf3 -s |
クライアントのiPerfコマンド | iPerf3 -c 172.16.0.252 |
テスト済み帯域幅(SUM) | 958Mバイト/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク8.2: ハブ・ステップ・ストーンからpfSenseファイアウォール
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.0.20 |
iPerfクライアントのIP | 172.16.0.252 |
サーバー上のiPerfコマンド | iPerf3 -s |
クライアントのiPerfコマンド | iPerf3 -c 172.16.0.20 |
テスト済み帯域幅(SUM) | 1.01Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク9: 2つの異なるVCN間のiPerfテストの実行
このタスクでは、2つの異なるSCNと2つの異なるサブネットの間でiPerf2スループット・テストを実行します。テストはハブVCNにあるファイアウォールを通過することに注意してください。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク9.1: インスタンス-A1からインスタンス-Bへ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.2.88 |
iPerfクライアントのIP | 172.16.1.93 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.2.88 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.02Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク9.2: インスタンス-Bからインスタンス-A1
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.1.93 |
iPerfクライアントのIP | 172.16.2.99 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.1.93 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.02Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク10: pfSenseファイアウォールをバイパスする異なるVCN間のiPerfテストの実行
このタスクでは、2つの異なるSCNと2つの異なるサブネットの間でiPerf2スループット・テストを実行します。テストでは、ハブVCNにあるファイアウォールがバイパスされます。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク10.1: インスタンス-Cからインスタンス-Dへ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.4.14 |
iPerfクライアントのIP | 172.16.3.63 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.4.14 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.04Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク10.2: インスタンス-Dからインスタンス-Cへ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.3.63 |
iPerfクライアントのIP | 172.16.4.14 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.3.63 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.05Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク11: オンプレミスおよびOCI Hub VCN間のiPerfテストの実行
このタスクでは、サイト間IPSec VPNトンネルを使用して、オンプレミスとOCIの間でiPerf2スループット・テストを実行します。テストはハブVCNにあるファイアウォールを通過することに注意してください。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
ノート:
VPN IPSecトンネルおよびpfSenseファイアウォールMaximum Transmission Unit (MTU)とMaximum Segment Size (MSS)を使用して(iPerfの有無にかかわらず)スループット・テストを実行する場合、これが間違っていると、スループット結果が無効になり、予想どおりになりません。
iPerfを使用すると、パケットストリームを微調整して、パケットが特定のMSSで送信されるようにできます。ソースまたは宛先の間のパスにあるデバイスのMSS設定を変更できない場合は、これを使用できます。
最大セグメントサイズクランプ
このチュートリアルでは、オンプレミス側のMTUが9000で、MSS値が1500 + IPSecオーバーヘッドのパケットが送信されました。
pfSenseインタフェースMTUは1500 ...で、断片化の問題が発生しています。
インタフェースMSSを1300に設定すると、オンザフライのサイズが変更され、この手法は最大セグメント・サイズ・クランプと呼ばれます。
pfSenseでのMSSの変更
タスク11.1: VPNクライアント・インスタンス(オンプレミス)からハブへのステップ・ストーン
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.0.252 |
iPerfクライアントのIP | 10.222.10.19 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.0.252 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 581 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク11.2: Hubステップ・ストーンからVPNクライアント・インスタンス(オンプレミス)へ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 10.222.10.19 |
iPerfクライアントのIP | 172.16.0.252 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 10.222.10.19 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 732 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク12: オンプレミスとOCIスポークVCN間のiPerfテストの実行
このタスクでは、サイト間IPSec VPNトンネルを使用して、オンプレミスとOCIの間でiPerf2スループット・テストを実行します。テストはハブVCNにあるファイアウォールを通過することに注意してください。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク12.1: VPNクライアント・インスタンス(オンプレミス)からインスタンス-A1
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.1.93 |
iPerfクライアントのIP | 10.222.10.19 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.1.93 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 501 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
iPerfコマンドでMSSを使用した新しいテスト:
ノート: iPerfを使用すると、パケットが特定のMSSで送信されるようにパケット・ストリームを微調整できます。ソースまたは宛先の間のパスにあるデバイスのMSS設定を変更できない場合は、次のコマンドを使用できます。
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.1.93 |
iPerfクライアントのIP | 10.222.10.19 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.1.93 -b 9G -P 5 -M 1200 |
テスト済み帯域幅(SUM) | 580 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク12.2: インスタンス-A1からVPNクライアント・インスタンス(オンプレミス)へ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 10.222.10.19 |
iPerfクライアントのIP | 172.16.1.93 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 10.222.10.19 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 620 Mbits/秒 |
次のスクリーンショットでは、iPerfテストの完全なテスト出力も確認できます。
iPerfコマンドでMSSを使用した新しいテスト:
ノート: iPerfを使用すると、パケットが特定のMSSで送信されるようにパケット・ストリームを微調整できます。ソースまたは宛先の間のパスにあるデバイスのMSS設定を変更できない場合は、次のコマンドを使用できます。
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 10.222.10.19 |
iPerfクライアントのIP | 172.16.1.93 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 10.222.10.19 -b 9G -P 5 -M 1200 |
テスト済み帯域幅(SUM) | 805 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク13: pfSenseファイアウォールをバイパスするオンプレミスおよびOCIスポークVCN間のiPerfテストの実行
このタスクでは、サイト間IPSec VPNトンネルを使用して、オンプレミスとOCIの間でiPerf2スループット・テストを実行します。テストでは、ハブVCNにあるファイアウォールがバイパスされます。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク13.1: VPNクライアント・インスタンス(オンプレミス)からInstance-Dへ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 172.16.4.14 |
iPerfクライアントのIP | 10.222.10.19 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 172.16.4.14 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 580 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク13.2: インスタンスDからVPNクライアント・インスタンス(オンプレミス)へ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 10.222.10.19 |
iPerfクライアントのIP | 172.16.4.14 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 10.222.10.19 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 891 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク14: インターネットとOCI Hub VCN間のiPerfテストの実行
このタスクでは、インターネット上のクライアントとインターネットを使用するOCIの間でiPerf2スループット・テストを実行します。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク14.1: インターネットからハブへのステップ・ストーン
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | xxx.xxx.xxx.178 |
iPerfクライアントのIP | xxx.xxx.xxx.152 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c xxx.xxx.xxx.178 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 251 Mbits/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク15: オンプレミスの同じサブネット内のiPerfテストの事前形成
このタスクでは、2つのオンプレミス・インスタンス間でiPerf2スループット・テストを実行します。次の図は、スループット・テストを実行する2つのエンドポイント間の矢印を含むパスを示しています。
タスク15.1: VPNクライアント・インスタンス(オンプレミス)からStrongSwan CPEインスタンス(オンプレミス)へ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 10.222.10.70 |
iPerfクライアントのIP | 10.222.10.19 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 10.222.10.70 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.05Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
タスク15.2: StrongSwan CPEインスタンス(オンプレミス)からVPNクライアント・インスタンス(オンプレミス)へ
次の表に、クライアントとサーバーのIPアドレス(このテストで使用)と、テスト結果を使用したiPerfテストの実行に使用されるコマンドを示します。
iPerfサーバーのIP | 10.222.10.19 |
iPerfクライアントのIP | 10.222.10.70 |
サーバー上のiPerfコマンド | iPerf -s |
クライアントのiPerfコマンド | iPerf -c 10.222.10.19 -b 9G -P 5 |
テスト済み帯域幅(SUM) | 1.05Gビット/秒 |
次の図は、iPerfテストのコマンドおよび完全なテスト出力を示しています。
結果
このチュートリアルでは、iPerf2およびiPerf3を使用して様々なタイプのスループット・テストを実行しました。テストは、フル・ネットワーク・アーキテクチャ内の様々なソースおよび宛先で異なるパスで実行されました。
次の表に、収集したテスト結果のサマリーを示します。
テスト・タイプ | 帯域幅の結果 | |
---|---|---|
タスク7.1:同じサブネット内の同じVCN内のiPerfテストの実行(インスタンスからA1、インスタンスからA2) | 1.05Gビット/秒 | OCI内部 |
タスク7.2:同じサブネット内の同じVCN内のiPerfテストの実行(インスタンスからA2、インスタンスからA1) | 1.05Gビット/秒 | OCI内部 |
タスク8.1:異なるサブネット間で同じVCN内でiPerfテストを実行します(pfSenseファイアウォールからハブ・ステップストンへ) | 958Mバイト/秒 | OCI内部 |
タスク8.2:異なるサブネット間で同じVCN内でiPerfテストを実行します(ハブ・ステップストンからpfSenseファイアウォールまで) | 1.01Gビット/秒 | OCI内部 |
タスク9.1:異なるVCN間でのiPerfテストの実行(Instance-A1からInstance-Bへ) | 1.02Gビット/秒 | OCI内部 |
タスク9.2:異なるVCN間でのiPerfテストの実行(インスタンスBからインスタンスA1) | 1.02Gビット/秒 | OCI内部 |
タスク10.1:異なるVCN間(pfSenseファイアウォールをバイパス)でiPerfテストを実行します(Instance-CからInstance-Dへ) | 1.04Gビット/秒 | OCI内部 |
タスク10.2:異なるVCN (pfSenseファイアウォールをバイパス)間のiPerfテストの実行(Instance-DからInstance-Cへ) | 1.05Gビット/秒 | OCI内部 |
タスク11.1:オンプレミスとOCI Hub VCN間のiPerfテストの実行(VPNクライアント・インスタンス(オンプレミス)からハブ・ステップストーンまで) | 581 Mbits/秒 | ファイアウォールによるオンプレミスからOCI |
タスク11.2:オンプレミスとOCI Hub VCN間のiPerfテストの実行(ハブ・ステップストンからVPNクライアント・インスタンス(オンプレミス)) | 732 Mbits/秒 | ファイアウォールによるオンプレミスからOCI |
タスク12.1:オンプレミスとOCI Spoke VCN間のiPerfテストの実行(VPNクライアント・インスタンス(オンプレミス)からInstance-A1へ) | 501Mbits/sec | ファイアウォールによるオンプレミスからOCI |
タスク12.2:オンプレミスとOCI Spoke VCN間のiPerfテストの実行(インスタンスからA1、VPNクライアント・インスタンス(オンプレミス)) | 620 Mbits/秒 | ファイアウォールによるオンプレミスからOCI |
タスク13.1:オンプレミスとOCI Spoke VCN間のiPerfテストの実行(pfSenseファイアウォールのバイパス) (VPNクライアント・インスタンス(オンプレミス)からInstance-Dへ) | 580 Mbits/秒 | オンプレミスからOCIへのファイアウォール・バイパス |
タスク13.2:オンプレミスとOCI Spoke VCN間のiPerfテストの実行(pfSenseファイアウォールのバイパス) (Instance-DからVPNクライアント・インスタンス(オンプレミス)) | 891 Mbits/秒 | オンプレミスからOCIへのファイアウォール・バイパス |
タスク14: INTERNETとOCI Hub VCN間のiPerfテストの実行(インターネットからハブ・ステップストンへ) | 251 Mbits/秒 | インターネットからOCI |
タスク15.1:オンプレミスの同じサブネット(VPNクライアント・インスタンス(オンプレミス)からStrongSwan CPEインスタンス(オンプレミス))内のiPerfテストの実行 | 1.05Gビット/秒 | オンプレミスからオンプレミス |
タスク15.2:オンプレミスの同じサブネット内でiPerfテストを実行します(StrongSwan CPEインスタンス(オンプレミス)からVPNクライアント・インスタンス(オンプレミス))。 | 1.05Gビット/秒 | オンプレミスからオンプレミス |
承認
- 作成者 - Iwan Hoogendoorn (OCIネットワーク・スペシャリスト)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Use iPerf to Test the Throughput inside an OCI Hub and Spoke VCN Routing Architecture
G17036-01
October 2024