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
用户身份运行以下命令:
在所有 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
在所有 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
在所有 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
在所有 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
在所有 Ceph 对象网关节点上,打开公共网络上的相关端口或端口。
打开默认 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
可选。如果您使用 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
可选。要使用 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
使更改在存储集群中的所有 RHCS 节点上都可以被持久保留。
安装
iptables-persistent
软件包:$ sudo apt-get install iptables-persistent
在出现的终端 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 Ceph Storage 的网络配置。