URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 5689
[ Назад ]

Исходное сообщение
"(SQUID) Проблема с tcp_outgoing_address"

Отправлено tmw , 09-Авг-08 11:14 
Добрый день!
Ситуация такая:
Ось FreeBSD 7.0
Есть два канала, первый dial-up, второй спутниковый канал поднятый на mpd через dial-up.
По дефолту стоит маршрут dial-up.
В итоге два интерфейса:
tun0 - dialup 192.168.2.155 --> 192.168.2.254
ng0 - тарелка. 172.27.20.44 --> 82.211.176.1
Задача следующая:
Конкретные сайты пускать через спутниковый канал, а всё остальное через дефолтный маршрут.
Squid настроен следующим образом:
acl sky url_regex rambler.ru yandex.ru ... ...
tcp_outgoing_address 82.211.176.1 sky
Те сайты которые не попадают под правило sky, открываются без проблем, стоит обратиться к сайтам из правила sky, выскакивает ошибка:
---------------------------------------------
ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: http://www.rambler.ru/

The following error was encountered:
Socket Failure

The system returned:
    (49) Can't assign requested address

Squid is unable to create a TCP socket, presumably due to excessive load. Please retry your request.
---------------------------------------------
В логах сквида пишется:
commBind: Cannot bind socket FD 26 to 82.211.176.1:0 (49) Can't assign requested address
Перерыл инет пока не нашёл способа обойти это.
Короче сквид может забиндиться только на локальный адрес, который присутствует в системе.
Есть идея, но не знаю пока как её реализовать:
Поднять какойто виртуальный интерфейс и сделать, что то типа диверта на 82.211.176.1 который висит на ng0, а в сквиде указать на виртуальный айпи этого интерфеса.
Или есть какоето другое решение этой проблемы?
Заранее благодарен!!!


Содержание

Сообщения в этом обсуждении
"(SQUID) Проблема с tcp_outgoing_address"
Отправлено aaa , 09-Авг-08 12:31 
может route попробуете



"(SQUID) Проблема с tcp_outgoing_address"
Отправлено tmw , 09-Авг-08 13:31 
route add ip_rambler ip_tarelka
Вариант с route работает, но он слишком громозкий, не реально вычислить все айпишники сайтов, которые мне нужны, и потом у сайтов могут меняться айпишники.

"(SQUID) Проблема с tcp_outgoing_address"
Отправлено tmw , 09-Авг-08 17:36 
У меня возникла идея по поводу vlan.
Поднимаем виртуальный интерфейс vlan0, присвиваем ему например 192.168.10.1
ifconfig vlan0 create
ifconfig vlan0 192.168.10.1
В сквиде в параметре tcp_outgoing_address ставим этот ip:
tcp_outgoing_address 192.168.10.1
Вопрос: теперь как перенаправлять все запросы с этого адреса на ng0, айпишник сервера, который смотрит на тарелку, описание конфигурации выше.
И чтобы они корректно возвращались до клиента.
Жду Ваших предложений.
Заранее благодарен!

"(SQUID) Проблема с tcp_outgoing_address"
Отправлено stempher , 09-Авг-08 20:41 
>У меня возникла идея по поводу vlan.
>Поднимаем виртуальный интерфейс vlan0, присвиваем ему например 192.168.10.1
>ifconfig vlan0 create
>ifconfig vlan0 192.168.10.1
>В сквиде в параметре tcp_outgoing_address ставим этот ip:
>tcp_outgoing_address 192.168.10.1
>Вопрос: теперь как перенаправлять все запросы с этого адреса на ng0

создать таблицу маршрутизации iproute2

возникла похожая проблема - пока не решил...


"(SQUID) Проблема с tcp_outgoing_address"
Отправлено hRex , 09-Сен-08 07:31 
Если сделать что-то вроде
ipfw add count log from 82.211.176.1 to any out via tun0
И заглянуть в лог думаю проблема станет яснее...
Как вариант мутить что-нибудь вроде (pf):
pass out route to ...
Стоп! А зачем, Вы пытаетесь назначить исходящим пакетам адрес своего шлюза???! А нука бегом читать МАНы !!!
(Если конечно я правильно понял
>tun0 - dialup 192.168.2.155 --> 192.168.2.254
>ng0 - тарелка. 172.27.20.44 --> 82.211.176.1

)


"(SQUID) Проблема с tcp_outgoing_address"
Отправлено tmw , 09-Сен-08 10:47 
Адрес второго шлюза я хочу назначать только определённым сайтам или ip.
Мне надо чтобы все сайты ходили через маршрут по умолчанию в системе, а определённые сайты или ip ходили через тарелку.

"(SQUID) Проблема с tcp_outgoing_address"
Отправлено hRex , 10-Сен-08 05:00 
А черт с ним, не хотите читать как хотите ... вам же хуже
в сквиде:

tcp_outgoing_address 172.27.20.44 sky

если после этого не заработет поднимаете pf загружаете туда среди прочих правило:

pass out route-to ng0 82.211.176.1 inet from 172.27.20.44

при условии что 82.211.176.1 это адрес шлюза, а 172.27.20.44 это ваш локальный адрес, если иначе то наоборот.


"(SQUID) Проблема с tcp_outgoing_address"
Отправлено tmw , 17-Сен-08 08:25 
Когда я прописал правило в pf он у меня сказал что syntax error и указал именно на ту строчку где pass out route-to ng0 82.211.176.1 inet from 172.27.20.44