1.彈性公網IP、私有IP、浮動IP、虛拟IP之間差別
彈性公網IP是可以直接通路Internet的IP位址。一個彈性公網IP隻能給一個ECS使用。
私有IP是公有雲内網所使用的IP位址,用于内網通信,私有IP不能通路Internet。
浮動IP與彈性公網IP功能類似,都是公網IP,用于連接配接公網,主要不同點在于浮動IP接口無法配置帶寬參數。
虛拟IP(即VIP)是一個未配置設定給真實彈性雲伺服器網卡的IP位址。主要用在彈性雲伺服器的主備切換,達到高可用性HA(High Availability)的目的。當主伺服器發生故障無法對外提供服務時,動态将虛拟IP切換到備伺服器,繼續對外提供服務。
2. 浮動IP定義
預設情況下執行個體會被賦予固定ip,這時并不能保證執行個體會馬上可以從外面通路到,一般來說需要配置防火牆來允許公共ip,然後建立一條NAT規則從公共ip到私有ip的映射。
OpenStack引入了一個叫浮動ip的概念,浮動ip是一些可以從外部通路的ip清單,通常從isp哪裡買來的。
浮動ip預設不會自動賦給執行個體,使用者需要手動從位址池裡抓取然後賦給執行個體。一旦使用者抓去後,他就變成這個ip的所有者,可以随意賦給自己擁有的其他執行個體。如果執行個體死掉了的話,使用者也不會失去這個浮動ip,可以随時賦給其他執行個體。暫時不支援為了負載均衡多執行個體共享一個浮動ip。
而對于固定ip來說,執行個體啟動後獲得的ip也是自動的,不能指定某一個。是以當一個VM歇菜了,再啟動也許固定ip就換了一個。
系統管理者可以配置多個浮動ip池,這個ip池不能指定租戶,每個使用者都可以去抓取。多浮動ip池是為了考慮不同的isp服務提供商,免得某一個isp出故障帶來麻煩。
如果運作的是企業雲,浮動ip池就是那些openstack外的資料中心都能通路到的ip。
浮動ip機制給雲使用者提供了很多靈活性,也給系統管理者減少了安全風險,盡量隻讓OpenStack軟體去改防火牆會安全些。
注意:
floating IP 能夠讓外網直接通路租戶網絡中的 instance。這是通過在 router 上應用 iptalbes 的 NAT 規則實作的。
floating IP 是配置在 router 的外網 interface 上的,而非 instance,這一點需要特别注意。
- 浮動IP是由外部網絡進行建立
建立浮動IP
{
"floating_network_id": "f9a11240-e182-4e3b-b8dd-e2ed94f4c499", //外部網絡
"port_id": "",
"subnet_id": "1fac35c1-a7e9-4203-a87a-65aad05a70fe", //外部子網
"fixed_ip_address": "",
"floating_ip_address": "",
"description": "create the floating ip for iaas testing...",
"dns_domain": "",
"dns_name": ""
}
修改浮動IP
port 為null 時,解綁接口
{
"floatingip_device_id":"755221d4-814f-4cc8-8808-e4d9e9cbcc20", // 浮動IP
"port_id": "98408ba8-06dd-49ca-ae51-9935204e4e63", // 綁定的内網port_id ,
"fixed_ip_address": "10.1.17.167", //内網端口固定的IP
"description": "test...."
}
//前提是建立的路由router種,有該内部網絡的接口
浮動IP與網卡建立好映射
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cskXTU5UerdkYwh2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1cDOyUDMxcTM3EDOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
必須有外部網絡的路由
路由中增加内部網絡的内部接口。
現在可以用内部網絡的接口了,通過浮動IP去綁定内部網絡的接口