Changes between Version 36 and Version 37 of Ethernet
- Timestamp:
- Apr 27, 2022, 12:34:29 PM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ethernet
v36 v37 157 157 Для каждого принятого пакета коммутатор выполняет последовательную проверку условий правил PCL. Если условие выполняется, коммутатор выполняет заданное правилом действие и заканчивает поиск. Описанных проходов поиска по списку правил может быть настроено один или два (lookup 0 и lookup 1). 158 158 159 === Ключ поиска === 160 159 161 Условия правил могут включать в себя как проверку данных пакета (например MAC адрес отправителя и получателя, протокол, IP адрес отправителя, IP адрес получателя, поля DSCP и т.п.), так и метаданных, назначенных принятому пакету коммутатором (например номер порта, номер QoS профиля, VLAN ID и т.п.). Для проверки условий списков PCL коммутатор формирует ключ, состоящий из данных и метаданных пакета, о которых блыо сказано выше. В зависимости от типа принятого пакета (не-IP, ARP, IPv4, IPv6) и конфигурации PCL может быть сформировано семь различных типов ключа размером 24 или 48 байт. В свою очередь, условия правил PCL состоят из значения и маски, также размером 24 или 28 байт каждые. Проверка условия заключается в накладывании (побитном умножении) маски на ключ поиска и сравнения результата с значением условия правила. Если результат совпал с заданным значением, условие правила считается выполненным, и коммутатор выполняет указанное правилом действие. Таким образом, условие правила может проверять любое из составляющее ключ полей на равенство заданному значению (если соответствующие полю биты маски установлены в 1), игнорировать значение поля (если соответствующие полю биты маски сброшены в 0) или проверять только часть значения поля (если часть соответствующих битов маски установлена), например равенство префикса адреса IPv6 заданному значению. 160 161 В памяти коммутатора могут храниться различные списки правил PCL. В зависимости от того, каким портом/транком/VLAN принят пакет, к нему могут применяться разные списки правил. Также разные списки правил могут применяться на первом и втором проходах поиска. Для идентификации списка правил служит 10-битный идентификатор PCL (PCL-ID). Значение идентификатора назначается в соответствии с конфигурацией PCL. Поле PCL-ID является частью условия любого правила PCL. Таким образом, любое правило PCL может быть привязано к конкретному значению PCL-ID (если все биты PCL-ID "открыты" маской), может быть привязано к нескольким PCL-ID (если только часть битов PCL-ID "открыты маской), или применяться независимо от PCL-ID (если поле PCL-ID полностьб "закрыто" маской).162 162 163 163 Алгоритм выбора типа (формата) ключа показан на следующий диаграмме. … … 207 207 }}} 208 208 209 === PCL-ID === 210 211 В памяти коммутатора могут храниться различные списки правил PCL. В зависимости от того, каким портом/транком/VLAN принят пакет, к нему могут применяться разные списки правил. Также разные списки правил могут применяться на первом и втором проходах поиска. Для идентификации списка правил служит 10-битный идентификатор PCL (PCL-ID). Значение идентификатора назначается в соответствии с конфигурацией PCL. Поле PCL-ID является частью условия любого правила PCL. Таким образом, любое правило PCL может быть привязано к конкретному значению PCL-ID (если все биты PCL-ID "открыты" маской), может быть привязано к нескольким PCL-ID (если только часть битов PCL-ID "открыты маской), или применяться независимо от PCL-ID (если поле PCL-ID полностью "закрыто" маской). 212 209 213 Как уже было сказано выше, конфигурация PCL определяет: 210 214 - какие проходы поиска PCL правил (lookup 0 и/или lookup1) будут выполняться; … … 245 249 }}} 246 250 247 251 === Определяемые пользователем байты (User Defined Bytes) === 252 253 Помимо заранее определенных полей заголовка пакета, таких как EtherType, DSCP или IP protocol, коммутатор позволяет (в зависимости от формата ключа) определить до шести произвольных байтов пакета, которые будут извлечены из первых 128 байт пакета в ключ поиска и могут быть проверены условиями правил PCL. Каждый определяемый пользователем байт имеет два параметра: 254 - **Якорь** - условная точка (позиция) в пакете, от которой отсчитывается смечещние байта. Якорь может быть выбран из следующих возможных значений: 255 - **start of L2 header** - начало заголовка L2 (ethernet); 256 - **start of L3 header** - начало заголовка L3 (IP); 257 - **start of L4 header** - начало заголовка L4 (payload IP, например TCP или UDP); 258 - **start of IPv6 ext.header** - начало заголовка расширений IPv6. 259 - **Смещение** - число байт (от 0 до 127), добавляемое к позиции якоря для определения позиции извлекаемого байта. 260 261 Как было сказано выше, определяемый пользователем байт может быть извлечен только из первых 128 байт пакета. Если в результате вычисления позиции определяемого пользователем байта обнаруживается выход за пределы первых 128 байт пакета, поведение коммутатора определяется параметром "Invalid user defined bytes" глобальных настроек PCL. 262 263 === Действия правил PCL === 248 264 249 265 Действие правила определяет, какие манипуляции с пакетом будут произведены в случае выполнения условия. Эти действия могут включать: … … 412 428 [[Image(pic10.jpg)]] 413 429 414 При нажатии кнопки "Настройки" открывается диалог глобальных настроек LCP "Policy Engine Global Configuration". 430 При нажатии кнопки "Настройки" открывается диалог глобальных настроек PLC "Policy Engine Global Configuration". 431 432 Группа "Тип ключа" позволяет выбрать формат ключа, от которого зависит интерпретация условий правил PCL и настройки определяемых пользователем байтов в расположенных ниже таблицах. 433 434 Таблица "User defined bytes" отображает параметры (якорь и смещение) определяемых пользователем байтов, имеющихся в выбранном формате ключа. При нажатии кнопки "Изменить" ([[Image(edit-icon.png)]]) открывается диалог, позволяющий изменить параметры "Якорь" и "Смещение". 415 435 416 436 === Диалог настроек VLAN ===