Установка GNS3

В ходе данного курса потребуется составлять стенды, соединяя несколько устройств в сеть (как ни странно). Для этого будет использоваться GNS3, ниже описано как подготовить свой компьютер для работы с этим ПО.

Не нужно пытаться устанавливать GNS3 через официальный сайт, там скачивание по запросу и маловероятно, что вам ответят, всё что вам необходимо находится на github и не требует регистрации для скачивания.

0. Wireshark

Установить любым удобным способом. Поискать в интернете, как запускать без sudo/администратора/регистрации и смс.

1. Frontend

В качестве интерфейса можно использовать и браузер, однако гораздо удобнее, когда есть интеграция с терминалом, к которому вы привыкли и Wireshark, поэтому рекомендую поставить себе gns3-gui. Распространяется он разными каналами:

  1. Для windows и mac os есть бинарники в релизах
  2. Можно поставить пакет из pypi
    Лучше поставить через pipx:
    1. pipx install gns3-gui
    2. pipx inject gns3-gui PyQt6
  3. Для многих дистрибутивов есть пакеты, например репозиторий для debian-based

Обратите внимание, на то, какую версию gns3-gui вы устанавливаете, это пригодится далее. Напр. сейчас (26.02.2026) актуальная v3.0.6.

gns3-gui лучше не запускайте, пока не будет работать сервер.

2. Сервер

Лучшим решением будет создать виртуальную машину, где gns3 сможет создавать любые устройства и сети, не влияя на работу хост-системы. Хотя другие варианты также возможны. Идеально, если системой поддерживается вложенная виртуализация: в этом случае никаких ограничений на запускаемые системы не будет. Предварительно в данном курсе мы будем использовать функционал, не требующий вложенной виртуализации, но лучше, если она будет доступна. На Apple M1 вложенная вируализация недоступна.

Ниже описано 4 способа установки, достаточно одного) т.е. если вы выполнили 2.1, то 2.2, 2.3 и 2.4 можете не читать.

2.1 Самый простой способ, через подготовленные образы

Нужно поставить ПО для запуска виртуальных машин, если ещё нет. Если вы с ними не работали, то ставьте VirtualBox, примеры будут приведены с ним.

Если вы используете VirtualBox, то лучше сначала убедиться, что создана виртуальная сеть "vboxnet0", или создать её. В обновлённом интерфейсе справа есть кнопка "Сеть", (см скриншот ниже слева). В старом для этого нажать на кнопку со списком справа от надписи "Инструменты", в появившемся списке выбрать "Сеть" (см скриншот ниже справа).

Где искать меню Сеть (новый интерфейс) Где искать меню Сеть

Где искать меню Сеть

В появившемся окне выбрать вкладку "Виртуальные сети" (при первом открытии показывается именно она) и если список пуст, то нажать кнопку "Создать" в верхней части. Все параметры можно оставить по умолчанию.

Меню с параметрами vboxnet0

Меню с параметрами vboxnet0

Если используете что-то другое (не VirtualBox), то убедитесь, что имеете возможность как предоставить виртуальной машине доступ в интернет (зачастую через NAT или bridge), так и к хост-системе.

На странице релизов gns3-gui на github найти версию соответствующую той, frontend которой вы установили (напр. v3.0.6). В Assets можно заметить файлы GNS3.VM.*.zip. Необходимо скачать ту же версию, что и уже установленный gns3-gui и версию образа для удобной вам системы виртуализации. Например, для VirtualBox выбрать файл GNS3.VM.VirtualBox.*.zip. Скачать и распаковать.

Скачанный архив будет содержать либо экспортированный файл виртуальной машины (для VirtualBox это так), либо файлы дисков. Необходимо импортировать этот файл или создать виртуальную машину и подключить к ней скачанные диски. Для VirtualBox: Файл>Импорт Конфигураций, в открывшемся окне указать путь к файлу .ova.

