Два провайдера одночасно або dual isp with vrf на cisco, part 2

Два провайдера одночасно або dual isp with vrf на cisco, part 2

Добридень! На написання цього матеріалу мене надихнув HunterXXI в своїй статті Два провайдера одночасно або Dual ISP with VRF на Cisco. Я зацікавився, вивчив питання і застосував на практиці. Хотів би поділитися своїм досвідом в реалізації Dual ISP на Cisco з реальним використанням одночасно двох ISP і, навіть, балансуванням навантаження.

Демо схема:


Два провайдера одночасно або dual isp with vrf на cisco, part 2


Всі дії виконуються на Cisco тисяча дев'ятсот двадцять один IOS Version 15.5 (3) M3 з встановленим модулем EHWIC-4ESG.


  • Порти GigabitEthernet0 / 0 і GigabitEthernet0 / 1 задіяні для підключення ISP.
  • Порти GigabitEthernet0 / 0/0 і GigabitEthernet0 / 0/1 сконфігуровані в TRUNK і підключені до комутаторів.
  • Для роботи з локальною мережею використовуються VLAN інтерфейси.
  • В даній схемі передбачається три локальних IP мережі 192.168.100.0/24 для VLAN 100, 192.168.101.0/24 VLAN 101 і 192.168.102.0/24 VLAN 102.
  • В даному прикладі VLAN 100 і 101 будуть мати зв'язок між собою але 101 буде без доступу до Інтернету, а VLAN 102 матиме вихід тільки в інтернет.

Так задумано що б показати можливості імпорту / експорту між VRF.

Решта фізичні порти не задіяні, але Вам ніщо не заважає їх використовувати на власний розсуд.

конфігурація VRF

Технологія Cisco Express Forwarding (CEF) - повинна бути включена для роботи VRF.

Налаштування VRF для ISP

Зверніть увагу, що в конфігурації немає імпорту 65000: 101 який буде закріплений за VLAN 101. Таким чином віртуальні маршрутизатори isp1 і isp2 не матимуть маршрутів в мережу 192.168.101.0/24

Налаштування VRF для VLAN

Знову зверніть увагу на VRF 101, який не обмінюється маршрутами c ISP але обмінюється з VRF 100.

конфігурація інтерфейсів

Vlan1 не використовується, інтерфейс має сенс відключити.

конфігурація BGP

Кожен з BGP address-family налаштовується окремо для VRF і перерозподіляє підключення маршрути (redistribute connected). У нас буде два маршрути за замовчуванням, один через VRF isp1 і другий через isp2. Параметр maximum-paths 2 дозволить імпортувати в VRF 100 і 102 обидва маршрути за замовчуванням.

Це буде виглядати так:


Маршрутизатор Cisco автоматично балансують трафік за маршрутами в одному напрямку з однаковою вартістю.

У VRF isp1 і isp2 необхідно, крім redistribute connected, дозволити redistribute static і default-information originate, що дозволить передати шлюз в інші VRF. Ви можете помітити, що redistribute static робиться через route-map BGP_Filter. Це відбувається виключно з міркувань естетичного вигляду таблиць маршрутизації VRF визначених у локальну мережу, що б маршрути до 8.8.8.8 і 80.80.80.80 не потрапляли в таблиці маршрутизації VRF 100 і 102.

Налаштування маршрутизації


Приступимо до налаштування маршрутизації. Однією з особливостей роботи з VRF, яка ускладнює конфігурацію, є необхідність все визначати в конкретний VRF.



  • tag - допоможе нам відфільтрувати для передачі в локальні VRF тільки ці маршрути
  • track - вказує який об'єкт відповідає за працездатність маршруту

Використовуючи цей route-map і застосовуючи його в VRF для ISP перерозподілятися будуть тільки маршрути з тегом, а решта залишаться тільки всередині ISP VRF.

Налаштування NAT


Для роботи NAT необхідно позначити inside, outside інтерфейси. Як outside ми визначаємо інтерфейси в які підключені ISP, командою ip nat outside. Всі інші інтерфейси, які відносяться до LAN позначаємо як inside командою ip nat inside.

Необхідно створити два route-map-а в яких визначаються інтерфейси isp1 і isp2


Правила NAT необхідно вказувати для кожного VRF через кожен ISP. Так як в нашому умови Vlan 101 не має доступу до мережі Інтернет то правила для нього вказувати немає необхідності, а навіть якщо їх вказати - працювати не буде, тому що немає маршрутизації.

У Cisco є багато різновидів NAT. У термінології Cisco, то що ми використовуємо називається Dynamic NAT with Overload або PAT.

Що потрібно для того що б NAT працював?


  1. Визначити внутрішній і зовнішній інтерфейси
  2. Вказати, що ми хочемо транслювати
  3. Вказати, у що ми хочемо транслювати
  4. включити трансляцію

У простій конфігурації NAT досить створити access-list в якому визначити локальну мережу і застосувати правило трансляції.


Таким чином ми вказуємо, що / будь-що і включаємо трансляцію, тобто виконуємо всі необхідні вимоги.

Це настройка простої конфігурації, вона очевидна і зрозуміла без додаткових подробиць.

Правило яке ми застосовуємо в нашій конфігурації вже не так очевидно. Як ми пам'ятаємо, route-map isp1 визначає інтерфейс GigabitEthernet0 / 0. Перефразовуючи команду виходить щось подібне


Виходить потрібно транслювати трафік source якого GigabitEthernet0 / 0?

Для того що б це зрозуміти необхідно зануриться в механізм проходження пакета всередині маршрутизатора.


  • Трафік який приходить на інтерфейс який позначений як inside не береться трансляції. Він маркується як можливо трансльований.
  • Наступним кроком обробки цього трафіку є його маршрутизація згідно з таблицею маршрутизації або PBR.
  • Якщо згідно з таблицею трафік потрапляє на інтерфейс який відзначений як outside відбувається його трансляція.
  • Якщо трафік потрапляє на НЕ outside інтерфейс трансляції не відбувається.

Помилково можна подумати, що можна робити route-map LAN match interface Vlan100. Застосовувати цей як ip nat inside source route-map LAN і т.д.

Щоб уникнути цієї думки потрібно зрозуміти, що це правило трансляції спрацьовує тоді, коли трафік вже знаходиться на outside інтерфейсі і match інтерфейсу де цього трафіку вже немає ні до чого не приведе.

Налаштування SLA

Нічого особливого в конфігурації немає, перевірятися доступність по ICMP вузлів 8.8.8.8 80.80.80.80 і маршрутизаторів провайдера з кожного ISP VRF.

Налаштування track

У таблиці маршрутизації є маршрут ip route vrf isp1 0.0.0.0 0.0.0.0 198.51.100.2 tag 100 track 100 який зав'язаний на track 100.

track 1000

Цей об'єкт замовчуванням має стан DOWN.
У даній конфігурації цей об'єкт необхідний для того, що б примусово відключити одного з ISP і не підключати його. Для цього track 1000 потрібно додати в об'єкт 100 або 200. Виходячи з boolean and, якщо один з об'єктів DOWN то весь об'єкт вважається DOWN.

Налаштування EEM


EEM - Embedded Event Manager дозволяє автоматизувати дії відповідно до певними подіями.

У нашому випадку, коли один з ISP перестане працювати, він буде виключений з таблиці маршрутизації. Але правила трансляції NAT залишатимуться. Через це, вже встановлені призначені для користувача з'єднання зависнуть до того моменту поки трансляції NAT очиститься по тайм-ауту.

Для того, що б прискорити цей процес нам необхідно очистити таблицю NAT командою clear ip nat translation * і найкраще зробити це автоматично.


Якщо об'єкти 100 або 200 перейдуть в стан DOWN то будуть виконані команди action по порядку.

tips and tricks


Хочу відзначити ще кілька особливостей роботи з VRF.

Наприклад конфігурація NTP:


Через використання VRF будь-які мережеві операції потрібно відносити до віртуального маршрутизатора, це пов'язано з тим, що коли Ви налаштуєте цю конфігурацію і виконайте show ip route ви не побачите жодного запису в таблиці маршрутизації.

До переваг цієї конфігурації я хотів би віднести її гнучкість. Можна з легкістю вивести один VLAN через одного ISP, а інший через другого.

До недоліків, і це питання до шановної публіки, коли відвалюється один з ISP то команда clear ip nat translations * обриває всі з'єднання, включно з працюючим ISP. Як показала практика, в тих випадках коли відвалюється провайдер - користувачі не помічають цей «обрив» або він не є критичним.

Якщо хтось знає як очищати таблицю трансляцій частково - буду вдячний.


Не забудьте заборонити NAT трансляцію в приватні підмережі.

Два провайдера одночасно або dual isp with vrf на cisco, part 2

Front-door VRF. Ще один практичний приклад
Привіт habr! Про настройку VPN спільно з VRF на обладнанні Cisco існує багато статей в Інтернеті. Тут є непогана шпаргалка по налаштуванню IPsec VPN у вигляді крипто-карт і VTI-тунелів спільно з VRF. У цій статті Хабра наведено приклад DMVPN з VRF. VRF дає більшу гнучкість при налаштуванні обладнання і варіантів її використання велике

Два провайдера одночасно або dual isp with vrf на cisco, part 2

Балансування трафіку між двома NAT на різних провайдерів на одному физиче.
При класичній схемі підключення двох ISP до одного роутеру, є можливість використовувати відразу два канали для NATірованія внутрішніх клієнтів з балансуванням навантаження, а не тільки для фейловера при відмові одного з провайдерів.

Два провайдера одночасно або dual isp with vrf на cisco, part 2

Два провайдера одночасно або Dual ISP with VRF на Cisco
Добрий день. Є універсальне рішення для підключення декількох провайдерів, ip sla + track. Рішення легке для розуміння і просте в управлінні. Але коли справа доходить до одночасного використання двох і більше каналів зв'язку, дана технологія в чистому вигляді не підходить. Хочу поділиться своїм досвідом. На вузлах з декількома провайдерами я

Два провайдера одночасно або dual isp with vrf на cisco, part 2

Один замовник, два приміщення, чотири провайдера і вісім зв'язків
Один із замовників попросив зробити так, щоб зв'язок між його офісом і складом була постійною і безпечною. Як ми це робили і що вийшло, а що ні.

Два провайдера одночасно або dual isp with vrf на cisco, part 2

Усунення асиметричною маршрутизації в Juniper SRX
У даній статті я опишу, як за допомогою рідних засобів Juniper SRX можна дійсно легко і витончено розрулити деякі дратівливі схеми маршрутизації. Йтиметься про використання віртуального маршрутизатора, а точніше, в термінах Джуніпер, routing-instance virtual-router. Коротко проблему можна сформулювати так: є два або