下圖是由一個虛擬機vm1,一個路由器ext-router,兩個網絡ext-net及demo-net組成的拓撲結構。要達到的目的很簡單,即vm1不僅能使用私網IP和內部的其它虛擬機進行通信,還可以通過ext-router連接外網,外網也能通過Floating IP訪問vm1。
步驟:
1. 以admin權限登錄OpenStack Dashboard;
2. 在Project->Network->Networks下創建一個私有網絡demo-net,同時創建一個子網demo-subnet,分配的IP段為:192.168.10.0/24,網關為:192.168.10.2,允許DHCP,可設置IP取值范圍;
3. 在Admin->Networks下創建一個公共網絡ext-net,同時創建一個子網ext-subnet,分配的IP段為:10.86.10.0/23,網關為:10.86.10.1,允許DHCP,可設置IP取值范圍。要注意的是在創建公網網絡時,要勾選“External Network”,同時最好也勾選“Shared”,這樣其它租戶也能使用該網絡,如下圖所示:
4. 在Project->Network->Routers下,創建路由器ext-router。點擊路由器列表后邊的“Set Gateway”按鈕,在界面中選擇ext-net網絡,將該路由器設置成網關;
5. 給路由器ext-router添加一個interface用於連接私網demo-net,將該端口IP設置成:192.168.10.2。這些步驟完成后,查看網絡拓撲圖,就看到文檔開頭處展示的結構圖;
6. 在Project->Compute->Instances下,點擊VM列表中后邊按鈕的下拉菜單,選擇“Associate Floating IP”,選擇外網IP和vm1的端口進行綁定,結果如下圖:
可以看到,vm1的私網IP是:192.168.10.17,Floating IP是:10.86.11.176;
7. 打開vm1的vnc控制台,查看其路由表,看到默認網關是:192.168.10.2,這個IP是設置在ext-router連接私網的端口上的。Ping外網“8.8.8.8”,看結果說明已經做好了映射,如下圖:
再從外網ping虛擬機vm1的Floating IP,ping通即說明配置已成功。