CDP發(fā)現(xiàn)協(xié)議的維護(hù)及故障排除
當(dāng)網(wǎng)絡(luò)中增加了一臺(tái)路由器或者交換機(jī),那么現(xiàn)有的網(wǎng)絡(luò)設(shè)備是如何自動(dòng)發(fā)現(xiàn)這個(gè)“新鄰居”的呢?對(duì)于思科網(wǎng)絡(luò)來(lái)說(shuō),主要是CDP發(fā)現(xiàn)協(xié)議在其中起作用。簡(jiǎn)單的說(shuō),CDP發(fā)現(xiàn)協(xié)議就是用來(lái)獲取鄰居設(shè)備的信息。這些信息包括被連接設(shè)備的類型(交換機(jī)或者路由器)、連接到的路由器的接口或者本地連接的接口和設(shè)備的數(shù)量的等等。在這篇文章中,筆者主要想介紹一下這個(gè)CPD協(xié)議的維護(hù)以及如何來(lái)排除跟這個(gè)協(xié)議相關(guān)的故障。
一、獲取鄰居設(shè)備的相關(guān)信息
CDP發(fā)現(xiàn)協(xié)議的主要作用就是用來(lái)發(fā)現(xiàn)所有與本地設(shè)備直接連接的思科網(wǎng)絡(luò)設(shè)備。注意這句話說(shuō)有個(gè)定語(yǔ)“直接相連”非常關(guān)鍵。如果兩個(gè)設(shè)備之間還連接其它設(shè)備的話,那么就不能夠發(fā)現(xiàn)。
每個(gè)運(yùn)行CDP發(fā)現(xiàn)協(xié)議的路由器都會(huì)與自己的鄰居交換協(xié)議信息。網(wǎng)絡(luò)管理員在有需要的情況下,可以將CDP信息交換的結(jié)果顯示在連接到本地路由器的控制臺(tái)上。如下圖所示,在任何一臺(tái)路由器或者交換機(jī)的設(shè)備上,輸入以下命令:show cdp neighbors命令,就可顯示出與這臺(tái)路由器或者交換機(jī)“直接相連”的設(shè)備的相關(guān)信息。
從上面這個(gè)圖形中,我們可以得出如下結(jié)論。
一是關(guān)于CDP的維護(hù)大部分都必須在特權(quán)模式下進(jìn)行。如上圖所示,在開始的時(shí)候,筆者使用了Enable命令進(jìn)入到了特權(quán)模式。只有在這個(gè)模式下,才能夠查看鄰居設(shè)備的信息。注意,必須要在特權(quán)模式下進(jìn)行操作。
二是這個(gè)命令的輸入技巧。這個(gè)命令比較長(zhǎng),如果一個(gè)個(gè)字符的去輸入顯然比較費(fèi)時(shí)費(fèi)力。而且neighbors這個(gè)單詞又比較容易拼寫錯(cuò)誤。此時(shí)就需要用到IOS軟件的歷史紀(jì)錄命令。在實(shí)際工作中,只需要輸入nei三個(gè)字符,然后按一下Tab鍵,系統(tǒng)就會(huì)自動(dòng)補(bǔ)齊后面的支付,而不需要輸全。這對(duì)英文不怎么好的用戶來(lái)說(shuō),是一個(gè)福音。
三是這個(gè)命令所反映出來(lái)的信息。如上圖所示,這個(gè)命令可以反映出設(shè)備標(biāo)示的ID 、本地接口、連接保持時(shí)間、功能、平臺(tái)、端口標(biāo)示、VTP管理域名、本地Vlan、工作模式(全雙工或者半雙工)等等豐富的信息。如果這些信息還不能夠滿足網(wǎng)絡(luò)管理員需求的話,那么用戶還可以在這個(gè)命令后面加一個(gè)參數(shù)detail。如此的話,就可以顯示更加詳細(xì)的信息。
這些信息對(duì)于日常的網(wǎng)絡(luò)維護(hù)是非常有幫助的。如能夠讓管理員了解網(wǎng)絡(luò)上相關(guān)設(shè)備的所有概況,幫助管理員更加好的理解現(xiàn)有網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。對(duì)于后續(xù)網(wǎng)絡(luò)的維護(hù)與優(yōu)化也具有非常大的價(jià)值。
二、維護(hù)與監(jiān)控CDP信息
1、啟用或者關(guān)閉CDP協(xié)議。
默認(rèn)情況下,CDP發(fā)現(xiàn)協(xié)議是全局啟用的。不過(guò)如果與比較老的思科設(shè)備共同使用的時(shí)候,可能需要手工啟動(dòng)這個(gè)發(fā)現(xiàn)協(xié)議。如當(dāng)路由器與1900系列的交換機(jī)進(jìn)行互聯(lián)的時(shí)候,那么就需要在交換機(jī)上手工啟用這個(gè)協(xié)議。如果需要在路由器上全局啟用CDP發(fā)現(xiàn)協(xié)議的話,則可以通過(guò)CDP RUN命令。而在IOS 10.3以后的版本中,還支持在接口模式下使用CDP發(fā)現(xiàn)協(xié)議。如果要啟用這個(gè)特性的話,就需要進(jìn)入到接口配置模式,然后使用cdp enable在接口上啟用CDP。不過(guò)與全局模式相反,默認(rèn)情況下,在接口上的CDP發(fā)現(xiàn)協(xié)議缺省是沒(méi)有啟用的。
2、查看數(shù)據(jù)幀傳輸?shù)男畔ⅰT诰W(wǎng)絡(luò)維護(hù)與優(yōu)化的時(shí)候,需要知道數(shù)據(jù)幀傳輸?shù)南嚓P(guān)信息。要了解這些信息的話,網(wǎng)絡(luò)管理員就可以使用show cdp interface命令來(lái)查看。結(jié)果如下下圖所示:
可見使用這個(gè)命令可以獲取CDP用于通告和發(fā)現(xiàn)數(shù)據(jù)幀傳輸?shù)男畔ⅰ_@些信息包括保持時(shí)間、CDP分組發(fā)送的頻率、接口封裝的時(shí)間以及街口的管理和協(xié)議情況等等。毋庸置疑,這些信息對(duì)于后續(xù)維護(hù),特別是CDP性能的優(yōu)化,具有很大的參考價(jià)值。
3、禁用CDP發(fā)現(xiàn)協(xié)議。
雖然CDP協(xié)議能夠自動(dòng)發(fā)現(xiàn)新增加的網(wǎng)絡(luò)設(shè)備,但是從網(wǎng)絡(luò)管理員眼中,它是一把雙刃劍。一方面提高了網(wǎng)絡(luò)的靈活性,另一方面也給網(wǎng)絡(luò)造成了不小的安全隱患。如某個(gè)攻擊者如果攻破了一臺(tái)路由器或者交換機(jī),那么就可以通過(guò)CDP發(fā)現(xiàn)協(xié)議來(lái)了解與其相連的彎路設(shè)備的相關(guān)信息。這就為其進(jìn)行下一步的攻擊提供了非常重要的信息。為此有時(shí)候出于安全的目的而不喜歡使用某個(gè)設(shè)備的信息的時(shí)候,就需要禁用這個(gè)特定設(shè)備的CDP發(fā)現(xiàn)協(xié)議。如果要在全局級(jí)別下禁用CDP協(xié)議的話,那么可以在全局配置模式下使用no cdp run命令來(lái)實(shí)現(xiàn)。
不過(guò)在采取這個(gè)操作之前,筆者認(rèn)為管理者需要先了解全局配置與接口配置之間的關(guān)系。在上面筆者談到過(guò),在IOS10.3以后的版本中,CDP協(xié)議同時(shí)支持全局模式與接口模式。在何種情況下,如果關(guān)閉了全局配置模式下的CDP發(fā)現(xiàn)協(xié)議,那么對(duì)于接口模式下的CDP發(fā)現(xiàn)協(xié)議有什么影響呢?這里需要注意,如果在全局配置模式下禁用CDP發(fā)現(xiàn)協(xié)議的話,那么在接口上也就不能夠啟用CDP發(fā)現(xiàn)協(xié)議。#p#
三、CDP發(fā)現(xiàn)協(xié)議故障排除工作中常用的命令
有時(shí)候CDP發(fā)現(xiàn)協(xié)議也會(huì)出錯(cuò)。或者說(shuō)排除網(wǎng)絡(luò)故障時(shí)需要用到CDP協(xié)議的相關(guān)信息。筆者下面總結(jié)一下在日常網(wǎng)絡(luò)故障排除中可能需要用到的相關(guān)命令(跟CDP協(xié)議相關(guān)),以方便各位網(wǎng)絡(luò)管理員后續(xù)排除網(wǎng)絡(luò)問(wèn)題。
第一個(gè)命令是show cdp traffic。這個(gè)命令的輸出結(jié)果如下圖所示。
很明顯,這個(gè)命令主要顯示的是CDP計(jì)數(shù)器的相關(guān)值,包括發(fā)送接收校驗(yàn)和錯(cuò)誤的分組個(gè)數(shù)。錯(cuò)誤的分組個(gè)數(shù)最好越少越好。如果太多的話,會(huì)明顯降低網(wǎng)絡(luò)性能。
第二組命令是跟時(shí)間相關(guān)的信息。如命令cdp timers可以用來(lái)指定IOS軟件發(fā)送CDP更新的時(shí)間信息;cdp holdtime則用來(lái)指定接收設(shè)備在丟棄CDP分組前保持這個(gè)信息的時(shí)間等等。
四、CDP發(fā)現(xiàn)協(xié)議使用的注意事項(xiàng)
一是需要注意CDP協(xié)議在ISO7層架構(gòu)中的地位。CDP發(fā)現(xiàn)協(xié)議是ISO中規(guī)定的第二層協(xié)議中的一種,具體的說(shuō),是位于子網(wǎng)訪問(wèn)協(xié)議之上。這第二層連接底層的物理介質(zhì)和上層的網(wǎng)絡(luò)層協(xié)議。CDP發(fā)現(xiàn)協(xié)議運(yùn)行在所有的Cisco設(shè)備上,獨(dú)立于介質(zhì)和協(xié)議。這里需要注意的是,CDP發(fā)現(xiàn)協(xié)議跟TCP或者Telnet協(xié)議不同,其是思科網(wǎng)絡(luò)設(shè)備的專有協(xié)議,也只能夠運(yùn)行在思科的網(wǎng)絡(luò)設(shè)備上。理解這一點(diǎn)對(duì)于CDP協(xié)議的設(shè)置與維護(hù)有很大幫助。
二是需要注意協(xié)議的兼容性。到現(xiàn)在為止,CDP發(fā)現(xiàn)協(xié)議主要有兩個(gè)大的版本,分別為CDP版本1與CDP版本2。其中IOS12.0以后的版本支持的是CDP版本2的協(xié)議。而ISO103以及以后的版本缺省支持的是CDP版本1。這兩個(gè)版本到底有哪些差異,由于篇幅的限制,筆者不做過(guò)多展開,各位讀者若感興趣可以參考相關(guān)的資料。筆者這里要強(qiáng)調(diào)的一點(diǎn)是,CDP版本2能夠全面支持在接口模式下配置CDP發(fā)現(xiàn)協(xié)議,而CDP版本1則不行。這可能是兩個(gè)版本的CDP協(xié)議重大區(qū)別之一。
三是需要注意CDP協(xié)議在全局配置模式與接口配置模式下的聯(lián)系與差異。具體來(lái)說(shuō),就是記住一個(gè)原則?!熬痛蟛痪托 ?。也就是說(shuō),如果在全局配置模式下,禁用了CDP發(fā)現(xiàn)協(xié)議,那么在接口模式下也就不能夠啟用CDP協(xié)議。反之,則可以。
四是需要注意安全問(wèn)題。由于CDP協(xié)議會(huì)泄露網(wǎng)絡(luò)中的一些比較敏感的信息,會(huì)為攻擊者提供方便。為此在一些對(duì)于安全要求比較高的企業(yè)中,如銀行等金融企業(yè),往往會(huì)禁用這個(gè)協(xié)議。由此可見,CDP發(fā)現(xiàn)協(xié)議也是一把雙刃劍,在使用的時(shí)候需要注意其帶來(lái)的安全隱患。