CDP簡單應用

CDP簡單應用
編輯: 天馬行空   發表日期: 2010-02-11 11:41  
  今天,學習了cisco的CDP協議。原來一直以爲CDP發現鄰居,只能發現直連的設備。但今天老師還講了,在一定條件下,CDP不只能發現直連的鄰居。(注意在這裏是有條件的) 
  cisco中的CDP協議,一般都是用來查看鄰居信息的。如:設備名稱、設備IP、端口號碼 (發送這個信息的端口)、設備性能(設備是一個交換機還是路由器呢)、軟件版本(操作系統的版本)、平臺(硬件平臺)、VTP 域名、雙工模式 (發送CDP 信息端口的雙式模式)。 
  CDP 協議在默認情況下每隔60 秒(hello time) 向多播地址01-00-0c-cc-cc-cc去發送Hello 信息保持與其它設備之間的存活.(這點尤其要注意) 
  弄清楚了CDP原理之後,那麼,我們就來看看。 
  第一種情況:CDP發現,不只能發現鄰居。 
  1.我在這裏選用的是思科的兩臺路由器和一個不支持CDP的TP-Link家庭交換機。如圖搭建。 
 
  2.我們分別在路由器r1和r2上使用CDP協議,來看看,r1可以看到r2的信息,r2同樣也可以看到r1的信息。如圖: 
   
 
  原理解析:在這裏就先要了解交換機的工作原理了。交換機在收到一個包時,首先會查看目標MAC地址是不是在自己的CAM表中。如果在,便按照對應的地址路徑發送出去。如果不在,就泛洪。所以,當R1發送一個CDP請求包到r2時,要經過TP-Link交換機。TP-Link交換機便會查看自己的CAM表,看裏面有沒有這個CDP的多播01-00-0c-cc-cc-cc地址。很顯然,由於TP-Link交換機不支持CDP,CAM表中自然就沒有01-00-0c-cc-cc-cc這個多播地址。所以就泛洪到r2了。因此,r2就會接受r1的CDP請求。於是就返回CDP信息給了r1。所以,在 
  r1上能看見r2的信息。同理,r2也會看到r1的信息。 
  第二種情況:CDP只能發現鄰居信息。 
  1.我在這裏就選用了兩臺cisco的路由器和一個cisco的交換機。按照下圖搭建。 
 
  2.我們再分別進入r1和r2,還有交換機。使用CDP協議。這裏就只能看見自己直連的設備信息了。如圖: 
 
   
 
   
  很明顯,分別在兩臺路由器上看見的鄰居,就是直連設備交換機。 
 
  同樣在交換機裏,也只能看見兩臺直連的路由器r1和r2的信息。 
   
  原理解析:很明顯,cisco的交換機是支持CDP協議的。那好呀,有人就說我可以把CDP關了。這樣不就變成第一種情況了嗎?我想告訴大家的是,在這裏如果把交換機的CDP協議關掉了的話(no cdp run)。那麼在r1和r2裏用CDP協議就看不到任何信息了。爲什麼會有第二種情況,原因就在下面的這幅圖上。如圖: 
 
  我們在交換機上,查看CAM表。輸入命令:show mac-address-table 
  出現了上圖中的信息。發現在表中有一個地址和CDP多播地址01-00-0c-cc-cc-cc一摸一樣。而且還是指向CPU的。好了,到了這裏,大家就應該明白是爲什麼了吧~ 
  不過還是再說說吧~ 
  r1發送一個目標mac地址爲01-00-0c-cc-cc-cc多播地址的CDP請求包到r2,經過交換機。那麼交換機接收到這個包,就要查看自己的CAM表,看是否有01-00-0c-cc-cc-cc這個地址。交換機一查,“有”,並且是指向CPU的。於是就把這個包給了CPU處理了,就不會再轉發到r2了。CPU處理了,交換機就將自己的信息返回給了r1,所以r1就能看到交換機的信息了。同理,r2也會看到交換機的信息。 
  那麼爲什麼交換機關閉了CDP協議,就看不到了信息了呢?原因很簡單,前面的過程還是不變。(r1發送一個目標mac地址爲01-00-0c-cc-cc-cc多播地址的CDP請求包到r2,經過交換機。那麼交換機接收到這個包,就要查看自己的CAM表,看是否有01-00-0c-cc-cc-cc這個地址。交換機一查,“有”,)這裏要說一下,雖然關閉了CDP協議,但是交換機的CAM表中還是有這個01-00-0c-cc-cc-cc多播地址(並且是指向CPU的。於是就把這個包給了CPU處理了,就不會再轉發到r2了。CPU處理了後。)這裏就有問題了,當CPU處理了,本來是要返回信息給r1的。但是由於交換機已經關閉了cdp協議,所以就不再返回信息給r1了。所以,r1就收不到任何信息了。同理r2也不會收到。
發佈了11 篇原創文章 · 獲贊 22 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章