GNS3 (Graphical Network Simulator) — это графический симулятор сети, который позволяет смоделировать виртуальную сеть из маршрутизаторов и виртуальных машин. Незаменимый инструмент для обучения и тестов. Работает практически на всех платформах. Отлично подходит для создания стендов на десктоп машинах.

В зависимости от аппаратной платформы, на которой будет использоваться GNS3, возможно построение комплексных проектов, состоящих из маршрутизаторов Cisco, Cisco ASA, Juniper, а также серверов под управлением сетевых операционных систем.

GNS3 имеет два серьёзных недостатка:

  • Сильно требователен к CPU и памяти. 10 маршрутизаторов уже всерьёз нагрузят ПК. Использование процессора можно снизить с помощью механизма Idle PC. Без этого и 3-4 с трудом бы, пожалуй, пошли.
  • Очень слабо поддерживает функции L2. Есть только подобие коммутаторов, на которых можно максимум настроить Access/Trunk порты и свичовые платы для маршрутизаторов, L2-функционал которых также очень ограничен.

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

Окно программы и его структура представлены ниже.



Так как задача выходит за пределы моделирования сети внутри эмулятора, нам необходимо подготовить операционную систему к дальнейшему взаимодействию с GNS3. Для этого нам необходимо настроить сеть, взаимодействующую с GNS3, а не с внешними протоколами передачи данных. Все сети, которые подключены к вычислительной машине направлены на передачу файлов вне её системы. Машина переводит файлы в биты, собирает их в пакеты, помечает и отправляет по протоколу TCP/IP в сеть. Принимающая машина взаимодействует не с сеть, а с переданным пакетом. Она распаковывает его всё по тому же протоколу TCP/IP и предоставляет файл пользователю через свою файловую систему. Наша задача – пустить трафик таким образом, чтобы компьютер смоделировал сеть внутри себя и проанализировал ответ на свой же запрос в сети. Задача не из простых, но есть и усложняющий факто – Wi-Fi. Кабельные сети легко построить на эмуляторе, как и беспроводные, а эмулировать сеть, которая работает по определённым принципам упрощения передачи – это уже не так просто. Для решения поставленной задачи создадим loop-back adapter. Это сеть, которая обращается сама к себе. Чтобы создать loop-back сеть в Windows Win+R и введём hdwwiz.exe





Нажимаем кнопку «Далее» и выбираем пункт «Установка оборудования, выбранного из списка вручную». Сразу оговорюсь, что я в данной лабораторной работе использовал операционную систему Windows 10 (64 бита), так как она является последней и самой актуальной.



Нажимаем кнопку «Далее» и выбираем пункт «Сетевые адаптеры»



Нажимаем кнопку «Далее» и в левом меню выбираем компанию Microsoft, а в правом – «Адаптер замыкания на себя Microsoft KM-TEST»



Далее выполняем установку и переходим в настройки адаптера. Для этого переходим «Пуск» -> «Панель управления» -> «Сеть и Интернет» -> «Центр управления сетями и общим доступом» -> «Изменение параметров адаптера».

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



Если Вы сделали всё правильно, то у Вас должно быть две сети с такими расшифровками:



В моём случае «Беспроводная сеть 2» — это сеть Wi-Fi, а «Ethernet 3» -это замкнутая сеть.

Подготовительная работа с системой окончена. Я не буду рассказывать как установить ISO образы на GNS3, так как у каждого пользователя свои версии и в каждой системе устойчивы свои роутеры. Я использовал версию 0.87 и роутер c3660, так как в моей версии это самый устойчивы маршрутизатор.

Перетаскиваем на рабочую область роутер и облако, чтобы получилась схема как на рисунке ниже



Настроим облако. Перейдя во вкладку NIO Ethernet (Network Input Output Ethernet) выбираем нашу замкнутую сеть и нажимаем кнопку «Add», а затем ОК.



Соединяем облако и роутер кабелем FastEthernet и запускаем роутер нажатием на зеленую кнопку «Play».

Настроим роутер. Введём последовательность команд:

conf t
int fa 0/0
no shut
ip address dhcp
ip domain-lookup

Разберём каждую команду.
conf t (Режим глобальной конфигурации)
int fa 0/0 (Режим конфигурирования интерфейса)
no shut (команда включения интерфейса)
ip address dhcp (указывает, что интерфейс получает IP-адрес через DHCP)
ip domain-lookup (разрешения имён хостов на IP-адреса и наоборот)
Осталось проверить есть ли подключение к сети Интернет. Для этого пропингуем любой сайт. Например, гугл.



