floating IP 原理分析 - 天天5分鐘玩轉 OpenStack(107)

上一節咱們經過 Web UI 建立爲 cirros-vm3 分配了浮動 IP,今天將分析其工做原理。網絡

首先查看 router 的 interface 配置:tcp

能夠看到,floating IP 已經配置到 router 的外網 interface qg-b8b32a88-03 上。 查看 router 的 NAT 規則:學習

iptables 增長了兩條處理 floating IP 的規則:
1. 當 router 接收到從外網發來的包,若是目的地址是 floating IP 10.10.10.3,將目的地址修改成 cirros-vm3 的 IP 172.16.101.3。這樣外網的包就能送達到 cirros-vm3。
2. 當 cirros-vm3 發送數據到外網,源地址 172.16.101.3 將被修改成 floating IP 10.10.10.3。測試

下面咱們經過 PING 測試一下。 在個人實驗環境中,10.10.10.1 是外網中的物理交換機,如今讓它 PING cirros-vm3。spa

可以 PING 通。 咱們經過 tcpdump 可用在 router 的 interface 上觀察 floating IP 的行爲。router

ext_net interface qg-b8b32a88-03 的 tcpdump 輸出:接口

可見,在外網接口 qg-b8b32a88-03 上,始終是經過 floating IP 10.10.10.3 與外網通訊。ip

vlan101 interface qr-e17162c5-00 的 tcpdump 輸出:ci

當數據轉發到租戶網絡,地址已經變爲 cirros-vm3 的租戶 IP 172.16.101.3 了。table

小結一下:
1. floating IP 可以讓外網直接訪問租戶網絡中的 instance。這是經過在 router 上應用 iptalbes 的 NAT 規則實現的。
2. floating IP 是配置在 router 的外網 interface 上的,而非 instance,這一點須要特別注意。

至此,咱們已經完成了 Neutron L3 服務鏈接不一樣 subnet,訪問外網,以及 floating IP 的學習。
下節開始,咱們將學習 Neutron 如何支持 VxLAN 網絡類型。

 

blob.png

相關文章
相關標籤/搜索