Сценарий заключается в создании контейнера watcher
, способного прослушивать любой сетевой трафик для данной docker-compose
комбинации услуг. Кроме того, я должен иметь возможность, что watcher
напрямую отправляет пакеты выделенным сервисам.
Я обнаружил, что host
работа в сети на watcher
- это, в основном, то, что я искал (включая последствия наличия слишком большого количества информации обо всех сетевых устройствах, управляемых механизмом Docker). Для прямой связи между любыми службами необходимо использовать настройки link
, что противоречит работе host
.
Ток docker-compose.yaml
(полная конфигурация доступна на https://github.com/ohader/docker-watcher-demo)
version: "3.7"
services:
watcher:
build:
context: ./custom
network_mode: host
entrypoint: "tcpdump -i any"
first:
build:
context: ./custom
networks:
default:
ipv4_address: 172.25.0.11
entrypoint: "sleep infinity"
second:
build:
context: ./custom
networks:
default:
ipv4_address: 172.25.0.22
entrypoint: "ping first"
networks:
default:
ipam:
driver: default
config:
- subnet: "172.25.0.0/16"
В основном служба second
проверяет службу first
. watcher
может контролировать это с помощью network_mode: host
.
Так как, например, ping first
невозможно изнутри watcher
, поскольку IP-адреса были жестко закодированы, поэтому watcher
использует, например, ping 172.25.0.11
вместо.
Вопросы
- Есть ли лучший способ для "физического" доступа ко всем пакетам, которые отправляются на динамически скомпонованные сетевые мосты
br-*
с использованием tcpdump
(в настоящее время достигается с помощью host
сети)?
- Есть ли способ объединить функции сетей
host
и bridge
, например также с помощью различных драйверов даже пользовательского плагина? Я посмотрел на драйверы macvlan
и ipvlan
(L2, экспериментальная функция на
Docker), но не смог отслеживать трафик всех составленных сервисов.
Заранее спасибо за любые отзывы или подсказки. Я посмотрел на обнаружение сервисов (консул и т. Д.), Используя overlay
сеть, что показалось мне слишком сложным для моего сценария (без использования большинства этих функций).