|
flightPATH
flightPATH - это технология управления трафиком, встроенная в ADC. flightPATH позволяет Вам проверять HTTP и HTTPS трафик в режиме реального времени и выполнять действия в зависимости от условий.
Правила flightPATH должны применяться к VIP, если в правилах используются объекты IP.
Правило траектории полета состоит из четырех элементов:
1. Details, где Вы определяете Имя flightPATH и Сервис, к которому он прикреплен.
2. Условие(я), которые могут быть определены, чтобы вызвать срабатывание правила.
3. Оценка, позволяющая определить переменные, которые могут быть использованы в рамках Действий
4. Действия, которые используются для управления тем, что должно произойти при выполнении условий
Подробности

В разделе "Подробности" показаны доступные правила flightPATH. В этом разделе Вы можете добавлять новые правила flightPATH и удалять определенные.
Добавление нового правила flightPATH

Поле
|
Описание
|
Имя FlightPATH
|
Это поле предназначено для имени правила flightPATH. Имя, которое Вы здесь указываете, появляется в других частях ADC и на него ссылаются.
|
Применяется к VS
|
Этот столбец доступен только для чтения и показывает VIP, к которому применяется правило flightPATH.
|
Описание
|
Значение, представляющее описание, предоставленное для удобства чтения.
|
Шаги для добавления правила flightPATH
1. Сначала нажмите кнопку Добавить новую, расположенную в разделе Подробности.
2. Введите имя для Вашего правила. Пример Auth2
3. Введите описание Вашего правила
4. Как только правило будет применено к службе, Вы увидите, что в колонке Applied To автоматически заполняются IP-адрес и значение порта
5. Не забудьте нажать кнопку Обновить, чтобы сохранить изменения, или, если Вы ошиблись, просто нажмите кнопку Отменить, чтобы вернуться к предыдущему состоянию.
Состояние
Правило flightPATH может содержать любое количество условий. Условия, работающие по принципу И, позволяют Вам установить условие, при котором срабатывает действие. Если Вы хотите использовать условие OR, создайте дополнительное правило flightPATH и примените его к VIP в правильном порядке.

Вы также можете использовать RegEx, выбрав Match RegEx в поле Check и значение RegEx в поле Value. Включение оценки RegEx значительно расширяет возможности flightPATH.
Создание нового условия flightPATH

