[转]拓扑发现的基本原理与游离诊断方法

基本原理

信息采集

网络设备在运行过程中,会产生一些包含拓扑结构的信息,如下:

  1. 明确的链路类信息,此类信息原本是厂商提供出来,协助网管分析网络拓扑结构的,只要设备全部支持,就比较准确,否则会出现穿透问题。如
  • CDP:Cisco Discovery Protocol,由CISCO推出的邻居设备发现协议
  • NDP:Neighbor Discovery Protocol,由Huawei参考CDP推出的邻居设备发现协议,属于早期设备支持,新的Huawei设备往往同时支持NDP与LLDP
  • LLDP:Link Layer Discovery Protocol,由IEEE推出的,与厂商无关的邻居设备发现协议,目前广泛应用在非CISCO设备上,尤其是Huawei与H3C

链路类信息,一般会很明确的指出,本设备的某个端口与目标设备的某个端口存在直接的链路连接。
如:
设备A 端口eth0/1 设备B 端口eth1/1

  1. 不明确的方向类信息
    即转发表FDB。
    一般只能表明,本设备的某个端口上,存在的某个MAC地址记录。
    如:
    设备A 端口eth0/1 MAC地址00:00:00:00:00:01
    上述两种信息,目前一般都是局域网设备支持,如果设备是路由器,往往缺少这方面的信息。

拓扑计算

实际的拓扑计算过程较为复杂,本文做一些简化,大家可以大致理解为如下过程:

  1. 整理所有的可能存在的链路,主要来自
    a. 所有明确的链路类信息,即CDP等
    b. 部份不明确的方向类信息,即设备A包含设备B,同时设备B也包含设备A的两条转发表信息,我们可以复合为一条可能存在的链路
  2. 对这些可能存在的链路进行合理性检查,排除不合理的链路

剩余的所有链路,就作为最终的拓扑链路。

常见网络类型

根据基本原理可以得到,拓扑计算分为两人过程,并且高度依赖设备所能提供的信息。以下表格说明一般设备支持的情况:

厂商 路由器支持情况 交换机支持情况
CISCO 不支持FDB
支持本地链路CDP,而非本地链路由于运营商租用线路无法支持
支持CDP、FDB
H3C 不支持FDB
支持本地链路LLDP,而非本地链路由于运营商租用线路无法支持
支持LLDP、NDP、FDB
HUAWEI 不支持FDB
支持本地链路LLDP,而非本地链路由于运营商租用线路无法支持
支持LLDP、NDP、FDB

根据上述设备支持情况可以推断出以下表格,包含了几种典型的网络拓扑计算类型:

网络 举例 发现情况
所有设备支持CDP、NDP或LLDAP中的一种 如全CISCO设备网络或全支持LLDP的设备网络 只要设备全部开启,且不存在未配置community的设备,一般可完全发现链路
所有设备仅支持FDB 如全部是CISCO二层交换机 一般可完全发现链路
所以设备均是路由器 如发现城域网 一般无法完全发现链路,因为路由器间的链路往往存在租用运营商,一根链路也可能通过VPN等技术同时连接多个其它路由器。
只能通过手工链路或引导用户使用网络拓扑。
各种设备混杂 如路由器与交换机各占一半 一般可以计算出交换机间的链路,但交换机与核心路由器间、路由器间的链路无法计算。
只能通过手工连接解决。

诊断步骤

确定网络类型,如果网络类型是城域网,发现的设备全是路由器,那么基本可以放弃诊断,使用手工链路或引导用户使用网络拓扑,不要观注物理拓扑。
确定设备是否支持CDP、NDP、LLDP中的任意一种,并尽量启用这些协议中的某一个,但不应该同时启用两个或两个以上的协议
这点最为重要,尤其是CDP或LLDP。而NDP属于老协议,目前只有老设备支持了,所以不建议启用。
如果还存在部份交换机与核心设备之间的链路无法计算,则很可能是核心设备不支持拓扑发现协议,此时建议使用手工链路。

设备配置方法

NDP相关操作

NDP由Huawei或H3C设备支持。
telnet到设备
执行super或system进入系统视图
查看所有的ndp链路
disp ndp
关闭ndp
undo ndp enable
启用ndp
ndp enable

LLDP相关操作

telnet到设备
执行super或system进入系统视图
查看所有的ndp链路
disp lldp
关闭lldp
undo lldp enable
启用lldp
lldp enable

你可能感兴趣的:([转]拓扑发现的基本原理与游离诊断方法)