为我的笔记本电脑提供本地 169.254.169.254 地址的最佳方式是什么?

为我的笔记本电脑提供本地 169.254.169.254 地址的最佳方式是什么?

我想在本地系统上模拟 Amazon EC2 元数据服务进行测试。在 EC2 中,它运行在169.254.169.254.我明白这是指定的DHCP 失败时伪随机本地地址的范围,但亚马逊以他们的智慧也将其用于此目的,所以我需要做同样的事情。

我正在使用 F19 Alpha。在早期的 Fedora 中,我可以简单地在环回设备上创建一个虚拟接口,例如lo:0使用普通脚本为其分配静态地址ifcfg-。现在,失败了“错误:连接激活失败:设备不受 NetworkManager 管理或不可用”。

(我正在运行 NetworkManager,但之前我是在它下面执行此操作的。)

是否正在寻找某种方法以lo:0正确的方法继续我正在做的事情(如果是,如何?),还是有更好的方法?

答案1

要回答您的具体问题,您可以使用ip路由2像这样分配IP地址:

sudo ip addr add 169.254.169.254/16 dev lo

它只会向接口添加一个新的 IP,不需要使用:0、:1 等别名。请注意,重启后这将丢失。

并快速模拟您可以使用的元数据服务网猫像这样:

while true; do sudo nc -l 169.254.169.254 80 <<< '"region" : "eu-west-1"'; test $? != 0 && break; done

当这样询问时,这将为您提供区域:

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document

笔记:根据AWS 中此文档页面的当前版本元数据服务IP是一个链路本地地址,它指向维基百科关于它的文章。反过来该页面指向RFC3927其中写着:

为此,IPv4 前缀 169.254/16 已向 IANA 注册。

答案2

好久没用Fedora了,不过应该和CentOS还是很相似的。我在 CentOS 6 上做了这个。

复制/etc/sysconfig/network-scripts/ifcfg-lo/etc/sysconfig/network-scripts/ifcfg-lo:1

您的新配置应如下所示:

DEVICE=lo:1
IPADDR=169.254.169.254
NETMASK=255.0.0.0
ONBOOT=yes
NAME=loopback1

重新启动网络服务service network restart

好机会我的朋友!

相关内容