LINUX.ORG.RU

История изменений

Исправление samson, (текущая версия) :

Почему? Если будет -o внешний-интерфейс, то локальные не попадут под это правило.

Я то написал правило (-s) для hairpin nat (оно же и остальной nat в инет делает). Тут действительно есть минус в том, что src-addr клиента подменится адресом шлюза и стаистики не будет видно.

Как я понимаю, совет anc подразумевает следуещее:

# на шлюзе
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.222:3128
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 443 -j DNAT --to-destination 192.168.0.222:3129
# snat наружу, пакеты перенаправленные на squid под это правило действительно не попадут:
iptables -t nat -A POSTROUTING -o OUT_IFACE -j MASQUERADE
# это правило комментируем (для hairpin) 
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE 
Вот тут возникают сомнения, какой ответ (с каким src-ip) получит клиент (как прозрачный squid ответит клиенту)... Но со статистикой будет все ок. Надо проверять.

ps: лишним не будет:

# на squid можно (не не обязательно) прописать следующее
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3129

pps: вот сам сижу и думаю, применим ли, кстати, в такой ситуации hairpin вообще или нет... но из расуждений тут: http://macrodmin.ru/2011/08/osobennosti-prozrachnogo-proksi следует, что хотя бы работает.

ppps: тут я имел ввиду вариант №2

Исходная версия samson, :

Почему? Если будет -o внешний-интерфейс, то локальные не попадут под это правило.

Я то написал правило (-s) для hairpin nat (оно же и остальной nat в инет делает). Тут действительно есть минус в том, что src-addr клиента подменится адресом шлюза и стаистики не будет видно.

Как я понимаю, совет anc подразумевает следуещее:

# на шлюзе
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.222:3128
iptables -t nat -A PREROUTING -s 192.168.0.100-110 -p tcp --dport 443 -j DNAT --to-destination 192.168.0.222:3129
# snat наружу, пакеты перенаправленные на squid под это правило действительно не попадут:
iptables -t nat -A POSTROUTING -o OUT_IFACE -j MASQUERADE
# это правило комментируем (для hairpin) 
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE 
Вот тут возникают сомнения, какой ответ (с каким src-ip) получит клиент (как прозрачный squid ответит клиенту)... Но со статистикой будет все ок. Надо проверять.

ps: лишним не будет:

# на squid можно (не не обязательно) прописать следующее
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i ens192 -s 192.168.0.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3129

pps: вот сам сижу и думаю, применим ли, кстати, в такой ситуации hairpin вообще или нет... но из расуждений тут: http://macrodmin.ru/2011/08/osobennosti-prozrachnogo-proksi следует, что хотя бы работает.