架构
模块层2(ML2)中Neutron plug-in是一个框架,允许OpenStack网络同时使用在复杂的现实世界数据中心中发现的各种第2层网络技术。 ML2框架区分可以配置的两种驱动程序:
类型驱动程序
定义OpenStack网络如何在技术上实现。示例:VXLAN
每种可用的网络类型由ML2类型驱动程序管理。类型驱动程序维护任何所需的特定类型的网络状态。它们验证供应商网络的类型特定信息,并负责在项目网络中分配一个空闲段。
机制驱动程序
定义访问某种类型的OpenStack网络的机制。示例:打开vSwitch机制驱动程序。
机制驱动程序负责获取由类型驱动程序建立的信息,并确保在给定已启用的特定联网机制的情况下正确应用该信息。
机制驱动程序可以利用L2代理(通过RPC)和/或直接与外部设备或控制器交互。
可以同时使用多个机制和类型驱动程序来访问同一虚拟网络的不同端口。
type driver/mech driver | FLAT | VLAN | VXLAN | GRE |
---|---|---|---|---|
Open vSwitch | yes | yes | yes | yes |
Linux bridge | yes | yes | yes | no |
SRIOV | yes | yes | no | no |
MacVType | yes | yes | no | no |
L2 population | no | no | yes | yes |
L2 population是特殊机制驱动器,其优化覆盖网络VXLAN和GRE中的BUM(广播,未知目的地地址,多播)业务。 它需要与Linux桥接器或Open vSwitch机制驱动程序结合使用,并且不能用作独立的机制驱动程序。
配置
Network type drivers
在ML2插件中启用类型驱动程序。 编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件:
[ml2]
type_drivers = flat,vlan,vxlan,gre
Provider network types
提供商网络提供像项目网络的连接。 但只有管理(特权)用户才能管理这些网络,因为它们与物理网络基础设施接口。
FLAT
管理员需要配置可用于提供商网络的物理网络名称列表。
VLAN
管理员需要配置可用于提供商网络的物理网络名称列表。
GRE
无需其他配置。
VXLAN
管理员可以配置应该使用的VXLAN组播组。
Project network types
项目网络为特定项目的实例提供连接。常规(非特权)用户可以管理分配中由管理员或操作员为其定义的项目网络。有关项目和提供商网络的更多信息,请参阅OpenStack Networking或OpenStack管理员指南。
项目网络配置在neutron服务器上的/etc/neutron/plugins/ml2/ml2_conf.ini配置文件中进行:
VLAN
管理员需要配置可用于项目网络分配的VLAN ID范围。
GRE
管理员需要配置可用于项目网络分配的隧道ID的范围。
VXLAN
管理员需要配置可用于项目网络分配的VXLAN ID范围。
不能为项目网络分配FLAT,它们只能作为提供商网络
Mechanism
要在ML2插件中启用机制驱动程序,请编辑neutron服务器上的/etc/neutron/plugins/ml2/ml2_conf.ini文件:
[ml2]
mechanism_drivers = ovs,l2pop
Linux bridge 不需要配置其他的机制驱动程序,但是需要配置其他代理服务
Open vSwitch 不需要配置其他的机制驱动程序,但是需要配置其他代理服务
L2 population 管理员可以配置一些可选配置选项
Agent
L2 agent
L2代理为OpenStack资源提供第2层(以太网)网络连接。它通常在每个网络节点和每个计算节点上运行。
Open vSwitch代理
Open vSwitch代理配置Open vSwitch以实现OpenStack资源的L2网络。
Open vSwitch代理的配置通常在openvswitch_agent.ini配置文件中完成。确保在代理程序启动时,您传递此配置文件作为参数。
Linux桥代理
Linux桥代理配置Linux网桥以实现OpenStack资源的L2网络。
Linux桥代理的配置通常在linuxbridge_agent.ini配置文件中完成。确保在代理程序启动时,您传递此配置文件作为参数。
L2 agent
L3代理提供高级第3层服务,如虚拟路由器和浮动IP。 它需要并行运行的L2代理。
L3代理的配置通常在l3_agent.ini配置文件中完成。 确保在代理程序启动时,您传递此配置文件作为参数。
DHCP agent
DHCP代理负责DHCP和RADVD(路由器通告守护程序)服务。 它需要在同一节点上运行L2代理。
DHCP代理的配置通常在dhcp_agent.ini配置文件中完成。 确保在代理程序启动时,您传递此配置文件作为参数。
Metadata agent
Metadata代理允许实例通过网络访问cloud-init元数据和用户数据。 它需要在同一节点上运行L2代理。
Metadata代理的配置通常在metadata_agent.ini配置文件中完成。 确保在代理程序启动时,您传递此配置文件作为参数。
L3 metering agent
L3计量代理启用第3层流量计量。 它需要在同一节点上运行L3代理。
L3计量代理的配置通常在metering_agent.ini配置文件中完成。 确保在代理程序启动时,您传递此配置文件作为参数。
Security
L2代理支持一些重要的安全配置,如安全组和arp欺骗预防。
参考实现
在本节中,机制驱动程序和L2代理的组合称为“参考实现”。 下表列出了这些实现:
mech drivers | L2 agent |
---|---|
Open vSwitch | Open vSwitch agent |
Linux bridge | Linux bridge agent |
L2 population | Open vSwitch agent/Linux bridge agent |