教你如何进行OSPF路由协议的仿真测试
路由器和三层交换机作为Internet中的关键设备,获得了广泛的应用,随着人们对网络服务质量的高要求,路由器和三层交换机的功能和性能指标变得越来越重要。路由测试主要分为一致性测试、互操作性测试、功能测试和性能测试。其中路由协议仿真是路由协议的基础。在众多路由协议中,OSPF最为复杂,其路由协议的仿真也就最复杂,本文将结合世界上著名的测试仪表Adtech AX/4000介绍如何进行OSPF路由协议的仿真测试,同时也可以帮助读者理解OSPF的工作原理和路由测试基本过程。
我们首先将被测设备路由器进行OSPF方面的配置。其Router ID=1.1.1.1(测试的具体配置见网站)。我们将使用Adtech AX/4000 10/100M的接口1进行路由仿真,而接口2进行流量产生。具体的测试拓扑结构请见图1。
图1
从测试拓扑中,可以看到Adtech AX/4000的两个接口分别与路由器的Ethernet 0和Ethernet 1接口相连。Adtech AX/4000的接口1模拟了两台路由器,这两台路由器都是在0.0.0.0这个区域里,路由器2.2.2.2与被测路由器直接相连,路由器3.3.3.3和路由器2.2.2.2通过一个局域网连接,其中路由器3.3.3.3为DR(指定路由器)。而网络12.0.0.0/24也连接在路由器3.3.3.3的一个接口上。
激活AX/4000的OSPF仿真功能,然后添加仿真节点1。节点1配置: OSPF mode设为point to point,节点IP为10.0.0.2,Router ID为2.2.2.2,Area ID为0.0.0.0。Adtech AX/4000还允许设定OSPF中计数器,和指定节点代表的路由器类型等其他许多参数。将Priority设置为0,这样这台虚拟路由器就不会成为DR或BDR(备份指定路由器)。
通过Adtech AX/4000进行OSPF的模拟,首先进入LSA(链路状态通告)的Setup,在Router的条目下加入两个虚拟路由器Router ID=2.2.2.2和3.3.3.3。对于路由器2.2.2.2,需要指定LSA的类型为Transit network,表示多路访问的网络,ID=11.0.0.2,Data=11.0.0.1。在这里ID表示DR在该网络的IP地址,Data表示接口的IP地址。对于点到点(Point to point)连接和虚拟连接(Virtual Link)的情况,ID表示邻居路由器的Router ID,Data表示接口的IP地址;如果是存根网络(Stub Network),ID指IP网络,Data指IP网络掩码。同时可以模拟虚拟路由器的类型,如虚拟链路终结点、ASBR和ABR。
然后在Network的条目下加入虚拟路由器连接的网络,从配置图中我们可以看见有两个多路访问的网络,LS ID为DR的IP地址,其中连接路由器Router ID=2.2.2.2和3.3.3.3
的网络,LS ID=11.0.0.2,仅连接在路由器Router ID=3.3.3.3的网络,LS ID=12.0.0.1。这样就生成了如图所示的简单的OSPF网络。
为了测试路由器是否能够进行正确的IP包转发,在Adtech AX/4000端口2上,可以配置测试数据流。Adtech AX/4000上定义数据流的属性非常丰富,可以定义多达4096个数据流(Stream),可以定义数据流包长的分布和发送数据包的分布模型等。本例的测试数据流设置中,建立两个将流的目的地址分别设定为11.0.0.1和12.0.0.1,流量负载的大小为10%,然后同时启动Adtech AX/4000的流量发生和分析功能。如果路由器正确转发,端口1上可以看到从路由器转发的测试流量。同时可以测试每个流的丢包、延迟、延迟分布、抖动等。
在路由仿真的基础上,可以进一步进行路由性能的测试。目前的性能测试仪表,如
AX/4000和SmartBits都提供了一个图形化的OSPF LSA生成工具,可以帮助测试人员生成需要的OSPF拓扑结构。测试人员也可以通过提供的大容量路由表生成向导来生成大量的路由表。