5. Назначение и приемы работы в имитаторе javaNetSim
5.1. Графический интерфейс имитатора javaNetSim
5.2. Главное меню программы
5.3. Контекстное меню
5.4. Командная строка
5.5. Работа с протоколами уровня приложений
5.5.1 Работа с протоколом Echo
5.5.2. Работа с протоколом SNMP
5.5.3. Работа с протоколом TELNET

Основной задачей имитатора javaNetSim является имитация работы всех уровней стека протоколов TCP/IP. Для этого имитируется работа протоколов каждого из уровней, чем достигается полная имитация работы сети. В связи с этим имитатор javaNetSim удобен для выполнения лабораторных работ. Основные приемы работы с имитатором javaNetSim будут рассмотрены в данной главе.

Имитатор javaNetSim является объектно-ориентированным и написан на языке Java. Программы написанные на этом языке являются машинно- независимыми, т.е. имитатор javaNetSim будет работать на любом компьютере, для которого есть виртуальная Java машина. Хотя язык Java является интерпретируемым, это не оказывает существенного влияния на быстродействие имитатора. Это объясняется тем, что имитатор разрабатывался для моделирования работы небольших сетей, обработка моделей которых не требует больших вычислительных ресурсов.

Архитектура имитатора javaNetSim выглядит следующим образом. В основе лежит класс Simulation (Имитация), который содержит объекты классов Link (Линия) и Node (Узел). Этот класс предназначен для объединения устройств и линий связи в единую сеть. Класс Link содержит ссылки на объекты класса Node, и предназначен для соединения двух узлов между собой. Класс Node содержит ссылки на объекты класса Link и является наиболее общей моделью сетевого устройства.

Все реальные сетевые устройства являются производными от объекта класса Node и соответствуют модели стека протоколов TCP/IP:

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

Как сами сетевые устройства, так и графический пользовательский интерфейс сетевых устройств должен быть единым. Этим объединением занимается класс SandBox (Рабочая область).

(начало)
5.1. Графический интерфейс имитатора javaNetSim

Рабочая область является частью основного окна программы, представленного на рисунке 5.1. Основное окно программы логически разделено на четыре части:

  1. рабочая область, обозначенная на рисунке цифрой (1) – содержит сетевые устройства и линии связи между ними:
  2. область вывода результатов (2) – содержит две вкладки:
  3. главное меню (3) – содержит основные действия по управлению имитатором;
  4. линейка инструментов – содержит следующие кнопки:

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

(начало)
5.2. Главное меню программы
Меню File(файл) позволяет создавать, открывать и сохранять конфигурации сетей для их дальнейшего использования. Меню содержит пять пунктов:

Режим проектирования сети доступен из меню Simulation(Имитация). Это меню позволяет создавать новые сетевые устройства (такие как: концентратор, маршрутизатор или компьютер) и изменять сетевые параметры уже существующих устройств. Меню содержит два пункта:

В имитаторе javaNetSim задание IP-адреса узла, маски подсети и шлюза по умолчанию происходит через диалог "Internet Protocol (TCP/IP) Properties", вызов которого осуществляется через меню "Simulation -> Tools -> Set TCP/IP Properties".

В этом окне (рис. 5.2) для выбранного устройства (Node Name) и интерфейса (Interface) можно задать IP-адрес (IP Address) и маску подсети (Subnet Mask) для интерфейса и шлюз по-умолчанию (Default Gateway) для узла. Для компьютера доступен всего один интерфейс, для маршрутизатора – два.

Управление параметрами имитатора доступно из меню Environment( Окружение) и позволяет изменять режим отображения информации, а также очищать область вывода результатов. Меню содержит четыре пункта:

C помощью меню "Environment -> Show simulation messages for:" можно отключить сообщение от тех уровней стека протоколов TCP/IP в которых нет необходимости. Это уменьшит количество информации выводимой в "консоль" и облегчит поиск нужных данных.

(начало)
5.3. Контекстное меню

Контекстное меню, вызываемое щелчком правой кнопкой мыши, отличается для устройств работающих на разных уровнях стека протоколов TCP/IP. На рис. 5.3 изображены контекстные меню соответственно для устройств: физического уровня - концентратор (a), сетевого уровня - коммутатор (б) и прикладного уровня - компьютер (в).

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

При выборе пункта Link Properties(Свойства линий связи) вызывается диалог, который позволяет установить коэффициент пропускания для интерфейса, показывающий какой процент пакетов линия связи подключенная к этому интерфейсу будет пропускать. Коэффициент пропускания задается для интерфейса (eth0, eth1 и т.д.).

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

В меню устройств работающих на сетевом уровне (маршрутизаторы и компьютеры) в дополнение к основным имеются ещј шесть пунктов:

Пункт контекстного меню Send Ping...(Послать эхо-запрос) – вызывает диалог, в котором можно настроить параметры эхо-запроса. Во время передвижения пакетов по сети во вкладке "консоль" должны появится сообщения, аналогичные приведенным ниже:

