перша схема
Здавалося б, буденна задача - об'єднати два офіси шифрованих каналом. Всього-то потрібно побудувати site-to-site VPN і зашифрувати за допомогою crypto map. Все так і є, якщо мова йде не про державну структуру. Не можна використовувати ворожі шифрувальні алгоритми і залізо. Саме під цю задачу було обрано маршрутизатори ISR другого покоління 2911R. Буква R наприкінці назви говорить про те, що дані Рутер були зроблені на території РФ. Для шифрування трафіку будемо використовувати модулі для цих Рутер - NME RVPN, виконані в якості карти розширення для ISR. Вони несуть на борту російський софт від компанії S-Terra і, звичайно ж, «Кріпто про». По суті, плати являють собою окрему машинку під керуванням redhat linux з декількома кастомними софтину. Має один зовнішній порт крім загальної комутаційної шини, якої підключаються всі подібні модулі в ISR.
Для тестів я вирішив зібрати схему, яка зображена на першому малюнку.
Зібрати цю схему складності не представляє. Питання почали з'являтися, як я взявся за настройку самого модуля.
Як додати dot1.q інтерфейс
Ця процедура описана в мануалі до модуля, але після виконання зазначених дій пакети через створений інтерфейс у мене не ходили. Вони явно фільтрувалися процесом vpnserver. Ще раз, перечитавши розділ мануала, звернув увагу на наступне:
"Якщо командою if_mgr add був зареєстрований новий об'єкт, що захищається інтерфейс після конвертації cisco-like конфігурації, то для цього інтерфейсу буде виконуватися неявне правило Drop All, так як при конвертації cisco-like конфігурації фільтри для кожного інтерфейсу прописуються окремо При наступному конвертації cisco-like конфігурації новий інтерфейс буде додано до цю конфігурацію і для нього будуть діяти загальні правила, як і для інших інтерфейсів. "
Отже, додаємо драйвер на інтерфейс, заходимо в shell коммандой cs_console, заходимо в контекст інтерфейсу, робимо shutdown, виходимо з режиму конфігурації. Тут-то і відбувається "конвертація cisco-like конфігурації". Знову заходимо в режим конфігурації, даємо no shutdown, лип-ти-ти, пакети ходять. Єдине, що потрібно знати (на що я натрапив) cs_console некоректно переписує файл інтерфейсу, якщо інтерфейс DOT1.Q. Після того різання даної операції виправте файл /etc/sysconfig/network-scripts/ethX.X. В мануалі написано, що ONBOOT має дорівнювати FALSE. Я вирішив зробити true. Після рубута інтерфейс піднявся, але пакети знову не ходили. Зробив по мануалу - додав в /etc/rc.local рядок "/ sbin / ifup ethX.X"
Як зашифрувати (стандартний конфіг)
Конфігурацію для пробного запуску взяв з "RVPN_Quick_Start_Guide.pdf".
У першій схемі я розбив маршрутизатор на 2 vrf: LAN і глобальний. Сполучною ланкою для них, як раз, був модуль RVPN. IPSEC тунель стартував в модулі одного рутера, закінчувався, відповідно, в модулі іншого. GRE тунель стартував з зовнішніх інтерфейсів глобальної таблиці маршрутизації Рутер. Таким чином, виходило, що заголовки GRE НЕ шифрувалися, а корисне навантаження вже йшла у вигляді ESP.
На цьому можна було б зупинитися, але мені не сподобалися два зайвих хопу при направленні пакета в інтернет. В інтернет пакети летять через модуль RVPN. Можна було зробити лінк між vrf Вланєв через комутатор і два інтерфейсу рутера, або рут МАПом перекинути пакети куди потрібно, але у клієнта комутатор не підтримує Вланєв, а рут МАПом теж не дуже красиво виходить через NAT. Отже, в даному випадку немає ніякої потреби використовувати розбиття на vrf.
Після всіх проб і помилок утворилася проста і зрозуміла схема. Як виявилося, саме вона розглядається першої в одному з мінлива по налаштуванню site_to_site тунелю між Рутер з використанням модуля RVPN.
Проблема з падінням ospf.
looped chain attempting to stack
Рішення: не анонсувати маршрут призначення тунелю в сам тунель.
Залишився останній штрих - налаштувати QOS. В одному офісі підключення 5 mbps, в іншому adsl 8/1 (1 mbps вихідний). Використовуємо політику для класифікації на вході і ієрархічний шедулера на виході.