Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: сервер ubuntu и 2 провайдера  (Прочитано 20284 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #60 : 02 Июня 2015, 15:34:11 »
Вам в Вашем случае маршрутизация нужна только через интерфейс.
ip route add default dev $PPP_IFACE table {a,b,c}
Добавил два скрипта с правами 755 в /etc/ppp/ip-{up,down}.d/ppp-{up,down} с таким содержимым (prov и prov2 - имена рррое-соединений)
(Нажмите, чтобы показать/скрыть)
Добавил в /etc/iproute2/rt_tables две таблицы
(Нажмите, чтобы показать/скрыть)
Перегрузил сервер, но маршруты не поднялись, инета на сервере нет и доступа через внешние интерфейсы тоже нет :'(
« Последнее редактирование: 03 Июня 2015, 10:47:14 от Sliver »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #61 : 02 Июня 2015, 18:27:56 »
Вам бы сначала разобраться, что делает скрипт и какие значения переменных он содержит. Выше уже рассказывал куда посмотреть. У Вас ipparam в /etc/ppp/peers/<pppd_opts> объявлен? Судя по прошлым листингам — нет.
OpenWrt 19.07

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера [Решено]
« Ответ #62 : 03 Июня 2015, 00:03:21 »
У Вас ipparam в /etc/ppp/peers/<pppd_opts> объявлен? Судя по прошлым листингам — нет.
Благодарю за оказанную помощь :D. Готовое решение для случая двух рррое-соединенй с провайдером(и).
Настройка рррое-соединения для первого канала /etc/ppp/peers/prov
(Нажмите, чтобы показать/скрыть)
Для второго канала /etc/ppp/peers/prov2
(Нажмите, чтобы показать/скрыть)
Пароли для рррое-соединений хранятся в /etc/ppp/chap-secrets:
(Нажмите, чтобы показать/скрыть)
Настройка сетевых интерфейсов Linux /etc/network/interfaces:
(Нажмите, чтобы показать/скрыть)
Скрипты для поднятия необходимых маршрутов создаём в /etc/ppp/ip-up.d/ppp-up
(Нажмите, чтобы показать/скрыть)
Скрипт для удаления маршрутов при выключении рррое-соединения в /etc/ppp/ip-down.d/ppp-down
(Нажмите, чтобы показать/скрыть)
Добавляем в /etc/iproute2/rt_tables две таблицы
(Нажмите, чтобы показать/скрыть)
Перегружаем.
Вывод:
В результате получаем два рррое-соединения с доступом из внешней сети, с инетом через первое соединение с метрикой 10 и возможностью расшарить инет через этот интерфейс, а также маршрутизацией реальных подсетей провайдера, получаемые через рррое-соединения для моего примера, но пока без балансировки трафика и автоматического переключения каналов.
Недостаток в том, что к сожалению нет возможности настройки данной конфигурации через админ-панель. Также, в моем случае, провайдер один, в следствии чего без внесения соответствующих правил в iptables пакеты от одного рррое-соденения могут попадать на другой ррр интерфейс, что может привести к закольцовке, но пока всё работает, т.к. на коммутаторе провайдера наверно включены соответствующие функции устранения данной проблемы.
P.S. не оставляю попыток починить shorewall, ошибка которого явно указывает на то, что в системе один из скриптов поднимает маршрут для моста br0 раньше, чем это делает надстройка шоревола. Также параллельно изучаю возможности настройки BIRD для балансировки каналов и проверки их работоспособности.
« Последнее редактирование: 04 Июня 2015, 14:45:57 от Sliver »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #63 : 03 Июня 2015, 23:28:13 »
Хорошо, что получилось.
без балансировки трафика и автоматического переключения каналов.
С автоматическим переключением каналов есть два варианта действий и только для внутренних приватных подсетей. Реальные подсети наверняка маршрутизируются через поднятые PPP-линки на стороне ISP.
Оба варианта пингуют заданные хосты, но маршрутизация осуществляется различными способами.
Первый вариант передёргивает маршрут по умолчанию в зависимости от доступности заданного хоста, второй меняет правила iptables.
Некоторые функции, которые используются у меня. Может Вам что-нибудь пригодиться. Это второй вариант.
(Нажмите, чтобы показать/скрыть)

По поводу BIRD. В теме, где мной описывается работа демона в качестве проверялки на dead gateway, описан частный случай, Вам он скорее всего не подойдёт.
Что же касается балансировки внутренней приватной подсети, то тут тоже не так всё радужно. Для вменяемой работы потребуется наложить патчи на ядро от Юлиана Анастасова конкретно патчсет patch-<kernel_version>-ja1.patch http://www.ssi.bg/~ja/
Впрочем, эта тема уже для другого топика  8)
« Последнее редактирование: 04 Июня 2015, 00:04:53 от koshev »
OpenWrt 19.07

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #64 : 04 Июня 2015, 23:23:17 »
Реальные подсети наверняка маршрутизируются через поднятые PPP-линки на стороне ISP.
Именно так, перемаршрутизировать подсети через другие РРР-линки не получится даже не смотря на то, что провайдер один. :)
Первый вариант передёргивает маршрут по умолчанию в зависимости от доступности заданного хоста, второй меняет правила iptables.
На сколько мне понятно, в обоих случаях весь трафик направляется через определённый канал, в зависимости от доступности, а балансировка происходит только между четырьмя разделёнными подсетями?
Некоторые функции, которые используются у меня. Может Вам что-нибудь пригодиться
Внимательно изучил Ваш пример, могу утверждать, что разработчики Kerio FW обзавидуются ;).
У меня имеется по сути VPS, управляемый связкой Cloudmin и Virtualmin, благодаря которым в короткие сроки и легко настроены виртуальные машины на KVM, а также подняты веб-серверы со всем необходим для хостинга, но не хватает знаний по мультироутингу :-[ Именно по этому выбор пал на shorewall, но к сожалению для него также очень ограниченная документация, что не позволяет мне разобраться во всех тонкостях настройки. Но просмотрев Ваш пример скрипта и настроек iptables, понимаю, что надстройка шоревалл в итоге генерит что-то очень похожее. Хотя в документации чётко написано, что записи в файле providers не обеспечивают автоматического переключения в случае сбоя одного из каналов связи с Internet, всё равно каким-то образом эта надстройка обеспечивает отслеживание соединений, входящие через интерфейс провайдера, чтобы ответы могли маршрутизироваться обратно через этот же интерфейс, а также позволяет распределять нагрузку исходящих потоков между несколькими провайдерами. Как это происходит, для меня пока загадка, т.к. похоже один из скриптов Cloudmin поднимает маршрут по умолчанию для моста, необходимого для работы виртуальных машин, что не даёт мне запустить сам шоревалл и проверить. Но это к теме не относиться :)
Вы нигде не найдёте готовых решений, я тоже искал — увы, ни одна вебморда не даёт того, что даёт шелл, т.е простых решений нет.
При помощи Webmin в меню Прочее-Состояние системы и служб можно создать датчик Проверка удаленного узла (Ping), выставив необходимый интервал и задав необходимые команды, к примеру, по замене маршрута по умолчанию или замене правил iptables. Это маленький пример автоматизации процесса :)
Что же касается балансировки внутренней приватной подсети, то тут тоже не так всё радужно.
Ясно :-\. Прочёл о патчинге ядра, но для себя поставил задачу настроить третий канал интернета с DHCP и сделать его маршрутом по умолчанию и наконец убрать все роутеры, для чего изучаю man и необходимые параметры для создания скрипта в /etc/dhcp/dhclient-{enter,exit}-hooks.d/ с целью поднятия необходимых маршрутов.

