思科自家設備專用的CDP網路協定,可以讓該公司出品的網路產品更容易管理,但有利必有弊,因此本文將說明如何使用CDP協定的相關指令來增進管理效率,並同時避免不肖使用者藉此攻擊Cisco網路設備。
從字面上來看,CDP是Cisco Discovery Protocol的縮寫,應用在Cisco網路設備上,可針對周遭的Cisco網路設備做尋找的動作。
CDP協定讓網路管理人員便於做多個網路設備的維護、設定變更等等。當網路拓樸經常需要大量變化的時候,這
個協定可以大幅減少網路管理人員的工作量。
CDP協定聽起來好處很多,確實也是如此,但是卻也隱藏了危機,深知這個協定的不肖使用者,可能會根據漏洞來攻擊Cisco網路設備,進而危害到整個
網路。
這篇文章預計要把這樣的危機介紹給各位,當然也會介紹CDP相關的知識,以便讓大家有個基本的認知。
CDP協定介紹
CDP(Cisco Discovery Protocol)協定是用來收集Cisco網路設備的相關資訊,只有Cisco網路設備適用於CDP協定,其他廠牌都不支援。因此,CDP協定可以提供Cisco交換機、路由器或是其他Cisco設備的摘要資訊給直接連接於此設備的其他Cisco設備。
CDP協定運作於網路七層協定的第二層,也就是資料連結層(Data Link Layer),也因此多種不同的Cisco網路設備,例如支援不同網路層協定的Cisco路由器(支援IP及Novell IPX)也可以經由CDP協定互相學習。
不過,這些使用CDP協定的設備都必須支援Sub-network Access Protocol(SNAP)協定的封裝行為,例如LAN、Frame Relay和ATM等等。
當Cisco網路設備啟動時,預設會啟動CDP協定。比較特別的是,CDP支援各種不同的網路環境,也支援各種不同的網路媒介,但限制就是CDP協定只能用於Cisco的網路設備,而且CDP協定不支援Frame Relay的Multiport子介面網路環境。
另外,CDP在IPv4和IPv6的使用上沒有差別,能提供的資訊也相同,所以好處都是一樣的,所以不用擔心CDP是否支援IPv6的問題。
支援CDP的條件
並非所有的Cisco網路設備都支援CDP協定。事實上,CDP協定只有在Cisco IOS的版本為10.3以後才有支援。
Cisco IOS指的是Cisco設備上的軟體,透過這個軟體可以下達指令給大部分的Cisco設備,Cisco IOS就像使用者和Cisco設備的中介層一樣,因此Cisco IOS可以看成Cisco設備上的作業系統。
在Cisco IOS指令介面中,可以透過show指令來輸出各種詳細資訊。不過,由於show指令只是純粹用來顯示設定值,因此這個指令是在User Mode或Privileged Mode底下執行的,而不是Global Configuration Mode及其他模式。
其中,show version指令可以用來顯示系統硬體資訊、軟體版本資訊、設定檔的所在位置與檔案名稱等等,指令如下所示:
藉由執行這個指令,可以從結果中觀察出目前正在使用什麼版本的Cisco IOS,輸出結果會有這樣一行:
這代表目前的Cisco IOS版本為12.1(20)EA1。以這個執行範例為例,這台Cisco網路設備就能夠支援CDP協定。
而所有設定使用CDP的Cisco設備都會傳送CDP的資料(稱為advertisement)到一個群播位址01:00:0C:CC:CC:CC中。所以,每個Cisco設備會在這個上面去聆聽是否有其他設備的資訊。
CDP協定所能擷取的資訊
到底CDP協定提供哪些資訊以方便網路管理人員呢?CDP協定採用所謂的TLV來表示所能收集的資訊。TLV是Type-Length-Value的縮寫,也是用於CDP之「advertisement」中的欄位。CDP協定所能擷取的資訊包含:
1. 設備ID:也就是設備的名稱,以ASCII字串的形式
表示。
2. 第三層的IP位址清單:包含接收端與發送端的網路
位址。
3. 全雙工或半雙工模式:這是指用於傳送CDP資料之
廣播介面的雙工模式。
4. 埠的ID:代表哪一個埠正用於傳送CDP資訊。
5. 所支援的功能列表:主要用來辨識是哪一種Cisco
設備,例如是交換機,還是路由器,或是其他設備,而從中了解支援怎樣的功能。
6. 硬體平台:例如Cisco 4500或是Cisco 7200等等。
7. 應用程式資料:代表提供一種機制是可以傳送某些
應用程式想要傳遞的資料。
8. 位置資訊:可以提供實體位置的資訊,可能包含郵
遞區號、街道名等等。而這必須事先透過網路管理人員在設備上先行設定過這些資料,才能透過CDP傳送給別台Cisco網路設備。
9. 位置伺服器資訊。
10. Native VLAN:這只支援用於IEEE 802.1Q協定
的介面。
11. 版本資訊:這是指Cisco IOS的版本。
12. VTP management domain。