You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Модуль диагностики AirMon

Обзор и устройство

Airmon это встроенный в агент wda легковесный диагностический HTTP-сервер (по умолчанию порт 8080). Он спроектирован для работы с минимальным потреблением ресурсов (использует потоки с ограниченным стеком 128 КБ). Модуль включает в себя веб-интерфейс для ручного тестирования и API для автоматизации. Используемые данные. Инструмент агрегирует данные из нескольких источников:

  • Сетевой трафик: генерация случайных данных через /dev/urandom для тестов загрузки (Download) и прием данных для тестов отдачи (Upload).
  • Wireless Metrics (через netlink интерфейс ядра): реальные физические параметры радиоэфира в момент теста — MCS (Modulation and Coding Scheme), NSS (Spatial Streams), ширина канала (MHz), уровни сигнала и шума (RSSI/SNR).
  • Airtime Utilization: статистика использования эфира — процент занятости канала (Busy), уровень интерференции (Interference) и доля трафика самого клиента (Self TX/RX).
  • DHCP Snooping: используется для автоматического сопоставления IP-адреса тестируемого устройства с его MAC-адресом для получения точных беспроводных метрик именно для этого клиента.

Типичный сценарий использования

Диагностика последней мили между устройством пользователя (station) и точкой доступа (ap):

Инженер или система мониторинга инициирует тест с клиентского устройства на IP-адрес точки доступа. Airmon замеряет чистую пропускную способность (Mbps) и задержки (Latency/Jitter). Параллельно со скоростью фиксируются параметры радиоэфира. Если скорость низкая, данные airmon позволяют сразу определить причину: низкий уровень сигнала (RSSI), зашумленность канала (Interference) или ограничения на физическом уровне (низкий MCS).


Для интеграции модуля AirMon в сторонние системы мониторинга или скрипты автоматизации можно использовать его HTTP API. Ниже приведен раздел документации с описанием эндпоинтов и примерами использования.

HTTP API модуля AirMon

Модуль предоставляет простой REST-like интерфейс для замера пропускной способности и получения метрик радиоэфира. По умолчанию сервер слушает на порту 8080.

1. Тест загрузки (Download)

Эндпоинт: GET /<size><unit> Возвращает поток случайных данных заданного объема.

  • Поддерживаемые единицы (unit): bkbmbgb (регистр не важен).
  • Пример: /10mb/100KB/1gb.

Пример использования (curl):


# Загрузка 10 МБ данных с замером скорости
curl -o /dev/null http://<ap_ip>:8080/10mb



2. Тест отдачи (Upload)

Эндпоинт: POST /upload 

Принимает любые данные и возвращает статистику скорости в формате JSON.

Формат ответа:

# Загрузка 10 МБ данных с замером скорости
curl -o /dev/null http://<controller_ip>:8080/10mb

{
  "method": "upload",
  "size_bytes": 1048576,
  "duration_ms": 150,
  "speed_mbps": 55.92
}




Пример использования (curl):

# Отправка 5 МБ случайных данных
dd if=/dev/urandom bs=1M count=5 | curl -X POST -H "Content-Type: application/octet-stream" --data-binary @- http://<ap_ip>:8080/upload


3. Метрики радиоэфира (Wireless Stats)

Эндпоинт: GET /airtime

Возвращает текущие физические параметры подключения клиента, с которого пришел запрос.Особенности:

  • Модуль автоматически определяет MAC-адрес клиента по его IP (используя данные DHCP Snooping).
  • Если клиент подключен не по Wi-Fi или его MAC не найден, вернется предупреждение.

Формат ответа:


Пример использования (curl):

curl http://<ap_ip>:8080/airtime
{
  "active": 1000,
  "busy": 450,
  "tx": 120,
  "rx": 200,
  "other": 80,
  "interference": 50,
  "signal": -55,
  "noise": -95,
  "snr": 40,
  "rx_rate": {
    "rate": 866700,
    "mcs": 9,
    "nss": 2,
    "mhz": 80
  },
  "tx_rate": {
    "rate": 780000,
    "mcs": 8,
    "nss": 2,
    "mhz": 80
  }
}

 


4. Веб-интерфейс

Эндпоинт: GET / или GET /index.html

Возвращает диагностическую страницу для ручного тестирования в браузере.



  • No labels