上一節 first_local_net 已經就緒,下面創建 instance 並將其連接到該網絡。
將 instance 連接到 first_local_net
launch 一個 instance,在“Networking”標簽頁面選擇 first_local_net 網絡。
instance 部署成功,分配的 IP 地址為 172.16.1.3
底層網絡發生了什么變化?
對於 instance “cirros-vm1”,Neutron 會在 subnet 中創建一個 port,分配 IP 和 MAC 地址,並將 port 分配給 cirros-vm1。
如上圖所示,port 列表中增加了一個 port “(fa7e090e-a29c)”,IP 為 172.16.1.3。 點擊 port 名稱查看 MAC 信息:
當 cirros-vm1 啟動時: 1. 宿主機上的 neutron-linuxbridge-agent 會根據 port 信息創建 tap 設備,並連接到 local 網絡所在的 bridge 2. 同時該 tap 會映射成 cirros-vm1 的虛擬網卡,即 virtual interface (VIF)。
下面我們驗證一下以上信息:
cirros-vm1 部署到了控制節點,通過 brctl show 查看 bridge 的配置。
可以看到 bridge brqbb9b6d21-c6 上連接了一個新的 tap 設備 tapfa7e090e-a2 從命名上可知 tapfa7e090e-a2 對應着 port “(fa7e090e-a29c)”。
virsh list 中顯示的虛擬機 instance-00000001 即為 “cirros-vm1”,命名方式有所不同,需注意。 通過 virsh edit 命令查看 cirros-vm1 的配置,確認 VIF 就是 tapfa7e090e-a2
另外,VIF 的 MAC 地址為 fa:16:3e:c1:66:a5,這個數據就是從 port “(fa7e090e-a29c)” 取過來的。
在 cirros-vm1 中執行 ifconfig,通過 MAC 地址可以確認 eth0 與 tapfa7e090e-a2 對應。
下圖展示了創建 cirros-vm1 后宿主機當前的網絡結構。
下一節我們將部署第二個 instance 到 first_local_net 並驗證兩個 instance 之間的連通性。