در شبکههای سیسکو، پیدا کردن دستگاهی که به هر پورت متصل شده است همیشه به بررسی کابلها یا مراجعه حضوری به رک نیاز ندارد. سیسکو پروتکلی به نام CDP یا Cisco Discovery Protocol دارد که به تجهیزات شبکه اجازه میدهد اطلاعات مشخصی درباره خودشان در اختیار دستگاههای همسایه قرار دهند. با استفاده از CDP میتوان از داخل CLI سوئیچ سیسکو یا روتر، دستگاههای متصل را شناسایی کرد و اطلاعاتی مانند نام دستگاه، پورت اتصال، مدل دستگاه، آدرس IP و حتی نسخه سیستمعامل آن را مشاهده کرد.
CDP مخصوص تجهیزات Cisco طراحی شده و در لایه 2 شبکه فعالیت میکند. به همین دلیل برای تبادل اطلاعات CDP، الزامی نیست که دو دستگاه در یک Subnet قرار داشته باشند یا حتی ارتباط IP بین آنها برقرار باشد. همین ویژگی باعث شده CDP به یکی از ابزارهای کاربردی مدیران شبکه برای شناسایی توپولوژی، بررسی اتصالات و عیبیابی شبکههای مبتنی بر تجهیزات سیسکو تبدیل شود.
CDP مخفف Cisco Discovery Protocol است. این پروتکل اختصاصی سیسکو به دستگاههای متصل مستقیم اجازه میدهد اطلاعاتی درباره خودشان برای یکدیگر ارسال کنند. برای مثال فرض کنید یک سوئیچ Cisco Catalyst دارید و نمیدانید پورت GigabitEthernet1/0/24 آن به کدام سوئیچ دیگر متصل شده است. اگر CDP روی تجهیزات فعال باشد، با اجرای یک دستور ساده میتوانید متوجه شوید دستگاه مقابل چیست و اتصال از طریق کدام Interface آن برقرار شده است.
CDP در Layer 2 مدل OSI فعالیت میکند و اطلاعات Discovery را فقط بین دستگاههای مستقیماً متصل ردوبدل میکند. بنابراین CDP قرار نیست تمام دستگاههای موجود در شبکه را کشف کند؛ بلکه اساساً Neighborهای مستقیم را نشان میدهد.
دستگاههای Cisco که CDP روی آنها فعال است، بهصورت دورهای پیامهایی حاوی اطلاعات خود از Interfaceهای فعال ارسال میکنند. دستگاه Cisco متصل به آن Interface این پیام را دریافت کرده و اطلاعات Neighbor را برای مدت مشخصی در جدول CDP نگهداری میکند. این اطلاعات شامل مواردی مانند Device ID، Interface، Platform و Capabilities است و بسته به دستگاه و اطلاعات Advertise شده، جزئیات بیشتری نیز میتواند وجود داشته باشد.
اگر ارتباط بین دو دستگاه قطع شود یا پیامهای CDP دیگر دریافت نشوند، پس از پایان Holdtime اطلاعات مربوط به آن Neighbor از جدول حذف خواهد شد. نکته مهم این است که CDP فقط اطلاعات دستگاههای متصل مستقیم را نشان میدهد. برای مثال اگر ساختار شبکه به شکل زیر باشد:
Switch A → Switch B → Switch C
هنگامی که دستور CDP را روی Switch A اجرا میکنید، معمولاً Switch B بهعنوان Neighbor مستقیم دیده میشود، نه Switch C.
مهمترین مزیت CDP این است که بدون نیاز به ورود مستقیم به دستگاه مقابل، اطلاعات مفیدی درباره آن در اختیار مدیر شبکه قرار میدهد. میزان اطلاعات قابل مشاهده به نوع دستگاه، نسخه نرمافزار و اطلاعات ارسالشده توسط Neighbor بستگی دارد، اما معمولاً موارد زیر اهمیت بیشتری دارند.
Device ID مشخص میکند دستگاه متصل چه نامی دارد. در بسیاری از تجهیزات Cisco این مقدار با Hostname دستگاه ارتباط دارد. برای مثال ممکن است در خروجی ببینید:
SW-CORE-01
اگر نامگذاری تجهیزات شبکه بهدرستی انجام شده باشد، Device ID بهسرعت مشخص میکند هر لینک به کدام سوئیچ، روتر یا دستگاه دیگر متصل شده است.
Local Interface نشان میدهد Neighbor موردنظر به کدام پورت دستگاه فعلی متصل است. برای مثال:
GigabitEthernet1/0/24
یعنی دستگاهی که در خروجی CDP مشاهده میکنید از سمت سوئیچی که روی آن دستور را اجرا کردهاید، به پورت Gi1/0/24 متصل شده است.
Port ID پورت سمت دستگاه مقابل را مشخص میکند. برای مثال اگر مشاهده کنید:
Local Interface: Gi1/0/24
Port ID: Gi0/1
یعنی Gi1/0/24 سوئیچ فعلی به Gi0/1 دستگاه Neighbor متصل شده است. این اطلاعات هنگام بررسی کابلکشی و Uplink بین سوئیچها بسیار کاربردی است.
در بخش Platform میتوان مدل یا خانواده سختافزاری دستگاه مقابل را مشاهده کرد. برای مثال ممکن است CDP مشخص کند Neighbor یک سوئیچ Cisco Catalyst است. این قابلیت مخصوصاً زمانی مفید است که تعداد زیادی تجهیزات داخل رک وجود دارد و نمیدانید هر لینک دقیقاً به کدام دستگاه متصل شده است.
CDP میتواند نوع یا قابلیت کلی دستگاه Neighbor را نیز مشخص کند. برای مثال از طریق این بخش میتوان تشخیص داد دستگاه مقابل در چه نقشی مانند Switch یا Router فعالیت میکند. این اطلاعات به مدیر شبکه کمک میکند بدون Login کردن به تمام تجهیزات، دید اولیهای نسبت به ساختار شبکه به دست آورد.
در خروجی Detail پروتکل CDP ممکن است Management IP یا آدرس IP اعلامشده توسط دستگاه Neighbor نیز نمایش داده شود. این قابلیت بسیار کاربردی است؛ زیرا بعد از شناسایی دستگاه میتوانید IP آن را پیدا کرده و در صورت وجود دسترسی مدیریتی، از طریق SSH یا روشهای مدیریتی دیگر به آن متصل شوید.
یکی دیگر از اطلاعاتی که ممکن است در خروجی کامل CDP مشاهده کنید، نسخه نرمافزار دستگاه مقابل است. در تجهیزات Cisco معمولاً اطلاعات مربوط به Cisco IOS، IOS XE یا سیستمعامل مرتبط با دستگاه نمایش داده میشود. این مورد هنگام بررسی تجهیزات، Inventory شبکه یا عیبیابی اولیه مفید است.
یکی از اصلیترین دستورات برای بررسی CDP در تجهیزات Cisco دستور زیر است:
show cdp neighbors
این دستور یک نمای خلاصه از Neighborهای CDP ارائه میدهد و معمولاً اطلاعاتی مانند Device ID، Local Interface، Holdtime، Capability، Platform و Port ID را نمایش میدهد.
برای مثال خروجی ممکن است ساختاری مشابه زیر داشته باشد:
Device ID Local Intrfce Holdtme Capability Platform Port ID
این دستور زمانی مناسب است که فقط میخواهید سریع متوجه شوید چه دستگاههایی مستقیماً به سوئیچ یا روتر متصل هستند و هر کدام از چه پورتی استفاده میکنند.