Как видно на скрине, всё работает.

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

Connected to Dynamips VM "R1" (ID 0, type c3600) - Console port
Press ENTER to get the prompt.

This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.

A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html

If you require further assistance please contact us by sending email to
export@cisco.com.

Cisco 3660 (R527x) processor (revision 1.0) with 124928K/6144K bytes of memory.
Processor board ID FTX0945W0MY
R527x CPU at 250MHz, Implementation 40, Rev 1.2, 512KB L2 Cache


3660 Chassis type: ENTERPRISE
2 FastEthernet interfaces
DRAM configuration is 64 bits wide with parity enabled.
125K bytes of NVRAM.
8192K bytes of processor board System flash (Read/Write)

SETUP: new interface FastEthernet0/0 placed in "shutdown" state
SETUP: new interface FastEthernet0/1 placed in "shutdown" state


Press RETURN to get started!


*Mar  1 00:00:03.091: %LINEPROTO-5-UPDOWN: Line protocol on Interface VoIP-Null0, changed state to up
*Mar  1 00:00:03.183: %SYS-5-CONFIG_I: Configured from memory by console
*Mar  1 00:00:03.319: %LINEPROTO-5-UPDOWN: Line protocol on Interface IPv6-mpls, changed state to up
*Mar  1 00:00:03.463: %SYS-5-RESTART: System restarted --
Cisco IOS Software, 3600 Software (C3660-A3JK9S-M), Version 12.4(15)T14, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Tue 17-Aug-10 11:00 by prod_rel_team
*Mar  1 00:00:03.467: %SNMP-5-COLDSTART: SNMP agent on host R1 is undergoing a cold start
*Mar  1 00:00:03.491: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar  1 00:00:03.503: %CRYPTO-6-GDOI_ON_OFF: GDOI is OFF
*Mar  1 00:00:03.507: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF
*Mar  1 00:00:03.507: %CRYPTO-6-GDOI_ON_OFF: GDOI is OFF
*Mar  1 00:00:03.507: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF
*Mar  1 00:00:03.543: %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down
*Mar  1 00:00:04.491: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
*Mar  1 00:00:04.543: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
R1#
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa 0/0
R1(config-if)#no shut
R1(config-if)#
*Mar  1 00:00:45.887: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:00:46.887: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1(config-if)#ip address dhcp
R1(config-if)#
*Mar  1 00:01:13.071: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 192.168.137.31, mask 255.255.255.0, hostname R1

R1(config-if)#ip domain-lookup
R1(config)#^Z
R1#
*Mar  1 00:02:15.551: %SYS-5-CONFIG_I: Configured from console by console
R1#ping google.ru

Translating "google.ru"...domain server (192.168.137.1) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 173.194.73.94, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/35/44 ms
R1#

