LINUX.ORG.RU
ФорумAdmin

Балансировка трафика на iptables. Привязка к провайдеру всех соединений к удаленному хосту.


0

1

Добрый день всем. Локальная сеть с подключенными тремя провайдерами. Необходимо равномерно распределить нагрузку между ними.

Мои раздумки: Маркировать соединения, и распихивать их по таблицам маршрутизации, при этом соединения на один и тот же ip адрес пускать через одного провайдера. (чтобы не было проблем с авторизацией на сайтах). Ко всему этому как-то прикрутить критерий rateest, который позволяет выбрать менее загруженный интерфейс.. Таким образом, инструменты, которые могут пригодиться: Connmark, ipset, rateest, nth..

Поделитесь опытом, каким образом можно отправлять все соединения на один и тот же ip адрес через одного провайдера. А также, если кто-то использует rateest у себя, расскажите, хорошо ли работает



Последнее исправление: PATRI0T (всего исправлений: 1)

Ответ на: комментарий от tazhate

А сейчас это так и реализовано.. Но mrtg стоит, и сразу видно, что один канал забит под завязку, другой наполовину, а третий пустой совсем. А в другой день наоборот. Т.е. просто «перераскидать» не тот вариант.. ХОтелось бы динамическую балансировку. Как это делается в линуксе?

PATRI0T
() автор топика

>Локальная сеть с подключенными тремя провайдерами. Необходимо равномерно распределить нагрузку между ними.

насколько большая сеть? как реализовано подключение к провайдерам? сколько белых ip-адресов? Есть ли PI-адреса и/или AS? Кароче - схему и подробности работы сети в студию

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

Локальная сеть университета, ~700 компов. Подключение к провайдерам через оптику\эзернет. Адреса все белые: 1 пров- /23, второй /29 и третий /27 дает. Вторых адресов скорее всего доберем до /28.
Каждый линк с эзернетом от провайдера идет в циску, от туда транковый линк в шлюзовой сервер. PI/AS нету. Т.е. схема подключения самая обычная, за исключением трех провайдеров вместо одного. На шлюзе: Ubuntu 10.04, linux-26.39, iptables 1.4.11, squid 3.1.12(tproxy), здесь же стоит шейпер. Компы из локалки сидят через NAT.
Таким образом, основные задачи сервака - давать всем интернет, шейпить трафик и фильтровать его через squidguard или rejik (еще не настроено, но squid tproxy уже работает).
Все это максимально полно выполняет фаерволл: он метит пакеты, и потом по этим меткам происходит и шейпинг и маршрутизация.

Меня интересует возможность динамической балансировки трафика. Про простую балансировку в сети информации пруд пруди, а вот что чуть посложнее, так все платное.
Может кто-то из вас знает, как сварить из connmark, ipset, rateest такую схему, которая позволила бы равномерно нагрузить все каналы, при этом чтобы не было проблем с авторизацией на сайтах.
*По поводу авторизации. Подскажите пожалуйста,я не совсем уверен на счет проблем. Поясню: ПРи балансировке - раскидывать каждое новое соединение на другой канал, при авторизации где-нибудь если человек залогинится на сайте с одного ip, а следующее соединение в этой сессии будет с другого - не возникнут ли проблемы?

PATRI0T
() автор топика

А разве при авторизации на сайтах используется для сохранения сессии ip? Насколько мне известно при удачном логине клиенту выдаётся кука и только благодаря ей определяется, авторизован человек или нет.

shell-script ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

На первый взгляд, тебе может подойти простой mode=2 - XOR

Исключение. Режим, в котором физический интерфейс для передачи пакета расчитывается по формуле «(src hw addr XOR dst hw addr) % slave cnt», где «src hw addr» и «dst hw addr» - MAC-адреса отправителя и получателя, а slave – число работающих физических интерфейсов. Интерфейс отправляющий пакет зависит от MAC адреса получателя, соответсвенно каждый физический сетевой интерфейс отправляет пакеты только определенной группе MAC адрессов всего адресного пространства сети, благодаря чему происходит равномерное распределение нагрузки.
Chaser_Andrey ★★★★★
()
Ответ на: комментарий от PATRI0T

>при авторизации где-нибудь если человек залогинится на сайте с одного ip, а следующее соединение в этой сессии будет с другого - не возникнут ли проблемы?

нормальные сайты НЕ используют ip в дополнение к обычной авторизации. Исключение: параноидальные настройки безопасности(webmoney, там это имеет смысл), просто упоротые сайты(vkontakte.ru к примеру)

Чтобы полностью на 100% избавится от этой проблемы вам будут нужны PI-адреса и AS(простой, но дорогой путь) или скрипт, который будет динамически менять правила шейпера(дешевый, но геморройный путь)

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

Спасибо всем за ответы.

Chaser_Andrey: к сожалению это не покатит, хотя в пределах локальной сети самое лучшее решение. MAC адреса, они будут видны только до ближайшего роутера.

Вот если бы можно было такое реализовать средствами iptables для ip адресов..

PATRI0T
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.