Oracle Cloud Infrastructureでの基本的なネットワーク問題のトラブルシューティング
はじめに
Oracle Cloud Infrastructure(OCI)では、ネットワーク接続の問題を診断するには、複数のコンポーネントにわたるトラフィックの構成とフローを可視化する必要があります。ネットワーク・ビジュアライザ、ネットワーク・パス・アナライザ、VCNフロー・ログなどのOCIネットワーク・コマンド・センター・ツールは、ネットワーク・リソースのレイアウト、ルーティングおよびフロー動作に関する深いインサイトを提供します。これらのツールにより、OCIネットワーク環境内の仮想クラウド・ネットワーク(VCNs)、サブネットおよびゲートウェイ間で、構成の誤り、欠落したルートおよび通信の障害を迅速に識別できます。
このチュートリアルでは、一般的な接続の問題に関する基本的なトラブルシューティング手法に焦点を当てます。これらのツールを効果的に使用してトラブルシューティングを簡素化し、問題を効率的に解決する方法を実証していますが、目標は、ツール自体を使用する方法だけでなく、接続性の課題にアプローチおよび分析する方法についてのより広範な理解を深めることです。
目的
-
ネットワーク・ビジュアライザ・ツールを使用して、リージョン、VCNおよびサブネット・レベルでネットワーク・レイアウトを確認します。
-
ネットワーク・パス・アナライザ・ツールを使用してトラフィック・フロー・パスを分析し、パケットがネットワークを通過する方法を理解し、障害を特定します。
-
VCNフロー・ログ・ツールを解釈して、トラフィック・フロー・レコードを検査し、接続の問題または異常な動作を検出します。
-
ネットワークの構成ミス、ルートの欠落、通信の失敗を特定してトラブルシューティングします。
前提条件
-
VCN、サブネット、ゲートウェイ、セキュリティ・リスト、ルート表などの基本的なOCIネットワーキング・コンポーネントに精通しています。
-
ネットワークリソースが構成されたOCIテナンシにアクセスできます。
-
ユーザー・アカウントでは、ネットワーク・ビジュアライザ、ネットワーク・パス・アナライザおよびVCNフロー・ログを使用するために、VCNコンポーネントを管理するためにOracle Cloud Infrastructure Identity and Access Management (OCI IAM)ポリシーも必要です。
-
今後のいくつかの例に従う場合は、テスト用のOracle Linux仮想マシン(vM)で次のコマンドを実行して、単純なApache Webサイトを構築します。
sudo dnf install httpd --assumeyes sudo systemctl enable httpd sudo systemctl start httpd sudo firewall-offline-cmd --add-service=http sudo systemctl restart firewalld sudo vi /var/www/html/index.html '<!doctype html><html><body><h1>Test Apache Website.. it's reachable!</h1></body></html>'
タスク1: ネットワーク・ビジュアライザを使用したネットワーク設定の表示
破損しているものを掘り下げる前に、一歩下がって、ネットワーク環境を明確に把握するのに役立ちます。OCIのネットワーク・ビジュアライザは、VCNトポロジをグラフィカルに表示します。問題の直接的なトラブルシューティングは行いませんが、選択した特定のコンパートメント内のネットワーク・アーキテクチャ全体の明確な統合ビューが提供されます。
このビジュアル・コンテキストは、すべてが1箇所でどのように接続されているか(VCNs、サブネット、ゲートウェイ、ルート表、セキュリティ・リスト)を示します。これにより、欠落しているルートや、Dynamic Routing Gateway (DRG)に関連付けられていないVCNなど、外観がわかりやすくなります。複雑な設定では、多くの推測を節約できます。これは必ずしも修正ではありませんが、詳細に入る前に正しい方向を指し示すことができる確かな第一歩です。
このチュートリアルでは、次の図でネットワーク・ビジュアライザがどのように機能するかを要約しています。詳細は、ネットワーク・ビジュアライザに関する項を参照してください。
例
次のアーキテクチャを例として使用します。
このサンプル・ケースでは、環境に2つの問題が発生しました。ネットワーク・ビジュアライザがそれらを識別して解決するのにどのように役立つかについて説明します。
- 問題1:
VM-1
はVM-2
にpingできません。 - 問題2:
VM-2
がインターネットに接続できません。
OCIコンソールのネットワーク・ビジュアライザを使用したネットワーク環境のクイック・ツアーを行い、アーキテクチャを反映する必要があります。
第1レベル: リージョナル・ネットワーク・トポロジ
このトポロジには、DRG、VCNs、CPEおよび様々なタイプのゲートウェイが含まれます。
-
OCIコンソールにログインします。
-
正しいリージョンにいることを確認してください。
-
左上隅のハンバーガーメニュー(≡)をクリックします。
-
「ネットワーキング」をクリックします。
-
ネットワーク・ビジュアライザをクリックします。
-
-
これは、ネットワーク・ビジュアライザにアクセスしたときに表示される最初のビューです。これについて説明していきます。
- ネットワーク・コンポーネントが存在するコンパートメントを選択します。リソースがどこにあるかわからない場合は、親コンパートメント(またはルート・コンパートメント)を選択し、「子コンパートメントを含める」を選択します。
- 所有しているVCNs (
VCN-1
およびVCN-2
)と、それぞれにIPv4アドレス・ブロックを書き留めます。 - 次のようなネットワーク・ゲートウェイに注意してください。
- 複数のアタッチメント(VCNs、RPCおよびIPSec)を持つDRG。
VCN-2
のNAT Gateway。
- リモート・ピアリング接続(RPC)が表示され、Jeddahリージョン内のVCNsを別のリージョン(Riyadh)に接続します。
- オンプレミス・ネットワークへのIPSec接続もあります。顧客のCPEデバイス(
210.20.x.x
)のパブリックIPと、VCNs (172.16.16.10/32
)とプライベートに通信するオンプレミス・ネットワーク・アドレス・ブロックを確認できます。
-
VCN-2
をクリックします。 -
次に、ルーティング・マップから始めて、VCNトポロジの詳細を確認します。
第2レベル: VCNトポロジ
このトポロジには、サブネット、VLAN、および他のリソースへのゲートウェイが含まれます。サブネットが使用するセキュリティ・ルール(セキュリティ・リストまたはNSG)に加えて。
- VCNのルーティング・マップ・ビューにあります。
VCN-2
は、1つのプライベート・サブネットで構成されます。- サブネットのルート表で、
VCN-1
宛てのトラフィックを次のホップとしてDRGに送信するルールを確認できます。
- VCNのセキュリティ・マップ・ビューに切り替えます。
- このビューでは、
VCN-2
が1つのプライベート・サブネットで構成されていることも確認できます。 - また、プライベート・サブネットにアタッチされているセキュリティ・リストおよびネットワーク・セキュリティ・グループ(NSG)も、このモードで表示されます。
- プライベート・サブネットをクリックします。
- 次に、インベントリ・マップからサブネット・トポロジの詳細を確認します。
第3レベル: サブネット・トポロジ
このトポロジは、サブネット内のOCIコンピュート・インスタンス、OCIロード・バランサ、OCIファイル・ストレージ・サービスおよびOCI Kubernetes Engine (OKE)クラスタ、およびリソースが使用するセキュリティ・ルールに関するリソース情報を示します。
- サブネットの「在庫」マップ・ビューにあります。
- このサブネット(
VM-2
)には1つのコンピュート・インスタンスのみがあり、それをクリックします。 - VMに関する情報(コンパートメント、IPなど)を確認できます。
- サブネットの「セキュリティ」マップ・ビューに切り替えます。
- このサブネット(
VM-2
)には、コンピュート・インスタンスが1つのみあります。 VM-2
が使用しているセキュリティ・リストおよびNSGが表示されます。
サマリー:
ネットワーク環境と関連するコンポーネントについて、先ほど説明した問題の根本原因は何だと思いますか?
-
問題1:
VM-1
はVM-2
にpingできません。「第1レベル: リージョナル・ネットワーク・トポロジ」で、
VCN-1
がDRGにアタッチされていないため、VM-1
とVM-2
の間で通信フローが発生するには、VCN-1
をアタッチし、トラフィック・フローを有効にするために必要なルート・ルールを追加する必要があります。VCN-1
をアタッチし、次のルート・ルール(宛先:VCN-2
、ネクスト・ホップ: DRG)を追加すると、問題が解決されます。これは、VCN-2
のルーティングがすでに正しく構成されており、両方のセキュリティ・リストでICMPタイプ8が許可されていることを前提としています。 -
問題2:
VM-2
がインターネットに接続できません。第2レベル: VCNトポロジで、
VCN-2
のプライベート・サブネットのDRGへのルートは1つのみですが、NATゲートウェイへのルートがないため、VM-2
にインターネット接続がないことに注意してください。次のルート・ルール(宛先:
0.0.0.0/0
、ネクスト・ホップ: NAT Gateway)を追加すると、問題が解決されます。エグレス・トラフィックがセキュリティ・リストですでに許可されている場合。ネットワーク・ビジュアライザは、例に示したように、構成の誤りによって発生する明らかな問題を特定するのに役立ちます。しかし、それが明確な問題を明らかにしない場合でも、その本当の価値は、あなたの環境の全体像をあなたに与えることです。この大きなピクチャの視点は、現在の設定を検証し、より複雑な問題を深く掘り下げる前に、しっかりとした出発点を提供します。
タスク2: ネットワーク構成の検証
ネットワーク環境と使用しているコンポーネントを明確に把握した後、次の重要なステップは実際の構成を検証することです。多くの接続の問題は、ルートの欠落、過度に厳密なセキュリティ・ルール、または間違ったルート表またはセキュリティ・リストに単純にリンクされたサブネットなど、単純なものになります。
ログの確認やパケット取得の実行など、より詳細なトラブルシューティングに進む前に、すべてが想定どおりに構成されていることを確認することが重要です。このステップでは、多くの場合、根本原因を早期に明らかにし、後で不要な調査を回避するのに役立ちます。
例
次のアーキテクチャを例として使用します。
まず、構成の検証において中心的な役割を果たすコア・ルーティングおよびセキュリティ・コンポーネントの概要を説明します。
-
ルーティング・ルール:
-
オンプレミス:
- RT-0: FastConnectまたはIPSec接続の場合の、オンプレミス顧客構内設備(CPE)デバイス(またはマルチクラウド)のルーティング(ベンダー: Cisco、Fortinetなどを参照)。
-
OCI VCNルート表: VCNに存在し、VCNからトラフィック(インターネット、オンプレミス・ネットワーク、ピアリングされたVCNなど)を送信するために使用されます。これらのルート表には、すでに使い慣れている従来のネットワーク・ルート・ルールと同様の動作をするルールがあります。
- RT-1-2-3:送信トラフィックをルーティングするためにサブネット・レベルに割り当てられたVCNルーティング表。
- RT-2a: DRG
VCN-2
アタッチメントに割り当てられるVCNルーティング表。これは、転送ルーティング・シナリオで必要であり、この例では、DRGからのトラフィックをファイアウォール経由でルーティングして検査を行うためにイングレス・ルート表として使用されます。 - RT-2b: NATゲートウェイにアタッチされているVCNルーティング表。この例では、検査のためにインターネットからファイアウォールに返ってくるレスポンス・トラフィックをルーティングするためにイングレス・ルート表として使用されます。
-
OCI DRGルート表: DRGに存在し、アタッチメントを介してDRGに進入するパケットをルートするために使用されます。
- RT-10-20-30: VCNアタッチメント用のDRGルーティング表。VCNからのトラフィックをルーティングします。
- RT-40-50: RPCアタッチメント用のDRGルーティング表。他のリージョンからのトラフィックをルーティングします。
- RT-60: IPSecアタッチメント用のDRG RT。オンプレミスまたはマルチクラウド・ネットワークからのトラフィックをルーティングします。
-
-
セキュリティ・ルールは次のとおりです。
-
オンプレミス:
- FW-0: FastConnectまたはIPSec接続の場合に、オンプレミスCPEデバイス(またはマルチクラウド)上のOCIとの間のトラフィック・フローを制御および制限します(ベンダー: Cisco、Fortinetなどを参照)。
-
OCI VCNセキュリティ・リスト: VCNベースのリソースの仮想ファイアウォールとして機能します。イングレス・ルールおよびエグレス・ルールは、送受信を許可するトラフィックのタイプを指定します。セキュリティーリストはサブネットレベルで構成されます。これは、サブネット内のすべてのVNICが同じセキュリティーリストのセットに従うことを意味します。
- SL-1-2-3:各サブネットのイングレス・トラフィックおよびエグレス・トラフィックを制御するためにサブネット・レベルに割り当てられるセキュリティ・リスト。
ノート: NSGは、OCIで使用可能な別のタイプの仮想ファイアウォールです。セキュリティ・リストと同様に機能しますが、リソース・レベルで適用されるため、より詳細な制御が可能です。これは、同じサブネット内の2つのリソースで異なるセキュリティ・ポスチャが必要な場合に役立ちます。ただし、このチュートリアルではNSGは使用しません。詳細は、セキュリティ・リストとネットワーク・セキュリティ・グループの比較を参照してください。
-
OCIネットワーク・ファイアウォールまたはサード・パーティ・ファイアウォール:サブネット、VCNsおよび外部ネットワーク間のトラフィックの集中化されたステートフル検査ポイントとして機能し、基本的なセキュリティ・リスト・ルールを超える高度なセキュリティ・ポリシーを適用します。
- FW-2: OCIネットワーク環境のすべての北南および東西トラフィックを制御および検査します。
-
環境全体でルーティングとセキュリティがどのように適用されるかを理解し、次の4つの問題が発生したサンプル・ケースを詳しく見ていきましょう。常識を適用することで、各トラブルシューティング・シナリオについて、どの構成をチェックし、どこで確認するかを把握します。
ノート:
- NSGを使用する場合は、すべてのVMにアタッチされている各VNICに適用されている構成を確認します。
- この例では、
VM-2
はサード・パーティのファイアウォール(FortiGate)として機能します。トラフィックを適切にルーティングするようにすでに構成されています。
-
問題1:
VM-1
はVM-3
にpingできません(異なるリージョン、ファイアウォールでトラフィックを検査しないでください)。- ルーティング:
- リクエスト: RT-1 > RT-10 > RT-40。
- レスポンス: RT-3 > RT-30 > RT-50。
- セキュリティ: ICMPタイプ8は、pingを正常に実行できる必要があります。
- リクエスト: SL-1 (エグレス・ルール) > SL-3 (イングレス・ルール)
- 応答: SL-3 (エグレス・ルール) > SL-1 (イングレス・ルール)
- ルーティング:
-
問題2:
VM-1
がインターネットに接続できません(VM-2
ファイアウォールはトラフィックを検査する必要があります)。- ルーティング:
- リクエスト: RT-1 > RT-10 > RT-2a > FW-2内部ルーティング> RT-2。
- レスポンス: RT-2b > FW-2ルーティング> RT-2 > RT-20。
- セキュリティ:
- リクエスト: SL-1 (エグレス・ルール) > SL-2 (イングレスおよびエグレス・ルール) > FW-2 (イングレスおよびエグレス・ルール)
- 応答: SL-2 (イングレスおよびエグレス・ルール) > FW-2 (イングレスおよびエグレス・ルール) > SL-1 (イングレス・ルール)
- ルーティング:
-
問題3:
VM2
がインターネットに接続できません。- ルーティング:
- リクエスト: RT-2。
- 応答:工順は必要ありません。
- セキュリティ:
- リクエスト: SL-2 (エグレス・ルール)。
- 応答: SL-2 (イングレス・ルール)。
- ルーティング:
-
問題4:オンプレミスで
VM-1
にpingを実行できません(ファイアウォールはトラフィックを検査する必要があります)。- ルーティング:
- リクエスト: RT-0(オンプレミスCPE)>RT-60>RT-2a>FW-2内部ルーティング>RT-2>RT-20。
- レスポンス: RT-1 > RT-10 > RT-2a > FW-2内部ルーティング> RT-2 > RT-20。
- セキュリティ:
- リクエスト: FW-0 (エグレス・ルール) > SL-2 (イングレスおよびエグレス・ルール) > FW-2 (イングレスおよびエグレス・ルール) > SL-1 (イングレス・ルール)
- レスポンス: SL-1 (エグレス・ルール) > SL-2 (イングレスおよびエグレス・ルール) > FW-2 (イングレスおよびエグレス・ルール) > FW-0 (イングレス・ルール)
- ルーティング:
ネットワーク全体でトラフィックを管理および制御する方法を理解することが重要です。パス・トラフィックを追跡することで、問題が発生する可能性のある場所と、トラブルシューティング時に確認する必要がある設定をすばやく識別できます。
タスク3: ネットワーク・パス・アナライザの使用
ネットワーク設定全体を確認し、ルーティングおよびセキュリティ・ルールの構成を手動でチェックしました。ただし、問題は引き続き発生し、構成の詳細が見落とされた可能性があります。次のステップは何ですか。
ここにネットワーク・パス・アナライザがあります。OCIネットワーク・ルーティングとセキュリティ構成をリアルタイムで検査するように設計された仮想ネットワーク探偵と考えてください。これらを収集および分析して、ソースと宛先の間のパスがどのように機能するか、または失敗するかを決定します。実際のトラフィックは送信されません。代わりに、構成が検査され、到達可能性を確認するために使用されます。
ネットワーク・パス・アナライザでは、個々の仮想マシンまたはデータベースからpingやtelnetなどの手動接続テストを実行するかわりに、OCIコンソール内で直接通信パスの構成を検証し、より効率的で一元化されたトラブルシューティング・アプローチを提供します。
ネットワークパスアナライザは、次のシナリオをサポートします。
- OCIからOCIへ。
- OCIからオンプレミスへ。
- オンプレミスからOCIへ。
- インターネットからOCIへ。
- OCIからインターネットへ。
例1
次のアーキテクチャを例として使用します。
ネットワークの問題が発生しました。ネットワーク・パス・アナライザを使用して、根本原因をトレースして対処します。
問題: VM-1
は、VM-2
(OCIからOCI)でホストされているWebサイトにアクセスできません。
-
OCIコンソールにログインし、
VM-2
に移動して次のコマンドを実行し、Webサイトがローカルで実行されているかどうかを確認します。curl localhost
-
OCIコンソールに移動し、
VM-1
に移動し、同じコマンドを実行してVM-2
への接続をテストします。curl 192.168.0.20
リクエストが失敗していることがわかります。次の手順では、ネットワーク・パス・アナライザを使用して原因を調査します。
-
OCIコンソールに移動します。
- 正しいリージョンにいることを確認してください。
- 左上隅のハンバーガーメニュー(≡)をクリックします。
- 「ネットワーキング」をクリックします。
- 「ネットワーク・パス・アナレータ」をクリックします。
-
「パス解析の作成」をクリックします。
-
次に、テストするネットワーク・フローの詳細を構成します。
- 「名前」に
test-vm1-to-vm2-port80
と入力します。 - 「プロトコル」に「TCP」を選択します。
- 「名前」に
-
まず、ソース情報(この場合は
VM-1
)を入力します。- 「OCIリソースの検索」を選択します。
- 「ソース・タイプ」に「コンピュート・インスタンス(VNIC)」を選択します。
- リストから
VM-1
を選択します。 - トラフィックを生成するVNICを選択します(VMに1つのVNICしかない場合、これはすでに自動入力されています)。
- 「ソースIPv4アドレス」
10.0.0.10
を選択します(IPv4アドレスが1つのみの場合は、これも自動入力されます)。
- 「詳細オプションの表示」をクリックします。
- ここで、必要に応じてソース・ポートを指定できます。この例では、「任意のポートを使用」に設定したままにします。
-
次に、宛先情報(この場合は
VM-2
)を入力します。- 「OCIリソースの検索」を選択します。
- 「ソース・タイプ」に「コンピュート・インスタンス(VNIC)」を選択します。
- リストから「VM-2」を選択します。
- トラフィックを生成するVNICを選択します(VMに1つのVNICしかない場合、これはすでに自動入力されています)。
- 「ソースIPv4アドレス」に
192.168.0.20
を選択します(これは、IPv4アドレスが1つのみの場合は自動入力されます)。 - 「宛先ポート」に80と入力します。
- フォワード・トラフィックとリバース・トラフィックの両方を分析するには、「方向」を「双方向」のままにします。
- 「分析の実行」をクリックします。
- 分析の実行時に接続の詳細が表示されます。
- スクロール・ダウンして分析の進行状況をトラッキングし、終了するまで待機します。これには1分か2分かかることがあります。
-
分析が完了しました。「転送パス」の結果の確認を開始します。
- 分析では、2つの正常なホップの後に
VM-2
にアクセスできないことが示されます。 - この削除は、DRGと
VM-2
の間で行われます。 - 詳細は、「ダイアグラム情報の表示」をクリックします。
- この表は、パスの各ステップのルーティング・フローとセキュリティ・チェックを示しています。
- ズーム・インすると、DRGと
VM-2
の間でトラフィックが拒否されていることがわかります。
- 詳細は、同じセグメントを展開します。
- 工順が正常に転送されることに注意してください。
- ただし、セキュリティ・ルールがないため、トラフィックが拒否されています。
- (3.a)エグレス・トラフィックが許可され、ここでは問題は発生しません。
- (3.b)イングレス・トラフィックを許可するルールがないため、イングレス・トラフィックは拒否されます。
VM-2
サブネットに関連付けられたセキュリティ・リスト(VCN-2のデフォルト・セキュリティ・リスト)が表示され、次のステップで確認するため、ノートにとります。この時点で、問題の原因を特定しました。
- 転送パスのチェックに失敗したため、戻りパスは分析されません。
- 「分析の保存」をクリックします。
- 分析はいつでも再確認して再実行できます。この問題を修正した後、このチュートリアルの後半で再度実行します。
VCN-2
(宛先VMがある場所)に移動します。- 「セキュリティ」をクリックします。
- 「
VCN-2
のデフォルト・セキュリティ・リスト」をクリックします。
ノート:セキュリティ・リストはサブネット・レベルで動作します。つまり、これらのルールで許可されるトラフィックは、そのサブネット内のすべてのVNICに適用されます。
- セキュリティ・ルールをクリックします。
- この表は、許可されているトラフィックを示しています。許可するルールがないため、HTTPを含む他のすべてのものはデフォルトで拒否されます。そのため、
VM-1
は、VM-2
でホストされているWebサイトにアクセスできません。 - これを修正するには、「イングレス・ルールの追加」をクリックします。
- 「ソースCIDR」フィールドに
10.0.0.0/16
と入力します(これはVCN-1
のCIDRです)。 - IPプロトコルとして「TCP」を選択します。
- 「80」を「宛先ポート」に設定します。
- 「イングレス・ルールの追加」をクリックします。
- 分析では、2つの正常なホップの後に
-
VM-1
にログインし、同じコマンドを実行してVM-2
への接続をテストします。curl 192.168.0.20
これで、Webサイトがアクセス可能であることがわかります。
-
分析に戻って別の実行を実行し、問題が修正されていることを確認します。
-
「分析」をクリックします
-
分析が終了するまで待機します。
-
分析が完了しました。「転送パス」の結果を確認します。
- ステータスに「到達可能」が表示されるようになりました。
- HTTPトラフィックを許可するセキュリティ・ルールを追加したため、Hop 3は成功しました。
- 「ダイアグラムの情報の表示」をクリックします。
- hop 3のセキュリティ・ステータスが「許可済」になったことがわかります(以前は「拒否済」でした)。
-
戻りパスを確認すると、成功していることもわかります。
例2
次のアーキテクチャを例として使用します。
ネットワークの問題が発生しました。ネットワーク・パス・アナライザを使用して、根本原因をトレースして対処します。
問題: VM-2
はtelnetパッケージ(OCIからインターネット)をインストールできません。
ノート: Telnetは、ネットワーク・プロトコルであり、ネットワーク経由でデバイスにリモートでアクセスおよび管理するために使用されるコマンドライン・ツールです。これは、基本的なネットワーク・テストにも使用されます(たとえば、ポートが開いているかどうかの確認)。
-
VM-2
にtelnet
をインストールできるかどうかを確認します。-
VM-2
にログインし、次のコマンドを実行してtelnet
をインストールします。sudo yum install telnet
-
y
と入力し、[Enter]を押して続行します。 -
インストールに失敗しました。
VM-2
は、リージョナルYUMリポジトリ(yum.me-jeddah-1.oci.oraclecloud.com
)に接続しようとしましたが、接続できませんでした。
-
次のコマンドを実行して、
yum
リポジトリのIPを検索します。dig yum.me-jeddah-1.oci.oraclecloud.com
-
IPアドレスを書き留めます。
VM-2
は、これらのパブリックIPにアクセスできません。これは、NATゲートウェイを介したインターネット・アクセスや、yum
リポジトリに到達するためのサービス・ゲートウェイを介したOracle Services Networkへのプライベート・アクセスがないか、送信トラフィックがブロックされていることを示します。問題の最後に到達するために、次のステップでNPA分析を進めます。
-
-
OCIコンソールに移動します。
- 正しいリージョンにいることを確認してください。
- 左上隅のハンバーガーメニュー(≡)をクリックします。
- 「ネットワーキング」をクリックします。
- 「ネットワーク・パス・アナレータ」をクリックします。
-
「パス解析の作成」をクリックします。
-
次に、テストするネットワーク・フローの詳細を構成します。
- 「名前」に
test-vm2-to-internet-port443
と入力します。 - 「プロトコル」に「TCP」を選択します。
- 「名前」に
-
まず、ソース情報(この場合は
VM-2
)を入力します。- 「OCIリソースの検索」を選択します。
- 「ソース・タイプ」に「コンピュート・インスタンス(VNIC)」を選択します。
- リストから
VM-2
を選択します。 - トラフィックを生成するVNICを選択します(VMに1つのVNICしかない場合、これはすでに自動入力されています)。
- 「ソースIPv4アドレス」に
192.168.0.20
を選択します(これは、IPv4アドレスが1つのみの場合は自動入力されます)。
- 「詳細オプションの表示」をクリックします。
- ここで、必要に応じてソース・ポートを指定できます。この例では、「任意のポートを使用」に設定したままにします。
-
次に、宛先情報を入力します。この場合、インターネット、特に
yum
リポジトリのパブリックIP (192.29.119.92
および192.29.125.93
)であり、そのうちの1つのみを使用してテストします。- 「IPアドレスの入力」を選択します。
- 宛先IPv4アドレス
192.29.119.92
を入力します。 - リポジトリへのアクセスはHTTPS経由であるため、「宛先ポート」に443と入力します。
- フォワード・トラフィックとリバース・トラフィックの両方を分析するには、「方向」を「双方向」のままにします。
- 「分析の実行」をクリックします。
- 分析の実行時に接続の詳細が表示されます。
- スクロール・ダウンして分析の進行状況をトラッキングし、終了するまで待機します。これには1分か2分かかることがあります。
-
分析が完了しました。「転送パス」の結果の確認を開始します。
- 分析では、
VM-2
がインターネットにアクセスできないことが示されています。 - このセグメントは、トラフィックが
VCN-2
を終了することを防ぐ欠落している構成を強調表示します。 - 詳細は、「ダイアグラム情報の表示」をクリックします。
- この表は、パスの各ステップのルーティング・フローとセキュリティ・チェックを示しています。間には中間ホップがないため、フローは直接です。
- ズーム・インすると、このトラフィックに「ルートなし」が定義されていることがわかります。
- 詳細は、同じセグメントを展開してください。
- インターネット経由でトラフィックを送信するように構成されたルーティングはありません。修正するために、次のタスクで確認するため、
VM-2
サブネット・ルート表(VCN-2のデフォルト・ルート表)にルールを追加する必要があります。この時点で、問題の原因を特定しました。 - セキュリティは「許可」です。
- (3.a)エグレス・トラフィックが許可され、ここでは問題は発生しません。
- (3.b)イングレス・トラフィックは、このシナリオではアウトバウンド・トラフィックのみに焦点を当てているため、関係ありません。
- 転送パスのチェックに失敗したため、戻りパスは分析されません。
- 「分析の保存」をクリックします。
- 分析はいつでも再確認して再実行できます。この問題を修正した後、このチュートリアルの後半で再度実行します。
- ソースVMがあるVCN-2に移動します。
- 「ルーティング」をクリックします。
- 「VCN-2のデフォルト・ルート表」をクリックします。
ノート:ルート表はサブネット・レベルで動作します。つまり、表で定義されているルールは、そのサブネット内のすべてのリソースに適用されます。ルートテーブルは、リソースごとのルーティングを使用して、特定のVNICまたはIPアドレスに関連付けることもできます。ただし、これはチュートリアルには関係ありません。詳細は、リソースごとのルーティングを参照してください。
- 「ルート・ルール」をクリックします。
- 現在、トラフィックを
VCN-1
にルーティングするように構成されたルート・ルールは1つのみです。 - インターネット・アクセスを有効にするには、「ルート・ルールの追加」をクリックします。
- 「ターゲット・タイプ」として「NAT Gateway」を選択します。
- 「宛先CIDRブロック」に
0.0.0.0/0
と入力します。 - 前に作成した「NAT Gateway」を選択します。
- 「ルート・ルールの追加」をクリックします。
- 分析では、
-
VM-2
にログインし、telnet
を再度インストールしてみてください。-
次のコマンドを実行します
sudo yum install telnet
-
インストールは完了です。
-
-
分析に戻って別の実行を実行し、問題が修正されていることを確認します。
-
「分析」をクリックします
-
分析が終了するまで待機します。
-
分析が完了しました。「転送パス」の結果を確認します。
- ステータスに「到達可能」が表示されるようになりました。
- NATゲートウェイにトラフィックを送信するルート・ルールを追加したため、Hop 2は成功しました。
- 「ダイアグラムの情報の表示」をクリックします。
- ホップ2のルーティング・ステータスが「転送済」になったことがわかります(以前は「ルートなし」でした)。
-
戻りパスを確認すると、成功していることもわかります。
タスク4: VCNフロー・ログの分析
VCNフロー・ログは、トラフィック動作の追加の可視性レイヤーを提供します。このサービスを使用すると、セキュリティ・リストおよびNSGルールに基づいて、各VNICにヒットした実際のトラフィックをドリルダウンして、それが受け入れられたか拒否されたかを示すことができ、セキュリティ関連の問題のトラブルシューティングに役立ちます。
トラブルシューティングの他に、VCNフロー・ログは、ネットワーク・アクティビティのモニタリング、ソース/宛先IP、ポート、プロトコルおよびタイムスタンプの取得、監査およびセキュリティ調査に必要な詳細なテレメトリの提供にも重要です。
例
次のアーキテクチャを例として使用します。
ノート:この例では、宛先があるポイントYでのロギングのみに焦点を当てます。ただし、同じステップを適用して、ポイントX (トラフィックのソース)でログを有効化および分析し、トラフィック・フロー全体をさらに可視化できます。
ネットワークの問題が発生し、VCNフロー・ログを使用して根本原因をトレースおよび対処します。
問題: VM-1
はVM-2でホストされているWebサイトにアクセスできません。
-
VM-2
にログインし、次のコマンドを実行して、Webサイトがローカルで実行されているかどうかを確認します。curl localhost
-
VM-1
にログインし、同じコマンドを実行してVM-2への接続をテストします。curl 192.168.0.20
リクエストが失敗していることがわかります。次のステップでは、
VCN-2
フロー・ログを使用して原因を調査します。 -
次に、ログを有効にします。まず、取得フィルタを作成します。これは、仮想テスト・アクセス・ポイント(VTAP)にロギングまたはミラー化するために取得するネットワーク・トラフィックを決定するためにOCIで使用される単純なルール・セットです。
- OCIコンソールにログインし、正しいリージョンにいることを確認します。
- 左上隅のハンバーガーメニュー(≡)をクリックします。
- 「ネットワーキング」をクリックします。
- 「フィルタの取得」をクリックします。
-
「取得フィルターの作成」をクリックします。
- 「名前」に
vcn-2-private-sn-logs
と入力します。 - 「フィルタ・タイプ」として「フロー・ログ取得フィルタ」を選択します。
- 「サンプリング・レート」を100%に設定します。これにより、取得するネットワーク・フローの割合が定義されます。この場合、すべてのトラフィックをログに記録します。
- その他の設定はすべてデフォルト値のままにします。
- 「取得フィルターの作成」をクリックします。
- 「名前」に
-
取得フィルタが作成されたら、次のステップで必要になるように、「コピー」をクリックしてOCIDをコピーします。
-
これで、ログを有効にする準備ができました。
VCN-2
にナビゲートします。VM-2
が存在する「プライベート・サブネット」を開きます。- 「モニタリング」をクリックします。
- 「ログ」セクションまで下にスクロールします。
- 「フロー・ログ」カテゴリの横にある3つのドット(•••)をクリックします。
- 「ログの有効化」をクリックします。
- 「ログ・グループ」を選択します。まだログ・グループがない場合は、新しいログ・グループを作成します。
- ログ名は自動的に入力されます。
- 前にコピーした取得フィルタOCIDを貼り付けます。
- 「ログの有効化」をクリックします。
-
フロー・ログが「アクティブ」になりました。
-
VM-1
で次のコマンドを実行して、同じテストを繰り返してトラフィックを生成します。curl 192.168.0.20
-
「ログ」セクションに戻り、前に作成した「ログ名」をクリックします。
- 下にスクロールすると、ネットワークに入ったり出たりするトラフィックを示すログが表示されます。
- 「処理」をクリックします。
- 「ログ検索で探索」をクリックして、拡張フィルタを適用し、ログ結果を絞り込みます。
- 次のフィルタを適用して、テスト接続に一致させます。
- ソースIP(
VM-1
):data.sourceAddress = '10.0.0.10'
。 - 宛先IP (VM-2):
data.destinationAddress = '192.168.0.20'
。 - 宛先ポート(HTTP):
data.destinationPort = 80
。
- ソースIP(
- 必要に応じて「時間によるフィルタ」で時間範囲を調整するか、デフォルトの「過去5分」のままにします。
- 「検索」をクリックします。
- 検索条件に一致する結果を確認します。
- レコードの詳細を展開します。
-
この特定のレコードについて、このトラフィック・フローに関する詳細情報を表示できます。注意すべき重要なフィールドは次のとおりです。
- タイムスタンプ:トラフィックがサブネットに到達した正確な日時。
- 接続の詳細:ソースIPアドレス、宛先IPアドレス、ポート番号など。
- 処置:トラフィックがどのように処理されたかを示します。この場合、トラフィックはREJECTでした。これにより、問題の根本原因が確認され、
VM-2
へのHTTPトラフィックを許可するセキュリティ・ルールが設定されていません。
-
HTTPトラフィックが
VM-2
に到達できるようにするには、次の2つのオプションがあります。- セキュリティーリスト:サブネットレベルで適用されます。これは、サブネットのすべてのVNICが、同じセキュリティーリストのセットに従うことを意味します。
- NSG:リソース・レベル(VNICレベル)で適用されます。
-
ここでは、
VM-2
サブネットにすでに関連付けられているデフォルトのセキュリティ・リストからこれを許可します。VCN-2
(宛先VMがある場所)に移動します。- 「セキュリティ」をクリックします。
- 「VCN-2のデフォルト・セキュリティ・リスト」をクリックします。
- セキュリティ・ルールをクリックします。
- この表は、許可されているトラフィックを示しています。許可するルールがないため、HTTPを含む他のすべてのものはデフォルトで拒否されます。そのため、
VM-1
は、VM-2
でホストされているWebサイトにアクセスできません。 - これを修正するには、「イングレス・ルールの追加」をクリックします。
- 「ソースCIDR」に
10.0.0.0/16
と入力します(これはVCN-1
のCIDRです)。 - 「IPプロトコル」として「TCP」を選択します。
- 「80」を「宛先ポート」に設定します。
- 「イングレス・ルールの追加」をクリックします。
-
VM-1
にログインし、同じコマンドを実行してVM-2
への接続をテストします。curl 192.168.0.20
これで、Webサイトがアクセス可能であることがわかります。
-
ログに戻り、前と同じステップを繰り返して新しい検索を実行します。
- 次のフィルタを適用して、テスト接続に一致させます。
- ソースIP(
VM-1
):data.sourceAddress = '10.0.0.10'
。 - 宛先IP (
VM-2
):data.destinationAddress = '192.168.0.20'
。 - 宛先ポート(HTTP):
data.destinationPort = 80
。
- ソースIP(
- 必要に応じて時間範囲を調整するか、デフォルト(過去5分)のままにします。
- 「検索」をクリックします。
- 検索条件に一致する結果を確認します。
- レコードの詳細を展開します。
- 次のフィルタを適用して、テスト接続に一致させます。
-
この特定のレコードについて、このトラフィック・フローに関する詳細情報を表示できます。注意すべき重要なフィールドは次のとおりです。
- タイムスタンプ:トラフィックがサブネットに到達した正確な日時。
- 接続の詳細:ソースIP、宛先IP、ポート番号など。
- 処置:トラフィックがどのように処理されたかを示します。問題を解決すると、トラフィックが ACCEPTであることがわかります。
次のステップ
アーキテクチャ、ルーティングおよびセキュリティ構成を調べることで、OCIの基本的なネットワークの問題をトラブルシューティングする方法を探りました。これらのコア・チェックは、最も一般的な接続の問題の解決に役立ちます。次のチュートリアルでは、高度なシナリオと実際のユースケースに焦点を当てます。
確認
- 著者 - Anas Abdallah (クラウド・ネットワーキング・スペシャリスト)、Sachin Sharma (クラウド・ネットワーキング・スペシャリスト)
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Troubleshoot Basic Network Issues in Oracle Cloud Infrastructure
G40743-01