Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

5.2.4. パケットフロー

A と B の 2 つのコンテナーがあり、コンテナー A の eth0 をベースにするピア仮想 Ethernet デバイスの名前が vethA、コンテナー B の eth0 のピア名が vethB とします。

注記

Docker サービスが使用するピアの仮想 Ethernet デバイスに慣れていない場合は、Docker の高度なネットワークに関するドキュメントを参照してください。

コンテナー A がローカルホスト上にあり、コンテナー B もローカルホスト上にあるとします。その場合には、コンテナー A からコンテナー B のパケットフローは以下のようになります。

eth0 (A の netns) → vethAbr0vethBeth0 (B の netns)

次に、コンテナー A がローカルホストに、コンテナー B がクラスターネットワーク上のリモートホストにあると想定します。その場合には、コンテナー A からコンテナー B のパケットフローは以下のようになります。

eth0 (A の netns 内) → vethAbr0vxlan0 → ネットワーク [1]vxlan0br0vethBeth0 (B の netns 内)

最後に、コンテナー A が外部ホストに接続すると、トラフィックは以下のようになります。

eth0 (A の netns) → vethAbr0tun0 → (NAT) → eth0 (物理デバイス) → インターネット

パケット配信の意思決定はほぼ、OVS ブリッジ br0 の OpenFlow ルールをもとに行われ、プラグインのネットワークアーキテクチャーを簡素化し、ルーティングを柔軟化します。ovs-multitenant プラグインの場合は、OpenFlow ルールを元にした意思決定により、強制的なネットワーク分離 が可能になります。



[1] この時点以降、デバイス名はコンテナー B のホスト上のデバイスを参照します。