Комментарии (13)


  1. AlexJJ
    08.03.2018 15:57

    no shut (оставляем роутер включённым, чтобы не сбросить настройки)

    Эта же команда не оставляет router включенным, а включает сетевой интерфейс. Используется в режиме конфигурации интерфейса.


    1. valerylinkov Автор
      08.03.2018 15:58

      Спасибо! Согласен с замечанием. Сейчас подправлю.


  1. anna1310
    09.03.2018 02:09

    Благодарю за статью. Мне она будет полезна.


  1. Night_Snake
    09.03.2018 13:28

    Простите, а это точно авторская статья, а не перевод? И русский язык является для автора родным?
    Потому что даже если забить на опечатки, то часть предложений это лютая галиматья, которая не несёт смысла, плюс путаница в терминологии плюс весьма фривольная интерпретация команд CLI…


    1. valerylinkov Автор
      09.03.2018 13:41

      Данная статья полностью авторская. Есть 2-3 аналога на английском языке с седьмой виндой.

      Потому что даже если забить на опечатки, то часть предложений это лютая галиматья, которая не несёт смысла, плюс путаница в терминологии

      Не очень понял Вашего негодования по поводу статьи. У меня нет человека, который будет вторично читать мои тексты и опечатки возможны.
      Если Вы нашли какие-либо опечатки, пожалуйста, напишите мне в личку о них (Хабр к этому и призывает). Я буду благодарен и подправлю ошибки.

      весьма фривольная интерпретация команд CLI

      Чистая правда, что интерпретация команд CLI фривольна, так как я писал пояснения исключительно для ознакомления (всего их 5 и все команды базовые).


      1. Night_Snake
        09.03.2018 13:54

        Так как задача выходит за пределы моделирования сети внутри эмулятора, нам необходимо подготовить операционную систему к дальнейшему взаимодействию с GNS3. Для этого нам необходимо настроить сеть, взаимодействующую с GNS3, а не с внешними протоколами передачи данных. Все сети, которые подключены к вычислительной машине направлены на передачу файлов вне её системы. Машина переводит файлы в биты, собирает их в пакеты, помечает и отправляет по протоколу TCP/IP в сеть. Принимающая машина взаимодействует не с сеть, а с переданным пакетом. Она распаковывает его всё по тому же протоколу TCP/IP и предоставляет файл пользователю через свою файловую систему. Наша задача – пустить трафик таким образом, чтобы компьютер смоделировал сеть внутри себя и проанализировал ответ на свой же запрос в сети. Задача не из простых, но есть и усложняющий факто – Wi-Fi. Кабельные сети легко построить на эмуляторе, как и беспроводные, а эмулировать сеть, которая работает по определённым принципам упрощения передачи – это уже не так просто. Для решения поставленной задачи создадим loop-back adapter. Это сеть, которая обращается сама к себе. Чтобы создать loop-back сеть в Windows Win+R и введём hdwwiz.exe

        Что вы здесь хотели сказать? Ну и опять же, банальный спелл-чекер вам в помощь.

        Чистая правда, что интерпретация команд CLI фривольна, так как я писал пояснения исключительно для ознакомления

        Вы, вроде как, написали вводную инструкцию по работе с GNS3. Однако же, приводя примеры команд, вы даже не удосужились прочитать, а что они означают (ну т.е. открыть мануал от той же циски или найти статью на xgu).


        1. valerylinkov Автор
          09.03.2018 14:13

          Вы, вроде как, написали вводную инструкцию по работе с GNS3. Однако же, приводя примеры команд, вы даже не удосужились прочитать, а что они означают (ну т.е. открыть мануал от той же циски или найти статью на xgu).

          Статья не вводная, а объясняющая принцип настройка Windows 10 для работы GNS3 с Интернетом. Команды поправил по мануалу, дабы не было никаких вопросов.
          Я старался объяснить более простым языком. Судя по всему, это было ошибкой.

          Что вы здесь хотели сказать? Ну и опять же, банальный спелл-чекер вам в помощь.

          Снова не понял негодования. Если Вы говорите о Spell Checker, то он ни единой ошибки не выдал.
          В данной части я пытался объяснить почему нужно использовать настройку loop-back сети. Читать этот отрывок «по диагонали» не надо.
          Если Вы можете написать этот кусок более понятно и есть желание помочь, повторюсь, пожалуйста, напишите в личку Ваше виденье этого отрывка.

          Критиковать другого всегда проще, чем написать самому или помочь грамотным советом.


          1. Night_Snake
            09.03.2018 18:50

            Я честно пытался прочитать этот абзац раза три. Сломался на «внешних протоколах передачи данных» и дальше уже пошла полная отсебятина. Я поэтому и спрашиваю — сказать-то что хотели?

            Помогать переписывать текст за вас я не хочу, потому что это ваша статья, не моя. А работать редактором на общественных началах как-то не хочется.
            Удачи вам, пишите ещё.


  1. Loxmatiymamont
    09.03.2018 14:35
    +1

    Прочитал обе статьи автора.
    Большое спасибо! Давно так не смеялся от всей души.
    Создать настолько бесполезный набор слов с ускользающим смыслом, это талант.
    С нетерпением жду новой статьи!


    1. valerylinkov Автор
      09.03.2018 14:40
      -1

      Пошли комментарии из разряда «Даёте и я скажу».
      Прискорбно…
      В любом случае, рад что заставил Вас улыбнуться!


  1. kazaros
    09.03.2018 21:02

    GNS еще жив? пра улет назад ушел в UNL, там гораздо лучше


    1. valerylinkov Автор
      09.03.2018 21:12

      GNS — жив и будет ещё долго жить.
      По UNL сказал бы что не лучше/хуже, а удобнее и проще.


  1. nessero
    11.03.2018 12:30

    Есть прекрасный Eve-Ng. Он лишен многих недостатков GNS3 и UNL.