VPLS без реального обладнання

Network, ISP

До останнього часу, щоб повправлятися в налаштуванні і траблшутинг VPLS, доводилося мати справу з реальним обладнанням (за винятком x86-версії Mikrotik) або орендувати чужі лабораторії на час. Наприкінці 2013-початку 2014 року ситуація змінилася з виходом Cisco CSR1000V (IOS-XE 3.10S) та Juniper Firefly Perimeter (JunOS 12.1X46-D10.2), він же vSRX.

CSR1000V підтримує VPLS повноцінно. Для знайомства із самою технологією, найкраще використовувати саме цей віртуальний роутер.

vSRX в обмеженому (але достатньому) вигляді, а саме підтримується комутація між псевдопроводами і локальним сабинтерфейсом з урахуванням таблиці комутації VPLS. Світчінг між локальними сабинтерфейсами не підтримується, так само як і свитчінг між пседопроводами.

Далі йтиметься про те, як запустити та змусити нормально працювати згадані віртуальні роутери на гіпервізорі ESXi 5.5

Для роботи ESXi 5.5 знадобиться виділений комп'ютер із відносно нормальним процесором (щось типу Intel i5) і хоча б 6Гб оперативної пам'яті. Установка відбувається в стилі Next-Next-Next, кожен впорається.

Для написання статті використовувалася версія ESXi 5.5.0 (r1623387) Free, керування безпосередньо через vSphere Client. Для роботи vSphere Client у Windows XP/2003(x86) має бути встановлений патч 351385_ENU_i386_zip.exe (див. VMWare KB2049143)

Безкоштовна версія ESXi незручна лише тим, що не можна прокинути консольний порт через telnet, проте це не приносить великих незручностей, на кожній віртуальній машині можна зробити management port і керувати через нього за допомогою telnet/ssh (інакше доведеться керувати через віртуальний монітор).

Cisco CSR1000V

Цей продукт є комерційним, але має пробний період(60 днів),протягом якого доступний весь функціонал. Використовувався образ “csr1000v-universalk9.03.11.01.S.154-1.S1-std-C1-M2560-N3-DS8.ova”. Розгортання здійснюється через (vSphere Client) File-Deploy OVF Template. Мінімально потрібний розмір RAM 2.5Гб.

Відразу після запуску VM з'явиться завантажувач grub з двох пунктів. Перший це Virtual Console - управління через віртуальний монітор (якщо у вас немає ліцензії на ESXi для прокидання com-порту) і другий це Serial Console - початкове конфігурування буде можливе тільки через serial port (потрібна ліцензія на ESXi). Переключення між serial і virtual режимами робиться командою "platform console serialvirtual".

Після того, як пройде процес встановлення на HDD віртуальної машини, з'явиться запрошення:

Відповідаємо no, чекаємо і (якщо ви хочете скористатися пробним періодом) виконуємо команди:

Після перезавантаження можна починати конфігурацію.

Juniper Firefly Perimeter

Так само як і CSR1000V, цей продукт є комерційним, але має пробний період (60 днів), протягом якого доступний необхідний функціонал. Використовувався образ “junos-vsrx-12.1X46-D10.2-domestic.ova”. Розгортання здійснюється через File-Deploy OVF Template. На відміну від CSR1000V, початкове налаштування може відбуватися як через віртуальний монітор, так і через serial port (але, знову ж таки, за наявності ліцензії на ESXi). Мінімально потрібний розмір RAM 1Гб.

Після запуску VM буде відбуватися установка ПЗ (FreeBSD і JunOS) на HDD віртуальної машини. Після закінчення інсталяції з'явиться стандартне запрошення Juniper:

Логін – root, пароля немає. Потрапляємо у FreeBSD, відразу ж переходимо в JunOS командою cli, потім у режим конфігурування (команда configure). Тепер потрібно перетворитицей firewall в mpls-роутер наступними командами:

Після перезавантаження можна починати конфігурацію. Якщо після кожного commit він лаятиметься на зміну mpls mode, не звертайте увагу, ймовірно, це косметичний дефект.

Цей продукт є також комерційним, має пробний період 24 години, протягом якого доступний весь функціонал. Призначений не тільки для роботи як віртуальний роутер, але і для установки безпосередньо на сервер (без гіпервізора).