اگر اطلاعات بیشتری درباره دستگاههای متصل نیاز دارید، دستور زیر کاربردیتر است:
show cdp neighbors detail
در خروجی Detail میتوانید بسته به Neighbor اطلاعات بیشتری مانند Device ID، IP Address، Platform، Interface، Port ID و Software Version را مشاهده کنید. به همین دلیل show cdp neighbors detail یکی از دستورات بسیار مفید هنگام Troubleshooting تجهیزات Cisco است. اگر فقط اطلاعات مربوط به یک Interface خاص موردنظر باشد، بسته به پلتفرم و نسخه نرمافزار میتوان از دستورات مرتبط با CDP برای همان Interface نیز استفاده کرد.
برای مشاهده وضعیت کلی CDP میتوان از دستور زیر استفاده کرد:
show cdp
در بسیاری از تجهیزات Cisco، CDP بهصورت پیشفرض فعال است. همچنین برای فعال کردن CDP بهصورت Global از دستور زیر در Configuration Mode استفاده میشود:
cdp run
و برای غیرفعال کردن کامل آن:
no cdp run
اما ممکن است بخواهید CDP در کل دستگاه فعال باشد و فقط روی یک Interface مشخص غیرفعال شود. در این حالت وارد تنظیمات Interface شده و از دستور زیر استفاده میشود:
no cdp enable
برای فعال کردن مجدد:
cdp enable
این قابلیت بهخصوص برای کنترل انتشار اطلاعات CDP روی پورتهایی که به شبکههای غیرقابل اعتماد یا خارج از محدوده مدیریتی متصل هستند اهمیت دارد.
فرض کنید وارد یک مجموعه شدهاید که چندین سوئیچ Cisco داخل رک دارد، اما هیچ مستندی از کابلکشی شبکه وجود ندارد. مشخص نیست Uplink هر سوئیچ به کجا متصل شده و حتی Management IP بعضی از تجهیزات نیز در دسترس نیست.
در چنین شرایطی CDP میتواند نقطه شروع بسیار خوبی باشد.
با اجرای show cdp neighbors روی سوئیچ اصلی میتوانید Neighborهای مستقیم را شناسایی کنید. سپس Local Interface و Port ID را بررسی کرده و ارتباط فیزیکی بین تجهیزات را مشخص کنید. اگر آدرس IP دستگاه مقابل از طریق CDP Advertise شده باشد، با show cdp neighbors detail میتوانید آن را نیز پیدا کنید. به این ترتیب میتوان بخشی از توپولوژی فیزیکی شبکه را بدون دنبال کردن دستی تکتک کابلها شناسایی کرد.
CDP و LLDP هدف مشابهی دارند: شناسایی دستگاههای مستقیماً متصل و تبادل اطلاعات Neighbor.
تفاوت اصلی این است که CDP یک پروتکل اختصاصی Cisco است، در حالی که LLDP یا Link Layer Discovery Protocol یک استاندارد IEEE 802.1AB محسوب میشود و توسط تجهیزات شرکتهای مختلف پشتیبانی میشود. بنابراین در شبکهای که عمدتاً از تجهیزات Cisco استفاده میکند، CDP بسیار کاربردی است. اما در محیط Multi-Vendor که برای مثال سوئیچهای Cisco، HPE، Aruba و سایر برندها در کنار یکدیگر قرار گرفتهاند، LLDP معمولاً گزینه استانداردتر و سازگارتر است.

