Шлюз, 2 интерфейса смотрят в интернеты через разных провайдеров, 1 в LAN. Внутри LAN есть более другой комп, на который хочется прокинуть tcp:3389 так, чтобы он был виден через оба входа. Но где-то я затупил...
Таблицы и правила маршрутизации создал:
# ip ru sh
0: from all lookup local
32764: from AA.AA.AA.AA lookup prov1
32765: from BB.BB.BB.BB lookup prov2
32766: from all lookup main
32767: from all lookup default
# ip r s ta prov1
default via AA.AA.AA.GW dev vlan101
AA.AA.AA.0/24 dev vlan101 scope link
# ip r s ta prov2
default via BB.BB.BB.GW dev vlan103
BB.BB.BB.BB.0/24 dev vlan103 scope link
DNAT для всех tcp:3389 на вендокомп:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination DD.DD.DD.DD
В nat/POSTROUTING на всех интерфейсах -j SNAT на соответствующие адреса.
И... вендокомп доступен только через того провайдера, на которого указывает default via в таблице main.
Сделал так:
*nat
-A PREROUTING -p tcp -m tcp --dport 3389 -j rdp_redir
-A rdp_redir -j LOG --log-prefix "NPRE:"
-A rdp_redir -j DNAT --to-destination DD.DD.DD.DD
*mangle
-A INPUT -p tcp -m tcp --dport 3389 -j LOG --log-prefix "MI:"
-A FORWARD -p tcp -m tcp --dport 3389 -j LOG --log-prefix "MF:"
Пакет, пришедший от «неактивного» провайдера в nat/PREROUTING попадает (вижу в логе), а в mangle уже нет. Между ними только <routing decision>, если верить
этой картинке.
Что не так? Почему пакет пропадает?