最近再看Open vSwitch一些东西,我认为openstack官网上对这一块做了一些了解,所以就把这一块翻译出来以供参考,英语不好,翻译得很粗糙。
Open vSwitch插件是最有名的核心插件之一。Open vSwith配置由网桥和端口组成。端口呈现出连接其他一些东西,如物理接口和电缆。从在网桥上所给端口的包与其他网桥上端口是共享的。网桥可以通过Open vSwitch虚拟电缆或者通过Linux虚拟以太网电缆连接起来。此外,网桥作为网络接口到Linux出现,所以你能给他们绑上Ip地址。
在Neutron中,成为“br-int”的集成网桥直接与虚拟机和关联的服务连接。成为“br-ex”的外部网桥连接外部网络。最终,Open vSwitch插件的VLAN(虚拟局域网)配置使用网桥来关联每一个物理网络。
除了定义网桥,Open vSwitch还有OpenFlow,是个能使你定义网络流规则的。一些配置使用这些规则在VLANs之间传输数据报。
最终,Open vSwitch的一些配置使用网络命名空间,那些使Linux能组织适配器到唯一的命名空间,这对其他命名空间是不可见的,那些允许相同的网络结点来管理多个Neutron路由器。
对于Open vSwitch,你可以使用两种不同的拓扑来创建虚拟网络:GRE 或者 VLANs。
GRE(通用路由封装)是一个用在多个VPNs的拓扑。它封装IP包以创建整个新的带有不同路由信息的包。当新包到达它的目的地,然后解封,而且底层数据报是路由的。使用Open vSwitch的GRE,Neutron创建GRE通道。这些通道是网桥上的端口,且使网桥在不同系统就像是一个网桥一样,允许计算和网络结点作为路由的目的。
VLANs(虚拟局域网)在另一方面使用一个特定的修改到以太网报头。他们增加一个从1到4096变化的4字节的VLAN标签(0标签是特殊的,由所有组成的4095是一个相当于未加标签的包)。特定的网卡、交换机和路由器知道如何转换VLAN标签,正如Open vSwitch做的一样。为一个VLAN标记的数据包只与在那个VLAN配置的其他设备共享,即使所有设备在同一物理网络中。
用于Open vSwitch的最普遍的安全组驱动是Hybrid IPTables/Open vSwitch。它使用IPTables和OpenFlow规则的组合。使用IPTables同居创建防火墙且在linux建立NATs。这个工具使用负责的规则系统和规则链适用于Neutron安全组所需要的复杂规则。