OVS使用VTEPシミュレータ

この文書では、OVS-VTEP、VXLANトンネルエンドポイントシミュレータ(VXLANトンネルエンドポイント、VTEP)、オープンvSwitchを使用してデータを転送するために使用する方法について説明します。VTEPs VXLANフレーム処理は、エンティティのカプセル化を参照して、ネットワーク内にカプセル化。

請求

VTEPシミュレータは、このようなVTEP-CTLなどのツール、関連の呼び出しトリガーPythonスクリプト、ある
とOVS-vsctlを。インストールされ、(そのようovsdb-サーバーなどとOVS-vswitchd)オープンvSwitchのデーモンを有効にした場合にのみのみ有用。有効になっているこの操作を実行するには、次の手順を実行します。

  • コードOVS文書によると、/intro/install/general命令(任意のデーモンを起動していない)について説明。

  • 文書に係るOVSコード/intro/install/debian'描述的说明进行操作,然后安装(作業機場合Debianベース)openvswitch-vtep``パッケージ。これは、自動的にデーモンを起動します。

デザイン

このプロセスの最後に、次の設定トポロジを持っている必要があります。

    Architecture

    +---------------------------------------------------+
    | Host Machine                                      |
    |                                                   |
    |                                                   |
    |       +---------+ +---------+                     |
    |       |         | |         |                     |
    |       |   VM1   | |   VM2   |                     |
    |       |         | |         |                     |
    |       +----o----+ +----o----+                     |
    |            |           |                          |
    | br0 +------o-----------o--------------------o--+  |
    |            p0          p1                  br0    |
    |                                                   |
    |                                                   |
    |                              +------+   +------+  |
    +------------------------------| eth0 |---| eth1 |--+
                                   +------+   +------+
                                   10.1.1.1   10.2.2.1
                      MANAGEMENT      |          |
                    +-----------------o----+     |
                                                 |
                                 DATA/TUNNEL     |
                               +-----------------o---+

いくつかの重要なポイント。

  • 私たちは、「物理的」スイッチを作成するために、オープンvSwitchを使用します。br0

  • 私たちの「物理的」スイッチはbr0、ポートの内部名がありますbr0だけでなく、という2つの「物理的」ポートを、p0p1

  • ホストは、2つの外部インタフェースを有することができます。我々が使用するeth0、管理トラフィックを運ぶためにeth1(また、トラフィックの二つのタイプを運ぶためにインタフェースを使用することができる)、トンネルトラフィックを運びます。IPは、上の図にそれらを扱うことに注意してください。あなたは正確に同じIPアドレスを使用する必要はありません。ただ、ラベルのIPアドレスは、次の手順で使用されます知っています。

  • また、切り替えることが代わりに上記の仮想マシンイメージの2台の物理マシンを接続することができbr0、この場合は:

    • あなたのホスト上の2つの追加の物理ポートがあることを保証するために、eth2eth3

    • この記事の残りの部分では、我々はなりp0置き換えるeth2とすることp1置き換えますeth3

  1. 加えて、p0およびp1物理インタフェースに加えとして実装、また別のデバイスまたはアナログVM TAPインターフェースとしてそれらを使用することができます。

  2. 作成し、関連する仮想マシンは、このドキュメントの範囲に含まれない、参照だけのためのチャートに含まれています。

オープン

