一种宽带接入服务器拨号测试方法 【技术领域】
本发明涉及一种采用PPPOE(Peer-Peer Protocol over Ethernet,基于以太网的端对端协议)技术的宽带接入服务器的测试方法,属于数据通讯设备的测试领域。
背景技术
目前,测试宽带接入服务器,测试人员通常的方法是通过一台电脑,拨号、传输数据、断开连接,循环反复的进行。一台带有一个网卡的电脑,一次只能建立一个连接,如果要模拟多个用户,就需要用多台电脑。这样,在实验室中,根本无法模拟真实的用户上网环境,无法发现潜在的系统缺陷,如在用户数超过100时系统能否正常工作、用户数超过1000时系统工作情况如何、系统在用户数超过多少时会崩溃、超过1000个以上用户时宽带接入服务器的系统性能如何等,这些情况在实验室中根本无法进行测试,因为同时用1000台电脑在实验室中进行测试是不现实的。即使有专用的一些测试仪器,价格也非常昂贵,将大大增加宽带接入服务器的研发费用。
专利号为US6243832的美国专利“Network access server testing system andmethodology”,提出了一种通过一台测试计算机并用许多调制解调器,同时模拟多个用户,通过电话网,并行地通过窄带接入服务器访问一台主机系统。但对于采用新的PPPOE技术的宽带接入服务器,需要测试计算机通过网卡连接到服务器并通过PPPOE通信方式实现功能测试,而该专利提及的方法仅适用于窄带接入服务器的测试,无法进行宽带接入服务器的系统测试。
【发明内容】
本发明解决的技术问题是提出一种宽带接入服务器拨号测试方法,在不增加额外硬件投入的情况下,采用一台价格低廉的测试计算机和一块网卡,同时模拟几十个甚至上百个用户上网的情况,如果用几台测试计算机,就可以模拟成百上千个用户同时上网的真实情景。这样,在实验室中就可以对宽带接入服务器进行充分地测试,可以大大降低宽带接入服务器的测试费用,同时可以加快测试进度。
本发明提出一种宽带接入服务器拨号测试方法,包括以下步骤:
1)将测试计算机的物理网卡设置为混杂工作模式,并发起多个线程,配置各线程的参数,每个线程对应为一个虚拟网卡;
2)物理网卡将接收到的所有以太网帧进行过滤,如果该以太网帧的目的MAC地址等于某一个虚拟网卡的MAC地址,则将该帧送往该虚拟网卡进行处理,否则将该帧丢弃;
3)每一个虚拟网卡各自通过PPPOE发现阶段,获得该虚拟网卡在本次会话中的PPPOE Session ID(会话ID);然后通过PPP会话阶段,获得宽带接入服务器分配给该虚拟网卡的IP地址;
4)测试计算机同时让多个虚拟网卡并发运行,与被测宽带接入服务器进行IP层通信;
5)当一虚拟网卡的测试需要中止时,该虚拟网卡发出PADT帧,释放资源结束测试。
本发明通过测试计算机的物理网卡,模拟真实的多用户拨号上网情况,把真实的用户拨号上网情景在实验室中再现,从而以较低的测试成本投入,做到宽带接入服务器在实验室中的充分测试。
【附图说明】
图1是PPPOE通信流程图;
图2是本发明一个虚拟网卡完成拨号上网的流程图;
图3是本发明的测试方法原理图;
图4是采用PPPOE技术的宽带接入服务器协议结构图。
【具体实施方式】
下面结合附图对本发明的具体实施方式作进一步的描述:
先介绍测试计算机通过网卡拨号上网的过程:
PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息,并提供Ethernet上的PPP连接的技术。PPP协议具有用户认证及通知IP地址的功能。
参考图1所示的PPPOE通信流程图,PPPOE通信包含发现和PPP会话两个阶段,发现阶段是无状态的Client/Server模式,目的是获得PPPOE终结端的以太网地址,并建立一个唯一的PPPOE SESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。
发现阶段有四个步骤,包括:主机广播一个发起分组(PADI);一个或多个接入集中器发送给予分组(PADO);主机发送单播会话请求分组(PADR);选择的接入集中器发送一个确认分组(PADS)。当主机接收到确认分组,主机可以开始进行PPP会话阶段。当接入集中器发送出确认分组,接入集中器可以开始进行PPP会话阶段。当此阶段完成,通信的两端都获得PPPOE SESSION_ID和对端的以太网MAC地址,可以一起唯一定义PPPOE会话。
一旦PPPOE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。
当用户和接入服务器之间的PPPOE建立之后,就可以在上面建立PPP会话。
通过PPP会话的建立分为三个阶段:LCP协商、认证、IPCP协商。
LCP协商主要完成某些链路路特性和认证方式的协商,LCP协商成功后,用户根据协商的认证方式向接入服务器发起认证请求,用户认证的方式一般采用PAP或CHAP方式。
PAP为两次握手认证,口令为明文。PAP认证过程如下:拨号用户发送用户名和口令到接入服务器,接入服务器通过RADIUS协议到RADIUS服务器上去查看是否有此用户,口令是否正确,然后发送相应的响应。
CHAP为三次握手认证,口令为密文。CHAP拨号用户发送用户名到接入服务器,接入服务器发送一些随机产生的报文,交给被拨号用户,拨号用户用自己的口令用MD5算法进行加密,传回密文,接入服务器用从RADIUS服务器取得的用户口令及随机报文用MD5算法加密,比较二者的密文,根据比较结果返回认证成功或失败的响应。
接入服务器和RADIUS服务器之间通过一个共享密钥以密文方式通信。
在认证阶段,如果在用户数据库中为该用户名配置了IP地址,则RADIUS服务器将这个IP地址返回给接入服务器,作为这个用户上网使用的IP地址。
如果用户在认证阶段还没有获得IP地址,就需要在IPCP阶段协商IP地址。一般来说,运营商为用户提供接入服务时,应该有一批IP地址,即IP地址池,用户上网所需要的IP地址就来自与此,当用户上网时,从IP地址池分配一个IP地址,当用户下网时,这个IP地址归还到地址池。在运营商开通接入服务时,将IP地址池配置到接入服务器中,在IPCP阶段,接入服务器从IP地址池分配一个空闲的IP地址给用户,作为用户上网的IP地址。如果已经没有可用的IP地址,则IPCP协商失败,关闭PPP连接,在用户看来,则是拨号失败,ISP暂时不能为他提供接入服务。
再详细介绍本发明的宽带接入服务器拨号测试方法,也就是用一台测试计算机通过物理网卡模拟多用户上网的详细实现:
以太网是一个广播网,在一个以太网上工作的网卡,如果将其工作模式设置在混杂模式(工作在混杂模式下的网卡接受所有流过本网卡的帧),那么它就可以接收到以太网上所有的帧,而不管该帧是发给谁的。
从PPPOE拨号上网的过程知道,当PPPOE发现阶段结束以后,进行PPPOE通信的双方确定对方的方法是,获得PPPOE SESSION_ID和对端的以太网地址,这样即可以唯一确定一个PPPOE会话。
从网卡发送一个以太网帧时,以太网帧的源MAC地址和目的MAC地址,都是可以根据通信的需要,进行按需填充的,并不要求源MAC地址必须为本网卡具有的MAC地址。所以对于宽带接入服务器而言,如果它收到的以太网帧的源MAC地址不同,它即认为这是来自不同的网卡。
用一个网卡模拟多用户拨号上网,关键是从同一个网卡发出具有不同源MAC地址的帧,并对接收到的帧进行有效地管理。
参考图2所示的本发明测试方法的详细实现过程如下:
(1)在测试用的电脑上,发起多个线程(根据电脑的配置,决定线程的多少),每个线程为一个虚拟网卡(从每个线程在测试过程中的作用来看,它相当于一个网卡,对外进行独立的通信)。
每个虚拟网卡具有如下配置参数:
◆虚拟网卡的MAC地址(由测试人员配置);
◆虚拟网卡的IP地址(由宽带接入服务器分配);
◆虚拟网卡的Session ID地址(由接入集中器分配);
◆虚拟网卡对应的上网用户的用户名和密码(由测试人员配置)
(2)将网卡设置为混杂模式,参考图3所示网卡接收来自宽带接入服务器的所有帧。帧过滤分发模块对接收到的帧进行过滤,如果接收到的帧的MAC地址与某一个虚拟网卡的MAC地址相同,则将该帧转到该虚拟网卡(即线程)进行处理。
根据上述拨号用户上网的过程,每个虚拟网卡在发出PADI、PADR分组时,其中的源MAC地址应为用户配置的虚拟网卡的MAC地址,选择的接入集中器发送的确认分组(PADS)返回虚拟网卡的Session_ID。
在此后的通信过程中,虚拟网卡采用配置的虚拟网卡的MAC地址和Session_ID,即可以正常通信。
(3)此后进入PPP会话阶段,每个虚拟网卡采用用户配置的用户名和密码进行认证,在认证成功之后,由宽带接入服务器返回给用户其分配给其虚拟网卡的IP地址。
(4)参考图4所示的PPPOE协议结构图,可以采用基于PPPOE的协议栈和相应的报文格式,进行IP层通信,其IP地址采用虚拟网卡的IP地址作为源IP地址。
(5)通信中止时,由虚拟网卡发出的PADT帧,其源MAC地址和Session_ID采用分配给虚拟网卡的对应的值。
通过上述过程,可以用多台测试电脑模拟许多用户同时上网的情况,采用多次拨号和断线等操作,可以测试宽带接入服务器的稳定性等,并可以许多测试人员在多台电脑上同时进行测试,采用的成本很低,但可以大大加快测试过程。