2.8. 为 Red Hat Ceph Storage 配置防火墙


Red Hat Ceph Storage (RHCS) 使用 iptables 服务。

Monitor 守护进程使用端口 6789 用于在 Ceph 存储群集内进行通信。

在每个 Ceph OSD 节点上,OSD 守护进程使用 6800-7300 范围内的多个端口:

  • 一个用于通过公共网络与客户端通信和监控器
  • 一个用于通过集群网络发送数据到其他 OSD(如果可用);否则,通过公共网络发送数据
  • 一个用于通过集群网络(如果有)交换心跳数据包;否则,通过公共网络交换。

Ceph 管理器 (ceph-mgr) 守护进程使用范围为 6800-7300 的端口。考虑将 ceph-mgr 守护进程与 Ceph monitor 在同一节点上并置。

Ceph 元数据服务器节点(ceph-mds)使用范围为 6800-7300 的端口。

Ceph 对象网关节点由 Ansible 配置为使用默认端口 8080。但是,您可以更改默认端口,例如端口 80

要使用 SSL/TLS 服务,请打开端口 443

前提条件

  • 网络硬件已连接。

流程

root 用户身份运行以下命令:

  1. 在所有 monitor 节点上,打开公共网络中的端口 6789

    iptables -I INPUT 1 -i iface -p tcp -s IP_address/netmask_prefix --dport 6789 -j ACCEPT
    替换
    • 公共网络上网络接口卡名称的 iface.
    • ip_address,带有 monitor 节点的网络地址。
    • 使用 CIDR 格式的网络掩码替换 netmask_prefix

    示例

    $ sudo iptables -I INPUT 1 -i enp6s0 -p tcp -s 192.168.0.11/24 --dport 6789 -j ACCEPT

  2. 在所有 OSD 节点上,打开公共网络上的端口 6800-7300

    iptables -I INPUT 1 -i iface -m multiport -p tcp -s IP_address/netmask_prefix --dports 6800:7300 -j ACCEPT
    替换
    • 公共网络上网络接口卡名称的 iface.
    • ip_address,具有 OSD 节点的网络地址。
    • netmask_prefix,使用 CIDR 表示法的子网掩码 。

    示例

    $ sudo iptables -I INPUT 1 -i enp6s0 -m multiport -p tcp -s 192.168.0.21/24 --dports 6800:7300 -j ACCEPT

  3. 在所有 Ceph Manager(ceph-mgr)节点上(通常与 monitor 节点相同),在公共网络上打开端口 6800-7300

    iptables -I INPUT 1 -i iface -m multiport -p tcp -s IP_address/netmask_prefix --dports 6800:7300 -j ACCEPT
    替换
    • 公共网络上网络接口卡名称的 iface.
    • ip_address,具有 OSD 节点的网络地址。
    • netmask_prefix,使用 CIDR 表示法的子网掩码 。

    示例

    $ sudo iptables -I INPUT 1 -i enp6s0 -m multiport -p tcp -s 192.168.0.21/24 --dports 6800:7300 -j ACCEPT

  4. 在所有 Ceph 元数据服务器(ceph-mds)节点上,在公共网络上打开端口 6800

    iptables -I INPUT 1 -i iface -m multiport -p tcp -s IP_address/netmask_prefix --dports 6800 -j ACCEPT
    替换
    • 公共网络上网络接口卡名称的 iface.
    • ip_address,具有 OSD 节点的网络地址。
    • netmask_prefix,使用 CIDR 表示法的子网掩码 。

    示例

    $ sudo iptables -I INPUT 1 -i enp6s0 -m multiport -p tcp -s 192.168.0.21/24 --dports 6800 -j ACCEPT

  5. 在所有 Ceph 对象网关节点上,打开公共网络上的相关端口或端口。

    1. 打开默认 Ansible 配置的端口 8080:

      iptables -I INPUT 1 -i iface -p tcp -s IP_address/netmask_prefix --dport 8080 -j ACCEPT
      替换
      • 公共网络上网络接口卡名称的 iface
      • ip_address,带有对象网关节点的网络地址。
      • netmask_prefix,使用 CIDR 表示法的子网掩码 。

      示例

      $ sudo iptables -I INPUT 1 -i enp6s0 -p tcp -s 192.168.0.31/24 --dport 8080 -j ACCEPT

    2. 可选。如果您使用 Ansible 安装 Ceph 对象网关,并将 Ansible 用于配置 Ceph 对象网关的默认端口从 8080 改为其他端口(例如 80),打开此端口:

      iptables -I INPUT 1 -i iface -p tcp -s IP_address/netmask_prefix --dport 80 -j ACCEPT
      替换
      • 公共网络上网络接口卡名称的 iface.
      • ip_address,带有对象网关节点的网络地址。
      • netmask_prefix,使用 CIDR 表示法的子网掩码 。

      示例

      $ sudo iptables -I INPUT 1 -i enp6s0 -p tcp -s 192.168.0.31/24 --dport 80 -j ACCEPT

    3. 可选。要使用 SSL/TLS,请打开端口 443

      iptables -I INPUT 1 -i iface -p tcp -s IP_address/netmask_prefix --dport 443 -j ACCEPT
      替换
      • 公共网络上网络接口卡名称的 iface.
      • ip_address,带有对象网关节点的网络地址。
      • netmask_prefix,使用 CIDR 表示法的子网掩码 。

      示例

      $ sudo iptables -I INPUT 1 -i enp6s0 -p tcp -s 192.168.0.31/24 --dport 443 -j ACCEPT

  6. 使更改在存储集群中的所有 RHCS 节点上都可以被持久保留。

    1. 安装 iptables-persistent 软件包:

      $ sudo apt-get install iptables-persistent
    2. 在出现的终端 UI 中,选择 yes 将当前的 IPv4 iptables 规则保存到 /etc/iptables/rules.v4 文件,并将当前的 IPv6 iptables 规则保存到 /etc/iptables/rules.v6 文件中。

      注意

      如果在安装 iptables-persistent 后添加新的 iptables 规则,请在 rules 文件中添加新规则:

      $ sudo iptables-save >> /etc/iptables/rules.v4

其它资源

返回要求清单

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.