P.S. Благодарю за Вашу помощь, без неё времени на сведение всех найденных статей про uplink и создания данного конфига ушло бы в не знаю сколько раз больше.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #65 : 05 Июня 2015, 00:30:05 »
На сколько мне понятно, в обоих случаях весь трафик направляется через определённый канал, в зависимости от доступности, а балансировка происходит только между четырьмя разделёнными подсетями?
Всё так, за исключением того, что это одна логическая подсеть 192.168.0.0/24. Выше неточно описал структуру.
« Последнее редактирование: 05 Июня 2015, 00:32:00 от koshev »
OpenWrt 19.07

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #66 : 10 Июня 2015, 17:29:03 »
У меня нет PPPoE, точнее был, теперь нет. Сейчас на двух WAN — DHCP, и скрипт заточен для DHCP
Пытаюсь разобраться с настройкой поднятия статических маршрутов для DHCP в случае нескольких провайдеров. Выяснил, что в Ubuntu настройкой маршрутов, шлюза по умолчанию, DNS и много чего ещё занимается скрипт /sbin/dhclient-script, использующий параметры из /etc/dhcp3/dhclient.conf и запускает также дополнительные скрипты для поднятия статических маршрутов, лежащие в /etc/dhcp/dhclient-{enter,exit}-hooks.d/.
Для того, чтобы поднять дополнительные маршруты для третьего провайдера мне необходимо:
  • Отключить параметр, поднимающий маршрут по умолчанию в системе
  • Отключить запрос на установку DNS и установить его вручную
  • Получить настройки IP от провайдера
  • Создать скрипты для поднятия необходимых маршрутов в /etc/dhcp/dhclient-{enter,exit}-hooks.d/
  • Объявить новую таблицу маршрутизации для маршрутов и правил в /etc/iproute2/rt_tables
