為 instance 配置靜態 IP - 每天5分鍾玩轉 OpenStack(157)


 

這是 OpenStack 實施經驗分享系列的第 7 篇。


傳統運維中為服務器配置靜態 IP 是再常見不過的了。但在 OpenStack 環境下只能指定 network,IP 都是 Neutron 從 subnet IP 池中自動分配的。

 

有同學就會想辦法了:等 instance 起來后手工把 IP 改掉行不行?


非常遺憾,不行!


instance 網卡的 IP 和 Mac 地址是記錄在 port 中的,計算節點的 iptable 會根據 port 信息生成相應的 rule,只有與 port 匹配的 IP 和 Mac 才能允許在 Neutron 網絡中通信。


那還有沒有辦法為 instance 配置靜態 IP 呢?


有!


方法是:

  1. 先創建 port,設置好 IP 地址。

  2. 將該 port attach 到 instance。

  3. 在 instance 中手工配置靜態 IP。

Newton 版本之前只能用命令行完成上面的操作。不過從 Newton 開始 horizon 已經支持了。我們先看命令行如何實現。


命令行操作


instance “c1” 當前還沒有任何網卡。



第一步:用 neutron port-create 命令創建 port,設置 IP。



最重要的就是 --fixed-ip 參數了,指定 IP 和 IP 所屬的 subnet。


另外還可以指定 Mac 地址(可選),這在某些場景下有用。之前有個項目客戶的商業軟件是綁定在特定 Mac 地址上的,所以必須給 instance 網卡指定 Mac。


Network 參數指定 port 所屬的網絡。


下面的命令創建了一個 vlan111 的 port,IP 為 17.17.111.33。


neutron port-create --fixed-ip subnet_id=e0e251a0-0e38-4b70-9904-6b791fcf8d33,ip_address=17.17.111.33 vlan111

 




第二步:執行 nova interface-attach 命令將 port attach 到 instance



操作系統已經能夠識別到該網卡 eth0,但 IP 還需要手工設置。



第三步:在 instance 配置靜態 IP。


編輯 /etc/network/interfaces。



重啟 eth0。



IP 生效。


並且可以 Ping 到同網段其他 IP。



如果這里我們配置的 IP 不是 port 中定義的 17.17.111.33 還能 Ping 通嗎?這個問題留給大家自己去驗證。


horizon 操作


horizon 在 Newton 版本中支持在創建 port 時設置 IP 地址,也就是說步驟一我們可以直接在 Web GUI 中完成了。


菜單 “Admin -> System -> Networks”。




點擊網絡 “vlan111”,然后點擊 “Ports” 標簽。



點擊 “Create Port” 按鈕。



設置 IP 17.17.111.55,然后點擊 “Create Port” 按鈕。



port 創建成功,目前還沒有 attach 到 instance,所以狀態為 “Down”。


horizon 目前還不支持直接將 port attach 到 instance,這個操作還得通過命令行,具體請參考前面的示例。希望新版本的 horizon 能加入這個功能。


好了,以上就是設置靜態 IP 的方法,下一節我們繼續分享實施經驗。


二維碼+指紋.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM