さまざまな理由で、Elastic Compute Service (ECS) インスタンスへのpingに失敗する可能性があります。 このトピックでは、問題のトラブルシューティング方法について説明します。
問題の説明
オンプレミスのクライアントからECSインスタンスのパブリックIPアドレスをpingすることはできません。 例:
次の図に示すように、オンプレミスのLinuxクライアントを使用してECSインスタンスのパブリックIPアドレスにpingを送信すると、応答は返されません。
次の図に示すように、オンプレミスのWindowsクライアントを使用してECSインスタンスのパブリックIPアドレスにpingを送信すると、リクエストのタイムアウトエラーが返されます。
発生原因
ネットワーク接続が良好で、他のWebサイトにアクセスまたはpingを実行できる場合、次の表に示す原因により、ECSインスタンスのパブリックIPアドレスのpingに失敗する可能性があります。
原因 | 解決策 |
ECSインスタンスが実行中状態ではありません。 | |
ECSインスタンスのセキュリティグループには、クライアントからのアクセスを許可するルールは含まれていません。 | |
ECSインスタンスのファイアウォール設定では、クライアントからのアクセスが許可されていません。 | |
ECSインスタンスのCPU使用率または帯域幅使用率が高い。 | |
ECSインスタンスに対してブラックホールフィルタリングがトリガーされます。 | |
ECSインスタンスが侵入しました。 | |
ECSインスタンスは、中国 (香港) リージョンまたは中国以外のリージョンにデプロイされています。 | ECSインスタンスが中国 (香港) リージョンにデプロイされているか、中国以外のリージョンにデプロイされているかを確認します。 |
クライアントからECSインスタンスに到達できません。 | |
ドメイン名がInternet Content Provider (ICP) ファイルでないか、解決できません。 |
ECSインスタンスのステータスの確認
インスタンスが [実行中] 状態の場合にのみ、外部サービスを提供できます。 次の操作を実行して、ECSインスタンスのステータスを確認します。
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、[インスタンスとイメージ] > [インスタンス] を選択します。
上部のナビゲーションバーの左上隅で、インスタンスが存在するリージョンを選択します。
[インスタンス] ページでインスタンスを見つけ、インスタンスのステータスを確認します。
インスタンスが実行中状態でない場合は、インスタンスの状態に基づいて問題を解決します。 詳細は、「インスタンスのライフサイクル」をご参照ください。
インスタンスが [実行中] 状態の場合、このトピックの [ECSインスタンスのセキュリティグループルールの確認] セクションに記載されている操作に進みます。
ECSインスタンスのセキュリティグループルールの確認
デフォルトでは、ECSインスタンスのセキュリティグループには、インスタンスへのインターネット制御メッセージプロトコル (ICMP) トラフィックを許可するルールが含まれています。 ルールが削除された場合、インスタンスはpingできません。 次の操作を実行して、ECSインスタンスのセキュリティグループルールを確認します。
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[インスタンス] ページでインスタンスを見つけ、インスタンスIDをクリックします。
[インスタンスの詳細] ページで、セキュリティグループ タブをクリックします。
セキュリティグループリスト タブでセキュリティグループを見つけ、セキュリティグループIDをクリックします。
[セキュリティグループルール] ページで、ICMPトラフィックを許可するインバウンドルールが存在するかどうかを確認します。
ICMPトラフィックを許可するインバウンドルールが存在しない場合は、そのようなルールを追加します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
許可ポリシー を [許可] に、プロトコルタイプ を すべての ICMP (IPv4) に、ポート範囲 を
-1/1
に設定します。 デフォルトの 優先度 値を使用し、権限付与オブジェクト フィールドで特定のIPアドレスを指定します。ICMPトラフィックを許可するルールが存在する場合は、このトピックの [ECSインスタンスのファイアウォール設定の確認] セクションで説明されている操作に進みます。
ECSインスタンスのファイアウォール設定の確認
インスタンスのオペレーティングシステムに基づいて、ECSインスタンスのファイアウォール設定を確認します。
Linux ECSインスタンスのカーネルパラメーターとファイアウォール設定を確認する
Linux ECSインスタンスにpingを実行するには、icmp_echo_ignore_all
カーネルパラメーターが0に設定され、ICMPトラフィックを許可するファイアウォール設定が必要です。
Linux ECSインスタンスのカーネルパラメーターの確認
VNC (Virtual Network Computing) を使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、
icmp_echo_ignore_all
カーネルパラメーターの値を確認します。cat /proc/sys/net/ipv4/icmp_echo_ignore_all
値0が返された場合、インスタンスですべてのICMPトラフィックが許可されます。 このトピックの [Linux ECSインスタンスのファイアウォール設定の確認] セクションで説明されている操作に進みます。
値1が返された場合、インスタンスではすべてのICMPトラフィックが拒否されます。 ステップ3に進む。
次のいずれかのコマンドを実行して
icmp_echo_ignore_all
を0に設定し、インスタンスのすべてのICMPトラフィックを許可します。次のコマンドを実行して、インスタンス上のすべてのICMPトラフィックを一時的に許可します。
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
次のコマンドを実行して、インスタンス上のすべてのICMPトラフィックを永久に許可します。
echo net.ipv4.icmp_echo_ignore_all=0 >> /etc/sysctl.conf sysctl -p
Linux ECSインスタンスのファイアウォール設定の確認
VNCを使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、インスタンスのファイアウォール設定を確認します。
iptables -L
次のコマンド出力が返されると、インスタンスでICMPトラフィックが許可されます。 このトピックの「ECSインスタンスのCPU使用率または帯域幅使用率の確認」セクションで説明されている操作に進みます。
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT icmp -- anywhere anywhere icmp echo-request Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT icmp -- anywhere anywhere icmp echo-reque
インスタンスでICMPトラフィックが拒否されている場合は、次のコマンドを実行してICMPトラフィックを許可します。
#Chain INPUT iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #Chain OUTPUT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Windows ECSインスタンスのファイアウォール設定を確認する
この例では、Windows Server 2012を実行するECSインスタンスが使用されます。 他のバージョンのWindows Serverを実行するインスタンスの操作も同様です。
VNCを使用してECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
アイコンをクリックしてサーバーマネージャーを開きます。
右上隅で、[ツール] > [セキュリティが強化されたWindows Defenderファイアウォール] を選択します。
[セキュリティが強化されたWindows Defenderファイアウォール] ページで、[インバウンドルール] および [アウトバウンドルール] セクションでICMPトラフィックが拒否されているかどうかを確認します。
次の図に示すように、ICMPトラフィックが拒否されている場合は、ICMPトラフィックを許可します。
ICMPトラフィックが許可されている場合は、このトピックの [ECSインスタンスのCPU使用率または帯域幅使用率の確認] セクションで説明されている操作に進みます。
ECSインスタンスのCPU使用率または帯域幅使用率の確認
インスタンスの外部リソース使用状況を確認します。 たとえば、インスタンスのパブリック帯域幅使用率が100% に達しているかどうかを確認します。
インスタンスが標準モードで実行されるバースト可能なインスタンスである場合、インスタンスのCPU使用率が100% に達すると、インスタンスにpingを送信できないか、pingプロセス中にパケットが失われる可能性があります。 詳細については、「概要」をご参照ください。
インスタンスのEIPまたはパブリックIPアドレスリソースが占有されている場合、インスタンスへのping要求はスロットリングのためにドロップされる可能性があります。 その結果、インスタンスにpingを実行することはできません。
ECSインスタンスのブラックホールフィルタリングがトリガーされているかどうかの確認
インスタンスのブラックホールフィルタリング通知を受け取ったかどうかを確認します。 ブラックホールフィルタリング中、インスタンスを接続またはpingすることはできません。
詳細については、「Alibaba CloudのBlackholeフィルタリングポリシー」をご参照ください。
インスタンスのsecurity Centerでセキュリティアラートが生成されているかどうかを確認する
インスタンスのセキュリティアラートがsecurity Centerで生成されているかどうかを確認します。 侵入はpingの失敗を引き起こす可能性もあります。 詳しくは、「Security Center の概要」をご参照ください。
ECSインスタンスが中国 (香港) リージョンにデプロイされているか、中国以外のリージョンにデプロイされているかを確認します
中国本土にデプロイされているECSインスタンスを使用して、中国 (香港) リージョンまたは中国以外のリージョンにデプロイされているECSインスタンスにアクセスする場合、リンクの品質はインターネットサービスプロバイダー (ISP) 回線の影響を受ける可能性があります。 後でもう一度お試しいただくことを推奨します。
ECSインスタンスがクライアントのみから到達できないかどうかを確認する
クライアントからECSインスタンスにpingできないが、他のクライアントからインスタンスにpingできる場合は、インスタンスとクライアント間の接続をテストすることを推奨します。 詳細については、「pingコマンドの実行後にパケット損失または接続障害が発生したときのネットワークパスのテスト」をご参照ください。
ドメイン名がICPファイルおよびドメイン名の解決設定であるかどうかを確認します
ECSインスタンスのパブリックIPアドレスをpingできますが、ドメイン名をpingできない場合、ドメイン名にICP登録がないか、解決できない可能性があります。
中国本土にデプロイされているサーバーのIPアドレスに解決されるドメイン名は、ドメイン名にアクセスする前に、産業情報技術省 (MIIT) にICPを提出する必要があります。 Webサイトのドメイン名にICP登録がない場合、Webサイトは外部サービスを提供できません。 Alibaba Cloudは、WebサイトがICP登録なしで外部サービスを提供していることを検出した場合、Webサイトをブロックします。
Webサイトのドメイン名にICP登録がない場合は、まずICP登録を完了してください。 詳細については、「ICPファイリングとは」をご参照ください。
Webサイトのドメイン名がICPファイルの場合、ドメイン名が解決できるかどうかを確認します。 詳細については、「DNSレコードが有効かどうかの確認」をご参照ください。.