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