将 instance 连接到 first_local_net
launch 一个 instance,在“Networking”标签页面选择 first_local_net 网络。
instance 部署成功,分配的 IP 地址为 172.16.1.18
底层网络发生了什么变化?
对于 instance “cirros-vm1”,Neutron 会在 subnet 中创建一个 port,分配 IP 和 MAC 地址,并将 port 分配给 cirros-vm1。
如上图所示,port 列表中增加了一个 port “(25831247-3196)”,IP 为 172.16.1.18。点击 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 qbr25831247-31 上连接了一个新的 tap 设备 tap25831247-31
从命名上可知 tap25831247-31 对应着 port “(25831247-3196)”。
virsh list 中显示的虚拟机 instance-0000000f 即为 “cirros-vm1”,命名方式有所不同,需注意。
通过 virsh edit 命令查看 cirros-vm1 的配置,确认 VIF 就是 tap25831247-31 。
另外,VIF 的 MAC 地址为 fa:16:3e:d7:19:3a,这个数据就是从 port “(25831247-3196)” 取过来的。
下图展示了创建 cirros-vm1 后宿主机当前的网络结构。
---------------------------------------------------------------引用来自---------------------------------------------------------------
https://www.cnblogs.com/CloudMan6/p/5838174.html
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587630&idx=1&sn=4c9495f74f3360c5ef81e73af5122eec&chksm=8d3080b7ba4709a13f4f78247c8ba23b6bd17963b99bf0a7165f195b36c19d3e09baa8dd8853&scene=21#wechat_redirect