6.3. プロジェクトネットワーク内からのトラブルシューティング
OpenStack Networking では、プロジェクトが互いに干渉を生じさせることなくネットワークを設定できるように、すべてのプロジェクトトラフィックはネットワークの名前空間に含まれます。たとえば、ネットワークの名前空間を使用することで、異なるプロジェクトが 192.168.1.1/24 の同じサブネット範囲を指定しても、テナント間で干渉は生じません。
プロジェクトネットワークのトラブルシューティングを開始するに、まず対象のネットワークがどのネットワーク名前空間に含まれているかを確認します。
openstack network list
コマンドを使用して、すべてのプロジェクトネットワークを一覧表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、web-servers ネットワークを確認します。web-servers 行の id の値 (9cb32fe0-d7fb-432c-b116-f483c6497b08) を書き留めてください。この値がネットワークの名前空間に追加されているので、次のステップで名前空間の特定が容易になります。
ip netns list
コマンドを使用して、ネットワークの名前空間をすべて一覧表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に、web-servers のネットワーク ID と一致する名前空間が表示されます。上記の例では、名前空間は qdhcp-9cb32fe0-d7fb-432c-b116-f483c6497b08 です。
名前空間内でトラブルシューティングのコマンド
ip netns exec <namespace>
を実行し、web-servers ネットワークの設定を検証します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.1. 名前空間内での高度な ICMP テストの実行 リンクのコピーリンクがクリップボードにコピーされました!
tcpdump
コマンドを使用して、ICMP トラフィックを取得します。ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b tcpdump -qnntpi any icmp
# ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b tcpdump -qnntpi any icmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 別のコマンドラインウィンドウで、外部ネットワークへの ping テストを実行します。
ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b ping www.redhat.com
# ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b ping www.redhat.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tcpdump セッションを実行中のターミナルで、ping テストの結果の詳細を確認します。
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes IP (tos 0xc0, ttl 64, id 55447, offset 0, flags [none], proto ICMP (1), length 88) 172.24.4.228 > 172.24.4.228: ICMP host 192.168.200.20 unreachable, length 68 IP (tos 0x0, ttl 64, id 22976, offset 0, flags [DF], proto UDP (17), length 60) 172.24.4.228.40278 > 192.168.200.21: [bad udp cksum 0xfa7b -> 0xe235!] UDP, length 32
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes IP (tos 0xc0, ttl 64, id 55447, offset 0, flags [none], proto ICMP (1), length 88) 172.24.4.228 > 172.24.4.228: ICMP host 192.168.200.20 unreachable, length 68 IP (tos 0x0, ttl 64, id 22976, offset 0, flags [DF], proto UDP (17), length 60) 172.24.4.228.40278 > 192.168.200.21: [bad udp cksum 0xfa7b -> 0xe235!] UDP, length 32
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
トラフィックの tcpdump 解析を実行する際には、インスタンスではなくルータインターフェース方向の応答パケットが確認される場合があります。qrouter によりリターンパケットで DNAT が実行されるので、これは想定どおりの動作です。