7.2.5. フラットプロバイダーネットワークのパケットフローが機能する仕組み
本項では、フラットプロバイダーネットワークが設定された状況で、インスタンスに対するトラフィックがどのように送付されるかについて詳しく説明します。
フラットプロバイダーネットワークでの送信トラフィックのフロー
以下の図で、インスタンスから送信され直接外部ネットワークに到達するトラフィックのパケットフローについて説明します。br-ex
外部ブリッジを設定した後に、物理インターフェースをブリッジに追加してインスタンスをコンピュートノードに作成すると、得られるインターフェースとブリッジの構成は、以下の図のようになります (iptables_hybrid
ファイアウォールドライバーを使用する場合)。
1. パケットはインスタンスの eth0
インターフェースから送信され、linux ブリッジ qbr-xx
に到達します。
2. ブリッジ qbr-xx
は、veth ペア qvb-xx <-> qvo-xxx
を使用して br-int
に接続されます。これは、セキュリティーグループによって定義されている受信/送信のファイアウォールルールの適用にブリッジが使用されるためです。
3. インターフェース qvb-xx
は qbr-xx
linux ブリッジに、qvo-xx
は br-int
Open vSwitch (OVS) ブリッジに接続されています。
`qbr-xx`Linux ブリッジの設定例:
brctl show
# brctl show
qbr269d4d73-e7 8000.061943266ebb no qvb269d4d73-e7
tap269d4d73-e7
br-int
上の qvo-xx
の設定:
ポート qvo-xx
は、フラットなプロバイダーネットワークに関連付けられた内部 VLAN タグでタグ付けされます。この例では VLAN タグは 5
です。パケットが qvo-xx
に到達する際に、VLAN タグがパケットのヘッダーに追加されます。
次にこのパケットは、パッチピア int-br-ex <-> phy-br-ex
を使用して br-ex
OVS ブリッジに移動します。
br-int
でのパッチピアの設定例を以下に示します。
br-ex
でのパッチピアの設定例
このパケットが br-ex
の phy-br-ex
に到達すると、br-ex
内の OVS フローにより VLAN タグ (5) が取り除かれ、物理インターフェースに転送されます。
以下の出力例では、phy-br-ex
のポート番号は 2
となっています。
以下の出力例では、VLAN タグが 5
(dl_vlan=5
) の phy-br-ex
(in_port=2
) に到達するパケットを示しています。また、br-ex の OVS フローにより VLAN タグが取り除かれ、パケットが物理インターフェースに転送されます。
ovs-ofctl dump-flows br-ex
# ovs-ofctl dump-flows br-ex
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=4703.491s, table=0, n_packets=3620, n_bytes=333744, idle_age=0, priority=1 actions=NORMAL
cookie=0x0, duration=3890.038s, table=0, n_packets=13, n_bytes=1714, idle_age=3764, priority=4,in_port=2,dl_vlan=5 actions=strip_vlan,NORMAL
cookie=0x0, duration=4702.644s, table=0, n_packets=10650, n_bytes=447632, idle_age=0, priority=2,in_port=2 actions=drop
物理インターフェースが別の VLAN タグ付けされたインターフェースの場合、その物理インターフェースはパケットにタグを追加します。
フラットプロバイダーネットワークでの受信トラフィックのフロー
本項では、外部ネットワークからの受信トラフィックがインスタンスのインターフェースに到達するまでのフローについて説明します。
1. 受信トラフィックは、物理ノードの eth1
に到達します。
2. パケットは br-ex
ブリッジに移動します。
3. このパケットは、パッチピア phy-br-ex <--> int-br-ex
を通じて br-int
に移動します。
以下の例では、int-br-ex
はポート番号 15
を使用します。15(int-br-ex)
が含まれるエントリーに注目してください。
br-int のトラフィックフローの確認
1. パケットが int-br-ex
に到達すると、br-int
ブリッジ内の OVS フロールールにより、内部 VLAN タグ 5
を追加するようにパケットが変更されます。actions=mod_vlan_vid:5
のエントリーを参照してください。
2. 2 番目のルールは、VLAN タグのない (vlan_tci=0x0000) int-br-ex (in_port=15) に到達するパケットを管理します。このルールにより、パケットに VLAN タグ 5 が追加され (actions=mod_vlan_vid:5,NORMAL
)、qvoxxx
に転送されます。
3. qvoxxx
は、VLAN タグを削除した後に、パケットを受け入れて qvbxx
に転送します。
4. 最終的にパケットはインスタンスに到達します。
VLAN tag 5 は、フラットプロバイダーネットワークを使用するテスト用コンピュートノードで使用したサンプルの VLAN です。この値は neutron-openvswitch-agent
により自動的に割り当てられました。この値は、お使いのフラットプロバイダーネットワークの値とは異なる可能性があり、2 つの異なるコンピュートノード上にある同じネットワークにおいても異なる可能性があります。