Cisco. Автоматическое переключение на резервный канал

Материал из Wiki
Версия от 20:00, 16 июля 2022; Cless (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Входные данные

Внутренняя сеть: 192.168.250.0/24

Адрес внутреннего интерфейса (направленного в локальную сеть): 192.168.250.8

Провайдер 1:

Внешний интерфейс: 172.16.250.1/24 - FastEthernet 6/0

Шлюз провайдера: 172.16.250.8

Провайдер 2:

Внешний интерфейс: 172.17.250.1/24 - FastEthernet 5/0

Шлюз провайдера: 172.17.250.8

Настройка

Настройка для версии IOS 12.4

Настроим пинговалку внешнего адреса в сети интернет, который постоянно доступен - 8.8.8.8

Проверять будем только основной канал, маршруту через резервного провайдера поставим distance 254

Он будет включаться когда отключится основной канал

Cisco рекомендует эти значения по умолчанию при настройке IP SLA:

1. Порог (millisecs): 5000

2. Таймаут (millisecs): 5000

3. Частота (secs): 60

ip sla monitor 1

type echo protocol ipIcmpEcho 8.8.8.8 source-ipaddr 172.16.250.1

timeout 1000

threshold 1000

frequency 3

exit

Настраиваем задание, запускающее пинговалку

ip sla monitor schedule 1 life forever start-time now

Настраиваем «переключатель» (track), от которого будет зависеть маршрут

Если хост пингуется, то track будет в состоянии UP и маршрут будет в таблице маршрутизации.

Если пинг пропадет, то через настроенный промежуток времени (по умолчанию 3*10 секунд) track

Поменяет состояние на DOWN и маршрут будет удален до тех пор, пока track вновь не изменит состояние.

track {#} rtr {sla#} reachability

track 1 rtr 1 reachability

exit

Настраиваем маршрут по умолчанию с трекингом

ip route 0.0.0.0 0.0.0.0 <шлюз_основного_провайдера> <distance> track 1

ip route 0.0.0.0 0.0.0.0 172.16.250.8 1 track 1

Маршрут до адреса, который проверяет пинговалка (8.8.8.8) ТОЛЬКО ЧЕРЕЗ ОСНОВНОГО ПРОВАЙДЕРА чтобы он не пинговался через резерв

ip route 8.8.8.8 255.255.255.255 172.16.250.8

Маршрут на второго провайдера мы напишем с большей административной дистанцией и тем самым заставим его работать только при пропадании основного

ip route 0.0.0.0 0.0.0.0 172.17.250.8 254

Проверка

Успешно пингуем 8.8.8.8 через провайдера

ping 8.8.8.8

Смотрим что в маршрутах только один умолчальный маршрут через основного провайдера

sh ip route

Рвем линк между маршрутизатором и провайдером

8.8.8.8 не пингуется

ping 8.8.8.8

Смотрим что в маршрутах только один умолчальный маршрут через резервного провайдера

sh ip route

Восстанавливаем линк до провайдера

Умолчальный маршрут основного провайдера вернулся на место

NAT (!!!! НЕ ПРОВЕРЯЛ !!!!)

Тут на самом деле тоже 2 задачи: динамическая трансляция и статическая трансляция адресов. Первая нам нужна для выхода наружу, а вторая – для анонса сервисов. И в том и в другом случае нам понадобится конструкция, называющаяся route-map (создать надо будет по route-map на каждого провайдера)

// маркируем интерфейсы - входящие и исходящие

// пров 1

interface fasEthernet 6/0

ip nat outside

// пров 2

interface fasEthernet 6/0

ip nat outside

// локальный интерфейс

interface fasEthernet 1/0

ip nat inside

! Создаем route-map

route-map ISP1 permit 10

! Указываем критерий попадания в этот абзац route-map  

match interface fasEthernet 6/0

! Создаем route-map

route-map ISP2 permit 10

! Указываем критерий попадания в этот абзац route-map  

match interface fasEthernet 5/0

Тут есть тонкость: при указании слова interface в подсказке пишется

  interface         Match first hop interface of route

Т.е. вообще говоря, непонятно, что это за параметр. Плюс в зависимости от того, что написано на самом интерфейсе, этот критерий может означать как входящий интерфейс, так и исходящий! А зависит это от того, что написано в команде ip nat на интерфейсе:

ip nat inside – критерий будет означать входящий интерфейс

ip nat outside – критерий будет означать исходящий интерфейс

// Далее, нам понадобится пул адресов от каждого провайдера

// ip nat pool PoolX {start-ip(ISPX)}  {end-ip(ISPX)}

ip nat pool PoolISP1 172.16.250.1  172.16.250.254

ip nat pool PoolISP2 172.17.250.1  172.17.250.254

// И можно уже писать правила NAT на каждого провайдера

ip nat inside source route-map ISP1 PoolISP1 overload

ip nat inside source route-map ISP2 PoolISP2 overload

// overload – ключевое слово, означающее использовать PAT (Port Address Translation, трансляцию с учётом порта источника)

// Если к надо добавить статические трансляции, то делаем почти так же (пусть серверу мы зарезервировали адрес Srv(ISPX) от каждого провайдера, а локальный адрес у сервера – Srv(LAN).)

ip nat inside source static Srv(LAN) Srv(ISPX) route-map ISPX