以太网物理拓扑的发现方法( 二 )


通过分析B4和B5交换机上的MAC转发表来判定B4和B5交换机的连接情况 。交换机B4上的MAC转发表见表3 同样只保留了与交换机治理MAC地址有关的条目 。
与交换机B1对应的条目,这是因为发自B1的治理IP地址的数据包一般不通过B4,即上游交换机的数据包一般不通过下游交换机 。这样,下游交换机的MAC转发表中不会拥有上游交换机的MAC转发条目 。但每台交换机上都有指向网关的MAC转发条目因执行了“ping 61.140.216.255 ”命令 。由表3可知,到达交换机800.4ecc.89d8B5的目的端口是F0/25,而到达00e0.1ece.1bd2的端口是F0/24。这说明B5是B4的下游交换机,B4与上游交换机B1的端口是F0/24 。根据B2、B3和B5交换机的MAC转发表,同理可以判定出B2、B3和B5到上游交换机的端口号,从而得知整个网络的拓扑结构 。
4 寻找被Spanning Tree隐藏的连接 。
由于B1、B2和B3之间运行了Spanning Tree协议,B2的端口F0/1处于Block阻塞状态,采用上述方法无法得知B2和B3之间存在物理连接 。这时,我们可以利用Spanning Tree协议本身的特点来发现B2和B3之间的连接 。
根据Spanning Tree协议,每一个SegmentLAN交换机之间的LAN连接存在一个DBDesignated Bridge,指定的桥 。与该Segment连接的交换机的端口都知道本Segment的DB的ID识别号,即不同交换机上的端口的DB ID相同,说明这些端口连接在同一Segment上 。如在图1中,可以通过读取交换机的端口参数得知交换机B3的F0 / 1端口的DB ID是0032.0002.b9cf.1ac0,交换机B2的F0 / 1端口的DB ID同样是0032.0002.b9cf.1ac0,这说明B2的F0/1端口与B3的F0/1端口直连 。通过该方法可以发现运行Spanning Tree 协议的网络结构 。
假如全网都运行Spanning Tree协议,通过该方法可以快速而简单地发现其网络结构 。但该方法不能使用在没有运行Spanning Tree协议的LAN上,所以当LAN是混合式时,应综合采用本文所介绍的方法 。
事实上,通过SNMP协议同样可以获得上述步骤中的所有信息,从而为实现网管开发提供了条件 。此外,笔者为叙述简单起见,在上文中假定由以太网交换机组成的LAN不支持VLAN技术 。但实际上,上述方法同样适用于支持VLAN技术的LAN 。因支持VLAN的LAN一定存在一个包含所有交换机在内的治理VLAN缺省情况下为VLAN 1,我们只需把上述方法针对“VLAN 1”进行分析,就可以很轻易地得到这种LAN的物理拓扑结构 。

推荐阅读