LINUX.ORG.RU
ФорумAdmin

squid и маршрутизация

 


0

1

Стоит squid 3.1.6. Настроен как tproxy. Пока никаких ограничений для теста. Пропускает все.

#no local caching
maximum_object_size 0 KB
minimum_object_size 0 KB
no_cache deny all

http_port 3129 tproxy

http_access allow all

access_log /var/log/squid3/access.log squid

В iptables так перенаправляются запросы.

iptables -t nat -A PREROUTING -i eth3 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3129

Запрос прилетает на squid. Дальше запрос улетает на удаленный сайт.В качестве source_ip клиентски ip,потому что tproxy. Обратно ответ идет по другому маршруту напрямую на ip клиента минуя прокси. В логах сквида появляется ошибка с кодом 504.

1355210815.107 182111 33.87.45.66 TCP_MISS/504 4043 GET http://www.site.ru/ - DIRECT/55.66.77.99 text/html

Вопрос. Может ли это быть из-за того,что сквид ждет ответа от сайта. А ответ от сайта улетел по другому маршруту обратно?

Спасибо.

Ну вы попробуйте на компьютере поставить ипи 8.8.8.8 и пустить его через ваш прокси, вы ответите на свой вопрос.

pyatak123 ()

А в чём смысл обратный трафик пропускать не через сквид? И клиент при таком раскладе не будет получать ответы: как минимум исходящий порт не сойдётся.

unC0Rr ★★★★★ ()
Ответ на: комментарий от unC0Rr

Да. К сожаления так работать не будет. Я понял. Порты не сходятся. Клиенту прилетуют пакеты на другой порт, которые он не ждет.

Задача была прозрачно пропускать исходящий HTTP трафик от клиентов при этом сохранять в качечтве source_ip реальный внешний ip адрес клиента. Чтобы на WEB сервер назначения в интернете получал пакет с ip клиента.

Тогда не понятно как tproxy застваляют работать таким образом?

atomlab ()
Ответ на: комментарий от atomlab

Ну если бы ваша подсеть с интернета рутилась через ваш сквид то проблем бы не было.

pyatak123 ()
iptables -t nat -A PREROUTING -i eth3 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3129

Чёита? Почему не REDIRECT? DNAT не используют для перенаправления порта на ту же машину. Если REDIRECT неприемлем по религиозным соображениям, то придётся к DNAT'у прикрутить ещё и SNAT.

nbw ★★★ ()
Ответ на: комментарий от nbw

Да даже если REDIRECT сделать,то разницы нет. Все равно запросы прокидываются просто в сквид. В любом случае все ответы летят на внешний ip клиента на порты,на которых клиент не ждет ответов. SNAT тут ненужен. Ибо натить ничего ненадо.

Вариант один. Только все ответы заворачивать на сквид,чтобы он их обратно клиенту передал.

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