今天,学习了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-c
c一摸一样。而且还是指向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也不会收到。
CCIE Security 2009 IOS防火墙合集
阅读(850) | 评论(0) | 转发(0) |