CDP به خودی خود ابزار مدیریت یا Login به دستگاه نیست، اما اطلاعاتی درباره زیرساخت شبکه منتشر میکند. اطلاعاتی مانند Hostname، مدل سختافزار، Interfaceها، آدرس مدیریتی و نسخه نرمافزار میتوانند برای فردی که نباید به این اطلاعات دسترسی داشته باشد مفید باشند.
به همین دلیل بهتر است CDP بدون بررسی روی هر پورتی فعال باقی نماند. برای مثال روی لینکهای داخلی بین سوئیچهای تحت مدیریت، استفاده از CDP میتواند بسیار مفید باشد. در مقابل، روی Interfaceهایی که به شبکههای خارج از کنترل سازمان یا تجهیزات غیرقابل اعتماد متصل هستند، باید نیاز واقعی به CDP بررسی شود و در صورت عدم نیاز آن را روی همان Interface غیرفعال کرد.
برای کار روزمره با CDP چند دستور اهمیت بیشتری دارند:
show cdp neighbors
نمایش خلاصه دستگاههای Neighbor
show cdp neighbors detail
نمایش اطلاعات کاملتر Neighborها
show cdp
بررسی وضعیت و پارامترهای CDP
cdp run
فعال کردن CDP بهصورت Global
no cdp run
غیرفعال کردن CDP بهصورت Global
cdp enable
فعال کردن CDP روی Interface
no cdp enable
غیرفعال کردن CDP روی Interface
CDP یا Cisco Discovery Protocol یکی از ابزارهای ساده اما بسیار کاربردی در شبکههای مبتنی بر تجهیزات سیسکو است. این پروتکل در Layer 2 فعالیت میکند و به تجهیزات Cisco اجازه میدهد اطلاعات خود را با Neighborهای مستقیماً متصل به اشتراک بگذارند. با استفاده از CDP میتوان اطلاعاتی مانند Device ID، پورت محلی، پورت دستگاه مقابل، Platform، Capability، آدرس IP و در برخی خروجیها نسخه نرمافزار دستگاه را مشاهده کرد. دستور show cdp neighbors برای مشاهده سریع همسایهها و show cdp neighbors detail برای بررسی جزئیات بیشتر کاربرد دارد.
در شبکههایی که مستندسازی کاملی ندارند، CDP میتواند برای پیدا کردن Uplinkها، شناسایی تجهیزات متصل، تشخیص پورتهای دو سمت لینک و ترسیم اولیه توپولوژی شبکه بسیار مفید باشد. با این حال، از آنجا که CDP میتواند بخشی از اطلاعات زیرساخت را در اختیار دستگاه متصل قرار دهد، بهتر است فعال بودن آن روی Interfaceهای غیرضروری نیز از نظر امنیتی بررسی شود.