Хорошие новости!
Не так давно (в апреле этого года) мы выпустили новую версию симулятора сетевого оборудования HP, доступную для использования всеми желающими!
Ранее данный продукт был известен в недрах HP как HP Simware, и предназначался только для внутреннего пользования. Чуть позже была выпущена версия для наших партнеров, а теперь он доступен для широкой публики под новым именем – HP Network Simulator.
Продукт основан на новой сетевой операционной системе HP Comware v7 и предназначен для сетевого моделирования и изучения пользовательского интерфейса и функциональных возможностей ОС HP Comware.
В этой статье я в деталях расскажу о принципах работы симулятора и покажу, как можно использовать данный инструмент в работе сетевого инженера на конкретных примерах.
Установка HP Network Simulator
Перед установкой нужно убедиться, что машина соответствует минимальным требованиям:
CPU ≥ 3.0 GHz
RAM ≥ 4 GB
Disk: ≥ 80 GB
OS: Windows 7 или выше
Далее качаем и устанавливаем Oracle VM VirtualBox версии 4.2.18 или выше (рекомендую использовать именно ветку 4.2.xx).
И, наконец, качаем и устанавливаем сам HP Network Simulator tool for Comware7 Devices. Зеркало.
Сам процесс установки слишком прост, чтобы его расписывать, просто нажимаем кнопку «Next» до достижения нужного результата.
Настройка и запуск топологии
Логика работы симулятора довольно проста:
- Сначала в простейшем текстовом редакторе (он же GUI) создается конфигурация топологии сети;
- Потом на ее основе автоматически генерируются виртуальные машины для каждого устройства;
- И в финале происходит запуск этих виртуальных машин в VirtualBox.
Далее мы рассмотрим каждый шаг в деталях.
Подготовка конфигурации проекта
После запуска приложения HP Network Simulator открывается окно GUI с текстовым редактором.
Жмем кнопку «New» для создания нового проекта, редактор сразу сгенерирует конфигурацию по умолчанию:
Именно с нее мы и начнем подготовку собственной (кастомизированной) конфигурации.
В основе симулятора лежит ОС HP Comware, которая работает практически на всей линейке сетевого оборудования HP – коммутаторах, маршрутизаторах, беспроводных WiFi-контроллерах и устройствах безопасности.
Симулятор позволяет практически в полной мере воспроизводить интерфейс и функции коммутаторов и маршрутизаторов HP (как модульных, так и фиксированной конфигурации).
Типы поддерживаемых устройств
Привязка к конкретным моделям железа в симуляторе отсутствует, вместо этого каждый экземпляр виртуальной машины может быть одним из следующих типов устройств:
Модель | Тип устройства | Порты |
Маршрутизаторы | ||
SIM1101 / SIM1201 | 32-bit/64-bit centralized router | • Port 1: Network management port. • Ports 2 to 4: GE ports. • Ports 5 to 8: Serial ports. |
SIM1102 / SIM1202 | 32-bit/64-bit centralized router | • Port 1: Network management port. • Ports 2 to 4: GE ports. • Ports 5 to 8: POS ports. |
SIM1103 / SIM1203 | 32-bit/64-bit centralized router | • Port 1: Network management port. • Ports 2 to 4: GE ports. • Ports 5 to 8: E1 ports. |
SIM1104 / SIM1204 | 32-bit/64-bit centralized router | • Port 1: Network management port. • Ports 2 to 3: 25-Mbps ATM ports. • Port 4: 155-Mbps ATM port. • Port 5: 622-Mbps ATM port. • Port 6: ADSL ATM port. • Port 7: G.SHDSL ATM port. • Port 8: E1 ATM port. |
SIM1105 / SIM1205 | 32-bit/64-bit centralized router | • Port 1: Network management port. • Port 2: E3 ATM port. • Port 3: T1 ATM port. • Port 4: T3 ATM port. • Port 5: ADSL 2+ port. • Port 6: SHDSL_4WIRE ATM port. • Port 7: SHDSL_4WIRE_BIS ATM port. • Port 8: SHDSL_8WIRE_BIS ATM port. |
Коммутаторы | ||
SIM2101 / SIM2201 | 32-bit/64-bit centralized switch | • Port 1: Network management port. • Ports 2 to 8: GE ports. |
SIM2102 / SIM2202 | 32-bit/64-bit centralized switch | • Port 1: Network management port. • Ports 2 to 4: GE ports. • Ports 5 to 8: 10-GE ports that can operate as FC interfaces. |
Модульные маршрутизаторы и коммутаторы | ||
SIM3101 / SIM3201 (MPU) | 32-bit/64-bit distributed switch or router | • Port 1: Network management port. • In the Comware system, the number of this port is 0. |
SIM3111 / SIM3211 (interface card) | 32-bit/64-bit distributed switch or router | • Ports 1 to 7: GE ports. |
SIM3112 / SIM3212 (interface card) | 32-bit/64-bit distributed switch or router | • Ports 1 to 3: GE ports. • Ports 4 to 7: Serial ports. |
SIM3113 / SIM3213 (interface card) | 32-bit/64-bit distributed switch or router | • Ports 1 to 3: GE ports. • Ports 4 to 7: POS ports. |
SIM3114 / SIM3214 (interface card) | 32-bit/64-bit distributed switch or router | • Ports 1 to 3: GE ports. • Ports 4 to 7: E1 ports. |
SIM3115 / SIM3215 (interface card) | 32-bit/64-bit distributed switch or router | • Ports 1 to 2: 25-Mbps ATM ports. • Port 3: 155-Mbps ATM port. • Port 4: 622-Mbps ATM port. • Port 5: ADSL ATM port. • Port 6: G.SHDSL ATM port. • Port 7: E1 ATM port. |
SIM3116 / SIM3216 (interface card) | 32-bit/64-bit distributed switch or router | • Port 1: E3 ATM port. • Port 2: T1 ATM port. • Port 3: T3 ATM port. • Port 4: ADSL 2+ port. • Port 5: SHDSL_4WIRE ATM port. • Port 6: SHDSL_4WIRE_BIS ATM port. • Port 7: SHDSL_8WIRE_BIS ATM port. |
Выбор разрядности устройства (32-bit или 64-bit) зависит от того, на какой машине запускается симулятор. Если у вас стоит 32-битная ОС, выбирайте 32-битные типы устройств, если же ОС 64-битная, соответственно, и устройства должны быть 64-bit.
Синтаксис конфигурации проекта
Синтаксис проекта достаточно прост и должен соответствовать следующим правилам:
- Параметры конфигурации записываются построчно.
- Строки конфигурации, определяющие параметры самих устройств, указываются в формате Parameter = value. В редакторе поддерживается подсветка синтаксиса для корректных наименований параметров (см. таблицу ниже).
- Строки конфигурации, определяющие параметры соединений между устройствами, указываются в формате Parameter <-> Parameter.
- Некоторые параметры могут содержать суб-параметры. Суб-параметры разделяются между собой двоеточием “:”. Пример — Parameter = value: Sub-parameter value;
- Комментарии начинаются с символа # .
- Комментарии, пустые строки, символы пробела и табуляции игнорируются и могут быть использованы для группировки и оформления текста.
Параметры устройств
В таблице ниже приведено описание доступных к использованию параметров устройств в конфиге симулятора:
device_id | Уникальный ID устройства (1-120). Поддерживается до 30-ти устройств в одном проекте. |
device_model | Серия модели устройства. Получается из конкретной модели (см. таблицу выше) путем установки двух последних цифр в 0. Пример – SIM1100. |
board | Однозначно определяет конкретную модель устройства или линейную карту (для модульных устройств). Поддерживает опциональный суб-параметр memory-size. Размер памяти по умолчанию варьируется от 384 до 768 MB в зависимости от модели, однако рекомендуется выставить минимум 1024 для того, чтобы корректно работали все функции (например, Telnet/SSH сервер). Для модульных устройств с помощью суб-параметра slotдополнительно перечисляются все интерфейсные карты и MPU. Пример: board = slot 0: SIM3101: memory_size 768 board = slot 2: SIM3111 |
host_ip | Опциональный параметр. Требуется в ситуации, когда нужно разнести симулируемые устройства по разным хостам. Указывает IP адрес хоста, где будет запущена виртуальная машина устройства. |
Соединения между устройствами описываются в формате device X1: [ slot Y1: ] interface Z1 <---> device X2: [ slot Y2: ] interface Z2.
Соединение устройства с сетевым интерфейсом физического хоста описывается следующим образом:
device X1: [ slot Y1: ] interface Z1 <---> host : "NIC name"
где "NIC name" – имя сетевого интерфейса (например «VirtualBox Host-Only Ethernet Adapter»)
Пример конфигурации
В качестве примера я использовал простейшую схему из трёх коммутаторов, соединенных в кольцо:
За основу возьмем автоматически сгенерированный конфиг «по умолчанию» и переделаем его следующим образом:
#*********************************************************************
# device 1
device_id = 1
# device type is centralized switch (64-bit mode)
device_model = SIM2200
# board type is switch with 8 GE ports
board = SIM2202 : memory_size 1024
#*********************************************************************
# device 2
device_id = 2
# device type is centralized switch (64-bit mode)
device_model = SIM2200
# board type is switch with 8 GE ports
board = SIM2202 : memory_size 1024
#*********************************************************************
# device 3
device_id = 3
# device type is centralized switch (64-bit mode)
device_model = SIM2200
# board type is switch with 8 GE ports
board = SIM2202 : memory_size 1024
#*********************************************************************
# connect switches in ring topology
device 1 : interface 5 <---> device 2 : interface 6
device 2 : interface 5 <---> device 3 : interface 6
device 3 : interface 5 <---> device 1 : interface 6
#*********************************************************************
Генерация VM
Для генерации виртуальных машин из файла конфигурации проекта жмем «F6» (кнопка «Run») и, если синтаксис корректен, через некоторое время стартует VirtualBox с готовыми к запуску VM для каждого из трех коммутаторов:
Запуск VM
Для запуска симуляции стартуем сразу все VM и ждем, пока они загрузятся. После загрузки VM получаем доступ к CLI наших устройств и можем приступить к настройке новоиспеченной лабы.
Подготовка проекта посложнее: MDC + IRF + система управления
Как я уже писал ранее, симулятор поддерживает не только базовые функции (коммутации, маршрутизации и различных стандартных сетевых сервисов), но также и наиболее интересные продвинутые технологии из портфеля HP Networking, такие как:
- Виртуализацию N:1 – технология HP IRF;
- Виртуализацию 1:N – технология HP MDC;
- Технологию объединения ЦОД по L2 – HP EVI;
- а также целый ряд других технологий и протоколов: TRILL, SPB, OSPF, BGP, IS-IS, MPLS, FC/FCoE, LACP… и многих других.
В нашем примере мы увидим работу технологий MDC и IRF в действии. Для этого я изобразил следующую схему:
В основе данной схемы лежат 3 устройства: модульный коммутатор с одним MPU и двумя линейными картами (device 1) и два коммутатора фиксированной конфигурации, объединенные между собой в стек IRF (device 2 и device 3 соответственно).
Конфигурация симулятора будет следующей:
#*********************************************************************
#device 1
device_id = 1
#device type is chassis
device_model = SIM3200
#board slot type and memory_size
board = slot 0 : SIM3201 : memory_size 1024
board = slot 2 : SIM3211
board = slot 3 : SIM3211
#*********************************************************************
#device 2
device_id = 2
#device type is box
device_model = SIM2200
#board type
board = SIM2202 : memory_size 515
#*********************************************************************
#device 3
device_id = 3
#device type is box
device_model = SIM2200
#board type
board = SIM2202 : memory_size 515
#*********************************************************************
#connect host interface
device 1 : slot 0 : interface 1 <---> host : "VirtualBox Host-Only Ethernet Adapter"
device 2 : interface 1 <---> host : "VirtualBox Host-Only Ethernet Adapter"
device 3 : interface 1 <---> host : "VirtualBox Host-Only Ethernet Adapter"
#connect interfaces
device 1 : slot 2 : interface 1 <---> device 2 : interface 2
device 1 : slot 2 : interface 2 <---> device 3 : interface 2
device 1 : slot 3 : interface 1 <---> device 2 : interface 3
device 1 : slot 3 : interface 2 <---> device 3 : interface 3
device 2 : interface 7 <---> device 3 : interface 8
device 2 : interface 8 <---> device 3 : interface 7
#*********************************************************************
Настройка коммутатора SW1
Внутри модульного коммутатора SW1 создаем два изолированных контекста – MDC1 и MDC2, которые будут функционировать, как полностью независимые логические коммутаторы.
Из админского MDC (в который мы попадаем по умолчанию) для контекста MDC1 отдается в полное распоряжение линейная карта во втором слоте шасси SW1, для MDC2 – в третьем:
#
mdc mdc1 id 2
location slot 2
mdc start
allocate interface GigabitEthernet2/0/1 to GigabitEthernet2/0/7
#
mdc mdc2 id 3
location slot 3
mdc start
allocate interface GigabitEthernet3/0/1 to GigabitEthernet3/0/7
#
Переключение между MDC осуществляется следующим образом:
[SW1]switchto mdc mdc1
******************************************************************************
* Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P. *
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
******************************************************************************
<SW1-MDC1>switchback
[SW1]
Посмотреть состояние всех контекстов на устройстве можно следующим образом (из админского MDC):
[SW1]display mdc
ID Name Status
1 Admin active
2 mdc1 active
3 mdc2 active
[SW1]
В этой статье я не буду затрагивать технологию MDC во всех ее аспектах, так как в скором времени планируется выпуск отдельной статьи по этой теме.
После того, как мы создали нужные нам контексты на SW1, необходимо настроить их интерфейсы управления. Для всех контекстов одного устройства используется общий Management интерфейс на MPU — M-Ethernet0/0/0. Внутри каждого контекста назначается свой IP-адрес управления на данном интерфейсе:
# В админском контексте
[SW1-M-Ethernet0/0/0]interface M-Ethernet0/0/0
[SW1-M-Ethernet0/0/0]ip address 192.168.56.11 24
# В MDC1
[SW1-MDC1-M-Ethernet0/0/0]interface M-Ethernet0/0/0
[SW1-MDC1-M-Ethernet0/0/0]ip address 192.168.56.21 24
# В MDC2
[SW1-MDC2-M-Ethernet0/0/0]interface M-Ethernet0/0/0
[SW1-MDC2-M-Ethernet0/0/0]ip address 192.168.56.22 24
Настройка коммутатора SW2
Коммутатор SW2 будет представлять собой IRF-стек из двух коммутаторов device 2 и device 3. Полную методику настройки IRF на коммутаторах можно найти в соответствующих руководствах на нашем сайте.
Убедимся лишь, что IRF работает корректно, и далее также настроим интерфейс управления на стеке:
Настройка Management-интерфейсов на IRF стеке коммутаторов:
# обратите внимание, что номер интерфейса изменился (по номеру Master-коммутатора в стеке)
[SW2-M-Ethernet1/0/1]interface M-Ethernet1/0/1
[SW2-M-Ethernet1/0/1]ip address 192.168.56.12 24
Далее я производил настройки интерфейсов, агрегации каналов, SNMP, LLDP, маршрутизации OSPF и ряда других функций, но в целях экономии времени, не буду подробно описывать каждый их шаг, все конфиги устройств можно посмотреть в приложениях к статье.
Настройка системы управления IMC
Самые внимательные из вас могли заметить, что в конфиге симулятора я специально указал следующие строки:
#*********************************************************************
#connect host interface
device 1 : slot 0 : interface 1 <---> host : "VirtualBox Host-Only Ethernet Adapter"
device 2 : interface 1 <---> host : "VirtualBox Host-Only Ethernet Adapter"
device 3 : interface 1 <---> host : "VirtualBox Host-Only Ethernet Adapter"
С помощью такой нехитрой схемы, все Management-интерфейсы симулируемых устройств будут подключены к виртуальному адаптеру VirtualBox на хосте. Тем самым я буду иметь доступ к этим устройствам с моего ноутбука, а также и с других виртуальных машин, запущенных в VirtualBox.
Как раз это нам и нужно, так как план состоит в том, чтобы поставить на отдельную VM нашу замечательную систему управления HP IMC и визуализировать всю топологию виртуального стенда средствами этой системы. Кроме того, будут доступны все другие интересные функции IMC, такие как мониторинг производительности, управление конфигурациями, VLAN, ACL, сбор и анализ SNMP трапов и Syslog сообщений и многие многие другие.
Из соображений экономии оперативной памяти на ноутбуке, я выбрал самую минимальную версию системы – IMC Basic. Скачать ее можно с нашего сайта и бесплатно пользоваться в течение 60-ти дней пробного периода.
В случае установки в продакшн, система достаточно требовательна к производительности сервера (особенно к объему RAM), но для тестовых целей двух гигабайт на VM вполне хватило.
Для установки системы я создал новую VM в том же VirtualBox, установил туда Windows Server 2008 R2 Standard и, собственно, саму IMC Basic 7.0.
Настройки сети для VM выглядят следующим образом:
Это значит, что сервер IMC будет подключен к тому же виртуальному адаптеру, что и интерфейсы управления всех устройств, и все они будут видеть друг друга по IP.
Теперь дело остается за малым — стартовать IMC, запустить автоматическое обнаружение устройств и открыть окно с топологией сети – IMC Network Topology:
Интеграция с GNS3
GNS3 – пожалуй, самый известный графический симулятор сети, поэтому я решил показать, как можно легко интегрировать уже привычные многим инженерам топологии из GNS3 с нашим HP Network Simulator.
Основой для взаимодействия двух симуляторов служит облачко «Cloud» в GNS3. Как и виртуальные машины из HP Network Simulator привязываются своими внутренними интерфейсами к адаптеру «VirtualBox Host-Only Ethernet Adapter», так же и облачко из GNS3 подключается к сетевому интерфейсу этого адаптера. Далее через него связываются между собой виртуальные устройства Cisco/Juniper из GNS3 вместе с устройствами HP из HP Network Simulator.
В своем примере я настроил GRE-туннель между стеком коммутаторов HP SW2 (HP Network Simulator) и маршрутизатором Cisco R1 (GNS3), а поверх туннеля – маршрутизацию OSPF:
Кастомизация устройств
Несмотря на то, что в официальной документации к симулятору этого нет, вы можете вручную кастомизировать существующие типы устройств или добавлять новые:
- В каталоге, куда установлен HP Network Simulator (HNS), открываем папку «model»;
- Открываем или копируем существующие .cfg файлы моделей устройств;
- Правим их содержимое. Для примера возьмем за основу существующий файл «SIM2202.cfg»:
SIM2202.cfg:PHY_ETH_10M 1 PHY_ETH_GE 3 PHY_FC_XGE 4
- На его основе создадим файл с описанием коммутатора с 8-ю портами 10GE и сохраним под новым именем «SIM2203.cfg»:
SIM2203.cfg:PHY_FC_XGE 8
- Далее в конфиге можно использовать нашу новую модель коммутатора:
device_model = SIM2200 board = SIM2203 : memory_size 1024
Примечание: в текущей версии симулятора существует ограничение в 8 портов на устройство, которое обусловлено ограничением VirtualBox (не более 8 сетевых интерфейсов на VM. В самой последней версии VirtualBox их количество увеличено до 36-и, однако, в самом симуляторе ограничение осталось). Кроме того, в модульных устройствах один из портов задействован для связи между MPU и линейными картами, поэтому максимальное количество пользовательских портов на линейных картах равно 7.
Примечание 2: порты 10G на коммутаторах являются конвергентными и могут быть настроены для работы в режимах 10G Ethernet или Fibre Channel (FC).
Заключение
Новый симулятор является действительно интересным и относительно удобным средством моделирования сети и отлично подходит для решения следующих задач:
- Обучение специалистов сетевому оборудованию и технологиям HP;
- Создание виртуальных демонстрационных стендов и демонстрация их своим заказчикам;
- Проведение небольших демонстраций «в полях»;
- Проверка работы различных сетевых технологий и протоколов;
- Тестирование функционала HP Comware 7;
- Адаптация инженеров к синтаксису командной строки HPN :)
- •… и многих других.
Кроме того, новый симулятор не требователен к ресурсам железа. Для того чтобы убедиться в этом, я проводил все вышеупомянутые манипуляции со стендами на своем рабочем ноутбуке с процессором Intel Core i5 2520M и всего лишь 8 GB оперативной памяти (солидная часть из которой была занята множеством сторонних приложений – почта, офис, браузеры, скайп и т.д.).
Мне удалось запустить в симуляторе 5 экземпляров устройств, а также одну виртуальную машину с системой управления IMC, при этом не испытывая тормозов.
Конфигурации устройств
- sw1.cfg: pastebin.com/YPU8ksWd
- sw1-mdc1.cfg: pastebin.com/Jf1MPbZr
- sw1-mdc2.cfg: pastebin.com/Eia6ce8M
- sw2.cfg: pastebin.com/TENwZm4H
- cisco7200.cfg: pastebin.com/ee1kp7NL
Автор: aspq