В материале Триада безопасной ИТ-инфраструктуры – Конфиденциальность, Целостность в качестве основных технологий обеспечения отказоустойчивости для данных указаны Защита с помощью RAID. Шифрование данных и управление ключом. Стратегии создания копий и восстановления. Каким образом шифрование обеспечивает отказоустойчивость? |
Приоритезация трафика и создание альтернативных маршрутов
5.1 Создание альтернативных маршрутов доступа в интернет
5.1.1 Альтернативные таблицы маршрутизации
Стандартная маршрутизация отправляет пакеты в зависимости от IP-адреса получателя в соответствии с информацией, полученной из статических или динамических протоколов маршрутизации.
Policy-based Routing (PBR) маршрутизация предоставляет более гибкие возможности определения правил маршрутизации на основе большего количества критериев, используя для этого альтернативные таблицы маршрутизации.
PBR-маршрутизация может быть следующих типов:
Маршрутизация на основе адреса и порта источника | Таблицы маршрутизации выбираются на основе адреса источника. При наличии нескольких интернет-провайдеров с помощью PBR можно направлять трафик разных пользователей к разным ISP. Например, трафик из одного диапазона адресов может передаваться через одного ISP, а трафик из другого диапазона адресов передаваться через другого ISP. |
Маршрутизация на основе сервиса | Таблицы маршрутизации выбираются на основе сервисов. Например, PBR может маршрутизировать пакеты конкретного протокола через соответствующий прокси-сервер. Также возможно, чтобы отдельные сервисы маршрутизировались через определенное подключение к интернету. |
Маршрутизация на основе идентификатора пользователя | Таблицы маршрутизации выбираются на основе идентификатора пользователя или группы, к которой он принадлежит. Данный метод удобно использовать в распределенной корпоративной сети, объеденной с помощью арендованных ISP-каналов. |
Создание альтернативных маршрутов основано на следующих принципах.
В дополнение к основной таблице маршрутизации main, созданной по умолчанию, можно определить несколько альтернативных таблиц маршрутизации.
Для выбора конкретной таблицы маршрутизации используются Routing Rules, в которых указывается соответствие между типом трафика и используемой для его маршрутизации таблицей.
Альтернативные таблицы маршрутизации содержат информацию, аналогичную информации в таблице main, а также дополнительный параметр Ordering, который определяет порядок просмотра данной таблицы маршрутизации и таблицы main.
5.1.2 Правила выбора таблицы маршрутизации
Для выбора таблицы маршрутизации используется так называемая "маршрутизация на основе правил" – "Policy-based Routing" (PBR).
Таблица маршрутизации выбирается с помощью правил маршрутизации – Routing Rules. Эти правила определяют, какую таблицу маршрутизации следует использовать для конкретного типа трафика. Тип трафика может задаваться набором сервисов (например, HTTP) или интерфейсом источника/назначения и сетью источника/назначения.
Записи Routing Rules упорядочены, используется первое правило, параметры в котором соответствуют параметрам пакета.
Рассмотрим выбор маршрута на следующем примере. Предположим, что сеть имеет следующую топологию.
С хостов, расположенных в DMZ, доступ в интернет необходимо выполнять через ISP 1, т.е. через интерфейс wan1 маршрутизатора.
С хостов, расположенных в LAN, доступ в интернет необходимо выполнять через ISP 2, т.е. через интерфейс wan2 маршрутизатора.
Когда маршрутизатор получает пакет, относящийся к новому соединению, то выбор таблицы маршрутизации происходит следующим образом: Определяется интерфейс назначения, используя таблицу main. В ней должен существовать либо маршрут для сети назначения, либо маршрут по умолчанию (сеть назначения – all-nets), который будет определять интерфейс назначения в случае, если более точный маршрут не будет найден.
В нашем примере будет использоваться маршрут по умолчанию, интерфейсом назначения, для которого является wan2.
- Осуществляется поиск правила в Routing Rules, соответствующего параметрам пакета: интерфейс и сеть источника/назначения и протокол/сервис. Если подходящее правило найдено, то для определения маршрута используется указанная таблица маршрутизации. Если подходящее правило не найдено, то используется таблица main.
В нашем примере будет использоваться таблица altInet.
После того, как выбрана необходимая таблица маршрутизации, выполняется проверка доступности IP-адреса источника с входящего интерфейса. Ищется соответствие с правилами доступа (Access Rules). Если нет ни одного правила доступа, или не найдено соответствие параметров пакета ни одному из правил доступа, то в выбранной таблице маршрутизации осуществляется поиск маршрута к IP-адресу источника. Если маршрут не найден, в журнал записывается сообщение об ошибке "Default access rule".
В выбранной таблице маршрутизации осуществляется поиск маршрута, по которому пакет будет отправлен. Последовательность, в которой просматриваются выбранная таблица и таблица main, зависит от параметра Ordering, который определяется для каждой альтернативной таблицы.
увеличить изображение
Рис. 5.4. Определение последовательности просмотра выбранной таблицы маршрутизации и таблицы main- Default – по умолчанию маршрут ищется сначала в основной таблице маршрутизации main. Если соответствующий маршрут не найден или найден маршрут с сетью назначения all-nets (0.0.0.0/0), то осуществляется поиск в альтернативной таблице. Если соответствующий маршрут в альтернативной таблице не найден, то будет использоваться маршрут по умолчанию из таблицы main.
- First – в этом случае поиск маршрута осуществляется сначала в альтернативной таблице маршрутизации. Если соответствующий маршрут не найден, то поиск осуществляется в таблице main. Если в альтернативной таблице маршрутизации найден маршрут с сетью назначения all-nets (0.0.0.0/0), то используется этот маршрут.
- Only – маршрут ищется только в выбранной альтернативной таблице. Данная опция позволяет создавать виртуальные системы, каждая из которых использует свою таблицу маршрутизации.
- После того, как маршрут найден, соединение обрабатывается обычным образом набором IP-правил фильтрования. В частности, если правилами фильтрования определяется, что должно использоваться правило преобразования адреса, например, SAT, то это преобразование выполняется после выбора таблицы маршрутизации. Важно подчеркнуть, что поиск маршрута для определения интерфейса назначения осуществляется в выбранной альтернативной таблице с еще не преобразованным адресом.
увеличить изображение
Рис. 5.6. Правила фильтрования трафика, маршрутизируемого альтернативной таблицей - Если проверка IP-правилами фильтрования прошла успешно, то в таблице состояний системы открывается новое соединение, и пакет передается по этому соединению.
увеличить изображение
Рис. 5.8. Проверка, что соединение из dmz-сети установлено через интерфейс wan1
увеличить изображение
Рис. 5.10. Проверка, что соединение из dmz-сети установлено через интерфейс wan1
5.2 Приоритезация трафика
Рассмотрим основные принципы приоритезации трафика и обеспечение качества обслуживания в системе NetDefendOS:
- Основные способы ограничения (шейпинга) трафика.
- Шейпинг трафика на основе правил IDP.
- Правила порога.
5.2.1 Ограничение (шейпинг) трафика
Гарантирование качества сервиса и TCP/IP
Недостатком TCP/IP является отсутствие возможности гарантировать определенное качество сервиса (Quality of Service – QoS). Под QoS понимается возможность гарантировать определенные сервисы и ограничить полосу пропускания как для определенных сервисов, так и для определенных пользователей. Для крупных сетей были разработаны такие решения, как архитектура дифференцированного обслуживания – Differentiated Services (Diffserv), которые используют информацию в заголовках пакетов.
Поддержка Diffserv в NetDefendOS
NetDefendOS поддерживает архитектуру Diffserv следующими способами:
- NetDefendOS передает 6 битов значения кода дифференцированного обслуживания (Differentiated Services Code Point (DSCP) – Diffserv), и копирует эти биты из заголовка данных внутри VPN-туннеля в инкапсулирующие пакеты.
- Подсистема шейпинга трафика NetDefendOS может использовать DSCP-биты как основу для приоритезации трафика, проходящего через межсетевой экран.
Подсистема шейпинга трафика в NetDefendOS не изменяет информацию в поле Diffserv в пакетах во время их прохождения через межсетевой экран. Приоритеты шейпинга трафика NetDefendOS, описанные далее, используются только в самой системе NetDefendOS и не изменяют информацию Diffserv, хранящуюся в пакетах.
Основные принципы шейпинга трафика
Обычно такие способы ограничения трафика, как архитектура Diffserv, не используются, если приложение само предоставляет информацию о требуемом качестве обслуживания. Однако в большинстве случаев приложения и пользователи не назначают приоритет собственному трафику, а приоритеты и распределения полосы пропускания задает администратор на сетевом оборудовании.
NetDefendOS обеспечивает QoS, позволяя администратору указывать приоритеты для сервисов и обеспечивать гарантии полосы пропускания. Этот подход называется шейпингом трафика (traffic shaping) и идеально подходит для управления полосой пропускания в локальной сети, а также для управления трафиком в "узких" местах, которые могут образоваться в крупных сетях. Шейпинг применяется к любому типу трафика, включая трафик, проходящий через VPN-туннели.
При выполнении шейпинга выполняется сравнение значений определенных полей IP-заголовка с параметрами, указанными в конфигурации, и постановка IP-пакетов в очередь в соответствии с этими значениями. Шейпинг реализован с помощью следующих механизмов:
- Ограничение полосы пропускания и постановка в очередь пакетов, превышающих установленные ограничения. Пересылка данных пакетов будет выполнена позже, когда станет доступна необходимая полоса пропускания.
- Отбрасывание пакетов, если буфер пакетов переполнен. Отбрасываются именно те пакеты, которые вызвали перегрузку канала.
- Приоритезация трафика в соответствии с конфигурационными параметрами, указанными администратором. Если количество трафика с более высоким приоритетом увеличивается, и канал перегружен, то трафик с более низким приоритетом может быть временно ограничен, чтобы обеспечить прохождение трафика с более высоким приоритетом.
- Гарантирование полосы пропускания. Как правило это достигается с помощью того, что определенному количеству трафика присваивается максимальный приоритет. Остальному трафику, который превышает это количество, назначается такой же приоритет, как и любому другому трафику.
Обычно шейпинг трафика не ставит в очередь большое количество данных с последующей отсортировкой приоритетного трафика для его отправки перед неприоритетным. Вместо этого подсчитывается количество приоритетного трафика, а неприоритетный трафик ограничивается динамически таким образом, чтобы не препятствовать прохождению приоритетного трафика.
Шейпинг трафика в NetDefendOS
NetDefendOS предоставляет расширенные возможности шейпинга трафика для пакетов, проходящих через межсетевой экран. Различные ограничения скорости и гарантии предоставления сервисов и полосы пропускания трафика могут быть указаны в виде политик, в которых параметрами являются протокол, источник и получатель трафика, аналогично параметрам создания политик фильтрования трафика.
Существует два основных компонента, с помощью которых задается шейпинг трафика:
- Каналы (Pipes)
- Правила каналов (Pipe Rules)
Каналы (Pipes)
- Канал является объектом, с помощью которого задаются возможные приоритеты трафика, используемые для ограничения и/или гарантирования полосы пропускания для трафика. Трафик направляется в данный канал с помощью правил канала.
- Трафик может проходить через несколько каналов. Это определяется правилами каналов. Ограничение и/или гарантирование полосы пропускания может быть установлено как для первого канала, так и для последующих.
- Может быть включена функция динамической балансировки, которая позволяет равномерно распределить полосу пропускания между всеми участниками.
Канал является основным объектом, для которого выполняется шейпинг трафика. Канал представляет собой логический канал, через который проходит поток данных. Различные характеристики канала определяют способ обработки проходящего через него трафика. К характеристикам канала в первую очередь относится общая пропускная способность канала.
Трафику, проходящему через канал, присваивается определенный приоритет. Для каждого приоритета может быть указана гарантированная полоса пропускания.
увеличить изображение
Рис. 5.12. Задание гарантированной полосы пропускания для трафика с определенным приоритетом
И пропускная способность канала, и гарантированная полоса пропускания указываются либо в килобайтах в секунду, либо в пакетах в секунду. Если указано оба ограничения, то реальным ограничением является первое достигнутое трафиком значение. Количество необходимых каналов определяет администратор. По умолчанию не задан ни один канал.
Особенность использования каналов заключается в том, что ни тип, ни направление проходящего трафика на уровне параметров канала явно не указывается. Для канала определяется только количество данных, проходящих через него.
Теоретически одновременно могут существовать сотни каналов, но в большинстве случаев достаточно нескольких каналов. Десятки каналов могут потребоваться в том случае, если необходимо для отдельных протоколов использовать отдельные каналы. Большое количество каналов может также потребоваться, если для каждого клиента интернет-провайдером должен быть выделен отдельный канал.
Правила каналов (Pipe Rules)
Правило каналов определяет, какой трафик направляется в какой канал. В каждом правиле канала указывается интерфейс/сеть источника/назначения, а также сервисы, к которым применяется правило. Одно или несколько Правил канала составляют множество Правил канала.
После того как правило фильтрования разрешает установление нового соединения, выполняется поиск соответствующего правила канала.
Правила канала проверяются так же, как правила фильтрования, сверху вниз. Используется первое правило, которому соответствуют параметры пакета. Если пакет не соответствует ни одному из правил канала, то он не является объектом шейпинга трафика и может использовать любую доступную полосу пропускания.
При создании правила канала перечисляются используемые в этом правиле каналы и указывается направление трафика в каждом канале. Списки каналов образует так называемые цепочки каналов (chain). Цепочки бывают двух типов: каналы для входящего трафика образуют Return Chain, каналы для исходящего трафика образуют Forward Chain.
Если указан только один канал, то характеристики данного канала применяются к трафику. Если указано несколько каналов, то эти каналы формируют цепочку каналов, через которые пройдет трафик. Максимальное количество каналов в цепочке – 8.
Обход шейпинга трафика
Если в правиле не указано ни одного канала, то трафик, соответствующий параметрам правила, не будет проходить ни через какой канал. Это означает, что к данному трафику не будут применяться никакие ограничения, указанные для каналов.
Это обеспечивает исключение определенного трафика из обработки подсистемой шейпинга. Такие правила не обязательно должны присутствовать, использовать такие правила следует очень аккуратно, так как, особенно если они находятся в начале списка правил каналов, это может привести к тому, что последующие правила применяться не будут.
Каналы и IP-правила фильтрования FwdFast
Следует заметить, что шейпинг трафика нельзя применять к трафику, к которому применялись правила фильтрования FwdFast.
Причина заключается в том, что шейпинг трафика выполняется с помощью механизма поддержки состояний (state engine), который отслеживает состояние соединений. IP-правила FwdFast не направляют пакеты в эту подсистему.
Приоритеты
Приоритет по умолчанию
Объем передаваемых данных указывается либо для определенного Приоритета, либо для определенной Группы.
Всем пакетам, которые проходят через каналы шейпинга трафика, присваивается определенный Приоритет (Precedence). С помощью приоритетов указывается как общая пропускная способность канала, так и гарантированная полоса пропускания для каждого приоритета.
увеличить изображение
Рис. 5.17. Использование приоритетов для задания пропускной способности канала и гарантирования полосы пропускания
Если приоритет не указан, то у всех пакетов один и тот же приоритет по умолчанию – 0.
Уровни приоритетов
Существует восемь приоритетов, пронумерованных от 0 до 7. Приоритет 0 – наименьший приоритет, 7 – наибольший приоритет. Приоритет можно считать отдельной очередью трафика: трафик с приоритетом 2 будет отправлен раньше трафика с приоритетом 0, а трафик с приоритетом 4 перед трафиком с приоритетом 2.
Значение приоритета является относительным. При определении очередности прохождения трафика имеет значение только относительное значение приоритета трафика. Например, если используются два приоритета, то назначение приоритетов 4 и 6 вместо 0 и 3 не влияет на конечный результат.
Способ назначения приоритета трафику указывается в правиле канала. Приоритет трафика может определяться одним из трех способов:
-
Использование приоритета канала, который является первым при прохождении пакета
Каждый канал обладает приоритетом по умолчанию, и приоритет пакетов определяется приоритетом того канала, через который они проходят первым.
-
Использование фиксированного приоритета
Приоритет пакетов явно указывается в правиле.
-
Использование DSCP-битов
Приоритет пакетов определяется значением DSCP-битов в пакете. DSCP является элементом архитектуры Diffserv, а биты Type of Service (ToS) являются частью заголовка IP-пакета.
Назначение приоритета для канала
При создании канала можно указать значения приоритета по умолчанию (Default Precedence), минимального приоритета (Minimum Precedence) и максимального приоритета (Maximum Precedence).
Приоритет по умолчанию – это приоритет, назначаемый пакету, в случае, если правилом канала трафику назначен приоритет первого канала.
Минимальный и максимальный приоритеты определяют диапазон приоритетов, который будет использовать канал. Если приоритет, указанный в пакете, меньше минимального приоритета канала, то его приоритет меняется на этот минимальный приоритет канала. Аналогично, если приходит пакет с приоритетом, больше максимального приоритета канала, его приоритет меняется на максимальный приоритет канала.
Гарантирование полосы пропускания для канала
Для канала можно дополнительно указать гарантирование полосы пропускания для каждого приоритета. Это гарантирование может быть указано в килобитах в секунду и/или пакетах в секунду (если указаны оба значения, то будет использоваться меньшее).
Указанная в значении приоритета полоса пропускания будет предоставлена за счет урезания полосы пропускания для канала с меньшим приоритетом. Если количество трафика, передаваемое по каналу, превысило указанное значение полосы пропускания, то оставшийся трафик получает наименьший приоритет.
Наименьший приоритет имеет особое значение: он действует как Приоритет негарантированной доставки (Best Effort). Все пакеты с данным приоритетом обрабатываются в порядке поступления при наличии полосы пропускания.
Пакеты с приоритетом выше, чем приоритет негарантированной доставки, и превысившие значение количества трафика, установленное для своего приоритета, автоматически получают наименьший приоритет и обрабатываются так же как остальные пакеты с наименьшим приоритетом.
Рассмотрим способ ограничения трафика с наименьшим приоритетом.
Как правило, нет необходимости в указании ограничения для трафика с наименьшим приоритетом, так как этот приоритет использует всю свободную часть полосы пропускания, не используемую трафиком с более высокими приоритетами. Тем не менее, можно указать ограничение, если необходимо ограничить полосу пропускания, используемую для трафика с наименьшим приоритетом. Это может потребоваться в случае, если определенный тип трафик всегда получает наименьший приоритет, но, тем не менее, ему необходимо ограничить использование полосы пропускания.
Приоритеты применяются только при заполнении канала.
Указание приоритета не имеет значения, если не достигнуто общее ограничение на количество трафика, указанное для канала. Это происходит потому, что пока не достигнуто заполнение канала, между приоритетами нет конкуренции.
При заполнении канала трафик передается в соответствии с приоритетом: пакеты с высоким приоритетом, количество которых не превышает ограничение на трафик, указанное для данного приоритета, отправляются перед пакетами с более низким приоритетом. Пакеты с более низким приоритетом до момента отправки помещаются в буфер. Если объема буфера недостаточно, пакеты отбрасываются.
Если общее ограничение на трафик для канала не указано, то это равнозначно тому, что канал имеет неограниченную пропускную способность и, следовательно, никогда не может быть заполнен. В этом случае использование приоритетов не имеет смысла.
Проблема может возникнуть в случае, если трафик, которому присвоен достаточно высокий приоритет, представляет собой непрерывный поток данных, например, аудио в режиме реального времени, что приводит к непрерывному использованию всей доступной полосы пропускания и длительному времени ожидания в очереди других сервисов, таких как http-трафик, dns-трафик или ftp-трафик. Для решения этой проблемы требуется возможность выделения некоторой части полосы пропускания для менее приоритетного трафика. Для этого используется гарантирование полосы пропускания (Bandwidth Guarantees).
Использование групп в канале
Система NetDefendOS обеспечивает дополнительный уровень управления приоритезацией благодаря возможности разделить полосу пропускания канала между отдельными пользователями, объединенными в группы и определить для каждой группы ограничение трафика и/или гарантию полосы пропускания.
Отдельных пользователей можно разбить на группы по нескольким критериям. Критерием принадлежности пакетов одной группе может быть один из следующих параметров:
- IP-адрес источника
- IP-адрес назначения
- Сеть источника
- Сеть назначения
- Порт и IP-адрес источника
- Порт и IP-адрес назначения
- Интерфейс источника
- Интерфейс назначения
Для создания группы следует установить опцию Grouping. После этого появляется возможность установить ограничение на трафик и/или гарантию полосы пропускания для отдельных групп. Например, если группа основана на IP-адресе источника, то принадлежность группе определяется IP-адресом источника.
Если создание группы основано на номере порта, то при этом используется также и IP-адрес. Это означает, что порт 1024 компьютера А отличается от порта 1024 компьютера Б. В данном случае отдельный участник в группе идентифицируется по номеру порта и IP-адресу.
При создании групп на основе сети требуется указывать размер сети, который указывается в виде маски подсети.
Указание ограничений для группы
После выбора способа создания группы необходимо указать Ограничения на группу (Group Limits). Данные ограничения могут состоять из одного или двух значений:
-
Суммарное ограничение трафика для всей группы
Данное значение указывает ограничение для каждого пользователя в созданной группе. Например, если создание группы выполняется по IP-адресу источника, и общее ограничение – 100 кбит/с, то это означает, что трафик с одного IP-адрес не сможет получить более 100 Кбит/с полосы пропускания.
-
Гарантия полосы пропускания для трафика группы, имеющего определенный приоритет
В дополнение ограничению трафика на уровне группы можно задать гарантии полосы пропускания трафика, имеющего определенный приоритет. Например, если для приоритета 3 указано значение 50 кбит/с, то каждому отдельному участнику (другими словами, каждому IP-адресу источника, если выбрано создание группы именно по этому признаку) с этим приоритетом будет гарантировано 50 кбит/с за счет урезания трафика с более низким приоритетом.
Приоритеты для каждого пользователя необходимо назначить в правиле канала, установки которого соответствуют параметрам данного пользователя. Например, если группа создается по IP-адресу источника, то различные правила каналов будут соответствовать различным IP-адресам и отправлять трафик в один и тот же канал с заданным приоритетом.
В некоторых случаях суммарный объем трафика, указанный для приоритетов, может быть больше, чем пропускная способность канала. Поэтому при использовании гарантированной полосы пропускания важно указать общую величину пропускной способности канала.
Возможно одновременное использование общего ограничения трафика для группы и гарантирование полосы пропускания для отдельных участников группы с разными приоритетами. Это означает, что:
- Каждому участнику в группе сначала присваивается определенный приоритет правилами канала.
- В соответствии с этим приоритетом участникам гарантируется указанная для приоритета полоса пропускания.
- Весь суммарный трафик группы вне зависимости от приоритетов ограничивается значением, установленным для всей группы.
Одновременное использование ограничений для каналов и групп
Предположим, что опция создания группы включена с помощью выбора одного из параметров создания группы, например, IP-адреса источника, и некоторые значения приоритетов указаны на вкладке Group Limits. Рассмотрим, как эти значения сочетаются со значениями, указанными для соответствующих приоритетов на вкладке Pipe Limits.
В данном случае значение приоритета на вкладке Group Limits является гарантией полосы пропускания, а значение для того же приоритета на вкладке Pipe Limits является ограничением количества трафика. Например, если трафик группируется по IP-адресу источника, и на вкладке Group Limits для приоритета 5 задано значение 5 Кбит/с, а на вкладке Pipe Limits приоритету 5 присвоено значение 20 Кбит/с, то после появления трафика с четвертого IP-адреса источника будет достигнуто ограничение количества трафика для данного приоритета (4 х 5 = 20 Кбит/с), в результате после этого гарантии полосы пропускания не смогут предоставляться.
Динамическая балансировка
Вместо указания ограничения в Group Limits можно включить опцию Dynamic Balancing. Это обеспечит одинаковое разделение полосы пропускания между всеми участниками независимо от их количества. Это будет означать ограничение для канала.
Если при включенной опции динамической балансировки также задано общее групповое ограничение 100 бит/с, то это также будет означать, что ни один участник группы не сможет получить больше данной величины полосы пропускания.
Приоритеты и динамическая балансировка
Как отмечалось ранее, помимо указания общего ограничения группы можно указать ограничения для каждого приоритета в рамках группы. Если в групповых ограничениях для приоритета 2 мы указываем значение 30 кбит/с, то это означает, что участникам с приоритетом 2 по правилу канала будет гарантировано 30 бит/с, независимо от количества участников, использующих канал. Так же как в случае обычных приоритетов канала, трафик, превысивший 30 кбит/с для участников с приоритетом 2, будет понижен до значения приоритета негарантированной доставки.
Можно также установить ограничение на величину гарантированной полосы пропускания, которую получит каждый участник для входящего трафика. Это помешает одному участнику занять всю доступную высокоприоритетную полосу пропускания.
Динамическая балансировка выполняется отдельно для каждого приоритета. Это означает, что если на всех участников выделено определенное, но небольшое количество трафика с высоким приоритетом и более широкая полоса пропускания для трафика негарантированной доставки, все участники получат равные доли как высокоприоритетного графика, так и трафика негарантированной доставки.
Общие принципы использования шейпинга трафика
Важно указывать общее ограничение пропускной способности канала
Реальное ограничение трафика выполняется только в том случае, когда канал заполнен. Канал считается заполненным, если через него проходит трафик, количество которого равно значению, указанному в общем ограничении пропускной способности канала. Если для канала установлено общее ограничение пропускной способности в 500 кбит/с, но в текущей момент времени по нему проходит 400 кбит/с трафика с низким приоритетом и 90 кбит/с высокоприоритетного трафика, то остается 10 кбит/с полосы пропускания, поэтому нет необходимости урезать какой-либо из типов трафика. Поэтому важно указать общее ограничение для канала, чтобы механизму шейпинга была известна пропускная способность, и значения, указанные для приоритетов, учитывались.
Ограничения каналов для VPN
При выполнении шейпинга измеряется количество трафика внутри VPN-туннелей. Измеряется количество незашифрованных данных без дополнительных данных, добавляемых тем или иным протоколом VPN. Таким образом, измеряемый трафик будет меньше по объему, чем фактический VPN-трафик. VPN-протоколы, например IPSec, могут добавлять значительный объем к исходным данным, и по этой причине рекомендуется установить ограничение для каналов для VPN-трафика примерно на 20% меньше реальной полосы пропускания.
Использование ограничения на группу
Особым случаем является ситуация, когда общее ограничение пропускной способности канала не указано, и вместо этого используется ограничение на группу. В этом случае ограничение полосы пропускания можно указать для отдельного пользователя, если, например, пользователи должны получать фиксированную долю от общей полосы пропускания. Интернет-провайдер может использовать этот подход для ограничения полосы пропускания отдельного пользователя, выбрав создание группы с помощью опции Destination IP. Факт заполнения канала в данном случае не важен, так как на каждого пользователя наложено ограничение. Если были задействованы приоритеты, то будет использоваться максимальная пропускная способность канала.
Значения ограничений пропускной способности не должны превышать значения реальной полосы пропускания
Если заданное ограничение канала больше, чем реальная полоса пропускания, механизм шейпинга не сможет определить, что объем трафика достигло своих физических пределов. Если физический предел полосы пропускания 500 кбит/с, но в качестве общего ограничения канала указано 600 кбит/с, механизм шейпинга будет полагать, что канал не заполнен, вследствие чего не будет урезать низкоприоритетный трафик.
Значения ограничений должны быть немного меньше значения реальной полосы пропускания
Ограничения каналов должны быть немного меньше полосы пропускания сети. Рекомендуемым значением ограничения канала является 95% от общего физического ограничения. Необходимость этой разницы уменьшается по мере увеличения полосы пропускания, так как 5% представляют собой все более увеличивающуюся долю общей полосы пропускания.
Причина уменьшения значения ограничения канала связана с методами обработки трафика системой NetDefendOS. Для исходящих соединений, когда пакеты отправляются межсетевым экраном, всегда существует вероятность, что NetDefendOS может немного перегрузить соединение, так как программные модули, отправляющие пакеты, работают с некоторыми задержками относительно фактической отправки пакетов из буферов.
Для входящих соединений требуется меньше обработки входящих пакетов и, в частности, подсистемой шейпинга трафика, и поэтому можно задать ограничения канала не намного ниже реального ограничения соединения.
Атаки на полосу пропускания
Шейпинг трафика не защищает от атак, расходующих ресурсы, например, DoS-атак или других flood-атак. Система предотвращает, чтобы такие пакеты достигли хостов за межсетевым экраном, но не может защитить соединение от перегрузки, если происходит flood-атака.
Контроль, что весь трафик обрабатывается системой шейпинга
При использовании шейпинга трафика в самом "узком месте" сети, следует убедиться, что весь трафик, проходящий через это "узкое место", попадает в определенные каналы.
Если трафик проходит через какой-либо интерфейс и не направляется в канал, то система шейпинга не сможет определить, когда этот трафик полностью заполнил канал.
Краткая информация по шейпингу трафика
Шейпинг трафика предоставляет набор инструментов для управления и приоритезации сетевых пакетов. Общие принципы работы данного механизма следующие:
- Необходимо указать обрабатываемый трафик, используя правила канала (Pipe Rules).
- Правила канала направляют трафик в каналы (Pipes).
- Для канала можно задать ограничение, определяющее максимальное количество трафика, которое может быть передано по каналу.
- Канал может определить, что он заполнен, только если указано ограничение трафика в канале.
- Один канал должен обрабатывать трафик только в одном направлении (хотя допустимы двунаправленные каналы).
- Каналы могут быть объединены в цепочки. В этом случае трафик из одного канала попадает в другой.
- Определенные типы трафика в канале могут иметь определенный приоритет.
- Для приоритета может быть указано значение, которое является гарантией полосы пропускания. Трафик, превысивший это значение, будет иметь минимальный приоритет, который также называется приоритетом негарантированной доставки (Best Effort).
- Все пакеты с приоритетом негарантированной доставки обрабатываются в порядке живой очереди.
- В пределах канала трафик может быть разделен на группы (Group) по различным параметрам, например, по IP-адресу источника. Каждый участник в группе (т.е. в нашем случае каждый IP-адрес источника) имеет ограничение максимального значения полосы пропускания и приоритет, которые назначены группе.
- Нет необходимости задавать ограничение канала, если указано ограничение для группы.
- Динамическая балансировка может использоваться для указания того, что все участники в группе получают одинаковое количество полосы пропускания.
5.2.2 Шейпинг трафика с использованием IDP
Обзор
Шейпинг трафика на основе IDP дает возможность управлять трафиком, основываясь на информации, поступающей от подсистемы обнаружения и предотвращения вторжений (Intrusion Detection and Prevention, IDP).
Типичное применение – ограничения трафика приложения, активно использующего всю полосу пропускания
Основной задачей шейпинга на основе IDP является ограничения трафика, создаваемого ресурсоемкими приложениями. Типичным примером является трафик, генерируемый приложениями, работающими по протоколам peer-to-peer (P2P), например, такими как Bit Torrent и Direct Connect.
Трафик, создаваемый P2P-соединениями, может негативно повлиять на качество обслуживания остальных пользователей сети, поэтому необходимо контролировать полосу пропускания, занимаемую этими приложениями. Шейпинг трафика с использованием IDP предоставляет такую возможность.
Совместное использование IDP и шейпинга трафика
Одной из проблем, связанных с ограничением такого трафика как P2P, является невозможность отличить его от другого трафика. Сигнатурные базы IDP достаточно эффективно позволяют распознать такой трафик и обеспечить возможность ограничить полосу пропускания для него с помощью подсистемы шейпинга трафика.
Шейпинг трафика с использованием IDP – это совместное использование двух подсистем, когда трафик, идентифицированный подсистемой IDP, направляются в каналы подсистемы шейпинга, в которых заданы необходимые ограничения.
Настройка шейпинга трафика с использованием IDP
Для конфигурирования шейпинга трафика с использованием IDP следует выполнить следующие шаги:
-
Указать IDP-правило, которое будет определять целевой трафик.
Выбранная IDP-сигнатура определяет, какой трафик будет целевым, имя сигнатуры, как правило, содержит слово POLICY и название определенных типов приложений.
-
В качестве действия для правила следует выбрать Pipe.
Данное действие определяет, что к трафику, который соответствует правилу, будет применена функция шейпинга с использованием IDP.
-
Указать в правиле значение полосы пропускания.
Это значение определяет величину общей полосы пропускания, которая будет доступна для трафика, параметры которого соответствуют параметрам, указанным в правиле. Данное количество является суммарной величиной количества трафика, проходящего по соединению и вызвавшего срабатывание правила, и любого связанного с ним трафика, независимо от направления.
Соединения, открытые до срабатывания правила IDP, не будут подвержены ограничению.
-
Можно также дополнительно определить временной интервал.
Это значение задает период времени (в секундах) после срабатывания правила, в течение которого шейпинг трафика применяется ко всем открытым взаимосвязанным соединениям.
Как правило, передача данных по P2P-протоколу начинается с установления начального соединения для передачи контрольной информации, за которым следует установление нескольких соединений, по которым передаются данные на другие хосты.
Именно это начальное соединение определяется IDP, а временной интервал определяет предположительный период, в течение которого будут открыты другие соединения, для которых необходимо выполнить шейпинг. Соединения, открытые после истечения временного интервала, не будут подвергаться шейпингу.
Временной интервал равный 0 означает, что под шейпинг попадает только трафик, проходящий через начальное соединение, вызвавшее срабатывание правила. Любые другие зависимые соединения, которые не вызывают срабатывания IDP-правила не будут подвергаться шейпингу.
-
Дополнительно можно указать сеть.
Если временной интервал больше 0, можно задать искомую сеть. Этот диапазон IP-адресов позволяет более точно определить последующие соединения, связанные с IDP-правилом, которые следует подвергнуть шейпингу. Для того чтобы выполнялся шейпинг данного трафика, хотя бы одна из сторон последующих соединений должна находиться в заданном диапазоне IP-адресов.
Обработка трафика
Рассмотрим последовательность обработки трафика с использованием IDP:
- Открывается новое соединение между двумя хостами через межсетевой экран и начинается прохождение трафика. IP-адреса источника и назначения известны межсетевому экрану.
Параметры трафика соответствуют IDP-правилу. В качестве действия в IDP-правиле указано Pipe. В результате этого трафик данного соединения теперь является объектом шейпинга. Полоса пропускания канала задана в IDP-правиле.
- Далее устанавливается новое соединение, которое не соответствует IDP-правилу, но у которого тот же IP-адрес источника или назначения, что и у соединения, соответствовавшего правилу. Если адрес источника или назначения принадлежат диапазону IP-адресов, указанному в поле Network, то трафик направляется в канал, в котором выполняется шейпинг, указанный в правиле шейпинга, начального соединения, соответствовавшего правилу.
Если значение Network не указано, то данное новое соединение будет также направлено в канал, определенный для трафика, для которого сработало правило, если адреса источника и назначения совпадают с адресами соединения, которое соответствовало правилу.
Важность указания сети в правиле шейпинга при использовании IDP
Соответствовать IDP-правилу может любая из сторон соединения
Важно указать сеть при шейпинге трафика с использованием IDP. Подсистема IDP не знает, какая из сторон вызвала срабатывание соответствующего правила. В некоторых случаях следует ограничивать трафик в сторону клиента, в некоторых в сторону сервера. Если шейпинг трафика выполнять в обоих направлениях, это может приводить к непредсказуемым результатам.
Причина возникновения непредсказуемых результатов
Рассмотрим ситуацию, когда клиент подключается к хосту по P2P-протоколу, и данный трафик соответствует IDР-правилу, в котором в качестве действия указано Pipe. В результате этого данное соединение становится объектом для шейпинга. Если другой клиент также подключается к тому же хосту, но, например, по HTTP-протоколу, то IDP-правило не срабатывает, и соединение не должно быть подвергнуто шейпингу наряду с соединением к тому же хосту по Р2Р-протоколу. Но в этом случае второе соединение также будет подвергнуто шейпингу, если хост, к которому происходит подключение как по Р2Р-протоколу, так и по НТТР-протоколу, входит в сеть, указанную в правиле.
Для того чтобы избежать такого нежелательного шейпинга, в значении поля Network следует указать IP-адреса клиентов, а IP-адрес хоста, с которым устанавливается соединение, указывать не следует. Это будет означать, что параметры хоста, с которым устанавливается соединение, не будут сравниваться с параметрами IDP-правил, и, следовательно, для них не будет выполняться шейпинг трафика.
В качестве IP-адресов клиентов можно указать достаточно большой диапазон, так как другой трафик, отличный от Р2Р, не будет соответствовать параметрам IDP-правила и, следовательно, не будет подвергнут шейпингу.
Если сеть не указана, то любое соединение, установленное после срабатывания IDP-правила, будет объектом шейпинга, что может оказаться нежелательным.
5.2.3 Гарантирование полосы пропускания вместо ограничения трафика
При необходимости шейпинг трафика на основе IDP для определенных приложений может использоваться не для ограничения трафика, а для гарантирования полосы пропускания.
Если необходимо гарантировать для приложения полосу пропускания, например, 10 Мегабит, то можно настроить IDP-правило для срабатывания на данное приложение с последующим действием Pipe с заданным значением требуемой полосы пропускания. В этом случае автоматически созданные каналы шейпинга трафика по умолчанию получают наивысший приоритет, и поэтому полоса пропускания будет гарантированной.
5.2.4 Правила порога
Обзор
Основной целью применения Правил порога является обнаружение ненормальной сетевой активности и определение реакции на нее. Примером такой ненормальной сетевой активности может быть внутренний хост, зараженный вирусом, который постоянно создает соединения с внешними IP-адресами. Другим примером может являться внешний источник, пытающийся установить ненормально большое число соединений. (Термин "соединение" в данном случае относится ко всем типам соединений, включая TCP, UDP или ICMP, отслеживаемых механизмом состояний NetDefendOS).
Политики порога
Правило порога подобно другим правилам представляет собой комбинацию сеть/интерфейс источника/назначения и, возможно, типа сервиса, например, HTTP. Для каждого правила может быть определено одно или несколько Действий (Actions), которые определяют методы обработки различных условий порога.
Для Правила порога могут быть заданы следующие параметры:
-
Action (Действие)
Это ответ на превышение ограничения. Можно выбрать либо опцию Audit, либо Protect.
-
Group by (Группировать по)
Правило может быть задано либо для Host, либо для Network.
-
Threshold (Порог)
Числовое ограничение, при превышении которого выполняется указанное действие.
-
Threshold Type (Тип порога)
Правило может быть задано либо в виде ограничения количества соединений в секунду, либо в виде ограничения общего количества одновременных соединений.
Ограничение скорости соединения/общего количества соединений
Ограничение скорости соединения
Ограничение скорости соединения позволяет ограничить количество новых открываемых соединений в секунду.
Ограничение общего количества соединений
Ограничение общего количества соединений позволяет ограничить общее количество соединений.
Это особенно полезно, если требуются пулы NAT из-за большого количества соединений, установленных P2P-пользователями,
Способы группирования
Существует два способа группирования:
- Host Based – Значение порога проверяется для соединения, установленного с отдельного IP-адреса.
- Network Based – Значение порога проверяется для всех соединений, соответствующих правилу.
Действия правила
При срабатывании Правила порога возможен один из следующих ответов:
- Audit – Не изменяет параметры соединения, но регистрирует событие.
- Protect – Сбрасывает установленное соединение.
Ведение журнала предпочтительнее в случае, если значение, при котором должно срабатывать правило, невозможно определить заранее. В каждом правиле может быть одновременно указано несколько действий Audit для одних значений порога и действие Protect для большего значения порога.
Одновременное выполнение нескольких действий
При срабатывании правила выполняются Actions, связанные с правилом, которые соответствуют возникшему условию. Если в правиле определено более одного Actions, то они выполняются в указанном в конфигурации порядке.
Если несколько Actions с одними и теми же Type и Grouping срабатывают одновременно, будет зарегистрировано будет только Action с более высоким значением порога.
Соединения, для которых не выполняется проверка
С помощью расширенных настроек Before Rules можно указать, для каких типов соединений не следует выполнять проверку в Правилах Порога.
"Черный список" в Правилах Порога
Если указано действие Protect, Правила Порога могут быть сконфигурированы таким образом, чтобы источник, вызвавший срабатывание правила, автоматически добавлялся в "Черный список" IP-адресов или сетей. Если одновременно сработало несколько действий Protect с включенной функцией "черного списка", в этот список попадут только IP-адрес или сеть, указанные в первом действии.
Действие для хоста с включенной функцией "черного списка" занесет при срабатывании правила в "черный список" только этот хост. Действие для сети с включенной функцией "черного списка" занесет в этот список сеть источника, указанную в правиле. Если Правило порога указано для сервиса, то будет заблокирован только этот сервис.
После включения функции "черный список" уже существующие соединения с этим источником могут быть либо продолжены, либо сброшены в зависимости от установленного флага Do not drop existing connection.
Кроме этого можно установить время (в секундах), на которое данный источник будет помещен в "черный список".