Мультилинк pppoe
Добрый день.
Я поискал на форуме и в google, но так и не нашел какого-либо решения своей задачи. А она вот какая:
У меня есть 3 модема, подключенных в свитч. И один комп с одной сетевухой. Соединения пытаюсь поднять так:
config_ppp0=( "ppp" )
link_ppp0="eth1"
plugins_ppp0=( "pppoe" )
username_ppp0='xxxxxxxxxxxxxxxxx'
password_ppp0='xxxxxxxxxxx'
pppd_ppp0=( "defaultroute" "usepeerdns" )
config_ppp1=( "ppp" )
link_ppp1="eth1"
plugins_ppp1=( "pppoe" )
username_ppp1='xxxxxxxxxxxxxxxxx'
password_ppp1='xxxxxxxxxxx'
pppd_ppp1=( "defaultroute" "usepeerdns" )
config_ppp2=( "ppp" )
link_ppp2="eth1"
plugins_ppp2=( "pppoe" )
username_ppp2='xxxxxxxxxxxxxxxxx'
password_ppp2='xxxxxxxxxxx'
pppd_ppp2=( "defaultroute" "usepeerdns" )
При запуске, например, ppp0 все нормально. А при запуске следующего соединения, оно получает статус inactive и авторизация не проходит.
Как указать концентраторы доступа при таком способе подключения? И вообще правильно ли я все делаю?
- Для комментирования войдите или зарегистрируйтесь
У Вас провайдер может не
У Вас провайдер может не разрешать множественную авторизацию.
А из приведенного не совсем понятно, используются ли разные учетные записи для разных модемов. Это на вскидку, может быть и неверно.
Возможно, пакеты ppoe валят все время на один и тот же модем. Либо на все три (не разбирался детально с ppoe, но вроде бы там широко бродкаст используется, то есть посылка пакетов на все аппаратные ethernet-адреса), но поскольку первый уже поднял канал, он отвечает отрицательно, быстрее, чем остальные модемы, и демон pppd отваливается. Нужно давать ему ключ debug и смотреть логи.
(Sir) * Windows looks like an open door, but no way to go *
И еще. С такой конфигурацией
И еще. С такой конфигурацией точно не должно работать -- во-первых, если провайдеры разные, у вас в /etc/resolv.conf попадет ДНС провайдера, соединение с которым было установлено последним. Но это можно решить, статично прописав днс, или установкой кэширующего своего днс-сервера. А вот три маршрута по умолчанию... ))) Не уверен на сто процентов, но, может быть получится что-то с bonding?
(Sir) * Windows looks like an open door, but no way to go *
Уточняю
Допустим я протупил... Не вписываю я в каждом соединении шлюзы по-умолчанию. А провайдер один и логины пароли разные. Кеширующий днс поднят и так. Бондинг пробовал. Чтот там не срослось.Правда при бондинге нужен свитч с поддержкой аггрегации каналов.
Что тогда?
Работать не будет. Ставьте 3
Работать не будет.
Ставьте 3 сетевых карты, либо управляемый свитч (с Vlanами) и каждый модем в свой vlan
Дальше.
Маршрутизация дело тонкое.
3 шлюза поумолчанию - забудьте. работать не будет.
multipath routing - забудьте! работает через ЖО.
Я решил вопрос маршрутизации написанием собственной софтины, которая меряла загруз каждого канала (у меня их было 5) и очередного юзера запихивала в самый свободный канал (сетка на 100 абонентов была)
Heggi
То есть, функционала iproute2 не хватает для того, чтобы динамически распределять нагрузку абонентов (потребителей инета) на три канала? (Я просто на будущее спрашиваю, так как сам такие задачи не решал).
(Sir) * Windows looks like an open door, but no way to go *
Правильно разделять - не
Правильно разделять - не хватает.
Криво разделять (с дисконнектами раз в 10 минут и неумением одного юзера засунуть в один канал) - легко.
Находил модуль к iptables,
Находил модуль к iptables, который делал все кошерно, но проверить я его так и не смог - с новыми ядрами не собирается.
Как
А как тогда каждое новое соединение пихать в отдельный канал?
Средствами iptables? А нагрузку канала как измерить? ping?
Подскажите пожалуйста
Нагрузка канала - сниффер,
Нагрузка канала - сниффер, считающий трафик за единицу времени
рулится все через iproute2, но внешней программой которая анализирует поступающие пакеты с внутреннего интерфейса.
Чуть попозже выложу все исходники этого дела (если найду). Мне это уже не актуально и коммерческой тайны не имеет)
проги тут:
проги тут: http://komarovo.net:88/distr.tar.gz
tcount - снифер.
xrouted - собственно программа роутинга.
в xrouted.c надо переопределить #define NET 0x00DEA8C0 под свою подсетку (тут для 192.168.222.0/24)
if-down.d и if-up.d - скрипты которые выполняются при поднятии/опускании ppp интерфейсов. сложить надо в /etc/ppp/
route-setup - начальная инициализация маршрутизации.
rt-tables надо сложить в /etc/iproute2/ там описание таблиц маршрутизации
test_ppp* - это простенькие скрипты, определяющие живой канал или нет. если пинг не ходит - перезапуск соответствующего интерфейса
моя конфига сети была:
локалка: 192.168.222.1/24,
IP модемов были 172.31.*.1 , где * - 1,2,3,4 или 5. Зависит от модема,
IP на модемных интерфейсах: 172.31.*.2
Программа написана не очень оптимально (в частности надо было писать модуль для iptables, чтобы блокировать пакет в ядре до того как новому юзеру пропишется маршрут, иначе первые пакеты теряются. Проявляется в том, что юзеру приходится 2 раза давить enter в браузере. такой косяк только при первом обращении в инет. потом все ок идет)
Ссылка
Не получается скачать http://komarovo.net:88/distr.tar.gz.
http://ssh.ku-ku.org:88/distr
http://ssh.ku-ku.org:88/distr.tar.gz
попробуй отсюда
Спасибо. Скачал. Буду
Спасибо. Скачал. Буду ковырять. Если не сделаю по Вашему примеру, то буду раскидывать порты на разные шлюзы. Знаю что тупо, но придется...
Mikrotik всё же рекомендую
Mikrotik всё же рекомендую посмотреть.
(Sir) * Windows looks like an open door, but no way to go *
Тогда как поступить
Тогда решить проблему стандартными средствами (iproute2, iptables, возможно shorewall) нельзя?
bash forever
Ну я небольшой скриптик написал, то он перекидывает на рабочий канал с нерабочего. Но в "полевых условиях" пока не тестил.(iproute2)
У нас работает такой вариант:
У нас работает такой вариант: два езернет подключения к двум разным свитчам провайдера (в одном доме) и впн пптп в инет, так называемый dual access. Юзеры собраны на подъездные свитчи, воткнутые в два управляемых, по гигабиту и гигабитным картам заведены в шлюз на ПК, туда же подключено еще через две езер100-карточки кабели от свитчей провайдера. Всем управляет mikrotik (не дженту линукс, на базе 2.6 ядра) Рулежка полная из специальной утилитки, winbox, с компа в локальной сети, и основные функции можно через веб-интерфейс. В общем, справляется очень хорошо, то есть, практически, задача решаемая... Микротика очень много работает у людей, софтина коммерческая, правда. Я к тому, что там linux+iptables+iproute2+... использовано.
(Sir) * Windows looks like an open door, but no way to go *