У меня есть система 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
А 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, которая по непонятной причине настроена по-разному на рабочих и сломанных серверах.