270 likes | 502 Views
基于 SNMP 代理的 IPv6 网络仿真环境. 任兴田 北京邮电大学信息网络中心 2004 年 12 月 2 6 日. 提纲. 当前各种设备对 IPv6 的支持情况 拥有 IPv6 网络仿真环境的必要性 IPv6 仿真环境实现的主要功能 IPv6 仿真环境所支持的标准 要实现的 IPv6 相关的 MIB 对象 IPv6 仿真环境工作原理 IPv6 仿真环境的具体实现 Get 请求响应处理过程 仿真环境与真实环境的结合 结论 参考文献. 当前各种设备对 IPv6 的支持情况. 当前各种设备对 IPv6 的支持情况.
E N D
基于SNMP代理的IPv6网络仿真环境 任兴田 北京邮电大学信息网络中心 2004年12月26日
提纲 当前各种设备对IPv6的支持情况 拥有IPv6网络仿真环境的必要性 IPv6仿真环境实现的主要功能 IPv6仿真环境所支持的标准 要实现的IPv6相关的MIB对象 IPv6仿真环境工作原理 IPv6仿真环境的具体实现 Get请求响应处理过程 仿真环境与真实环境的结合 结论 参考文献
当前各种设备对IPv6的支持情况 • 到2004年6月为止,各种路由器对IPv6的相关MIB不支持或支持的不够,如: • Cisco路由器(IOS Version 12.0(26)S1)不支持IPv6相关的MIB; • NEC路由器不能通过IPv6地址访问IPv6的MIB; • Net-snmp软件包到目前为止不支持IPv6网管中拓扑发现所需MIB(如:RFC2465定义的IPv6-MIB)
拥有IPv6网络仿真环境的必要性 • 它能够模拟一个IPv6大型网络,从而使基于IPv6网管的开发能够顺利进行; • 能够对开发的IPv6网络管理系统进行有效的测试; • 能够模拟各种IPv6网络设备,从而降低开发成本; • 能够在开发网管系统的过程中营造各种调试环境方便调试。
IPv6网络仿真环境实现的主要功能 • 可以仿真IPv6的大型网络; • 可与现有实际IPv6网络无缝结合; • 支持多种网络设备的仿真,如Cisco、Juniper路由器等; • 支持多种SNMP协议版本; • 可以通过修改XML文件,以实现各种网络环境的仿真; • 支持标准的Trap和各种网络设备特有的Trap的发送; • 能够响应管理站对代理的Get、Set请求。
要实现的IPv6相关的MIB对象 • RFC2465定义的IPv6-MIB
要实现的IPv6相关的MIB对象(续) • RFC2466定义的ICMPv6-MIB • RFC2452定义的IPv6-TCP-MIB • RFC2454定义的IPv6-UDP-MIB
IPv6仿真环境工作原理 • IPv6仿真环境的结构图
IPv6仿真环境工作原理(续) • 系统组成:系统由SimulationAgent模块和SimulationAgentProxy模块组成的 • SimulationAgent仿真IPv6网络设备; • SimulationAgentProxy实现了对网络拓扑的模拟,它负责把管理站发往某一被仿真设备的SNMP请求根据网络拓扑转发到相应的SimulationAgent,并把该SimulationAgent的响应转发给管理站。
IPv6仿真环境的具体实现 • Get请求响应处理过程 • 仿真环境与真实环境的结合
Get请求响应处理过程 • 仿真环境接收到发往某一被仿真设备的Get请求后,SimulationAgentProxy根据网络拓扑把该请求转发到模拟该设备的SimulationAgent上; • SimulationAgent收到转发来的Get请求后,监听Get请求的线程把内存中对应的MIB对象值( SimulationAgent启动时从XML文件中把被模拟设备相关的MIB对象的值导入内存 )作为返回值进行响应; • SimulationAgentProxy把该SimulationAgent的响应转发给管理站。
Get请求响应处理过程(续) • 要模拟实时性,在程序运行的过程中需要对某些MIB变量的值进行改变,这些改变是通过修改内存中对应的MIB对象值来获得的,方法有: • 用获取实际设备的MIB对象的值代替内存中对应的MIB对象值。例如,要想对ipv6IfStatsInReceives对象的值进行改变,就可以用获取IPv4路由器的IP组ipInReceives对象的值修改ipv6IfStatsInReceives变量的值来实现的; • 或用设定的随机数代替内存中对应的MIB对象值等。
仿真环境与真实环境的结合 • 要实现的IPv6仿真环境拓扑图
仿真环境与真实环境的结合(续) • 为了与真实IPv6环境结合,需要分配一块IPv6地址,并对这段地址进行规划(如上图) • 然后根据要仿真的IPv6网络构造每个被仿真设备的相关的MIB信息 • 对于经常变化的MIB信息(如IPv6-MIB的ipv6IfStatsTable、ICMPv6-MIB的 ipv6IfIcmpTable等表中的信息),可以参考ipv6IfStatsTable中的ipv6IfStatsInReceives实现方法。 • 而对于相对不经常变化的MIB信息(如IPv6-MIB的ipv6IfTable,ipv6IfStatsTable,ipv6AddrPrefixTable,ipv6AddrTable,ipv6RouteTable,ipv6NetToMediaTable等表中的信息),可以把这些MIB信息用XML文件表示,通过修改XML文件可以仿真不同的IPv6网络。
仿真环境与真实环境的结合(续) • 下面以路由器A为例说明如何构造XML文件: • 从上图看到路由器A通过接口A1、A2、A3分别与另外三台路由器相连,接口A4、A5直连两个子网。 • 要以这些信息为基础,构造相关的IPv6接口信息、IPv6接口地址前缀信息、IPv6接口地址信息、IPv6单播路由表信息、IPv6地址转换信息等,然后把这些信息写入相应的XML文件中。 • 如:把IPv6地址转换信息(包括路由器A所配的IPv6地址、对应的物理地址、IPv6地址到物理地址的映射类型和状态等信息)写入Ipv6NetToMediaTable.xml文件。以下是路由器的Ipv6NetToMediaTable的XML文件
Ipv6NetToMediaTable.xml文件 <table> … <row> <column name="ipv6IfIndex" value="3" ></column> <column name="ipv6NetToMediaNetAddress" value="2001025002042020000000000000001" ></column> <column name="ipv6NetToMediaPhysAddress" value="66 94 00 00 00 a2" ></column> <column name="ipv6NetToMediaType" value="1" ></column> <column name="ipv6IfNetToMediaState" value="1" ></column> <column name="ipv6IfNetToMediaLastUpdated" value="0"></column> <column name="ipv6NetToMediaValid" value="1" ></column> </row> ... </table>
结论 • 该仿真环境模拟了IPv6大型网络,并在此基础上进行了IPv6网管相关功能的开发和测试 • 该模拟仿真环境可用于各种试验,理论上可以在一台服务器上模拟比较复杂的IPv6网络,并可与现有实际IPv6网络无缝结合。
参考文献 • Isabelle Astic, Olivier Festor, “Current Status of IPv6 Management”, http://www.inria.fr/rrrt/rt-0274.html, 2002 • J.D. Case, M. Fedor, M.L. Schoffstall, J. Davin, “Simple Network Management Protocol (SNMP)”, RFC1157, 1990 • J. Case, K. McCloghrie, M. Rose, S. Waldbusser, “Introduction to Community-based SNMPv2”, RFC1901, 1996 • D. Haskin, S. Onishi, “Management Information Base for IP Version 6: Textual Conventions and General Group”, RFC2465, 1998 • D. Haskin, S. Onishi, “Management Information Base for IP Version 6: ICMPv6 Group”, RFC2466, 1998 • M. Daniele, “IP Version 6 Management Information Base for the Transmission Control Protocol”, RFC2452, 1998 • M. Daniele, “IP Version 6 Management Information Base for the User Datagram Protocol”, RFC2454, 1998
谢谢! Email:renxt@buptnet.edu.cn