一. 实验项目:网络实验环境的搭建,网络管理软件的安装、配置和基本使用 二. 实验内容:
1. 构建简单实验网络,并启用各网络设备的SNMP功能;
2. 网络管理软件SNMPc的安装与配置;
3. 学习SNMPc的主要管理功能,掌握软件系统的基本操作。
三. 实验目的:
1. 使学生掌握典型网络管理软件SNMPc的安装、配置和基本使用技能。
2. 掌握网络设备管理的基本参数配置。
3. 通过实际操作,加深对课堂上SNMP协议理论知识的理解。
四. 实验设备及环境:
1. Huawei 3Com Quidway R2621路由器:1台; 2. Cisco 2950网络交换机:1台; 3. 计算机:2台;
4. 直通双绞线2根,交叉双绞线1根,串口配置线1根; 5. 网络管理软件:SNMPc7。
五. 学生分组情况: 每组6人。 六. 实验步骤及要求: 1. 构建实验的网络环境
参照下图构建实验的网络环境。注意:同层次设备用交叉线相连(但现在很多设备带自动翻转功能,直连也可),如交换机与交换机,计算机与计算机,计算机与路由器(可看作专用计算机);而路由器和交换机、交换机和计算机用直通线相连。
以太网口1: 192.0.1.1/24以太网口0: 192.0.0.1/24Quidway R2621路由器交叉线直通线 192.0.0.2/24(二层交换机可不需IP地址)Cisco 2950交换机192.0.1.2/24网关:192.0.1.1安装SNMPc,网络管理站直通线192.0.0.3/24网关:192.0.0.1图4 实验网络拓扑结构
2. 配置各设备的网络参数并启用其网管功能:
为了配置路由器或交换机,用串口线将计算机的COM串行接口与路由器或交换机的Console控制口相连,然后在计算机中运行超级终端进行参数设置(端口设置需还原为默认值)。
(1) 配置Cisco 2950交换机 1、配置IP地址
两层交换机在数据链路层转发数据时是不需要IP地址的,但为了使交换机要能够被网管,也可给它标识一个管理IP地址。默认情况下CISCO交换机的VLAN 1为管理VLAN,为该管理VLAN配上IP 地址,交换机就可以被网管了。命令如下: a、 进入全局模式: Switch> enable
Password: cs608 (如果需要密码的话) Switch# configure terminal
b、进入VLAN 1接口模式: Switch(config)# interface vlan 1
c、配置IP地址: Switch(config-if) # ip address 192.0.0.2 255.255.255.0
通常VLAN1是默认的管理VLAN,如果当前VLAN1 不是管理VLAN ,只需要将上面命令的vlan1换成管理VLAN即可。(查看交换机所有VLAN的信息:Switch# show vlan brief) 2、开启SNMP功能
a、退出到全局配置模式: Switch(config-if)# exit b、配置一个名为public的只读的团体(Community) Switch(config)# snmp-server community public ro c、再配置一个名为private的可写的团体
Switch(config)# snmp-server community private rw
(注意:后面的SNMPc7管理站也要设置相应的团体,才能与交换机中的代理模块进行网管通信。)
(2) 配置Huawei 3Com Quidway R2621路由器 1、 配置IP地址
[Router] interface Ethernet 0 进入第一个以太网口
[Router-Ethernet0] ip address 192.0.0.1 255.255.255.0 配置第一个口的IP
[Router-Ethernet0] interface Ethernet 1 进入第二个以太网口
[Router-Ethernet1] ip address 192.0.1.1 255.255.255.0 配置第二个口的IP
如果重复设置IP地址,会提示Duplicate IP Address.
配置好后可用[Router] display ip interface,检查路由器各接口的情况。
2、 启用SNMP功能
[Router-Ethernet1] quit 退入到全局模式
[Router] snmp-agent 开启snmp服务 [Router] snmp-agent community read public 设置只读团体public
[Router] snmp-agent community write private 设置可写团体private
[Router] snmp-agent sys-info version all 支持snmpv1/v2/v3
[Router] save 保存设置
(3) 设置计算机的IP地址和默认网关,并启用计算机的SNMP功能 参照图4设置两台计算机的IP地址和默认网关,设置好后,下面启用计算机的SNMP网管功能。
首先确定并启用计算机中的SNMP模块 :开始->运行->cmd->回车,输入命令“net start snmp”。
C:\\\\Documents and Settings\\\\mmpire> net start snmp SNMP Service 服务正在启动 .
SNMP Service 服务已经启动成功。
上述说明计算机已经安装有SNMP服务组件,并启动成功;如果显示服务名无效,则需先安装SNMP服务组件: 1. 打开控制面板,双击[添加/删除程序];
2. 在弹出的[添加/删除程序]对话框的左窗格中,单击 [添加/删除 Windows 组件];
3. 在弹出的[Windows 组件向导]中双击 [管理和监视工具]。
4. 在弹出的[管理和监视工具] 对话框中,勾选[简单网络管理协议],单击 [确定]。
5. 安装协议时需要用到Windows XP SP2安装盘中的i386文件夹。(i386文件夹已拷贝到网络管理文件夹下)
再执行前面的“net start snmp”命令启动SNMP服务。 3. 验证网络连通性:
网络中各个设备能否ping通,通则证明各设备是连通的,不通则可能网络参数配置出错或者双绞线有问题。注意,工作在数据链路层的二层交换机是无法ping通的其网络层的IP地址的。计算机的默认网关必须正确设置,否则无法ping通其它网络。 4. 在某台计算机上安装网络管理软件SNMPc7: (1) SNMPc7安装过程中会弹出如图所示界面:
图5 SNMPc7安装界面一
可选择三种安装组件:服务器,控制台和轮询代理。选择安装服务器(Server)组件,它包括SNMP服务器、本地控制台与轮询代理模块。
(2)选择好安装目录后会弹出如图所示界面:
图6 SNMPc7安装界面二
在界面中输入网络发现的seed设备(即网络发现的起点设备)的IP地址、子网掩码以及团体名。seed设备一般选取管理网络中的核心设备(如某路由器),SNMPc利用它作为发现其它网络设备的起始节点,实现全网络的自动发现;如果输入错误的seed设备信息,SNMPc7网络发现功能会出现异常。
Seed设备的设置也可在SNMPc启动后在Configure -> Discovery/ Polling菜单中修改。
(3) SNMPc安装完成后,会自动启动Air Messenger Pro paging application安装程序。这时用户可以选择安装也可以退出安装。Air Messenger Pro的功能:将告警信息通过Email方式发送给SNMPc管理用户。
(4) 所有安装完成后,需要重新启动计算机。 (5) 网络管理软件SNMPc7操作界面如下:
图7 SNMPc7的操作界面
5. 配置或修改SNMPc的参数:
(1) 设置或修改seed设备(即网络发现的起始设备信息,包括其IP,掩码和团体名): Config -> Discovery/Polling
图8 设置网络发现的起点设备
例如也可将管理站计算机(192.0.1.2/24)设置为网络发现的起点设备。 (2)设置团体名:Config -> Discovery/Polling -> Comm
图9 设置团体信息的对话框
可增加、修改或删除已有的团体名信息。请增加只读团体public,可读可写团体private。
图10 编辑团体信息
6. 重新运行SNMPc7
运行SNMPc: 开始 -> SNMPc -> Startup System
软件运行后,会以seed设备为起点自动发现并构建整个网络的拓扑图。
图11 SNMPc7的运行界面
7. 远程管理:
双击拓扑图中的路由器或计算机,会显示此设备的端口图,如下图。通过双击图标,可在图中对设备的各端口进行远程打开和关闭操作。选择某端口,然后通过Port菜单可远程查看此端口的详细参数。
图12 某设备各端口的远程管理界面
在拓扑图中右击某设备图标,选择Tools->MIB Browser,可查看各设备代理中的MIB信息。如下图所示:
图13 某设备的MIB操作界面
此图左侧以树状图的形式给出了该设备MIB树结构,设备的各被管对象就位于此MIB树的叶子节点上,可远程查看或修改设备中给被管对象信息。
图13 设备MIB中的Get操作
对话框中的按钮给出了管理站的几种基本操作,如Get, Getnext, Getbulk和Set等操作。如果要Get获取某对象的实例值,只需要给出该对象实例的标识符,并点击Get按钮即可执行。如图13是获取SysDescr的实例值:输入其实例标识符SysDescr.0,然后点击Get按钮,即可获得相关设备的描述Quidway Router R2621 Huawei这样的信息。另外多次点击Next按钮,则可按词典顺序依次获取设备MIB树中各管理对象的信息。
图14中,可使用Set操作修改设备MIB中sysName.0的实例值,即设备的名称。有时不能成功Set,可能是因为对象为只读或团体名没有写的权限,如果是后者,可点击Settings按钮,然后设置好可读写的团体名,如图15所示。
图14 MIB操作界面中的设置按钮
图15 设置读写共同体
下图首先通过Get查看了路由器MIB中interface接口组的ifNumber值,如果值为5表示该路由器有5个端口(如图16所示),因此在ifTable表中有5个表行,对应每一个端口有一个表行。如果要获取第x (x=1,2,3,4,5)个端口的最大传输速率,可通过Get操作获取ifSpeed.x的值;如果要获取第x个端口的物理地址,可通过Get操作获取ifPhysAddress.x的值。
图16 获取设备的接口数量
实验2 SNMP报文信息的捕获与解析
一. 实验项目:使用Sniffer软件捕获与解析SNMP报文 二. 实验目的:
1. 使学生熟悉SNMP报文的结构和内容。 2. 掌握网络抓包与分析工具Sniffer的使用。
三. 实验设备及环境要求:
1. Huawei 3Com Quidway R2621路由器:1台; 2. Cisco 2950网络交换机:1台; 3. 计算机:2台;
4. 直通双绞线2根,交叉双绞线1根,串口配置线1根; 5. 网络管理软件:SNMPc7; 6. 网络抓包软件:sniffer。
四. 学生分组情况: 每组6人
五. 实验步骤及要求:
1. 安装网络抓包工具Sniffer Pro (序列号见安装文件夹),并重启电脑;
2. 使用Sniffer Pro软件抓取网络数据包:
(1) Sniffer Pro启动后的界面如下:
图17 Sniffer的工作界面
(2) 设置参数:
首先选择正确的网络适配器,以确定Sniffer从哪个网卡上捕获数据:File->select settings
图18 选择进行捕获的工作网卡
设置捕获条件:Capture -> Define filter。
其中根据Address进行捕获有两种选择:
1、链路层捕获,按源MAC和目的MAC地址进行捕获。地址输入方式为十六进制连续输入,如:00E0FC123456。
2、IP层捕获,按源IP和目的IP进行捕获。地址输入方式为点分十进制方式,如:一方设为192.0.1.2,另一方为任意设备Any。本实验采用此方式,如图20所示。
任意捕获条件编辑协议捕获编辑缓冲区编辑基本捕获条件链路层捕获IP层捕获链路层捕获地址条件数据流方向图19 设置Address捕获条件(链路层捕获)
图20 设置Address捕获条件(网络层捕获)
报文捕获功能可以在报文捕获面板中进行完成,见下图。
捕获条件编辑选择捕获条件捕获开始捕获暂停捕获停止捕获停止并查看捕获查看
图21 报文捕获面板
主界面左上角有4个按钮,如上图。第一个按钮表示捕获开始,第二个按钮表示暂停,第三个表示停止捕获,第四个按钮表示停止捕获并显示捕获信息(如果sniffer没有捕获到数据此按钮为灰色)。
先开启Sniffer捕获功能,然后使用SNMPc运行Get和Set操作,Sniffer捕获到SNMP报文后可对每条报文进行解码(Decode)显示,此时需要点击屏幕左下角的Decode。
图22 进行报文Decode解码
图23 查看某报文详细解码信息
3. 捕获并解析SNMP报文。
实验3 简单的网络管理站程序设计与开发
一. 实验项目:简单网络管理编程 二. 实验目的:
1. 通过理解和分析SNMP简单程序,使学生掌握网络管理编程的基本方法。
2. 掌握SNMP各种报文的格式。 3. 掌握sniffer软件的使用。
三. 实验设备及环境要求:
1. Huawei 3Com Quidway R2621路由器:1台; 2. Cisco 2950网络交换机:1台; 3. 计算机:2台;
4. 直通双绞线2根,交叉双绞线1根,串口配置线1根; 5. 网络管理软件:SNMPc7; 6. 网络抓包软件:sniffer。
7. 编程环境Visual studio.net 2003或VC 6。
四. 学生分组情况: 每组6人。 五. 实验要求:
1. 使用vs.net2003或vc6搭建SNMP示例程序运行环境。 2. 分析示例程序,写上相应注释,上机调试及运行。 3. 使用sniffer捕获并分析的示例程序发出的SNMP报文。
六. 实验具体步骤: 一、安装SNMP服务
先查看计算机系统中是否已经安装并启用SNMP服务,开始->运行->cmd->回车,输入命令“net start snmp”:
C:\\\\Documents and Settings\\\\mmpire>net start snmp
SNMP Service 服务正在启动 .
SNMP Service 服务已经启动成功。
则已经安装有SNMP,如果没有安装,则需先安装SNMP服务: 1. 打开控制面板,双击[添加/删除程序];
2. 在弹出的[添加/删除程序]对话框的左窗格中,单击 [添加/删除 Windows 组件];
3. 在弹出的[Windows 组件向导]中双击 [管理和监视工具]。 4. 在弹出的[管理和监视工具] 对话框中,勾选[简单网络管理协议],单击 [确定]。
5. 安装协议时需要用到Windows XP SP2安装盘 再执行“net start snmp”命令启动SNMP服务。
二、编译并生成SNMP管理站程序的可执行文件
使用微软platform SDK提供的SNMP编程样例源代码,这是一个最简单的SNMP管理站程序,用户通过在控制台输入SNMP命令来与网管代理进行交互。
1. 将SNMP管理站相关的五个文件拷贝到D盘根目录。 2. 编译示例代码 (1)如果是.net环境
a) 从以下路径打开VC.net命令行窗口:开始->所有程序-> Visual Studio. NET 2003->Visual Studio .NET 2003 命令提示。 b) 打开窗口之后输入以下命令:
C:\\\\Documents and Settings\\\\mmpire>d: D:\\\\>nmake all
dir后可发现当前目录下生成子目录WIN2000_DEBUG,里面有wsnmputil.exe,可在控制台环境下执行。它支持SNMPv1的Get,GetNext,Set操作,以及SNMPv2的GetBulk等操作。 (2)如果是vc6环境
a) 新建一个空的Win32 Console Application控制台工程aaa(工程名可自定义);
图24 在VC下创建一个Console控制台工程
图25创建一个空的控制台工程
b) 通过Project -> Add to Project -> Files向工程添加源程序文件WSnmpUtil.h, WSnmpUtil.Cpp和Helper.Cpp;
c) 通过Project -> Settings -> link -> Object / Library Modules向工程中添加源程序需要用到的库文件user32.lib gdi32.lib snmpapi.lib wsnmp32.lib mgmtapi.lib oldnames.lib Ws2_32.lib;
d) 去掉WSnmpUtil.cpp中函数SetWindowLongPtr()和
GetWindowLongPtr()的Ptr后缀,然后即可编译。
e) 在C:\\Program Files\\Microsoft Studio\\Myprojects\\aaa\\Debug默认文件夹下生成aaa.exe可执行文件,可通过“开始->运行->输入cmd”,打开控制台环境,使用cd命令进入到此目录,再运行此管理站程序(方法见下节)。此SNMP管理站程序支持SNMPv1的Get,GetNext,Set操作,以及SNMPv2的GetBulk等操作。
3. 运行SNMP管理站程序 (1)发送GetRequest命令
//例如使用Get命令获取路由器的某个被管对象信息,需要给出路由器的名称或IP地址、团体名以及要获取的被管对象的实例标识符。 aaa -v1 get 192.0.1.1 public 1.3.6.1.2.1.1.1.0 OID : 1.3.6.1.2.1.1.1.0 system. sysDescr.0
OCTET STRING – Quidway Router R2621 Huawei Versatile Routing Platform Software VRP (2)发送GetNextRequest命令 //使用GetNext命令获取路由器的下一个被管对象信息 aaa -v1 getnext 192.0.1.1 public 1.3.6.1.2.1.1.1.0 OID : 1.3.6.1.2.1.1.2.0 system. sysObjectID.0 OBJECT IDENTIFIER – .1.3.6.1.4.1.2011.1.1.1.2621(获取到了MIB中给定对象的下一个被管对象的实例值) aaa -v1 getnext 192.0.1.1 public 1.3.6.1.2.1.1.2.0 OID : 1.3.6.1.2.1.1.3.0 system. sysUpTime.0 TIMETICKS: 3243(获取到了MIB中给定对象的下一个被管对象的实例值) (3)发送SetRequest命令 //使用Set命令修改路由器的系统名称。(其对象标识符为1.3.6.1.2.1.1.5) aaa -v1 get 192.0.1.1 public 1.3.6.1.2.1.1.5.0 (首先获取原来的设备名称) OID : 1.3.6.1.2.1.1.5.0 system. sysName.0 OCTET STRING – G52-1 aaa -v1 set 192.0.1.1 private 1.3.6.1.2.1.1.5.0 myrouter (设置新的名称) Succeeded in setting the OID value .. aaa -v1 get 192.0.1.1 public 1.3.6.1.2.1.1.5.0 (查看新的名称) OID : 1.3.6.1.2.1.1.5.0 system. sysName.0 OCTET STRING – myrouter(此对象值已成功设置为myrouter) 三、SNMP管理站具体实现代码 主要有三个源文件:WSnmpUtil.h, Helper.Cpp和WSnmpUtil.Cpp: 1. WSnmpUtil.h 包含21个常量定义,一个结构体类型声明,一个GlobalVars类声明,以及19个函数声明。 2. Helper.Cpp 包含一些函数定义,比如输出提示消息,解析命令行输入的命令,调试信息,地址转换,输出Oid地址以及pSession的参数。 3. WSnmpUtil.Cpp #include #include \\\\\\\\\"WSnmpUtil.h\\\\\\\\\" //外部全局变量gVars,记录用户命令等信息 GlobalVars gVars; int main( int argc, char **argv ) { //初试化一般参数 PSNMP_MGR_SESSION pSession = NULL; int nReturn = 0; BOOL result; int i = 0; //初试化SNMP参数 smiUINT32 nMajorVersion = 0; smiUINT32 nMinorVersion = 0; smiUINT32 nLevel = 0; smiUINT32 nTranslateMode = 0; smiUINT32 nRetransmitMode = 0; //接收用户在命令行输入的命令,主要记录在变量gVars中 ParseCommandLine( argc, argv ); //加载SNMP服务 SnmpStartup(&nMajorVersion,&nMinorVersion,&nLevel,&nTranslateMode,&nRetransmitMode); //分两种情况设置传输模式(SNMP1/SNMP2) if ( gVars.version == FALSE ) SnmpSetTranslateMode( SNMPAPI_UNTRANSLATED_V1 ); else SnmpSetTranslateMode( SNMPAPI_UNTRANSLATED_V2 ); //为会话分配内存空间 pSession = ( PSNMP_MGR_SESSION )SnmpUtilMemAlloc( sizeof( SNMP_MGR_SESSION ) ); /*创建一个隐藏的负责监听WinSNMP消息的窗口,这是一段典型的调用CreateWindow()创建windows窗口的代码。(注:窗口处理函数是NotificationWndProc(),本程序调用CreatWindow()后返回,而由系统来创建窗口,其中就要调用这个窗口处理函数,这种由程序员编写而由系 统调用的函数需要定义为CALLBACK函数)注意:SNMP接收的数据包(PDU)就在窗口进程里处理*/ CreateNotificationWindow( pSession ); //建立会话 SnmpOpen( pSession->hWnd, WM_SNMP_INCOMING ); //解析用户在命令行输入的命令 switch (gVars.operation) { case TRAP:WaitForTraps( pSession );break; case WALK:CreatePduSendRequest( pSession, NULL );break; case GET: case GET_NEXT:result = CreatePduSendRequest( pSession, NULL ); break; //创建一个PDU并发送一个请求 case GET_BULK:result = CreatePduSendRequest( pSession, NULL ); break; case SUB_TREE:result = CreatePduSendRequest( pSession, NULL ); break; case SET:result = CreatePduSendRequest( pSession, NULL );break; //先探测所给agent是否存在,之后再发送设定消息 } CloseWinSNMPSession ( pSession );//关闭WinSNMP任务,调用了SnmpClose() SnmpUtilMemFree( pSession );//释放内存 SnmpCleanup( );//清理工作 WSACleanup( );//关闭windows sockets return ( nReturn ); } //end of main()
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务