一种家庭网关实现PPPoE按需拨号的宽带接入方法与流程

文档序号:15930166发布日期:2018-11-14 01:32阅读:1042来源:国知局

本发明涉及家庭网关领域,具体涉及一种家庭网关实现pppoe(pointtopointprotocoloverethernet,基于以太网的点对点通讯协议)按需拨号的宽带接入方法。

背景技术

家庭网关是伴随着家庭网络概念诞生的面向家庭用户的智能接入设备,随着网络技术的发展,家庭网关承载着越来越多不同类型的业务,为满足各种不同业务的宽带需求与控制服务,就要求家庭网关能够实现pppoe按需拨号的宽带接入方案,而现有pppoe按需拨号接入的机制,在接入的时效性上并不理想,需要业务接入时是否快速接入、需要业务断开时是否及时断开无法保证,直接影响用户感知和体验。

有鉴于此,急需设计一种高时效性、不影响用户感知的家庭网关实现pppoe按需拨号的宽带接入方法。



技术实现要素:

本发明所要解决的技术问题是设计一种高时效性、不影响用户感知的家庭网关实现pppoe按需拨号的宽带接入方法的问题。

为了解决上述技术问题,本发明所采用的技术方案是提供一种家庭网关实现pppoe按需拨号的宽带接入方法,包括:

根据netfilter是否监控、统计到上网报文及该报文要求连网设备的连接状态,判断发送发起或断开pppoe拨号业务的消息到用户态;

用户态根据接收到的消息进行删除或添加路由以及发起或断开pppoe拨号业务操作:

若收到断开pppoe拨号业务的消息,断开pppoe拨号业务,并对该接口添加默认路由;

若收到启动pppoe拨号业务的消息,删除对应接口的默认路由,发起pppoe拨号业务。

在上述方法中,所述根据netfilter是否监控、统计到上网报文及该报文要求连网设备的连接状态,判断发送发起或断开pppoe拨号业务的消息到用户态,具体为:

若要求连网设备的当前连接状态为已连接,判断在规定时间内是否监控到上网报文,如果不是,发送断开pppoe拨号业务的消息到用户态;否则,不进行任何操作;

若要求连网设备的当前连接状态为断开,且在规定时间内监控到上网报文,则发送发起pppoe拨号业务的消息demand到用户态;若没有监控到上网报文,不做任何操作。

在上述方法中,通过设置钩子函数实现netfilter内核上网报文监控。

在上述方法中,netfilter内核的钩子函数设置到了最后的postrouting链。

在上述方法中,用户根据需要预设上网报文数量的阈值,当netfilter统计的上网报文数量在规定时间内小于该阈值时,判断netfilter没有监控到上网报文;否则,netfilter监控到上网报文。

在上述方法中,为区分是否是从对应接口发出的上网数据报文,在对应接口添加特定ip地址,具体为:

当收到断开pppoe拨号业务的消息时,断开pppoe拨号业务,对该接口添加默认路由,并设置一个特定ip地址在该宽带连接接口上;

当收到发起pppoe拨号业务的消息时,删除接口特定ip地址及默认路由,并发起pppoe拨号。

在上述方法中,netfilter内核监控、统计上网报文,具体包括如下步骤:

步骤s101、在用户建立宽带连接并启用按需拨号功能后,内核设置钩子函数;

步骤s102、判断上网报文是否到达该接口的钩子函数,如果是,执行步骤s103;否则,内核不作任何处理,结束该上网报文处理;

步骤s103、判断该请求连接设备当前连接状态是否为已经拨号连接成功状态,如果不是,执行步骤s104,否则,执行步骤s106;

步骤s104、对该上网报文进行分析,判断该上网报文的源ip是不是特定ip地址,如果是,执行步骤s105;否则,忽略对该包的统计,结束该上网报文处理;

步骤s105、发送发起pppoe拨号业务的消息到用户态,结束该上网报文处理;

步骤s106、判断该上网报文是否从上网接口发出,如果是,执行步骤s107;否则,忽略该报文不作处理,结束该上网报文处理;

步骤s107、上网报文数量增加1,并更新当前报文到达时间,作为最后一次请求上网的最新时间,结束该上网报文处理。

在上述方法中,当没有上网数据报文时,内核发送断开pppoe拨号业务的消息stop到用户态,自动断开pppoe拨号业务。

在上述方法中,具体包括如下步骤:

步骤s111、在接口建立无流量时间定时器,并在该接口设置钩子函数时启动;

步骤s112、从无流量时间定时器开始计时起,开始统计报文;

步骤s113、判断统计到的报文数量是否小于上网报文数量的阈值,如果不是,执行步骤s116;否则,执行步骤s114;

步骤s114、判断无流量时间定时器是否达到用户自主设置的规定时间,如果是,执行步骤s115;否则,执行步骤s113;

