вторник, 26 июля 2016 г.

Лаба MPLS VPN. Первый запуск и IP план.

Итак, топологию мы придумали, теперь пришло время первого выстрела. В этом посте немного графиков и цифр. Так же займемся IP планированием и перерисуем схемку "на чистовик". К слову, не думаю, что пост будет сильно интересен и информативен, но все же...
Все посты про MPLS VPN можно посмотреть по тегу MPLS или в обобщающем посте.

Как писал в прошлом посте, мы имеем всего 8Гб оперативной памяти. На них мы будем запускать:
  • 1 x IOS XRv
  • 3 x Alcatel 7750SR
  • 2 x JunOS vMX
  • 5 x TinyCore Linux
Картинку с топологией можно посмотреть в прошлом посте или ниже.



Про установку образов в ESXi я умышлено писать не буду. Я думаю, можно легко погуглить на тему OVF-файлов.

Первое, чем я займусь, просто запущу все нужные мне виртуалки без настроек, засеку время и посмотрю на графики. Включаем!

20s...

Спустя каких-то жалких 20-30 секунд, все пять машин TinyCore в состоянии up and running. 


Другого я, в принципе, и не ждал от дистрибутива размером 16Mb, который не занял на диске даже 45Mb. Есть симпатичный GUI, все работает вроде.

2.5min...

Всего через 2,5 минуты после запуска всех виртуальных машин, поднимаются три Алкатель-Люсента. Отличный результат, очень быстро. В целом, запуск образов прошел успешно, за исключением одного предупреждения. Ладно, CLI работает, разбираться будем позже.


12.11min...

Поднимаются два инстанса Juniper. В целом все работает. Как и раньше, частенько в консоль вылетает PANIC PANIC PANIC. В прошлый раз, я с этим сообщением никак не боролся и, вроде как, все работало. Поглядим, что будет на этот раз.


13.48min

XR, как и в жизни, стартует долго и основательно. По пути сыпя в консоль страшные сообщения, которые заставляют оператора думать: "Неужели стартанет?.." Однако стартанул, CLI ещё не доступен и занят системой.

16.18min

CLI в XR доступен. Можно считать, что лаба загрузилась. Почти 15 минут, не так уж плохо. Ничего не падает, все работает, полет нормальный.

Производительность

Пришло время взглянуть на графики. Начнем с самого интересного - памяти.


На графике выше видно, как я погасил все VM и включил интересующие меня примерно в 11:27. Наиболее интересен график Consumed Memory, который подсвечен. Во время загрузки, память ни разу не уперлась в максимум. После старта всех виртуалок, она держится примерно на уровне 6-7 Гб. Как видно, используемая память медленно снижается. Пока я писал этот абзац, отметка стабилизировалась на 6200 Мегабайт. 

Странно, но наиболее прожорливым по оперативке оказался один из двух Juniper'ов. Хотя они абсолютно одинаковые. Одна VM просто скопирована с другой. После рестарта, ситуация нормализовалась. Однако загрузка CPU тоже настораживает.


Довольно многовато, на мой вкус. Заглянув в top стало понятно, что процессор использует процесс "riot". 


На сколько я понимаю, это результат включения локального обработчика пакетов. Ниже видно какие правки нужно внести в файл loader.conf.


Дело в том, что после старта, vMX пытается соединиться с удаленным Packet Forwarding Engine (PFE). Мне такой функционал не нужен и я включил локальный PFE, чтобы виртуальная машина могла сама работать с трафиком. Видимо, это влечет некую дополнительную нагрузку на CPU.

Для приличия взглянем на график CPU после того как все машины загрузились. Никаких аномалий, но 50% как-то многовато... Ох уж эти Juniper'ы...

Даже во время загрузки Juniper'ов, CPU меньше чем в работе. Видимо, график резко возрастает, когда начинает работать локальный PFE.


Выводы по производительности

Вся топология в варианте с тремя P роутерами в ядре успешно умещается на моём скромном сервере. Единственным узким местом может стать только оперативная память. Сложно спрогнозировать сколько оперативки может съесть работающий MPLS. Во всяком случае, 1,5-2 Гб ещё есть в запасе. По CPU, как и предполагалось, все в порядке. Даже учитывая прожорливость двух Juniper'ов c локальными PFE, загрузка остается в пределах 30-50%. Неплохо. 

Попробовал менять соотношение Cisco/Juniper в ядре, чтобы сократить количество используемой памяти. Особого выигрыша нет, к сожалению. Но даже 200-300 Мегабайт могут оказаться критическими. Если оперативки станет не хватать, перейду на запасную топологию с двумя роутерами в ядре. Оно и для практики хорошо. Заодно увидим, только ли PE роутеры являются "service aware"... ) 

В конфигурации 2 x vMX + 1 x XR, память остается примерно на уровне 6700Mb, а загрузка CPU колеблется около 30%. Правда периодически оперативка поднимается до 7409Mb на довольно продолжительное время.

В конфигурации 1 x vMX + 2 x XR, память остается примерно на уровне 7100Md. Скорее всего будут периодические повышения используемой памяти из-за Juniper.

В конфигурации 1 x vMX + 1 x XR, память остается около 5700Mb, CPU - 30%. Аналогично, ожидаю повышения используемой оперативки.

В конфигурации 0 x vMX + 2 x XR, память остается около 5100Mb, CPU - 15%.

Как-то даже я и не знаю... Вроде и мультивендорность хочется и три роутера в ядре тоже хочется... Ок. Попробуем собрать вариант с двумя XR и одним vMX. Если начнутся проблемы, будем убирать один XR. Если и это не поможет, то будем жертвовать мултивендорностью и оставлять два XRа.

Топология

Выше картинка с итоговой топологией, которую я планирую дополнять по мере продвижения по лабе. Сейчас на ней отображено три P роутера внутри ядра, которое изображено облачком. Два нижних маршрутизатора представлены IOS-XR'ами, а верхний Juniper'ом. При недостатке оперативной памяти один из трех роутеров будет убран из топологии. Сейчас думаю, что, скорее всего, я попробую настроить MPLS на трех устройства, а при недостатке оперативки просто выключу одно из устройств. Заодно можно будет посмотреть как сработает отказоустойчивость. На схемке так же отражены интерфейсы и адресация. Между двумя CE девайсами в верхней части схемы изображен Epipe сервис. В нижней части изображен VPLS. Для этих двух сервисов так же указаны IP адреса.

Пока все. В следующий раз, я думаю, пора заняться первоначальной настройкой.

Комментариев нет:

Отправить комментарий