在大型网络中,了解有哪些东西连接到了网络是非常重要的。网络越大,逻辑上和物理上都是——其拓扑越难理清。再加上还有冗余链路和链路聚合,会大大增加理清网络中设备互连情况的难度。而且,问题还不止于此。混合使用来自不同供应商的网络产品,会让设备发现协议无所适从。但是,想要理清环境也并非没有可能。且听我细细道来。
首先,我要讲一个背景故事:我曾经在一个团队中,我们管理的环境中大部分是思科设备。“大部分”这个词对于设备发现而言有重要意义。与其他网络供应商一样,思科提供了一种私有协议,允许网络管理员查看有哪些设备直接连接了某一台设备,当然你要有这台设备的管理员访问权限。很多读者肯定都熟悉下面这个思科发现协议(CDP)的截图:
图1:思科发现协议
执行命令“show CDP neighbors”,会得到一个直观显示所连接设备的表格。执行“show CDP neighbors details”,则可以展开表格,查看交换机之间的详细连接信息(截图里有一个 VLAN匹配错误,对吧?),以及各个设备的详细信息,包括其管理IP地址信息。
图2
现在一切顺利,是吧?不过当有一台思科交换机连接了另一个供应商的硬件,然后这个硬件又不支持CDP时,会出现什么情况?幸好,我们还可以使用链路层发现协议(Link Layer Discovery Protocol, LLDP),它有与CDP及类似私有发现协议一样强大的查询功能。LLDP很适合用来查看多供应商网络中相邻网络设备的连接情况,但是人们对它重视不够。我们来看一个真实例子。
我在前面提到,我的环境中大部分是思科设备,但是我们也在一些特殊位置使用了其他供应商的产品。我们在美国及海外的大部分分支网络中使用了Meraki的产品,但是与其他第三方设备一样,Meraki接入端(AP)无法通过CDP查看到交换机的连接情况。换言之,“show CDP neighbors”命令无法查看到它们的信息。
使用LLDP来查看网络会有什么变化
我们转而使用LLDP,则马上会看到不一样的结果——结果好多了。
默认情况下,思科Catalyst交换机禁用了LLDP。我们要先打开这个协议,然后执行“show LLDP neighbors”,就可以查看到这些Meraki AP了。
然后,执行“show LLDP neighbors detail”,就可以展开详细信息。
就是这个结果!使用LLDP,得到的结果更加好。这个协议很成熟,也已经是一个真正的标准(IEEE 802.1AB),而且它能够显示的信息还不仅仅只有来自不同供应商的互连网络基础架构的信息。有许多VoIP电话和模拟终端适配器都支持LLDP,另外一些CCTV(闭路电视)摄像头及工具类网络主机也支持。这是在交换机配置过程中很容易被忽略的特性之一,因为它默认是禁用的,但是只要开始使用它,它就会在故障修复和环境映射上发挥巨大作用。
有一些环境使用LLDP来分配VoIP电话等设备,不过这又是另一个话题。现在你要记住的是,和CDP一样,LLDP是一个查看设备的便捷工具,它可以直接查看到所连接的设备(网络中的下一个交换机),但是它的功能还不止于此。如果要查看所有互连设备——从一个核心交换机到一个大楼聚合交换机、再到边界交换机,则需要针对每一个交换机执行命令“show LLDP neighbors”。