TPROXY мешает правилам переадресации портов DNAT

TPROXY мешает правилам переадресации портов DNAT

Я настраиваю TPROXY на своем маршрутизаторе VyOS для пересылки определенного трафика на локальный прозрачный прокси. Он работал довольно хорошо, пока я не обнаружил, что все мои правила переадресации портов DNAT больше не работают (тайм-аут соединения при подключении из внешней сети).

Среда

  • Маршрутизатор: 10.0.0.1/24(Прокси-сервер работает на 1234порту и добавляет SO_MARK с помощью 0xff)
  • Внутренний хост: 10.0.0.2/24(Порт 80должен быть доступен для общественности)

Правила TPROXY

ip rule add fwmark 1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

nft add table myproxy
nft add chain myproxy prerouting { type filter hook prerouting priority 0 \; }
nft add rule myproxy prerouting ip daddr { 127.0.0.1/32, 224.0.0.0/4, 255.255.255.255/32 } return
nft add rule myproxy prerouting meta l4proto tcp ip daddr 10.0.0.0/24 return
nft add rule myproxy prerouting mark 0xff return
nft add rule myproxy prerouting meta l4proto { tcp, udp } mark set 1 tproxy to 127.0.0.1:1234 accept

nft add chain myproxy output { type route hook output priority 0 \; }
nft add rule myproxy output ip daddr { 127.0.0.1/32, 224.0.0.0/4, 255.255.255.255/32 } return
nft add rule myproxy output meta l4proto tcp ip daddr 10.0.0.0/24 return
nft add rule myproxy output mark 0xff return
nft add rule myproxy output meta l4proto { tcp, udp } mark set 1 accept

nft add table filter
nft add chain filter divert { type filter hook prerouting priority -150 \; }
nft add rule filter divert meta l4proto tcp socket transparent 1 meta mark set 1 accept

Правила ДНКАТ

$ nft список таблиц nat

table ip nat {
    chain PREROUTING {
        type nat hook prerouting priority dstnat; policy accept;
        iifname "pppoe0" tcp dport { 8080 } counter packets 7 bytes 400 dnat to 10.0.0.2:80
    }
}

Симптомы

Подключение RouterPublicIP:8080истекло. В идеале оно должно перенаправить трафик на 10.0.0.2:80.

Я предполагаю, что входящий трафик DNAT ошибочно перенаправляется на прокси-сервер (вместо фактического хоста 10.0.0.2), однако я не смог выяснить правильные правила nft.

Заранее спасибо!

Связанный контент