خطای TCAM Exhaustion در سوئیچ سیسکو زمانی رخ میدهد که ظرفیت قابل استفاده حافظه TCAM برای یک قابلیت شبکه کافی نباشد. این مشکل ممکن است هنگام اعمال قوانین ACL، پیکربندی QoS، فعالسازی قابلیتهای امنیتی یا افزایش پیچیدگی شبکه ایجاد شود و مانع نصب صحیح برخی قوانین در سختافزار شود.
برای رفع این خطا، ابتدا باید مشخص کنید کدام بخش از TCAM با کمبود منابع مواجه شده است. سپس با بررسی پیکربندی، سادهسازی قوانین یا اصلاح تخصیص منابع میتوان مشکل را برطرف کرد. در این مقاله، مهمترین دلایل خطای TCAM Exhaustion، روشهای تشخیص آن و راهکارهای کاربردی برای رفع مشکل در سوئیچهای سیسکو را بررسی میکنیم.
TCAM مخفف Ternary Content-Addressable Memory است؛ نوعی حافظه سختافزاری که برای جستوجوی سریع و تطبیق الگوهای اطلاعاتی در تجهیزات شبکه استفاده میشود. برخلاف حافظه معمولی که اطلاعات در آن به روشهای متداول خوانده میشوند، TCAM میتواند چندین الگو را بهصورت موازی بررسی کند.
این قابلیت به سوئیچ اجازه میدهد تصمیمهای مربوط به عبور بستهها را با سرعت بالا و در سطح سختافزار اجرا کند.
بسته به مدل و معماری سوئیچ سیسکو، TCAM ممکن است برای کاربردهای زیر استفاده شود:
این قابلیتها الزاماً از یک بخش مشترک TCAM استفاده نمیکنند. در بسیاری از پلتفرمها، منابع به جدولها یا ناحیههای مختلف تقسیم میشوند؛ بنابراین ممکن است یک بخش پر شود، درحالیکه بخش دیگری همچنان منابع آزاد داشته باشد.

