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

Материал из Wiki
Версия от 17:57, 16 июля 2022; Cless (обсуждение | вклад) (Новая страница: «== Входные данные == Внутренняя сеть: '''192.168.250.0/24''' Адрес внутреннего интерфейса (направле...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

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

Внутренняя сеть: 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