問題描述
使用自定義鏡像創建VPC網絡的ECS實例后,可能出現網絡無法連通的異常情況。
問題原因
出現該問題的可能原因較多,本文以CentOS 7系統為例。
自定義鏡像的
/etc/sysconfig/network
網絡配置文件中配置了GATEWAY參數。配置該參數后,通過自定義鏡像創建的ECS實例仍然存在該參數配置,ECS實例雖然通過DHCP獲取到了IP地址,但是默認路由不正確,最終網絡不可用。自定義鏡像的
/etc/udev/rules.d/70-persistent-net.rules
文件中存在網絡規則。比如存在下面的網絡規則,則通過自定義鏡像創建的ECS實例啟動后無法獲取eth0網卡對應的IP地址。SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
自定義鏡像中的網絡配置為非DHCP獲取的方式。比如自定義鏡像中使用靜態IP地址,則創建的ECS實例仍然使用靜態IP地址,可能與已有的IP地址沖突或者不在同一個子網,導致網絡不可用。
解決方案
如果您對實例或數據有修改、變更等風險操作,務必注意實例的容災、容錯能力,確保數據安全。
如果您對實例(包括但不限于ECS、RDS)等進行配置與數據修改,建議提前創建快照或開啟RDS日志備份等功能。
如果您在阿里云平臺授權或者提交過登錄賬號、密碼等安全信息,建議您及時修改。
問題原因不同對應的解決方案不同,建議參考如下步驟,在生成自定義鏡像前先確認網絡配置情況,然后再生成自定義鏡像。
對于如下步驟中涉及的文件修改操作,請在操作前先備份配置文件或者創建快照以備份ECS實例。
遠程登錄生成自定義鏡像的ECS實例。
執行如下命令,確認配置文件中不存在GATEWAY參數。如果存在,可以通過注釋的方式禁用。
說明不同環境的GATEWAY參數可能存在差異,以現場實際情況為準。
cat /etc/sysconfig/network
系統顯示類似如下。
# Created by anaconda
檢查如下配置文件,如果其中存在網絡規則,則刪除對應網卡的規則。
/etc/udev/rules.d/70-persistent-net.rules
執行如下命令,檢查配置文件。
cat /etc/sysconfig/network-scripts/ifcfg-eth0
系統顯示類似如下,確認存在返回結果中的3個配置,并且不存在靜態IP、GATEWAY的參數配置。如果存在,可以通過注釋的方式禁用。
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
適用于
云服務器ECS