Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

セットアップ、ユーティリティ、ツール

 

前’のFigure 1は、第6章の入口セクションから見てきました。

Figure 1: 受信トラフィックフロー: 外部からのアクセス
受信トラフィックフロー: 外部からのアクセス

その前に、外部ゲートウェイルーター’の VRF ルーティングテーブルを見て、プロトコルのネクストホップ情報を使用して、クライアントからパケットを取得するノードを探していました。実際には、クラスターとノード自体から同じものを確認する必要があります。通常、Contrail クラスターには、パケットフローと転送の状態を確認するために使用できるビルトインユーティリティのグループが用意されています。本サービスの例では、フロー、nh、vif などの使用状況を確認しまし’た。この章では、これらのユーティリティについて詳しく説明し、さらに、パケットフローに関する追加情報を示すことができることを紹介します。

使用可能なユーティリティ/ツールの一部を以下に示します。

  • 任意の Linux マシンで:

    • curl (デバッグオプション付き)、HTTP クライアントツールとしての telnet

    • パケット・キャプチャ・ツールとしての tcpdump と wireshark

    • シェルスクリプトを使用してコマンドラインのタスクを自動化することができます。

  • VRouter では、以下を実行します。フロー/rt/nh/vif など

めくり

Curl ツールの実装では、シェル端末での実行時に HTTP 応答が返された直後に TCP セッションを終了させるという動作があります。これは、実際には安全でクリーンな動作ですが、テストに問題が発生する可能性があります。そのため、このラボでは実際に TCP 接続を維持して詳細を確認していました。しかし、Contrail vRouter の TCP フローエントリは TCP 接続にバインドされ、tcp セッションがフローを閉じるとクリアされます。問題は、curl が仕事を速く完了させたことです。TCP 接続を確立し、HTTP リクエストを送信し、応答を取得して、セッションを閉じます。そのプロセスは速すぎて、vRouter ユーティリティ (flow コマンドなど) を使用して何かをいつでもキャプチャすることはできません。Enter を押して curl コマンドを開始すると、コマンドは1秒または2時間以内に戻ります。

次のような回避策があります。

  • 大規模なファイル転送: 1つ目の方法は、ウェブサーバに大規模なファイルをインストールして、ファイル転送プロセスに TCP セッションが保持されるようにすることです。この’方法については、第3章の「サービス」セクションをご覧ください。

  • テルまた、telnet プロトコルを使用することもできます。URL’に対応する IP およびポートへの TCP 接続を確立し、いくつかの http コマンドとヘッダーを手動で入力して、http 要求をトリガーします。これにより、haproxy がタイムアウトになり、クライアントへの TCP 接続が切断されるまでの時間が長くなります。

ただし、haproxy がバックエンドのセッションを直ちに破棄する場合があることに注意してください。Haproxy の動作は、その実装と構成によって異なります。

インターネットホストから、入口パブリック FIP 101.101.101.1 および port 80:

TCP 接続が確立されます’(しばらくすると、もう一端が確認されます)。次に、HTTP GET コマンドと host ヘッダーを送信します。

GET / HTTP/1.1
Host: www.juniper.net

これは基本的に、HTTP GET 要求を送信してデータを取得し、ホストは要求の URL を提供します。もう1つのリターンは、要求の終わりを示しています。これにより、サーバーからすぐに応答がトリガーされます。

ここからは、アクティブな haproxy compute ノードでフローテーブルを収集して、後で分析することができます。

シェルスクリプト

3つ目の役に立つツールは、テストプロセスを自動化し、curl とフローコマンドを同時に繰り返し実行できるスクリプトです。フローテーブルを定期的に収集するための計算ノードの小さなシェルスクリプトと、インターネットホストの別のスクリプトで、curl による要求の送信を維持するために、時間の経過とともに計算ノードにフローテーブルをキャプチャする機会を得られるでしょう。

たとえば、インターネットホスト側スクリプトは以下のようになります。

さらに、次のような compute side スクリプトが表示されるかもしれません。

まず、シェルでは3秒ごとに新しいテストを開始し、2つ目は0.2 秒ごとに特定のフローエントリをキャプチャします。20個のテストを2分で完了すると、短時間で有益な情報を収集できます。

このセクション’では、スクリプトメソッドを使用して、計算ノードから必要な情報を取得します。