一种宽带接入服务器的方法 技术领域
本发明属于通讯技术类,尤其涉及宽带接入服务器中动态主机配置协议代理的实现方法。
背景技术
目前,随着宽带网络的发展,用户急剧增多而且分散。电信运营商越来越需要建立一个相对集中的用户管理中心来对用户进行集中管理。由此,宽带网络接入服务器应运而生。宽带网络接入服务器不同于一般路由器,其最主要的特点之一就是对用户的完全可控性。当采用IP(因特网网络协议)接入时,为方便普通用户接入访问宽带网络资源,减少用户端繁琐、复杂的参数配置,简化用户接入网络的过程,宽带接入服务器均会采用DHCP Relay(动态主机配置协议转发)方式,通过运营商的统一DHCP Server(动态主机配置协议服务器)为用户分配IP地址等网络参数,从而实现用户的集中管理。DHCP Relay实现已有RFC标准,但如果按照该标准的实现方式,在某些情形下用户请求分配地址和释放地址等过程会对宽带接入服务器透明不可见,使得宽带接入服务器失去对这些用户的可控性。
发明内容
本发明的目的是提供一种宽带接入服务器的方法,解决上述难题,以满足用户请求分配地址和释放地址等过程中对宽带接入服务器的透明要求。
本发明的目的是这样实现地:一种宽带接入服务器的方法,包括下列步骤:
1,设置动态主机配置协议的报文格式;
2,由动态主机配置协议客户机向服务器广播一个发现包,服务器收到客户机发来的请求包后,会响应一个提供包;
3,然后客户机选择一个服务器的提供包,向选择的服务器发送一个请求包,请求服务器分配地址;
4,服务器收到请求包,验证用户请求正确性,回应给用户一个确认包;
5,用户收到确认包,地址分配成功。
由于采用了以上的技术方案,本发明保证了用户,尤其是园区网一级的宽带接入设备,解决了IP接入用户DHCP(动态主机配置协议)方式分配地址时宽带接入设备对用户可控性方面存在的缺点,保证了接入设备对用户地址请求、释放等过程的完全监控,并提供了一种用户在线的检测机制。
附图说明
图1是本发明中的一种动态主机配置协议转发处理流程示意图;
图2是本发明中的一种动态主机配置协议转发的地址分配过程示意图;
图3是本发明中的一种动态主机配置协议转发的地址回收过程示意图。
具体实施方式
以下结合附图对本发明的实施作详述:
本发明的宽带接入服务器中动态主机配置协议代理的实现方法,主要有如下内容和步骤:
1,设置DHCP报文格式:
表中各字段定义如下:
op:消息类型
htype:硬件地址类型
hlen:硬件地址长度
hops:下一跳
xid:传输唯一标识号
sees:时间
flags:传输标记
ciaddr:客户机地址
yiaddr:分配给客户机的地址
siaddr:服务器地址
giaddr:网关地址
chaddr:客户机硬件地址
sname:客户机名称
file:文件名
options:选项参数
2、工作方式:
DHCP基于C/S(客户/服务器)模式,客户机最初的地址分配可以分为两个阶段。
首先,DHCP客户机向服务器广播一个DhcpDiscover(Dhcp发现)包,服务器收到客户机发来的请求包后,会响应一个offer(提供)包。
其次,客户机选择一个服务器的Offer(提供),向选择的服务器发送一个request(请求)包,请求服务器分配地址。
然后,服务器收到request包,验证用户请求正确性,回应给用户一个ack(确认)包。
最后,用户收到ack包,地址分配成功。
在实际运行中,宽带接入服务器收到客户机发出的Dhcp请求包后,根据用户信息(用户所连接的电路信息等)构造代理选项,添加到用户请求包中。并填写giaddr字段为接收到用户请求包的IP端口的地址,然后转发给指定的Dhcp服务器。
反之,宽带服务器收到服务器发来的Dhcp响应包后,先检查数据报,提取代理参数信息,检查是否是一个合法用户请求包的响应,若不是则丢弃该报文。若是则修改数据报文中的siaddr字段为数据报中giaddr地址,giaddr字段设置为0,修改T1(租借更新时间)字段为宽带接入服务器配置的用户在线检测时间间隔,删除报文中代理选项参数,最后利用前面提取出的代理参数信息,确定用户所连接的IP端口,从此端口转发数据报(单播或广播)。
在图1中,本发明具体工作过程中的动态主机配置协议转发处理流程如下:
1,收到DHCP包,获取IP端口号和VCC INDX后,作判断是否请求包。
2,作判断是否请求包:
1)若是,则作添加AGENT OPTIONS,修改数据报,操作是否成功的判断;
作添加AGENT OPTIONS,修改数据报,操作是否成功的判断:
A.若是,则转发该DHCP包,并结束;
B.若否,则转发该DHCP包,并结束;
2)若否,则作去出包中代理选项,修改数据报,获取电路信息,操作是否成功的判断;
作去出包中代理选项,修改数据报,获取电路信息,操作是否成功的判断;
A.若是,则转发该DHCP包,并结束;
B.若否,则转发该DHCP包,并结束;
3,结束操作。
在图2、图3中,本发明的用户DHCP地址请求、分配、释放过程包含三种情形。
1,用户首次请求地址:
1)此时,用户发出的DHCP请求包(Discover发现包)是目的IP地址广播的包,宽带接入设备接收到并提交DHCP Agent(动态主机配置协议代理)处理。Agent(代理)提取设备收到包的接口的信息,记录在本地数据库中,并构造DHCP Relay选项参数,将此参数添加到收到的DHCP请求数据包中,把接收到报文的接口的IP地址填写到报文的giaddr(网关地址)字段中,然后转发该DHCP数据报到指定的DHCP Server(动态主机配置协议服务器)。
2)DHCP Server收到请求,回应响应包(Offer供应包),目的IP地址为收到请求包中giaddr。
3)响应包被宽带接入设备接收,提交DHCP Agent(动态主机配置协议代理)处理。Agent分析代理参数选项,从中获取该数据报对应该响应包的请求包的接口信息,如果没有得到则查询本地记录的对应请求包的接口信息,去除数据报中的代理选项,修改数据报中ServerID(服务器标识)字段为得到的接口信息中的IP地址,修改T1(更新时间)字段为宽带接入服务器配置的检测用户在线时间间隔,最后转发此数据报到接口信息中指定的接口,目的IP地址是广播。
4)用户再发出Request(请求)包,目的IP地址是广播,宽带接入设备接收到包提交DHCP Agent处理,Agent修改报文中的Server ID字段为指定的外部真正DHCP Server的IP地址,修改T1字段为原来值,其它操作同于1)。
5)DHCP Server收到Request(请求)包,响应Ack(确认)包,目的地址同2)。
6)宽带接入设备收到Ack包,Agent处理同3)。(这里是一个较为简单的处理,还有一个比较复杂的处理方式,在后面的扩展部分叙述。)
至此用户请求地址的完整过程结束。用户获得DHCP Server分配的IP地址等参数,但用户记录的DHCP Server地址为用户所连接的宽带接入设备接口的IP地址。宽带接入设备上也记录了用户的信息。
2,用户请求延长地址租借时间、再次请求地址:
1)用户获得地址后启动定时,当T1时间到达时,发送Request包,请求延长租借时间,目的IP地址为本地记录的DHCP Server的IP地址(实际是用户所连接的宽带接入设备接口的IP地址),设备接收到Request包,Agent处理同4);收到DHCP Server对此Request包的Ack包后,处理同3)。(此处也是一个较为简单的处理,将在后面的扩展部分叙述一个复杂的处理方式。)
2)用户再次请求地址时(正常关机后再开机、释放地址后重新申请),发送Request包,目的地址为本地记录的DHCP Server的IP地址(实际是用户所连接的宽带接入设备接口的IP地址),设备接收到Request包,Agent处理同4);收到DHCP Server对此Request包的Ack包后,处理同3)。
3,用户在线检测:
因为改写DHCP响应包中的T1字段为宽带接入服务器的用户在线检测时间间隔,如果T1时间内没有收到用户发出的Request包请求延长租借时间,则可认为用户已经掉线(非正常关机或死机等异常情形)。
四,扩展:
由于T1时间被修改为一个较短时间,使得用户会频繁的发送请求延长租借时间包,如果简单的转发包到DHCP Server,会占用网络带宽、造成DHCP Server负担过重。所以在处理用户首次请求地址的过程中,记录下DHCP Server返回的Ack包(包含服务器返回的T1时间等网络参数),这样当收到用户T1时间到时发来的Request包,Agent判断是否服务器返回的T1时间已到,是则转发该包到DHCP Server;否则由Agent根据记录的相应该用户的Ack包,构造一个Ack包发送给用户。如此一来即可避免网络带宽被占用,减轻DHCP Server的负担。
五,用户释放地址:
用户发出Release(释放)包,目的地址为本地记录的DHCP Server的IP地址(实际是用户所连接的宽带接入设备接口的IP地址),设备接收到Release包,Agent修改报文中的Server ID字段为指定的外部真正DHCP Server的IP地址,其它操作同1)。
综上所述,本发明的宽带接入服务器在整个过程中具有双重角色,对用户端来说,它是一个Dhcp服务器;对真正的Dhcp服务器来说,它又是一个relay(转发)。按照这种工作方式,用户端发出的DHCP请求报文,无论是广播报文还是目的地址指向DHCP服务器的单播报文,宽带接入服务器都能接收到,从而可以控制用户的地址分配过程,保证对用户接入流程的完全监控。
此外,设置用户地址租借更新时间为宽带接入服务器检测用户在线时间,所以用户主机就会在每T1时间间隔向宽带接入服务器发送请求地址租借时间延长消息,通过此消息宽带接入服务器可以知道用户主机的在线情况。