4.9. 在 ML2/OVS 部署中为提供商网络启用多播侦听
要防止对 Red Hat OpenStack Platform (RHOSP)提供商网络中的每个端口进行多播数据包,您必须启用多播侦听。在使用带有 Open vSwitch 机制驱动程序(ML2/OVS)的 Modular Layer 2 插件的 RHOSP 部署中,您可以在 YAML 格式的环境文件中声明 RHOSP Orchestration (heat) NeutronEnable IgmpSnooping
参数。
在将它应用到生产环境之前,您应该彻底测试并了解任何多播侦听配置。错误配置可能会破坏多播或导致不正确的网络行为。
先决条件
- 您的配置必须只使用 ML2/OVS 提供商网络。
您的物理路由器还必须启用 IGMP 侦听功能。
也就是说,物理路由器必须在提供商网络上发送 IGMP 查询数据包,以便从多播组成员请求常规 IGMP 报告,以便在 OVS 中维护 snooping 缓存(用于物理网络)。
必须放置 RHOSP 网络服务安全组规则,以允许对虚拟机实例(或禁用端口安全)入站 IGMP。
在本例中,为
ping_ssh
安全组创建了一个规则:示例
$ openstack security group rule create --protocol igmp --ingress ping_ssh
流程
在 undercloud 主机上,以 stack 用户身份登录,创建自定义 YAML 环境文件。
示例
$ vi /home/stack/templates/my-ovs-environment.yaml
提示编排服务(heat)使用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件自定义 overcloud 的各个方面,这是为 heat 模板提供自定义的特殊模板。
在
parameter_defaults
下的 YAML 环境文件中,将NeutronEnableIgmpSnooping
设置为 true。parameter_defaults: NeutronEnableIgmpSnooping: true ...
重要确保您在冒号(:)和
true
之间添加空格字符。运行
openstack overcloud deploy
命令,并包含核心 heat 模板、环境文件和新的自定义环境文件。重要环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源具有优先权。
示例
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-ovs-environment.yaml
验证
验证多播 snooping 是否已启用。
示例
# sudo ovs-vsctl list bridge br-int
输出示例
... mcast_snooping_enable: true ... other_config: {mac-table-size="50000", mcast-snooping-disable-flood-unregistered=True} ...
其他资源
- Red Hat OpenStack Platform 中的组件、插件和驱动程序支持中的 Neutron
- 高级 Overcloud 自定义指南中的环境文件。
- 高级 Overcloud 自定义指南中的创建 overcloud 中包括环境文件
- Overcloud 参数指南中的 networking (neutron) 参数
- 创建和管理实例 指南中的 创建安全组