Состояние
Мы предоставляем несколько Условий, предварительно заданных в выпадающем списке, которые охватывают все предусмотренные сценарии. Когда будут добавлены новые условия, они будут доступны через обновления Jetpack.
Доступны следующие варианты:
КОНДИЦИЯ
|
ОПИСАНИЕ
|
ПРИМЕР
|
<form>
|
HTML-формы используются для передачи данных на сервер
|
Пример "форма не имеет длины 0".
|
Местонахождение ГЕО
|
Сравнивает IP-адрес источника с кодами стран ISO 3166
|
ГЕО местоположение равно GB, ИЛИ ГЕО местоположение равно Германия
|
Хозяин
|
Хост, извлеченный из URL
|
www.mywebsite.com или 192.168.1.1
|
Язык
|
Язык, извлеченный из языкового HTTP-заголовка
|
Это условие приведет к появлению выпадающего списка с перечнем языков
|
Метод
|
Выпадающий список методов HTTP
|
Выпадающий список, включающий GET, POST и т.д.
|
Происхождение IP
|
Если восходящий прокси поддерживает X-Forwarded-for (XFF), он будет использовать истинный адрес происхождения
|
IP-адрес клиента. Он также может использовать несколько IP или подсетей.
10\.1\.2\.* - это 10.1.2.0 /24 подсеть10\
.1\.2\.3|10\.1\.2\.4 Используйте | для нескольких IP-адресов
|
Путь
|
Путь к сайту
|
/mywebsite/index.asp
|
ПОСТ
|
Метод запроса POST
|
Проверка данных, загружаемых на веб-сайт
|
Запрос
|
Имя и значение запроса, и может принимать либо имя запроса, либо также значение
|
"Best=jetNEXUS", где соответствие - Best, а значение - edgeNEXUS
|
Строка запроса
|
Вся строка запроса после символа ?
|
|
Запрос Cookie
|
Имя файла cookie, запрошенного клиентом
|
MS-WSMAN=afYfn1CDqqCDqUD::
|
Заголовок запроса
|
Любой заголовок HTTP
|
Referrer, User-Agent, From, Date
|
Версия для запроса
|
Версия HTTP
|
HTTP/1.0 ИЛИ HTTP/1.1
|
Орган реагирования
|
Определяемая пользователем строка в теле ответа
|
Сервер UP
|
Код ответа
|
Код HTTP для ответа
|
200 OK, 304 Not Modified
|
Ответное печенье
|
Имя файла cookie, отправленного сервером
|
MS-WSMAN=afYfn1CDqqCDqUD::
|
Заголовок ответа
|
Любой заголовок HTTP
|
Referrer, User-Agent, From, Date
|
Версия ответа
|
Версия HTTP, отправленная сервером
|
HTTP/1.0 ИЛИ HTTP/1.1
|
Источник IP
|
Либо IP-адрес источника, IP-адрес прокси-сервера, либо какой-то другой агрегированный IP-адрес
|
ClientIP
, Proxy IP, Firewall IP. Можно также использовать несколько IP и подсетей. Вы должны исключить точки, так как они являются RegEX. Пример 10\.1\.2\.3 - 10.1.2.3
|
Матч
Поле Match может быть выпадающим или текстовым и определяется в зависимости от значения в поле Condition. Например, если Условие установлено на Host, поле Match недоступно. Если Условие установлено на <form>, поле Match отображается как текстовое поле, а если Условие - POST, поле Match представлено как выпадающий список, содержащий соответствующие значения.
Доступны следующие варианты:
МАТЧ
|
ОПИСАНИЕ
|
ПРИМЕР
|
Принять
|
Типы содержимого, которые допустимы
|
Принять: текст/plain
|
Accept-Encoding
|
Допустимые кодировки
|
Accept-Encoding: <compress | gzip | deflate | sdch | identity>.
|
Accept-Language
|
Приемлемые языки для ответа
|
Язык приема: en-US
|
Accept-Ranges
|
Какие типы диапазонов частичного содержимого поддерживает этот сервер
|
Accept-Ranges: bytes
|
Авторизация
|
Учетные данные для аутентификации по протоколу HTTP
|
Авторизация: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
|
Зарядка -
|
Содержит информацию о расходах, связанных с применением запрашиваемого метода
|
|
Content-Encoding
|
Тип используемого кодирования
|
Content-Encoding: gzip
|
Content-Length
|
Длина тела ответа в октетах (8-битных байтах)
|
Content-Length: 348
|
Content-Type
|
Тип mime тела запроса (используется с запросами POST и PUT)
|
Content-Type: application/x-www-form-urlencoded
|
Печенье
|
HTTP cookie, ранее отправленный сервером с помощью Set-Cookie (ниже).
|
Cookie: $Version=1; Skin=new;
|
Дата
|
Дата и время, когда было отправлено сообщение
|
Дата = "Дата" ":" HTTP-дата
|
ETag
|
Идентификатор для конкретной версии ресурса, часто дайджест сообщения
|
ETag: "aed6bdb8e090cd1:0".
|
С сайта
|
Адрес электронной почты пользователя, делающего запрос
|
От: user@example.com
|
If-Modified-Since
|
Позволяет возвращать сообщение 304 Not Modified, если содержимое не изменилось
|
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
|
Last-Modified
|
Дата последнего изменения для запрашиваемого объекта, в формате RFC 2822
|
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
|
Pragma
|
Реализация: Специфические заголовки, которые могут иметь различные эффекты в любой точке цепочки запрос-ответ.
|
Pragma: no-cache
|
Реферрер
|
Адрес предыдущей веб-страницы, с которой была получена ссылка на текущую запрашиваемую страницу
|
Реферер: HTTP://www.edgenexus.io
|
Сервер
|
Имя для сервера
|
Сервер: Apache/2.4.1 (Unix)
|
Set-Cookie
|
HTTP-куки
|
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
|
User-Agent
|
Строка агента пользователя
|
User-Agent: Mozilla/5.0 (совместимый; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
|
Варьировать
|
Сообщает нижестоящим прокси-серверам, как сопоставить заголовки будущих запросов, чтобы решить,
можно ли
использовать кэшированный ответ, а не запрашивать новый
с исходного сервера.
|
Vary: User-Agent
|
X-Powered-By
|
Указывает технологию (например, ASP.NET, PHP, JBoss), поддерживающую веб-приложение
|
X-Powered-By: PHP/5.4.0
|
Чувства
Поле Sense является выпадающим булевым полем и содержит варианты Does или Doesn't.
Проверьте
Поле Проверка позволяет установить контрольные значения против Условия.
Доступны следующие варианты: Содержать, Конец, Равный, Существующий, Имеет длину, Соответствует RegEx, Соответствует списку, Начало, Превышает длину
ПРОВЕРЬТЕ
|
ОПИСАНИЕ
|
ПРИМЕР
|
Существовать
|
Здесь не важны детали условия, только то, что оно существует/не существует
|
Host - Does - Exist
|
Начало
|
Строка начинается со значения
|
Путь - Does - Start - /secure
|
Конец
|
Строка заканчивается значением
|
Путь - Делает - Конец - .jpg
|
Содержите
|
Строка содержит Значение
|
Заголовок запроса - Принимать - Есть - Содержит - изображение
|
Равный
|
Строка равна значению
|
Host - Does - Equal - www.jetnexus.com
|
Иметь длину
|
Строка имеет длину, равную значению
|
Host - Does - Have Length - 16www.jetnexus.com
= TRUEwww.jetnexus.co.uk
= FALSE
|
Соответствие RegEx
|
Позволяет Вам ввести полное регулярное выражение, совместимое с Perl
|
Origin IP - Does - Match Regex - 10\...* | 11\...*
|
Шаги для добавления условия
Добавить новое условие flightPATH очень просто. Пример показан выше.
1. Нажмите кнопку Добавить новую в области Условие.
2. Выберите условие из выпадающего списка. В качестве примера возьмем Хост. Вы также можете ввести текст в поле, и ADC покажет значение в выпадающем списке.
3. Выберите чувство. Например, Does
4. Выберите Проверку. Например, Содержать
5. Выберите значение. Например, mycompany.com

Приведенный выше пример показывает, что есть два условия, которые оба должны быть ИСТИНОЙ, чтобы правило было выполнено
· Первое - это проверка того, что запрашиваемый объект является изображением
· Второй проверяет, является ли хост в URL www.imagepool.com.
Оценка
Возможность добавлять определяемые переменные является привлекательной возможностью. Обычные АЦП предлагают такую возможность, используя сценарии или опции командной строки, которые не являются идеальными для всех. АЦП позволяет Вам определить любое количество переменных с помощью простого в использовании графического интерфейса, как показано и описано ниже.
Определение переменной flightPATH состоит из четырех записей, которые необходимо сделать.
· Переменная - это имя переменной
· Источник - выпадающий список возможных точек источника
· Деталь - выберите значения из выпадающего списка или наберите вручную.
· Значение - значение, которое хранит переменная, может быть буквенно-цифровым значением или RegEx для точной настройки.
Встроенные переменные:
Встроенные переменные уже жестко закодированы, поэтому Вам не нужно создавать для них оценочную запись.
Вы можете использовать любую из переменных, перечисленных ниже в разделе "Действие".
Объяснение каждой переменной находится в таблице "Условия" выше.
· Метод = $method$
· Path = $path$
· Querystring = $querystring$
· Sourceip = $sourceip$
· Код ответа (текст также включает "200 OK") = $resp$
· Host = $host$
· Версия = $version$
· Клиентский порт = $clientport$
· Clientip = $clientip$
· Геолокация = $geolocation$"
ДЕЙСТВИЕ
|
ЦЕЛЬ
|
Действие = Перенаправление 302
|
Цель = HTTPs://$host$/404.html
|
Действие = Журнал
|
Target = Клиент из $sourceip$:$sourceport$ только что сделал запрос $path$ page
|
Объяснение:
· Клиент, обращающийся к несуществующей странице, обычно получает в браузере страницу "Ошибка 404".
· Вместо этого пользователь перенаправляется на исходное имя хоста, которое он использовал, но неверный путь заменяется на 404.html
· В Syslog добавляется запись: "Клиент с 154.3.22.14:3454 только что запросил страницу wrong.html".
Действие
Следующим этапом процесса является добавление действия, связанного с правилом и условием flightPATH.

В этом примере мы хотим переписать часть пути URL, чтобы отразить URL, набранный пользователем.
· Нажмите кнопку Добавить новый
· Выберите Переписать путь из выпадающего меню Действие
· В поле Цель введите $path$/myimages
· Нажмите Обновить
Это действие добавит /myimages к пути, так что окончательный URL станет www.imagepool.com/myimages.
Применение правила flightPATH
Применение любого правила flightPATH осуществляется на вкладке flightPATH каждого VIP/VS.

· Перейдите в раздел Services > IP Services и выберите VIP, которому Вы хотите назначить правило flightPATH.
· Вы увидите список реальных серверов, показанный ниже
· Перейдите на вкладку flightPATH
· Выберите правило flightPATH, которое Вы настроили, или одно из предварительно созданных правил. При необходимости Вы можете выбрать несколько правил flightPATH.
· Перетащите выбранный набор в раздел Applied flightPATHs или нажмите кнопку со стрелкой >>.
· Правило будет перемещено в правую часть и автоматически применено.