LINUX.ORG.RU
решено ФорумAdmin

Форвардинг от 2х провайдеров в свою LAN - работает только один.


0

1

Шлюз, 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>, если верить этой картинке.
Что не так? Почему пакет пропадает?

ip rule add fwmark 11 table prov1
ip rule add fwmark 22 table prov2

iptables -t mangle -A PREROUTING -s AA.AA.AA.AA -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -s BB.BB.BB.BB -j MARK --set-mark 22

Не уверен, что поможет именно это, но по-моему копать нужно в этом направлении.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.