«

»

Мар 13

Распечатать Запись

Эмуляция сетевых параметров и помех с помощью WANem

wanem В данной статье я расскажу о неплохом сетевом эмуляторе WANem (The Wide Area Network emulator), так как у меня был опыт настройки и работы с ним. Один из проектов был связан с эмуляцией различных воздействий на мультимедийные потоки передаваемые в реальном режиме времени по протоколу RTMP.

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

 Также могу сказать следующее, в принципе, WANem работает и выполняет свои заявленные функции, но несколько раз в течении двух месяцев он у меня зависал и не отвечал на ping с других машин, приходилось исправлять ситуацию командой эмулятора «reset» — сброс сетевых настроек и перезапуск сервисов, ниже вы также сможете почитать о других командах эмулятора. Таким образом WANem предназначен для создания различных сетевых помех, например, таких как:

  • Задержка (Delay).
  • Джиттер (Jitter).
  • Потери пакетов (Packet Loss).
  • Полоса пропускания (Bandwidths).

 Для того чтобы установить WANem вам необходимо скачать ISO образ диска. На самом деле это урезанный дистрибутив Linux Knoppix c установленным WANem.  Далее записать данный образ на диск и вы получите LiveCD. Далее вы можете загрузить этот диск (LiveCD) на какой-нибудь виртуальной машине, например, VMWare или VirtualBox. Я загружался с созданного диска LiveCD на реальной машине и не использовал виртуальных машин.

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

  • help — справка.
  • about — версия и др.
  • clear — очистка экрана.
  • reset — сброс сетевых настроек и перезапуск сервисов.
  • shutdown — выключение системы.
  • restart — перезапуск системы.
  • status — показывает текущий статуса системы (IP-адреса, маршруты, состояния сервисов).
  • wanemreset — сброс созданных вами правил для WANem
  • assign — задание IP-адреса вручную, в том случае если не используете DHCP.
  • quit — выход из консоли WANem.

Для того чтобы получить доступ к WEB-интерфейсу управления WANem, заходим по следующему адресу http://адрес машины с WANem/WANem . Через WEB-интерфейс вам будут доступны три режима работы.

1.   WANalyzer — в данном режиме вы просто вводите IP адрес компьютера, информацию о сетевом канале до которого вы хотите получить. Я много раз проводи тест с помощью  WANalyzer до одной и той же машина. Очень часто мне выдавались результаты очень разные, хотя между тестами были очень маленькие промежутки времени. Пробовал найти что-то в Интернете, о том как работает данная утилита, но ничего точного не нашел. Вообщем результаты данного теста я не считаю совсем точными.

 

Пример того, что выводит WANalyzer:

 

23.11.2011
Remote host IP — 172.20.20.100
Time of measurement — 18:41:19
Latency — 85.125 ms
Loss of packet — 20 %
Jitter — 85.1253
Available BandWidth — 47.6837 Mbps

 2. Basic Mode — простой режим эмулирования сетевых характеристик. В данном режиме, возможно только ограничить пропускную способность и создать задержку обработки пакетов в миллисекундах.

 3. Advanced Mode — расширенный режим настроек эмуляции. На мой взгляд самый интересный и полезный режим, который я как раз и использовал для своих экспериментов. В данном режиме вы можете эмулировать различные влияния сети и создавать правила.

Пункт меню Save/Restore можно использовать для сохранения текущих настроек, для дальнейшего повторного использования. Теперь немного расскажу о том как перенаправить трафик, например, от сервера к клиенту через WANem. В моем случае у меня были:

 

  • Медиа сервер, Flash Media Streaming Server. IP — 10.33.17.243
  • Компьютер с WANem. IP — 10.33.17.81
  • Компьютер — клиент с Flash плеером. 10.33.17.242

В данной схеме Flash плеер подключался к серверу и проигрывал live видео поток (live streaming). Я, в свою очередь, создавал различные помехи с помощью эмулятора WANem, который находился между сервером и клиентом. Компьютер, на котором был установлен WANem имел только один сетевой интерфейс и получал IP адрес автоматически. Все три компьютера находились в одной локальной сети и имели адреса из одной подсети.

 Исходя из представленной схемы, для того чтобы пакеты с клиентского компьютера до сервера проходили через сетевой эмулятор WANem, а не напрямую необходимо прописать  маршрут в таблице маршрутизации клиентского компьютера. На Window машине, просто зайдите в консоль («в стандартных программах» запустите приложение «командная строка») и выполните команду:


route add 10.33.17.243 mask 255.255.255.255 10.33.17.81

 Для того чтобы пакеты с сервера до клиентского компьютера проходили через сетевой эмулятор WANem, на сервере (в моем случае это был Windows Server), также выполните следующую команду:


route add 10.33.17.242 mask 255.255.255.255 10.33.17.81 

 Команды для добавления маршрутов в разных версиях Linux, также очень простые и их синтаксис можно легко найти в Интернет. Вот вроде все и настроили. Теперь осталось задать значение, например задержки в эмуляторе и выполнить команду «ping 10.33.17.243″ в клиентской командной строке. То есть пропинговать сервер. Вы уведите, что между сервером и клиентом появится задержка.

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

Wanem network

Поделиться в соц. сетях

Постоянная ссылка на это сообщение: http://itmultimedia.ru/emulyaciya-setevyx-parametrov-i-pomex-s/

Комментарии:

2 комментария

  1. Леша

    Можно регулировать отдельно входящий и исходящий трафик ?

    1. Анатолий

      Не уверен что одним WANem это можно делать. Но если установить два WANem, то это точно возможно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>