Під час підготовки статті використовувався настановний образ “mikrotik-6.11.iso”. Розгортається шляхом створення нової віртуальної машини (x86, 256Мб RAM, 1 vCPU, (!) IDE (не SCSI) HDD) та установки з віртуального cdrom, точно таким же методом як якщо б ви встановлювали традиційні ОС (наприклад, Windows) з iso- образу. Установка menu-style (при виборі пакетів відзначити для установки: system, mpls, routing). Керування можливе і через віртуальний монітор і через serial port (і знову ж таки, за наявності ліцензії на ESXi на цю фічу)

Після встановлення з'явиться запрошення. Логін admin, пароль порожній.

Створення та налаштування vSwitch

обладнання

VPLS має дві особливості щодо лінків між мережевими інтерфейсами віртуальних роутерів. Спочатку "проблема" полягає в тому, що не можна просто взяти і "з'єднати" порти віртуальних машин. Комутація мережевих інтерфейсів віртуальних машин здійснюється через віртуальні свитчі (“вбудований” VMware vSwitch або “альтернативний” Cisco Nexus). У цій нотатці розглядається vSwitch.

Перша особливість (не тільки VPLS, а MPLS взагалі) – необхідність збільшити MTU на транзитному світчі (яким є vSwitch), це завдання завжди вирішується тривіально – збільшення MTU в налаштуваннях світчу. У налаштуваннях vSwitch є можливістьзбільшення MTU. Обговорювати тут нема чого.

Світчі PE-CE

Для створення vSwitch потрібно перейти в налаштування (!)хост-машини->Configuration->Networking->Add Networking, вибрати Connection Type: Virtual Machine, Next, вибрати Create a vSphere standard switch, Next, задати назву свитча(Network Label), наприклад sw3-6 (між PE3 і CE6), задати Vlan ID 4095 (перепустка всіх dot1Q-тегів), Next, Finish. Асоціювати цей vSwitch із портами хост-машини не потрібно. Далі, потрібно включити promiscuous mode, для цього перейти в Properties свитча:

Потім вибрати пункт vSwitch, Edit, перейти на вкладку Security і змінити Promiscuous Mode c Reject на Accept, OK, у разі питання про порти, що відсутні, відповісти Yes, Close.

vpls

Світчі PE-PE

Світчі PE-PE створюються аналогічно PE-CE, з наступними відмінностями: - VLAN ID можна не вказувати (залишити None (0)), оскільки на лінках PE-PE dot1Q не потрібно на другому рівні (якщо десь і будуть dot1Q теги, то вже всередині кадру і не мають значення для vSwitch-а) - promiscuous mode можна не включати. Якщо потрібно подивитися трафік, то як CE можна використовувати VM з “звичайною” ОС та tcpdump/wireshark – Для нормальної роботи VPLS, потрібно збільшити MTU (наприклад, встановити значення 1600). Робиться це майже там же, де і включається promiscuous mode, тільки не на вкладці Security, а в General

Підключення VM до свитків

Підключення портів VM до свитків здійснюється в налаштуваннях VM. На прикладі PE1 виглядає так:

реального

CE пристрої

Як CE пристроїв найпростіше використовувати якийсь linux live дистрибутив з великим набором попередньо встановленого мережного ПЗ. Наприклад, Kali Linux.

Нарешті все підготовлено, можна зайнятися безпосередньо конфігурацієюPE-роутерів. Напевно було б неправильно почати розповідати про IGP, MPLS і VPLS-сигналізацію в рамках цієї нотатки, тому просто прикладаю готові конфігурації для всіх трьох PE. Конфігурації максимально спрощені, обрані найбільш консервативні протоколи: як IGP використовується ospf, LDP для транспортної MPLS-мітки та LDP для VPLS мітки (Martini VPLS).

Таблиці комутації(після запуску ping-ів між CE):

Щоб зробити красиву картинку з трафіком (з двома mpls-мітками), через відсутність P-роутерів, довелося заблокувати лінк PE1-PE3 і зняти трафік між PE2 і PE3. На скріншоті зображений icmp-трафік між CE6(IP 198.51.100.6) і CE4(IP 198.51.100.4), що проходить шляхом CE6-PE3-PE2-PE1-CE4: