Если вы следите за мной или читаете мой блог, вы, вероятно, знаете, что я большой поклонник ContainerLab. Я использую его уже более двух лет, и мне это очень нравится. Почему? Поскольку это открытый исходный код, у него есть удивительное сообщество (еще раз спасибо, Roman), а лаборатории определяются с использованием простых файлов yaml, которыми легко поделиться и повторно использовать.
До сих пор я использовал Cisco IOL, Arista EOS и Palo Alto VM в ContainerLab. И, наконец, пришло время попробовать можжевельник. Я решил проверить можжевельник Vjunos-Router, который является виртуализированным маршрутизатором MX. Это одно VM-версия VMX, которая не требует лицензий на функции и предназначена для лабораторных или тестирования. Вы даже можете загрузить изображение прямо с Juniper’s веб -сайт Без необходимости учетной записи. Спасибо, Juniper и Cisco, пожалуйста, обратите внимание. В этом посте я покажу вам, как запустить можжевельник Vjunos-Router в ContainerLab.
Предварительные условия
Этот пост предполагает, что вы немного знакомы с ContainerLab и уже установили его. Если вы новичок, не стесняйтесь проверить мой вступительный блог ниже. ContainerLab также имеет отличный документация о том, как использовать Vjunos-Router, так что обязательно проверьте это также.
Я использую ContainerLab на Ubuntu 24.04 Server, Но процесс был бы таким же для любого другого дистрибутива.
Загрузка изображения Vjunos-Router
А Vjunos-Router является виртуальным маршрутизатором можжевельника, который управляет ОС Junos и разработан специально для лабораторных и тестирования. Он устанавливается в виде единой виртуальной машины на сервере x86 и ведет себя как физический маршрутизатор с точки зрения конфигурации и управления. Созданный с использованием VMX в качестве эталона, он включает в себя один двигатель маршрутизации и один гибкий концентратор PIC (FPC), с пределом полосы пропускания 100 Мбит / с по всем интерфейсам..
Как я уже упоминал, отправляйтесь в можжевельник портал и скачать изображение QCOW2. Я пошел с последней версией, 24.2.
То, что я заметил, что, хотя это файл QCOW2, расширение, которое он загружает .dms, Но вы можете просто переименовать файл в .qcow2. Так, например, переименовать vJunos-router-24.2R1-S2.5.dms к vJunos-router-24.2R1-S2.5.qcow2.
Подготовка изображения
Далее вам нужно клонировать репо (vrnetlab) Чтобы преобразовать этот файл в изображение Docker. Этот метод обычно используется для изображений VM ContainerLab. VrnetLab упаковывает обычную виртуальную машину внутри контейнера и делает его запускаемой, как если бы это было изображение контейнера. Сделать эту работу, vrnetlab Предоставляет набор сценариев, которые создают изображение контейнера из предоставленного пользователем диска виртуальной машины.
После клонирования перейдите к vrnetlab/vjunosrouter Справочник и переместите только только что загрузился в эту папку.
Внутри папки, просто беги make
Это займет несколько минут, чтобы завершить. Как только это будет сделано, беги docker images И вы должны увидеть vjunos-router изображение перечислено.
Запуск лаборатории
С этого момента просто создайте лабораторию так, как обычно. Для этого примера я собираюсь создать пару маршрутизаторов, и вот топология лаборатории.
Конвенция об именах интерфейса ge-0/0/X (Вы также можете использовать et-0/0/X или xe-0/0/X, все приняты), где X обозначает номер порта. Так, ge-0/0/0 это первый доступный порт данных, ge-0/0/1 второй, и так далее.
После определения лаборатории просто запустите лабораторию с обычной командой Deploy ContainerLab.
Для маршрутизаторов может занять несколько минут несколько минут, и Вы должны быть в состоянии SSH, используя по умолчанию admin/admin@123 реквизиты для входа. Я просто настраиваю простую ссылку с точки зрения, и, как вы можете видеть, я могу пинговать между маршрутизаторами.
admin@vmx-02> configure
Entering configuration mode
[edit]
admin@vmx-02# set interfaces ge-0/0/0 unit 0 family inet address 10.15.15.2/24
[edit]
admin@vmx-02# show | compare
[edit interfaces]
+ ge-0/0/0 {
+ unit 0 {
+ family inet {
+ address 10.15.15.2/24;
+ }
+ }
+ }
[edit]
admin@vmx-01> ping 10.15.15.2
PING 10.15.15.2 (10.15.15.2): 56 data bytes
64 bytes from 10.15.15.2: icmp_seq=0 ttl=64 time=43.992 ms
64 bytes from 10.15.15.2: icmp_seq=1 ttl=64 time=2.160 ms
64 bytes from 10.15.15.2: icmp_seq=2 ttl=64 time=3.023 ms
^C
--- 10.15.15.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.160/16.392/43.992/19.520 ms
ContainerLab расширение VSCODE
Если у вас есть расширение VSCODE ContainerLab, вы также можете развернуть лабораторию оттуда. Используя расширение, Вы можете генерировать диаграммы топологии и многое другое. Я настоятельно рекомендую попробовать расширение.


Использование ресурсовЯ выделил 4 ядра VCPU и 16 ГБ оперативной памяти моей виртуальной машине ContainerLab, которая работает на ProxMox. Когда я запустил два Vjunos-Routers, ресурсы были почти полностью использованы, как вы можете видеть на снимках экрана. Я проверил как Proxmox и htop Для статистики использования. Поэтому, если вы планируете запустить более крупные лаборатории, убедитесь, что выделите достаточно ресурсов, чтобы избежать проблем с производительностью.

При этом я не чувствовал никакого отставания на виртуальной машине и не заметил какую -либо медлительность во время работы. Я не потратил на это огромного количества времени, но если я наткнусь на что -то, что стоит отметить, я обновлю это здесь.
Vjunos-Router Startup Config
Можно заставить vjunos-router узлы загружаться с помощью пользовательской конфигурации стартапа вместо встроенной. Используя startup-config Свойство узла или вида, вы можете установить путь к файлу конфигурации, который будет установлен в контейнер и используется при запуске.
Я сделал скопировать конфигурацию из vmx-01, изменил IP ge-0/0/0.0 к 10.15.15.3/24 Как показано в фрагменте ниже, и сохранил эту конфигурацию как vmx-01-config.txt в том же каталоге, что и файл топологии.
Затем я уничтожил лабораторию с помощью --cleanup флаг, который удаляет контейнеры и их конфигурации.
После этого я изменил файл топологии на точку vmx-01 Чтобы использовать эту конфигурацию запуска и перераспределить лабораторию.
Как и ожидалось, vmx-01 загружается с помощью пользовательской конфигурации. Это еще одна полезная функция, если вы хотите поделиться лабораторией с кем -то, вам просто нужно сделать резервную копию конфигурации и включить ее в лабораторные файлы. Как круто?
Закрытие
Это быстрый взгляд на то, как вы можете получить Vjunos-Router в ContainerLab. Это простая и чистая настройка, как только вы преобразуете изображение, и определено лабораторию.










