IP SLA на маршрутизаторах Cisco
Рано или поздно, но каждая компания сталкивается с проблемой выхода из строя канала связи с интернет. И сразу же после этого встает вопрос об организации резервного канала. Но какие настройки нужно сделать для автоматического переключения на него в случае аварии?
В этой статье описаны настройки для маршрутизаторов Cisco 881 и подобных моделей. Если у вас Cisco ASA, то настройки для них написаны в статье Dual WAN на Cisco ASA.
Один из самых простых и эффективных способов для маршрутизаторов Cisco – использование ip sla monitor. Устройство будет отслеживать доступность основного интернет провайдера и, как только связь пропадет (некий адрес не будет отвечать на icmp запросы в течение нескольких секунд), начнет пересылать трафик через резервный канал.
Рассмотрим настройки на примере стандартной модели маршрутизаторов для небольшого офиса Cisco 881.
- В интерфейс 3 уровня Fa 4 подключен основной оператор связи;
- В интерфейс Fa 0 (Vlan 1) подключена локальная сеть офиса;
- В интерфейс FastEthernet 3 (Vlan 3) подключен резервный провайдер.
Если у вас иная модель, то отличие будет только в названии интерфейсов, но не в сути настроек.
Задача: настроить отказоустойчивое подключение к Интернет (dual wan).
Шаг 1. Проверка маршрутов
Проверяем текущие маршруты на устройстве. Для удобства командой sh run | inc route
выводим строки текущей конфигурации, содержащие слово «route»
R-DELTACONFIG-1# sh run | inc route
Ip route 0.0.0.0 0.0.0.0 10.10.10.1 1
Если переводить с языка устройства на «человеческий», то получится следующее:
«Перенаправлять все пакеты, о которых я не знаю, в сторону интерфейса outside через шлюз 10.10.10.1»
Маршрутизатор «знает» только о тех сетях, которые подключены к нему напрямую (connected) или для которых имеются подобные строки маршрутов.
Шаг 2. Настройка для резервного провайдера
На межсетевом экране уже настроен интерфейс outside (Ethernet 1/Vlan 2), к которому подключен Основной провайдер. В текущей конфигурации (просмотреть командой sh run) будут присутствовать подобные строки:
R-DELTACONFIG-1# sh run
…
interface Fastethernet 4
ip address 10.10.10.2 255.255.255.252
Добавим настройки для Резервного канала, который подключен к Ethernet 3/Vlan 3
Для этого сначала необходимо создать Vlan для подключения резервного оператора, привязать его к одному из свободных портов и после этого задать ip адрес.
Создание Vlan 3
R-DELTACONFIG-1#
vlan database
R-DELTACONFIG-1 (vlan)#
vlan 3 name BACKUP_ISP
Проверить текущие настройки можно командой sh current, не выходя из режима настройки Vlan. Достаточно, чтобы Vlan с порядковым номером 3 был в перечне существующих.
R-DELTACONFIG-1 (vlan)#
sh current
Для привязки Vlan 3 к интерфейсу FastEthernet 3 необходимо выйти из режима настройки Vlan и далее зайти в обычный режим конфигурирования conf t. После этого привязать Vlan 3 к интерфейсу FastEthernet 3 и активировать его командой no shut.
R-DELTACONFIG-1 (vlan)#
exit
conf t
R-DELTACONFIG-1 (config)#
interface FastEthernet 3
switchport access vlan 3
no shut
А после создания задать ip адрес и активировать интерфейс командой no shut
R-DELTACONFIG-1 (config)#
interface Vlan 3
ip address 20.20.20.2 255.255.255.252
ip nat outside
no shut
Если все провода подключены и настройки корректны, то для маршрутизатора должен быть доступен шлюз Резервного провайдера.
R-DELTACONFIG-1 # ping 20.20.20.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.20.20.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
Шаг 3. Настройка отслеживания доступности провайдера
Для того чтобы маршрутизатор Cisco 881 следил за доступностью Основного канала, необходимо настроить функцию ip sla monitor. С ней через равные временные промежутки будет посылаться ping (icmp запрос) на адрес провайдера 1 (основного). Получение ответного пакета (icmp ответ) будет означать доступность канала.
Что проверять?
В большинстве случаев адрес внешнего интерфейса и шлюза провайдера заранее известны. Поэтому будет достаточно проверять доступность адреса шлюза провайдера. Но здесь есть один подвох. Что произойдет, если шлюз будет все так же доступен, но неисправность будет где-то дальше на сети провайдера? То есть «интернет не работает», но шлюз доступен. Ответ – ничего. Маршрутизатор не сможет распознать неисправность и не переключится на резерв. Сюда же подходят случаи, когда провайдер предоставляет динамический адрес, например, по технологии pppoe.
Чтобы это обойти, часто выбирается какой-то стабильно работающий адрес в Интернете, который вполне может быть в любой точке мира. Далее на маршрутизаторе задается статический маршрут до выбранного адреса через интерфейс основного провайдера. И уже наличие шлюза по умолчанию в сторону основного провайдера ставится в зависимость от доступности выбранного адреса. Тогда, что бы ни случилось со связью, будь то неполадки с настройками маршрутизатора, сбои у оператора связи и другие причины, механизм переключения сработает автоматически. При этом минусом такого подхода будет то, что заветный адрес будет всегда недоступен вместе с основным провайдером. Для этих целей советую использовать адрес 1.1.1.1, который стабильно доступен, но крайне редко используется в повседневной работе пользователей или устройств.
Сложно написано, не так ли? Давайте упростим до алгоритма действий маршрутизатора:
- Маршрутизатор, знай, что хост 1.1.1.1 всегда находится за шлюзом основного провайдера 10.10.10.1
- Маршрутизатор, проверяй доступность хоста 1.1.1.1 один раз в 10 секунд
- Если хост 1.1.1.1 доступен, то шлюз по умолчанию – адрес провайдера 1
- Если хост 1.1.1.1 недоступен, то шлюз по умолчанию – адрес провайдера 2
Задаем статический маршрут через основного провайдера до адреса 1.1.1.1
R-DELTACONFIG-1 (config)#
ip route 1.1.1.1 255.255.255.255 10.10.10.1
Активируем функцию ip sla
R-DELTACONFIG-1 (config)#
ip sla 1
icmp-echo 1.1.1.1 source-interface Fa 4
threshold 10000
ip sla schedule 1 life forever start-time now
track 1 ip sla 1 reachability
Для справки:
threshold 10000 – Запросы будут посылаться 1 раз в 10 секунд.
Шаг 4. Проверка работы механизма отслеживания
Для проверки работы отслеживания ip sla используется команда sh ip sla statistics
R-DELTACONFIG-1# sh ip sla statistics
IPSLAs Latest Operation Statistics
IPSLA operation id: 1
Latest RTT: 4 milliseconds
Latest operation start time: 14:07:40 MSK Thu Aug 8 2019
Latest operation return code: Over threshold
Number of successes: 15
Number of failures: 0
Operation time to live: Forever
Number of successes: 15 – показывает количество успешных icmp запросов
Number of failures: 0 – показывает количество неудачных запросов
Перед выполнением дальнейших шагов обязательно проверьте вывод этой команды несколько раз, чтобы убедиться, что счетчик успешных срабатываний (successes) растет со временем. Это означает, что основной канал работает стабильно и можно продолжать настройку без риска потерять связь с Интернет.
Шаг 5. Шлюз по умолчанию для Резервного провайдера.
Для Резервного провайдера требуется указать шлюз по умолчанию, куда маршрутизатор Cisco 881 будет отправлять все пакеты, но с одним отличием – этот маршрут не должен учитываться, когда доступен Основной провайдер. Для этого следует понизить приоритет этого маршрута, который здесь называется «административным расстоянием». Необходимо сделать его больше (дороже).
По умолчанию значение административного расстояния для статического маршрута – 1. Зададим для Резервного канала значение, близкое к максимальному – 250
R-DELTACONFIG-1 (config)#
ip route 0.0.0.0 0.0.0.0 20.20.20.1 250
После добавления в конфигурации маршрутизатора Cisco 881 должно быть 2 маршрута по умолчанию
R-DELTACONFIG-1# sh run | inc route
ip route 1.1.1.1 255.255.255.255 10.10.10.1
ip route 0.0.0.0 0.0.0.0 10.10.10.1 1
ip route 0.0.0.0 0.0.0.0 20.20.20.1 250
Шаг 6. Активация переключения
Финальный шаг – привязать основной маршрут к функции слежения за доступностью канала (ip sla).
Добавляем новую строку для шлюза по умолчанию с пометкой track 1 и удаляем старую
R-DELTACONFIG-1 (config)#
ip route 0.0.0.0 0.0.0.0 10.10.10.1 1 track 1
no ip route 0.0.0.0 0.0.0.0 10.10.10.1 1
После этого в итоговой конфигурации останутся две строчки для шлюзов по умолчанию
R-DELTACONFIG-1# sh run | inc route
ip route 1.1.1.1 255.255.255.255 10.10.10.1
ip route 0.0.0.0 0.0.0.0 10.10.10.1 1 track 1
ip route 0.0.0.0 0.0.0.0 20.20.20.1 250
Важно!
Если существуют строки маршрутов для каких-то сетей, кроме шлюза по умолчанию, то следует учесть их наличие при настройке, продумав логику переключения аналогично шлюзу по умолчанию.
Шаг 7. Корректировка NAT
Самое главное, чем отличается настройка dual wan на маршрутизаторах Cisco 881 и Cisco ASA – это необходимость перенастройки трансляции адресов NAT (преобразование внутренних «серых» адресов в «белый» адрес внешнего интерфейса). Если для Cisco ASA достаточно продублировать настройки NAT для резервного провайдера, то для маршрутизаторов Cisco необходимо перенастраивать логику команд.
«Обычные» настройки NAT для доступа в сеть Интернет для пользователей сводится к указанию диапазона внутренних адресов и добавления правила «транслируй «эти адреса» в адрес внешнего интерфейса». Фактически описывается трафик ДО попадания на внутренний интерфейс маршрутизатора.
ip access-list standard ACL_NAT
permit 192.168.10.0 0.0.0.255
Interface Vlan 1
ip nat inside
Interface Fa 4
ip nat outside
ip nat inside source list ACL_NAT interface fa4
В случае с реализацией отказоустойчивого переключения на резервный канал с помощью ip sla необходимо использовать route-map. Это расширенная функция управления потоком трафика, в настройках которой указывается условие (какой трафик) и действие (что с ним делать).
В нашем случае для каждого из провайдеров создается route-map только с «условиями», в качестве которых выступают:
- заранее созданный список доступа ACL_NAT, в котором отражен трафик для всех внутренних хостов)
- Выходной интерфейс (свой для каждого из провайдеров
route-map ROUTE_ISP_MAIN permit 10
match ip address ACL_NAT
match interface FastEthernet 4
route-map ROUTE_ISP_BACKUP permit 10
match ip address ACL_NAT
match interface Vlan 3
Далее необходимо добавить правила для NAT, в которых сослаться на route-map
ip nat inside source route-map ROUTE_ISP_MAIN interface FastEthernet 4 overload
ip nat inside source route-map ROUTE_ISP_BACKUP interface Vlan 3 overload
Важно!
не забудьте проверить, что на каждом из трех интерфейсов, через которые проходит трафик, есть строки о принадлежности к NAT
Interface Vlan 1
ip nat inside
Interface Fa 4
ip nat outside
interface Vlan 3
ip nat outside
Всё классно, работает, спасибо большое
Спасибо. Помог. Cisco WS-C3750X-24T-S