Главная Без рубрики, Новое Network Emulator Toolkit
  • Network Emulator Toolkit

    Сегодня я хочу поведать вам об одной интересной программе, а именно Network Emulator Toolkit. Данный софт позволяет эмулировать различные “помехи” в сети (эмуляция плохих каналов связи). Обычно нужно это для разработчиков софта, что бы сымитировать медленный канал с потерями. Я же использовал данный софт для обкатки работы технологий BranchCache и при написании статьи про SMB. В моем примере была  эмуляция  большой латентности сети, Avg.Time=200, но это далеко не все возможности. А теперь краткий обзор.

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

    Установка

    Итак, начнем. Кратко пробежим по установке.

    1. Видим приветствие, все обычно.
      Setup_1
    2. Куда будем ставить
      Setup_2
    3. Ну собственно и все.
      Setup_3

    Видно, что установка дело простое. Нет огромной кучи настроек и различных конфигураций. Все делает в 4 щелчка.

    Работа в NET

    Главное окно программы выглядит следующим образом
    Run_1

    Создание фильтров

    Теперь для работы необходимо создать один или несколько фильтров. Configuration -> New Filter или CTRL+F.
    Run_2
    Фильтры используются для фильтрации области применений вышестоящих правил. В данном меню можно выбрать несколько вариантов:

    • All Network – вся сеть, т.е. все данные, проходящие через хостовую машину, будут попадать под критерий. И в последующием будут обрабатываться.
    • IPv4/IPv6 – тут можно задать определенные IP адреса в сети, которые мы хотим обрабатывать.
    • Так же есть возможность выбрать различные протоколы, такие как: ICMP, ICMPv6, TCP, UDP, ESP, AH. А к примеру для TCP можно выбрать еще и определенный порт или набор портов.
    • Фильтры могут быть привязаны к одной сетевой карте или сразу ко всем.

    Такими вот нехитрыми действиями, можно создать достаточно сложную структуру фильтрации. Например, можно создать различные связки IP адресов и протоколов (TCP к примеру еще и с портами). Что даст просто огромные возможности по эмуляции сетевых соединений.

    Я создал несколько фильтров и теперь главное окно выглядит вот так:
    Run_3
    Вот такими хитрыми “бабочками” обозначаются  текущие фильтры. Так же сразу видно к какому сетевому адаптеру привязаны фильтры.

    Создание обработчиков (New Link)

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

    Для создания Configuration -> New Link или CTRL+L.
    Link_2

    Хочу заметить, что сначала мы редактируем параметры на входящего трафика. После того как мы нажмем ОК, появится аналогичное окно, но редктировать будем параметры исходящего трафика.

    Loss

    Link_1

    Давайте пройдемся кратко по всем пунктам в этой вкладке (Loss или потери):

    • No Loss – нет никаких потерь пакетов.
    • Periodic Loss – К примеру, хотим терять каждый 102 пакет.
    • Random Loss – Периодические потери. Задаем “уровень потерь”
    • Burst Loss – “Взрыв потерь”, т.е. потери будут набегать спонтанно и кучей.
    • Gilbert-Eliot Loss – Совсем крутая штука, только не понял как работает. Можно почитать тут.

    Error

    Link_3

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

    • No Error – Нет ошибок
    • Random Error – Периодические потери. Задаем “уровень потерь”
    • Gilbert-Eliot Loss – Совсем крутая штука, только не понял как работает. Можно почитать тут.

    Latency

    Link_4

    Вот этим пунктом я пользовался. Тут можно задавть задержки на канале.

    • No latency – Нет задержек
    • Fixed – Фиксированный размер
    • Uniform Distributed – Равномерное распределение
    • Normal Distributed – Нормальное распределение (в чем отличие – непонятно)
    • Linear – Линейное
    • Burst – Всплески

    Bandwidth & Queue

    Link_5

    В данной закладке можно управлять “шириной канала”, т.е. скоростью. А так же можно “рулить” очерью.

    • Brandwidth – Ширина канала связи
    • Queue – Очередь. Есть куча параметров. Начиная от типа очереди и заканчивая ее длиной. Так же есть магический параметр RED Queue.

    Disconnection

    Link_6

    Можно управлять разъединениями.

    • No Disconnection – Нет разрывов связи
    • Pereodic – Периодически. Параметры так же задаются.

    Я создал несколько различных фильтров и теперь главное окно выглядит вот так:
    Link_7

    Запуск

    Для работы необходимо зайти в Action -> Start или F5
    Start_2

    Мониторинг

    После запуска можно снять статистику. Для этого есть вкладки внизу.
    Мониторинг трафика:
    Monitoring_1

    Мониторинг пакетов:
    Monitoring_2
    Сейчас все выключено и поэтому пусто.

    Монитор соединений:
    Monitoring_3

    Заключение

    Такой софт действительно незаменимый для тестовой среды.

    Скачать можно x32 и x64

    Баканов Денис

    MCSE+S; MCITP EA

    Оригинал статьи

Комментарии

  1. Спасибюо за статью.
    Надо было только адрес офф. страницы программы написать.