Настройка правил маршрутизации обработки запросов HTTP Reverse

IVA SBC позволяет настроить правила для проксирования HTTP-запросов на различные внутренние сетевые адреса.

Чтобы IVA SBC выполняло обработку трафика HTTP Reverse, необходимо:

  1. добавить правила фильтрации маршрутов HTTP Reverse, состоящие из набора фильтров, которые ограничивают или разрешают доступ к заданным URL-адресам

  2. добавить маршруты HTTP Reverse, которые состоят из последовательного набора правил фильтрации маршрутов HTTP Reverse

  3. добавить группу маршрутизации HTTP Reverse, которая состоит из упорядоченного списка маршрутов HTTP Reverse

  4. назначить серверу проксирования роль HTTP Reverse и созданную группу маршрутизации HTTP Reverse

  5. добавить SSL-сертификат сервера проксирования IVA SBC, необходимый для корректной работы сервера по протоколу SSL

Алгоритм обработки трафика HTTP Reverse на сервере проксирования:
  1. обработка трафика HTTP Reverse на сервере проксирования выполняется в соответствии с правилами в назначенной группе маршрутизации HTTP Reverse

  2. обработка HTTP-запросов выполняется в соответствии с последовательностью маршрутов, добавленных в группу маршрутизации HTTP Reverse

  3. для каждого маршрута в группе маршрутизации HTTP Reverse при совпадении адреса запроса HOST c URL-адресом сервера, указанным в маршруте, последовательно проверяется список правил фильтрации маршрутов HTTP Reverse

  4. для каждого правила фильтрации последовательно проверяются фильтры, входящие в него

  5. если запрос попадает под фильтр, который настроен на проверку схемы, решение о разрешении или отклонении зависит от результата валидации:

    • если запрос соответствует схеме, запрос разрешается, и обработка завершается

    • если запрос не соответствует схеме, запрос отклоняется, и обработка завершается

  6. если запрос попадает под фильтр, который настроен на проверку по заданным вручную параметрам, то при совпадении с фильтром выполняется действие, указанное в данном фильтре, и обработка завершается

  7. если не найден подходящий фильтр, то запрос отклоняется

Файл с логами HTTP Reverse сохраняется на серверах проксирования в директории: /var/log/sbc/reverse_proxy.log

В разделе Маршруты HTTP Reverse:

  • на вкладке Схемы проверки добавляются схемы для проверки входящих данных

  • на вкладке Правила фильтрации задаются параметры обработки HTTP-запросов для определённого сервиса по заданным вручную параметрам или по схеме проверки

  • на вкладке Маршруты указывается, для каких доменов будут применяться эти правила фильтрации и куда будут перенаправляться соответствующие запросы

Например, можно определить группу правил для обработки запросов сервиса IVA MCU. В случае наличия двух сервисов IVA MCU создаются два маршрута:

  • для домена iva1.iva.ru запросы будут перенаправляться на один внутренний адрес

  • для домена iva2.iva.ru − на другой внутренний адрес

Настройка маршрутов HTTP Reverse

Раздел Маршруты HTTP Reverse содержит следующие вкладки:

  • Маршруты — определяют связь между доменным именем обращения и внутренним адресом сервиса куда запрос необходимо отправить и список правил фильтрации, которые необходимо наложить на эти запросы

Вкладка Маршруты
  • Правила фильтрации — определяют список фильтрации доступных / недоступных URL-обращений

Вкладка Правила фильтрации
  • Схемы проверки — позволяют добавить и настроить схемы для проверки входящих данных

Вкладка Схемы проверки

Маршруты HTTP Reverse. Правила фильтрации

На вкладке Правила фильтрации можно управлять правилами фильтрации.

Фильтры в Правилах фильтрации определяют, какие HTTP-запросы разрешены / запрещены.

При работе на вкладке Правила фильтрации можно:

Добавление правила фильтрации HTTP-запросов

