Превключете ACL в детайли

ACL (Списък за контрол на достъпа) на мрежови устройства могат да бъдат внедрени както в хардуер, така и в софтуер, или по-често казано, ACL, базирани на хардуер и софтуер. И ако всичко трябва да е ясно със софтуерно базираните ACL - това са правила, които се съхраняват и обработват в RAM (т.е. в Control Plane), с всички произтичащи от това ограничения, тогава ще разберем как хардуерно базираните ACL се внедряват и работят с нас статия. Като пример ще използваме суичове от серията ExtremeSwitching от Extreme Networks.

Превключете ACL в детайли

Тъй като се интересуваме от хардуерно базирани ACL, вътрешното внедряване на равнината на данни или действителните използвани чипсети (ASIC) е от първостепенно значение за нас. Всички линии на комутатори на Extreme Networks са изградени на ASIC на Broadcom и следователно по-голямата част от информацията по-долу ще важи и за други комутатори на пазара, които са внедрени на същите ASIC.

Както може да се види от фигурата по-горе, „ContentAware Engine“ е пряко отговорен за работата на ACL в чипсета, отделно за „ingress“ и „egress“. Архитектурно те са еднакви, само „изходът“ е по-малко мащабируем и по-малко функционален. Физически и двата „ContentAware Engines“ са TCAM памет плюс придружаваща логика и всяко потребителско или системно ACL правило е проста битова маска, записана в тази памет. Ето защо чипсетът обработва трафика пакет по пакет и без влошаване на производителността.

Физически същият Ingress/Egress TCAM от своя страна е разделен логически на няколко сегмента (в зависимост от обема на самата памет и платформата), така наречените „ACL срезове“. Например, същото нещо се случва с физически същия HDD на вашия лаптоп, когато създадете няколко логически диска на него - C:>, D:>. Всеки ACL-срез от своя страна се състои от клетки с памет под формата на „низове“, където са записани „правила“ (правила/битови маски).

Превключете ACL в детайли
Разделянето на TCAM на ACL-срезове има определена логика зад него. Във всеки от отделните ACL-срезове могат да бъдат написани само „правила“, които са съвместими едно с друго. Ако някое от „правилата“ не е съвместимо с предишното, то ще бъде записано в следващия ACL-срез, независимо колко свободни реда за „правила“ са останали в предишния.

Откъде тогава идва тази съвместимост или несъвместимост на ACL правилата? Факт е, че един TCAM „ред“, където се записват „правила“, има дължина 232 бита и е разделен на няколко полета - Fixed, Field1, Field2, Field3. 232-битова или 29-байтова TCAM памет е достатъчна, за да запише битовата маска на конкретен MAC или IP адрес, но много по-малко от пълния хедър на Ethernet пакета. Във всеки отделен ACL-срез ASIC извършва независимо търсене според битовата маска, зададена във F1-F3. По принцип това търсене може да се извърши с помощта на първите 128 байта на Ethernet заглавката. Всъщност, точно защото търсенето може да се извърши над 128 байта, но само 29 байта могат да бъдат записани, за правилно търсене трябва да се зададе отместване спрямо началото на пакета. Отместването за всеки ACL-срез се задава, когато първото правило е написано в него и ако при писане на следващо правило се открие необходимост от друго отместване, тогава такова правило се счита за несъвместимо с първото и се записва в следващ ACL-срез.

Таблицата по-долу показва реда на съвместимост на условията, посочени в ACL. Всеки отделен ред съдържа генерирани битови маски, които са съвместими една с друга и несъвместими с други линии.

Превключете ACL в детайли
Всеки отделен пакет, обработен от ASIC, изпълнява паралелно търсене във всеки ACL-срез. Проверката се извършва до първото съвпадение в ACL-среза, но са разрешени множество съвпадения за един и същ пакет в различни ACL-срезове. Всяко отделно „правило“ има съответно действие, което трябва да се изпълни, ако условието (битова маска) съответства. Ако се появи съвпадение в няколко ACL-среза наведнъж, тогава в блока „Разрешаване на конфликт на действие“, въз основа на приоритета на ACL-среза, се взема решение кое действие да се извърши. Ако ACL съдържа както „действие“ (разрешаване/отказ), така и „модификатор на действие“ (брой/QoS/дневник/…), тогава в случай на множество съвпадения ще се изпълни само „действието“ с по-висок приоритет, докато „действието -модификатор” ще бъдат завършени. Примерът по-долу показва, че и двата брояча ще бъдат увеличени и ще се изпълни „deny“ с по-висок приоритет.

Превключете ACL в детайли
„Ръководство за ACL решения“ с по-подробна информация за работата на ACL в публичното пространство на уебсайта extremenetworks.com. Всички въпроси, които възникват или остават, винаги могат да бъдат зададени на нашия офис персонал - [имейл защитен].

Източник: www.habr.com

Добавяне на нов коментар