View on GitHub

Network Technologies Labolatories

Practical materials for learning Network Technologies

Лабораторная работа №1 — Настройка системы для выполнения лабораторных


Быстрый поиск


Вступление

Лабораторная работа представляет из себя практико-ориентированную пошаговую инструкцию, выполняемую на одной или нескольких виртуальных машинах. В домашнее задание входит настройка некоторой топологии сети, её конфигурация и сбор этих данных в отчёт специального вида с помощью встроенных в виртуальные машины утилит.

В качестве менеджера виртуальных машин используется VirtualBox, система для выполнения лабораторных предоставляется в виде архива с виртуальной машиной (Open Virtual Appliance, .ova-файл), на основе которого будет создана основная система, на её основе будут создаваться копии для работы.

⚠ ВАЖНО: Некоторые команды для Windows или для разных процессоров могут отличаться. Данные команды будут помечены в лабораторных специальных значком


Настройка виртуальных машин

В данной главе описаны основные действия и / или команды, необходимые для работы с VirtualBox.

ℹ VirtualBox поддерживает собственный набор команд для работы из терминала с помощью встроенной утилиты VBoxManage, полный список команд представлен по команде VBoxManage --help. Также все настройки над виртуальными машинами возможно проводить через графическую оболочку. Данные способы настройки представлены в отдельном разделе.

Для настройки ВМ в данных лабораторных используется пакет PySnap.

⚠ Важное примечание: В ранних версиях VirtualBox при работе из консоли использовалась локализация внутренних настроек, из-за чего переведённые файлы настроек не работали. При работе используйте латинские названия, перед работой рекомендуется менять локаль с помощью команды export LC_ALL=C


Импорт образа и создание виртуальных машин

ℹ Для выполнения лабораторных необходимо единожды импортировать образ диска и после создавать клоны для работы.

📍 1. Скачайте последнюю версию пакета Pysnap с официальной страницы

📍 2. Установите пакет в вашу систему или в виртуальное окружение Python:

[papillon_rouge@localhost ~]$ python3 -m venv .pysnap
[papillon_rouge@localhost ~]$ source .pysnap/bin/activate
(.pysnap) [papillon_rouge@localhost ~]$ pip install Downloads/pysnap-2.1.0-py3-none-any.whl
Processing ./Downloads/pysnap-2.1.0-py3-none-any.whl
…
Successfully installed prompt_toolkit-3.0.53 pysnap-2.1.0 pyte-0.8.2 wcwidth-0.8.2
(.pysnap) [papillon_rouge@localhost ~]$

ℹ В дальнейшем для работы с утилитой необходимо будет просто активировать окружение.

[papillon_rouge@localhost ~]$ source .pysnap/bin/activate
(.pysnap) [papillon_rouge@localhost ~]$

📍 3. Импортируйте установленный образ с помощью команды pysnap import. Используйте короткое имя для переименования образа:

