راهنمای جامع و تخصصی عملکرد، امنیت، مدیریت منابع سختافزاری و عیبیابی پیشرفته در سوئیچهای سیسکو
جدول CAM در سوئیچهای شبکه، آدرسهای MAC دستگاههای متصل را به پورتهای فیزیکی سوئیچ نگاشت میدهد. این جدول در حافظهٔ سختافزاری سریع ذخیره میشود تا جستجوها در حد نانوثانیه انجام گیرد. فرآیند عملکرد در مراحل زیر خلاصه میشود:
در سوئیچهای سیسکو، دستور show mac address-table برای نمایش جدول CAM استفاده میشود. برای شمارش ورودیها از show mac address-table count بهره ببرید.
در زیر، نمونه خروجی دستور show mac address-table در یک سوئیچ سیسکو آورده شده است. این جدول آدرسهای MAC، VLAN، نوع ورودی و پورت مربوطه را نشان میدهد:
VLAN MAC Address Type Ports ---- ----------- -------- ----- 1 0011.2233.4455 DYNAMIC Gi1/0/1 1 00a0.c9b2.3e4f DYNAMIC Gi1/0/2 2 0050.56ab.cdef STATIC Gi1/0/3 1 000c.29a4.b5c6 DYNAMIC Gi1/0/4
بر اساس مستندات سیسکو و NetworkLessons.com
CAM فقط تطبیقهای دقیق باینری (۰ و ۱) را پشتیبانی میکند و برای جدول MAC ایدهآل است. اما TCAM (Ternary Content Addressable Memory) حالت سوم «X» (مهم نیست یا wildcard) را اضافه میکند، که برای تطبیقهای الگویی مانند Longest Prefix Match در روتینگ IP، ACLها و QoS ضروری است.
TCAM گرانتر و پرمصرفتر از CAM است، اما در سوئیچهای مدرن مانند Catalyst سیسکو، هر دو با هم استفاده میشوند.
برای بررسی استفاده از TCAM، از دستور show platform hardware fed active fwd-asic resource tcam utilization استفاده کنید. نمونه خروجی:
| Table | Max Values | Used Values |
|---|---|---|
| Unicast MAC addresses | 32768/1024 | 19/21 |
| L3 Multicast entries | 8192/512 | 0/9 |
| Directly or indirectly connected routes | 24576/8192 | 3/19 |
| QoS Access Control Entries | 5120 | 85 |
| Security Access Control Entries | 5120 | 126 |
یکی از چالشهای اصلی در سوئیچهای Enterprise (مانند سری Catalyst 3750, 3850, 9300)، محدودیت سختافزاری TCAM است. حافظه TCAM یک منبع اشتراکی است. سیسکو از طریق SDM (Switch Database Management) به شما اجازه میدهد نحوه تقسیم این کیک سختافزاری را تعیین کنید.
برای مشاهده وضعیت فعلی از دستور show sdm prefer استفاده کنید. تغییر این پروفایل نیاز به Reboot دارد.
جدول CAM ظرفیت محدودی دارد (مثلاً ۸۰۰۰ تا ۶۴۰۰۰ ورودی). مهاجم با ارسال فریمهای جعلی با MACهای تصادفی، جدول را پر میکند. سوئیچ سپس flooding میکند و مثل هاب عمل مینماید، که اجازهٔ شنود ترافیک را میدهد.
مهاجم با پاسخهای ARP جعلی، MAC خودش را به جای گیتوی قرار میدهد و جدول CAM را مسموم میکند، که منجر به Man-in-the-Middle میشود.
بسیاری از مهندسان شبکه تصور میکنند Flooding فقط برای ترافیک Broadcast است. اما خطرناکترین نوع ترافیک برای CPU سوئیچ و پهنای باند شبکه، Unknown Unicast Flooding است.
این مشکل زمانی رخ میدهد که ترافیک رفت از یک مسیر و ترافیک برگشت از مسیر دیگری (مثلاً سوئیچ دوم در HSRP) عبور کند:
برای حل مشکل Unicast Flooding که در بالا ذکر شد، زمان Aging بسیار مهم است. زمان پیشفرض Aging ۳۰۰ ثانیه است، اما برای جلوگیری از flooding، آن را با ARP timeout (معمولاً ۱۴۴۰۰ ثانیه یا ۴ ساعت) همسان کنید — مثلاً ۱۴۴۱۰ ثانیه (ARP + ۱۰ ثانیه). دستور: mac address-table aging-time 14410.
در شبکههای بزرگ، Aging را per-VLAN تنظیم کنید. در تغییرات توپولوژی (TCN)، Aging را سریعتر کنید.
CAM پایهٔ QoS است، اما TCAM برای اعمال سیاستهای پیچیده (مانند اولویتبندی VoIP) استفاده میشود. سوئیچها با TCAM، ACLهای QoS را در یک جستجو اعمال میکنند.
بهترین شیوه: ظرفیت TCAM را برای QoS اولویتبندی کنید تا تأخیر کم بماند. از show sdm prefer برای پارتیشنبندی استفاده کنید.
در سوئیچهای لایه ۳ مدرن، CPU درگیر ارسال تکتک بستهها نمیشود. این کار توسط سختافزار (ASIC) و با کمک جدولهای مشتق شده از نرمافزار انجام میشود که سرعت Wire-Speed را تضمین میکند:
| مفهوم نرمافزاری (Control Plane) | معادل سختافزاری (Data Plane) | وظیفه |
|---|---|---|
| Routing Table (RIB) | FIB (Forwarding Information Base) | ذخیره شده در TCAM. تصمیمگیری سریع برای انتخاب پورت خروجی بر اساس IP مقصد (Longest Match). |
| ARP Table | Adjacency Table | ذخیره شده در RAM اختصاصی. حاوی اطلاعات Rewrite (هدر جدید لایه ۲) برای جایگزینی سریع MAC آدرسهای Hop بعدی. |
وقتی تغییری در شبکه رخ میدهد (مثلاً لینک قطع میشود)، CPU جدولهای RIB و ARP را آپدیت کرده و بلافاصله تغییرات را به TCAM و حافظه Adjacency تزریق میکند تا وقفه در ارسال بستهها به حداقل برسد.
جدول CAM یا Content Addressable Memory، حافظهای است که در سوئیچهای شبکه برای نگاشت آدرسهای MAC به پورتها استفاده میشود. این جدول اجازه جستجوی موازی و سریع را میدهد.
CAM فقط تطبیق دقیق باینری (0 و 1) را پشتیبانی میکند، در حالی که TCAM حالت سوم 'X' (مهم نیست) را برای ACL و QoS اضافه میکند.
از دستور 'show mac address-table' استفاده کنید تا محتوای جدول CAM را ببینید.
Flooding زمانی رخ میدهد که آدرس MAC مقصد در جدول CAM پیدا نشود، یا جدول پر شده باشد (CAM Overflow).
از Port Security، DHCP Snooping و Dynamic ARP Inspection (DAI) استفاده کنید.
در جدول زیر، مشکلات رایج، علل و راهحلهای عیبیابی جدول CAM آورده شده است:
| مشکل | علت احتمالی | راهحل |
|---|---|---|
| Flooding ترافیک Unicast | عدم تطابق Aging Time CAM با ARP Timeout | Aging Time را به ۱۴۴۱۰ ثانیه تنظیم کنید: mac address-table aging-time 14410 |
| جدول CAM خالی یا پر نمیشود | مشکل STP یا TCN (Topology Change Notification) | STP را چک کنید و show spanning-tree اجرا کنید؛ Aging را سریع کنید |
| CAM Overflow و شنود ترافیک | حمله MAC Flooding | Port Security فعال کنید: switchport port-security maximum 2 |
| ورودیهای قدیمی در جدول | Aging Time طولانی | جدول را پاک کنید: clear mac address-table dynamic |
| مشکل QoS به دلیل TCAM پر | استفاده بیش از حد ACL | استفاده TCAM را چک کنید: show platform hardware tcam utilization |
| TCAM Exhaustion برای Security ACL | تعداد ACEs بیش از حد | ACLها را بهینه کنید یا SDM را تغییر دهید: show platform tcam utilization |
show mac address-table count برای شمارش ورودیها استفاده کنید و SNMP برای مانیتورینگ مداوم تنظیم کنید. برای TCAM، از show sdm prefer بهره ببرید.
show mac address-table count).