本节开始咱们将学习 Linux Bridge 如何实现 Neutron 的各类功能。
首先须要配置 linux-bridge mechanism driver。
Neutorn ML2 plugin 默认使用的 mechanism driver 是 open vswitch 而不是 linux bridge。那是否还有研究 linux bridge 的必要呢?
个人答案是:颇有必要!linux
缘由以下:网络
linux bridge 技术很是成熟,并且高效,因此业界不少 OpenStack 方案采用的是 linux bridge,好比 Rackspace 的 private cloud。学习
open vswitch 实现的 Neutron 虚拟网络较为复杂,不易理解;而 linux bridge 方案更直观。先理解 linux bridge 方案后再学习 open vswitch 方案会更容易。而且能够经过两种方案的对比更加深刻地理解 Neutron 网络。spa
在深刻学习以前,咱们先复习一下 linux bridge 实现虚拟交换节的基本原理。虚拟机
上图中,br0 是 linux bridge,br0 充当虚拟交换机的做用,负责将物理网卡 eth0 和虚拟网卡 tap 设备 vnet0/vent1 链接到同一个二层网络,实现虚拟机 VM1 和 VM2,以及虚拟机与外网之间的通讯。it
关于 linux bridge 更详细的内容请参考“预备知识 -> 网络虚拟化” 相关章节。原理
要在 Neutron 中使用 linux bridge,首先须要配置 linux-bridge mechanism driver。 Neutron 默认使用 ML2 做为 core plugin,其配置位于 /etc/neutron/neutron.conf。配置
控制节点和计算节点都须要在各自的 neutron.conf 中配置 core_plugin 选项。plugin
而后须要让 ML2 使用 linux-bridge mechanism driver。 ML2 的配置文件位于 /etc/neutron/plugins/ml2/ml2_conf.ini。im
mechanism_drivers 选项指明当前节点可使用的 mechanism driver,这里能够指定多种 driver,ML2 会负责加载。 上面的配置指明咱们只使用 linux-bridge driver。
控制节点和计算节点都须要在各自的 ml2_conf.ini 中配置 mechanism_drivers 选项。
Neutron 服务正常启动后,全部节点上都会运行 neutron-linuxbridge-agent
linux-bridge mechanism driver 已经配置完毕,下一节会检视当前的网络状态。
随着各类 Neutron 功能的实践,咱们将看到这个网络状态会不断的演变和发展。