Jump to content
Sign in to follow this  
Ineu

Раздельная маршрутизация и Squid

Recommended Posts

Здравствуйте, товарищи! С надвигающимися вас праздничками Wink

Ситуация: сервер, три интерфейса, внутренний 192.168.1.1, два инетовских канала. Squid. В iptables прописан редирект от 192.168.1.0 с портов 80, 8080 твт на 3128. Все бы хорошо, но возникла необходимость раскидать трафик в зависимости от ИПов по разным каналам.

ip rule add from 192.168.1.1 table 1

ip rule add from 192.168.1.2 table 2

ip route add default dev ppp0 table 1

ip route add default dev ppp1 table 2

Просто трафик идет через положенные default route'ы, а вот переадресованный уходит через Сквида по общесистемному дефолт роуту. В данный момент я вовсе отрубил переадресацию, но это пока, а проксик все равно нужен.

Задача: Пускать http трафик через проксик, но так, чтобы он уходил согласно положенным таблицам маршрутизации, а не через main.

Возможно ли решить такую проблему средствами Сквида? Если нет, то как ее все-таки можно решить?

Share this post


Link to post
Share on other sites

Нет, через MASQUERADE. Вы имеете в виду - насильно раскидывать трафик по интерфейсам?

iptables -A PREROUTING -s 192.168.1.0/24 -p tcp -m multiport --source-ports 80,8080 -j REDIRECT --to-ports 3128

iptables -A POSTROUTING -s 192.168.1.1 -j SNAT --to-source <адрес ppp0>

iptables -A POSTROUTING -s 192.168.1.2 -j SNAT --to-source <адрес ppp1>

Так?

Share this post


Link to post
Share on other sites

Цитата:

ы имеете в виду - насильно раскидывать трафик по интерфейсам?

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

Дело еще в том что раз http трафик заворачивается на сквид, то адресом источника становится адрес сквида и поэтому идея рулить трафик через iproute2 скорее всего не пройдет.

squid выступает здесь в роли маскарада, он подменяет адрес источника на свой а потом обратно.

Получается решение о роутинге принимается уже для пакетов с адресом сквида.

как вариант завести два сквида на разных портах и разрулить сети между ними.

Share this post


Link to post
Share on other sites

Цитата:

адресом источника становится адрес сквида

Да... Как-то не подумал :):)Smile

Цитата:

завести два сквида на разных портах и разрулить сети между ними.

Наверно, так и придется делать...

Share this post


Link to post
Share on other sites

Есть у сквида опция tcp_outgoing_address, тока че-то она у меня пока не пашет Sad

А еще у него есть настройки parent proxy, возникает вопрос - можно ли требовать данные с родительского проксика в зависимости от пользователя? Например:

acl XXX src 192.168.1.2

<проксик для XXX>

Но это вопрос конкретный. А абстрактнее: не кинет ли кто-нить линку на возможно более полную доку по настройке Сквида (комментарии в дефолтном конфиге - не в счет Smile)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...