Содержание

Rating group, Tethering, Volume Qoutas

Конфигурация СКАТ

Для применения конфигурации необходимо выполнить рестарт сервиса:
service fastdpi restart

Принцип группировки протоколов: DPI помечает каждый новый flow протоколом из списка. Протоколы группируются в классы трафика для применения

Также применяется группировка протоколов в Rating group с учетом тетеринга. Тетеринг определяется на основе TTL в исходящем трафике. В параметре tethering_ttl_allowed = 128:64 указывается список допустимых значений TTL для трафика от абонента, которые не считаются тетерингом. Значения перечисляются через ':'. Количество значений — до 256 (0-255). Данный параметр определяется глобально на DPI. Профилирование на абонента в road map. Рейтинг группы используются для квотирования по объему, полисинга на рейтинг группу и выполнения действия block, report.

18 услуга описывает группировку протоколов по классам трафика (cs) и рейтинг группам (rg).

20 услуга описывает полисинг, квоты по объему, действия для рейтинг групп (rg).

Пример задания классов трафика и рейтинг групп с помощью 18 услуги

  1. Подготовить текстовый файл example.txt:
        http cs0  teth1 rg1
        https cs0  teth1 rg1
        http cs0  teth2 rg2
        https cs0  teth2 rg2
    
        dns  cs1  teth1 rg1
        dns  cs1  teth2 rg2
    
        default cs7 teth0 rg3

    Описание параметров:

    • teth0 — нет контроля tethering (default)
    • teth1 — есть контроль tethering: tethering присутствует
    • teth2 — есть контроль tethering: tethering отсутствует

      rgN, задает номер рейтинг группы:
    • rg0 default (rg не установлена)
    • rg1 установлена rg=1
      ..
    • rg65535, максимальное количество рейтинг групп

      :!: В данном примере по http, https протоколам отслеживается тетеринг и в зависимости от этого назначается соответствующая rg. Отметим, что класс полисинга cs один и тот же, но rg разные в зависимости от TTL. Аналогично по dns протоколу. По ВСЕМ остальным протоколам (default) нет контроля тетеринга и указана отдельная rg.
  2. Конвертировать во внутренний формат:
    cat example.txt|lst2dscp /tmp/example.bin

    Обратная конвертация для проверки:

    dscp2lst /tmp/example.bin
  3. Создать профиль 18 услуги и назначить абоненту:
    fdpi_ctrl load profile --service 18  --profile.name test_dscp --profile.json '{ "dscp" : "/tmp/example.bin" }'
    fdpi_ctrl load --service 18  --profile.name test_dscp --login test_subs
  4. Проверить назначение услуги:
    fdpi_ctrl list --service 18 --login test_subs

В трассировке trace_ip добавлено поле rg=N для определения поведения DPI для конкретного flow.

Пример задания полисинга, квоты по объему и действия для рейтинг групп (rg) с помощью 20 услуги

  1. Подготовить текстовый файл, в котором для каждой рейтинг-группы прописать TBF-полисинг, квоту и действие по достижении квоты:
    rg1 tbf rate 1Mbit burst 1Mbit inbound.rate 8Mbit inbound.burst 1Mbit quota 100MB report
    rg2 tbf rate 8Mbit burst 1Mbit inbound.rate 8Mbit inbound.burst 1Mbit quota 1GB block

    :!: В данном примере описаны две рейтинг группы. rg1 имеет upload 1Mbps / download 8Mbps и квоту на 100MB с действием по истечением квоты report. rg2 имеет upload 1Mbps / download 8Mbps и квоту на 1GB с действием по истечением квоты block.

    report и block — это доступные действия по достижении квоты:

    • report — сообщить о достижении квоты, но пропускать трафик далее;
    • block — сообщить о достижении квоты и блокировать трафик по данной рейтинг-группе
  2. Конвертировать тектовый файл в бинарный формат:
    cat rg.txt | lst2rg /var/lib/dpi/rg.bin

    Обратная конвертация для проверки:

    rg2lst rg.bin > rg.txt
  3. Создать профиль 20 услуги и назначить абоненту:
    fdpi_ctrl load profile --service 20 --profile.name rg1 --profile.json '{ "rg_list" : "/var/lib/dpi/rg.bin" }'
    fdpi_ctrl load --service 20  --profile.name rg1 --login test_subs