XenServer 添加对 neutron 安全组的支持¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/nova/+spec/support-neutron-security-group
此蓝图旨在支持 neutron 安全组。
问题描述¶
XenServer 作为计算驱动程序,缺乏对 neutron 安全组的支持。正如我们所知,neutron 的安全组是通过使用 iptables 实现的,这些 iptables 规则应用于每个 VIF 的 Linux 网桥。然而,XenServer 计算驱动程序在启动实例时不会为 VIF 创建 Linux 网桥,这导致 neutron 无法应用 iptables 规则,因此 neutron 中的防火墙驱动程序目前只能配置为 NoopFirewallDriver。
用例¶
最常见的用例是在使用 neutron 网络和 neutron 安全组的 OpenStack 环境中部署,然后启动一个实例并检查实例的网络连接。
提议的变更¶
提议的更改是在启动新实例时为每个 VIF 添加 Linux 网桥。此实现或多或少与 libvirt 所做的事情相同。启动实例时,xen nova 计算驱动程序将始终为每个 VIF 创建 Linux 网桥 qbr,并使 qbr 连接到计算节点中的集成网桥(例如 br-int)。因此,计算节点中的连接将如下所示
因此,有了新添加的 Linux 网桥 qbr,在 neutron 侧,它可以自动检测这些网桥 qbr-XXX,并在每个 VIF 的 Linux 网桥 qbr-XXX 上应用安全组规则。 新添加的 Linux 网桥将在部署 neutron 的情况下始终创建,不会添加新的配置设置。 此更改不会对 nova 网络产生任何影响(即,如果部署 nova 网络,则不会创建 qbr-XXX Linux 网桥)。然后,当 neutron 的 conf 文件中防火墙驱动程序为 OVSHybridIptablesFirewallDriver 时,neutron 安全组将正常工作。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
此实现是为了支持 XenSerer 的 neutron 安全组功能,就像其他 hypervisor 一样。 如果要使用此功能,主要的部署更改是
在 OpenStack 环境中部署 neutron
修改 nova.conf,应指定以下配置项
[DEFAULT] use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver
修改 neutron 配置文件 ml2_conf.ini
[securitygroup] firewall_driver = \ neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver enable_security_group = true
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
huanxie
其他贡献者
工作项¶
在启动实例时为每个 vif 创建 Linux 网桥
在 VIF 和 Linux 网桥之间创建 tap 设备
在 Linux 网桥和 Ovs 网桥之间创建 veth 对
依赖项¶
这取决于一个 bug 修复 https://bugs.launchpad.net/neutron/+bug/1268955
测试¶
场景测试将手动或使用 tempest 自动完成。 当它实现时,我们可以使用 neutron VLAN 网络部署一个环境,启用 neutron 安全组,并在计算节点中的 neutron 的 ml2_conf.ini 文件中设置正确的 firewall_driver。
XenServer Neutron CI 也会更新,以通过现有的 tempest 测试来测试安全组。 当代码补丁集准备好后,我们将更改上述一些配置,并启动完整的 tempest 来检查功能并确保没有负面影响。 测试报告将公开可访问。
文档影响¶
无
参考资料¶
无
历史¶
无