# Эмуляторы и симуляторы сетей ЭВМ. Для студентов технических специальностей

Игорь Александрович Кожин, Иван Андреевич Трещев

Данная книга содержит описание работы симулятора Cisco Packet Tracer и эмулятора GNS3. В ней приведены основные отличия между данными категориями программного обеспечения. Приведены лабораторные работы для создания практических курсов по данному программному обеспечению.

> «Эмулятор, симулятор, имитатор – в чем же разница?» – студент 2-го курса.

> «Самая могущественная команда? Конечно же show-running-config!» – инженер отдела технического сопровождения.

Специалист по сетям и телекоммуникациям Семен Васильевич Евсеев

Разработка сетевых инфраструктур, сбор материала Андрей Игоревич Рыжков


© Иван Андреевич Трещев, 2018

© Игорь Александрович Кожин, 2018


ISBN 978-5-4493-9748-5

Создано в интеллектуальной издательской системе Ridero

## Введение

В настоящее время существует довольно большое количество разнообразных устройств для организации сетей Ethernet. Данные сети получили самое широкое распространение в мире из-за дешивизны оборудования и простоты развертывания. Если говорить о сетях Fiber Channel то даже для них существует идеология FCoE.

Автор хотел бы выразить огромную благодарность студентам старших курсов принимавших участие в создании данной книги и Евсееву С. В. без которого ее создание было бы невозможным.

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

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

## 1 НЕМНОГО ОБ ЭМУЛЯТОРАХ И СИМУЛЯТОРАХ СЕТЕЙ

Для того, чтобы перейти к непосредственно к лабораторным работам, необходимо дать основную информацию о том, где и как будет работы будут выполняться.

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

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

Эмуляции могут подвергаться операционные системы (с помощью таких программ, как VirtualBox, Virtual Machine Manager, KVM, VMware Workstation, DOSBox), некоторые виды периферийных устройств, оптические устройства (Alcohol, DAEMON Tools, Nero Burning ROM), игровые консоли (PCSX2, Dolphin, Project64). Многие эмуляторы разработаны и доступны под лицензией GNU General Public License как открытое программное обеспечение. Лицензия GNU GPL предоставляет пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права

Сетевые эмуляторы позволяют эмулировать на компьютере пользователя (хосте) различные сетевые устройства с их операционными системами (гости) и создавать связи между виртуальными и реальными устройствами с помощью моделирования сложных сетей. К таком типу программного обеспечения относится широко распространенный Графический симулятор сетей (Graphical Network Simulator-3, GNS3).

GNS3 – это бесплатное программное обеспечение с открытым исходным кодом, с помощью которого можно создавать топологии сетей и эмулировать различные устройства с помощью виртуальных машин. С её помощью возможно скопировать операционную систему Cisco IOS с реального физического маршрутизатора Cisco и запустить его на виртуальном эмулированном маршрутизаторе Cisco в GNS3, или взять официальный образ системы и начать работать, что называется, «с чистого листа». Все данные, которые передаются в созданной топологии, можно перехватить с помощью анализатора трафика WireShark и проводить различные исследования. Так же GNS3 поддерживает устройства других поставщиков, отличных от Cisco.

Исключением для эмуляции в GNS3 (как и в любом другом продукте подобного рода) являются коммутаторы, так как работу коммутаторов практически невозможно эмулировать из-за особенностей самих устройств. В GNS3 их работа лишь симулируется. Так же из-за того, что устройства эмулируются на хосте, при увеличении топологии они будут потреблять все больше и больше ресурсов хоста, особенно это касается процессора.

Скачать GNS3 можно непосредственно с официального сайта проекта gns3.com или с официальной страницы GitHub github.com/GNS3/gns3-gui/releases. О дополнительных возможностях данного продукта можно узнать в официальной документации docs.gns3.com. На момент написания данной книги актуальной версии GNS3 является 2.1.11.

Другой программой для симуляции сети является Cisco Packet Tracer.

