java和SNMP技术的网络拓扑发现和物理拓扑发现入门

    ObjectSNMP是一个面向对象的SNMP开发组件,与关系数据库流行的O-R Mapping技术类似,实现了Object到SNMP MIB的操作映射(简称O-M Mapping),系统提供了Java/SNMP网关、RMI/SNMP网关 、Web Service/SNMP网关服务、代理SNMP网关、 网络拓扑发现、物理拓扑发现、网络自动搜索发现 、设备连接关系发现、设备类型发现、网络漫游搜索、以及定义好的可管理各种设备的MIB数据等高级功能。
     

      ObjectSNMP网络自动发现功能如下:

      全网设备发现:可以按网络号、IP范围、多个网络范围内,自动搜索发现设备,获取设备的基本信息、设备类型(交换、路由、路由交换、终端设备、厂商特有类型等)、MAC地址、ARP表、交换机端口、路由器接口、路由表、交换机转发表、主机IP地址等信息。

网络漫游发现:给定少数几个已知的网络号、IP范围,按用户指定的漫游深度和漫游广度,进行全网漫游发现。

网络拓扑自动发现:可以发现交换机与交换机、交换机与PC机、交换机与终端设备、交换机与路由器、路由交换机与路由交换机之间 的连接关系。连接关系可以定位到具体的设备端口、设备接口上。支持在任意指定的设备之间发现它们的所有连接,在全网范围内发现连接关系。

ObjectSNMP的物理拓扑自动发现采用了全新的技术:即支持单一Cisco、华为网络,也支持各种厂商设备混合网络。支持模糊连接定位,在数据不全或设备缺失的情况下,尽可能发现连接关系。可在任意的网络环境中工作,不需要用户对网络做任何假设(如路由器假设、根交换机假设、上/下行端口假设、边缘设备假设等)。

资源发现:搜索发现设备的网络接口、板卡、硬件设施、磁盘、内存、CPU、软件服务等。

网络自动发现性能参考:对于100人到500人左右的中小型企业网络,1-3分钟内发现所有的设备、设备信息、设备连接关系、设备资源。对于50个C网、1万多个IP、500台交换机、2000多台主机的大型平面交换的高校网络,20-30分钟内发现所有的设备、设备信息、设备连接关系、设备资源。

 

 

自动搜索发现的典型API如下:
1.
根据网络号和一系列SNMP参数搜索设备
public List<DeviceInfo> searchDevice(String subNetIP,List<SNMPTarget> snmpTargetList, boolean isUseICMP)

2.
通过多个网络号和一系列SNMP参数(端口号、读共同体),搜索设备

public List<DeviceInfo> searchDeviceByNetList(List<String> subNetIPList,List snmpTargetList, boolean isUseICMP)

3.
通过IP范围,和一系列SNMP参数(端口号、读共同体),搜索设备

public List<DeviceInfo> searchDevice(String startIP, String endIP,List snmpTargetList, boolean isUseICMP)

4.
从一个或多个已知的网络,按漫游深度和漫游广度,漫游搜索到其他设备

public List<DeviceInfo> searchDeviceByIPRoaming(List<String> subNetIPList,List<SNMPTarget> snmpTargetList, boolean isUseICMP,int depth,int maxDevice)

5.
从路由器上搜索设备

public List<DeviceInfo> searchDeviceByRouterNet(String subNetIP,List snmpTargetList, boolean isUseICMP)

6.
获取设备的资源信息
public List<ResourceInfo> searchDeviceResource(DeviceInfo deviceInfo)

7.
发现任意网络设备之间的连接关系

public List<LinkInfo> searchLinkInfo(List<DeviceInfo> allDeviceList)

 

一个典型搜索网络设备信息、设备类型、设备连接关系的代码如下:
List<DeviceInfo> deviceList = discoverAPI.searchDevice("192.168.1.0-92.168.10.0","public,ciscopublic");


for (DeviceInfo device : deviceList)
{
    System.out.println("

 

设备基础信息:" + device);
    System.out.println("
设备类型
:" + device.getDeviceType());
    System.out.println("
MAC地址
:" + device.getDeviceMAC());
    System.out.println("
网管协议
:" + device.getDeviceProtocol());

}


for (String mac : device.getDeviceMacList())
{
    System.out.println("
设备的MAC地址
:" + mac);
}
for (MibIfEntry mibIf : device.getIfTableList())
{
    System.out.println("
设备的网络接口
:"+mibIf);
}
for (MibMacIP mibMacIP : device.getMibMacIPList())
{
    System.out.println("
设备的MAC-IP地址学习表,
ARP:"+mibMacIP);
}
//
打印更多设备信息
......
}
List<LinkInfo> linkList = discoverAPI.searchLinkInfo(deviceList);//
获取连接关系

for (LinkInfo link : linkList)
{
    System.out.println("
发现的连接关系:"+link);
}


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值