串連RDS執行個體失敗,且ping RDS內網地址時提示Destination Host Unreachable。
問題現象
從ECS執行個體無法ping通RDS內網地址,返回Destination Host Unreachable。
PING rm-bpxxxx.mysql.rds.aliyuncs.com (172.17.0.31) 56(84) bytes of data.
From xxxx (172.17.0.1) icmp_seq=1 Destination Host Unreachable
From xxxx (172.17.0.1) icmp_seq=2 Destination Host Unreachable
From xxxx (172.17.0.1) icmp_seq=3 Destination Host Unreachable問題原因
原因通常是RDS執行個體的內網網段與其他服務的網段衝突。
分析過程
使用PING命令ping RDS內網地址,可以看到RDS內網IP。從上述例子中,可以看到RDS執行個體內網IP為
172.17.0.31。以Linux系統為例,執行
route-n命令查看路由,返回資訊類似如下。Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use 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 U 1002 0 0 eth0 172.17.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-350b446c181a返回資訊顯示網卡
br-350b446c181a的網段為172.17.0.0/24,與RDS內網IP地址衝突,導致ECS執行個體無法路由到RDS執行個體。這種情況通常是Container Service的網段與RDS網段衝突。下面以Container Service為例,介紹如何解決路由衝突問題。
解決方案
切換RDS執行個體的交換器
您可以切換RDS執行個體的交換器,使執行個體的交換器網段不與Container Service的網段衝突。具體操作,請參見切換RDS SQL Server執行個體的交換器。
重要
預設情況下,不同VPC之間無法內網互連。建議僅切換交換器,不切換VPC,這樣不會影響其他阿里雲服務與RDS執行個體的內網串連。
其他引擎交換器的切換方法,請參見: