Два провайдера одночасно або dual isp with vrf на cisco, part 2
Добридень! На написання цього матеріалу мене надихнув HunterXXI в своїй статті Два провайдера одночасно або Dual ISP with VRF на Cisco. Я зацікавився, вивчив питання і застосував на практиці. Хотів би поділитися своїм досвідом в реалізації Dual ISP на Cisco з реальним використанням одночасно двох ISP і, навіть, балансуванням навантаження.
Демо схема:
Всі дії виконуються на 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 працював?
- Визначити внутрішній і зовнішній інтерфейси
- Вказати, що ми хочемо транслювати
- Вказати, у що ми хочемо транслювати
- включити трансляцію
У простій конфігурації 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 трансляцію в приватні підмережі.
Front-door VRF. Ще один практичний приклад
Привіт habr! Про настройку VPN спільно з VRF на обладнанні Cisco існує багато статей в Інтернеті. Тут є непогана шпаргалка по налаштуванню IPsec VPN у вигляді крипто-карт і VTI-тунелів спільно з VRF. У цій статті Хабра наведено приклад DMVPN з VRF. VRF дає більшу гнучкість при налаштуванні обладнання і варіантів її використання велике
Балансування трафіку між двома NAT на різних провайдерів на одному физиче.
При класичній схемі підключення двох ISP до одного роутеру, є можливість використовувати відразу два канали для NATірованія внутрішніх клієнтів з балансуванням навантаження, а не тільки для фейловера при відмові одного з провайдерів.
Два провайдера одночасно або Dual ISP with VRF на Cisco
Добрий день. Є універсальне рішення для підключення декількох провайдерів, ip sla + track. Рішення легке для розуміння і просте в управлінні. Але коли справа доходить до одночасного використання двох і більше каналів зв'язку, дана технологія в чистому вигляді не підходить. Хочу поділиться своїм досвідом. На вузлах з декількома провайдерами я
Один замовник, два приміщення, чотири провайдера і вісім зв'язків
Один із замовників попросив зробити так, щоб зв'язок між його офісом і складом була постійною і безпечною. Як ми це робили і що вийшло, а що ні.
Усунення асиметричною маршрутизації в Juniper SRX
У даній статті я опишу, як за допомогою рідних засобів Juniper SRX можна дійсно легко і витончено розрулити деякі дратівливі схеми маршрутизації. Йтиметься про використання віртуального маршрутизатора, а точніше, в термінах Джуніпер, routing-instance virtual-router. Коротко проблему можна сформулювати так: є два або