
Я хочу регистрировать и отслеживать трафик, проходящий через определенную точку в моей сети. Поэтому в конечном итоге я хочу, чтобы весь трафик, проходящий через мой мост, зеркалировался на IP-адрес IP другой системы, которая прослушивает любой трафик, отправляемый на нее.
Примерно моя текущая конфигурация такова:
- сервер мониторинга/регистрации с интерфейсом мониторинга, настроенным в смешанном режиме
- мост Linux в точке сети, которую я хочу контролировать
- правила iptables для попытки зеркалирования трафика на альтернативный шлюз
iptables -t mangle -A PREROUTING -j TEE --gateway <monitoring ip>
iptables -t mangle -A POSTROUTING -j TEE --gateway <monitoring ip>
Но до сих пор я не вижу трафика, проходящего через какой-либо интерфейс к IP-адресу мониторинга, если только я не попытаюсь отправить на него команду ping напрямую (в этом случае я смогу увидеть трафик как на мосту, так и на порту мониторинга).
Есть еще одна проблема, которая может быть отмечена. Мне пришлось ввести статический маршрут для разрешения ARP для порта мониторинга, потому что по какой-то причине он всегда ставил MAC-адрес порта управления в качестве адреса. Не определил, почему мост получает MAC-адрес управления по IP-адресу мониторинга, когда ни один другой клиент в сети этого не делает.
Буду признателен за любые советы. Извините, если я не предоставил достаточно четких подробностей.
решение1
По умолчанию коммутируемые кадры не передаются через правила iptables. Чтобы изменить это поведение, необходимо включить опцию nf_call_iptables на интерфейсе моста (с помощью команды ip или через файловую систему /proc)
ip link set dev br0 type bridge nf_call_iptables 1
Для ограничения трафика мониторинга используйте соответствие --phys-dev в правилах iptables.