上一节 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 之间的连通性。