一种分布式dhcp中继的实现方法

文档序号:7649959阅读:163来源:国知局
专利名称:一种分布式dhcp中继的实现方法
技术领域
本发明涉及一种分布式DHCP(Dynamic Host Configuration Protocol,动态主机分配协议)中继(RELAY)的实现方法,尤其涉及数据通信通讯领域的宽带接入服务器产品,同时也适用于其它采用DHCP RELAY接入Internet的数据通信产品。
背景技术
随着ADSL(Asymmetrical Digital Subscriber Line,非对称数字用户线)、以太网等接入技术的日益成熟,宽带接入越来越普及,与此同时,在宽带接入网开展的IPTV(IP电视)视频和VoIP(基于IP的语音)业务也越来越多。各业务的开展需要采用专用的终端实现,如视频业务需要使用STB(机顶盒),话音业务需要使用IAD(Integrated Access Device,综合接入设备),等等。各专用终端在开展业务之前要获取本端的地址信息,然后,才可以利用本端地址开展各种业务。
在通信网络中,上面这些终端获取地址通常采用DHCP(动态主机配置)协议实现。DHCP协议有一个Server(服务器)设备,所有申请地址的终端设备是Client(客户机)端,Server负责给全部的Client分配地址。但是这样的C/S(客户机/服务器)模式只能在本地网络实现,现实应用常常是跨网络的;另外,地址是非常宝贵的资源,通常是全网统一管理的。不会很小的范围就配置一台Server(服务器)。这样,就产生了DHCPRELAY(DHCP代理)技术,解决跨网络申请地址的需求。
目前,在很多宽带接入设备上都提供DHCP RELAY的功能,就是为了满足上面的组网需要。另外,采用DHCP RELAY方式,减少了主干网络上的广播包,宽带接入设备通过此方式,可以参与用户的管理,识别包的合法性,当用户异常掉线时,能够通知Server释放资源。对Server有保护作用,免受黑客攻击。
一台宽带接入设备能够与多个网络连接,与多台DHCP Server通信。但是,由于每台Server都是独立工作的,那么一台宽带接入设备作为中间的Relay设备,有可能成为瓶颈。

发明内容
本发明所要解决的技术问题在于提供一种分布式DHCP RELAY(中继)的实现方法,以解决当前一台宽带接入设备作为中间的Relay设备时,出现的瓶颈问题。
为了解决上述问题,本发明提供了一种分布式DHCP RELAY的实现方法,其特征在于,包括以下步骤(1)对DHCP RELAY设备上的每个RELAY进程编号,并配置不同的RELAY进程接收与其相对应的线卡物理端口的用户请求包;(2)当DHCP RELAY设备收到用户请求包时,分析该用户请求包的线卡物理端口号,然后将该用户请求包发送到与该线卡物理端口号对应的RELAY进程;(3)该RELAY进程修改请求包中报文的用户MAC字段,在用户MAC字段中填写该RELAY进程编号,把请求包发给本RELAY进程关联的Server(服务器)设备;(4)DHCP RELAY设备收到Server设备的应答包,提取该应答包的报文中用户MAC字段,并得到该RELAY进程编号,把该应答包转发给编号指示对应的RELAY进程;(5)RELAY进程收到该应答包后,修改里面的用户MAC字段内容,并转发给对应的线卡物理端口的用户。
本发明所述的方法,其中,所述RELAY进程编号,为该RELAY进程所属的线卡的槽位号和偏移量的和;
其中,所述步骤(3)包括该中继进程修改请求包中报文的用户MAC字段,在用户MAC字段中的第N位填写该中继进程编号,把请求包发给本中继进程关联的服务器设备;所述步骤(4)包括DHCP RELAY设备收到Server设备的应答包,提取该应答包的报文中用户MAC字段中第N位的X,如果X不在对应的RELAY进程编号之间,那么这是个非法应答包,DHCP RELAY设备将其丢弃;否则,该X减去偏移量的值是对应接收此应答包的RELAY进程所属的线卡的槽位号,DHCP RELAY设备将应答包发送给该RELAY进程处理。
本发明所述的方法,其中,所述用户请求包,为DHCP请求包;其中,所述DHCP请求包,为Discovery请求包或Request请求包。
本发明所述的方法,其中,所述步骤(1)进一步包括如果请求包不是本线卡物理端口收到的,则DHCP RELAY设备将其丢弃。
本发明所述的方法,其中,所述步骤(3)进一步包括该RELAY进程修改请求包中报文的IP地址、网关、广播标记。
本发明所述的方法,其中,步骤(5)中所述Server的应答包,为Offer应答包或Ack/Nak应答包。
本发明所述的方法,其中,所述步骤(3)包括(31)该RELAY进程简要记录用户MAC和对应的线卡物理端口号,读取Server设备的IP地址,并查找路由,获得到这个Server设备的路由,从该路由里取出本地的接口IP地址、接口MAC、下一跳MAC信息;(32)该RELAY进程修改用户请求包的报文中的源IP地址、源MAC、目的IP地址、目的MAC,把原来的广播标记改为单播,并填写网关为本线卡物理端口的用户请求包的接口IP地址,在用户MAC字段的第N位填写该RELAY进程编号;
(33)重新计算用户请求包的校验和,并发送给本RELAY进程关联的Server设备。
其中,所述步骤(5)包括RELAY进程收到该应答包后,把用户MAC字段的第N位恢复初始设置,把单播标记改为广播标记,并重新计算该应答包的校验和,根据用户MAC字段找到最初记录的对应的线卡物理端口的用户,把应答包包广播给该用户。
采用本发明所述的方法,一台宽带接入设备可以分布式的处理多个Client(客户机)的请求,分布式的处理Server(服务器)的应答。这样,虽然物理上是一台设备,但是逻辑上可以看做多台DHCP RELAY设备并行工作,提高系统的性能。即一台DHCP RELAY设备能够并发的处理更多的用户请求和Server应答,提高了设备性能。


