我想在本機系統上模擬 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
。
好機會我的朋友!