Перед запуском нужно убедиться, что конфигурация машины корректна, нет никаких предупреждений. В VirtualBox откройте настройки созданной виртуальной машины и убедитесь, что предупреждений нет. Если они появляются, то устраните их (часто решается выбором альтернативных опций, например, переключением графического контроллера в "Дисплей" VMSVGA/VBoxSVGA/VBoxVGA). Пример такого предупреждения ниже.

Предупреждение о некорректно сконфигурированном разделе Дисплей

Как выглядит предупреждение

После нужно сконфигурировать виртуальную машину:

  1. Увеличить объём доступной оперативной памяти, хотя бы до 2Gb, лучше - больше (Для VirtualBox Система > Материнская плата > Основная память)
  2. Увеличить число доступных ядер ЦПУ: хотя бы парочку (Для VirtualBox Система > Процессор > Процессоры)
  3. Предоставить доступ в интернет и к хост-системе (Для VirtualBox ничего делать не нужно, 2 адаптера будут созданы)
  4. Остальные настройки по своему желанию

Запустить созданную виртуальную машину. Если всё пройдёт успешно, то вы увидите тоже что и на скриншоте ниже:

Успешно запущенный gns3-server

Как выглядит успех

2.2 Самостоятельная установка gns3-server

Для некоторых случаев подготовленных образов виртуальной машины нет (например, если архитектура ЦПУ отличается от x86). В таком случае можно создать виртуальную машину на основе удобного вам дистрибутива (например, ubuntu 24.04 server).

Я на своём macbook с M1 устанавливаю виртуалку именно таким способом. Свою виртуалку могу экспортировать, но не гарантирую, что у вас будет запускаться.

Требования к виртуальной машине остаются:

  1. Не менее 2Гб ОЗУ, больше - лучше
  2. Доступ в интернет и к хост системе (зачастую требуется создать 2 интерфейса: NAT или bridge для доступа в интернет и ещё виртуальный адаптер для соединения с хост-системой)

Базовая установка дистрибутива на виртуальную машину тут описана не будет.

В установленной системе настроить сеть: обычно это включение dhcp, если не настроено автоматически (если создавали 2 интерфейса, не забудьте про второй)

Установка gns3-server описана в README, не забывайте, что это нужно делать в виртуальной машине, не в хост-системе.

Если будете клонировать проект, то нужно делать это по тегу релиза как в gns3-gui, например командой git clone https://github.com/GNS3/gns3-server --depth 1 --branch v3.0.5

Не забудьте установить зависимости в виртуальной машине: uBridge, Dynamips, VPCS и docker.

Со сборкой VPCS есть проблемы, вот команды по установке:

  1. git clone https://github.com/GNS3/vpcs.git
  2. cd vpcs/src
  3. ./mk.sh 64 # или ./mk.sh
  4. sudo cp vpcs /usr/local/bin/vpcs

После переходите к установке gns3server. Если хотите не заморачиваться с автостартом, то команды pip запускайте сразу под sudo:

  1. git clone https://github.com/GNS3/gns3-server.git --depth 1 --branch v3.0.6
  2. cd gns3-server-master
  3. sudo python3 -m pip install -r requirements.txt
  4. sudo python3 -m pip install .
  5. sudo cp init/gns3.service.systemd /lib/systemd/system/gns3.service
  6. sudo chown root /lib/systemd/system/gns3.service
  7. sudo systemctl daemon-reload
  8. sudo systemctl start gns3

Если устанавливали не под sudo, то может потребоваться настроить переменную PATH, чтобы иметь возможность запускать простой командой gns3server, например так: echo "export PATH=\$PATH:/home/$USER/.local/bin" >> ~/.bashrc (в зависимости от того, куда будет установлен gns3server).

IP адрес можно узнать командой ip a, порт по умолчанию 3080. Чтобы убедиться, что всё работает, на хост системе в браузере нужно открыть ссылку http://<ip>:3080, например, http://192.168.56.4:3080

Чтобы увидеть синий экран как на скриншоте выше из 2.1, нужно поставить python пакет pythondialog, а также программу UNIX dialog, затем запустить скрипт python3 scripts/welcome.py (в корне проекта gns3-server).

