LINUX.ORG.RU
решено ФорумAdmin

Привязка прокси к сетевому интерфейсу


0

1

Привет, лор.
Что есть:
На компьютере интерфейсы ppp{0,1,2,3,4}, на каждом есть выход в интернет, в конфиге подключения не указан defaultroute.

Что нужно:
Сделать прокси на разных портах, чтобы при обращении к localhost:3128 трафик шел через ppp0; при обращении к localhost:3129 трафик шел через ppp1 и т.д.

Какой прокси-сервер умеет привязываться к сетевым интерфейсам?

Что значит привязываться в вашем понимании? По описанию у вас все должно быть привязано (bound) к localhost, но на разных портах. Если речь о том, через что прокси полезет за вас в интернет, то у squid есть опция tcp_outgoing_address, которая и определяет выходной интерфейс. В вашем случае (explicit proxy) надо завести несколько экземпляров squid на разных портах с разными tcp_outgoing_address http://wiki.squid-cache.org/MultipleInstances

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

И про policy routing забывать не надо, иначе эта конструкция работать не будет.

echo "200 ISP1" >> /etc/iproute2/rt_tables
echo "201 ISP2" >> /etc/iproute2/rt_tables
...
ip route add default via $GW1 table ISP1
ip route add default via $GW2 table ISP2
...
ip rule add from $IP1 lookup ISP1
ip rule add from $IP2 lookup ISP2
..

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

без policy-routing и dgw не будет работать.

Сквид умеет привязываться только к адресам интерфейсов.

Если они (адреса) фиксированные, то все просто, а ести они динамические, то есть такая хреннь - «Binding to Non-local Addresses». Теоретически с ее помощью и MASQUERADE можно заставить работать squid без реконфигурации после up/down интерфейсов.

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

Можно, например, делать по отдельной инстанции сквида на каждое впн (можно даже инит-скрипт под это дело написать), в этом случае можно завелосипедить обработку соответствующего конфига sed'ом, которая будет вызываться из /etc/ppp/ip-up.d/, забирая адрес динамического интерфейса, после чего стартовать уже нужную инстанцию. Т.е., реально обойтись без таких костылей, как MASQUERADE :)

Binding to Non-local Addresses

Надо же, не знал, что так можно. Это работает не только из-под рута?

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

ему нужен CAP_NET_ADMIN и возможно CAP_NET_RAW. Все это есть если сквид собран с поддержкой transparent proxy.

но оно не нужно. Достаточно masquerade & policy-routing.

А сквид прибиндить к фиксированным адресам.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.