Назад | Перейти на главную страницу

Хост блокирует все, кроме icmp

У меня странная проблема на хосте виртуальных машин Centos 7 (qemu-kvm).

У меня есть две виртуальные машины, которые еще неделю назад отлично работали с мостовыми сетями. Теперь они больше не могут получить доступ ни к чему в сети или в Интернете (за исключением самого хоста). Единственный способ заставить их общаться с внешним миром - это изменить сетевой источник на Virtual / NAT. Это явно не идеально, поскольку они больше не подключены напрямую к моей сети.

Исключением является трафик ICMP. Я могу пинговать другие устройства в сети (и в Интернете) в режиме моста, но весь трафик TCP / UDP заблокирован.

Отслеживая свои шаги, последнее, что я сделал до того, как это произошло, - это запустить службу докеров на хосте (которая была остановлена ​​по какой-то причине), но проблемы с сетевым подключением начались только через 10-20 секунд после этого. Я должен отметить здесь, что у меня нет установленных контейнеров на хосте.

Мой инстинкт подсказывает мне, что где-то есть правило iptables, которое все портит, но я, честно говоря, не знаю, как такое правило могло быть создано (кроме как автоматически докером), и я не знаю, кем именно я должен быть находясь в поиске.

Для записи у меня две сети (192.168.0.0, 192.168.1.0), которые разделены на отдельные сети VLAN. У хост-компьютера есть два сетевых адаптера, по одному подключенному к каждой VLAN, а виртуальные машины подключены к обеим сетям. 0.0 подключен к Интернету, а 1.0 не является. Хост виртуальной машины не действует как шлюз.

Это мои дампы iptables:

Это моя конфигурация 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 и смог подключиться к внешнему миру с виртуальных машин.

Мой инстинкт подсказывает мне, что где-то есть правило iptables, которое все портит, но я, честно говоря, не знаю, как такое правило могло быть создано. (кроме автоматически докером), и я не знаю, что именно мне нужно искать.

Я предполагаю, что ваши инстинкты совершенно правы. Docker использует IPtables для своей внутренней маршрутизации и смешивает ваши существующие правила со своими собственными. В прошлом я отлаживал проблемы с этой настройкой, сравнивая состояние IPtables до и после запуска демона Docker (задержка, которую вы испытали, вероятно, является временем настройки).

Если вы видите, что Docker действительно мешает вашей настройке, вы можете вручную вставить правила Docker или переместить демон Docker на другой компьютер.