2.3 Запускать всё локально

Потенциально самый проблемный способ, требует установки всего (VPSC, uBridge, etc) на свою основную систему, виртуальные сети также будут создаваться в хост системе, что может приводить к разного рода мисконфигурациям (это когда придётся потратить вечер, чтобы включить себе интернет, по пути сломав что-то другое). Плюсы при этом неочевидны, вероятно, будет потреблять меньше электроэнергии при работе.

2.4 Изобрести свой способ установки

(Можно в совместном авторстве с кем угодно)

2.5 IDDQD

Если ваш комп слишком слабый, или у вас apple M1 и вы не хотите ничего понимать, то можно написать мне в надежде, что я выделю вам сервер (но ничего не обещаю).

3. Настройка gui

Запустить gns3-gui (команда может быть просто gns3)

При первом запуске может открыться мастер настройки, можно пройтись по нему, можно просто открыть настройки. Ниже описан второй вариант.

Настройки можно открыть из меню Edit > Preferences или GNS3 > Preferences (на mac os). Нужно выбрать раздел "Controller", см скриншот ниже.

Настройка доступа gns3-gui к gns3-server

Меню подключения к серверу

Необходимо убрать галочку "Enable local controller", если она установлена. Далее перенести данные из gns3-server: IP (он же host), port, username/password по умолчанию "admin". Проверить соединение можно нажатием на кнопку "Connect".

Также в пункте меню GNS3 VM убрать галочку, если она активирована "Enable the GNS3 VM" (хоть это и может показаться контринтуитивным):

Enable the GNS3 VM

Ненужная нам тут GNS3 VM

Оставить эту галочку можно только если вы знаете, что делаете.

Настройка терминала

Для настройки запуска терминала нужно перейти в раздел "General" > "Console application", там нажать кнопку "Edit" и в выпадающем списке выбрать свой.

Загрузка образов контейнеров

В основном работать будем с контейнерами, можно их сразу загрузить. Перейти в раздел "Docker containers", нажать кнопку New, выбрать "New image", ввести rerand0m/frr (для процессоров с arm писать rerand0m/frr:arm), нажать Next, на этом этапе его можно назвать как душе угодно, Next, число адаптеров лучше установить в 4, Next, Start command оставить пустым, Next, telnet, Next, оставить пустым, Finish. Повторить для образа rerand0m/cn-alpine (для процессоров с arm rerand0m/cn-alpine:arm). Закрыть окно настроек.

Как добавлять контейнеры

Как добавлять образы контейнеров

Добавить на основное поле только что созданные образы контейнеров (см скриншот ниже), при этом на сервере должна осуществиться их загрузка, нужно подождать.

Добавление контейнеров

Где искать и куда двигать контейнеры

На windows 10/11 может быть проблема с доступом к интернету из виртуальной машины:

Как проявляется проблема доступа в интернет из виртуалки

Чтобы решить эту проблему, нужно в VirtualBox создать "сеть NAT", также как создавалась "Виртуальная сеть", после чего в настройках виртуальной машины, у одного из адаптеров, где "Тип подключения" NAT, выбрать вместо этого только что созданную сеть NAT.

Были обнаружены проблемы с доступностью docker.io (проверить можно через ping docker.io, если несколько секунд ничего не выводит - он недоступен), что не позволяет нормально скачать образы rerand0m/cn-alpine и rerand0m/frr. Я поднял свой реестр образов контейнеров, чтобы подключиться к нему, вам нужно в окне виртуальной машины нажать "OK" (см скриншот выше "Как выглядит успех"), затем в меню выбрать "Shell". После нужно выполнить командуdoc docker login -u=student -p=NqYyaF registry.rerand0m.ru. Затем docker pull registry.rerand0m.ru/cn-alpine и docker pull registry.rerand0m.ru/frr. Если открывается этот сайт, то и образы контейнеров должны быть доступны. При добавлении образов в GNS3 после нажатия на New в настройках выберите "Existing image" и ниже нужный образ.