Cisco Packet Tracer является официальным продуктом Cisco для студентов Сетевой академии, который имитирует сети Cisco. Данный продукт не поддерживает устройства других вендоров, а также лишь симулирует работу различных устройств в топологии, что сказывается на ограничениях функционала устройств. Однако Cisco Packet Tracer легко настраиваемый и потребляет на порядок меньше ресурсов хоста, в отличии от GNS3. Он может подойти для создания небольшой топологии, а также для создания различных учебных задач.

Официально получить данную программу можно только на сайте Сетевой академии netacad.com, записавшись на курс «Introduction to Packet Tracer» netacad.com/ru/courses/packet-tracer/introduction-packet-tracer. Это и предлагается сделать нашим читателям.

## 2 НЕМНОГО О CISCO IOS

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

Cisco IOS (Internetwork Operating System – Межсетевая Операционная Система) – программное обеспечение, используемое в маршрутизаторах и сетевых коммутаторах Cisco. Cisco IOS является многозадачной операционной системой, выполняющей функции сетевой организации, маршрутизации, коммутации и передачи данных.

В Cisco IOS есть специфичный интерфейс командной строки (command line interface, CLI), который был скопирован многими другими сетевыми продуктами. Интерфейс IOS предлагает набор многословных команд, согласно выбранному режиму и уровню привилегий пользователя.

Все режимов пять:

1.Пользовательский режим. В данном режиме командная строка имеет вид (SW1>). Данный режим дает доступ к ограниченному количеству базовых команда для мониторинга системы. В нем нельзя совершать какие-либо настройки устройства;

