Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026)

Материал из 0x1.tv

Докладчик
Артём Осипчук.jpg
Артём Осипчук

В рамках образовательного процесса часто возникает потребность в среде, которая будет содержать все требующиеся для курса программные инструменты и удовлетворять заданным ограничениям. На факультете ВМК МГУ эта проблема была решена сборкой индивидуальных образов под некоторые курсы.

Иногда для курса недостаточно лишь одного образа или нужна целая система сообщающихся образов. Многие пользуются существующими решениями в области эмуляции сетей, например Huawei eNSP[1].

В нашей работе был предложен альтернативный подход.

Видео[править вики-текст]

Презентация[править вики-текст]

Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026).pdf

Thesis[править | править вики-текст]

Ключевые слова: сетевые протоколы, mkimage-profiles, автоматизация, дистрибутивы.

Постановка задачи[править | править вики-текст]

Для изучения стека сетевых протоколов в лаборатории свободного программного обеспечения ВМК МГУ была разработана серия лабораторных работ[2]. Основной их идеей было создание базы для практического изучения протоколов в естественной среде, то есть непосредственно в Linux. Без посредников в качестве программ для эмуляции сетей можно показать верную иерархию взаимосвязей уровней и беспрепятственно настраивать работу любых протоколов.

В качестве площадки для выполнения лабораторных работ было предложено сформировать специализированный дистрибутив на базе операционной системы «Альт», который не будет иметь ничего лишнего, но при этом будет удовлетворять требованиям для проведения лабораторных работ. Для связи таких образов можно использовать современные программы виртуализации, а сами виртуальные машины настраивать как компоненты сети, например, коммутаторы и абоненты.

Использование mkimage-profiles[править | править вики-текст]

В рамках работы был использован инструмент mkimage-profiles[3] — инструментарий для создания метапрофилей дистрибутивов ALT Linux, из которых генерируются профили сборки конкретных дистрибутивов и происходит сама сборка с помощью инструмента mkimage.

Он был использован для реализации автоматической сборки образа на базе операционной системы «Альт», специализированного для курса «Практические аспекты сетевых протоколов в Linux»[4].

Для формирования образа был создан профиль. В нём описываются различные свойства образа: список пакетов, запускаемые фичи, содержимое автозапуска. Образ для кафедрального курса АСВК был создан на основе профиля для ОС JeOS (Just Enough Operating System). Такие сборки содержат лишь минимальный набор компонентов, достаточный для установки работоспособной ОС.

Фича — это каталог, содержащий набор файлов, подкладываемых в образ, или скриптов, исполняющихся в нём или во время его сборки. Была создана отдельная фича для нового профиля, содержащая затребованные преподавателями каталоги с файлами и сценариями.

Требования к образу[править | править вики-текст]

Для проведения лекций по курсу профиль должен:

  • являться образом виртуальной машины;
  • содержать авторизованный ключ и дополнительные настройки для подключения к клонам образа из-под суперпользователя;
  • поддерживать подключение по TCP и последовательному порту для работы из терминала;
  • иметь включённые или отключённые автозапуски необходимых сервисов;
  • иметь настроенные внешние сетевые интерфейсы, требующиеся для изучения сетевых протоколов. Для настройки использовалась дополнительная обработка образа с помощью VBoxManage[5];
  • включать пользовательские сценарии преподавателя для работы с VirtualBox;
  • иметь расширенное дисковое пространство и подключённые репозитории с пакетами.

Использование сценариев автоматизации[править | править вики-текст]

Для курса были использованы сценарии преподавателя[6]:

  • для быстрого создания нескольких копий исходного образа;
  • для проверки используемых внутренних сетей;
  • для подключения по TCP/COM портам вместо визуального интерфейса;
  • для формирования отчётов по проделанной работе.

Вывод в консоль последовательного порта был реализован через фичу mkimage-profiles.

Практическое применение[править | править вики-текст]

Курс требует построения сетевых топологий из нескольких машин. Проблему решает сборка полноразмерного образа и его последующее клонирование с минимальными затратами ресурсов. Например, в VirtualBox можно использовать «связанную копию», когда на диск записываются только изменения.

Таким образом достигается возможность моделирования лабораторных работ на большом количестве машин при минимальных затратах памяти.

Образы уже оснащены пользовательским сервисом для загрузки изначальных настроек сети при наличии соответствующих условий лабораторной работы.

Создание и конфигурирование образов средствами mkimage-profiles показало себя как эффективное решение. Образы удобно менять под требования преподавателей и обновлять пересборкой, запускаемой одной командой.

Результаты и планы[править | править вики-текст]

Образ был использован для проведения курса «Практические аспекты сетевых протоколов в Linux» и дополнительного курса «Протоколы и методы управления и передачи данных в сети Интернет». По итогам обратной связи образ неоднократно дорабатывался и был выработан регламент его обновления.

Планируется создание сервиса для автоматической настройки топологии образов на основе метаинформации и сохранения состояния сетей. Образы также планируется использовать для моделирования прикладных многомашинных систем.



Разработка образа для практического изучения сетевых протоколов в Linux (Артём Осипчук, OSEDUCONF-2026)!.jpg

Примечания и ссылки[править вики-текст]

  1. Huawei eNSP. https://info.support.huawei.com/info-finder/encyclopedia/en/eNSP+Pro.html
  2. Степан Мальчевский. Лабораторные работы на тему «Сетевые протоколы в Linux». https://github.com/UsamG1t/Nets_ASVK_Labs
  3. Michael Shigorin, Anton Midyukov. Документация Mkimage-profiles. https://nightly.altlinux.org/docs/mkimage-profiles.html
  4. Курячий Г. В. Курс «Сети в Linux»: опыт пяти лет преподавания. https://uneex.org/FrBrGeorge/LinuxNetwork2024
  5. VBoxManage Introduction. https://www.virtualbox.org/manual/topics/vboxmanage.html
  6. Shell-сценарии для работы с VirtualBox. https://github.com/FrBrGeorge/vbsnap