创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

时间:2023-03-08 17:44:04
创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

上一节我们完成了 OVS 的准备工作,本节从最基础的 local network 开始学习。
local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VLAN ID。

创建第一个 local network

下面我们通过 Web GUI 创建 local network。

进入菜单 Admin -> Networks,点击 “Create Network” 按钮。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

显示创建页面。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

“Provider Network Type” 选择 “Local”,点击 “Create Network”,first_local_net 创建成功。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

点击 first_local_net 链接,进入 network 配置页面,目前还没有 subnet,点击 “Create Subnet” 按钮。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

设置 IP 地址为 “172.16.1.0/24”。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

点击 “Next”。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

勾选 “Enable DHCP”,IP 池设置为 “172.16.1.2,172.16.1.99”。
点击 “Create”,subnet 创建成功。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

同时 devstack-controler 针对此 subnet 的 DHCP 服务也已经 Active。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

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

创建 OVS local network 的过程与 Linux Bridge 没有什么区别。
这是因为 Neutron 已经对不同 driver 进行了抽象,但底层实现肯定是有区别的。
所以,接下来我们要搞清楚底层网络有了哪些变化?

打开控制节点的 shell 终端,用 ovs-vsctl show 查看当前 Open vSwitch 的状态。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)
可以看到 Neutron 自动在 br-int 网桥上创建了 port “tap7970bdcd-f2”。

从命名可知,该 port 对应 local_net 的 dhcp 接口。

与 linux bridge driver 一样,dhcp 设备也是放在命名空间里的。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

目前网络结构如下图所示:

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

下节我们会部署 instance 到 first_local_network 并再次观察这张网络拓扑图的变化。

创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)