2.Привилегированный режим. В данном режиме командная строка имеет вид (SW1#). Он дает доступ ко всем остальным командам;

3.Глобальный режим конфигурации. Командная строка имеет вид (SW1 (config) #). Данный режим позволяет вносить изменения, влияющие на работу всего устройства в целом;

4.Режим настройки линии. Командная строка имеет вид (SW1 (config-line) #). Он нужен для настройки доступа через консоль, SSH, Telnet;

5.Режим настройки интерфейса. Командная строка имеет вид (SW1 (config-if) #). Нужен для настройки интерфейса коммутатора или маршрутизатора.

Команды для изменения режимов:

1. Войти в привилегированный режим: SW1> enable

2. Выход из привилегированного режима: SW1# disable

3. Войти в глобальный режим конфигурации: SW1# configure terminal

4. Войти в режим настройки линии: SW1 (config) # line console 0

Команды в IOS не обязательно дописывать до конца – операционная система сама поймет, какую команду ввел пользователь. Так же для того, чтобы автоматически дописать название команды, используется кнопка Tab.

Каждому устройство Cisco можно назначить свое имя для удобного администрирования устройств. Изменим имя маршрутизатора на R1:

Router# configure terminal

Router (config) # hostname R1

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

Router# configure terminal

Router (config) # enable secret class

Тоже самое можно сделать и для консольной линии, к которой подключение происходит с помощью консольного кабеля. Поставим пароль cisco и включим доступ к пользовательскому режиму:

Router# configure terminal

Router (config) # line console 0

Router (config-line) # password cisco

Router (config-line) # login

Виртуальные линии используются для подключения к устройству с помощью таких программ, как PuTTY или Tera Term. Сделаем настройку для всех шестнадцати виртуальных линий прописав диапазон от 0 до 15 и поставим пароль для доступа к пользовательскому режиму:

Router# configure terminal

Router (config) # line vty 0 15

Router (config-line) # password cisco

Router (config-line) # login

При открытии файла конфигурации на устройстве все пароли, которые настроены, будут показаны открыто как есть. Команда service password-encryption дает программному обеспечению IOS указание зашифровать пароли, секреты CHAP и другие, аналогичные данные, которые хранятся в файле конфигурации.

Router# configure terminal

Router (config) # service password-encryption

В набор команд Cisco IOS входит команда, позволяющая настроить сообщение, которое будут видеть все, кто входит в систему. Это сообщение называется сообщением дня или баннером MOTD (Message of the Day). Установить текст баннера можно при помощи команды banner motd

Router# configure terminal

Router (config) # banner motd #Ваше сообщение для#[1]

Все настройки, которые были произведены на устройстве, будут сохранены в оперативной памяти (ОЗУ). Чтобы посмотреть файл конфигурации, требуется ввести команду show running-config. Обратите внимание, что после выключения устройства настройки не будут сохранены.

Router# show running-config

Сохранение текущего файла конфигурации возможно с помощью команды copy running-config startup-config. Это позволит перезаписать конфигурацию, которая будет загружаться при включении устройства. Данный файл будет храниться в энергонезависимой памяти (NVRAM).

Router# copy running-config startup-config

Просмотр сохраненной конфигурации осуществляется с помощью команды show startup-config

Router# show startup-config

Для очистки загрузочной информации используется команда erase startup-config. Для перезагрузки устройства используется команда reload

Router# erase startup-config

Router# reload

Пример базовой настройке приведен на рисунке 1


Рисунок 1 – Пример базовых настроек в Cisco IOS. Скриншот сделан в Cisco Packet Tracer

## 3 GNS3

### 3.1 Базовая настройка

После скачивания с сайта запускаем файл с расширением. exe, имеющий имя «GNS3—2.1.11-all-in-one» и следуем по всем шагам установки, оставляя параметры по умолчанию. Во время установки будут загружены необходимые драйвера для работы с сетевыми пакетами и дополнительные программы. В их состав входит WireShark. Предупреждаем, что полная установка настройка GNS3 занимает достаточно продолжительное время, по сравнению с Cisco Packet Tracer. По этой причине функционал последней мы подробно рассматривать не будем. Отдельные элементы программы Cisco Packet Tracer будут рассмотрены в пятой главе «Cisco IOS».

Итак, после окончания процесса установки запускаем GNS3. Для удобства можете выбрать стандартные директории для образов операционных систем и проектов, там они будут храниться.

Приступим к настройке. Перейдем в окно настроек Edit – Preferences… (рисунок 2 – 4) и загрузим образы операционных систем для маршрутизаторов.


Рисунок 2 – Выбор стандартных директорий


Рисунок 3 – Список установленных Cisco ISO. Для добавления нового образа требуется нажать на кнопку New


Рисунок 4 – Добавление новых образов


Далее пишем название маршрутизатора и платформы (рисунок 5), выставляем оперативную память (рисунок 6), которая выделяется для него. Можно оставить значение по умолчанию, а можно добавить дополнительную память при условии, что хост достаточно мощный. Следующим шагом (рисунок 7) выставляем нужные сетевые адаптеры. Данные значение оставляем по умолчанию. Idle-PC (рисунок 8) оставим как есть. Позже поговорим о ней поподробнее. При завершении настроек мы увидим новое устройство в списке (рисунок 9).


Рисунок 5 – Добавление названия для образа и выбор устройстсва, которое будет эмулироваться


Рисунок 6 – Выделение оперативной памяти


Рисунок 7 – Добавление сетевого адаптера


Рисунок 8 – Добавление значения Idle-PC


Рисунок 9 – После всех настроек устройство будет добавлено в список


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


Рисунок 10 – Добавление устройства на рабочую область


После добавление устройства запускаем его нажатием кнопки Play в панели инструментов (рисунок 11) и подключаемся через консольный порт к добавленному устройству, нажав ПКМ по нашему маршрутизатору (рисунок 12).


Рисунок 11 – Play


Рисунок 12 – Открытие консоли


Однако нагрузка на процессор компьютера станет огромной (рисунок 13). Для того, чтобы уменьшить нагрузки на хост, требуется применить значение Idle-PC, которое позволяет уменьшить загруженность нашего компьютера. Для этого ПКМ нажимаем по маршрутизатору и выбираем Idle-PC. Программа рассчитает необходимы нам данные и из появившегося окна выбираем нужные нам значения (рисунок 14). Несмотря на то, что программа заявляет, что значения, обозначенные звездочкой (*) является самыми оптимальными, на практике все иначе. Часто значения приходится перебирать, сравнивая нагрузку на процессор при каждом установленном значении Idle-PC и выбирать таким образом подходящую для нас опцию (рисунок 15). На рисунке 16 показана нагрузка на компьютер после применения данной настройки. Обратите внимание, что данную процедуру необходимо применять для каждого добавляемого устройства!


Рисунок 13 – Нагрузка на процессор хоста до применения настроек Idle-PC


Рисунок 14 – Idle-PC


Рисунок 15 – Выбор предложенных значений


Рисунок 16 – Нагрузка на процессор хоста после применения настроек Idle-PC

### 3.2 Создание простой сети

Создадим и настроим простую сеть. Для этого добавим несколько маршрутизаторов (рисунок 17) и соединим их (рисунки 18 – 20).


Рисунок 17 – Добавление маршрутизаторов


Рисунок 18 – Add a Link


Рисунок 19 – Выбор интерфейса для подключения кабеля


Рисунок 20 – Пример подключения маршрутизаторов


Изменим названия маршрутизаторов, поменяем иконку для «главного» маршрутизатора в сети, добавим номера сетей, включим обозначение интерфейсов и рамку (рисунки 21 – 25).


Рисунок 21 – Нажимаем ПКМ по иконке устройства. Изменить название можно с помощью Change hostname, изменить иконку – Change symbol


Рисунок 22 – Кнопка добавления текста


Рисунок 23 – Кнопка добавления рамки


Рисунок 24 – Кнопка включения-выключения обозначения интерфейсов


Рисунок 25 – Пример оформления топологии


Проведем настройку маршрутизатора, подключившись по консольному порту (рисунок 26). Интерфейсу назначим IP-адрес с указанием маски подсети и включим интерфейс командой no shutdown.

R1#config t

R1 (config) #int fa0/0

R1 (config-if) #ip address 192.168.2.1 255.255.255.0

R1 (config-if) #no shutdown

R1 (config-if) #interface fa0/1

R1 (config-if) #ip address 192.168.1.1 255.255.255.0

R1 (config-if) #no shutdown


Рисунок 26 – Настройка интерфейсов маршрутизатора. Скриншот сделан в PuTTY, подключенный к виртуальной машине, работающей в GNS3


Те же самые настройки сделаем и для остальных маршрутизаторов в нашей сети. Вдобавок назначим имя устройству и совершим проверку соединения с маршрутизатором Admin путем использования команды ping. Приведем пример настройки маршрутизатора Technical (рисунок 27):

R2#config t

R2 (config) #int fa0/0

R2 (config-if) #ip address 192.168.2.2 255.255.255.0

R2 (config-if) #no shutdown

R2 (config-if) #exit

R2 (config) #hostname Technical

Technical (config) #exit

Technical#ping 192.168.2.1

Аналогичные действия совершаем с маршрутизатором Developer (рисунок 28).

R3#config t

R3 (config) #int fa0/1

R3 (config-if) #ip address 192.168.1.2 255.255.255.0

R3 (config-if) #no shutdown

R3 (config-if) #do ping 192.168.1.1

R3 (config-if) #exit

R3 (config) #hostname Developer

Не забываем сохранить введенные настройки в энергонезависимую память маршрутизатора:

Developer (config) #exit

Developer#copy running-config startup-config


Рисунок 27 – Настройка интерфейсов маршрутизатора Techical и проверка соединения с соседний маршрутизатором. Скриншот сделан в PuTTY, подключенный к виртуальной машине, работающей в GNS3


Рисунок 28 – Настройка интерфейсов маршрутизатора Developer, проверка соединения с соседний маршрутизатором, изменение имени устройства и сохранение текущей конфигурации в энергонезависимой памяти


Обратите внимание, что команда ping выполняется совместно с командой do. Дело в том, что если на устройстве работает операционная система Cisco IOS 12.2 (8) или выше, вы имеете возможность использовать команду do для запуска привилегированных команд из режима конфигурации.

Добавим дополнительный маршрутизатор в нашу сеть. Так как в стандартном маршрутизаторе уже не хватает интерфейсов, добавим новый с помощью настроек (рисунок 29).

# Примечания

1

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