今天我们开始学习 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 相关参数。
指定普通用户创建的网络类型为 vxlan,同时 enable l2population mechanism driver,然后指定 vxlan 的范围。
上面配置定义了 vxlan vni 的范围是 1001 - 2000,这个范围是针对普通用户在自己的租户里创建 vxlan network 的范围。 因为普通用户创建 network 时不能指定 vni,Neutron 会按顺序自动从这个范围中取值。
对于 admin 则没有 vni 范围的限制,admin 可以创建 vni 范围为 1-16777216 的 vxlan network。
在 [agent] 中配置启用 vxlan 和 l2population。
最后在 [ovs] 中配置 VTEP。
vxlan tunnel 对应的网桥为 br-tun。
local_ip 指定 VTEP 的 IP 地址。
devstack-controller 使用 166.66.16.10,此 IP 配置在网卡 eth1 上。
devstack-compute01 则使用 166.66.16.11,此 IP 配置在网卡 eth1 上。
初始网络结构
Neutron 服务重启后,通过 ovs-vsctl show 查看网络配置:
br-int 与 br-tun 通过 patch port “patch-tun” 和 “br-tun” 连接。 目前网络结构如下所示:
准备就绪,下一节我们创建 vxlan 并部署 instance。