ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

时间:2024-05-08 22:04:01

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

今天我们开始学习 OVS 如何实现 Neutron VxLAN,关于 VxLAN 的概念以及 Linux Bridge 实现,大家可以参考前面相关章节。

Open vSwitch 支持 VXLAN 和 GRE 这两种 overlay network。因为 OpenStack 对于 VXLAN 与 GRE 配置和实现差别不大,这里只讨论如何实施 VXLAN。

在 ML2 配置中 enable vxlan network

在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 vxlan network 相关参数。

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

指定普通用户创建的网络类型为 vxlan,同时 enable l2population mechanism driver,然后指定 vxlan 的范围。

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

上面配置定义了 vxlan vni 的范围是 1001 - 2000,这个范围是针对普通用户在自己的租户里创建 vxlan network 的范围。 因为普通用户创建 network 时不能指定 vni,Neutron 会按顺序自动从这个范围中取值。

对于 admin 则没有 vni 范围的限制,admin 可以创建 vni 范围为 1-16777216 的 vxlan network。

在 [agent] 中配置启用 vxlan 和 l2population。

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

最后在 [ovs] 中配置 VTEP。

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

vxlan tunnel 对应的网桥为 br-tun。 
local_ip 指定 VTEP 的 IP 地址。 
devstack-controller 使用 166.66.16.10,此 IP 配置在网卡 eth1 上。 
devstack-compute01 则使用 166.66.16.11,此 IP 配置在网卡 eth1 上。

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

初始网络结构

Neutron 服务重启后,通过 ovs-vsctl show 查看网络配置:

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

br-int 与 br-tun 通过 patch port “patch-tun” 和 “br-tun” 连接。 目前网络结构如下所示:

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

准备就绪,下一节我们创建 vxlan 并部署 instance。
ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)