Pull to refresh

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

Network technologies
Sandbox
В этой короткой статье я опишу процесс настройки функций для переключения маршрутов между двумя провайдерами в случае, если физический линк присутствует и даже есть наличие локальной сети провайдера, но нет самого интернета.
Рассмотрим пример с 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, так как в моем примере я не завишу от провайдера и к томуже очень часто нужно иметь услуги от двух разных конкурирующих провайдеров имеющих разные каналы во внешний мир.
Tags:Junosjuniperинтернетrouting
Hubs: Network technologies
Total votes 7: ↑5 and ↓2 +3
Views6.8K

Comments 4

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Lead Network Developer
to 280,000 ₽RunexisМоскваRemote job
Senior Network developer
to 250,000 ₽RunexisМоскваRemote job
Менеджер по продажам отзывов
from 25,000 to 50,000 ₽ReviewterRemote job
Медиа-Маркетолог
from 40,000 to 60,000 ₽DigarsonRemote job
Маркетолог
from 60,000 ₽Теплица социальных технологийRemote job

Top of the last 24 hours