Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по дисциплине Иммитационное моделирование систем обнаружения вторжений

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
920 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Ордена Трудового Красного Знамени Федеральное Государственное

бюджетное образовательное учреждение

высшего образования

Московский технический университет связи и информатики

Кафедра «Информационная безопасность»

Практикум

по дисциплине

ИММИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМ ОБНАРУЖЕНИЯ

ВТОРЖЕНИЙ

г. Москва, 2016 г.

План УМД на 2016/17 уч. г.

Практикум

по дисциплине

ИММИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМ ОБНАРУЖЕНИЯ

ВТОРЖЕНИЙ

Составитель: Костин Д. В., ассистент (МТУСИ)

Рецензент:

Рекомендовано к изданию кафедрой «ИБиА» Протокол № _________ г.

2

Оглавление

 

Практикум №1. Установка сетевого симулятора Network Simulator 3 (NS-3)

...................................................................................................................................

4

Практикум №2. Построение топологий типа «точка-точка» и «шина» в

 

NS-3 ...........................................................................................................................

9

Практикум №3. Построение беспроводной топологии и топологии типа

 

«звезда» в NS-3.......................................................................................................

17

Практикум №4. Генерация трафика, содержащего атаку, средствами NS-3

.................................................................................................................................

24

3

Практикум №1

“Установка сетевого симулятора Network Simulator 3 (NS-3)”

Цель практикума

Получить навыки установки и настройки сетевого симулятора NS-3 для создания имитационных моделей работы реальной сети.

Краткие теоретические сведения

Network Simulator 3 (NS-3) – это свободное программное обеспечение, которое представляет собой сетевой симулятор, ориентированный в первую очередь для решения научных и учебных задач.

Программное ядро симулятора NS-3 поддерживает работу в IP и non-IP сетях, а также работу с такими беспроводными сетями как Wi-Fi, WiMAX, LTE и другими.

NS-3 – это C++ библиотека, которая представляет собой набор сетевых модулей, реализованных в виде объектов на языке C++ и имеющих обёртку для языка Python (рис. 1). Обычно пользователь взаимодействует с ядром с помощью написания собственных скриптов на языке C++ или Python, которые соответствуют определённой имитационной модели.

Рисунок 1. Ключевые технологии NS-3

Общий процесс моделирования в NS-3 можно разделить на несколько этапов:

1)Определение топологии. Создание основных объектов и определение их взаимосвязей;

2)Разработка модели. Определяется тип модели (например, UDP, IPv4, устройства в режиме точка-точка, их связи и т.д.);

4

3)Конфигурирование узлов и связей. Определение основных конфигураций, которые будут использоваться по умолчанию (например, размер пакетов или MTU);

4)Использование. Смоделированные объекты производят генерацию событий, которые логируются после клиентских вызовов.

5)Анализ производительности. Когда процесс моделирования закончен и получены данные (трассировки), может быть произведён их анализ для получения определённого вывода о смоделированной системе.

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

как Gnuplot, matplotlib или XGRAPH.

NS-3 распространяется в виде исходных кодов, которые можно загрузить с официально сайты https://www.nsnam.org/, тем не менее, после загрузки исходных кодов необходимо произвести их сборку. Наиболее тривиальной утилитой для этого является – make. Однако, сборка большого проекта с помощью make - сложная задача. Поэтому в последнее время набирают популярность другие системы сборки, такие как Waf.

Waf – основная утилита, использующаяся для сборки NS-3, которая написана на языке Python и не требует от вас знания самого языка для проведения сборки.

Пример выполнения практикума

1.Для своей работы NS-3 требует много зависимостей, которые можно установить, используя следующие команды в терминале:

sudo apt-get install gcc g++ python

sudo apt-get install gcc g++ python python-dev sudo apt-get install qt4-dev-tools libqt4-dev sudo apt-get install mercurial

sudo apt-get install bzr

sudo apt-get install cmake libc6-dev libc6-dev-i386 g++-multilib sudo apt-get install gdb valgrind

sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl sudo apt-get install flex bison libfl-dev

sudo apt-get install tcpdump

sudo apt-get install sqlite sqlite3 libsqlite3-dev sudo apt-get install libxml2 libxml2-dev

sudo apt-get install libgtk2.0-0 libgtk2.0-dev sudo apt-get install vtun lxc

sudo apt-get install uncrustify

sudo apt-get install doxygen graphviz imagemagick

5

sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng

sudo apt-get install python-sphinx dia

sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython

sudo apt-get install libboost-signals-dev libboost-filesystem-dev

sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-d

2.После установки всех необходимых зависимостей, необходимо загрузить последнюю версию NS-3 с официального сайта и провести её распаковку. Для этого воспользуемся следующими командами:

cd

mkdir tarballs cd tarballs

wget http://www.nsnam.org/release/ns-allinone-3.26.tar.bz2 tar xjf ns-allinone-3.26.tar.bz2

