LinuxForum.Fans
Тема

Прокси сервер и несколько провайдеров

Автор: Rombulet 7 сообщений 1849 просмотров
11.12.2014 18:26 #404669

Приветствую!
Возникла необходимость создать кэширующий прокси сервер для локальной сети в посёлке на 50 человек (сеть уже есть и работает, через ВиФи роутеры каждый подключаются к своему центральному роутеру - их всего 4).
Интернет приходит через спутниковые терминалы tooway. Каждый модем питает свой роутер (повторюсь - 4 тарелки - 4 модема - 4 головных роутера), выдавая ему ИП адрес. Клиенты подключаются к роутерам используя статические ИП.
А суть вопроса в том - интернет распробовали, начали активно качать торренты и смотреть видео, что сразу съедает весь трафик. Уговоры не действуют - для них если смотреть он-лайн, это не считается скачиванием, и никак не переубедить..
Решил поставить прокси сервер с кэшем, дабы облегчить работу тарелок, а заодно и обрезать торренты и большие файлы. Вот присматриваю Squid на Ubuntu, либо сразу сборку ipcop нашёл.
Вопрос такой -
не хочется ставить 4 машины на каждую тарелку, а хочется элегантно все 4 тарелки включить в один сервер, а из него раздавать по отдельным группам пользователей (или по контенту разделить - ещё думаю). Так что бы и кэш копился один - всё равно все в одном и том же контакте друг у друга лазят и яндекс с новостями и погодой смотрят.
- можно ли на Squid такое настроить (для одного подключения можно - это я разобрался) или может есть какой то аналог для этой задачи. Может кто решал подобную.

Сеть наипростейшая - 50 роутеров со своими ИП адресами подключаются к головным (они через acces point) и через коммутатор приходят в сервер.
4 канала интернета, которые работают одновременно и должны быть подключены к этому серверу через сетевухи. Каждая сетевуха получает от провайдера свой ИП динамически.
Комп Р4 2,8 - 1024Мб ОЗУ, 80 Гб, куча сетевух.

Спасибо за внимание!=)))

11.12.2014 19:22 · отредактировано #404690

Что-то мне подсказывает, что Вы хотите возложить на SQUID задачу, для решения которой он не предназначен. Это кэширующий прокси. И такое на нем делается элегантно. А вот разводить юзерей по интерфейсам, по провайдерам - это совершенно не его задача.
Как бы я решал эту проблему:
1. Организовал бы два сетевых сегмента на различных коммутаторах, внутренний и внешний. Во внутреннем сидят юзера (точнее - там выход в их локальные сети), во внешнем - подключено оборудование провайдеров.
2. Между этими сегментами ставим шлюз с двумя (вполне хватит для таких скоростей) сетевыми интерфейсами.
3. На внутреннем физическом интерфейсе поднял бы несколько виртуальных интерфейсов по количеству Ваших локальных сетей. На внешнем - то же самое, по количеству провайдеров. На всех интерфейсах соответсвующие IP-адреса. Это элементарно: ifconfig eth0:1 aaa.bbb.ccc.ddd up и опаньки.
4. С помощью iptables поднял бы перенаправление на squid. Это тоже одна строчка в инициализирующем файрвол скрипте. Настроил бы squid общего плана.
5. А теперь самый цимес - есть такое понятие iproute2 и source routing в нём. То есть настраиваем маршрутизацию по источнику, типа эти локальные сети этому провайдеру скормим, эти - другому. Отдельные хосты - третьему.

И все будет работать, каждая задача будет решать то, что ей предписано, прокси - кэшировать трафик, а маршрутизатор - маршрутизировать его.

11.12.2014 20:34 · отредактировано #404700

Подсети это конечно хорошо, не у всех есть оборудование второго уровня. Можно выделить по маске и выпускать пользователей через опредилённую копию запущенного squid ну у него тоже не без достатков (https) ну и это тоже можно обойти. А так курим в сторону MARK в плане iptables и не более

11.12.2014 21:40 #404713

Благодарствую за подсказки! Начну в эту сторону думать.

12.12.2014 01:48 · отредактировано #404733
"Cruiser78" написал:
5. А теперь самый цимес - есть такое понятие iproute2 и source routing в нём. То есть настраиваем маршрутизацию по источнику, типа эти локальные сети этому провайдеру скормим, эти - другому. Отдельные хосты - третьему.

раз пошла такая пьянка порежимс последний огурчик, что из толковых манов на руском можеш посоветовать ? ну кроме "Linux Advanced Routing & Traffic Control HOWTO"

12.12.2014 14:13 · отредактировано #404807
lone_wolf написал:
[quote="Cruiser78"]5. А теперь самый цимес - есть такое понятие iproute2 и source routing в нём. То есть настраиваем маршрутизацию по источнику, типа эти локальные сети этому провайдеру скормим, эти - другому. Отдельные хосты - третьему.

раз пошла такая пьянка порежимс последний огурчик, что из толковых манов на руском можеш посоветовать ? ну кроме "Linux Advanced Routing & Traffic Control HOWTO"[/quote]
Говорят, что гугль знает всё. На опеннете встречал весьма неплохой перевод этой хавтушки (http://www.opennet.ru/docs/RUS/LARTC/). А так - ищущий да обрящет. Не требуется осваивать iptoute2 в полном объеме. Ищем свою ситуацию, смотрим, как её решали умные люди. Или другие, не менее умные люди. Осознаем подход, выбираем оптимальный для своих конкретных условий и внедряем. Уж проблем скопировать с малой переделкой пару строк с какого либо сайта я не вижу. Если только (лично для меня) там регулярок sed'овских не встречается. В этом я откровенно плыву. А не распарисв чужой код, не поняв его - нельзя его вставлять в свою систему. Вдруг там rm -rf / от рута замаскировано...

12.12.2014 14:23 #404810

не ну эт ясно и про приведенную ссылку я сам написал :P а так да согласен чужой код не распарсив не в коем случае не ля совать

Войдите или зарегистрируйтесь, чтобы ответить.