步骤s115、发送断开pppoe拨号业务的消息stop到用户态,执行步骤s117;

步骤s116、将无流量时间定时器置0,然后执行步骤s112;

步骤s117、宽带业务断开监控结束,等待定时器重启,开始下一次的流程监控。

在上述方法中,用户态根据接收到的消息进行删除或添加路由以及发起或断开pppoe拨号业务操作,具体包括如下步骤:

步骤s201、在宽带连接建立并开启按需拨号功能后,用户态开启监听内核消息模式;

步骤s202、添加默认路由,并在宽带连接接口设置特定ip地址;

步骤s203、等待、接收内核发送的上网报文;

步骤s204、对步骤s203中的收到消息进行判断,如果是发起pppoe拨号业务消息,则跳转到步骤s205;否则,跳转到步骤s207;

步骤s205、删除对应接口上特定ip地址和默认路由;

步骤s206、开始pppoe拨号,接通宽带业务,修改内核监控状态为连接中,结束该上网报文处理;

步骤s207、中断pppoe拨号;

步骤s208、添加默认路由、特定ip地址到该宽带连接接口,并修改内核报文监控状态为断开连接,结束该上网报文处理。

与现有技术相比,本发明基于netfilter内核实现报文监控、统计,不仅失误率低,不仅可以实现pppoe的按需启停拨号,也可用于实现dhcp(dynamichostconfigurationprotocol,动态主机配置协议)获取地址、语音等业务的按需启停,为服务控制提供了一种快速、便捷的方式,可广泛应用;另外,本发明的设计架构用户层与内核层分工明确,消息发送与处理、报文监控与业务启停紧密结合,时效性高。

附图说明

图1为本发明中内核netfilter报文监控结构示意图;

图2为本发明中用户态消息处理结构示意图。

具体实施方式

本发明提出了一种基于netfilter内核报文监控实现按需拨号的宽带接入方案,采用的netlink是ipc(interprocesscommunicate,进程间通信)机制,进行内核态与用户空间消息通信,netlink是双向全双工异步传输机制,下面结合说明书附图对本发明做详细说明。

本发明提供的一种家庭网关实现pppoe按需拨号的宽带接入方法,包括netfilter内核报文监控与用户态的消息处理两部分。

对于netfilter内核报文监控,

利用netfilter监控、统计上网报文,并且根据是否监控到上网报文及该上网报文要求连网设备的连接状态,判断发送发起或断开pppoe拨号业务的消息到用户态;具体为:

如要求连网设备的当前连接状态为已连接,则根据在规定时间内是否监控到上网报文,来判定是否进行断开pppoe拨号业务的消息发送,如果在规定时间内没有监控到上网报文,则发送断开pppoe拨号业务的消息stop到用户态,否则,不进行任何操作。

因为网络上有杂包,所以当数据包数量在规定时间内少到一定数量时,就可以认定该环境已经没有用户在上网,这里的一定数量和规定时间是用户自己按自己不同需求自行设置的,该设计可以满足不同用户对不同场景的自主需求,实现自主设置拨号机制的松紧度,所以,在本发明中,用户根据需要预设上网报文数量的阈值,当netfilter统计的上网报文数量在规定时间内小于该阈值时,认为用户无上网需求,netfilter没有监控到上网报文;否则认为netfilter监控到上网报文。

若要求连网设备的当前连接状态为断开,且在规定时间内监控到上网报文,则发送发起pppoe拨号业务的消息demand到用户态;若没有监控到上网报文,不做任何操作。

对于用户态的消息处理,

在本发明中,是通过设置钩子函数实现netfilter内核上网报文监控,且为减少设备其它报文对上网报文统计判断的影响,netfilter内核的钩子函数设置到了最后的postrouting链(如图1所示);为了使在断开状态下上网报文可以到达对应接口链表的钩子函数,需要对连接接口设置路由,所以根据接收到的消息除了要进行发起或断开pppoe拨号业务操作,还要进行删除或添加路由;

若收到断开pppoe拨号业务的消息,断开pppoe拨号业务,并对该接口添加默认路由;

若收到启动pppoe拨号业务的消息,删除对应接口的默认路由,发起pppoe拨号业务。

在本发明中,为区分是否是从对应接口发出的上网报文数据,需要对该接口添加特定ip地址,例如:10.112.112.112;所以在收到断开pppoe拨号业务的消息stop时,用户层除了要断开pppoe拨号业务,并对该接口添加默认路由,还要设置一个特定ip地址在该宽带连接接口上;当收到发起pppoe拨号业务的消息demand时,要先把断开时添加的接口特定ip地址及路由删除,然后再发起pppoe拨号,否则会在正常的上网业务建立后,和正常的上网业务相扰。

