firewalld:介面自動改變區域

firewalld:介面自動改變區域

我有一個 RHEL8 系統作為 Docker Swarm 工作節點。它已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

然而,幾分鐘後(通常不到一個小時),它們就會轉移到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 在工作伺服器和損壞的伺服器之間莫名其妙地配置不同。

相關內容