16 KiB
Заметки по PNET Lab
PNETLab (Packet Network Emulator Tool Lab, https://pnetlab.com) - форк EVE-NG платформы виртуализации для построения различных сетевых топологий и эмуляции сетевых устройств.
Кроме этого, PNETLab это платформа, которая позволяет создавать и делиться с сообществом своими лабораторными стендами с целью обучения сетевым технолгиям и тестирования.
Платформа состоит из двух основных элементов - PNETLab Box и PNETLab store
PNETLab Box (с 2-мя режимами работы: Offline и Online) - это виртальная машина, которая устаналивается на гипервизор и позволяет создавать и загружать лабораторные стенды.
PNETLab Store - web платформа с большим количеством бесплатных лабораторных стендов.
Платформа позволяет эмулировать сетевые устройства Cisco (IOS, Dynapimps), контейнеры Docker, образы устройств в формате Qemu.
Установка PNET Lab
Установка платформы состоит из трёх основных этапов:
- установка серверной Ubuntu 20.04 (на момент написания заметки поддерживается только эта версия)
- установка утилиты ishare2. Утилита позволяет скачивать лабораторные стенды, образы устройств и обновления для платформы
- установка платформы PNET Lab
Установка Ubuntu 20.04
Необходимо выполнить установку серверной версии ОС без обновлений в процессе установки.
Установка ishare2
ishare2 - это инструмент, который позволяет загружать образы устройств для сетевых эмуляторов и управлять ими. ishare2 может загружать образы qemu, dynamips, bin/iol и docker. Он также может автоматически загружать образы, необходимые для лабораторий.
Репозиторий утилиты расположен по адресу: https://github.com/ishare2-org/ishare2-cli
Установка производится от рута командой
wget -O /usr/sbin/ishare2 https://raw.githubusercontent.com/ishare2-org/ishare2-cli/main/ishare2 && chmod +x /usr/sbin/ishare2 && ishare2
В процессе установки будет задано несколько вопросов, нажатие Enter применит значения по-умолчанию.
Установка платформы PNET Lab
После установки ishare2 можно приступать к установке платформы
root@pnet:~# ishare2 upgrade
1) Upgrade ishare2
2) Upgrade PNETLab
3) Upgrade ishare2 GUI
4) Exit
Please, select an option: 2
1) Upgrade PNETLab v5 STABLE
2) Upgrade PNETLab v5 BETA
3) Upgrade PNETLab v6 BETA
4) Exit
- PNETLab v5 STABLE не подходит, т.к. поддерживает только Ubuntu 18.04
- Upgrade PNETLab v6 BETA - на момент написания заметки имела ограниченный функционал
Стоит выбрать 2) Upgrade PNETLab v5 BETA
Установка занимает 15-20 минут, после чего консоль вернётся в меню ishare2
, где нужно выбрать пнукт 4 для выхода и перезагрузить сервер.
Загрузка образов устройств
Для загрузки образов используется утилита ishare2
root@pnetlab:~# ishare2 --help
Syntax
ishare2 [action] [param1] [param2] [--overwrite]
action:
search : Search for images available on LabHub mirrors.
pull : Download an image by specifying the type and id.
installed : Shows images installed on the server.
labs : Shows available labs and downloads the images for the selected lab.
mylabs : Same as labs command but you can use a customized path.
relicense : Generates an iourc license for iol images.
upgrade : Shows a menu to upgrade ishare2 or PNETLab.
test : Test internet connectivity to required sites.
help : Shows full help information.
param1:
type = all, iol, qemu, dynamips, docker or name.
param2:
id = This can be obtained using ishare2 search <type>
--overwrite:
Used to overwrite an existing image if it already exists on your system.
Try: ishare2 help for more information.
Для поиска доступных образов
root@pnetlab:~# ishare2 search
Usage: ishare2 search <type> [keyword]
ishare2 search all
Types: qemu, iol, dynamips
Показать все доступные образы формата qemu
root@pnetlab:~# ishare2 search qemu
=============================
Available QEMU images
=============================
ID NAME SIZE
-- ---- ----
1 128T-522 2.5 GiB
2 6wind-cgnat-ee-x86_64-2.2.6 528.6 MiB
3 6wind-router-ee-x86_64-2.2.6 528.3 MiB
...
1248 zabbix-3.0 3.6 GiB
1249 zabbix-3.4 683.3 MiB
1249 QEMU images found
При поиске можно использовать уточняющие критерии
root@pnetlab:~# ishare2 search qemu debian
=============================
Available QEMU images
=============================
ID NAME SIZE
-- ---- ----
597 linux-debian-10 1.3 GiB
598 linux-debian-10 1.3 GiB
599 linux-debian-10 1.3 GiB
600 linux-debian-10.3.0 581.3 MiB
4 QEMU images found for the term: "debian"
root@pnetlab:~#
root@pnetlab:~#
root@pnetlab:~# ishare2 search qemu pfsense
=============================
Available QEMU images
=============================
ID NAME SIZE
-- ---- ----
764 pfsense-2.3.3 555.5 MiB
765 pfsense-CE-2.4.4 452.7 MiB
766 pfsense-CE-2.4.5 521.5 MiB
767 pfsense-CE-2.4.5-p1 531.0 MiB
768 pfsense-CE-2.5.0-RELEASE 742.6 MiB
769 pfsense-CE-2.5.1-RELEASE 742.9 MiB
770 pfsense-CE-2.5.2 1.5 GiB
771 pfsense-CE-2.5.2-RELEASE 785.2 MiB
772 pfsense-CE-2.6 2.3 GiB
773 pfsense-pfs-2.6.0 832.4 MiB
774 pfsense-pfs-2.7.0 442.3 MiB
11 QEMU images found for the term: "pfsense"
Для установки конкретного образа достаточно указать его ID. Например, для скачивания образа linux-debian-10.3.0
с идентификатором 600
root@pnetlab:~# ishare2 pull qemu 600
[!] IMAGE INFO
- Image Name : linux-debian-10.3.0
- Image Size : 581.3 MiB
- Image Type : QEMU
- Image ID : 600
- Image path : /opt/unetlab/addons/qemu/linux-debian-10.3.0
- Using host : https://labhub.eu.org
[!] DOWNLOADING IMAGE
/opt/unetlab/addons/qemu/linux-debian-10.3.0 100%[=============================================================================================>] 581.33M 10.5MB/s in 69s
[+] DOWNLOAD COMPLETED!
[-] Extracting: linux-debian-10.3.0.tgz file...
[+] Extracted: /opt/unetlab/addons/qemu/linux-debian-10.3.0. Image ready to use.
[-] Fixing permissions...
[+] Fix permissions command has been executed correctly
Добавление своего qemu образа
Добавление образа Mikrotik
В репозитории ishare2
есть несколько версий Mikrotik OS, последняя из доступных на момент написания заметки - 7.6, хотя на официальном сайте уже есть 7.16.2.
root@pnetlab:~# ishare2 search qemu mikrotik
=============================
Available QEMU images
=============================
ID NAME SIZE
-- ---- ----
635 mikrotik-6.39 45.6 MiB
...
662 mikrotik-7.5 37.2 MiB
663 mikrotik-7.6 39.1 MiB
29 QEMU images found for the term: "mikrotik"
Чтобы проще разобраться с форматом и именованием образов, скачаем образ 7.6 из репозитория
root@pnetlab:~# ishare2 pull qemu 663
[!] IMAGE INFO
- Image Name : mikrotik-7.6
- Image Size : 39.1 MiB
- Image Type : QEMU
- Image ID : 663
- Image path : /opt/unetlab/addons/qemu/mikrotik-7.6
- Using host : https://drive.labhub.eu.org
[!] DOWNLOADING IMAGE
/opt/unetlab/addons/qemu/mikrotik-7.6/hda.qc 100%[==================================>] 39.06M 42.0MB/s in 0.9s
[+] DOWNLOAD COMPLETED!
[-] Fixing permissions...
[+] Fix permissions command has been executed correctly
Образы сохраняются в зависимости от формата, в соответствующей директории
root@pnetlab:~# ls /opt/unetlab/addons/
docker dynamips iol qemu
т.к. образ mikrotik имеет формат qemu, соответственно он и сохранился в
root@pnetlab:~# tree /opt/unetlab/addons/qemu/
/opt/unetlab/addons/qemu/
├── linux-debian-10.3.0
│ └── virtioa.qcow2
└── mikrotik-7.6
└── hda.qcow2
2 directories, 2 files
в этой же директории сохранился ранее скачанный образ Debian.
Теперь, чтобы скачать поледний доступный образ mikrotik 7.16.2 создадим соответсвтующую директорию и скачаем VMDK образ Mikrotik Cloud Hosted Router
root@pnetlab:~# cd /opt/unetlab/addons/qemu/
root@pnetlab:/opt/unetlab/addons/qemu# mkdir mikrotik-7.16.2 && cd mikrotik-7.16.2
root@pnetlab:/opt/unetlab/addons/qemu/mikrotik-7.16.2# wget https://download.mikrotik.com/routeros/7.16.2/chr-7.16.2.vmdk.zip
Теперь скачанный образ необходимо разархивировать и конвертировать в формат QCOW2
root@pnetlab:/opt/unetlab/addons/qemu/mikrotik-7.16.2# ls
chr-7.16.2.vmdk.zip
root@pnetlab:/opt/unetlab/addons/qemu/mikrotik-7.16.2# unzip chr-7.16.2.vmdk.zip
Archive: chr-7.16.2.vmdk.zip
inflating: chr-7.16.2.vmdk
root@pnetlab:/opt/unetlab/addons/qemu/mikrotik-7.16.2# ls -l
total 80044
-rw-r--r-- 1 root root 41746432 Nov 26 13:16 chr-7.16.2.vmdk
-rw-r--r-- 1 root root 40216509 Nov 27 08:24 chr-7.16.2.vmdk.zip
Для конвертации в формат QCOW2 необходима утилита qemu-img
, которая в Ubuntu входит в состав пакета qemu-utils
.
root@pnetlab:/opt/unetlab/addons/qemu/mikrotik-7.16.2# apt search qemu-img
Sorting... Done
Full Text Search... Done
qemu-block-extra/now 1:4.2-3ubuntu6.30 amd64 [installed,local]
extra block backend modules for qemu-system and qemu-utils
qemu-utils/now 1:4.2-3ubuntu6.30 amd64 [installed,local]
QEMU utilities
В состав PNET Lab на основе Ubuntu этот пакет уже входит.
Для конвертации VMDK в QCOW2
root@pnetlab:/opt/unetlab/addons/qemu/mikrotik-7.16.2# qemu-img convert -f vmdk -O qcow2 chr-7.16.2.vmdk hda.qcow2
!! стоит обратить внимание - имя файла после конвертации должно быть hda.qcow2
Скачанный архив и VMDK образ больше не нужны, их необходимо удалить.
Права файлов
Все скачанные образы должны иметь определённые права - 755.
Изменить права можно вручную для файла или через web-интерфейс в разделе System
=> System Settings
=> Fix Permissions
Кроме этого есть специальный wrapper, изменить права можно также
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
Теперь при добавлении новой ноды в лабораторный стенд в выпадающем списке будет доступен образ Mikrotik 7.16.2
Добавление образов Cisco IOL
С помощью ishare2
скачал 2 образа Cisco IOL
root@pnetlab:~# ishare2 installed iol
====================================
Showing installed IOL images
====================================
/opt/unetlab/addons/iol/bin/
├── [-rwxr-xr-x 1.5K] CiscoIOUKeygen.py
├── [-rwxr-xr-x 120M] i86bi_LinuxL2-AdvEnterpriseK9-M_152_May_2018.bin
├── [-rwxr-xr-x 176M] i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin
├── [-rwxr-xr-x 38] iourc
└── [-rwxr-xr-x 1.7K] keepalive.pl
0 directories, 5 files
НО, скачать образы недостаточно, необходимо ещё сгенерировать лицензионный ключ, который хранится в файле iourc
. Для генерации ключа необходимо запустить python скрипт CiscoIOUKeygen.py
Пример работы скрипта:
root@pnetlab:~# /opt/unetlab/addons/iol/bin/CiscoIOUKeygen.py
*********************************************************************
Cisco IOU License Generator - Kal 2011, python port of 2006 C version
hostid=007f0101, hostname=pnetlab, ioukey=7f03e7
*********************************************************************
Create the license file $HOME/.iourc with this command:
The command adds the following text to $HOME/.iourc:
[license]
pnetlab = b126e08dae13e962;
*********************************************************************
Disable the phone home feature with this command:
grep -q -F '127.0.0.1 xml.cisco.com' /etc/hosts || echo '127.0.0.1 xml.cisco.com' | sudo tee -a /etc/hosts
The command adds the following text to /etc/hosts:
127.0.0.1 xml.cisco.com
*********************************************************************
В файл iourc
необходимо заменить лицензионный ключ на тот, который сгенерирован скриптом.
В конце необходимо поправить права к файлам:
- через web-интерфейс в разделе
System
=>System Settings
=>Fix Permissions
- или командой
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions