Хорошо, у меня есть Ubuntu, работающий как маршрутизатор / шлюз для моей локальной сети; с 3 сетевыми картами, 2 для WAN и 1 для локальной сети. При необходимости он настроен на балансировку нагрузки между глобальной сетью и аварийным переключением. И о, мне пришлось добавить в уравнение кальмара. В настоящее время он настроен на перенаправление портов http / s на порт squid следующим образом:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3126
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3127
Я считаю, что он работает нормально ... но я не хочу останавливаться на достигнутом. Я хотел бы попробовать TPROXY, но у меня не получается заставить его работать. Я не получаю трафика в access.log, и клиенты теряют время доступа к сайтам.
Треугольная маршрутизация не может быть и речи, и я не думаю, что мне следует использовать мост? Вот моя попытка сделать это:
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j TPROXY --on-ip 0.0.0.0 --on-port 3126 --tproxy-mark 0x1/0x1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 443 -j TPROXY --on-ip 0.0.0.0 --on-port 3127 --tproxy-mark 0x1/0x1
# this is supposed to mark wan traffic going back to lan?
iptables -t mangle -A PREROUTING -i eth2 -p tcp -d 192.168.1.0/24 -j MARK --set-mark 0x1/0x1
iptables -t mangle -A PREROUTING -i eth3 -p tcp -d 192.168.1.0/24 -j MARK --set-mark 0x1/0x1
ip rule add fwmark 0x1/0x1 table 100
ip route add local 0.0.0.0/0 dev lo table 100
Что ж, я не уверен, что TPROXY вообще возможен с моей настройкой. Если это невозможно, мне придется сейчас сдаться. Но если это так, кто-нибудь знает, как?
Спасибо.
Думаю, у меня это заработало - я использовал цепочку переадресации в вики, но явно определил 2 интерфейса для подключения к Интернету :)
Для заинтересованных, вот мое последнее правило маршрутизации / брандмауэра: кликните сюда