(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$ pysnap import Downloads/protocols-jeos-x86_64.ova SmallName
Importing [################################] 100%
Imported virtual machines:
- SmallName (/LinuxNetwork2026)
(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$

📍 4. Перед клонированием настройте базовую ВМ для работы с помощью команды pysnap protosettings:

(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$ pysnap protosettings SmallName
Registered proto-settings VM: SmallName
Configured proto-settings VMs: SmallName
(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$

📍 5. Для клонирования машины используйте команду pysnap clone. Укажите базовую ВМ и имя для клона:

(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$ pysnap clone SmallName CloneVM
Name: CloneVM
Group: /LinuxNetwork2026
Serial port: 2331
Parent VM: SmallName
(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$

Поздравляем с созданием вашей первой рабочей машины!


Подключение к виртуальным машинам

После создания виртуальных машин необходимо их включить и к ним подключиться. Обычный запуск виртуальных машин автоматически открывает эмулятор экрана виртуальной машины, установленный в VirtualBox. Однако из-за особенностей настройки он не позволяет производить копирование из основной системы в интерфейс виртуальной машины и, соответственно, копировать данные между виртуальными машинами с помощью буфера обмена.

При работе через Pysnap воспользуйтесь командой pysnap connect для подключения к ВМ:

(.pysnap) [papillon_rouge@BaseALT-Papillon ~]$ pysnap connect CloneVM

Работа с командной строкой

ℹ В процессе выполнения лабораторных работ необходимо проводить настройку виртуальных машин через терминальный интерфейс. Рассмотрим команды и работу с терминалом на примере тестовой машины.

📍 1. Запустим виртуальную машину. Для входа в систему каждой машины необходимо вводить логин (root) и пароль (root).

⚠ ДИСКРЕЙМЕР: Никогда не устанавливайте такие легко угадываемые пароли на свои персональные устройства!

⚠ В некоторых случаях виртуальная машина может сразу не запуститься. Для работы необходимо отключить встроенную в ядро специальную поддержку виртуализации. В случае Linux необходимо в командной строке выполнить команду sudo rmmod kvm_amd, в случае Windows — запустите командную строку от имени администратора, выполните команду bcdedit /set hypervisorlaunchtype off (убедитесь, что ответное сообщение терминала <Smth> completed successfully; Иначе выполните действия из данной статьи) и перезапустите устройство.

⚠ Виртуальная машина в случае проблем с виртуализацией может загружаться от 20 секунд вплоть до 10 минут, при этом демонстрировать как будто постоянную перезагрузку.

📍 2. Для переименования виртуальной машины используется специальная команда sethostname (при смене имени виртуальной машины требуется повторный вход в систему). С помощью данной команды переименуйте ВМ.

@srv

localhost login: root
Password:
[root@localhost ~]# sethostname srv


srv login: root
Password:
Last login: Fri Sep  5 13:09:38 UTC 2025 on ttyS0
[root@srv ~]#

🔷 При работе с терминалом при наборе команд воспользуйтесь клавишей Tab для автодополнения команд. При неоднозначной возможности дополнения после нескольких нажатий Tab будет выведены варианты дополнения команд:

@srv

[root@srv ~]# c
c_rehash	catman	chcon			choom	chrt	clockdiff
colrm		compopt	control-dump	cpio	ctstat		cal
cd			chcpu	chown			chvt	clrunimap	column
conntrack 	control-restore			crlutil	curl 		caller
cd.. 		chgrp 					chpasswd			cksum
cmp			comm					conntrackd			convertdev.sh
crond		cut		capsh			certutil			chkconfig
chronyc		clear	cmsutil	command	consoletype			convertquota
crontab		cvtsudoers		case	chacl	chmem		chronyd
clock		col		compgen	continue		coproc		csplit
cat			chattr	chmod	chroot	clock_unsynced		colcrt
complete	control	cp		ctrlaltdel
[root@srv ~]# ca
cal			caller	capsh	case	cat		catman
[root@srv ~]# cal
  September 2025
Su Mo Tu We Th Fr Sa
   1  2  3  4  5  6
7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

🔷 Нажатие Tab в процессе набора команд без введённых символов приводит к выводу возможных аргументов команды. Сочетание клавиш Ctrl+C позволяет сбросить введённую команду без её выполнения. @srv

[root@srv ~]# ip l
l2tp  link
[root@srv ~]# ip link
add       afstats   change    delete    help      property  set       show
[root@srv ~]# ip link ^C
[root@srv ~]#

🔷 Для просмотра истории команд можно использовать специальную команду history (заметим, что не исполненные команды, отмененные по Ctrl+C, не указываются в истории):

@srv

[root@srv ~]# date
Sat Sep 20 03:06:32 UTC 2025
[root@srv ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
   link/ether 08:00:27:d2:1c:a7 brd ff:ff:ff:ff:ff:ff
   altname enp0s3
   altname enx080027d21ca7
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
   link/ether 08:00:27:34:f7:3f brd ff:ff:ff:ff:ff:ff
   altname enp0s8
   altname enx08002734f73f
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
   link/ether 08:00:27:09:eb:1f brd ff:ff:ff:ff:ff:ff
   altname enp0s9
   altname enx08002709eb1f
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
   link/ether 08:00:27:6e:55:de brd ff:ff:ff:ff:ff:ff
   altname enp0s10
   altname enx0800276e55de
[root@srv ~]# ip link set eth1 up
[root@srv ~]# history
   1  cal
   2  date
   3  ip a
   4  ip link set eth1 up
   5  history
[root@srv ~]#

🔷 Для редактирования введенных команд можно с помощью клавиш ↑ и ↓ просматривать историю команд и модифицировать их.

@srv

[root@srv ~]# ip link set ethi up
Cannot find device "ethi"
[root@srv ~]# ip link set eth1 up
[root@srv ~]#

🔷 Для поиска по истории команд можно воспользоваться сочетанием клавиш Ctrl+R. После нажатия необходимо ввести подстроку интересуемой команды, терминал предложит последнюю команду, содержащую подстроку. Повторное нажатие Ctrl+R будет продолжать поиск по истории.

@srv

(reverse-i-search)`c<a>l
[root@srv ~]# ca
  September 2025
Su Mo Tu We Th Fr Sa
   1  2  3  4  5  6
7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

[root@srv ~]#