Вы здесь

Автопереключение между двумя провайдерами

Для повышенной надежности часто практикуют подключение к двум провайдерам одновременно.
Cisco IOS позволяет обеспечить автоматическое переключение с основного провайдера на резервный.

Мониторинг:
Для того чтобы понять работает интернет через ISP1 или нет, будем через него мониторить через пинг какой нибудь ресурс.
Возьмем к примеру внешний адрес 85.202.241.71
Для мониторнга этот ресурс необходимо смаршрутизировать только через ISP1
ip route 85.202.241.71 255.255.255.255 a.a.a.1

access-list 101 permit icmp any host 85.202.241.71 echo

route-map echo permit 10
match ip address 101
set interface GigabitEthernet0/2

ip local policy route-map echo

Собственно сам мониторинг организовывается через IP SLA:
track 123 ip sla 1 reachability

ip sla 1
icmp-echo 85.202.241.71 source-ip a.a.a.2
timeout 1000
threshold 3
frequency 5

ip sla schedule 1 life forever start-time now

Маршрутизация:
ip route 0.0.0.0 0.0.0.0 a.a.a.1 track 123
ip route 0.0.0.0 0.0.0.0 b.b.b.1 254

Таким образом если track 123 живой - у нас пропишется первый маршрут, т.к. у второго Administratove Distance 254 а у первого 1. При пропадании же track123 в таблицу пропишется второй маршрут

Трансляция:
route-map isp2 permit 10
match ip address NAT_Rules
match interface GigabitEthernet0/1

route-map isp1 permit 10
match ip address NAT_Rules
match interface GigabitEthernet0/2

ip nat inside source route-map isp2 interface GigabitEthernet0/1 overload
ip nat inside source route-map isp1 interface GigabitEthernet0/2 overload

ip access-list extended NAT_Rules
permit ip 192.168.100.0 0.0.0.255 any

Данная конструкция необходима для корректной работы NAT, который должен привязываться к разным интерфейсам при работе с разными провайдерами.

Для сброса NAT сессий при переключении, добавим следующее:
event manager applet ISP_SWITCHED_20
event track 123 state any
action 1.0 cli command «enable»
action 2.0 cli command «clear ip nat trans forced»

Пример рабочего конфига

Система проверяет на доступность 4 разных внешних IP через основного провайдера. Если все они будут недоступны, основной провайдер будет считаться сбойным и произойдет переключение на резервный.
Предусмотрено переключение натирования внутренних пользователей, а также удаление старых сессий трансляции.

a.a.a.10 - адрес от основного ISP
a.a.a.1 - DG от основного ISP

b.b.b.10 - адрес от резервного ISP
b.b.b.1 - DG от резервного ISP

ip access-list extended echo_check
permit icmp any host 8.8.8.8 echo
permit icmp any host 62.141.69.157 echo
permit icmp any host 93.186.61.38 echo
permit icmp any host 85.202.241.71 echo

route-map echo_rm permit 10
match ip address echo_check
set ip next-hop a.a.a.1

ip local policy route-map echo_rm

ip sla 1
icmp-echo 8.8.8.8 source-ip a.a.a.10
ip sla schedule 1 life forever start-time now
ip sla 2
icmp-echo 62.141.69.157 source-ip a.a.a.10
ip sla schedule 2 life forever start-time now
ip sla 3
icmp-echo 93.186.61.38 source-ip a.a.a.10
ip sla schedule 3 life forever start-time now
ip sla 4
icmp-echo 85.202.241.71 source-ip a.a.a.10
ip sla schedule 4 life forever start-time now

track 1 ip sla 1 reachability
delay down 30 up 30

track 2 ip sla 2 reachability
delay down 30 up 30

track 3 ip sla 3 reachability
delay down 30 up 30

track 4 ip sla 4 reachability
delay down 30 up 30

track 5 list boolean or
object 1
object 2
object 3
object 4

ip route 0.0.0.0 0.0.0.0 a.a.a.1 track 5
ip route 0.0.0.0 0.0.0.0 b.b.b.1 254

route-map isp2 permit 10
match ip address acl_nat_rules
match interface FastEthernet0/0/0

route-map isp1 permit 10
match ip address acl_nat_rules
match interface FastEthernet0/0/1

ip nat inside source route-map isp1 interface FastEthernet0/0/1 overload
ip nat inside source route-map isp2 interface FastEthernet0/0/0 overload

ip access-list extended acl_nat_rules
permit ip 192.168.100.0 0.0.0.255 any

event manager applet ISP_SWITCHED_20
event track 5 state any
action 1.0 cli command "enable"
action 2.0 cli command "clear ip nat trans forced"

Проверка

show ip sla statistics
show track 123

Внешние IP адреса для теста

Для теста удобны следующие адреса:

Сервис-провайдер: Google
8.8.8.8
8.8.4.4

Сервис-провайдер: vnsc-pri.sys.gtei.net
4.2.2.1
4.2.2.3
4.2.2.4
4.2.2.5
4.2.2.6

Сервис-провайдер: OpenDNS
208.67.222.222
208.67.220.220

yandex.ru
213.180.193.11
93.158.134.11
213.180.204.11

mail.ru
94.100.180.200
94.100.180.202
217.69.139.200
217.69.139.202

Комментарии

Обожаю поглазеть обзоры такого плана.

Добрый день, подскажите пожалуйста, как возможно добиться того же самого принципа резервирования туннеля и его автоматического переключения на резервный, если используется GRE over IPsec и EIGRP для анонсирования маршрутов внутренних сетей.
По умолчанию туннели балансируют нагрузку, а нужен вариант active/standby.
Заранее спасибо!

Добрый день, вы можете использовать тот же принцип что и в статье DMVPN и резервный ISP

если он сделал как по вашему он не работает

Спасибо за ответ.
Немного другая ситуация у меня, в головном офисе на одном маршрутизаторе построено два туннеля, которые работают в балансировке, примерно тоже самое что на SPOKE маршрутизаторе в указанной Вами статье. На сколько я понимаю у Вас на SPOKE трафик тоже балансируется между двумя хабами, правильно? То есть я так понимаю что нужно сделать так чтобы EIGRP не выставлял маршрут через второй туннель в таблицу маршрутизации, но как это сделать пока не знаю. Пробовал поменять метрику маршрута, ничего не вышло.

Нет, на подобных каналах балансировка противопоказана, поскольку каналы могут сильно различаться по своим характеристикам.
Обратите внимание что на туннельных интерфейсах выставлен параметр delay в разных значениях. Именно этим способом классически оказывают влияние на метрику в случае с eigrp, таким образом оба маршрута будут в топологии eigrp, но в таблицу маршрутизации будет выставляться только один маршрут: с меньшим значением delay.

В ситуации, когда оба линка подняты:
1) Пропала маршрутизация на ISP1
2) Переключение на ISP2
3) Если маршрутизация ISP1 опять поднимется, на неё переключение не произойдёт

Пардон, кот мешает = )

1) Пропала маршрутизация на ISP1
2) Переключение на ISP2
3) Падает маршрутизация ISP2
3) Если маршрутизация ISP1 опять поднимется, на неё переключение не произойдёт

Перезалил конфиги -- работает... Мистика...

Проблема! Сконфигурировал автопереключение cisco 2811, как в статье. При пропадании маршрута, просто интерфейс в shutdown, маршрут меняется, но ничего по нему не идет, даже пинги. Если прописать маршрут руками, то все работает. В чем может быть проблема?

почему во всех доках идет
list boolean or
а не
ist boolean and

при конструкции or ( Вроде бы) мы увеличиваем вероятность переключения занесением лишней точки пинга.
перед написанием проверил идею тут
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipapp/configuration/12-... - тоже для двух событий используют and

Добрый день,
Для примера:

track 5 list boolean or object 1 object 2 object 3 object 4

смысл конструкции такой:
Состояние track 5 будет считаться UP, в случае если хотя бы один track 1-4 в состоянии UP, это дает условие or.
Если бы мы использовали and, то условием было бы чтобы у ВСЕХ track 1-4 было состояние UP.

да не прав .. сори - лист контролирует не то что надо переключить, а то что пока не стоит это делать. Запутался в ночи.

Извините.

Спасибо Вам за интересный вопрос. Сам засомневался и полез в ночи в доки...
Но на практике это подтвердилось: натыкался на пару давних объектов (6мес-год), где половина тех адресов уже давно не отвечают на проверки, но система в целом жила

Здравствуйте, есть роутер:
Cisco IOS Software, C1900 Software (C1900-UNIVERSALK9_NPE-M), Version 15.3(3)M2, RELEASE SOFTWARE (fc1)
ROM: System Bootstrap, Version 15.0(1r)M16, RELEASE SOFTWARE (fc1)
Не могу дать команду ip sla 1
Есть только варинты ip sla
key-chain
responder
server
Подскажите что делать, менять IOS? Если да, на какой?

IP SLA должна работать и на такой версии IOS. Какие лицензии у вас активированы?
Посмотрите show version

Вот что есть по поводу лицензий:
License Info:

License UDI:

-------------------------------------------------
Device# PID SN
-------------------------------------------------
*0 CISCO1921/K9 FCZ183170RE
Technology Package License Information for Module:'c1900'
-----------------------------------------------------------------
Technology Technology-package Technology-package
Current Type Next reboot
------------------------------------------------------------------
ipbase ipbasek9 Permanent ipbasek9
security None None None
data None None None

Вам нужна лицензия Security, вы можете активировать её в демо режиме, чтобы убедиться в этом

Благодарю, я так понимаю она унифицирована под разные роутеры и нет разделения по моделям роутеров?

Нашел вот этот пост по поводу лицензии: http://ciscomaster.ru/content/licenzii-security-i-isr2 ,
я понимаю мне надо сделать тоже самое.
В посте меняется IOS, в моем случае это надо делать?

Вы может попробовать активировать и NPE Security, - тогда не потребуется менять IOS.
Если конечно вам не нужно шифрование

Благодарю, все понял!

Уважаемые знатоки. Подскажите как настроить туннельные интерфейсы в случае с использованием ip sla? Есть головной и удалённый офис. Между офисами настроен туннель (GRE). Если добавить в удалённом офисе второго провайдера и настроить sla, то как быть с туннелем?

добрый день, наилучшее решение - постройте два туннеля - один через основной, другой через резервный. Маршрутизацию разруливайте через динамические протоколы, например eigrp

Собрал схемку по Вашей статье, но не работает данная конструкция:

ip nat inside source route-map isp1 interface FastEthernet0/0/1 overload
ip nat inside source route-map isp2 interface FastEthernet0/0/0 overload

не матчаться пакеты в роутмапах, а если прописать:

ip nat inside source list acl_nat_rules interface FastEthernet0/0/1 overload то вс еработает корректно.

Не подскажите куда можно посмотреть на эту тему?

Добрый день,
ваш вариант не сможет работать на переключение между провайдерами, поскольку в нём прописан только один интерфейс для ната.
Принцип конструкции, описанный в статье рабочий, ищите ошибки в роут мапах

Спасибо за ответ. а не покажите что у Вас показывается вывод:

sh route-map isp1 И isp2?

с моей стороны

yyy.biz#sh route-map Trxxx
route-map Trxxx, permit, sequence 10
Match clauses:
ip address (access-lists): Olyyy
interface FastEthernet0/0
Set clauses:
Policy routing matches: 0 packets, 0 bytes

Заработало когда из route-map убрал match interface FastEthernet0/0/0

В route-map должно быть имена соответствующих интерфейсов вашего роутера.
FastEthernet0/0/0 - это в данном примере, в вашем случае может быть другое имя.

Все верно , но когда я убрал матч интерфейса моего, трафик пошел.

Подскажите, а можно ли основываясь на данной конструкции реализовать переключение между тремя провайдерами?
ISP1 GigabitEthernet0/1 - 2 Мбит безлимит
ISP2 GigabitEthernet0/1/0 - 1 Мбит безлимит
ISP3 interface Dialer0 - 2 Мбит дорогой
Но в один момент времени два первых провайдера не могут быть активными, доступен или ISP1 или ISP2, ISP3 доступен всегда.

ДОбрый день! В первой части статьи, где пояснения, у вас есть строчка
"Для мониторнга этот ресурс необходимо смаршрутизировать только через ISP1
ip route 85.202.241.71 255.255.255.255 a.a.a.1"
А там, где "Пример рабочего конфига", подобное отсутствует. Так нужно?

Добрый день,
да, конечно ресурсы для мониторинга необходимо маршрутизировать через соответствеющих провайдеров.
Это можно сделать через ip route или через использование route-map

Хочу выразить благодарность! Отличная статья по которой делал резервирование. Но мне кажется для наглядности в пример конфига нужно добавить маршруты до пингуемых серверов.

Статься просто отличная спасибо, благодаря ей настроил резервирование.

Добрый день!
Вопросик есть, делаю все по статье, но при отключении первого провайдера, у меня так и остается его шлюз по умолчанию, шлюз второго провайдера не прописывается, даже если, я в этот момент удаляю шлюз первого прова из роута, то руками прописать шлюз второго не дает, т.е. команду принимает в sho ip route не виден.

Доброго времени. два офиса, на филиале делал настройку резервного канала по статье, но возник трабл, почему то стал недоступен ip адрес локальной сети маршрутизатора, который идет акцессом в l3 коммутатор (ядро сети), по внешнему адресу маршрутизатор доступен, и все подсети за маршрутизатором доступны из центрального офиса, соотвтественно конечные устройства также. Из филиала, также недоступен ip адрес локальной сети маршрутизатора, но также все подсети за ним пингуются, (также там свое ядро сети на l3). между филиалом и центральным офисом gre тунель. но почему - то стали недоступны внутренные адреса gre тунеля: соответствеенно, с филиала пинг идет на ip адрес своей части gre, но не пингуется адрес gre со стороны центрального офиса, а со стороны центрельного офиса, есть пинг на ip своей стороны gre,но нет пинга ip стороны филиала. С чем это может быть связано?

Добрый день. Я бы проверил настройки NAT

Настройки NAT сверял с маршрутизатором центрального офиса, одинаковые....

Настройки все были сделаны корректно, решило проблему, полностью очистка конфиги write erase

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image