问题描述
Linux操作系统云服务器的安全组出方向已按照元数据获取的前提条件进行配置,但是无法通过169.254.169.254获取元数据。
根因分析
在配置了静态IP的Linux系统云服务器中执行以下命令:
# ip route| grep 169.254
如果169.254.169.254路由不存在,并且169.254.0.0/16路由存在。
图1 查看服务器路由信息
如图1所示,说明Linux操作系统云服务器配置了静态IP,重启网络服务后部分Linux操作系统服务器会将原有的169.254.169.254路由替换为169.254.0.0/16路由,后者没有指定下一跳。导致Linux操作系统云服务器无法获取元数据。
处理方法
- 添加169.254.169.254路由,指定下一跳网关和主网卡,示例:
# ip route add 169.254.169.254 via 192.168.1.1 dev eth0
其中192.168.1.1是主网卡对应子网的网关,eth0是主网卡名称。
怎样查看主网卡?
怎样查看网关地址?
- 执行以下命令,验证获取元数据的功能正常。
# curl http://169.254.169.254
图2 验证获取元数据的功能
- 执行以下命令,创建或修改/etc/sysconfig/network-scripts/route-eth0文件,固化静态路由防止重启失效。
# vi /etc/sysconfig/network-scripts/route-eth0
添加如下内容:
本例以eth0,IP为192.168.1.1为例,请根据实际情况替换对应的网卡和网关IP。
# 169.254.169.254 via 192.168.1.1
怎样查看主网卡?
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 选择“计算 > 弹性云服务器”。
- 单击弹性云服务器名称。
系统跳转至该弹性云服务器详情页面。
- 选择“基本信息”页签,查看主网卡相关信息。
图3 查看主网卡信息