Роутер+гипервизор Huawei в одном корпусе. Запускаем с нуля
Данная статья будет полезна системным администраторам, планирующим работать с сетевым оборудованием Huawei, а так же ИТ-специалистам, перед которыми стоит задача разработки собственных решений на базе стандартных платформ. В ней будет приведено подробное описание настройки устройства посредством командной строки (CLI).
Я получил для тестирования и изучения продукт компании Huawei Enterprise — Huawei AR169W-P-M9. Как следует из описания на сайте производителя — это устройство объединяет в себе полный набор услуг, в том числе маршрутизации, коммутации, безопасности и беспроводного доступа, а также содержит в себе открытую сервисную платформу (OSP, которая по сути является x86 компьютером), которая может обеспечить практически любой функционал, доступный на x86-платформе.
Если все упростить — то это полноценный роутер корпоративного уровня с интегрированным гипервизором на базе x86 архитектуры и все это размером с толстую книгу.
Рассмотрим устройство поближе. Основные характеристики с сайта производителя ниже.
Рис. 1
1 — Порт USB (host) | 2 — Антенна Bluetooth |
3 — Две Wi-Fi антенны | 4 — Слот для доп. Жесткого диска (HDD 2.5») |
5 — Консольный порт | 6 — Порт WAN 1GE Ethernet |
7 — Порт WAN VDSL | 8 — LAN — 4х портовый коммутатор GE thernet |
9 — Кнопка сброса Reset | 10 — Разъем для блока питания PoE портов (100 W). В комплект не входит. |
11 — Разъем для стандартного блока питания (60 W) | 12 — Разъем для фиксации кабеля питания. |
13 — Три USB интерфейса (host). Выходная мощность каждого 5 W. | 14 — VGA для подключения монитора. |
15 — HDMI видео-интерфейс | 16 — Разъем для подключения наушников |
17 — Разъем для подключения микрофона | 18 — Интерфейс RS485/232 |
19 — Интерфейс для подключения Bluetooth антенны | 20 — Название модели. |
21 — Разъем для заземления | 22 — Две антенны Wi-Fi |
Техническая спецификация
Процессор основного устройства | Dual-core, 1 GHz |
Память основного устройства | 512 Мб |
Память OSP системы | 8 Гб |
Flash основного устройства | 512 Мб |
Жесткий диск HDD OSP системы (build in) | 64 Гб |
Процессор OSP системы | Intel Atom 1.9 GHz 4 Core |
Размеры (В x Ш x Г) | 44.5 мм x 300 мм x 220 мм |
Wi-Fi | 802.11b/g/n + 802.11ac |
Service Forwarding Performance (IMIX) | 150 Мб/сек. |
Масса | 2,8 кг. |
Питание | 100В — 240В |
Характеристики маршрутизатора
Базовый функционал | ARP, DHCP, NAT, and Sub interface management |
WLAN (AP — точка доступа FAT) | AP management, WLAN QoS, WLAN security, WLAN radio management, and WLAN user management (Only WLAN models support WLAN AP features) |
WLAN (AC — контроллер точек доступа) | AP management (AC discovery/AP access/AP management), CAPWAP, WLAN user management, WLAN radio management (802.11a/b/g/n), WLAN QoS (WMM), and WLAN security (WEP/WPA/WPA2/Key management) |
LAN | IEEE 802.1P, IEEE 802.1Q, IEEE 802.3, VLAN management, MAC address management, MSTP, etc. |
Ipv4 Unicast Routing | Routing policy, static route, RIP, OSPF, IS-IS, and BGP |
Ipv6 Unicast Routing | Routing policy, static route, RIPng, OSPFv3, IS-Isv6, and BGP4+ |
Multicast | IGMP v1/v2/v3, PIM SM, PIM DM, and MSDP |
VPN | IPSec VPN, GRE VPN, DSVPN, L2TP VPN, and Smart VPN |
QoS | Diffserv mode, Priority mapping, traffic policing (CAR), traffic shaping, congestion avoidance (based on IP precedence/DSCP WRED), congestion management (LAN interface: SP/WRR/SP + WRR; WAN interface: PQ/CBWFQ), MQC (traffic classification, traffic behavior, and traffic policy), Hierarchical QoS, and Smart Application Control (SAC) |
Security | ACL, firewall, 802.1x authentication, AAA authentication, RADIUS authentication, HWTACACS authentication, broadcast storm suppression, ARP security, ICMP attack defense, URPF, CPCAR, blacklist, IP source tracing, and PKI |
Management and Maintenance | Upgrade management, device management, web-based GUI, GTL, SNMP v1/v2c/v3, RMON, NTP, CWMP, Auto-Config, site deployment using USB disk, and CLI |
Следующие операционные системы могут быть установлены на сервисный модуль OSP:
• Windows Server 2003 32bit,
• Windows Server 2008 R1 32bit,
• Windows Server 2008 R2 64bit,
• Windows 7 32bit sp1,
• Windows 8.x
• Red Hat Enterprise 6.5,
• Red Hat Enterprise 7.0,
• SUSE Enterprise 11 SP1,
• Fedora Core 20,
• Debian Wheezy.
После более детального изучения устройства, я набросал следующую структурную схему устройства:
Рис. 2
Как можно увидеть, устройство условно состоит из двух частей:
- MCU — основное устройство, которое является роутером Huawei серии AR. И по сути ничем от него не отличается, весь функционал роутеров этой серии доступен в данном устройстве.
- OSP — open system platform — по сути является x86 компьютером на котором установлен гипервизор QEMU. Взаимодействует с MCU посредством виртуального свича (vSwitch). В командной строке MCU мы увидим устройство как отдельный интерфейс (я постарался отразить это на структурной схеме в виде отдельного линка к логическому роутеру). Управление гипервизором также происходит из командной строки роутера, что на мой взгляд не очень удобно, возможно в будущем это изменится и будет возможность настраивать OSP посредством клавиатуры и монитора или посредством WEB-интерфейса.
- Wi-Fi модуля (802.11b/g/n + 802.11ac)
- Всех возможных портов для взаимодействия с внешним миром (описаны выше).
В своей практике я часто имею дело с сетевым оборудованием Huawei, считаю, что достаточно хорошо знаю его архитектуру, операционную систему VRP и CLI. Но когда я узнал о существовании такого «гибрида», мне стало интересно — на каком уровне в нем происходит интеграция x86 и VRP? Как будет выглядеть с точки зрения роутера гипервизор? И как будут выглядеть сетевые ресурсы роутера с точки зрения установленной на сервисную платформу x86-ой операционной системы? И интерес, в первую очередь, свяазан с открывающимися вариантами решений различных типовых задач — ведь по сути в одной коробке уже есть почти все, вот к примеру варианты использования:
Рис. 3
На рисунке 1 — базовая схема подключения дополнительного офиса к главному. Устройство в дополнительном офисе решает задачу выхода в Интернет, раздачу Wi-Fi, предоставление IP-телефонии, коммутацию четырех устройств, а также до двух серверов для задач, которые нужно решать локально.
Второй вариант:
Рис. 4
Решение для общественного транспорта. Устройство будет раздавать интернет пассажирам, которое оно будет получать посредством 3G/4G, а также транслировать рекламу посредством HDMI-интерфейса и подключенному к нему монитору и колонке. Или, например, определяя местоположение по GPS, проводить экскурсию пассажирам. Для этого, конечно же, на гостевой ОС должно быть запущено соответствующее приложение. Стоит так же заметить, что для данного применения уместнее использовать промышленный вариант серии AR 500, который выполнен в специальном корпусе, защищающем устройство от тряски.
Думаю, что вариантов применения можно придумать множество, эти варианты первые, что пришли мне в голову.
Первичные настройки роутера.
Пароль по умолчанию на консоль (параметры консоли стандартные, как у Cisco: 9600baud, без контроля четности):
Username: admin
Password: Admin@huawei
(в некоторых ранних версиях VRP пароль может быть Admin@123, но в свежих версиях — такой как указано выше).
1) Прописываем IP адрес для VlanInterface1, в котором по умолчанию находятся порты LAN-свича GE0-GE4, а также маршрут по умолчанию:
system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR169
[AR169]interface Vlanif1
[AR169-Vlanif1]ip address 172.31.31.77 255.255.255.0
[AR169-Vlanif1]quit
[AR169]ip route-static 0.0.0.0 0.0.0.0 172.31.31.1
2) Настраиваем доступ по SSH к устройству, предвариетльно создав пользователя и сгенерировав ключи rsa:
[AR169]rsa local-key-pair create
The key name will be: Host
RSA keys defined for Host already exist.
Confirm to replace them? (y/n):y
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is less than 2048,
It will introduce potential security risks.
Input the bits in the modulus[default = 2048]:
Generating keys...
...........................................................................................................................................+++
....................+++
..............................................++++++++
................++++++++
[AR169]user-interface vty 0 4
[AR169-ui-vty0-4]authentication-mode aaa
[AR169-ui-vty0-4]protocol inbound ssh
[AR169-ui-vty0-4]quit
[AR169]aaa
[AR169-aaa]local-user user1 password irreversible-cipher Pa$$w0rd
[AR169-aaa]local-user user1 privilege level 15
[AR169-aaa]local-user user1 service-type ssh http terminal
[AR169]ssh user user1 authentication-type password
3) Далее, пункт опциональный — обвновление ПО до последней версии. Перед началом работы с любым устройством крайне рекомендуется обновится до самой последней версии ПО.
Проверим, какая версия ПО VRP сейчас стоит на роутере:
[AR169]display version
Huawei Versatile Routing Platform Software
VRP (R) software, Version 5.160 (AR160 V200R007C00SPC600PWE)
Copyright (C) 2011-2016 HUAWEI TECH CO., LTD
Huawei AR169W-P-M9 Router uptime is 0 week, 0 day, 0 hour, 53 minutes
MPU 0(Master) : uptime is 0 week, 0 day, 0 hour, 53 minutes
SDRAM Memory Size : 512 M bytes
Flash 0 Memory Size : 512 M bytes
MPU version information :
1. PCB Version : ARSRU169AGW-L VER.D
2. MAB Version : 0
3. Board Type : AR169W-P-M9
4. CPLD0 Version : 0
5. BootROM Version : 1
SubBoard[1]:
1. PCB Version : AR-1OSPBT-D VER.B
2. Board Type : OSP-X86
Как можно заметить, версия ПО VRP этого роутера V200R007C00SPC600PWE. Условно расшифровать можно, как версия 200, релиз 007, номер в релизе 00, service pack 600. Буквы PWE означают Payload without encryption, что означает, что в данной версии ПО отключено стойкое шифрование с длинной ключа выше 56 бит. Если этих букв нет в названии ПО, то устройство будет поддерживать стойкое шифрование.
На момент написания статьи самая свежая доступная версия V200R007C00SPC900, ее можно найти на сайте производителя поиском по ключевым словам «AR 169 OSP»:
В случае, если файл будет недоступен для скачивания (пиктограмма в виде замка около названия файла), то следует обратиться к вашему партнеру, через которого приобреталось оборудование.
Скачиваем файл с AR169-OSP-V200R007C00SPC900.cc и выкладываем его на TFTP-сервер. Я использую для этих целей бесплатный tftpd64 для Windows. Мой tftp-сервер располагается в той же сети, что и VLAN1 у роутера. Адрес tftp-сервера 172.31.31.250.
Далее, для скачивания файла нужно выйти в пользовательский режим (с треугольными скобками) и дать команду на скачивание файла с tftp сервера:
tftp 172.31.31.250 get AR169-OSP-V200R007C00SPC900.cc
Должно начаться скачивание файла на встроенную flash-память. После скачивания, из этого же режима проверим содержимое flash командой dir и убедимся, что все скачалось.
Далее, чтобы при следующей перезагрузке устройства грузилось уже новая версия ПО, нужно в этом же пользовательском режиме дать команду с явным указанием этого нового файла:
startup system-software flash:/AR169-OSP-V200R007C00SPC900.cc
Далее, после перезагрузки по команде display version убедимся, что роутер загрузился с новой версией прошивки V200R007C00SPC900.
4) Переходим к созданию виртуальной машины.
Виртуальная машина создается в интерфейсе CLI роутера в режиме virtual-environment.
Сперва проверим, включен ли DHCP на виртуальных интерфейсах GE0/0/5 и GE0/0/6 которые связывают роутер и плату OSP.
Для этого посмотрим конфигурацию всего устройства:
[AR169]display current-configuration
…
interface GigabitEthernet0/0/5
ip address 192.168.2.1 255.255.255.0
dhcp select interface
#
interface GigabitEthernet0/0/6
description VirtualPort
ip address 192.168.3.1 255.255.255.0
dhcp select interface
#
Лишний вывод я обрезал, оставил только вывод пятого и шестого интерфейсов.
Как можно видеть, здесь присутствует включенный DHCP сервер, который будет раздавать в эти интерфейсы IP-адреса из сеток /24.
В моем случае это было настроено по умолчанию, но в случае, если DHCP на этих интерфейсах не настроен (по крайней мере в мануале про это написано), следует его включить:
[AR169]dhcp enable
[AR169]interface GigabitEthernet0/0/5
[AR169-GigabitEthernet0/0/5]dhcp select interface
[AR169-GigabitEthernet0/0/5]quit
[AR169]interface GigabitEthernet0/0/6
[AR169-GigabitEthernet0/0/6]dhcp select interface
Так же на этом этапе можно сменить адреса вашей виртуальной сети, если эти адреса чем то не устраивают, в данном случае сетевые карты виртуальных машин будут в одном адресном пространстве GigabitEthernet0/0/5, т.е. в данном случае 192.168.2.0 /24. Я оставлю как есть.
Для чего нужно раздавать IP-адреса в этот интерфейс?
Ниже схема того, как взаимосвязаны между собой роутер (MCU) и плата x86 (OSP):
Рис. 5
Как видно из рисунка 5, GE5/0/0/5 является интерфейсом связи с MCU и OSP, и первый выданный по DHCP адрес должен будет получить интерфейс br0 виртуального свича. Проверим, какой адрес выдался из пула адресов интерфейса Gi0/0/5:
[AR169]display ip pool interface gigabitethernet0/0/5 used
-----------------------------------------------------------------------------
Start End Total Used Idle(Expired) Conflict Disable
-----------------------------------------------------------------------------
192.168.2.1 192.168.2.254 253 1 252(0) 0 0
-----------------------------------------------------------------------------
Network section :
-----------------------------------------------------------------------------
Index IP MAC Lease Status
-----------------------------------------------------------------------------
253 192.168.2.254 34a2-a2fc-edd8 36112 Used
-----------------------------------------------------------------------------
Таким образом, адрес 192.168.2.254 будет основной точкой входа в нашу виртуальную среду, именно к нему нужно обращаться для перехода в режим виртуальной среды платы OSP следующей командой:
[AR169]virtual-environment 192.168.2.254
В этом режиме предстоит скачать образ операционной системы с заранее поднятого ftp сервера, а также сформировать и запустить виртуальную машину.
Я поднял FTP-сервер FileZilla на машине с адресом 172.31.31.250, подключенным к LAN-свичу нашего устройства, т.е. к VLAN1:
Рис. 6
Важное замечание. В моем случае, роутер не является шлюзом по умолчанию для FTP-сервера, поэтому я вручную на ftp-сервере прописал статический маршрут в сеть 192.168.2.0 /24 через 172.31.31.77.
На FTP-сервере заведен пользователь user1 которому доступна папка с образом Windows 8.1 — файл с названием win81.iso. Скачаем его в нашу виртуальную среду:
[AR169]virtual-environment 192.168.2.254
[AR169-virtual-environment-192.168.2.254]download package win81.iso ftp ftp://172.31.31.250/win81.iso user user1 password cipher
Enter Password(<1-16>):
The download ratio is 100%.
Info: Package downloading finished.
Далее, создаем пустой виртуальный диск размером 30Гб для будущей операционной системы:
[AR169-virtual-environment-192.168.2.254]blank-disk name disk1 size 30
Формируем OVA-файл из ISO с параметрами нашей будущей виртуальной машины:
[AR169-virtual-environment-192.168.2.254]ova file win81 iso win81.iso disk disk1 cpu 4 memory 2800 network-card 1 network-card-type virtio extend-description "-hdb /dev/external_disk"
Info: This operation will take several minutes, please wait....
Комментарии по параметрам команды ova file:
• Первым параметром будет название создаваемого ova-файла без расширения, т.е. win81;
• Параметро iso — наш win81.iso файл, который был скачен ранее;
• Параметр disk — название диска, созданного нами командой blank-disk, т.е. disk1
• Cpu — указываем количество процессоров от 1 до 4.
• Memory — количество оперативной памяти в гигабайтах, в данном случае 2800 Мб (в случае если используем extend-description в предыдущей команде, то больше памяти поставить нельзя).
• Network-card — количество сетевый карт виртуальной машины, в данном случае 1.
• Network-card-type — тип виртуальной карты, возможны три варианта: e1000, rpl8139 и virtio. Рекомендованный тип для Windows — e1000.
• Extend-description — важный параметр, который регламентирует расширеные настройки виртуальной машины, такие как дополнительный жесткий диск, serial interface, HDMI и Audio, а также USB. Если не описывать эти параметры, то виртуальная машина «не увидит» допольнительный жетский диск, который можно установить в наше устроство и т.п.
Но есть важное ограничение, налагаемое CLI устройства — команда целиком не может быть длиннее 256 символов, а параметры подключения USB или HDMI превышают это ограничение.
Для этого случае в руководстве описан способ создание OVA-файла офф-лайн, то есть не на данном устройстве, а на вашей linux-машине. Здесь я не буду приводить это описание и буду использовать только один короткий параметр для подключения внешнего диска:»-hdb /dev/external_disk». Так же важное замечание при
И так, ova-файл сформирован, можно приступать к инсталляции виртуальной машины из этой сборки:
[AR169-virtual-environment-192.168.2.254]install vm win81 package win81.ova
Info: This operation will take several minutes, please wait..
Виртуальная машина проинсталлирована, далее зайдем в режим управления виртуальной машины, пропишем номер порта (например 8) по которому она в дальнейшем будет доступна по VNC viewer:
[AR169-virtual-environment-192.168.2.254]vm win81
[AR169-virtual-environment-vm-win81]vnc-server port 8 password cipher
Enter Password(<6-8>):
[AR169-virtual-environment-vm-win81]
После чего можно виртуальную машину активировать и стартовать:
[AR169-virtual-environment-vm-win81]vm activate
Info: VM activated successfully.
[AR169-virtual-environment-vm-win81]vm start
Info: VM started successfully.
Проверим состояние виртуальной машины следующей командой, а также запомним имя ее виртуального интерфейса (veth), оно нам пригодится в следующем шаге:
[AR169-virtual-environment-192.168.2.254]display vm win81
Name: win81
Status: running
Package: win81.ova
Auto-boot: enable
Exception-action: alarm
Cpu-shared:
Current: 0 1 2 3
Next:
Cpu-mono:
Current:
Next:
Storage-claimed:
Current:
Disk: disk1
Target: sda
Size: 30720M
Next:
Memory:
Current: 2800M
Next:
Cdrom:
Current:
Name: win81.iso
Type: private
Next:
Veth:
Current:
Name: win81_eth1
Mac: 0a:0b:1b:ce:e9:17
Next:
Из данного вывода видно, что виртуальная машина win81 находится в запущенном состоянии, использует в качестве основного жесткого диска disk1 емкостью 30720 Мб, количество памяти 2800 Мб и ее виртуальный сетевой интерфейс называется win81_eth. Следующим шагом свяжем этот интерфейс с системой роутинга самого роуетера:
Для этого создаем виртуальный интерфейс veth2 для HostOS:
[AR169-virtual-environment-192.168.2.254]veth veth2
… и создаем виртуальный линк между HostOS и виртуальной машиной Win81 (см. Рисунок 5):
[AR169-virtual-environment-192.168.2.254]link veth veth2 to veth win81_eth1
Добавляем виртуальный интерфейс Host OS к виртуальному свичу vSwitch:
[AR169-virtual-environment-192.168.2.254]ovs bridge br0
[AR169-virtual-environment-ovs-br0]port veth2 link-type access
[AR169-virtual-environment-ovs-br0]quit
Все, работы по созданию виртуальной машины завершены, можно приступать к ее инсталляции и непосредственной работе с ней. Для этого будем использовать бесплатный VNC Viewer, предварительно скачав его с сайта разработчика (RealVNC).
В качестве адреса указываем наш виртуальный интерфейс 192.168.2.254:8 — и порт 8, который мы настроили чуть выше. В настройках соединения, в разделе Expert следует обязательно сделать параметр FullColor = true, в противном случае ничего работать не будет:
Рис. 7
Вводим пароль, который мы задали в команде vnc-server и видим начальный экран установки нашей гостевой операционной системы, в данном случае Windows 8.1:
Рис. 8.
Процесс инсталляции Windows ничем не отличается от обычного, поэтому я пропущу этот момент, будем считать, что Windows успешно установился и запущен. Сразу же проверим, что у нас с сетевыми настройками:
Рис. 9
Как видно, DHCP выдал адрес 192.168.2.253 и мы можем пинговать шлюз 192.168.2.1. Таким образом, сетевая карта установилась нормально и виртуальная машина взаимодействует с роутером. Осталось выпустить виртуальную машину в интернет (настроить NAT на роутере) и, например, «прокинуть» порт снаружи для доступа по RDP к виртуальной машине (в этом случае крайне желательно настроить на сетевой карте виртуальной машины статический адрес из сети 192.168.2.0/24, а не оставлять его динамическим):
Создадим Access-list для фильтрации хостов, которым нужно предоставить доступ в интернет, в данном случае всю сеть 192.168.2.0 /24:
[AR169]acl number 2001
[AR169-acl-basic-2001] rule permit source 192.168.2.0 0.0.0.255
[AR169-acl-basic-2001]quit
Подключим к интерфейсу GigabitEthernet0/0/4 (WAN) кабель от провайдера, пусть нам выделен статический адрес 195.19.XX.XX, шлюз по умолчанию 195.19.XX.1:
[AR169]interface GigabitEthernet0/0/4
[AR169-GigabitEthernet0/0/4]ip address 195.19.XX.XX 255.255.255.224
[AR169-GigabitEthernet0/0/4] nat outbound 2001
Сделаем трансляцию порта с внешнего 33389 на внутренний 3389 хоста нашей виртуальной машины 192.168.2.254
[AR169-GigabitEthernet0/0/4] nat server protocol tcp global current-interface 33389 inside 192.168.2.253 3389
[AR169-GigabitEthernet0/0/4]quit
Настроим маршрут по умолчанию в Интернет:
[AR169] ip route-static 0.0.0.0 0.0.0.0 195.19.XX.1
Обязательно сохраним конфигурацию:
[AR169]save
Warning: The current configuration will be written to the device.
Are you sure to continue?[Y/N]:Y
It will take several minutes to save configuration file, please wait...........
Configuration file had been saved successfully
Note: The configuration file will take effect after being activated
На этом базовые настройки можно считать завершенными, была поднята одна виртуальная машина с гостевой ОС Windows 8.1, проведено обновление ПО устройства, сделан доступ в интернет и трансляция порта снаружи для доступа к ОС посредством протокола RDP.