При успешном скачивании и распаковке, проверьте наличие новой папки выполнив команду ls (рис. 2).

Рисунок 2. Скачивание и распаковка ns-3

3. Перейдём в созданную папку (рис. 3)

6

Рисунок 3. Переход в распакованную папку ns-3

4.Следующим шагом является сборка NS-3. Для этого в терминале выполните команду

./build.py

и дождитесь окончания сборки (рис. 4).

Рисунок 4. Оповещение об успешной сборке ns-3 5. Перейдём в папку ns-3.xx (рис. 5).

Рисунок 5. Переход в папку ns-3.26

7

6.Произведём конфигурацию с помощью Waf. Для этого выполним следующую команду:

./waf -d debug --enable-examples --enable-tests configure

7. После чего запустим тесты для проверки сборки:

./test.py

По окончанию тестирования вы должны увидеть следующий результат

(рис. 6):

8.Распространяемый архив NS-3 уже содержит некоторые примеры скриптов, имитирующих различную работу. Эти пример доступны в папке /tarballs/ns-allinone-3.26/ns-3.26/examples/tutorial

Произведём запуск одного из таких скриптов с помощью команды

./waf --run first

после чего получим следующее (рис. 7):

Рисунок 7. Результат выполнения скрипта

Если скрипт не запустился (рис. 8), то попробуйте переместить его в папку /ns-3.26/scratch/

Рисунок 8. Ошибка при запуске скрипта

Задание на практикум

1.Скачать последнюю версию NS-3

2.Произвести сборку и конфигурацию приложения

3.Проверить сборку с помощью теста

4.Запустить скрипт second.py

8

Содержание отчёта по практикуму

1.Титульный лист

2.Цель практикума и краткие теоретические сведения

3.Выполнение практикума в соответствии с заданием

4.Ответы на контрольные вопросы

Контрольные вопросы

1.Что такое NS-3 и для чего он используется?

2.Назовите основные этапы при моделировании в NS-3.

3.Что такое Waf?

4.В чём достоинства и недостатки NS-3?

Литература

1.NS-3. Installation. // Интернет ресурс https://www.nsnam.org/wiki/Installation

(дата обращения 10.10.2016).

2.Installing ns3 in ubuntu 12.10 and above. // Интернет ресурс http://ns3help.blogspot.ru/2014/05/installing-ns3-in-ubuntu-1210.html (дата обращения 10.10.2016).

3.After installing ns3 what to do? // Интернет ресурс http://ns3help.blogspot.ru/2014/05/after-installing-ns3-what-to-do.html (дата обращения 10.10.2016).

Практикум №2

“Построение топологий типа «точка-точка» и «шина» в NS-3”

Цель практикума

Получить навыки построения топологии типа «точка-точка» и «шина» и в сетевом симуляторе NS-3.

Краткие теоретические сведения

Прежде всего начнём работу с NS-3 с рассмотрения основных терминов:

Node (узел) – оконечный узел сети – хост. Класс Node используется для управления вычислительными устройствами при моделировании. Данный класс может быть использован для добавления необходимой функциональности вашему устройству.

9

Application (приложение) – пользовательская программа, которая генерирует некоторую имитируемую активность. Как правило в NS-3 класс Application является абстракцией для других классов, таких как

UdpEchoClientApplication и UdpEchoServerApplication, которые имитируют клиент / серверную работу.

Channel (канал) – среда передачи потоков данных между узлами. Класс Channel предоставляет методы для управления подсетями и подключёнными к ним узлами. NS-3 предоставляет такие реализации канала, как CsmaChannel, PointToPointChannel и WifiChannel.

Net Device (сетевая карта) – периферийное устройство реализующая сетевые функции. В NS-3 сетевая карта представляет собой имитацию оборудования и необходимых драйверов. Для работы с сетевой картой можно использовать такие классы, как CsmaNetDevice,

PointToPointNetDevice и WifiNetDevice.

Topology Helper (помощник построения топологии) – дополнительный абстрактный класс, предназначенный для упрощения настройки сетевой топологии. Как известно, каждой сетевой карте должен быть присвоен свой IP и MAC-адрес, а для связи узлов между собой должен быть настроен стек протоколов, при этом отдельные сети могут быть объединены между собой. Для упрощения настройки этих сложных действий NS-3 предлагает помощника, реализуемого классом

TopologyHelper.

Топология типа «точка-точка»

Рассмотрим работу скрипта first.cc, поставляемого вместе NS-3, который имитирует работу сети в режиме точка-точка [1].

Сперва необходимо произвести импорт всех зависимостей:

#include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/internet-module.h"

#include "ns3/point-to-point-module.h" #include "ns3/applications-module.h"

Следующей строкой следует декларация пространства имён:

using namespace ns3;

Для запуска логирования необходимо воспользоваться командой:

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]