第6章 プロバイダーネットワークのトラブルシューティング
仮想ルーターとスイッチのデプロイメントは、ソフトウェア定義ネットワーク (SDN) としても知られており、(デプロイメントが) 複雑化しているように感じられる場合があります。しかし、OpenStack Networking のネットワークの接続性をトラブルシューティングする診断プロセスは、物理ネットワークの診断プロセスとよく似ています。VLAN を使用する場合は、仮想インフラストラクチャーは、全く別の環境ではなく、物理ネットワークのトランク接続による広帯域化と考えることができます。
6.1. 基本的な ping 送信テスト
ping
コマンドは、ネットワーク接続の問題解析に役立つツールです。ping コマンドで返される結果は、ネットワーク接続に関する基本的な指標として機能しますが、実際のアプリケーショントラフィックをブロックするファイアウォールなど、すべての接続性の問題を完全に除外する訳ではありません。ping コマンドは、特定の宛先にトラフィックを送信し、次に ping 送信の試行に問題がなかったかどうかを報告します。
ping コマンドは ICMP プロトコルを使用した操作です。ping
を使用するには、ICMP トラフィックが中間ファイアウォールを通過するのを許可する必要があります。
ping テストは、ネットワークの問題が発生しているマシンから実行すると最も有効です。そのため、マシンが完全にオフラインの場合には、VNC 管理コンソール経由でコマンドラインに接続する必要がある場合があります。
たとえば、以下に示す ping テストコマンドが成功するためには、複数のネットワークインフラストラクチャー層が検証されます。つまり、名前の解決、IP ルーティング、およびネットワークスイッチのすべてが正常に機能していなければなりません。
$ ping www.redhat.com PING e1890.b.akamaiedge.net (125.56.247.214) 56(84) bytes of data. 64 bytes from a125-56.247-214.deploy.akamaitechnologies.com (125.56.247.214): icmp_seq=1 ttl=54 time=13.4 ms 64 bytes from a125-56.247-214.deploy.akamaitechnologies.com (125.56.247.214): icmp_seq=2 ttl=54 time=13.5 ms 64 bytes from a125-56.247-214.deploy.akamaitechnologies.com (125.56.247.214): icmp_seq=3 ttl=54 time=13.4 ms ^C
ping コマンドの結果のサマリーが表示されたら、Ctrl+c で ping コマンドを終了することができます。パケットロスがゼロパーセントであれば、接続が安定し、タイムアウトが発生しなかったことを示しています。
--- e1890.b.akamaiedge.net ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 13.461/13.498/13.541/0.100 ms
ping テストの送信先によっては、テストの結果は非常に明確な場合があります。たとえば、以下の図では、VM1 において何らかの接続性の問題が発生しています。ping 送信可能な宛先を青の番号で示しています。また、成功結果または失敗結果から導かれた結論を記載しています。
1. インターネット: 一般的な最初のステップは、www.redhat.com などのインターネットロケーションに ping テストを送信することです。
- 成功: このテストは、マシンとインターネットの間にあるさまざまなネットワークポイントすべてが正常に機能していることを示します。これには、仮想/物理インフラストラクチャーが含まれます。
- 失敗: 遠隔にあるインターネットロケーションへの ping テストは、さまざまな部分で失敗する可能性があります。ネットワーク上の他のマシンがインターネットに正常に ping 送信できる場合には、インターネット接続は機能していることが分かり、問題は概ねローカルマシンの設定にあると考えられます。
2.物理ルーター: これは、外部の送信先にトラフィックを転送するために、ネットワーク管理者が指定するルーターインターフェースです。
- 成功: 物理ルーターに ping テストを行って、ローカルネットワークと基盤のスイッチが機能しているかどうかを検証することができます。このパケットは、ルーターを通過しないため、デフォルトのゲートウェイにルーティングの問題があるかどうかは分かりません。
- 失敗: これは、VM1 とデフォルトゲートウェイの間で問題があることを示しています。ルーター/スイッチがダウンしているか、不正なデフォルトゲートウェイを使用している可能性があります。正常に機能していることを確認済みの別のサーバーと、設定内容を比較してください。また、ローカルネットワーク上の別のサーバーに ping 送信を試行してみてください。
3.Neutron ルーター: これは、Red Hat OpenStack Platform が仮想マシントラフィックの転送に使用する仮想 SDN (ソフトウェア定義ネットワーク) ルーターです。
- 成功: ファイアウォールが ICMP トラフィックを許可し、ネットワークノードがオンラインの状態です。
- 失敗: インスタンスのセキュリティーグループで、ICMP トラフィックが許可されているかどうかを確認してください。また、ネットワークノードがオンラインで、必要なサービスすべてが実行中であることをチェックし、L3 エージェントのログ (/var/log/neutron/l3-agent.log) を確認してください。
4.物理スイッチ: 物理スイッチは、同じ物理ネットワーク上にあるノード間のトラフィックを管理します。
- 成功: 仮想マシンが物理スイッチへ送信したトラフィックは、仮想ネットワークインフラストラクチャーを通過する必要があります。つまり、このセグメントが正常に機能していることが分かります。
- 失敗: 必要な VLAN をトランク接続するように物理スイッチポートが設定されていることを確認してください。
5.VM2: 同じコンピュートノード上にある、同じサブネットの仮想マシンに ping 送信を試行します。
- 成功: VM1 上の NIC ドライバーと基本的な IP 設定が機能しています。
- 失敗: VM1 のネットワーク設定を検証します。問題がない場合には、VM2 のファイアウォールが単に ping トラフィックをブロックしている可能性があります。また、仮想スイッチの設定を検証し、Open vSwitch (または Linux ブリッジ) のログファイルを確認します。