説明に続いて、ovsdbサーバの処理とOVS VTEPスキーマを単一のインスタンスを実行する方法について説明します。第2のステップは、パケットDebianのインストールの「需要」に応じた場合は、手順1〜3を省略することができます。

  1. 初期OVSとVTEPスキーマを作成します。
       $ ovsdb-tool create /etc/openvswitch/ovs.db vswitchd/vswitch.ovsschema
       $ ovsdb-tool create /etc/openvswitch/vtep.db vtep/vtep.ovsschema
  1. ovsdbサーバを起動し、それが2つのデータベースを処理させます。
       $ ovsdb-server --pidfile --detach --log-file \
           --remote punix:/var/run/openvswitch/db.sock \
           --remote=db:hardware_vtep,Global,managers \
           /etc/openvswitch/ovs.db /etc/openvswitch/vtep.db
  1. OVS-vswitchdノーマルスタート:
       $ ovs-vswitchd --log-file --detach --pidfile \
           unix:/var/run/openvswitch/db.sock
  1. OVSに「物理的」スイッチを作成し、ポートを追加します。
       $ ovs-vsctl add-br br0
       $ ovs-vsctl add-port br0 p0
       $ ovs-vsctl add-port br0 p1
  1. 構成の「物理的」スイッチVTEPデータベース:
       $ vtep-ctl add-ps br0
       $ vtep-ctl set Physical_Switch br0 tunnel_ips=10.2.2.1
  1. あなたはOVS文書に従ってVTEPシミュレータをオンにした場合。/intro/install/generalでインストールされたコンポーネントvtepは、次のコマンドの実行ディレクトリ:
       $ ./ovs-vtep --log-file=/var/log/openvswitch/ovs-vtep.log \
           --pidfile=/var/run/openvswitch/ovs-vtep.pid \
           --detach br0

openvswitch-VTEPパッケージのインストール時にインストールを実行する場合は、ディレクトリにすることができ/usr/share/openvswitch/scriptsOVS-VTEPに見つけること。

  1. NVCを指してVTEP構成データベースマネージャー:
       $ vtep-ctl set-manager tcp:<CONTROLLER IP>:6640

これは<CONTROLLER IP>あなたのコントローラのIPアドレスで、ホストのeth0ポートを介してアクセスすることができます。

アナログNVC

VTEPは、ネットワーク仮想化コントローラ(ネットワーク仮想化することにより、所望の達成
コントローラ、NVC)ドライブ。コントローラ(NVC)、例えばNSX。ない場合は、シミュレーションVTEP-CTLを使用することができます。

  1. 「論理的」スイッチを作成します:
       $ vtep-ctl add-ls ls0
  1. スイッチポートに「論理的」結合:
       $ vtep-ctl bind-ls br0 p0 0 ls0
       $ vtep-ctl set Logical_Switch ls0 tunnel_key=33
  1. トンネルによって発行された未知の宛先アドレスのトラフィック制御。

例えば、レイヤブロードキャスト、マルチキャストおよび未知のユニキャストトラフィックを処理し、パケットは「論理」スイッチ参照されるすべてのメンバーポート「物理的」スイッチに送信することができます。以下の「未知の-DST」は、これらのパケットのアドレスを示すために使用されます。
コピーのためのデータパケットは、異なるモードを持っています。デフォルトモードでは、ハイパーバイザ、サーバまたはデバイスとすることができるサービス・ノードに送信されたメッセージをコピーし、サービスノードの処理は、他のトランスポートノード(ハイパーバイザまたは他のVTEP物理スイッチ)に複製することです。このモードは、呼び出されたサービスノードの複製。

呼ばれる別のコピーモード、ソースノードの複製は、ソース・ノードは、すべての他のノードに送信パケットを送信します。ハイパーバイザーは、常にローカルの2つのモードで接続された仮想マシンのために、独自のレプリケーションを実装するための責任があります。サービスノードのコピーモードがデフォルトのモードです。サービスノードのコピーモードは、それが唯一のパケット送信ノードにデータを送信する必要があるので、基本的な要件であると考えられています。:理由は不明「不明-DST」アドレス、送信対象の指定したノードだけで、モードをコピーするように構成されたサービスノード

       $ vtep-ctl add-mcast-remote ls0 unknown-dst 10.2.2.2
  1. また、デフォルトのコピーモードによって変更があるservice_nodeためにsource_node、論理レベルスイッチに完成します。
       $ vtep-ctl set-replication-mode ls0 source_node
  1. 異なるトンネルによって送信されたパケットのユニキャスト宛先アドレスを制御します。
       $ vtep-ctl add-ucast-remote ls0 00:11:22:33:44:55 10.2.2.3

おすすめ

転載: blog.csdn.net/sinat_20184565/article/details/94408909