Firewalld:接口自主更改区域

Firewalld:接口自主更改区域

我有一个 RHEL8 系统,用作 Docker Swarm 工作节点。它已firewalld启用,并且有一个docker区域,其中分配了docker0和接口。docker_gwbridge

$ cat /etc/firewalld/zones/docker.xml
<?xml version="1.0" encoding="utf-8"?>
<zone version="1.0" target="ACCEPT">
  <short>docker</short>
  <description>zone for docker bridge network interfaces</description>
  <interface name="docker_gwbridge"/>
  <interface name="docker0"/>
</zone>

重新启动、重启或重新加载后firewalld,这些接口将出现在正确的区域中firewall-cmd --get-active-zones

$ firewall-cmd --get-active-zones
docker
  interfaces: docker_gwbridge docker0
internal
  interfaces: vethb6daacd veth0a3a13c veth3922477 veth1fc2c24 veth35f6f77 veth172d461 vethf457e97 vethed46b94 vethc3293eb vethe6c08de vethb1c5fb6 vethd6bcfd8 eth0

然而,几分钟后(通常不到一小时),它们就会转移到internal区域,从而破坏容器内的网络。

$ firewall-cmd --get-active-zones
internal
  interfaces: vethb6daacd veth0a3a13c veth3922477 veth1fc2c24 veth35f6f77 veth172d461 vethf457e97 vethed46b94 vethc3293eb vethe6c08de vethb1c5fb6 vethd6bcfd8 eth0 docker_gwbridge docker0 veth5686e56 vetha51060c vethde79c75

Afirewall-cmd --reload又花了一小会儿时间修理它。

这个问题看起来相关,但这些接口(如果我解释正确的话)不由 NetworkManager 管理,所以我不认为这是错的。

$ nmcli device
DEVICE           TYPE      STATE                   CONNECTION
eth0             ethernet  connected               eth0
docker0          bridge    connected (externally)  docker0
docker_gwbridge  bridge    connected (externally)  docker_gwbridge
veth5686e56      ethernet  unmanaged               --
vetha51060c      ethernet  unmanaged               --
vethde79c75      ethernet  unmanaged               --
lo               loopback  unmanaged               --

$ ls /etc/sysconfig/network-scripts/
ifcfg-eth0

我在 中找不到任何有趣的东西/var/log/firewalld。我还有其他几个节点,理论上配置方式相同,不会发生此问题。

我没有设置节点,也不是系统管理员,但我正在尝试弄清楚!有什么明智的建议吗?

答案1

看起来 Chef 任务是造成这种情况的原因,Chef 在正常运行的服务器和损坏的服务器之间的配置莫名其妙地不同。

相关内容