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


上一節我們通過 Web UI 創建為 cirros-vm3 分配了浮動 IP,今天將分析其工作原理。

首先查看 router 的 interface 配置:

可以看到,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。

能夠 PING 通。 我們通過 tcpdump 可用在 router 的 interface 上觀察 floating IP 的行為。

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

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

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

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

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

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

 

blob.png


免責聲明!

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



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