Настройка переключения маршрутов между двумя провайдерами на JunOS 11.1 или выше

В этой короткой статье я опишу процесс настройки функций для переключения маршрутов между двумя провайдерами в случае, если физический линк присутствует и даже есть наличие локальной сети провайдера, но нет самого интернета.
Рассмотрим пример с 2 провайдерами:
  • ISP1
    interface IP 1.1.1.100
    gateway IP 1.1.1.1
    netmask 255.255.255.0
    interface name ge-0/0/2.0
  • ISP2
    interface IP 2.2.2.200
    gateway IP 2.2.2.1
    netmask 255.255.255.0
    interface name ge-0/0/2.0

Конфигурирование будет состоять из двух этапов:
  1. Настройка rpm — который проверяет доступность выбранных хостов
  2. Настройка ip-monitoring — который непосредственно выполняет переключения рутинга

Этап 1


Как правило выбираются хосты изначально постоянно доступные для icmp-ping в моем примере. Для примера, а не для подражания возьмем для мониторинга IP крупных провайдеров: 213.180.193.3, 209.85.148.104. Я беру 2 IP для мониторинга так как по одному возможны ложные срабатывания. В реальной обстановке можно мониторить и сеть провайдера и хопы после его граничных маршрутизаторов.
Заходим в режим редактирования конфигурации из командной строки.
Итак:

set services rpm probe Probe-Servers test ya-test probe-type icmp-ping
Делаем новый раздел теста серверов с именем Probe-Servers и новое имя ya-test для теста сервера. Устанавливаем тип тестирования icmp-ping

set services rpm probe Probe-Servers test ya-test target address 213.180.193.3
Назначаем целевой IP адрес для пинга.
Внимание! Убедитесь, что люди которых вы пингуете не против или не заметят ваших тестов в общем потоке траффика и не закроют вам этот протокол.

set services rpm probe Probe-Servers test ya-test probe-count 5
Устанавливаем количество тестовых посылок на один цикл проверки.

set services rpm probe Probe-Servers test ya-test probe-interval 1
Интервал между тестами(циклами проверки).

set services rpm probe Probe-Servers test ya-test thresholds successive-loss 3
Сколько пакетов должно потеряться чтобы тест считался не пройденным.

set services rpm probe Probe-Servers test ya-test destination-interface ge-0/0/1.0
Через какой интерфейс посылать пакеты для проверки — в нашем случае это будет интерфейс основного провайдера через который идет весь траффик.

set services rpm probe Probe-Servers test ya-test next-hop 1.1.1.1
Ну и рутинг на следующий хоп для тестового пакета.

Аналогично настраиваем следующий сервер go-test:
set services rpm probe Probe-Servers test go-test probe-type icmp-ping
set services rpm probe Probe-Servers test go-test target address 209.85.148.104
set services rpm probe Probe-Servers test go-test probe-count 5
set services rpm probe Probe-Servers test go-test probe-interval 1
set services rpm probe Probe-Servers test go-test thresholds successive-loss 3
set services rpm probe Probe-Servers test go-test destination-interface ge-0/0/1.0
set services rpm probe Probe-Servers test go-test next-hop 1.1.1.1


Кстати в таблице маршрутизации должен быть указан статический рутинг по-умолчанию на первого провайдера с метрикой ниже метрики по-умолчанию. В моем случае стоит метрика 50:
set routing-options static route 0.0.0.0/0 next-hop 1.1.1.1
set routing-options static route 0.0.0.0/0 metric 50


Этап 2


Настройка переключения рутинга в случае недоступности тестовых серверов.

set services ip-monitoring policy Server-Tracking match rpm-probe Probe-Servers
Установка слежения за тестами с именем приведенным выше на Этапе 1.

set services ip-monitoring policy Server-Tracking then preferred-route route 0.0.0.0/0 next-hop 2.2.2.1
И в случае падения обоих серверов переключение рутинга на другого провайдера.

Загружаем конфигурацию и наблюдаем за состоянием командой:
show services ip-monitoring status

Результат вывода команды должен быть примерно такой:
Policy - Server-Tracking
RPM Probes:
Probe name Address Status
---------------------- ---------------- ---------
Probe-Servers 213.180.193.3 PASS
Probe-Servers 209.85.148.104 PASS
Route-Action:
route-instance route next-hop State
----------------- ----------------- ---------------- -------------
inet.0 0.0.0.0 2.2.2.1 NOT-APPLIED


Итог


Мы настроили переключение провайдеров по результатам доступности определенных хостов в сети интернет. Многие читатели реализовывали это посредством скриптов на perl или bash. И конечно же я не беру ситуацию когда вместе с провайдером настраивается BGP, так как в моем примере я не завишу от провайдера и к томуже очень часто нужно иметь услуги от двух разных конкурирующих провайдеров имеющих разные каналы во внешний мир.

Средняя зарплата в IT

120 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 7 559 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 4

    0
    JunOS очень хорошая ОС. по своему опыту скажу, что практикуется «соседство» по BGP провайдера с абонентом, по которому от абонента никаких анонсов не принимается, а ему отправляется только default. для этого не нужно реальных номеров AS, белых сетей. можно сделать multi-hop, можно p2p, т.к. все современные L3-коммутаторы умеют BGP.

    аналогичный JunOS функционал также есть в Cisco IOS. (зовется SLA)

    Все равно автору спасибо. Для быстрой настройки без чтения документации можно пользоваться и этим алгоритмом.
      0
      JunOS 11.1
      Маленькое уточнение: на J2320 отсутствует служба ip-monitoring:

      max@R-J2320# run show version
      Hostname: R-J2320
      Model: j2320
      JUNOS Software Release [11.4R1.6]

      max@R-J2320# set services ?
      Possible completions:
      + apply-groups Groups from which to inherit configuration data
      + apply-groups-except Don't inherit configuration data from these groups
      > captive-portal Captive Portal options
      > flow-monitoring Configure flow monitoring
      > rpm Real-time performance monitoring
      > service-device-pools Configure service device pools
      > service-interface-pools Configure service interface pools


      Внесите, по возможности, в статью правку, на какой платформе вы это выполняли. :)
        0
        Вот сейчас столкнулся с такой же задачей, ip-monitoring есть только на SRX серии судя по всему.
        0
        ISP1
        ...
        gateway IP 1.1.1.1
        interface name ge-0/0/2.0
        ...
        ISP2
        ...
        gateway IP 2.2.2.1
        interface name ge-0/0/2.0


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

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое