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

ApsaraDB RDS:ApsaraDB RDSインスタンスに接続できず、インスタンスの内部エンドポイントへのping時に「Destination Host Unreachable」というエラーメッセージが表示された場合はどうすればよいですか。

最終更新日:Jan 23, 2024

ApsaraDB RDSインスタンスに接続できず、インスタンスの内部エンドポイントにpingを送信すると、「Destination Host Unreachable」というエラーメッセージが表示されます。

問題の説明

RDSインスタンスの内部エンドポイントをElastic Compute Service (ECS) インスタンスからpingできず、「Destination Host Unreachable」というエラーメッセージが表示されます。

PIN G rm-bpxxxx.mysql.rds.aliyuncs.com (172.17.0.31) 56(84) バイトのデータ。
xxxx (172.17.0.1) からicmp_seq=1宛先ホストに到達できません
xxxx (172.17.0.1) からicmp_seq=2宛先ホストに到達できません
xxxx (172.17.0.1) からicmp_seq=3宛先ホストに到達できません 

原因

RDSインスタンスの内部CIDRブロックが、別のサービスのCIDRブロックと競合していること。

問題分析

  1. RDSインスタンスの内部エンドポイントにPingを実行して、インスタンスのプライベートIPアドレスを取得します。 この例では、インスタンスのプライベートIPアドレスは172.17.0.31です。

  2. route-nコマンドを実行して、Linuxシステムのルートを表示します。 例としてLinuxシステムが使用されています。 次の情報が返されます。

    カーネルIPルーティングテーブル
    宛先ゲートウェイGenmaskフラグメトリックRef使用Iface
    0.0.0.0 172.17.2.253 0.0.0.0 UG 0 0 0 eth0
    169.254.0.0 0.0.0.0 255.255.0.0 1002 0 eth0
    172.17.0.0 0.0.0.0 255.255.255.0 U 0 0 br-350b446c181a 

    コマンド出力は、br-350b446c181a NICのCIDRブロックが172.17.0.0/24であり、RDSインスタンスのプライベートIPアドレスと競合していることを示しています。 その結果、ECSインスタンスからのトラフィックはRDSインスタンスにルーティングできません。

    ほとんどの場合、コンテナサービスのCIDRブロックがRDSインスタンスのCIDRブロックと競合することが原因です。 次のセクションでは、コンテナサービスのルート競合を解決する方法について説明します。

ソリューション

解決策1: コンテナサービスのデフォルトのCIDRブロックを変更する

重要
  • Dockerサービスを停止するか、DockerサービスのデフォルトCIDRブロックを変更すると、サービスが中断されます。 オフピーク時に操作を実行することを推奨します。

  • DockerサービスのデフォルトのCIDRブロックを変更するときは、接続の問題を防ぐために、新しいCIDRブロックが既存のコンテナーおよびアプリケーションのネットワーク設定と互換性があることを確認してください。

この例では、Linuxが使用されます。

  1. Dockerサービスを停止します。

    sudo systemctl停止ドッカー
  2. Dockerサービスの設定ファイルを変更します。 ほとんどの場合、設定ファイルは /etc/docker/daemon.jsonまたは /etc/docker/daemon.confに保存されます。 ファイル名は異なる場合があります。

    sudo vim /etc/docker/daemon.json

    次のコードスニペットを使用します。

    {
        "bip": "新しいCIDRブロック"
    } 

    この例では、CIDRブロック192.168.0.0/16が使用されます。

  3. 設定ファイルを保存して閉じます。

  4. 変更を有効にするためにDockerサービスを起動します。

    sudo systemctl start docker

解決策2: RDSインスタンスのvSwitchの変更

RDSインスタンスのvSwitchを変更して、vSwitchのCIDRブロックがコンテナサービスのCIDRブロックと競合しないようにすることができます。

重要

デフォルトでは、異なる仮想プライベートクラウド (VPC) は、内部ネットワークを介して相互に通信することはできません。 RDSインスタンスのVPCは変更しないことを推奨します。 これにより、RDSインスタンスと他のAlibaba Cloudサービス間の内部ネットワークベースの接続は影響を受けません。