Хост блокирует все кроме icmp
У меня странная проблема на хосте Centos 7 VM (qemu-kvm).
У меня есть две виртуальные машины, которые до недели назад прекрасно работали с мостовыми сетями. Теперь они больше не могут получить доступ к чему-либо в сети или в Интернете (за исключением самого хоста). Единственный способ заставить их общаться с внешним миром - это изменить источник сети на Virtual/NAT. Это явно не идеально, так как они больше не подключены напрямую к моей сети.
Исключением является трафик ICMP. Я могу пинговать другие устройства в сети (и в Интернете), пока они соединены мостом, но весь трафик TCP/UDP заблокирован.
Возвращаясь к моим шагам, последнее, что я сделал до того, как это произошло, - запустил на хосте сервис докера (который по какой-то причине был остановлен), но проблемы с сетевым подключением начались только через 10-20 секунд после этого. Здесь следует отметить, что на хосте не настроено ни одного контейнера.
Мой инстинкт инстинкта подсказывает мне, что где-то есть правило iptables, которое все портит, но я, честно говоря, не знаю, как такое правило могло быть создано (кроме как автоматически докером), и я не знаю, каким именно я должен быть находясь в поиске.
Для записи у меня есть две сети (192.168.0.0
, 192.168.1.0
), которые разделены на отдельные VLAN. Хост-машина имеет два сетевых адаптера, один из которых подключен к каждой VLAN, а виртуальные машины подключены к обеим сетям. 0.0
подключен к интернету, а 1.0
не является. Хост VM не действует как шлюз.
Это мои дампы iptables:
- фильтр: https://pastebin.com/xBLY2Kad
- nat: https://pastebin.com/PFTCA80u
- mangle: https://pastebin.com/PSEH5ubY
- raw: https://pastebin.com/T1x2Xe3H
- безопасность: https://pastebin.com/GbPmCA3E
Это мой конфиг firewalld:
internal (active)
target: default
icmp-block-inversion: no
interfaces: bridge0
sources:
services: ssh mdns samba-client dhcpv6-client samba mountd rpc-bind nfs ntp dns
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
cameras (active)
target: default
icmp-block-inversion: no
interfaces: bridge1
sources: 192.168.1.4/32
services: ntp
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[РЕДАКТИРОВАТЬ]
Я добавляю вывод iptables -S
здесь, как это явно более полезно: https://pastebin.com/wKAtSKPG
Кроме того, я подтвердил, что это проблема с брандмауэром после того, как я остановил firewalld и смог подключиться к внешнему миру с виртуальных машин.
1 ответ
Мой инстинкт инстинкта подсказывает мне, что где-то есть правило iptables, которое все портит, но я, честно говоря, не знаю, как такое правило могло быть создано (кроме как автоматически докером), и я не знаю, каким именно я должен быть находясь в поиске.
Я предполагаю, что ваши инстинкты абсолютно верны. Docker использует IPtables для внутренней маршрутизации и смешивает существующие правила с собственными. В прошлом я отлаживал проблемы с этой настройкой, сравнивая состояние IPtables до и после запуска демона Docker (задержка, с которой вы столкнулись, вероятно, является временем установки).
Если вы видите, что Docker действительно нарушает вашу настройку, вы можете добавить правила Docker вручную или перенести демон Docker на другую машину.