Firewalld: ゾーンを自律的に変更するインターフェース

Firewalld: ゾーンを自律的に変更するインターフェース

Docker Swarm ワーカー ノードとして機能する RHEL8 システムがあります。firewalld有効になっており、およびインターフェイスが割り当てられてdockerいるゾーンがあります。docker0docker_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

ただし、数分後 (通常は 1 時間未満) に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

Aはfirewall-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 が不可解なことに異なって構成されています。

関連情報