DockerContaineraer беспорядочный режим частично работает

У меня странное состояние виртуальной сети (докер-мосты)

У меня есть два докера, подключенные к одному и тому же мосту через docker-compose. Один докер — «зонд», другой — «инжектор». Injector использует tcpreplay для воспроизведения захвата, и «зонд» должен получить его через tcpdump. Излишне говорить, что воспроизведенный захват не имеет никакого отношения к IP-адресам или Mac NICS, подключенных к мосту. Пинг между хостами работает нормально.

Теперь есть третий сетевой адаптер, автоматически доступный хост-компьютеру через докер.

             +--->NIC1 ["injector" docker / uses tcpreplay to inject ]
bridge +--->NIC2 ["probe" docker / uses tcpdump to listen]
|
+--- NIC3 host [used for testing sometimes as injector and sometimes as listener]  

На самом деле происходит следующее: когда tcpreplay запускается с HOST (вводит захват через NIC3), все работает нормально, а tcpdump на «зонде» показывает воспроизведенный трафик. Однако когда tcpreplay используется на инжекторе и вводит захват через NIC1, только первые два пакета захвата можно увидеть на «зонде», а затем весь трафик на «зонде» прекращается (также перестанет работать инъекция с хоста). если tcpdump запущен на NIC3, он нормально получает весь захваченный трафик от инжектора.

  • ifconfig на «зонде» не показывает отброшенных пакетов
  • iptables на хосте не увеличивает счетчики отброшенных пакетов (надеюсь, я делаю это правильно «sudo iptables -L -v -n | grep -i drop»)
  • tcpdump автоматически включает беспорядочный режим на зонде

Есть ли у кого-нибудь объяснение этому асимметричному поведению? Есть идеи, как его отладить?

Инжектор и хост — AlmaLinux:8, зонд —Centos:7tcpreplay версии 4.4.1

0 ответов

Другие вопросы по тегам