根据SNMP获取mac地址表分析网络拓扑连接
假如由如下拓扑结构:
交换机有三台,分别为sw1、sw2 、sw3
终端设备有六台,分别为pc0 、pc1 、pc2 、pc3 、pc4 、pc5 、pc6
通过snmp协议获取交换机的mac地址表信息,可以知道如下信息
sw1 1口下有设备 pc2
sw1 2口下有设备 pc3
sw1 3口下有设备 sw3、 pc0、 pc1、 sw2 、pc4、 pc5
sw2 1口下有设备pc4
sw2 2口下有设备pc5
sw2 3口下有设备sw3、pc0、pc1、sw1、pc2、pc3
sw3 1口下有设备sw1、pc2、pc3
sw3 2口下有设备sw2 、pc4、 pc5
sw3 3口下有设备pc0
sw3 4口下有设备pc1
于是根据SNMP获取到的信息,可以做如下分析:
pc0设备与sw1、sw2、sw3三个设备都有关系,但是sw1 3口下共有6台设备,sw2 3口下也共有6台设备,sw3 3口下只有一台设备,那么可以以概率的方式来认为pc0与sw1直接连接的概率为1/6,pc0与sw2直接连接的概率为1/6,pc0与sw3直接连接的概率为1/1,因此,通过分析可知,pc0与sw3交换机直连的概率最大,那可以认为pc0就挂接在sw3的3口下
同理可分析出:
pc1挂接在sw3 的4口下
pc2挂接在sw1 的1口下
pc3挂接在pc3 的2口下
pc4挂接在sw3 的4口下
pc5挂接在sw3 的4口下
pc6挂接在sw3 的4口下
sw1设备与sw2和sw3两个设备都有关系,但是sw2 3口下共有6台设备,sw3 1口下有3个设备,那个可以认为sw1挂接在sw3的1口下
同理可分析出:
sw2挂接在sw3 的2口下
sw3通过分析可知,挂接在sw1和sw2的概率一致,因此无法确定sw3具体挂接在哪台交换机下,但是只关注设备与设备之间的关系的话,通过以上的数据,已经能够将网络拓扑图给绘制出来了
利用该方法分析网络拓扑关系有两个问题需要注意:
- 交换机上的mac地址表由于内存有限,不能存储过多的数据,导致mac地址表里面的数据不全,因此在分析概率时,会导致分析错误
- 由于mac地址表由老化处理,因此通过SNMP获取mac地址表时,无法保障该表中的数据是完整的数据
由于项目需要,因此对网络拓扑进行了一定的研究,但发现仅通过SNMP协议无法正确的反映出整个网络的拓扑结构,因此将自己对网络拓扑自动发现的想法分享出来,请大家共同参考,想想是否有更好的解决办法,能够仅用SNMP来自动发现网络拓扑
的拓扑结构,因此将自己对网络拓扑自动发现的想法分享出来,请大家共同参考,想想是否有更好的解决办法,能够仅用SNMP来自动发现网络拓扑