add pnet
parent
2b4b1750da
commit
2efa14d709
|
@ -0,0 +1,377 @@
|
|||
# Заметки по PNET Lab
|
||||
|
||||
- [Заметки по PNET Lab](#заметки-по-pnet-lab)
|
||||
- [Установка PNET Lab](#установка-pnet-lab)
|
||||
- [Установка Ubuntu 20.04](#установка-ubuntu-2004)
|
||||
- [Установка ishare2](#установка-ishare2)
|
||||
- [Установка платформы PNET Lab](#установка-платформы-pnet-lab)
|
||||
- [Загрузка образов устройств](#загрузка-образов-устройств)
|
||||
- [Добавление своего qemu образа](#добавление-своего-qemu-образа)
|
||||
- [Добавление образа Mikrotik](#добавление-образа-mikrotik)
|
||||
- [Права файлов](#права-файлов)
|
||||
- [Добавление образов Cisco IOL](#добавление-образов-cisco-iol)
|
||||
|
||||
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>
|
||||
|
||||
Установка производится от рута командой
|
||||
|
||||
```shell
|
||||
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 можно приступать к установке платформы
|
||||
|
||||
```shell
|
||||
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`
|
||||
|
||||
```shell
|
||||
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.
|
||||
```
|
||||
|
||||
Для поиска доступных образов
|
||||
|
||||
```shell
|
||||
root@pnetlab:~# ishare2 search
|
||||
Usage: ishare2 search <type> [keyword]
|
||||
ishare2 search all
|
||||
Types: qemu, iol, dynamips
|
||||
```
|
||||
|
||||
Показать все доступные образы формата `qemu`
|
||||
|
||||
```shell
|
||||
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
|
||||
```
|
||||
|
||||
При поиске можно использовать уточняющие критерии
|
||||
|
||||
```shell
|
||||
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
|
||||
|
||||
```shell
|
||||
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.
|
||||
|
||||
```shell
|
||||
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 из репозитория
|
||||
|
||||
```shell
|
||||
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
|
||||
```
|
||||
|
||||
Образы сохраняются в зависимости от формата, в соответствующей директории
|
||||
|
||||
```shell
|
||||
root@pnetlab:~# ls /opt/unetlab/addons/
|
||||
docker dynamips iol qemu
|
||||
```
|
||||
|
||||
т.к. образ mikrotik имеет формат qemu, соответственно он и сохранился в
|
||||
|
||||
```shell
|
||||
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
|
||||
|
||||
```shell
|
||||
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
|
||||
|
||||
```shell
|
||||
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`.
|
||||
|
||||
```shell
|
||||
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
|
||||
|
||||
```shell
|
||||
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, изменить права можно также
|
||||
|
||||
```shell
|
||||
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
|
||||
```
|
||||
|
||||
Теперь при добавлении новой ноды в лабораторный стенд в выпадающем списке будет доступен образ Mikrotik 7.16.2
|
||||
|
||||
## Добавление образов Cisco IOL
|
||||
|
||||
С помощью `ishare2` скачал 2 образа Cisco IOL
|
||||
|
||||
```shell
|
||||
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`
|
||||
|
||||
Пример работы скрипта:
|
||||
|
||||
```shell
|
||||
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`
|
||||
- или командой
|
||||
|
||||
```shell
|
||||
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
|
||||
```
|
Loading…
Reference in New Issue