Changes between Version 34 and Version 35 of Ethernet


Ignore:
Timestamp:
Apr 26, 2022, 6:28:05 PM (2 years ago)
Author:
alx
Comment:

Добавлено о выборе конфигурации PCL.

Legend:

Unmodified
Added
Removed
Modified
  • Ethernet

    v34 v35  
    157157Для каждого принятого пакета коммутатор выполняет последовательную проверку условий правил PCL. Если условие выполняется, коммутатор выполняет заданное правилом действие и заканчивает поиск. Описанных проходов поиска по списку правил может быть настроено один или два (lookup 0 и lookup 1).
    158158
    159 Условия правил могут включать себя как проверку данных пакета (например MAC адрес отправителя и получателя, протокол, IP адрес отправителя, IP адрес получателя, поля DSCP и т.п.), так и метаданных, назначенных принятому пакету коммутатором (например номер порта, номер QoS профиля, VLAN ID и т.п.). Для проверки условий списков PCL коммутатор формирует ключ, состоящий из данных и метаданных пакета, о которых блыо сказано выше. В зависимости от типа принятого пакета (не-IP, ARP, IPv4, IPv6) и настроек коммутатора может быть сформировано семь различных типов ключа размером 24 или 48 байт. В свою очередь, условия правил PCL состоят из значения и маски, также размером 24 или 28 байт каждые. Проверка условия заключается в накладывании (побитном умножении) маски на ключ поиска и сравнения результата с значением условия правила. Если результат совпал с заданным значением, условие правила считается выполненным, и коммутатор выполняет указанное правилом действие. Таким образом, условие правила может проверять любое из составляющее ключ полей на равенство заданному значению (если соответствующие полю биты маски установлены в 1), игнорировать значение поля (если соответствующие полю биты маски сброшены в 0) или проверять только часть значения поля (если часть соответствующих битов маски установлена), например равенство префикса адреса IPv6 заданному значению.
    160 
    161 Аглоритм выбора типа (формата) ключа показан на следующий диаграмме.
     159Условия правил могут включать в себя как проверку данных пакета (например 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
     163Алгоритм выбора типа (формата) ключа показан на следующий диаграмме.
    162164
    163165{{{#!plantuml
     
    205207}}}
    206208
     209Как уже было сказано выше, конфигурация PCL определяет:
     210- какие проходы поиска PCL правил (lookup 0 и/или lookup1) будут выполняться;
     211- значение PCL-ID для каждого из выполняемых проходов (lookup 0 и lookup 1);
     212- тип (формат) ключа.
     213
     214В коммутаторе существует таблица, содержащая 1152 конфигурации PCL. Существует два варианта выбора конкретной конфигурации PCL из таблицы:
     215- в зависимости от номера порта или транка, принявшего пакет (source port/trunk);
     216- в зависимости от номера физического порта или VLAN ID пакета.
     217Выбор варианта осуществляется конфигурационным параметром "PCL-ID Mode" в диалоге "Policy Engine Global Configuration".
     218
     219Если параметр "PCL-ID Mode"  установлен в значение "port/VLAN", выбор конфигурации PCL осуществляется в зависимости от конфигурационного параметра "PCL-ID assignment mode" принявшего пакет порта. Если параметр "PCL-ID assignment mode" принявшего пакет порта установлен в значение "according to the VLAN ID", и VLAN ID пакета находится в диапазоне от 0 до 1023, конфигурация PCL выбирается по значению VLAN ID. Если значение VLAN ID пакета больше чем 1023 или если параметр "PCL-ID assignment mode" принявшего пакет порта установлен в значение "according to the Incoming port", конфигурация PCL выбирается по номеру порта плюс 1024.
     220
     221{{{#!plantuml
     222@startuml
     223
     224start
     225 if (PCL-ID Mode?) then (port/VLAN)
     226   if(PCL-ID assignment mode?) then (according to the\nIncoming port)
     227     #palegreen :index = <номер порта> + 1024;
     228   else (according to the VLAN ID)
     229     if(VLAN ID < 1024?) then (нет)
     230       #palegreen :index = <номер порта> + 1024;
     231     else (да)
     232       #palegreen :index = <VLAN ID>;
     233     endif
     234   endif
     235 else (source port/trunk)
     236   if(Пакет из транка?) then (нет)
     237      #palegreen :index = <номер порта>\n(CPU=1023);
     238   else (да)
     239      #palegreen :index = <номер транка> + 1024;
     240   endif
     241 endif
     242 kill
     243
     244@enduml
     245}}}
     246
     247
    207248
    208249Действие правила определяет, какие манипуляции с пакетом будут произведены в случае выполнения условия. Эти действия могут включать:
     
    597638 - **statuc** - статический режим: правила PCL могут быть только одного типа - стандартные с коротким (short, narrow) 24-байтным ключом или расширенные с длинным (long, wide) 48-байтным ключом. Тип ключа определяется конфигурационным параметром "TCAM mode".
    598639 - **dynamic** - динамический режим: в ассоциативной памяти коммутатора могут одновременно находиться как стандартные (standard), так и расширенные (extended) правила. Тип используемого ключа (короткий 24-байтный или длинный 48-байтный) определяется отдельно для каждого прохода поиска настройками политик конкретного порта.
     640
     641 TCAM mode:: Если конфигураицонный параметр "TCAM mode select" имеет значение "static", параметр "TCAM mode" определяет, какого типа PCL правила содержатся в ассоциативной памяти коммутатора (TCAM):
     642 - **narrow** - TCAM содержит стандартные правила с узким (коротким) 24-байтным ключом;
     643 - **wide** - TCAM содержит расширенные правила с широким (длинным) 48-байтным ключом.
     644
     645 PCL-ID Mode:: Параметр определяет, каким образом коммутатор выбирает конфигурацию PCL из таблицы конфигураций PCL:
     646 - **source port/trunk** - конфигурация выбирается по номеру порта или номеру транка;
     647 - **port/VLAN** - конфигурация выбирается по VLAN ID или номеру порта.