すべてのプロダクト
Search
ドキュメントセンター

:Linux ECSインスタンスからパブリックIPアドレスにアクセスしたときに「ネットワークに到達できません」というエラーメッセージが表示された場合はどうすればよいですか。

最終更新日:Jan 23, 2025

このトピックでは、Linux Elastic Compute Service (ECS) インスタンスからパブリックIPアドレスにアクセスするときに「ネットワークに到達できません」というエラーメッセージが表示される問題をトラブルシューティングする方法について説明します。

問題の説明

Linux ECSインスタンスからパブリックIPアドレスにアクセスすると、[ネットワークに到達できません] というエラーメッセージが表示されます。

原因

インスタンスのデフォルトルートがなく、パケットの宛先IPアドレスが見つかりません。 これにより、インターネットアクセスが失敗します。

解決策

仮想プライベートクラウド (VPC) のECSインスタンスの場合、動的ホスト設定プロトコル (DHCP) を使用して動的IPアドレスとデフォルトルート設定を取得することを推奨します。 これにより、不適切な静的IP設定によるデフォルトルートの欠落によって引き起こされるほとんどのネットワーク問題が防止されます。

静的IPアドレスを動的IPアドレスに変更する方法については、「LinuxインスタンスのローカルネットワークインターフェイスコントローラーのDHCP設定チェックと修復」をご参照ください。

手順1: デフォルトゲートウェイのIPアドレスの取得

インスタンスがインスタンスのIPアドレス以外のIPアドレスにアクセスできない場合は、インスタンスと同じvSwitchに接続されている他のインスタンスからデフォルトゲートウェイのIPアドレスを取得します。 次の操作を実行します。

  1. 問題のあるインスタンスと同じvSwitchに接続されている正常なインスタンスにログインします。

  2. 次のコマンドを実行して、vSwitchに接続されているネットワークインターフェイスコントローラー (NIC) を表示し、MACアドレスを記録します。

    ip addr

    次のようなコマンド出力が表示されます。 eth0という名前のプライマリNICは、問題のあるインスタンスと同じvSwitchに接続されており、NICのMACアドレスは00:16:52:07:**:** です。

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdiscノキュー状態UNKNOWNグループデフォルトqlen 1000
        リンク /ループバック00:00:**:**:**:**:**brd 00:00:**:**:**
        inet 127.0.0.1/8スコープホストlo
           valid_lft forever preferred_lft forever
        inet6 ::1/128スコープホスト 
           valid_lft永遠にpreferred_lft永遠に
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq状態UPグループデフォルトqlen 1000
        link/ether 00:16:52:07:**:** brd ff:ff:ff:ff:ff:ff
        inet 172.16。* 。***/24 brd 172.16.2.255スコープグローバルeth0
           valid_lft 311974909sec preferred_lft 311974909sec
        inet6 fe80::216:52ff:fe07:1306/64スコープリンク 
           valid_lft永遠にpreferred_lft永遠に 
  3. 次のコマンドを実行して、インスタンスメタデータサーバーからデフォルトゲートウェイIPアドレスを取得します。

    説明

    問題のあるインスタンスがインスタンスメタデータサーバーの100.100.100.200 IPアドレスをpingできる場合は、問題のあるインスタンスで次のコマンドを実行して、eth0という名前のプライマリNICをデフォルトの出力として選択できます。 ビジネス要件に基づいて別のNICを選択できます。

    curl http:// 100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_Address]/gateway
    説明

    [$MAC_Address] パラメーターを、前の手順で取得したMACアドレスに置き換えます。

手順2: デフォルトルートの設定

デフォルトルートを一時的に設定する場合、NICの設定を変更したり、ネットワークサービスを再起動したりする必要はありません。 ただし、システムがシャットダウンまたは再起動されると、デフォルトのルート設定は無効になります。

一時的なデフォルトルートの設定

  1. 次のコマンドを実行して、ルーティングテーブルにデフォルトルートを追加します。

    ip route add default via [$Gateway_IP] dev [$Network]
    説明
    • [$Gateway_IP] パラメーターを、手順1で取得したデフォルトのゲートウェイIPアドレスに置き換えます。

    • [$Network] パラメーターを、問題のあるインスタンスと同じvSwitchに接続されている他のインスタンスで照会したデフォルトゲートウェイIPアドレスを持つNICに置き換えます。

  2. 次のコマンドを実行して、ルーティングテーブルを照会します。 デフォルトルートがルーティングテーブルに追加されているかどうかを確認します。

    ipルート

    次のようなコマンド出力が表示されます。

    172.16.2.253 dev eth0経由の
    デフォルト
    172.16.2.253 dev eth0経由10.64.0.0/10
    169.254.0.0/16 dev eth0スコープリンクメトリック1002
    172.16.2.0/24 dev eth0 protoカーネルスコープリンクsrc 172.16.2.248 
    説明

    上記のコマンド出力では、デフォルトゲートウェイは172.16.2.253に設定され、デフォルト出口NICはプライマリNICであるeth0に設定されます。

一貫したデフォルトルートの設定

整合性のあるデフォルトルートを設定する場合は、NICの設定ファイルを変更する必要があります。 構成ファイルの変更をすぐに有効にするには、ネットワークサービスを再起動する必要があります。これにより、ネットワークが中断する可能性があります。 次の例では、CentOS 7.9が使用されます。 他のLinuxディストリビューションについては、対応するシステムドキュメントとネットワーク構成ドキュメントを参照してください。

  1. デフォルトの出力として機能するNICの /etc/sysconfig/network-scripts/ifcfg-eth0構成ファイルを開きます。 前の手順で記録したゲートウェイ情報を設定ファイルに入力し、ファイルを保存して閉じます。 たとえば、eth0という名前のプライマリNICがデフォルトの出力として使用され、ゲートウェイIPアドレスが172.16.2.253されます。

    デバイス=eth0
    TYPE=イーサネット
    BOOTPROTO=static
    ONBOOT=はい
    STARTMODE=auto
    IPADDR=172.16.2.248
    NETMASK=255.255.255.0
    ゲートウェイ=172.16.2.253 
  2. 次のコマンドを実行して、ネットワークサービスを再起動します。

    systemctl再起動ネットワーク