Чтобы добавить правило фильтрации, необходимо:

  1. нажать кнопку Добавить Добавить

  2. в окне Добавление правила: ввести Имя (рекомендуется вводить имя, которое кратко описывает назначение правила фильтрации (например IVA no admin)

  3. нажать кнопку Добавить

Добавление правила фильтрации

После создания правила фильтрации необходимо настроить фильтры.

Созданные правила фильтрации добавляются в маршруты HTTP Reverse.

Редактирование описания правила фильтрации

Чтобы редактировать описание правила фильтрации, необходимо:

  1. нажать кнопку Меню и выбрать Редактировать

  2. в окне Редактирование правила внести изменения

  3. нажать кнопку Сохранить

Экспортирование правила фильтрации

Чтобы экспортировать правило фильтрации с набором фильтров, необходимо:

  1. нажать кнопку Меню и выбрать Экспортировать

  2. файл в формате *.json с именем и настройками правила фильтрации сохранится в загрузке браузера

При экспорте правила фильтрации в JSON-файл сохраняются только фильтры с вручную заданными параметрами. Фильтры, использующие схемы проверки, не экспортируются

Импортирование правила фильтрации

Правило фильтрации со всеми входящими в него фильтрами можно импортировать.

Перед импортированием правила фильтрации необходимо подготовить файл (в формате (*.json) с набором фильтров.

Чтобы импортировать правило фильтрации, необходимо:

  1. нажать ссылку Импортировать

  2. в окне Открытие выбрать файл в формате *.json и нажать кнопку Открыть

После импортирования будет создано новое правило фильтрации с именем, соответствующим имени файла, и набором фильтров из файла.

Удаление правила фильтрации

Чтобы удалить правило фильтрации, необходимо:

  1. нажать кнопку Меню и выбрать Удалить

  2. в окне Удаление правила нажать кнопку Удалить

Добавление и редактирование фильтров для правила фильтрации маршрутов HTTP Reverse

Добавление и редактирование фильтров для правила фильтрации маршрута HTTP Reverse проводится на странице Информация о правиле фильтрации HTTP:

Перейти в раздел Маршруты HTTP Reverse, открыть вкладку Правила фильтрации и нажать ссылку <Имя правила фильтрации>

Информация о правиле фильтрации HTTP

При работе на странице Информация о правиле фильтрации HTTP можно:

Добавление фильтра HTTP-запроса

Существует два способа фильтровать HTTP-запросы в IVA SBC:

  • фильтрация по заданным вручную параметрам — позволяет настроить гибкие правила для отдельных маршрутов

  • фильтрация по схеме проверки — позволяет проверять запросы на соответствие заранее загруженной схеме проверки

Чтобы добавить фильтр правила фильтрации маршрута HTTP Reverse по заданным вручную параметрам, необходимо:

  1. нажать кнопку Добавить Добавить

  2. в окне Добавление фильтра:

    • URL-путь: ввести URL-адрес (фиксированный или регулярное выражение (RegExp), для которого будет выполняться фильтрация, например /administration/(.*) будет охватывать все URL-адреса, связанные с администрированием.

    • Метод:

      • Любой (ANY) — любой из перечисленных ниже

      • GET — запрашивает содержимое конкретного ресурса, получает данные и не может изменять эти данные

      • POST — создает новый ресурс из переданных данных в запросе

      • HEAD — запрашивает содержимое конкретного ресурса, в ответе получает только стартовую строку и заголовки

      • PUT — изменяет содержимое запроса по указанному URI

      • PATCH — изменяет только фрагмент ресурса по указанному URI

      • DELETE — удаляет конкретный ресурс по указанному URI

      • CONNECT — запускает двустороннюю связь с запрошенным ресурсом

      • OPTIONS — определяет возможности и используемые методы web-сервера

      • TRACE — возвращает служебную отладочную информацию

    • Действие:

      • Разрешить — разрешает доступ к указанному URL-адресу

      • Запретить — запрещает доступ к указанному URL-адресу

  3. нажать кнопку Создать

Добавление фильтра маршрута HTTP Reverse

Чтобы добавить фильтр правила фильтрации маршрута HTTP Reverse по схеме проверки, необходимо:

  1. загрузить схему во вкладке Схемы проверки

  2. нажать кнопку Добавить Добавить

  3. в окне Добавление фильтра:

    • URL-путь: ввести URL-адрес (фиксированный или регулярное выражение (RegExp), для которого будет выполняться фильтрация.
      Пример: /api/rest/.* будет охватывать все клиентские REST-запросы IVA MCU, начинающиеся с /api/rest и соответствующие указанной схеме.

    • Схема проверки: выбрать загруженную схему для проверки запросов.

  4. нажать кнопку Создать

Изменение порядка применения фильтров

Добавленные фильтры правил фильтрации маршрутов HTTP Reverse применяются в порядке очереди.

Чтобы изменить порядок применения фильтров, необходимо использовать кнопки:

  • Стрелка вверх для перемещения фильтра вверх

  • Стрелка вниз для перемещения фильтра вниз

Редактирование описания правила фильтрации

На странице Информация о правиле фильтрации HTTP можно редактировать правило фильтрации:

  1. нажать кнопку Редактировать

  2. в окне Редактирование правила внести изменения

  3. нажать кнопку Сохранить

Редактирование фильтра правила фильтрации HTTP

На странице Информация о правиле фильтрации HTTP можно редактировать фильтр правила фильтрации HTTP:

  1. выбрать фильтр, который необходимо редактировать, и нажать кнопку Редактировать

  2. в окне Редактирование фильтра внести изменения (описание полей приведено в разделе Добавление фильтра HTTP-запроса)

  3. нажать кнопку Сохранить

Удаление правила фильтрации

На странице Информация о правиле фильтрации HTTP можно удалить правило фильтрации:

  1. нажать кнопку Меню и выбрать Удалить

  2. в окне Удаление правила нажать кнопку Удалить

Удаление фильтра правила фильтрации HTTP

На странице Информация о правиле фильтрации HTTP можно удалить фильтр правила фильтрации HTTP:

  1. выбрать фильтр, который необходимо удалить и нажать кнопку Удалить

  2. в окне Удаление фильтра нажать кнопку Удалить

Схемы проверки

IVA SBC позволяет проверять корректность входящих данных на основе заранее определенных схем проверки.

Типы схем проверки

Поддерживаются два типа схем проверки входящих данных:

  • OpenAPI-схемы — для проверки HTTP-запросов

  • JSON-схемы — для проверки входящих сообщений по WebSocket-соединениям

OpenAPI-схемы

OpenAPI-схема — это стандартизированное описание HTTP API. OpenAPI-схемы помогают определить, какие запросы поддерживает API, какие данные необходимы и каким образом они должны быть переданы.

Использование OpenAPI-схемы упрощает настройку правил фильтрации, так как схема уже содержит всю необходимую информацию о структуре и допустимых параметрах запросов.

При проверке GET-запросов по OpenAPI-схемам лишние query-параметры не вызывают ошибок валидации, даже если параметры не описаны в схеме.

JSON-схемы

JSON-схема — это описание структуры данных в формате JSON. В IVA SBC применяется для валидации входящих сообщений, получаемых по WebSocket-соединениям.

Добавление схем проверки

Добавить и настроить схемы для проверки запросов можно на вкладке Схемы проверки.

Схемы проверки

Для добавления схемы необходимо:

  1. нажать кнопку Добавить Добавить

  2. в окне Создание схемы:

    • Имя: ввести имя схемы

    • Тип схемы: выбрать тип схемы:

      • OpenAPI — если схема используется для проверки HTTP-запросов

      • JSON — если схема применяется для WebSocket-сообщений

    • Способ загрузки: выбрать один из способов загрузки схемы:

      • Вручную: выбрать файл схемы и прикрепить его

      • По URL: указать URL-адрес, по которому доступна схема

  3. нажать кнопку Создать

Создание схемы

Редактирование и обновление схемы проверки

На вкладке Схемы проверки можно редактировать схемы:

  1. нажать кнопку Меню и выбрать Редактировать

  2. в окне Редактирование схемы внести изменения

  3. нажать кнопку Сохранить

Чтобы обновить схему проверки, доступную по URL-адресу: нажать кнопку Обновить

Удаление схемы проверки

Чтобы удалить схему:

  1. нажать кнопку Меню и выбрать Удалить

  2. в окне Удаление схемы нажать кнопку Удалить

Маршруты HTTP Reverse. Маршруты

Маршруты HTTP Reverse необходимы для установления связи внутреннего сервера и доменного имени, по которому к нему будут обращаться, с указанием применяемых правил фильтрации для обработки URL-запросов.

Маршруты HTTP Reverse позволяют указывать несколько адресов внутренних серверов. При проксировании IVA SBC распределяет HTTP‑запросы между всеми доступными серверами из списка. Если один из серверов недоступен, нагрузка автоматически перераспределяется на оставшиеся.

В разделе Маршруты HTTP Reverse на вкладке Маршруты отображаются добавленные маршруты HTTP Reverse, позволяющие связать обращения по URL и внутренний HTTP-сервис с применением заданных правил фильтрации.

Маршруты HTTP Reverse

При работе на вкладке Маршруты можно:

Добавление маршрута HTTP Reverse

Чтобы добавить маршрут HTTP Reverse, необходимо:

  1. нажать кнопку Добавить Добавить

  2. в окне Добавление маршрута ввести:

    • Имя: рекомендуется вводить имя, которое кратко описывает назначение маршрута (например IVA)

    • URL-адрес сервера: ввести внешний доменный адрес, по которому будет подключаться пользователь (например доменный адрес сервера IVA SBC ivcs.iva.ru)

    • Адреса внутренних серверов: ввести IP-адреса внутренних серверов, на которые будут проксироваться запросы:

      • нажать кнопку Добавить новый адрес для добавления дополнительного адреса

      • нажать кнопки Вверх, Вниз для перемещения адреса вверх или вниз

      • нажать кнопку Удалить для удаления адреса

    • Health check: нажать переключатель для включения проверки работоспособности проксирования HTTP Reverse

      • URL путь: ввести относительный путь (например, /health). На этот путь HTTP Reverse Proxy будет отправлять GET-запросы, чтобы проверить доступность внутренних серверов

      • Частота, сек: ввести интервал между запусками проверки в секундах от 10 до 86400

  3. нажать кнопку Создать

Добавление маршрута HTTP Reverse

После создания маршрута HTTP Reverse необходимо добавить в него правила фильтрации, которые будут применяться. Если правила фильтрации не добавить, то все запросы будут отклонены.

Редактирование описания маршрута HTTP Reverse

Чтобы редактировать описание маршрута HTTP Reverse, необходимо:

  1. нажать кнопку Меню и выбрать Редактировать

  2. в окне Редактирование маршрута внести изменения

  3. нажать кнопку Сохранить

Удаление маршрута HTTP Reverse

Чтобы удалить маршрут HTTP Reverse, необходимо:

  1. нажать кнопку Меню и выбрать Удалить

  2. в окне Удаление маршрута нажать кнопку Удалить

При удалении маршрут будет автоматически удален из всех групп маршрутизации

Редактирование маршрута HTTP Reverse и его правил фильтрации

Редактирование маршрута HTTP Reverse осуществляется на странице Информация о маршруте HTTP Reverse: в разделе Маршруты HTTP Reverse перейти на вкладку Маршруты и нажать ссылку <Имя маршрута>

Информация о маршруте HTTP Reverse

При работе на странице Информация о маршруте HTTP Reverse можно:

Добавление правила фильтрации в список правил фильтрации маршрута HTTP Reverse

Чтобы добавить правило фильтрации в маршрут HTTP Reverse, необходимо:

  1. нажать кнопку Добавить Добавить

  2. в окне Добавление правила выбрать правило из ранее созданных (например, IVA no admin) и нажать кнопку Добавить

  3. повторить добавление правил фильтрации, необходимых для данного маршрута

Добавление маршрута

Изменение порядка применения правил фильтрации

Добавленные правила фильтрации применяются в порядке очереди.

Изменить порядок применения правил фильтрации можно двумя способами:

  • используя кнопки:

    • Стрелка вверх для перемещения правила вверх

    • Стрелка вниз для перемещения правила вниз

  • используя drag-and-drop:

    • навести курсор на кнопку перетаскивания фильтра image79

    • зажать левую кнопку мыши и перетащить фильтр в нужное положение

Удаление правила фильтрации из списка

На странице Информация о маршруте HTTP Reverse можно удалить правило фильтрации HTTP из списка правил:

  1. выбрать правило, которое необходимо удалить и нажать кнопку Удалить

  2. в окне Удаление правила нажать кнопку Удалить