爲 instance 配置靜態 IP - 天天5分鐘玩轉 OpenStack(157)

 

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

 

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

 

有同窗就會想辦法了:等 instance 起來後手工把 IP 改掉行不行?運維

 

很是遺憾,不行!spa

 

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

 

那還有沒有辦法爲 instance 配置靜態 IP 呢?命令行

 

有!code

 

方法是:ip

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

  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

相關文章
相關標籤/搜索