Մանրամասն փոխեք ACL-ները

ACL-ները (Access Control List) ցանցային սարքերում կարող են ներդրվել ինչպես ապարատային, այնպես էլ ծրագրային ապահովման մեջ, կամ ավելի սովորաբար՝ ապարատային և ծրագրային ապահովման վրա հիմնված ACL-ներում: Եվ եթե ամեն ինչ պետք է պարզ լինի ծրագրային ապահովման վրա հիմնված ACL-ների հետ. սրանք կանոններ են, որոնք պահվում և մշակվում են RAM-ում (այսինքն՝ Control Plane-ում), դրանից բխող բոլոր սահմանափակումներով, ապա մենք կհասկանանք, թե ինչպես են ներդրվում ապարատային ACL-ները և կաշխատեն մեր հոդված. Որպես օրինակ՝ մենք կօգտագործենք ExtremeSwitching շարքի անջատիչներ Extreme Networks-ից:

Մանրամասն փոխեք ACL-ները

Քանի որ մենք հետաքրքրված ենք ապարատային վրա հիմնված ACL-ներով, Տվյալների հարթության ներքին իրականացումը կամ օգտագործվող իրական չիպսեթները (ASIC) մեզ համար առաջնային նշանակություն ունեն: Բոլոր Extreme Networks անջատիչ գծերը կառուցված են Broadcom ASIC-ների վրա, և, հետևաբար, ստորև ներկայացված տեղեկատվության մեծ մասը ճիշտ կլինի նաև շուկայի այլ անջատիչների համար, որոնք ներդրված են նույն ASIC-ների վրա:

Ինչպես երևում է վերևի նկարից, «ContentAware Engine»-ը անմիջականորեն պատասխանատու է չիպսեթում ACL-ների աշխատանքի համար՝ առանձին «մուտք» և «ելք» համար: Ճարտարապետական ​​առումով դրանք նույնն են, միայն «ելքը» ավելի քիչ մասշտաբային է և ավելի քիչ ֆունկցիոնալ: Ֆիզիկապես, երկու «ContentAware Engines»-ն էլ TCAM հիշողություն է և ուղեկցող տրամաբանություն, և յուրաքանչյուր օգտվողի կամ համակարգի ACL կանոնը պարզ բիթ-դիմակ է, որը գրված է այս հիշողության վրա: Այդ իսկ պատճառով չիպսեթը մշակում է տրաֆիկի փաթեթ առ փաթեթ և առանց կատարողականի վատթարացման:

Ֆիզիկապես, նույն Ingress/Egress TCAM-ը, իր հերթին, տրամաբանորեն բաժանված է մի քանի հատվածների (կախված ինքնին հիշողության քանակից և հարթակից), այսպես կոչված, «ACL slices»: Օրինակ, նույն բանը տեղի է ունենում ձեր նոութբուքի ֆիզիկապես նույն 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-ում սահմանված բիթ-դիմակի: Ընդհանուր առմամբ, այս որոնումը կարող է իրականացվել՝ օգտագործելով Ethernet վերնագրի առաջին 128 բայթերը: Իրականում, հենց այն պատճառով, որ որոնումը կարող է իրականացվել ավելի քան 128 բայթ, բայց միայն 29 բայթ կարող է գրվել, ճիշտ որոնման համար պետք է սահմանվի օֆսեթ փաթեթի սկզբի համեմատ: Յուրաքանչյուր ACL-հատվածի համար օֆսեթը սահմանվում է, երբ դրան գրվում է առաջին կանոնը, և եթե հաջորդ կանոնը գրելիս հայտնաբերվում է մեկ այլ օֆսեթի անհրաժեշտություն, ապա այդպիսի կանոնը համարվում է առաջինի հետ անհամատեղելի և գրվում է հաջորդ ACL-հատվածը:

Ստորև բերված աղյուսակը ցույց է տալիս ACL-ում նշված պայմանների համատեղելիության կարգը: Յուրաքանչյուր առանձին տող պարունակում է գեներացված բիթ-դիմակներ, որոնք համատեղելի են միմյանց հետ և անհամատեղելի են այլ տողերի հետ:

Մանրամասն փոխեք ACL-ները
Յուրաքանչյուր առանձին փաթեթ, որը մշակվում է ASIC-ի կողմից, զուգահեռ որոնում է կատարում ACL-ի յուրաքանչյուր հատվածում: Ստուգումն իրականացվում է մինչև ACL-հատվածի առաջին համընկնումը, սակայն նույն փաթեթի համար թույլատրվում է մի քանի համընկնում տարբեր ACL-շերտերում: Յուրաքանչյուր առանձին «կանոն» ունի համապատասխան գործողություն, որը պետք է կատարվի, եթե պայմանը (բիթ-դիմակ) համապատասխանում է: Եթե ​​համընկնումը տեղի է ունենում ACL-ի մի քանի հատվածներում միանգամից, ապա «Գործողությունների կոնֆլիկտի լուծում» բլոկում, ելնելով ACL-հատվածի առաջնահերթությունից, որոշում է կայացվում, թե որ գործողությունն իրականացնել: Եթե ​​ACL-ը պարունակում է և՛ «գործողություն» (թույլտվություն/մերժում), և՛ «գործողություն-փոփոխող» (հաշվում/QoS/log/…), ապա մի քանի համընկնումների դեպքում կիրականացվի միայն ավելի բարձր առաջնահերթության «գործողությունը», մինչդեռ «գործողությունը». -modifier»-ը կավարտվի: Ստորև բերված օրինակը ցույց է տալիս, որ երկու հաշվիչներն էլ կավելացվեն, և ավելի բարձր առաջնահերթության «մերժումը» կկատարվի:

Մանրամասն փոխեք ACL-ները
«ACL լուծումների ուղեցույց» ավելի մանրամասն տեղեկություններով ACL-ի գործունեության մասին հանրային սեփականությունում կայքում extremenetworks.com. Ցանկացած հարց, որը ծագում է կամ մնում է, միշտ կարող է տրվել մեր գրասենյակի աշխատակիցներին. [էլեկտրոնային փոստով պաշտպանված].

Source: www.habr.com

Добавить комментарий