PC1 Echo Request Packet Network Created Echo
PC1 Echo Request Packet Network Created Echo
         Request packet to 10.0.0.2
...
PC1 Echo Reply Packet Network Echo reply packet
         received from 10.0.0.2

Меню ARP позволяет управлять таблицей протокола ARP на выбранном устройстве содержит три подпункта:

В контекстное меню компьютеров, т.е. устройств поддерживающих уровень приложений добавляется еще один пункт: подменю Applications( Приложения), которое позволяет работать с протоколами: Echo(UDP,TCP), SNMP и TELNET.

(начало)
5.4. Командная строка

Для запуска командной строки из контекстного меню выберем "Console", появится окно консоли (рис. 5.4).

Окно разделено на 2 части:

В консоли могут использоваться следующие специальные клавиши:

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

Описание синтаксиса команды route:

С помощью команды arp можно выполнить настройку таблицы ARP:

С помощью команды snmp можно управлять snmp агентом:

При вводе команд route, arp и snmp без параметров будет выведена краткая информация по их использованию.

(начало)
5.5. Работа с протоколами уровня приложений

В имитаторе javaNetSim имеется возможность работы со следующими протоколами уровня приложений стека протоколов TCP/IP:

(начало)
5.5.1 Работа с протоколом Echo

Имитатор javaNetSim позволяет использовать протоколы UDP или TCP в качестве транспортных протоколов для протокола Echo. Для установки echo-сервера в режим прослушивания порта в контекстном меню надо выбрать пункт:

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

Для того, чтобы послать эхо-запрос, необходимо в контекстном меню выбрать

и ввести четыре параметра:

Протокол Echo обладает простой структурой, поэтому при помощи telnet- клиента можно подключиться к Echo-TCP-серверу. В таком режиме нажатие любой клавиши на клавиатуре будет сопровождаться выводом ее на экран терминала.

(начало)
5.5.2. Работа с протоколом SNMP

В имитаторе javaNetSim предусмотрено несколько функций для работы с протоколом SNMP:

Для запуска SNMP агента необходимо выбрать пункт контекстного меню "Application" -> "Start SNMP Agent" и задать два параметра:

Для остановки SNMP агента необходимо выбрать пункт контекстного меню "Application" -> "Stop SNMP Agent".

Для того, чтобы послать запрос SNMP агенту необходимо выбрать пункт контекстного меню "Application" -> "Send SNMP message" и заполнить поля диалога, приведенные на рис. 5.5.

Поле Variables имеет специальный формат, различный для запросов get(getnext) и set. Если SNMP запрос является get или getnext запросом, то строка переменных должна выглядеть следующим образом:

<переменная> [;<переменная>]
Например: ip.address_eth0;device.hostname.

A если SNMP запрос является set запросом, то в строке переменных к каждой переменной добавляется значение:

<переменная>="<значение>" [;<переменная>="<значение>"]
Например: ip.address_eth0="192.168.10.3"

Результаты запроса будут выведены на вкладку "консоль". Например:

PC2 SNMP Protocol Data Application Received getResponse:
'IP.Address_Eth0=172.168.0.2' , 'Device.Hostname=PC1'

Список SNMP переменных, поддерживаемых имитатором javaNet- Sim, которые имеют режим доступа "только для чтения"приведен ниже.

Некоторые SNMP переменные имеют режим доступа "чтение и запись".

Режим доступа определяет действия, которые можно производить с переменной. Если переменная имеет режим доступа только чтение, то попытка записать новое значение завершиться с ошибкой.

(начало)
5.5.3. Работа с протоколом TELNET

В имитаторе javaNetSim предусмотрены следующие функции для работы с протоколом TELNET:

Для запуска TELNET сервера необходимо выбрать пункт контекстного меню "Application" -> "Start telnet server to listen" и задать два параметра:

Для остановки TELNET сервера необходимо выбрать пункт контекстного меню "Application" -> "Stop telnet server".

Для соединения с TELNET сервером необходимо выбрать пункт контекстного меню "Application" -> "Telnet client" и задать два параметра:

После этого откроется окно терминала и если соединение прошло успешно появится приглашение ввести имя пользователя: login. После введения имени появится приглашение ввести пароль: password. После введения пароля, имя пользователя и пароль проверяются и, если они корректны, будет выведено приглашение в виде:

<имя компьютера> #

В javaNetSim для TELNET-сервера используется имя пользователя root и пароль, установленный при создании TELNET-сервера. В сеансе telnet доступны следующие команды:

После завершения работы необходимо закрыть сеанс telnet. Закрытие сеанса telnet можно произвести тремя способами:

Несмотря на то, что протокол TELNET в javaNetSim реализован на очень простом уровне, это не мешает ему выполнять свои функции. В качестве примера можно привести подключения telnet-клиента к Echo- TCP-серверу.