发明内容
本发明的目的是提供一种利用宽带路由器实现上网的方法,以克服现有技术中使用宽带路由器接入时需要对其进行拨号信息配置等操作给用户带来不便的缺点,提高宽带路由器的智能性,简化用户操作。
为此,本发明提供如下的技术方案:
一种利用宽带路由器实现上网的方法,所述方法包括以下步骤:
A、在电脑上建立点对点协议PPP拨号客户端程序;
B、启动PPP拨号客户端程序时,与所述电脑相连的宽带路由器捕捉用户的拨号信息;
C、当所述电脑再次上电后,所述宽带路由器根据捕捉的用户的拨号信息自动拨号,建立所述电脑与网络的连接。
所述步骤B包括:
B1、当所述宽带路由器拨号方式为动态主机配置协议DHCP方式且未配置广域网WAN口地址时,对其局域网LAN口转WAN口出去的报文进行监听;
B2、如果所述宽带路由器监听到PPP协议报文,则将其拨号方式设置为PPP拨号方式;
B3、当所述宽带路由器拨号方式为PPP方式且未配置拨号帐户名和密码时,对其LAN口转WAN口出去的报文进行监听,获取所述用户的拨号信息。
所述步骤B3包括:
B31、获取LAN口转WAN口出去的以太帧;
B32、当检测到获取的以太帧中协议字段值为以太网点对点协议PPP会话阶段的编码值时,则对后续的报文进行PPP协议处理分析,获取拨号帐户名和密码信息;
B33、当检测到获取的以太帧中协议字段值为因特网协议IP的编码值时,则进一步检查该报文的隧道封装格式;
B34、如果是通用路由封装GRE封装的隧道格式,则对后续的报文进行PPTP协议处理分析,获取拨号帐户名和密码信息;
B35、如果是用户数据包协议UDP和二层隧道协议L2TP封装的隧道格式,则对后续的报文进行L2TP协议处理分析,获取拨号帐户名和密码信息。
所述步骤B34包括:
检测所述后续报文的GRE头中的协议类型字段;
当检测到所述协议类型字段的值为以太网点对点协议PPP会话阶段的编码值时,则对后续的报文进行PPP协议处理分析,获取拨号帐户名和密码信息。
所述步骤B35包括:
检测所述后续报文的L2TP头中的协议类型字段;
当检测到所述协议类型字段的值为以太网点对点协议PPP会话阶段的编码值时,则对后续的报文进行PPP协议处理分析,获取拨号帐户名和密码信息。
所述对后续的报文进行PPP协议处理分析,获取拨号帐户名和密码信息的步骤包括:
监听宽带路由器LAN口转WAN口出去的后续报文中的编码字段;
根据所述编码字段的值获取PAP认证确认报文中的拨号帐户名和密码信息。
所述步骤B32进一步包括:
当后续报文为PAP认证请求报文时,记录该报文中的帐号及密码信息,同时记录该报文的源MAC地址、会话标识和PPP标识;
当后续报文为PAP认证确认报文时,根据记录的PAP认证请求报文的源MAC地址、会话标识和PPP标识匹配该报文中对应的信息;
如果所有信息均一致,则将记录的帐号及密码信息作为用户的拨号信息。
所述步骤B32进一步包括:
当后续报文为PAP认证失败报文时,根据记录的PAP认证请求报文的源媒体接入控制MAC地址、会话标识和PPP标识匹配该报文中对应的信息;
如果所有信息均一致,则删除记录的信息,等待用户重新拨号。
所述步骤B32进一步包括:
当后续报文为所述记录的会话标识相同的PPP链路控制协议LCP终止请求或以太网上点到点协议激活发现结束分组PPPoE PADT报文时,则删除记录的信息,等待用户重新拨号。
所述PPP拨号客户端程序具体为:
PPPoE拨号客户端程序;或者点对点隧道协议PPTP拨号客户端程序;或者L2TP拨号客户端程序。
由以上本发明提供的技术方案可以看出,本发明通过在电脑上建立PPP(点对点协议)拨号客户端程序,比如PPPoE拨号客户端程序、PPTP(点到点隧道协议)拨号客户端程序或者L2TP(第二层隧道协议)拨号客户端程序等,并在启动该拨号客户端程序时使与电脑相连的宽带路由器获取用户的拨号信息,在电脑下线后宽带路由器即可根据这些信息自动重新拨号,将电脑接入网络。这种接入方式对采用DHCP方式上网的用户,无需对宽带路由器作任何设置即可上网;对PPP拨号用户,只需在原来电脑上成功拨号一次即可完成对路由器拨号的用户名、密码及相关拨号信息的设置。从而使用户无需对宽带路由器做任何操作即可将终端接入Internet,提高了宽带路由器的智能化程度,方便了用户使用。
具体实施方式
通常,宽带路由器的缺省状态为DHCP方式上网,当用户采用DHCP方式上网时,将网络搭建后,只需将电脑的IP地址配置成与宽带路由器LAN口地址同一网段,多个用户便可以共享宽带路由器的同一个WAN口IP地址访问Internet。
但由于家庭和中小企业普遍采用PPP(点到点协议)拨号方式,这种拨号方式需要对用户进行帐号及密码的认证。当前运营商通常采用PAP(密码认证协议)认证方式。PAP是一种明文方式在Internet中传输的协议,通过报文分析可以在网络中捕获PAP协议的报文,从而可以获知用户拨号的帐号和密码。根据该原理,本发明在用户利用拨号客户端程序拨号时,使与用户电脑相连的宽带路由器获取用户的拨号信息,当电脑再次上电的时候,宽带路由器根据这些信息自动重新拨号,将电脑接入网络。
在使用宽带路由器时,如果用户通过电话线上网,则将路由器的WAN口和Modem(调制解调器)的LAN口相连,将电脑网卡连接路由器的任意一个LAN口;如果是通过网线上网,则将网线直接连接到路由器的WAN口。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
参照图2,图2示出了本发明方法的实现流程,包括以下步骤:
步骤201:在电脑上建立PPP拨号客户端程序。
采用PPP协议的拨号客户端程序通常有PPPoE、PPTP和L2TP等,在国内主要使用PPPoE拨号客户端程序进行拨号接入。
PPP拨号客户端程序具体的建立过程与现有技术相同,可以在PC操作系统下创建,也可以使用电信、网通等ISP(业务提供商)提供的拨号软件,直接运行安装程序,完成后,配置其帐户和密码即可。
步骤202:启动PPP拨号客户端程序时,与电脑相连的宽带路由器捕捉用户的拨号信息。
通常,宽带路由器的缺省状态为DHCP方式上网,当用户采用DHCP方式上网时,将网络搭建后,只需使用户PC机的IP地址与宽带路由器LAN口地址同一网段,用户便可以通过该宽带路由器的WAN口IP地址访问Internet。
但前面已经提到,对于家庭及一些中小企业用户在上网过程中普遍采用PPP拨号。因此,在本发明中,当宽带路由器拨号方式为缺省的DHCP方式且未配置广域网WAN口地址时,对其局域网LAN口转WAN口出去的报文进行监听。
如果宽带路由器监听到了PPP协议报文,则表明用户采用的是PPP拨号方式上网,此时宽带路由器自动将其拨号方式设置为PPP拨号方式。
当宽带路由器拨号方式为PPP方式且未配置拨号帐户名和密码时,对其LAN口转WAN口出去的报文进行监听,获取用户的拨号信息。这些拨号信息包括:用户上网用的帐户名和密码,如果采用PPTP协议或者L2TP协议,还包括初试初始IP地址和Server的IP地址等信息。
同样,如果宽带路由器拨号方式为PPP方式,但已获得了拨号帐户名和密码(比如已通过手工配置)等信息时,则对LAN口转WAN口出去的报文不需要再进行监听。
步骤203:当电脑下线后,宽带路由器根据捕捉的用户的拨号信息自动拨号,建立该电脑与网络的连接。
为了更好地理解宽带路由器对报文的监听检测过程,下面分别对以太帧格式及PPP协议帧格式进行说明。
以太帧格式如下表1所示:
表1:
DA |
SA |
Type |
Data |
48bits |
48bits |
16bits |
46-1500bytes |
其中,DA表示目的地址;SA为源地址;
Type表示以太网承载的协议类型:
比如,0x0800表示IP协议数据;
0x0806表示ARP(地址解析协议)协议;
0x8863为PPPoE Discovery(发现)阶段的code;
0x8864为PPPoE Session(会话)阶段的code等;
Data表示承载的数据。
PPP协议帧格式如下表2所示:
表2:
Flag |
Address |
Control |
Protocol |
Information |
FCS |
Flag |
01111110 |
11111111 |
00000011 |
8/16bits | |
16bits |
01111110 |
其中,Flag表示帧的起始或结束,由二进制序列01111110构成;
Address包括二进制序列11111111,标准广播地址,PPP不分配个人站地址;
Control为二进制序列00000011,要求用户数据传输采用无序帧;
Protocol用于识别帧的Information字段封装的协议:
0xc023表示PAP协议的code;0xc223表示CHAP协议的code;
Information为0或更多字节,包含Protocol字段中指定的协议数据报;
FCS为帧校验序列(FCS)字段,通常为16位,PPP的执行可以通过预先协议采用32位FCS来提高差错检测效果。
PAP是PPP协议集中的一种链路控制协议,通过使用二次握手提供一种对等节点的建立认证的简单方法,是建立在初始链路确定的基础上的。在完成链路建立阶段之后,对等节点持续重复发送用户名、密码给验证者,直至认证得到响应或连接终止。PAP并不是一种强有效的认证方法,其密码以文本格式在链路上进行发送,对于窃听、重放或重复尝试和错误攻击没有任何保护。
PAP协议帧格式如下表3所示:
表3:
Code8bits |
Identifier8bits |
Length16bits |
Data... |
其中,Code用于识别PAP数据包类型。PAP Code字段分配如下:
0x01-Authenticate Request(认证请求);
0x02-Authenticate ACK(认证确认);
0x03-Authenticate NAK(认证非确认);
Identifier用于匹配Request和ACK;
Length用于表示PAP数据包的长,包括Code、Identifier、Length和Data字段;
Data为0或更多字节。Data字段格式取决于Code字段。
PPPoE、PPTP、L2TP的协议栈格式如图3所示。
图4示出了宽带路由器对LAN口转WAN口出去的报文进行监听的实现流程:
步骤401:宽带路由器获取LAN口转WAN口出去的报文。
步骤402:分析该报文中的协议字段是否为PPP会话阶段报文。如果是,则进到步骤403;否则,进到步骤404。
根据上述表1中的以太帧格式可知,Type为0x8863时,表示是PPPoEDiscovery(发现)阶段的code;Type为0x8864时,表示是PPPoE Session(会话)阶段的code。
因此,一旦宽带路由器检测到以太帧中协议字段值为0x8864,则对报文进行PPPoE协议分析。
步骤403:进行PPP协议处理流程,获取用户上网的帐户名和密码信息。具体如何根据PPP协议处理流程获取这些信息将在后面详细描述。
步骤404:进一步判断该报文是否为IP报文。根据上述表1中的以太帧格式可知,Type为0x0800时,表示是IP协议数据。如果是,则进到步骤405;否则,进到步骤411。
步骤405:进一步判断该报文是否为UDP报文。如果是,则进到步骤406;否则,进到步骤408。
参照图5所示IP头格式,其中,协议字段表示了IP数据包采用的协议类型。根据该字段的值即可判断IP数据包的协议类型。如果为0x2f,则表示为GRE(通用路由封装)报文,如果为0x11,则表示为UDP(用户数据包协议)报文。
步骤406:进一步判断是否为L2TP(二层隧道协议)报文。如果是,则进到步骤407;否则,进到步骤411。
步骤407:进行L2TP处理流程,获取用户上网信息。具体如何根据L2TP处理流程获取这些信息将在后面详细描述。
步骤408:进一步判断该报文是否为GRE(通用隧道协议)报文。如果是,则进到步骤409;否则,进到步骤411。
步骤409:进一步判断是否为PPP报文。如果是,则进到步骤410;否则,进到步骤411。
步骤410:进行PPTP处理流程,获取用户上网信息。
步骤411:丢弃该报文。
由此可见,宽带路由器通过对LAN口转WAN口出去的报文进行监听,逐层分析该报文中的协议字段,可以获知该报文的协议类型,如果是PPP会话阶段报文、或者是L2TP协议报文或PPTP报文,则可以通过相应的协议处理流程中的报文内容获取用户的上网信息。
下面分别详细说明PPPoE、L2TP、PPTP报文分析处理流程。
PPPoE拨号的详细流程如图6所示(PAP认证方式,IPCP(IP控制协议)协商过程因设备请求的IP、DNS(域名服务器)等内容而异):
PPPoE的拨号分为两个阶段:Discovery(发现)阶段和Session(会话)阶段。当一个主机想开始一个PPPoE会话时,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPoE Session ID。在发现阶段,基于网络的拓扑,主机可以发现多个PPPoE服务器。发现阶段允许主机发现所有的PPPoE服务器,然后选择其中一个。当发现阶段成功完成后便进入PPP的协商阶段,即Session阶段,该阶段主机和被选择的PPPoE服务器进行LCP(链路控制协议)协商、Authentication(鉴权)认证、身份认证、IPCP协商以及连接成功后的ECHO线路检测。
当检测到PPP报文中协议字段是为0xc023(PAP协议code)时,则对报文进行进一步分析,同时记录报文的源MAC地址、该PPPoE拨号的Session ID和PPP的Identifier(标识);否则放弃对该报文的分析。
然后,检测PAP报文中的code字段,有以下几种情况:
(1)code:0x01,该报文为PAP认证请求报文,则需记录peer-ID(帐号)与Password(密码);同时记录相应PPPoE的源MAC(媒体接入控制)、SessionID和PPP的Identifier;
(2)code:0x02,该报文为PAP认证确认报文,匹配该报文的目的MAC、Session ID和认证请求报文的源MAC、Session ID和Identifier是否一致;如一致,则配置宽带路由器用户名和密码;如有一个不一致,则继续等待认证响应消息;如收到同一个Session ID的PPP LCP Termination Request(终止请求)或PADT(PPPoE激活发现结束分组)报文,则释放资源,等待重新拨号;
(3)code:0x03,该报文为PAP认证失败报文且目的MAC、Session ID和Identifier匹配,释放资源,等待重新拨号;如有一个不一致,则继续等待认证响应消息;如收到同一个Session ID的PPP LCP Termination Request或PADT报文,则释放资源,等待重新拨号。
L2TP是用来整合多协议拨号服务至现有的因特网服务提供商点。提供了对PPP链路层数据包的通道(Tunnel)传输支持,允许二层链路端点和PPP会话点驻留在不同设备上,并且采用包交换网络技术进行信息交互,从而扩展了PPP模型。PPP定义了多协议跨越第二层点对点链接的一个封装机制。特别地,用户通过使用众多技术之一(如:拨号POTS(普通电话业务)、ISDN(综合业务数字网)、ADSL(不对称数字用户线)等)获得第二层连接到网络访问服务器(NAS),然后在此连接上运行PPP。
L2TP隧道的呼叫建立流程如图7所示:
1.客户端发起呼叫建立;
2.客户端和服务器端进行PPP LCP(PPP链路控制协议)协商;
3.客户端向服务器发起PAP认证;
4.认证通过,服务器向客户端发送认证通过消息;
5.客户端和服务器端进行PPPNCP(PPP网络控制协议)协商;
6.协商通过,隧道建立。
由该流程可见,宽带路由器可以按以下过程对其LAN口转WAN口出去的报文进行检测:
当检测到一个IP包中承载的是UDP协议时,则进一步分析UDP包中承载的是否为L2TP协议包;如果是,则进一步分析L2TP包中承载的是否为PPP协议包;如果是,则进一步分析PPP包中承载的是否为PAP协议包。当检测到为PPP会话阶段的报文(0xc023)时,则进一步分析PAP报文中code字段:
(1)code:0x01,该报文为PAP认证请求报文,则需记录peer-ID(帐号)与Password(密码);同时记录相应L2TP的源IP、目的IP和PPP的Identifier;
(2)code:0x02,该报文为PAP认证确认报文,匹配该报文的目的Identifier是否一致;如一致,则配置宽带路由器用户名、密码、初始IP和Server IP;如有一个不一致,则继续等待认证响应消息;如收到同一个L2TP Server发送的PPP LCP Termination Request(终止请求)报文,则释放资源,等待重新拨号;
(3)code:0x03,该报文为PAP认证失败报文且目的IP和Identifier匹配,释放资源,等待重新拨号;如有一个不一致,则继续等待认证响应消息;如收到PPP LCP Termination Request报文,则释放资源,等待重新拨号。
PPTP(点到点隧道协议)协议是一种支持多协议虚拟专用网络的协议,通过该协议,远程用户能够跨越PC操作系统以及其他点对点激活系统安全访问共同网络,并通过拨号本地Internet服务提供商安全链接他们Internet上的共同网络。PPTP支持点到点PPP协议在IP网络上的隧道封装,PPTP作为一个呼叫控制和管理协议,使用增强的GRE(通用路由封装)技术为传输的PPP报文提供流控和拥塞控制的封装服务。
当检测到PPP报文中协议字段为0xc023(PAP协议code)时,则对报文进行进一步分析,同时记录报文的源IP地址、目的IP地址、PPP的Identifier(标识);否则放弃对该报文的分析。
然后,检测PAP报文中的code字段,有以下几种情况:
(1)code:0x01,该报文为PAP认证请求报文,则需记录peer-ID(帐号)与Password(密码);同时记录相应PPTP的源IP、目的IP和PPP的Identifier;
(2)code:0x02,该报文为PAP认证确认报文,匹配该报文的目的Identifier是否一致;如一致,则配置宽带路由器用户名、密码、初始IP和Server IP;如有一个不一致,则继续等待认证响应消息;如收到同一个PPTP Server发送的PPP LCP Termination Request(终止请求)或STOP-Control-Connetion-Request报文,则释放资源,等待重新拨号;
(3)code:0x03,该报文为PAP认证失败报文且目的IP和Identifier匹配,释放资源,等待重新拨号;如有一个不一致,则继续等待认证响应消息;如收到PPP LCP Termination Request或STOP-Control-Connetion-Request报文,则释放资源,等待重新拨号。
可见,本发明通过局域网内PC的PPP(PPPoE、PPTP、L2TP等)拨号,在宽带路由器中对相关报文的分析,使宽带路由器自动设置拨号的帐号、密码及相关拨号信息,从而使用户可以实现对宽带路由器无操作便可访问Internet,充分体现了智能化,方便了用户的使用。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。