Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
iptables-failed Linux / DevOps

Docker Error: failed to create bridge network: iptables failed — Решение

Обновлено: 19.08.2026  ·  Официальная база знаний

Взаимодействие Docker Engine с подсистемами Netfilter / Iptables

Ошибка Error response from daemon: failed to create bridge network: iptables failed: No chain/target/match by that name возникает при инициализации сетевого моста (bridge) или публикации портов контейнера (флаг -p / -P). Демон dockerd при запуске автоматически создает в ядре Linux кастомные цепочки правил: DOCKER, DOCKER-INGRESS, DOCKER-ISOLATION-STAGE-1 в таблицах nat и filter. Если сторонний фаервол (UFW, Firewalld, Fail2ban) перезапускается и очищает (flush) таблицы iptables, либо происходит рассинхронизация между legacy iptables и nftables, Docker теряет доступ к своим цепочкам и блокирует запуск сети.

Бизнес-риски:

Полный отказ сетевой связности всех контейнеров на хосте, невозможность запуска новых сервисов, дыры в безопасности из-за сброса правил изоляции портов.

Таблица компонентов сетевой фильтрации Docker

Цепочка iptablesТаблица NetfilterФункциональное назначение
DOCKERnat / filterПроброс внешних портов на внутренние IP-адреса контейнеров (DNAT).
DOCKER-ISOLATIONfilterИзоляция трафика между различными пользовательскими мостами bridge.
POSTROUTINGnatМаскарадинг исходящего трафика контейнеров во внешнюю сеть (SNAT/MASQUERADE).

Пошаговое восстановление цепочек iptables и интеграции с фаерволом

Сценарий 1: Перезапуск демона Docker для пересоздания цепочек

Самый быстрый способ вернуть служебные цепочки после сброса правил фаерволом:

# Перезапуск службы Docker для повторной инициализации правил iptables
systemctl restart docker

# Проверка наличия цепочек DOCKER в таблице nat
iptables -t nat -L DOCKER -n -v

Сценарий 2: Переключение бэкенда iptables на legacy (Debian / Ubuntu / RHEL)

В современных дистрибутивах Linux подсистема nftables может конфликтовать с классическим синтаксисом Docker:

# Переключение альтернатив на iptables-legacy (для Debian/Ubuntu):
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacy

# Перезапуск демона Docker
systemctl restart docker

Сценарий 3: Корректная интеграция с UFW / Firewalld

Настройте фаервол так, чтобы он не затирал правила Docker при перезагрузке:

# Для Firewalld (RHEL/CentOS/AlmaLinux):
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --reload
systemctl restart docker

# Проверка включения IP Forwarding в ядре:
sysctl -w net.ipv4.ip_forward=1

Типовые ошибки администраторов

  • Полное отключение iptables в daemon.json: Это лишает Docker возможности пробрасывать порты и изолировать контейнеры, требуя ручного написания сотен правил.
  • Перезапуск UFW (ufw reload) на живом production-сервере: UFW стирает цепочки Docker, что моментально ломает сеть у всех работающих контейнеров до перезапуска dockerd.
Фаервол блокирует порты Docker или сбрасывает сетевые правила?
Инженеры ITSTM настроят безопасную связку UFW/Firewalld/nftables с Docker без разрывов соединений и уязвимостей.
Практический опыт инженера: Для фильтрации внешнего доступа к портам Docker всегда пишите правила исключительно в кастомную цепочку DOCKER-USER. Docker гарантирует, что эта цепочка вызывается ПЕРЕД его собственными правилами маршрутизации.

Частые вопросы (FAQ)

Почему после ufw reload перестают открываться сайты из контейнеров?

UFW при перезагрузке удаляет цепочки DOCKER из таблицы nat. Необходимо перезапустить службу Docker командой systemctl restart docker.

Открывает ли Docker порты наружу в обход настроек UFW?

Да. Docker вставляет правила в таблицу nat до правил UFW. Для защиты используйте цепочку DOCKER-USER или привязывайте порт к 127.0.0.1.

Как разрешить маршрутизацию трафика между контейнерами на уровне ядра?

Убедитесь, что параметр 'net.ipv4.ip_forward = 1' активен в sysctl. Без него ядро блокирует пересылку пакетов через мост docker0.

Что делать, если ошибка указывает на отсутствие модуля ip_tables в ядре?

Загрузите необходимые модули ядра: modprobe ip_tables && modprobe iptable_nat && modprobe nf_conntrack.