LINUX.ORG.RU

iptables и зеркалирование loopback интерфейса

 ,


0

1

Есть легаси система, которую я сопровождаю и до некоторой степени упорядочиваю. И есть потребность передать внутренний обмен (по loopback) на другой хост.

Для зеркалирования трафика можно использовать TEE как-то так:

iptables -t mangle -A POSTROUTING ${OPTIONS} -j TEE --gateway "${IP}"

Если сделать следующее правило и пинговать заданный адрес то на целевой машине появляются пакеты:

iptables -t mangle -A POSTROUTING -o eth0 -d 8.8.8.8 -j TEE --gateway 192.168.1.2

Но когда я пробую подставить в условия интерфейс lo то на целевой машине ничего не получаю (пинг на 127.0.0.1 виден в tcpdump на локальной машине и не виден на целевой):

iptables -t mangle -A POSTROUTING -o lo -j TEE --gateway 192.168.1.2

Пробовал на POST/PREROUTING, FORWARD, INPUT, OUTPUT. Это я что-то делаю не так и трафик локалхоста идёт другим путём или его принципиально невозможно зеркалировать?

Со следующим правилом пинг идти перестал, то есть трафик похоже идёт как в других случаях:

iptables -t mangle -A POSTROUTING -p icmp --icmp-type any -o lo -j DROP

В man iptables есть только одно упоминание loopback: «except loopback traffic, which involves both INPUT and OUTPUT chains».

★★★★★

Оказывается на целевой машине пакеты появляются не с адреса исходной, слушать в tcpdump нужно также 127.0.0.1.

sin_a ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей