CloudStack4.3.2手動設置虛擬機IP總結

CloudStack手動設置虛擬機IP總結

一、現象

CloudStack 4.2.0版本及後續版本,在界面增加每個虛擬可以設置輔助IP的功能。如果不在界面中設置輔助IP,而是直接在虛擬機手動設置IP,會導致該IP不生效的問題。

在CloudStack 4.2.0之前的版本是可以手動設置任意可用的IP。

二、實現機制

引起這個差異就是4.2.0版本的輔助IP功能引入的。4.2.0的實現機制是,默認網絡規則會通過ebtables策略將非vm使用的IP做NAT屏蔽,這會導致若不配置ebtables規則,手動設置IP無效。而4.0版本則無該限制。

ebtables的規則實現代碼在scripts\vm\network\security_group.py文件 default_network_rules方法。

三、實驗

該實驗就是模擬CloudStack配置輔助IP的步驟。

虛擬機i-2-3-VM通過DHCP獲得的IP爲10.6.32.19,現修改爲10.6.32.24。

1、通過ipset增加第二個IP

ipset -A i-2-3-VM 10.6.32.24

通過ipsetlist命令查詢

2、配置ebtables

ebtables-t nat -I i-2-3-VM-in-ips -p ARP --arp-ip-src 10.6.32.24 -j RETURN

ebtables-t nat -I i-2-3-VM-out-ips -p ARP --arp-ip-dst 10.6.32.24 -j RETURN

查詢ebtables的nat表配置。

ebtables -t nat -L

3、手動將虛擬的IP修改爲10.6.32.24,配置完成後,該IP可用。

四、結論

CloudStack 4.2.0及以後版本所管理的虛擬機,若需要手動設置IP,建議使用設置輔助IP功能;或者手動添加ipset和ebtablse的規則,再配置IP。

發佈了46 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章