将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

上一节 first_local_net 已经就绪,下面创建 instance 并将其连接到该网络。

将 instance 连接到 first_local_net

launch 一个 instance,在“Networking”标签页面选择 first_local_net 网络。

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

instance 部署成功,分配的 IP 地址为 172.16.1.3

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

底层网络发生了什么变化?

对于 instance “cirros-vm1”,Neutron 会在 subnet 中创建一个 port,分配 IP 和 MAC 地址,并将 port 分配给 cirros-vm1。

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

如上图所示,port 列表中增加了一个 port “(fa7e090e-a29c)”,IP 为 172.16.1.3。 点击 port 名称查看 MAC 信息:

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

当 cirros-vm1 启动时: 1. 宿主机上的 neutron-linuxbridge-agent 会根据 port 信息创建 tap 设备,并连接到 local 网络所在的 bridge 2. 同时该 tap 会映射成 cirros-vm1 的虚拟网卡,即 virtual interface (VIF)。

下面我们验证一下以上信息:

cirros-vm1 部署到了控制节点,通过 brctl show 查看 bridge 的配置。

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

可以看到 bridge brqbb9b6d21-c6 上连接了一个新的 tap 设备 tapfa7e090e-a2 从命名上可知 tapfa7e090e-a2 对应着 port “(fa7e090e-a29c)”。

virsh list 中显示的虚拟机 instance-00000001 即为 “cirros-vm1”,命名方式有所不同,需注意。 通过 virsh edit 命令查看 cirros-vm1 的配置,确认 VIF 就是 tapfa7e090e-a2

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

另外,VIF 的 MAC 地址为 fa:16:3e:c1:66:a5,这个数据就是从 port “(fa7e090e-a29c)” 取过来的。

在 cirros-vm1 中执行 ifconfig,通过 MAC 地址可以确认 eth0 与 tapfa7e090e-a2 对应。

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

下图展示了创建 cirros-vm1 后宿主机当前的网络结构。

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

下一节我们将部署第二个 instance 到 first_local_net 并验证两个 instance 之间的连通性。

 

将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)

上一篇:linux通过重新编译php来安装php-soap


下一篇:在以 CentOS7.6 为基础镜像的 Docker 容器中通过 NFS 将内存挂载成高速硬盘使用