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

Исходное сообщение
"3 канала к трем разным провайдерам и 3 squid'a"

Отправлено Sergey , 23-Апр-02 01:54 
Есть 3 офиса. В каждом стоит по FreeBSD c squid'ами к которым подключены каналы к разным провайдерам пропускной способностью от 128 до 2048 килобит.
К каждой фре подключены 2048 каналы друг с другом ганяется корпоративный трафик.
Как настроить squid'ы так, чтобы при приходе обращения к одному из сквидов, он сначала спрашивал у двух других своих соседей по корпоративному каналу а потом лез к провайдеру?

Содержание

Сообщения в этом обсуждении
"RE: 3 канала к трем разным провайдерам и 3 squid'a"
Отправлено Mikka , 24-Апр-02 09:16 
Так наверное не получится. У сквидов по моему должна быть жесткая иерархия, т.е. назначается parent сквид, к которому лепятся child сквиды. Вот тогда child сквид будет сначала лезть в parrent, а только потом в инет, если не получит ответа.

"RE: 3 канала к трем разным провайдерам и 3 squid'a"
Отправлено SaneK , 24-Апр-02 09:44 
>Так наверное не получится. У сквидов
>по моему должна быть жесткая
>иерархия, т.е. назначается parent сквид,
>к которому лепятся child сквиды.
>Вот тогда child сквид будет
>сначала лезть в parrent, а
>только потом в инет, если
>не получит ответа.

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

cache_peer server1 parent 3128 3130 weight=50 default no-digest
cache_peer server2 parent 3128 3130 weight=100 default no-digest
cache_peer server3 parent 3128 3130 weight=150 default no-digest
cache_peer server_provider parent 3128 3130 weight=20 default no-digest

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

Помоему так. По крайней мере в доках по сквиду так написано:

http://squid.visolve.com/squid24s1/glossary.htm#weight

Может я и не прав. ХЗ :))



"RE: 3 канала к трем разным провайдерам и 3 squid'a"
Отправлено dmitry , 24-Апр-02 10:55 
>Так наверное не получится. У сквидов
>по моему должна быть жесткая
>иерархия, т.е. назначается parent сквид,
>к которому лепятся child сквиды.
>Вот тогда child сквид будет
>сначала лезть в parrent, а
>только потом в инет, если
>не получит ответа.

немножко не так, у сквидов есть различные типы иерархий, можно сконфигурировать соседние прокси как парент или как сиблинг
parent - старший в иерархии (если запрос отсутствует в локальном кеше, то он направляется к parent, тот - при отсутствии в своем кеше - пересылает запрос дальше и возвращает готовый ответ подчиненному в иерархии; если squid получает от parent TCP_DENIED, то он лезет напрямую)
sibling - одного уровня (если запрос отсутствует в локальном кеше, то он направляется к sibling, тот - при отсутствии в своем кеше - сразу возвращает сообщение об этом, ничего не предпринимая)

для того, чтобы определить соседей, надо прописать в конфиге сквида такие стороки:

cache_peer hostname type proxy-port icp-port options (каждый сосед описывается отдельной строкой)

например:
cache_peer proxy.provider.net sibling 8080 7 no-query no-digest

http://www.bog.pp.ru/work/squid.html
здесь это достаточно хорошо описано