عبارت TCAM Exhaustion به این معناست که منابع قابل تخصیص TCAM برای یک عملیات مشخص به پایان رسیده یا ظرفیت کافی برای نصب قوانین جدید وجود ندارد.
برای مثال، فرض کنید روی یک سوئیچ سیسکو تعداد زیادی قانون ACL تعریف کردهاید. اگر این قوانین به ورودیهای سختافزاری زیادی نیاز داشته باشند، ممکن است ظرفیت بخش مربوط به ACL کافی نباشد و سوئیچ نتواند تمام قوانین را در سختافزار نصب کند.
بسته به مدل دستگاه و قابلیت مورد استفاده، نتیجه میتواند شامل نمایش پیام خطا، نصبنشدن بعضی قوانین یا محدودشدن عملکرد یک قابلیت باشد.
نکته مهم این است که TCAM Exhaustion لزوماً به معنی پرشدن تمام حافظه TCAM نیست. ممکن است فقط جدول مربوط به ACL یا QoS به سقف ظرفیت خود رسیده باشد.
یکی از رایجترین دلایل مصرف زیاد TCAM، تعریف تعداد زیادی Access Control List است. ACL برای کنترل دسترسی، محدودکردن ارتباط میان VLANها و فیلترکردن ترافیک ورودی یا خروجی استفاده میشود.
موارد زیر میتوانند مصرف منابع را افزایش دهند:
هر قانون ACL الزاماً معادل یک ورودی TCAM نیست. بسته به نوع قانون و معماری سختافزار، یک قانون ممکن است به چندین ورودی نیاز داشته باشد.
راهکار: ACLها را بررسی کنید، قوانین تکراری یا بلااستفاده را شناسایی کنید و در صورت امکان شرایط مشابه را سادهسازی کنید. پیش از حذف هر قانون، تأثیر آن بر امنیت شبکه را بررسی کنید.
قابلیت QoS برای اولویتبندی ترافیک، مدیریت پهنای باند و کنترل رفتار بستهها استفاده میشود. در برخی سوئیچهای سیسکو، طبقهبندی ترافیک و اجرای سیاستهای QoS به منابع TCAM وابسته است.
تعریف تعداد زیادی Class Map، Policy Map و شرط تطبیق میتواند مصرف منابع سختافزاری را افزایش دهد. این مسئله در شبکههایی که سیاستهای جداگانهای برای Voice، Video، ترافیک مدیریتی و گروههای مختلف کاربران دارند، اهمیت بیشتری پیدا میکند.
راهکار: سیاستهای QoS را بازبینی کنید و در صورت امکان، قوانین مشابه را با حفظ رفتار موردنیاز شبکه سادهسازی کنید. حذف یک سیاست ضروری صرفاً برای آزادکردن TCAM میتواند کیفیت سرویس را مختل کند.
گاهی هیچ قابلیت واحدی بهتنهایی مصرف غیرعادی ندارد، اما مجموع نیازهای ACL، QoS، مسیریابی لایه سه و سیاستهای امنیتی باعث کمبود منابع میشود.
این وضعیت به معماری سختافزاری دستگاه و نحوه تخصیص منابع میان قابلیتها بستگی دارد.
راهکار: علاوه بر بررسی ACLها، سایر قابلیتهای فعال و منابع موردنیاز آنها را نیز ارزیابی کنید. تمرکز صرف بر یک جدول ممکن است علت اصلی مشکل را پنهان کند.
تمام سوئیچهای سیسکو ظرفیت TCAM یکسانی ندارند. مدل دستگاه، نسل سختافزار، نوع ASIC و قابلیتهای پشتیبانیشده بر ظرفیت قابل استفاده تأثیر میگذارند.
به همین دلیل، پیکربندیای که روی یک مدل Catalyst بدون مشکل اجرا میشود، ممکن است روی مدل دیگری با محدودیت منابع مواجه شود.
افزایش RAM یا فضای ذخیرهسازی نیز معمولاً این مشکل را برطرف نمیکند؛ زیرا TCAM منبع سختافزاری متفاوتی است.
راهکار: محدودیتهای سختافزاری مدل خود را بررسی کنید. اگر پس از بهینهسازی پیکربندی همچنان ظرفیت کافی وجود ندارد، ممکن است به سختافزاری با منابع مناسبتر نیاز داشته باشید.
در بعضی سوئیچهای Cisco Catalyst، منابع سختافزاری براساس قالبهای مشخصی میان کاربردهای مختلف تخصیص داده میشوند. این قالبها در برخی مدلها با SDM Template مدیریت میشوند.
اگر قالب فعال با نیازهای شبکه تناسب نداشته باشد، ممکن است یک قابلیت با کمبود منابع مواجه شود؛ حتی اگر بخشهای دیگری هنوز ظرفیت آزاد داشته باشند.
راهکار: قالب فعال و محدودیتهای مدل را بررسی کنید. تغییر قالب ممکن است به Reload نیاز داشته باشد و منابع در دسترس قابلیتهای دیگر را تغییر دهد؛ بنابراین، این کار باید براساس مستندات همان مدل انجام شود.
اضافهشدن VLANهای جدید، افزایش تعداد کاربران، توسعه سیاستهای امنیتی یا تغییرات گسترده ACL ممکن است نیاز به منابع سختافزاری را افزایش دهد.
اگر خطا بلافاصله پس از یک تغییر ایجاد شده باشد، بررسی تفاوت پیکربندی قبل و بعد از آن میتواند به شناسایی علت کمک کند.
راهکار: زمان شروع خطا را با تغییرات اخیر شبکه مقایسه کنید و ابتدا تغییراتی را بررسی کنید که مستقیماً با قابلیت دچار کمبود منابع ارتباط دارند.
برای تشخیص دقیق، ابتدا پیامهای سیستم را بررسی کنید و سپس وضعیت قوانین و منابع سختافزاری را ارزیابی کنید.
دستور زیر پیامهای ثبتشده در سیستم را نمایش میدهد:
show logging
در خروجی، به دنبال پیامهای مرتبط با TCAM، ACL، منابع سختافزاری و شکست در نصب قوانین باشید. زمان ثبت پیام را با زمان تغییرات پیکربندی مقایسه کنید.
برای مشاهده ACLهای تعریفشده از دستور زیر استفاده کنید:
show access-lists
سپس با بررسی پیکربندی، مشخص کنید ACLها روی کدام اینترفیسها اعمال شدهاند:
show running-config
این دستورات به بررسی قوانین کمک میکنند، اما بهتنهایی میزان مصرف واقعی TCAM را نشان نمیدهند.
در برخی سوئیچهای Catalyst مبتنی بر IOS XE، دستور زیر برای نمایش اطلاعات مصرف منابع TCAM کاربرد دارد:
show platform hardware fed switch active fwd-asic resource tcam utilization
پشتیبانی و نحو این دستور به مدل و نسخه نرمافزار بستگی دارد. اگر دستور در دستگاه شما پشتیبانی نشد، باید دستور معادل را در مستندات همان پلتفرم پیدا کنید.
در خروجی، ظرفیت کل، میزان مصرف، منابع باقیمانده و جدول دچار کمبود را بررسی کنید. هدف این است که مشخص شود مشکل به ACL، QoS یا بخش دیگری مربوط است.
در برخی مدلهای Catalyst، دستور زیر قالب تخصیص منابع را نمایش میدهد:
show sdm prefer
اگر دستگاه از SDM Template پشتیبانی کند، نتیجه میتواند به تشخیص تناسب قالب فعال با نیازهای شبکه کمک کند. پیش از تغییر قالب، محدودیتهای سختافزاری و احتمال نیاز به راهاندازی مجدد را بررسی کنید.
پس از شناسایی بخش دچار کمبود منابع، راهکار مناسب را انتخاب کنید:
پس از هر تغییر، وضعیت TCAM و عملکرد واقعی سیاستها را مجدداً بررسی کنید. صرف ناپدیدشدن پیام خطا به معنی نصب صحیح همه قوانین نیست.
برای پیشگیری از TCAM Exhaustion، ظرفیت سختافزاری را هنگام طراحی و توسعه شبکه در نظر بگیرید. پیش از اضافهکردن ACLهای گسترده یا سیاستهای جدید QoS، محدودیتهای مدل سوئیچ را بررسی کنید.
همچنین، پیکربندی را بهصورت دورهای بازبینی کنید، تغییرات مهم را مستند سازید و وضعیت منابع سختافزاری را پایش کنید. هنگام خرید سوئیچ جدید نیز علاوه بر تعداد پورتها و سرعت انتقال، ظرفیت TCAM و قابلیتهای موردنیاز شبکه را در نظر بگیرید.
خطای TCAM Exhaustion در سوئیچ سیسکو معمولاً به کمبود منابع سختافزاری برای اجرای یک قابلیت مشخص مانند ACL یا QoS مربوط است. تعداد زیاد قوانین، پیچیدگی پیکربندی، تخصیص نامناسب منابع و محدودیت سختافزاری از دلایل اصلی این مشکل هستند.
برای رفع خطا، ابتدا لاگها و مصرف واقعی TCAM را بررسی کنید، سپس بخش دچار کمبود منابع را شناسایی کنید. بهینهسازی قوانین، اصلاح سیاستهای QoS، بررسی SDM Template و در صورت لزوم ارتقای سختافزار میتوانند به حل مشکل کمک کنند.
مهمترین اصل این است که پیش از تغییر پیکربندی، علت دقیق کمبود منابع مشخص شود تا رفع خطا باعث اختلال در امنیت، مسیریابی یا عملکرد شبکه نشود.