Возможно вопрос элементарный и ответ очевидный. Но видимо я заработался, что не могу найти ответ.
Есть шлюз. Клиенты. НАТ. Все как обычно. Есть железка, которая одним портом смотрит в интернет (у нее свой интернет), а другим в мою сеть. И стоит она для того, чтоб отправлять некий трафик через него. То есть есть к примеру сеть ХХХ.ХХХ.ХХХ.ХХХ/24, есть мой шлюз 10.0.0.1 и эта железка с адресом 10.0.0.2. Чтоб клиентам всем не добавлять маршрут (неважно, ручками или через dhcp), на моем шлюзе просто сделал правило вида
route add -net XXX.XXX.XXX.XXX netmask 255.255.255.0 gw 10.0.0.2
FORWARD разрешен. Да и вообще все работает. Все замечательно. Но вот мне хотелось кое что проверить и как обычно запустил
tcpdump -i eth0 dst XXX.XXX.XXX.XXX
И.... И ничего. При этом если сбрасывать conntrack, то в какой-то момент tcpdump начинает видеть первые пару пакетов, а потом вновь тишина. Клиенты за nat повторюсь не испытывают проблем. То есть трафик, который должен идти через эту железку(10.0.0.2) идет. Но tcpdump не видит. Как же мне в случае проблем заниматься отладкой? Если я удаляю правило из таблицы маршрутизации, то tcpdump так же начинает видеть входящие пакеты, правда, естественно, они никуда не уходят, потому что без этой железки в эту сеть не попасть.
Возможно это тривиальный вопрос. Но то ли я переработал и не вижу очевидного. ТО ли что-то еще. В интернете тоже не нашел информации, что от правил маршрутизации tcpdump может перестать видеть пакеты.