В общем, мои конфиги с учётом первых двух рррое-соединений
(Нажмите, чтобы показать/скрыть)
Но это скорее всего работать не будет :-\
В связи с чем вопрос:
  • Как правильно указать маршрут для DHCP, т.к. при создании правила указал параметр $router - IP шлюза, а надо наверно $net_address?
  • Какие параметры нужно указать в /etc/dhcp3/dhclient.conf, что бы отключить запрос на установку шлюза по умолчанию и запрос установку DNS провайдера?
:)
« Последнее редактирование: 10 Июня 2015, 17:31:10 от Sliver »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #67 : 10 Июня 2015, 17:39:56 »
Вообще-то в dhclient.conf можно задать разные настрйоки для конкретных интерфейсов.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #68 : 11 Июня 2015, 09:48:29 »
AnrDaemon, да, мне это известно. Но в случае нескольких провайдеров наверно необходимо отключать запрос routers и domain-name-servers, при этом поднимать маршруты отдельно и в ручную прописывать DNS провайдера, что бы инет работал через все интерфейсы? Или достаточно прописать в /etc/dhcp3/dhclient.conf секцию с lease? Просто у меня инет через интерфейс с DHCP не работает, если клиент запрашивает статический IP от сервера, т.к. провайдер так настроил соединение, хотя реальный IP-адрес выдаётся всегда один и тот же :-[.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #69 : 11 Июня 2015, 23:37:43 »
Да при чём тут lease? Читайте маны.
interface "eth1" {
        request
                subnet-mask,
                broadcast-address,
                time-offset,
                routers,
                #domain-name,
                #domain-name-servers,
                #host-name,
                ntp-servers;
}

почти боевая конфигурация (с виртуального сервера).
Лень было менять настройки DHCP на менеджере сети.
А виртуальный работает эмулятором DC для копии рабочей сети. Соответственно, domain-name раздаваемое головным совсем лишнее.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #70 : 12 Июня 2015, 00:37:02 »
AnrDaemon, благодарю за пояснения с реальным примером. Но меня интересует, как правильно поднять статические маршруты в новых таблицах маршрутизации да еще и определенными метриками на интерфейсе с DHCP.
На сколько мне понятно из примера, там идет запрос на получение маршрута по умолчанию, маски и сервера времени для интерфейса eth1?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #71 : 13 Июня 2015, 14:40:12 »
Там идёт запрос ТОЛЬКО НА… Но если вы читали ман, там есть инструкции, как добавить свою информацию в ответы DHCP сервера. Если вы хотите именно DHCP настройками играться.
Метрики всё равно придётся проставлять вручную.
Я пишу скрипты на if-up, так проще.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #72 : 24 Июня 2015, 02:17:23 »
Но это скорее всего работать не будет :-\
Что касается скриптов. Так, кмк, логичнее.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 24 Июня 2015, 02:24:32 от koshev »
OpenWrt 19.07

Оффлайн Sliver

  • Участник
  • *
  • Сообщений: 102
  • Administrator
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #73 : 24 Июня 2015, 17:03:08 »
Второй скрипт не нужен, т.к обновление адреса происходит отлично от ppp, интерфейс постоянно поднят
Да, уже выяснил, скрипт в каталоге /etc/dhcp3/dhclient-exit-hooks.d обычно используется для поднятия статических бесклассовых маршрутов с опцией rfc3442-classless-static-routes, в моём случае не к чему, поэтому логичнее поднимать и удалять маршруты в /etc/dhcp3/dhclient-enter-hooks.d :)
Хочу уточнить относительно опций в /etc/dhcp3/dhclient.conf. В моём случае опции в поле request такие как routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope, rfc3442-classless-static-routes не нужны? Их нужно убрать вместе с option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;?

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: сервер ubuntu и 2 провайдера
« Ответ #74 : 24 Июня 2015, 17:24:57 »
Хочу уточнить относительно опций в /etc/dhcp3/dhclient.conf. В моём случае опции в поле request такие как routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope, rfc3442-classless-static-routes не нужны? Их нужно убрать вместе с option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;?
Я бы там вообще ничего не убирал. Если сервер не отдаёт эти опции, то ничего клиент не получит.
В примере выше смотрите закомментированную строчку.
OpenWrt 19.07

 

Страница сгенерирована за 0.035 секунд. Запросов: 21.