图1是本发明实施例所述的Client设备、DHCP Relay设备、Server设备之间的数据包交互示意图;图2是本发明实施例所述的一种分布式DHCP RELAY的实现方法的步骤流程图;图3是本发明实施例所述的一种分布式DHCP RELAY的实现方法的具体操作流程图。
具体实施例方式
本发明为了解决传统技术方案存在的弊端,通过以下具体实施例进一步阐述本发明所述的一种分布式DHCP RELAY的实现方法,以下对具体实施方式
进行详细描述,但不作为对本发明的限定。
如图1所示,在本发明实施例中所述DHCP RELAY设备上运行多个RELAY进程;上行方向根据一定规则,不同物理端口送来的Client(客户机)报文(如Discovery、Request等)送给不同的RELAY进程处理,每个RELAY进程的内部处理逻辑是相同的,RELAY进程分析报文的合法性、用户的合法性通过后,修改报文里的源IP地址和MAC、目的IP地址和MAC、网关、广播标记、用户MAC等字段,把报文转发给各自代理的Server(服务器)设备,从与各自Server设备相连的物理端口发送出去;下行方向DHCP RELAY设备收到Server设备响应的应答包,把这个应答包送给对应的RELAY进程,RELAY进程处理此应答包后,把它转发给用户。上面所述的如何把响应包送给对应的RELAY进程,是本发明的重点。
其中本发明所述方法的大致流程是为了快速识别Server响应包是给哪个RELAY进程,本发明预先对每个RELAY进程编号;当转发用户请求报文时,利用用户地址的第一位MAC总是0这个特性,把RELAY进程号记录在用户MAC的第一位,然后修改报文中的某些字段,把用户请求报文转发给Server设备。当收到Server设备的应答时,提取该应答包中用户MAC的第一位,得到RELAY进程号,把该应答包发送给对应的RELAY进程。
下面是采用本发明在宽带接入服务器上实现分布式DHCP RELAY的例子。本实施例使用的宽带接入服务器具备一块主控板和多块线卡,主控板负责整个设备的配置管理,每块线卡上有独立的CPU和转发模块,能够完成用户接入的功能。在这个设备上,每块线卡上运行一个DHCPRELAY进程,不同线卡间的进程是完全独立的。每个DHCP RELAY进程只处理与本线卡物理端口连接的用户请求。参照附图2、3所示;本发明实施例的实施步骤步骤201,对设备上的每个RELAY进程编号;制定规则,每个RELAY进程处理哪几个线卡物理端口的用户请求包;在本实施例的宽带接入服务器上,由于每块线卡上有一个RELAY进程,那么这个进程的编号就是线卡的槽位号+偏移量8;该设备有8块线卡,那么所有RELAY进程的编号就是9-16,与槽位号一一对应;该接入服务器的规则是每个线卡上的RELAY进程只处理与本线卡物理端口连接的用户的请求包,如Discovery、Request等;如果该请求包不是本线卡物理端口收到的,则DHCP RELAY设备一律将其丢弃;步骤202,当DHCP RELAY设备收到用户的请求包时,分析该用户请求包的线卡物理端口号,送给对应的RELAY进程;其中,当某个线卡收到DHCP的请求包,如Discovery、Request等;由于本线卡只有一个RELAY进程,所以直接把该请求包送给本线卡的RELAY进程;该RELAY进程分析接收此包的物理槽位号、端口号,并判断是不是本线卡的槽位,如果不是DHCP RELAY设备就将其丢弃;否则,判断端口号是否合法,是不是有效的端口,如果不是DHCP RELAY设备就将其丢弃;否则继续处理;步骤203,该RELAY进程修改请求包的报文中的IP地址、MAC、网关、广播标记、用户MAC等字段,其中,用户MAC的第一位填写该RELAY进程编号,把该请求包发给本进程关联的Server设备;上述这步骤主要是该RELAY进程简要记录用户的MAC和线卡物理端口;该RELAY进程读取Server设备的IP地址,查找路由,获得到这个Server设备的路由,从路由里取出本地的接口IP地址、接口MAC、下一跳MAC等信息;然后,该RELAY进程修改请求包里的源IP、源MAC、目的IP地址、目的MAC,并把原来的广播标记改为单播,填写网关为本线卡物理端口的用户请求包的接口IP地址;该RELAY进程把用户MAC的第一位改成本槽位编号+8;最后,重新计算请求包的校验和,发送出去;步骤204,DHCP RELAY设备收到Server设备的应答包,如Offer、Ack等;提取该应答包的报文里的用户MAC字段,取第一位,得到该RELAY进程编号,把该应答包转发给编号指示的RELAY进程;宽带接入设备的某块线卡收到Server的应答包,如Offer、Ack/Nak等,提取包里的用户MAC的第一位X,如果X不在9-16之间,那么这是个非法包,则DHCP RELAY设备直接丢弃;否则,X-8就是应该接收此包的槽位号;具体地说,如果X-8等于本线卡的槽位号,那么把这个包发给本线卡的RELAY进程处理;否则发给X-8槽位对应的RELAY进程处理;步骤205,该RELAY进程收到Server设备的应答包,修改里面的用户MAC字段内容,转发给对应的线卡物理端口的用户;其中,具体地说,该RELAY进程收到Server应答包,把用户MAC字段的第一位恢复为0,并把单播标记改为广播,重新计算该应答包的校验和,根据用户MAC找到最初记录的用户线卡物理端口信息,把该应答包广播出去给该用户。
需要说明的是,本发明方法的内部事件和外部事件都是可以进行设定的,上述具体值仅为说明本发明方法的一个实施例,不能因此用来限制本发明的专利保护范围。
采用本发明实施例所述的方法,一台宽带接入设备可以分布式的处理多个Client(客户机)的请求,分布式的处理Server(服务器)的应答。这样,虽然物理上是一台设备,但是逻辑上可以看做多台DHCP RELAY设备并行工作,提高系统的性能。即一台DHCP RELAY设备能够并发的处理更多的用户请求和Server应答,提高了设备性能。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种分布式DHCP中继的实现方法,其特征在于,包括以下步骤(1)对DHCP中继设备上的每个中继进程编号,并配置不同的中继进程接收与其相对应的线卡物理端口的用户请求包;(2)当DHCP中继设备收到用户请求包时,分析该用户请求包的线卡物理端口号,然后将该用户请求包发送到与该线卡物理端口号对应的中继进程;(3)该中继进程修改请求包中报文的用户MAC字段,在用户MAC字段中填写该中继进程编号,把请求包发给本中继进程关联的服务器设备;(4)DHCP中继设备收到服务器设备的应答包,提取该应答包的报文中用户MAC字段,并得到该中继进程编号,把该应答包转发给编号指示对应的中继进程;(5)中继进程收到该应答包后,修改里面的用户MAC字段内容,并转发给对应的线卡物理端口的用户。
2.如权利要求1所述的方法,其特征在于,所述中继进程编号,为该中继进程所属的线卡的槽位号和偏移量的和。
3.如权利要求2所述的方法,其特征在于,所述步骤(3)包括该中继进程修改请求包中报文的用户MAC字段,在用户MAC字段中的第N位填写该中继进程编号,把请求包发给本中继进程关联的服务器设备;所述步骤(4)包括DHCP中继设备收到服务器设备的应答包,提取该应答包的报文中用户MAC字段中第N位的X,如果X不在对应的中继进程编号之间,那么这是个非法应答包,DHCP中继设备将其丢弃;否则,该X减去偏移量的值是对应接收此应答包的中继进程所属的线卡的槽位号,DHCP中继设备将应答包发送给该中继进程处理。
4.如权利要求1所述的方法,其特征在于,所述用户请求包,为DHCP请求包。
5.如权利要求4所述的方法,其特征在于,所述DHCP请求包,为Discovery请求包或Request请求包。
6.如权利要求1所述的方法,其特征在于,所述步骤(1)进一步包括如果请求包不是本线卡物理端口收到的,则DHCP中继设备将其丢弃。
7.如权利要求1所述的方法,其特征在于,所述步骤(3)进一步包括该中继进程修改请求包中报文的IP地址、网关、广播标记。
8.如权利要求1所述的方法,其特征在于,步骤(5)中所述服务器的应答包,为Offer应答包或Ack/Nak应答包。
9.如权利要求1所述的方法,其特征在于,所述步骤(3)包括(31)该中继进程简要记录用户MAC和对应的线卡物理端口号,读取服务器设备的IP地址,并查找路由,获得到这个服务器设备的路由,从该路由里取出本地的接口IP地址、接口MAC、下一跳MAC信息;(32)该中继进程修改用户请求包的报文中的源IP地址、源MAC、目的IP地址、目的MAC,把原来的广播标记改为单播,并填写网关为本线卡物理端口的用户请求包的接口IP地址,在用户MAC字段的第N位填写该中继进程编号;(33)重新计算用户请求包的校验和,并发送给本中继进程关联的服务器设备。
10.如权利要求9所述的方法,其特征在于,所述步骤(5)包括中继进程收到该应答包后,把用户MAC字段的第N位恢复初始设置,把单播标记改为广播标记,并重新计算该应答包的校验和,根据用户MAC字段找到最初记录的对应的线卡物理端口的用户,把应答包包广播给该用户。
全文摘要
本发明公开了一种分布式DHCP中继的实现方法,包括步骤对DHCP RELAY设备上的每个RELAY进程编号,并规定不同的RELAY进程接收与其相对应的线卡物理端口的用户请求包;收到用户请求包时,分析用户请求包的线卡物理端口号,然后将用户请求包发送到与该线卡物理端口号对应RELAY进程;RELAY进程修改包中报文的用户MAC字段,在用户MAC字段中填写RELAY进程编号,把请求包发给本RELAY进程关联的Server设备;设备收到Server设备应答包,提取报文中用户MAC字段中得到RELAY进程编号,把应答包转发给编号指示对应RELAY进程;RELAY进程收到应答包后,修改里面的用户MAC字段内容,并转发给对应的线卡物理端口的用户。本发明实现了一台DHCP RELAY设备能够并发的处理更多的用户请求和Server应答,提高了设备性能。
文档编号H04L12/56GK101039234SQ200710085198
公开日2007年9月19日 申请日期2007年3月19日 优先权日2007年3月19日
发明者赵欣 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1