Настройка правил маршрутизации обработки запросов HTTP Reverse
IVA SBC позволяет настроить правила для проксирования HTTP-запросов на различные внутренние сетевые адреса.
Чтобы IVA SBC выполняло обработку трафика HTTP Reverse, необходимо:
-
добавить правила фильтрации маршрутов HTTP Reverse, состоящие из набора фильтров, которые ограничивают или разрешают доступ к заданным URL-адресам
-
добавить маршруты HTTP Reverse, которые состоят из последовательного набора правил фильтрации маршрутов HTTP Reverse
-
добавить группу маршрутизации HTTP Reverse, которая состоит из упорядоченного списка маршрутов HTTP Reverse
-
назначить серверу проксирования роль HTTP Reverse и созданную группу маршрутизации HTTP Reverse
-
добавить SSL-сертификат сервера проксирования IVA SBC, необходимый для корректной работы сервера по протоколу SSL
-
обработка трафика HTTP Reverse на сервере проксирования выполняется в соответствии с правилами в назначенной группе маршрутизации HTTP Reverse
-
обработка HTTP-запросов выполняется в соответствии с последовательностью маршрутов, добавленных в группу маршрутизации HTTP Reverse
-
для каждого маршрута в группе маршрутизации HTTP Reverse при совпадении адреса запроса HOST c URL-адресом сервера, указанным в маршруте, последовательно проверяется список правил фильтрации маршрутов HTTP Reverse
-
для каждого правила фильтрации последовательно проверяются фильтры, входящие в него
-
если запрос попадает под фильтр, который настроен на проверку схемы, решение о разрешении или отклонении зависит от результата валидации:
-
если запрос соответствует схеме, запрос разрешается, и обработка завершается
-
если запрос не соответствует схеме, запрос отклоняется, и обработка завершается
-
-
если запрос попадает под фильтр, который настроен на проверку по заданным вручную параметрам, то при совпадении с фильтром выполняется действие, указанное в данном фильтре, и обработка завершается
-
если не найден подходящий фильтр, то запрос отклоняется
Файл с логами 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-запросов: нажать кнопку
-
редактировать описание правила фильтрации: нажать кнопку
и выбрать Редактировать
-
редактировать правило фильтрации входящего HTTP-запроса и его фильтров: нажать ссылку <Имя правила фильтрации>
-
импортировать правило фильтрации: нажать кнопку Импортировать
-
экспортировать правило фильтрации: нажать кнопку
и выбрать Экспортировать
-
удалить правило фильтрации: нажать кнопку
и выбрать Удалить
Добавление правила фильтрации HTTP-запросов
Чтобы добавить правило фильтрации, необходимо:
-
нажать кнопку Добавить
-
в окне Добавление правила: ввести Имя (рекомендуется вводить имя, которое кратко описывает назначение правила фильтрации (например IVA no admin)
-
нажать кнопку Добавить
После создания правила фильтрации необходимо настроить фильтры.
Созданные правила фильтрации добавляются в маршруты HTTP Reverse.
Редактирование описания правила фильтрации
Чтобы редактировать описание правила фильтрации, необходимо:
-
нажать кнопку
и выбрать Редактировать
-
в окне Редактирование правила внести изменения
-
нажать кнопку Сохранить
Экспортирование правила фильтрации
Чтобы экспортировать правило фильтрации с набором фильтров, необходимо:
-
нажать кнопку
и выбрать Экспортировать
-
файл в формате *.json с именем и настройками правила фильтрации сохранится в загрузке браузера
При экспорте правила фильтрации в JSON-файл сохраняются только фильтры с вручную заданными параметрами. Фильтры, использующие схемы проверки, не экспортируются |
Импортирование правила фильтрации
Правило фильтрации со всеми входящими в него фильтрами можно импортировать.
Перед импортированием правила фильтрации необходимо подготовить файл (в формате (*.json) с набором фильтров.
Чтобы импортировать правило фильтрации, необходимо:
-
нажать ссылку Импортировать
-
в окне Открытие выбрать файл в формате *.json и нажать кнопку Открыть
После импортирования будет создано новое правило фильтрации с именем, соответствующим имени файла, и набором фильтров из файла.
Добавление и редактирование фильтров для правила фильтрации маршрутов HTTP Reverse
Добавление и редактирование фильтров для правила фильтрации маршрута HTTP Reverse проводится на странице Информация о правиле фильтрации HTTP:
Перейти в раздел Маршруты HTTP Reverse, открыть вкладку Правила фильтрации и нажать ссылку <Имя правила фильтрации>
При работе на странице Информация о правиле фильтрации HTTP можно:
-
посмотреть список фильтров
-
добавить фильтр HTTP-запроса: нажать кнопку Добавить
-
редактировать описание правила фильтрации: нажать кнопку Редактировать
-
редактировать фильтр правила фильтрации HTTP: нажать кнопку
-
удалить правило фильтрации: нажать кнопку
и выбрать Удалить
-
удалить фильтр правила фильтрации HTTP: нажать кнопку
Добавление фильтра HTTP-запроса
Существует два способа фильтровать HTTP-запросы в IVA SBC:
-
фильтрация по заданным вручную параметрам — позволяет настроить гибкие правила для отдельных маршрутов
-
фильтрация по схеме проверки — позволяет проверять запросы на соответствие заранее загруженной схеме проверки
Чтобы добавить фильтр правила фильтрации маршрута HTTP Reverse по заданным вручную параметрам, необходимо:
-
нажать кнопку Добавить
-
в окне Добавление фильтра:
-
URL-путь: ввести URL-адрес (фиксированный или регулярное выражение (RegExp), для которого будет выполняться фильтрация, например
/administration/(.*)
будет охватывать все URL-адреса, связанные с администрированием. -
Метод:
-
Любой (ANY) — любой из перечисленных ниже
-
GET — запрашивает содержимое конкретного ресурса, получает данные и не может изменять эти данные
-
POST — создает новый ресурс из переданных данных в запросе
-
HEAD — запрашивает содержимое конкретного ресурса, в ответе получает только стартовую строку и заголовки
-
PUT — изменяет содержимое запроса по указанному URI
-
PATCH — изменяет только фрагмент ресурса по указанному URI
-
DELETE — удаляет конкретный ресурс по указанному URI
-
CONNECT — запускает двустороннюю связь с запрошенным ресурсом
-
OPTIONS — определяет возможности и используемые методы web-сервера
-
TRACE — возвращает служебную отладочную информацию
-
-
Действие:
-
Разрешить — разрешает доступ к указанному URL-адресу
-
Запретить — запрещает доступ к указанному URL-адресу
-
-
-
нажать кнопку Создать
Чтобы добавить фильтр правила фильтрации маршрута HTTP Reverse по схеме проверки, необходимо:
-
загрузить схему во вкладке Схемы проверки
-
нажать кнопку Добавить
-
в окне Добавление фильтра:
-
URL-путь: ввести URL-адрес (фиксированный или регулярное выражение (RegExp), для которого будет выполняться фильтрация.
Пример:/api/rest/.*
будет охватывать все клиентские REST-запросы IVA MCU, начинающиеся с/api/rest
и соответствующие указанной схеме. -
Схема проверки: выбрать загруженную схему для проверки запросов.
-
-
нажать кнопку Создать
Изменение порядка применения фильтров
Добавленные фильтры правил фильтрации маршрутов HTTP Reverse применяются в порядке очереди.
Чтобы изменить порядок применения фильтров, необходимо использовать кнопки:
-
для перемещения фильтра вверх
-
для перемещения фильтра вниз
Редактирование описания правила фильтрации
На странице Информация о правиле фильтрации HTTP можно редактировать правило фильтрации:
-
нажать кнопку Редактировать
-
в окне Редактирование правила внести изменения
-
нажать кнопку Сохранить
Редактирование фильтра правила фильтрации HTTP
На странице Информация о правиле фильтрации HTTP можно редактировать фильтр правила фильтрации HTTP:
-
выбрать фильтр, который необходимо редактировать, и нажать кнопку
-
в окне Редактирование фильтра внести изменения (описание полей приведено в разделе Добавление фильтра HTTP-запроса)
-
нажать кнопку Сохранить
Схемы проверки
IVA SBC позволяет проверять корректность входящих данных на основе заранее определенных схем проверки.
Типы схем проверки
Поддерживаются два типа схем проверки входящих данных:
-
OpenAPI-схемы — для проверки HTTP-запросов
-
JSON-схемы — для проверки входящих сообщений по WebSocket-соединениям
OpenAPI-схемы
OpenAPI-схема — это стандартизированное описание HTTP API. OpenAPI-схемы помогают определить, какие запросы поддерживает API, какие данные необходимы и каким образом они должны быть переданы.
Использование OpenAPI-схемы упрощает настройку правил фильтрации, так как схема уже содержит всю необходимую информацию о структуре и допустимых параметрах запросов.
При проверке GET-запросов по OpenAPI-схемам лишние query-параметры не вызывают ошибок валидации, даже если параметры не описаны в схеме. |
Добавление схем проверки
Добавить и настроить схемы для проверки запросов можно на вкладке Схемы проверки.
Для добавления схемы необходимо:
-
нажать кнопку Добавить
-
в окне Создание схемы:
-
Имя: ввести имя схемы
-
Тип схемы: выбрать тип схемы:
-
OpenAPI — если схема используется для проверки HTTP-запросов
-
JSON — если схема применяется для WebSocket-сообщений
-
-
Способ загрузки: выбрать один из способов загрузки схемы:
-
Вручную: выбрать файл схемы и прикрепить его
-
По URL: указать URL-адрес, по которому доступна схема
-
-
-
нажать кнопку Создать
Маршруты HTTP Reverse. Маршруты
Маршруты HTTP Reverse необходимы для установления связи внутреннего сервера и доменного имени, по которому к нему будут обращаться, с указанием применяемых правил фильтрации для обработки URL-запросов.
Маршруты HTTP Reverse позволяют указывать несколько адресов внутренних серверов. При проксировании IVA SBC распределяет HTTP‑запросы между всеми доступными серверами из списка. Если один из серверов недоступен, нагрузка автоматически перераспределяется на оставшиеся.
В разделе Маршруты HTTP Reverse на вкладке Маршруты отображаются добавленные маршруты HTTP Reverse, позволяющие связать обращения по URL и внутренний HTTP-сервис с применением заданных правил фильтрации.
При работе на вкладке Маршруты можно:
-
просмотреть список добавленных маршрутов
-
добавить маршрут HTTP Reverse: нажать кнопку Добавить
-
редактировать описание маршрута HTTP Reverse: нажать кнопку
и выбрать Редактировать
-
удалить маршрут HTTP Reverse: нажать кнопку
и выбрать Удалить
-
редактировать маршрут HTTP Reverse и его правила фильтрации: нажать ссылку <Имя маршрута>
-
добавлять и редактировать фильтры правила фильтрации: нажать ссылку <Имя правила фильтрации>
Добавление маршрута HTTP Reverse
Чтобы добавить маршрут HTTP Reverse, необходимо:
-
нажать кнопку Добавить
-
в окне Добавление маршрута ввести:
-
Имя: рекомендуется вводить имя, которое кратко описывает назначение маршрута (например IVA)
-
URL-адрес сервера: ввести внешний доменный адрес, по которому будет подключаться пользователь (например доменный адрес сервера IVA SBC ivcs.iva.ru)
-
Адреса внутренних серверов: ввести IP-адреса внутренних серверов, на которые будут проксироваться запросы:
-
нажать кнопку Добавить новый адрес для добавления дополнительного адреса
-
нажать кнопки
,
для перемещения адреса вверх или вниз
-
нажать кнопку
для удаления адреса
-
-
Health check: нажать переключатель для включения проверки работоспособности проксирования HTTP Reverse
-
URL путь: ввести относительный путь (например,
/health
). На этот путь HTTP Reverse Proxy будет отправлять GET-запросы, чтобы проверить доступность внутренних серверов -
Частота, сек: ввести интервал между запусками проверки в секундах от 10 до 86400
-
-
-
нажать кнопку Создать
После создания маршрута HTTP Reverse необходимо добавить в него правила фильтрации, которые будут применяться. Если правила фильтрации не добавить, то все запросы будут отклонены.
Редактирование маршрута HTTP Reverse и его правил фильтрации
Редактирование маршрута HTTP Reverse осуществляется на странице Информация о маршруте HTTP Reverse: в разделе Маршруты HTTP Reverse перейти на вкладку Маршруты и нажать ссылку <Имя маршрута>
При работе на странице Информация о маршруте HTTP Reverse можно:
-
посмотреть список правил фильтрации
-
добавить правило фильтрации в список правил фильтрации маршрута HTTP Reverse: нажать кнопку Добавить
-
редактировать описание правила фильтрации: нажать кнопку
-
удалить правило фильтрации из списка: нажать кнопку
Добавление правила фильтрации в список правил фильтрации маршрута HTTP Reverse
Чтобы добавить правило фильтрации в маршрут HTTP Reverse, необходимо:
-
нажать кнопку Добавить
-
в окне Добавление правила выбрать правило из ранее созданных (например, IVA no admin) и нажать кнопку Добавить
-
повторить добавление правил фильтрации, необходимых для данного маршрута
Изменение порядка применения правил фильтрации
Добавленные правила фильтрации применяются в порядке очереди.
Изменить порядок применения правил фильтрации можно двумя способами:
-
используя кнопки:
-
для перемещения правила вверх
-
для перемещения правила вниз
-
-
используя drag-and-drop:
-
навести курсор на кнопку перетаскивания фильтра
-
зажать левую кнопку мыши и перетащить фильтр в нужное положение
-