如图1所示,在本发明中,netfilter内核监控、统计上网报文,具体包括如下步骤:

步骤s101、在用户建立了宽带连接并启用了按需拨号功能后,内核就会设置钩子函数;

步骤s102、判断上网报文是否到达该接口的钩子函数,如果是,执行步骤s103;否则,内核不作任何处理,结束该上网报文处理;

步骤s103、判断该请求连接设备当前连接状态是否为已经拨号连接成功状态,如果不是,说明为未拨号断开状态,执行步骤s104,否则,执行步骤s107;

步骤s104、如果是未拨号断开状态,则表示之前用户没有上网请求,接下来对该上网报文进行分析,先判断该上网报文的源ip是不是特定ip地址(10.112.112.112),如果是,则该报文就是从用户侧上来的上网请求包,表示用户发起了上网请求,执行步骤s105;如果不是,则该报文可能是网络上的广播包或设备上其它业务广播包,忽略对该包的统计,对该报文的分析结束;

步骤s105、内核监控统计到上网报文后,发送发起pppoe拨号业务的消息demand到用户态,则用户的上网报文发送处理完成;

步骤s106、如果是已经拨号连接成功,则说明当前上网业务已通,接下来分析该报文是否是用户上网请求,判断该上网报文是否从上网接口发出,如果是,执行步骤s107;否则,不是上网接口报文,忽略该报文不作处理,结束该上网报文处理。

步骤s107、如果该报文是从上网接口发出,则说明该报文是用户的上网数据报文,上网报文数量增加1,并更新当前报文到达时间,即最后一次请求上网的最新时间,为业务自动断开做准备。

以上步骤是上网报文的监控,及上网报文的判断处理,而当没有上网需求时对pppoe拨号业务的断开处理,是为了满足不同用户的感知添加的用户可自主设置的功能;在此,为了实现没有上网报文时,内核发送断开pppoe拨号业务的消息stop到用户态,添加了定时器的使用,具体包括如下步骤:

步骤s111、在接口建立无流量时间定时器,并在该接口设置钩子函数时启动;

步骤s112、从无流量时间定时器开始计时起,开始统计报文;

步骤s113、判断统计到的报文数量是否小于上网报文数量的阈值,如果不是,则说明当前用户在上网,执行步骤s116;否则,则说明用户当前没有上网需求,执行步骤s114;

步骤s114、判断无流量时间定时器是否达到用户自主设置的规定时间,如果是,则表示在用户设置的规定时间内用户都没有上网需求,执行步骤s115,否则,继续监控上网报文数量,执行步骤s113;

步骤s115、发送断开pppoe拨号业务的消息stop到用户态,告知用户态中断宽带业务,执行步骤s117;

步骤s116、将无流量时间定时器置0,然后执行步骤s112;

步骤s117、宽带业务断开监控结束,等待定时器重启,开始下一次的流程监控。

如图2所示,在本发明中,对于用户态的消息处理具体包括如下步骤:

步骤s201、在宽带连接建立并开启按需拨号功能后,用户态开启监听内核消息模式;

步骤s202、为了使用户上网数据报文能够到达钩子函数,需要初始化路由以及ip配置,即添加路由,并在宽带连接接口设置特定ip地址(10.112.112.112),则经过了该接口转发的报文就会转为源地址为特定ip地址(10.112.112.112)的报文,便于内核监控中步骤s104、步骤s107对报文的识别;

步骤s203、设置完成后等待、接收内核发送的上网报文,连接建立时默认是没有上网请求的,接收到内核的发起pppoe拨号业务消息demand才进行pppoe拨号;

步骤s204、对步骤s203中的消息进行判断,如果是发起pppoe拨号业务消息demand,则跳转到步骤s205;否则,跳转到步骤s208;

步骤s205、如果用户态接收到了发起pppoe拨号业务消息demand,则说明内核检测到用户发起了上网请求,开始接通宽带业务,不过在接通之前先把接口上特定ip地址(10.112.112.112)和默认路由删除,然后再跳转到步骤s206;

步骤s206、开始pppoe拨号,接通宽带业务,修改内核监控状态为连接中,为之后的宽带断开做准备,结束该上网报文处理;

步骤s207、如果收到内核消息的是断开pppoe拨号业务消息stop,则说明当前已经拨号成功的宽带连接在用户设置的时间内没有上网请求,即图1中内核netfilter报文监控结构示意图的步骤s115,则跳转到步骤s209,开始断开pppoe拨号,即中断pppoe拨号,宽带业务中断;

步骤s208、添加默认路由、特定ip地址到该宽带连接接口,并修改内核报文监控状态为断开连接,为下次的上网宽带拨号做准备,本次断开pppoe拨号业务消息stop处理结束。

本发明并不局限于上述最佳实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1