два squid на два интерфейса

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
suh
Junior member
Сообщения: 13
Зарегистрирован: 26 апр 2004, 11:37

два squid на два интерфейса

Сообщение suh » 28 апр 2004, 14:19

FreeBSD 5.2
squid-2.5STABLE2

прокси сервер стоит в локальной сети, сбоку от маршрутизатора-гейта(C-4000)
на сетевом интерфейсе (единственном) настроено еще два интерфейса - vlan1 и vlan2. Роутинг по-умолчанию стоит через vlan1.
Появился второй провайдер, которого надо кешировать тоже.

как на прокси сервере запустить еще один сквид, который запрашивал бы объекты через второй интерфейс(vlan2)

всмысле только tcp_outgoing_address ?

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 29 апр 2004, 14:38

Прошу прощения, но не очень понял, зачем Вы собираетесь запускать второй сквид. Если я понял, то у Вас есть фактически 2 интерфеса сетевых? Вот и настраивайте на них роутинг и сквид будет ходить туда, куда направите. Или Вы что-то еще имели в виду?

suh
Junior member
Сообщения: 13
Зарегистрирован: 26 апр 2004, 11:37

Сообщение suh » 29 апр 2004, 14:47

exLH писал(а):Прошу прощения, но не очень понял, зачем Вы собираетесь запускать второй сквид. Если я понял, то у Вас есть фактически 2 интерфеса сетевых? Вот и настраивайте на них роутинг и сквид будет ходить туда, куда направите. Или Вы что-то еще имели в виду?
а как один сквид направлять то на один то на другой интерфейс.

У нас фактически будет два провайдера - две дороги в интернет.
Так как BGP ради этого ставить/покупать никто не собирается, мне надо как-то развести пользователей по эти двум соскам.
Я собираюсь это делать с помощью http://wpad/wpad.dat скрипта.

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 29 апр 2004, 16:04

Я, признаюсь, никогда не сталкивался с конкретно такой задачей. Но то, что написано про WPAD мне не очень понравилось.

suh
Junior member
Сообщения: 13
Зарегистрирован: 26 апр 2004, 11:37

Сообщение suh » 29 апр 2004, 16:12

exLH писал(а):Я, признаюсь, никогда не сталкивался с конкретно такой задачей. Но то, что написано про WPAD мне не очень понравилось.
а чем не понравилось, позвольте спросить?

у меня около 200 пользователей, живут в 4 подсетях ip сети класса B
скриптом wpad.dat я запросто могу, например, 1 и 3 сети направлять на proxy:8080 а 2 и 4 - на proxy:8081
ип адреса клиентов динамические.

может какие то еще варианты по разруливанию пользователей существуют, а я о них не подозреваю?

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 29 апр 2004, 16:42

Не понравилось сразу словами про:
This is not a recommendation for any product or version.
Дальше только мельком пробежал даже не вникая в суть того, что там происходит. Но из Вашего поста понял. И на мой взгляд, Вам это не поможет. Почему? Да, можно автоматически раздать настройки подсетям, чтобы броузеры лезли как надо (на 2 прокси-сервера). Можно запустить два сквида на одной машине (надо только правильно раздать им командные строки, а возможно и перекомпилировать, если пути в /var/run или куда-то еще жестко зашиты). Точно так же можно легко пустить на одной машине 2 и более самбы. НО! сквид будет лезть всегда только туда, куда идет роутинг. Он не знает что у Вас там 2 влана. Он шлет пакет и все. Я вижу два выхода.
1. Использование родительского прокси (если Вам его провайдер дает) {покажите мне таких провайдеров :) } И тогда нужно пользоваться именно упомянутым Вами tcp_outgoing_address. Вы так и собираетесь? Тогда все должно быть нормально только надо написать отдельный конфиг для каждого сквида.
2. Использовать два компьютера, каждый из которых подключен к своему провайдеру + написать скрипты для перестроения в случае падения одного из каналов.

suh
Junior member
Сообщения: 13
Зарегистрирован: 26 апр 2004, 11:37

Сообщение suh » 29 апр 2004, 16:46

exLH писал(а):Не понравилось сразу словами про:
This is not a recommendation for any product or version.
а где ЭТО было написано :?:

suh
Junior member
Сообщения: 13
Зарегистрирован: 26 апр 2004, 11:37

Сообщение suh » 29 апр 2004, 16:56

exLH писал(а): ...
лезть всегда только туда, куда идет роутинг. Он не знает что у Вас там 2 влана. Он шлет пакет и все.
а как же всякие утилиты типа wget имеющие опцию --bind
те все-таки такое бывает?
Я вижу два выхода.
1. Использование родительского прокси (если Вам его провайдер дает) {покажите мне таких провайдеров :) }
у нас два провайдера. Один разрешает parent другой только sibling изаимоотношения.
И тогда нужно пользоваться именно упомянутым Вами tcp_outgoing_address. Вы так и собираетесь? Тогда все должно быть нормально только надо написать отдельный конфиг для каждого сквида.
по-моему взимоотношения с вышестоящими и сестринскими кешами конфигурируется словом cache_peer
а tcp_outgoing_address все-таки биндит(не знаю как-по-русски) сквид на указанный адрес
2. Использовать два компьютера, каждый из которых подключен к своему провайдеру + написать скрипты для перестроения в случае падения одного из каналов.

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 29 апр 2004, 20:14

Строчка про "not recommended" взята из доки к сквиду. Я, правда, слегка вырвал ее из контекста, потому как имелось в виду, что такое решение не совсем всем броузерам подойдет.

Касательно bind. Да, есть такая опция и у wget и даже у ping. Но давайте рассмотрим сетку с двумя сетевыми картами eth0 и eth1 (как они там в bsd зовутся, не помню). eth0: 10.0.0.1/24; eth1: 192.168.1.1/24 Что будет если я наберу ping -I 192.168.1.1 10.0.0.2 ?
Пинг пойдет. А с вашей точки зрения, так быть не должно. Если я что-то понимаю (а могу и ошибаться :) конечно), то, грубо говоря, интерфейс можно слушать, а вот кричать в него нельзя.

Чтобы у Вас все работало, надо ставить на одном сквиде parent кэш, чтобы только к нему лазить. Можно и tcp_outgoing_address дать, хуже не будет (лучше тоже не должно). Ключевым в моем прошлом посте был именно родительский кэш, а не tcp_outgoing. А на другом сквиде все, как обычно. Тогда (наверое ;) ) будет работать. А для обеспечения работы на случай вылета одного из каналов надо писать скрипт для того чтобы одна из локальных проксей при кризисе становилась родительским кэшом.

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1984
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 30 апр 2004, 14:30

Я реализовывал такую схему в одном из комп. клубов.
Меняется пид, лок файл, имя процесса, директории кеша и логов, порт по которому слушаем клиентов.

Далее варианты:
1. используем 2 парент сервера провайдеров.
2. используем 2 сиблинг сервера провайдеров, у себя ставим niever_direct
3. используя единственный squid, ставим на ядро специальный патч продвинутого роутинга (patch-o-matic http://www.netfilter.org/)
и назначаем разные default gateway для разных подсетей.
(здесь необходимо убедиться подходит ли он к FreeBSD, я не помню)
Последний вариант самый сложный но и самый продвинутый.

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»