一种实现报文转发的方法、装置和系统的制作方法

文档序号:7719541阅读:149来源:国知局
专利名称:一种实现报文转发的方法、装置和系统的制作方法
技术领域
本发明涉及通信领域,特别涉及一种实现报文转发的方法、装置和系统。
技术背景
现今,互联网络正在以惊人的速度扩张,接入网络的设备数量也成几何数目增长, 为了提高网络管理的方便性以及提高网络中IP地址资源利用率,出现了以客户机/服务 器为基本工作模式的DHCP (Dynamic Host Configuratiorfrotocol,动态主机配置协议) 协议,利用DHCP协议可以实现动态管理IP地址,其中,DHCP协议采用UDP协议实现客户 端和服务器的信息交换,客户端使用链路局部地址或者已由其他机制分配的地址传送和接 收DHCP消息,DHCP服务器使用一个预留的链路全局多播地址来接收由客户端发送的消息, DHCP服务器会根据客户端的物理地址,为客户端分配IP地址。
发明人在实现本发明的过程中,发现上述现有技术至少存在以下缺点和不足客 户端通过二层网络接入DHCP服务器时,由于DHCP服务器地址池中的地址数目有限,如果网 络存在安全隐患,非法用户会不断变换物理地址,从而尝试申请到一个DHCP域中所有的地 址,耗尽DHCP服务器地址池中的地址,导致其他正常用户无法获得地址,造成DHCPV6 (第六 版)协议存在安全问题。发明内容
在二层网络范围内,为了解决DHCPV6的安全问题,本发明实施例提供了一种实现 报文转发的方法、装置和系统。所述技术方案如下
一方面,提供了一种实现报文转发的方法,当动态主机配置协议DHCPV6客户端通 过二层网络接入DHCPV6服务器时,所述方法包括
二层设备接收由所述DHCPV6客户端发送的DHCPV6上行报文;在所述DHCPV6上行 报文中添加用于标识用户的字段,并将添加字段后的报文向所述DHCPV6服务器转发;
所述二层设备接收由所述DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6 下行报文中携带由所述二层设备添加的用于标识用户的字段,则剥离所述字段后,将剥离 字段后的报文向所述DHCPV6客户端转发。
再一方面,提供了一种二层网络中实现报文转发的装置,所述装置包括
第一接收模块,用于接收由DHCPV6客户端发送的DHCPV6上行报文;
第一转发模块,用于在所述第一接收模块接收的DHCPV6上行报文中添加用于标 识用户的字段,并将添加字段后的报文向DHCPV6服务器转发;
第二接收模块,用于接收由所述DHCPV6服务器发送的DHCPV6下行报文;
第二转发模块,用于若所述第二接收模块接收的DHCPV6下行报文中携带由所述 装置添加的用于标识用户的字段,则剥离所述字段后,将剥离字段后的报文向所述DHCPV6 客户端转发。
再一方面,又提供了一种实现报文转发的系统,所述系统包括动态主机配置协议5DHCPV6服务器,以及位于二层网络中的二层设备,
所述二层设备,用于接收由所述DHCPV6客户端发送的DHCPV6上行报文;在所述 DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报文向所述DHCPV6服务 器转发;还用于接收由所述DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6下行报 文中携带由所述二层设备添加的用于标识用户的字段,则剥离所述字段后,将剥离字段后 的报文向所述DHCPV6客户端转发;
所述DHCPV6服务器,用于接收所述二层设备发送的报文,并向所述二层设备返回 DHCPV6下行报文。
本发明实施例提供的技术方案的有益效果是
通过本发明实施例提供的实现报文转发的方法,对于二层网络中的DHCPV6报文 的而言,通过二层设备实现了对于上行收到DHCPV6报文,在后面添加用于标识用户信息的 字段,不需要改变消息类型,对于下行收到的DHCPV6报文检查其中携带的字段为二层设备 自己添加后,则剥离添加的字段再单播发送给相应的端口。通过由二层网络设备添加物理 信息,避免了在网络边缘部署三层网络设备(如IP设备),DHCPV6服务器根据二层网络设 备添加的物理信息来对用户进行认证,以及匹配地址池,且下行DHCP报文根据解析添加的 字段进行转发,增强了报文转发的安全性,有效解决了 DHCPV6协议中的安全问题。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
图1是本发明实施例1提供的实现报文转发的方法的流程图2是本发明实施例1提供的网络架构示意图3是本发明实施例1提供的实现报文转发的方法的详细流程图4是本发明实施例1提供的实现报文转发的方法的信息交互示意图5是本发明实施例2提供的实现报文转发的方法的流程图6是本发明实施例2提供的网络架构示意图7是本发明实施例2提供的实现报文转发的方法的详细流程图8是本发明实施例2提供的实现报文转发的方法的信息交换示意图9是本发明实施例3提供的二层网络中实现报文转发的装置的示意图10是本发明实施例4提供的二层网络中实现报文转发的装置的示意图11是本发明实施例5提供的三层网络中实现报文转发的装置的示意图12是本发明实施例6提供的实现报文转发的系统的示意图。
图13是本发明实施例6提供的实现报文转发的系统的另一示意图具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
为了对上述本发明实施例提供的方法进行详细说明,请参见如下实施例
实施例1
在二层网络范围内,为了解决DHCPV6的安全问题,本发明实施例提供了一种实现 报文转发的方法,参见图1,当DHCPV6客户端仅通过二层网络接入DHCPV6服务器时,该方法 内容如下
Sl 二层设备接收由DHCPV6客户端发送的DHCPV6上行报文;
S2:在DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报文转发 至DHCPV6服务器;
S3 二层设备接收由DHCPV6服务器发送的DHCPV6下行报文;
S4:若DHCPV6下行报文中携带由二层设备添加的用于标识用户的字段,则剥离字 段后,将剥离字段后的报文转发至DHCPV6客户端。
其中,优选地,用于标识用户的字段包括第一字段和第二字段,则步骤S2所涉及 的在DHCPV6上行报文中添加用于标识用户的字段,具体包括二层设备根据接收DHCPV6 上行报文的接口的信息,将接口标识添加到第一字段;二层设备根据接收的客户端的信息, 将客户端标识添加到第二字段。其中,第一字段具体可以为optionlS字段、第二字段具体 可以为option37。
为了对该方法进行详细说明,请参见图2,为本发明实施例提供的二层网络的架构 示意图,包括DHCPV6服务器、与该DHCPV6服务器连接的二层设备L2(如二层交换机等)、 与二层设备L2连接的DHCPV6客户端(如PC设备等)。
一、对于二层设备L2而言,在二层设备L2中设置有代理AGENT,二层设备L2会将 DHCPV6协议交互过程中的协议报文,上交至AGENT模块处理
1、对于上行方向的DHCPV6协议报文(即从客户端发送的DHCPV6报文),通常报 文的消息类型为恳求solicit(l)、请求request (3)、确认confirm(4)、更新renew (5)、重绑 定 rebind (6)、释放 release (8),下降 decline (9)、信息请求 information_request (11),该 AGENT直接在原报文中添加optionlS或者option37来标识用户,并将添加后的报文转发给 DHCPV6服务器。2、
2、对于下行方向的DHCPV6协议报文(即从服务器发送的DHCPV6报文),该AGENT 模块判断出若报文中包含optionlS或者0pti0n37选项,则将此选项去掉,然后将报文转发 给DHCPV6客户端。
二、对于DHCPV6服务器而言当DHCPV6服务器接收到带有optionl8和option37 的报文,解析optionlS和0pti0n37来获得用户信息,基于获得的用户信息进行用户认证和 进行地址分配。
基于上述图2所提供的网络架构,参见图3,本发明实施例提供的方法的详细流程 图
101 :DHCPV6客户端向DHCPV6服务器发送solicit报文。
其中,DHCPV6客户端发送该报文用于请求DHCPV6服务器为其分配网络参数,请求 的网络参数包括但不限于IPv6地址/前缀、网络配置参数等。
102 二层设备L2捕获solicit报文,将该solicit报文送至AGENT,AGENT根据 用户位置信息组装成optionlS、option37选项,并将这些选项添加到原来的solicit报文中,然后将添加了 0pti0n18、0pti0n37字段的新报文发送出去。
其中,二层设备L2的AGENT具体实现时,可以为以逻辑模块位于二层设备L2中, 也可以为一在二层网络中单独存在的实体,本实施例对此不做限制,且以AGENT位于二层 设备L2中为例进行说明。二层设备L2可以根据报文的类型,有针对性的捕获到solicit报 文(二层设备L2如何捕获报文属于现有技术不再赘述)。二层设备L2根据用户位置信息 (接口标识interface-id以及客户端标识remote-id)组装成optionl8、option37选项, 具体如下
二层设备L2根据自身接收到该solicit报文的接口,获知接口标识 interface-id,在optionl8字段中添加该接口标识interface-id。该接口标识用于指示 二层设备L2和DHCPV6客户端相连的接口,表示报文从哪个接口接收到,包括但不限以下内 容框、槽、端口号等。例如通常每个框上有2个槽位,每个槽位上有8个或16个端口,若 二层设备L2是通过0框1槽2端口接收到的该solicit报文,则接口标识为0框1槽2端 口。本领域技术人员具体实现该optionlS字段的内容填充时,可以参考RFC 3315。
二层设备L2根据预先获知的客户端标识remote-id,在0pti0n37字段中添加该客 户端标识,其中,该客户端标识包括但不限于C-VLAN(Virtual Local AreaNetwork,虚拟局 域网)、终端标识id、PCV(Permanent Virtual Circuit,永久虚拟电路)等,本领域技术人 员具体实现该option37字段的内容的填充时,可以参考RFC 4649。
103 :DHCPV6服务器对收到携带有optionl8、option37的solicit报文进行解析, 解析出用户的位置信息,并根据该用户的位置信息进行用户认证,判断认证是否成功,如果 是,则执行步骤104 ;否则,认证失败,丢弃该报文。
其中,在根据该用户的位置信息进行用户认证时,可以参考如下
根据该用户的位置信息,和自身预先保存的用户的位置信息进行比较,判断是否 匹配,如果是,则认证成功;否则,认证失败。本发明实施例不限制进行用户认证时的方式和 方法。
104 :DHCPV6服务器发送公告advertise报文,在该advertise报文中携带原 solicit 报文中携带的 optionl8、option37 字段。
其中,与上述DHCPV6客户端发送的solicit报文相对应,该advertise报文用于 通知DHCPV6客户端,DHCPV6服务器可以为其分配的IP地址/前缀、网络配置参数。
105 二层设备 L2 捕获 advertise 报文,将该 advertise 报文送至 AGENT,AGENT 对adyertise报文进行解析,若报文中携带optionl8、option37字段,且携带的optionl8、 option37字段中内容由二层设备L2自身添加,则将0pti0n18、0pti0n37字段剥离,并将剥 离后的报文转发给DHCPV6客户端。
其中,二层设备L2的AGENT对携带的0pti0n18、0pti0n37字段中内容是否为由二 层设备L2自身添加进行判断,具体的判断方式包括但不限于
1、判断接收的报文中optionlS字段的长度是否和自己添加的optionlS字段的 长度是否一致,如果是,则接收的报文中optionlS字段为自身添加的;否则,接收的报文 中optionlS字段不是自身添加的;0pti0n37处理方式类似,不再赘述。例如自己添加的 optionlS字段的长度为36字节,如果接收到报文中的optionlS字段的长度为36字节,则 认为接收的报文中optionlS字段是自身添加的;8
2、判断接收的报文中optionlS字段中固定长度的内容是否和自己添加的 optionlS字段中固定长度的内容是否一致,如果是,则接收的报文中optionlS字段为自身 添加的;否则,接收的报文中optionlS字段不是自身添加的;0pti0n37处理方式类似,不再 赘述。例如自己添加的optionlS字段的中从第2-8位的内容为1101110,如果接收到报 文中的option18字段的中从第2-8位的内容为1101110,则认为接收的报文中0pti0nl8字 段是自身添加的;
3、判断接收的报文中optionlS字段中预设标志位(如校验位)否和自己添加的 optionlS字段中预设标志位是否一致,如果是,则接收的报文中optionlS字段为自身添加 的;否则,接收的报文中optionlS字段不是自身添加的;0pti0n37处理方式类似,不再赘 述。例如自己添加的optionlS字段的预设标志位为1,如果接收到报文中的optionlS字 段的预设标志位为1,则认为接收的报文中optionlS字段是自身添加的。
106 :DHCPV6客户端向DHCPV6服务器发送请求request报文。
其中,当DHCPV6客户端接收到不携带optionl8、option37字段的advertise报文 后,获知DHCPV6服务器可以为其分配的IP地址/前缀、网络配置参数,则发起请求request 报文。
107 二层设备L2捕获request报文,将该request报文送至AGENT,AGENT根据 用户位置信息组装成optionlS、option37选项,并将这些选项添加到原来的request报文 中,然后将添加了 optionlS、0pti0n37字段的新报文发送出去。
其中,该步骤具体实现时,与上述步骤102类似,不再赘述。
108 :DHCPV6服务器接收到添加了 optionl8、option37字段的request报文后,根 据request报文中携带的DHCPV6客户端的身份标识,依据分配策略,为该DHCPV6客户端分 配IP地址/前缀、网络配置参数,并返回回复Mply报文,该i^ply报文中携带为该DHCPV6 客户端分配的IP地址/前缀、网络配置参数,以及原request报文中携带的optionlS、 option37 字段。
其中,本领域技术人员可以获知,DHCPV6客户端在发送request报文时,可以根据 自身的MAC (Media Access Control,介质访问控制)地址,发送时间等因素,生成DHCPV6客 户端的身份标识,则DHCPV6服务器可以根据DHCPV6客户端的身份标识,进行IP地址的分 配等。相应地,DHCPV6服务器接收到添加了 optionl8、option37字段的request报文后, 不需要解析optionl8、option37字段。即DHCPV6服务器只需要解析solicit报文中的 optionl8、37 字段。
109 二层设备L2捕获r印Iy报文,将该r印Iy报文送至AGENT,AGENT对r印Iy报 文进行解析,若报文中携带optionlS、option37字段,且携带的字段的内容由二层设备L2 自身添加,则将optionl8、option37字段剥离。
其中,该步骤具体实现时,与上述步骤105类似,不再赘述。
110 二层设备L2将剥离后的I^ply报文转发给DHCPV6客户端。
至此,DHCPV6客户端便可以获取到DHCPV6服务器为其分配的IP地址/前缀、网络 配置参数,从而可以执行后续流程。参见图4,为本发明实施例提供的方法的交互示意图
1、DHCPV6客户端使用solicit消息来请求服务器的位置;
2、solicit消息被L2设备捕获送到AGENT,AGENT根据用户位置信息组装成optionl8, option37选项,并将这些选项添加到原来的solicit报文中,然后将添加了 optionl8、option37字段的新报文发送出去。
3、4、DHCPV6服务器将收到带有optionl8、option37的solicit报文进行解析,解 析出用户的位置信息,并根据该信息进行用户认证,如果认证失败,丢弃该报文。如果成功, 发送advertise报文,并携带原solicit报文中携带的optionl8、option37字段。
5,advertise消息被L2设备捕获送到AGENT,对报文进行解析,判断如果报文中携 带0pti0n18、0pti0n37字段,并且是由本设备添加,则将字段剥离,并将该消息转发给客户 端。
6、7、8、9、10消息的处理基本和上述流程一样,不再赘述。
进一步地,在DHCPV6客户端和DHCPV6服务器之间,本发明实施例仅以存在一级二 层设备时为例进行说明,特别地,如果在DHCPV6客户端和DHCPV6服务器之间存在多级二层 设备L2时,每级二层设备L2的处理方式与上述类似,每级二层设备L2的AGENT,都会对于 上行方向接收到的报文中添加optionlS、option37字段后,继续上行转发;对于下行方向 的报文同样会进行判断是否有本设备添加的optionlS、option37字段,如果有,则相应的 进行剥离后,继续下行转发;方法类似,不再赘述。
综上所述,通过本发明实施例提供的实现报文转发的方法,通过二层设备中的 AGENT,实现对于上行收到DHCPV6报文,在后面添加optionl8和option37,不需要改变消息 类型,对于下行收到的DHCPV6报文检查其中携带的option18和option37是自己添加,则 剥离后,单播发送给相应的端口。通过由二层网络设备添加物理信息,避免了在网络边缘部 署三层网络设备(如IP设备),DHCPV6服务器根据二层网络设备添加的物理信息来对用户 进行认证,以及匹配地址池,且下行DHCP报文根据optionlS字段进行转发,增强了报文转 发的安全性,有效解决了 DHCPV6协议中的安全问题。
综上所述,如图2所示,上述实施例1以二层设备L2和DHCPV6服务器直接连接的 网络场景为例进行的说明,实际应用时,还存在二层设备L2通过三层网络中的三层设备L3 连接DHCPV6服务器的应用场景,如何解决该场景下报文转发的安全问题,请详见实施例2。
实施例2
在二层网络范围内,为了解决DHCPV6的安全问题,本发明实施例提供了一种实现 报文转发的方法。参见图5,当DHCPV6客户端通过二层网络接入三层网络,通过三层网络接 入DHCPV6服务器时,该方法内容如下
Cl 二层设备接收由DHCPV6客户端发送的DHCPV6上行报文;
C2 在DHCPV6上行报文中添加二层设备用于标识用户的字段,并将添加字段后的 报文转发至三层设备;以使得三层设备接收添加字段后的报文后,在添加字段后的报文中 添加三层设备用于标识用户的字段,将携带二层设备用于标识用户的字段和三层设备用于 标识用户的字段转发至DHCPV6服务器;
C3 二层设备接收由三层设备发送的DHCPV6下行报文;
C4:若DHCPV6下行报文中携带由二层设备添加的用于标识用户的字段,则剥离字 段后,将剥离字段后的报文转发至DHCPV6客户端。
其中,优选地,二层设备用于标识用户的字段用于标识用户的字段包括第一字段 和第二字段,则步骤C2所涉及的在DHCPV6上行报文中添加用于标识用户的字段,具体包括二层设备根据接收DHCPV6上行报文的接口的信息,将接口标识添加到第一字段;二层 设备根据接收的客户端的信息,将客户端标识添加到第二字段;其中,三层设备用于标识用 户的字段包括第三字段,则在添加字段后的报文中添加三层设备用于标识用户的字段,包 括三层设备根据接收DHCPV6上行报文的接口的信息,将接口标识添加到第三字段。
为了对该方法进行详细说明,请参见图6,为本发明实施例提供的网络的架构示意 图,包括DHCPV6服务器、与该DHCPV6服务器连接的三层设备L3(如路由器等)、与三层设 备连接的二层设备L2 (如二层交换机等)、与二层设备L2连接的DHCPV6客户端(如PC设 备等)。
一、对于二层设备L2而言,在二层设备L2中设置有代理AGENT,二层设备L2会将 DHCPV6协议交互过程中的协议报文,上交至AGENT模块处理
1、对于上行方向的DHCPV6报文,即从Client发送的DHCPV6报文,报文的消息类 型为 solicit (1) ^request (3)、confirm(4) renew (5)、rebind(6) ^release (8) >decline (9)、 information_request(ll),直接在该报文后添加option37字段,来携带用户标识。可选 地,由于存在三层网络中的三层设备,所以此处二层设备L2可以根据自身的设定,选择是 否添力口 optionl8。
2、对于下行方向的DHCPV6报文,即从三层设备L3发送过来的DHCPV6下行报文, 二层设备L2判断是否包括opitonlS字段,如果有,判断是否为本设备添加,如果是,则剥离 由本设备添加的optionlS信息,然后根据optionlS提供的用户位置信息,直接单播发送给 客户端。
二、对L3设备而言;
1、对于收到从L2过来的DHCP报文,将原始报文填充到中继转发relay_forWard 报文选项处,并在原始报文前加一个中继转发relay_f0rward消息头,将消息类型msg_ type填充为RELAY_F0RWARD (12),添加option18字段,将报文转发给DHCPV6服务器。优选 地,二层设备L2添加了其自身的optionlS,即如果从二层设备L2收到的报文中已经包含 optionl8,则三层设备L3可以在添加自己的optionl8选项后再添加原报文中的optionl8, 将两个optionlS选项合并成一个选项,这样可以提供给DHCPV6服务器一个很完整的一个 用户信息,而且DHCPV6服务器只需根据一个合并后的optionlS选项,来进行对用户的认 证,以及以此为依据来进行地址分配策略。
2、对从DHCPV6服务器发送过来的下行DHCPV6报文,判断是否包含optionlS字 段,如果有,则判断optionlS是否为本设备添加,如果是,剥离由本设备添加的optionlS内 容,然后根据optionlS提供的内容,单播给L2设备。
基于上述图6所提供的网络架构,参见图7,本发明实施例提供的方法的详细流程 图
201 :DHCPV6 客户端发送 solicit 报文。
202 二层设备L2捕获solicit报文,将该solicit报文送到自身的AGENT,该 AGENT根据用户位置信息组装成optionlS、option37选项,并将这些选项添加到原来的 solicit报文中,然后将添加了 0pti0n18、0pti0n37字段的新报文发送出去。
需要特别注意的是,二层设备L2可以选择是否添加optionlS字段,本实施例优选 地,以二层设备L2选择根据接收该solicit报文接口的接口标识,添加了 optionlS字段为例进行说明。203 三层设备L3捕获二层设备L2发送的solicit报文,将该solicit报文送 到自身的AGENT,AGENT解析报文,如果携带二层设备L2添加的option37字段则解析出 option37字段,三层设备L3的AGENT将接收的报文除了二层设备L2添加的option37字段 信息外的所有内容填充到中继转发relay—forward报文选项处,并在接收的报文前添加一 个中继转发relay_forWard消息头,将消息类型msg_type填充为RELAY_F0RWARD (12);并 根据接收该solicit消息接口的接口标识,添加optionlS字段。其中,三层设备L3的AGENT具体实现时,可以为以逻辑模块位于三层设备L32中, 也可以为一在三层网络中单独存在的实体,本实施例对此不做限制,且以AGENT位于三层 设备L3中为例进行说明。需要特别注意的是,由于本实施例是以二层设备L2选择了添加optionlS字段为 例进行的说明,所以此处,三层设备L3接收的报文中含有optionlS选项,三层设备L3的 AGENT将接收的报文中的optionlS选项的内容添加到新的optionlS字段之后,实际上就 是将两个optionlS选项拼成一个optionlS选项,并将之前解析出的option37字段添加到 optionlS字段之后,再将处理后的报文转发给DHCPV6服务器。其中,由于在RFC3315中规定了 option字段在三层网络中,只能够出现在relay_ forward报文以及中继回复relay-r印Iy报文中,所以该步骤三层设备L3的AGENT将接收 的报文除了二层设备L2添加的0pti0n37字段信息外的所有内容填充到中继转发relay_ forward报文选项处,并在接收的报文前添加一个中继转发relay_forWard消息头,将消息 类型 msg_type 填充为 RELAY_F0RWARD (12)。204 :DHCPV6 服务器将收到带有 optionl8、option37 的 relay_forward 进行解析, 解析出用户的位置信息,并根据该信息进行用户认证,判断是否认证成功,如果是,则执行 步骤205 ;否则,认证失败,丢弃该报文。其中,DHCPV6服务器进行用户认证的方式方法,同实施例1类似,不再赘述。205 :DHCPV6服务器对DHCPV6认证成功,封装中继回复relay-r印Iy报文转发给 三层设备L3,其中,该relay-r印Iy报文中携带optionl8、option37选项。其中,该relay-r印Iy报文中携带optionl8、option37选项为DHCPV6服务器从三 层设备L3接收的relay_forward中携带的optionl8、option37选项。206 三层设备L3捕获relay-r印Iy报文,送至三层设备L3的AGENT,AGENT解析 出optionl8、option37,去掉由本设备添加的option字段,将relay-r印Iy消息选项中的 消息数据提取出来,并剥掉relay-r印Iy消息头后得到advertise报文,并下发advertise 报文。其中,三层设备L3会知道经过本设备后optionlS添加的长度和内容,所以只需比 较报文中optionlS固定长度范围的内容是否一致即可获知该字段是否为本设备添加,如 果一致,则认为relay-r印Iy报文中携带的optionlS是三层设备L3自身添加的;否则,认 为optionlS不是三层设备L3自身添加的,即三层设备L3比较自己添加optionlS字段的 长度和实际报文中optionlS的长度可以知道,optionlS的内容是否完全由本设备添加,如 果完全由是本设备添加,则剥离该字段,如果部分是由本设备添加则去掉本设备添加的内 容。需要特别注意的是,对于optionlS字段而言,由于本实施例是以optionlS为本设备部分添加,故只去掉由本设备添加的option字段即可;对于0pti0n37字段而言,由于报文中 的0pti0n37字段不是本设备添加,故不用剥离。207 二层设备L2捕获advertise报文,送至二层设备L2的AGENT,AGENT对报文 进行解析,判断如果报文中携带option37、optionlS字段,并且是由本设备添加,则将字段 剥离,并根据解析optionlS字段获得的用户位置信息,将advertise报文单播给客户端。208 :DHCPV6客户端向DHCPV6服务器发送请求request报文。其中,当DHCPV6客户端接收到不携带optionl8、option37字段的advertise报文 后,获知DHCPV6服务器可以为其分配的IP地址/前缀、网络配置参数,则发起请求request 报文。209 二层设备L2捕获request报文,将该request报文送至AGENT,AGENT根据 用户位置信息组装成optionlS、option37选项,并将这些选项添加到原来的request报文 中,然后将添加了 optionlS、0pti0n37字段的新报文发送出去。210 三层设备L3捕获二层设备L2发送的request报文,将该request报文送至 三层设备L3的AGENT,如果携带二层设备L2添加的option37字段则解析出option37字 段,三层设备L3的AGENT将接收的报文除了二层设备L2添加的option37字段信息外的所 有内容填充到中继转发relay—forward报文选项处,并在接收的报文前添加一个中继转发 relay_forward消息头,将消息类型msg_type填充为RELAY_F0RWARD (12);并根据接收该 solicit消息接口的接口标识,添加option18字段。需要特别注意的是,由于本实施例是以二层设备L2选择了添加optionlS字段为 例进行的说明,所以此处,三层设备L3接收的报文中含有optionlS选项,三层设备L3的 AGENT将接收的报文中的optionlS选项的内容添加到新的optionlS字段之后,详细内容请 参见步骤203,类似不再赘述。211 :DHCPV6 服务器接收到添加了 optionl8、option37 字段的 relay_forward 报 文后,根据relay_f0rward报文中携带的DHCPV6客户端的身份标识,依据分配策略,为该 DHCPV6客户端分配IP地址/前缀、网络配置参数,并返回中继回复relay_ri5ply报文,该 relay_reply报文中携带为该DHCPV6客户端分配的IP地址/前缀、网络配置参数,以及原 relay_forward 报文中携带的 optionl8、option37 字段。212 三层设备L3捕获relay_i^ply报文,将该relay_reply报文送至AGENT, AGENT解析出optionl8、option37,去掉由本设备添加的option字段,将relay-r印Iy消 息选项中的消息数据提取出来,并剥掉relay-reply消息头后得到回复reply报文,并下发 reply 艮文。213 二层设备L2捕获三层设备L3下发的r印Iy报文,送至二层设备L2的AGENT, AGENT对报文进行解析,判断如果报文中携带0pti0n37、0pti0n18字段,并且是由本设备添 加,则将字段剥离。214: 二层设备L2根据解析optionlS字段获得的用户位置信息,将剥离后的 reply报文单播给DHCPV6客户端。至此,DHCPV6客户端便可以获取到DHCPV6服务器为其分配的IP地址/前缀、网络 配置参数,从而可以执行后续流程。参见图8,为本发明实施例提供的方法的交互示意图1、DHCPV6客户端使用solicit消息来请求服务器的位置。
13
2、solicit消息被L2设备捕获送到L2的AGENT ,AGENT根据用户位置信息组装成 option37选项,并将这些选项添加到原来的solicit报文中,然后将添加了 option37字段 的新报文发送出去。L2可选择是否添加optionlS选项。3、solicit消息被L3设备捕获送到L3的AGENT,解析报文,如果携带0pti0n37字 段则解析出opti0n37字段,AGENT将原始报文除了 option37字段信息外的所有内容填充 到relay_forward报文选项处,并在原始报文前加一个relay_forward消息头,将msg_type 填充为relay_forward(12),添加optionl8字段,如果原始报文中含有optionl8选项,则 将原始报文中的optionlS选项的内容添加到新的optionlS字段之后,实际上就是将两个 optionl8选项拼成一个optionl8选项,并将之前解析出的option37字段添加到optionl8 字段之后,再将该报文转发给DHCPV6服务器。4、5、DHCPV6服务器将收到带有optionl8、option37的solicit报文进行解析,解 析出用户的位置信息,并根据该信息进行用户认证,如果认证失败,丢弃该报文。认证成功 则封装relay-r印Iy报文转发给L3,此时报文中携带optionl8、option37选项6,relay-reply被L3设备捕获,解析出optionl8、option37,判断是否为本设备添 加,判断方法为,L3设备应该知道经过本设备后optionlS添加的长度和内容,所以只需比 较报文中optionlS固定长度范围的内容是否一致即可,L3设备比较自己添加optionlS字 段的长度和实际报文中optionlS的长度可以知道,optionlS的内容是否完全由本设备添 加,如果完全由是本设备添加,则剥离该字段,如果部分是由本设备添加则去掉本设备添加 的内容,在此场景下optionlS为本设备部分添加,故只去掉由本设备添加的option字段, 由于报文中的0pti0n37字段不是本设备添加,故不用剥离,然后将relay-r印Iy消息选项 中的消息数据提取出来,并剥掉relay-r印Iy消息头。7,advertise消息被L2设备捕获送到L2 relay-agent模块,对报文进行解析,判 断如果报文中携带opti0n37、optionlS字段,并且是由本设备添加,则将字段剥离,并根据 提出出来的用户位置信息将报文单播给客户端。8、9、10、11、12、13、14消息的处理和上面消息处理流程基本一致,不再赘述。进一步地,在通过由二层网络设备添加物理信息,避免了在网络边缘部署三层网 络设备(如IP设备),DHCPV6服务器根据二层网络设备添加的物理信息来对用户进行认 证,以及匹配地址池,且下行DHCP报文根据optionlS字段进行转发,增强了报文转发的安 全性,有效解决了 DHCPV6协议中的安全问题。和DHCPV6服务器之间,本发明实施例仅以存在一级二层设备和一级三层设备为 例进行说明,特别地,如果在DHCPV6客户端和DHCPV6服务器之间存在多级二层设备L2或 多级三层设备L3时,每级二层设备L2的处理方式与上述类似,每级二层设备L2的AGENT, 都会对于上行方向接收到的报文中option37字段(可选地,每级二层设备L2可自行决定 是否添加optionlS字段)后,继续上行转发;对于下行方向的报文同样会进行判断是否有 本设备添加的optionlS、option37字段,如果有,则相应的进行剥离后,继续下行转发;方 法类似,不再赘述。每级三层设备L3的处理方式与上述类似,三层设备L3的AGENT将接收 上行方向的报文除了二层设备L2添加的0pti0n37字段信息外的所有内容填充到中继转发 relay_forward报文选项处,并在接收的报文前添加一个中继转发relay_forWard消息头, 将消息类型mSg_type填充为RELAY_F0RWARD (12);并根据接收该消息接口的接口标识,添加optionl8字段,对于下行方向的报文,送至AGENT ,AGENT解析出optionl8、option37,去 掉由本设备添加的option字段,将消息选项中的消息数据提取出来,并下发剥掉消息头后 的报文。综上所述,通过本发明实施例提供的实现报文转发的方法,基于二层网络中的 二层设备L2的AGENT和三层网络中的三层设备L3的配合使用,在报文的上行方向,对 optionlS采用层层叠加的模式,最终DHCPV6服务器能够通过一个optionlS选项全面的把 握DHCPV6客户端的位置信息。在报文的下行方向对于optionlS采用层层剥离的模式,如 果是本设备添加则剥离,并最终根据获得的位置信息,直接单播发送到相应端口。。DHCPV6 服务器根据二层网络中的该装置以及三层网络中的三层设备添加的物理信息来对用户进 行认证,以及匹配地址池,且下行DHCP报文根据optionlS字段进行转发,增强了报文转发 的安全性,有效解决了 DHCPV6协议中的安全问题。实施例3与上述方法实施例1相应地,本发明实施例提供了一种二层网络中实现报文转发 的装置,参见图9,装置包括第一接收模块901,用于接收由DHCPV6客户端发送的DHCPV6上行报文;第一转发模块902,用于在第一接收模块901接收的DHCPV6上行报文中添加用于 标识用户的字段,并将添加字段后的报文转发至DHCPV6服务器;第二接收模块903,用于接收由DHCPV6服务器发送的DHCPV6下行报文;第二转发模块904,用于若第二接收模块903接收的DHCPV6下行报文中携带由 装置添加的用于标识用户的字段,则剥离字段后,将剥离字段后的报文转发至DHCPV6客户 端。其中,第一转发模块902,具体用于根据接收DHCPV6上行报文的接口的信息,将接 口标识添加到第一字段;根据接收的客户端的信息,将客户端标识添加到第二字段,将添加 字段后的报文转发至DHCPV6服务器。其中,第一接收模块901,具体用于接收由DHCPV6客户端发送的恳求solicit报 文;第二转发模块904,具体用于在恳求solicit报文中添加第一字段和第二字段,第一字 段携带接收恳求solicit报文的接口的接口标识;第二字段携带发送恳求solicit报文的 DHCPV6客户端的客户端标识;并将添加字段后的solicit报文转发至DHCPV6服务器,以使 得DHCPV6服务器根据字段携带内容,对DHCPV6客户端进行认证,当认证通过后,向DHCPV6 客户端返回公告advertise报文;第二接收模块903,具体用于接收由DHCPV6服务器发送 的advertise报文;第二转发模块904,具体用于若advertise报文中携带由装置添加的字 段,则剥离字段后,将剥离字段后的advertise报文转发至DHCPV6客户端。进一步地,第一接收模块901,还用于接收由DHCPV6客户端发送的请求request报 文;第一转发模块902,还用于在请求request报文中添加第一字段和第二字段,第一字段 携带接收request报文的接口的接口标识;第二字段携带发送request报文的DHCPV6客 户端的客户端标识;并将添加字段后的request报文转发至DHCPV6服务器,以使得DHCPV6 服务器接收到request报文后,向DHCPV6客户端返回回复Mply报文,reply报文中携带 DHCPV6服务器为DHCPV6客户端分配的网络参数;第二接收模块903,还用于接收由DHCPV6 服务器发送的i^ply报文;第二转发模块904,还用于若i^ply报文中携带由装置添加的字段,则剥离字段后,将剥离字段后的i^ply报文转发至DHCPV6客户端,以使得DHCPV6客户 端获得DHCPV6服务器分配的网络参数。其中,二层网络中,装置为多级;相应地,每级装置接收由DHCPV6客户端发送的 DHCPV6上行报文;在DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报 文转发至下级装置,直到转发至DHCPV6服务器;每级装置接收由DHCPV6服务器发送的 DHCPV6下行报文;若DHCPV6下行报文中携带由当前装置添加的用于标识用户的字段,则剥 离字段后,将剥离字段后的报文转发至下级装置,直到转发至DHCPV6客户端。进一步地,装置还包括判断模块,用于判断接收的DHCPV6下行报文中携带的字段是否为二层设备添 加;判断模块具体包括第一判断单元,用于判断接收的DHCPV6下行报文中携带的字段 的长度和二层设备添加的字段的长度是否一致,如果是,则接收的DHCPV6下行报文中携 带的字段为二层设备添加;或,第二判断单元,用于判断接收的DHCPV6下行报文中携带的 字段中固定长度的内容和二层设备添加的字段中固定长度的内容是否一致,如果是,则接 收的DHCPV6下行报文中携带的字段为二层设备添加;或,第三判断单元,用于判断接收的 DHCPV6下行报文中携带的字段中预设标志位和二层设备添加的字段中预设标志位是否一 致,如果是,则接收的DHCPV6下行报文中携带的字段为二层设备添加。需要特别注意的是,本发明实施例提供的装置位于二层网络的二层设备中。综上所述,通过本发明实施例提供的实现报文转发的装置,在报文的上行实现对 于上行收到DHCPV6报文,在后面添加用于标识用户的字段(option18和option37),不需要 改变消息类型,对于下行收到的DHCPV6报文检查其中携带的字段(optionlS和option37) 是自己添加的,则剥离该字段后单播发送给相应的端口。通过由二层网络设备添加物理信 息,避免了在网络边缘部署三层网络设备(如IP设备),DHCPV6服务器根据二层网络设备 添加的物理信息来对用户进行认证,以及匹配地址池,且下行DHCP报文根据optionlS字段 进行转发,增强了报文转发的安全性,有效解决了 DHCPV6协议中的安全问题。实施例4与上述方法实施例2相应地,本发明实施例提供了一种二层网络中实现报文转发 的装置,参见图10,该装置包括第一接收模块1001,用于接收由该DHCPV6客户端发送的DHCPV6上行报文;第一转发模块1002,用于在该DHCPV6上行报文中添加二层设备用于标识用户的 字段,并将添加字段后的报文转发至该三层设备;以使得该三层设备接收该添加字段后的 报文后,在该添加字段后的报文中添加三层设备用于标识用户的字段,将携带二层设备用 于标识用户的字段和三层设备用于标识用户的字段转发至该DHCPV6服务器;第二接收模块1003,用于接收由该三层设备发送的DHCPV6下行报文;第二转发模块1004,用于若该DHCPV6下行报文中携带由该二层设备添加的用于 标识用户的字段,则剥离该字段后,将剥离字段后的报文转发至DHCPV6客户端。其中,第一转发模块1002,具体用于根据接收该DHCPV6上行报文的接口的信息, 将该接口标识添加到该第一字段;根据接收的该客户端的信息,将该客户端标识添加到该 第二字段。其中,在二层网络中,该本发明实施例提供的装置为多级;
每级装置接收由该DHCPV6客户端发送的DHCPV6上行报文;在该DHCPV6上行报文 中添加用于标识用户的字段,并将添加字段后的报文转发至下级装置,直到转发至该三层 设备;每级装置接收由该三层设备发送的DHCPV6下行报文;若该DHCPV6下行报文中携 带由当前装置添加的用于标识用户的字段,则剥离该字段后,将剥离字段后的报文转发至 下级装置,直到转发至该DHCPV6客户端。其中,该装置位于二层网络的二层设备中。综上所述,通过本发明实施例提供的二层网络中实现报文转发的装置,基于二层 网络中该装置和三层网络中的三层设备的配合使用,在报文的上行方向,对用于标识用户 的字段(optionlS)采用层层叠加的模式,最终DHCPV6服务器能够通过一个字段选项全面 的把握DHCPV6客户端的位置信息。在报文的下行方向对于字段采用层层剥离的模式,如果 是本设备添加则剥离,并最终根据获得的位置信息,直接单播发送到相应端口。DHCPV6服务 器根据二层网络中的该装置以及三层网络中的三层设备添加的物理信息来对用户进行认 证,以及匹配地址池,且下行DHCP报文根据相应的字段(optionlS)进行转发,增强了报文 转发的安全性,有效解决了 DHCPV6协议中的安全问题。实施例5与上述方法实施例2相应地,本发明实施例提供了一种三层网络中实现报文转发 的装置,参见图11,所述装置包括第一接收模块1101,用于接收添加字段后的报文后,添加字段后的报文为二层设 备接收由DHCPV6客户端发送的DHCPV6上行报文后,在DHCPV6上行报文中添加二层设备用 于标识用户的字段,并将添加字段后的报文转发后得到的;第一转发模块1102,用于在添加字段后的报文中添加装置用于标识用户的字段, 将携带二层设备用于标识用户的字段和装置用于标识用户的字段转发至DHCPV6服务器;第二接收模块1103,用于接收由DHCPV6服务器发送的DHCPV6下行报文;第二转发模块1104,用于若DHCPV6下行报文中携带由装置添加的用于标识用户 的字段,则剥离字段后,将剥离字段后的报文转发至二层设备。其中,二层设备用于标识用户的字段用于标识用户的字段包括第一字段和第二 字段,则第一字段携带二层设备接收DHCPV6上行报文的接口的接口标识;第二字段携带发 送DHCPV6上行报文的DHCPV6客户端的客户端标识;第一转发模块1102,具体用于在添加字段后的报文中,根据接收DHCPV6上行报文 的接口的信息,添加第三字段,第三字段携带装置接收DHCPV6上行报文的接口标识,将携 带第一字段、第二字段和第三字段的报文转发至DHCPV6服务器。进一步地,装置还包括处理模块,用于将二层设备发送的DHCP上行报文中携带的DHCPV6客户端发送的 DHCP上行报文填充到中继转发relay_forWard报文选项,并在DHCPV6客户端发送的DHCP 上行报文前添加中继转发relay_f0rward消息头,将消息类型msg_type填充为RELAY_ FORWARD ;将第三字段和第一字段合并。其中,装置为多级;每级装置接收添加字段后的报文后,在添加字段后的报文中添 加当前装置用于标识用户的字段,将携带二层设备用于标识用户的字段和装置用于标识用户的字段转发至下级装置,直到转发至DHCPV6服务器;每级装置接收由DHCPV6服务器发送 的DHCPV6下行报文;若DHCPV6下行报文中携带由当前装置添加的用于标识用户的字段,则 剥离字段后,将剥离字段后的报文转发至下级装置,直到转发至二层设备。其中,装置位于三层网络的三层设备中。综上所述,通过本发明实施例提供的三层网络中实现报文转发的装置,基于二 层网络中二层设备和该装置的配合使用,在报文的上行方向,对用于标识用户的字段 (optionlS)采用层层叠加的模式,最终DHCPV6服务器能够通过一个字段选项全面的把握 DHCPV6客户端的位置信息。在报文的下行方向对于字段采用层层剥离的模式,如果是本设 备添加则剥离,并由最终根据获得的位置信息,直接单播发送到相应端口。DHCPV6服务器 根据二层设备以及三层网络中的该装置添加的物理信息来对用户进行认证,以及匹配地址 池,且下行DHCP报文根据相应的字段(optionlS)进行转发,增强了报文转发的安全性,有 效解决了 DHCPV6协议中的安全问题。实施例6与上述实施例1提供的方法相应地,本发明实施例提供了一种实现报文转发的系 统,参见图12,系统包括动态主机配置协议DHCPV6服务器1202,以及位于二层网络中的二 层设备1201,二层设备1201,用于接收由DHCPV6客户端发送的DHCPV6上行报文;在DHCPV6上 行报文中添加用于标识用户的字段,并将添加字段后的报文向DHCPV6服务器1202转发;还 用于接收由DHCPV6服务器1202发送的DHCPV6下行报文;若DHCPV6下行报文中携带由二 层设备1201添加的用于标识用户的字段,则剥离字段后,将剥离字段后的报文向DHCPV6客 户端转发;DHCPV6服务器1202,用于接收二层设备1201发送的报文,并向二层设备1201返 回DHCPV6下行报文。其中,二层设备1201根据接收DHCPV6上行报文的接口的信息,将接口标识添加到 第一字段;二层设备1201根据接收的客户端的信息,将客户端标识添加到第二字段。进一步地,与上述方法实施例2相应地,参见图13,本发明实施例提供的系统还包 括位于三层网络的三层设备1203,三层设备1203,用于接收二层设备1201发送的添加字段后的报文后,在添加字段 后的报文中添加三层设备1203用于标识用户的字段,将携带二层设备1201用于标识用户 的字段和三层设备1203用于标识用户的字段转发至DHCPV6服务器1202 ;还用于接收由 DHCPV6服务器1202发送的DHCPV6下行报文;若DHCPV6下行报文中携带由三层设备1203 添加的用于标识用户的字段,则剥离字段后,将剥离字段后的报文转发至二层设备1201。其中,三层设备1203根据接收二层设备1201发送的添加字段后的报文的接口的 信息,添加第三字段,第三字段携带装置接收DHCPV6上行报文的接口标识,将携带第一字 段、第二字段和第三字段的报文转发至DHCPV6服务器1202。其中,三层设备1203还用于将二层设备1201发送的DHCP上行报文中携带 的DHCPV6客户端发送的DHCP上行报文填充到中继转发relay_forward报文选项,并在 DHCPV6客户端发送的DHCP上行报文前添加中继转发relay_forward消息头,将消息类 型mSg_type填充为RELAY_F0RWARD ;将第三字段和第一字段合并,将处理后的报文转发至DHCPV6 服务器 1202。进一步地,二层设备1201为多级,和/或,三层设备1203为多级。综上所述,通过本发明实施例提供的实现报文转发的系统,在报文的上行实现对 于上行收到DHCPV6报文,在后面添加用于标识用户的字段(option18和option37),不需要 改变消息类型,对于下行收到的DHCPV6报文检查其中携带的字段(optionlS和option37) 是自己添加的,则剥离该字段后单播发送给相应的端口。通过由二层网络设备添加物理信 息,避免了在网络边缘部署三层网络设备(如IP设备),DHCPV6服务器根据二层网络设备 添加的物理信息来对用户进行认证,以及匹配地址池,且下行DHCP报文根据optionlS字段 进行转发,增强了报文转发的安全性,有效解决了 DHCPV6协议中的安全问题。本发明实施例中的“接收”一词可以理解为主动从其他模块获取也可以是接收其 他模块发送来的信息。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流 程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于 实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实 施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可 读取的存储介质中,如光盘或硬盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现报文转发的方法,其特征在于,当动态主机配置协议DHCPV6客户端通过二 层网络接入DHCPV6服务器时,所述方法包括二层设备接收由所述DHCPV6客户端发送的DHCPV6上行报文;在所述DHCPV6上行报文 中添加用于标识用户的字段,并将添加字段后的报文向所述DHCPV6服务器转发;所述二层设备接收由所述DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6下行 报文中携带由所述二层设备添加的用于标识用户的字段,则剥离所述字段后,将剥离字段 后的报文向所述DHCPV6客户端转发。
2.如权利要求1所述的方法,其特征在于,所述用于标识用户的字段包括第一字段和 第二字段,则所述在所述DHCPV6上行报文中添加用于标识用户的字段,具体包括 所述二层设备根据接收所述DHCPV6上行报文的接口的信息,将所述接口标识添加到 所述第一字段;所述二层设备根据接收的所述客户端的信息,将所述客户端标识添加到所述第二字段。
3.如权利要求2所述的方法,其特征在于,所述二层设备接收由所述DHCPV6客户端发送的恳求solicit报文; 在所述恳求solicit报文中添加所述第一字段和所述第二字段,所述第一字段携带接 收所述恳求solicit报文的接口的接口标识;所述第二字段携带发送所述恳求solicit报 文的DHCPV6客户端的客户端标识;并将添加字段后的solicit报文转发至所述DHCPV6服务器,以使得所述DHCPV6服务 器根据所述字段携带内容,对所述DHCPV6客户端进行认证,当认证通过后,向所述DHCPV6 客户端返回公告advertise报文;所述二层设备接收由所述DHCPV6服务器发送的advertise报文;若所述advertise报 文中携带由所述二层设备添加的字段,则剥离所述字段后,将剥离字段后的advertise报 文转发至DHCPV6客户端。
4.如权利要求1所述的方法,其特征在于,所述二层网络中,所述二层设备为多级; 每级二层设备接收由所述DHCPV6客户端发送的DHCPV6上行报文;在所述DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报文转发至下级二层设备,直到转发 至所述DHCPV6服务器;每级二层设备接收由所述DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6下行 报文中携带由当前二层设备添加的用于标识用户的字段,则剥离所述字段后,将剥离字段 后的报文转发至下级二层设备,直到转发至所述DHCPV6客户端。
5.一种二层网络中实现报文转发的装置,其特征在于,所述装置包括 第一接收模块,用于接收由DHCPV6客户端发送的DHCPV6上行报文;第一转发模块,用于在所述第一接收模块接收的DHCPV6上行报文中添加用于标识用 户的字段,并将添加字段后的报文向DHCPV6服务器转发;第二接收模块,用于接收由所述DHCPV6服务器发送的DHCPV6下行报文; 第二转发模块,用于若所述第二接收模块接收的DHCPV6下行报文中携带由所述装置 添加的用于标识用户的字段,则剥离所述字段后,将剥离字段后的报文向所述DHCPV6客户端转发。
6.如权利要求5所述的装置,其特征在于,所述第一转发模块,具体用于根据接收所述 DHCPV6上行报文的接口的信息,将所述接口标识添加到所述第一字段;根据接收的所述客 户端的信息,将所述客户端标识添加到所述第二字段,将添加字段后的报文转发至DHCPV6 服务器。
7.如权利要求6所述的装置,其特征在于,所述第一接收模块,具体用于接收由所述DHCPV6客户端发送的恳求solicit报文; 所述第二转发模块,具体用于在所述恳求solicit报文中添加所述第一字段和所述 第二字段,所述第一字段携带接收所述恳求solicit报文的接口的接口标识;所述第二 字段携带发送所述恳求solicit报文的DHCPV6客户端的客户端标识;并将添加字段后 的solicit报文转发至所述DHCPV6服务器,以使得所述DHCPV6服务器根据所述字段携 带内容,对所述DHCPV6客户端进行认证,当认证通过后,向所述DHCPV6客户端返回公告 advertise 艮文;所述第二接收模块,具体用于接收由所述DHCPV6服务器发送的advertise报文; 所述第二转发模块,具体用于若所述advertise报文中携带由所述装置添加的字段, 则剥离所述字段后,将剥离字段后的advertise报文转发至DHCPV6容户端。
8.如权利要求7所述的装置,其特征在于,所述第一接收模块,还用于接收由所述DHCPV6客户端发送的请求request报文; 所述第一转发模块,还用于在所述请求request报文中添加所述第一字段和所述第 二字段,所述第一字段携带接收所述request报文的接口的接口标识;所述第二字段携带 发送所述request报文的DHCPV6客户端的客户端标识;并将添加字段后的request报文 转发至所述DHCPV6服务器,以使得所述DHCPV6服务器接收到所述request报文后,向所 述DHCPV6客户端返回回复reply报文,所述reply报文中携带所述DHCPV6服务器为所述 DHCPV6客户端分配的网络参数;所述第二接收模块,还用于接收由所述DHCPV6服务器发送的i^ply报文; 所述第二转发模块,还用于若所述r印Iy报文中携带由所述装置添加的字段,则剥离 所述字段后,将剥离字段后的reply报文转发至DHCPV6客户端,以使得所述DHCPV6客户端 获得所述DHCPV6服务器分配的网络参数。
9.如权利要求5所述的装置,其特征在于,所述二层网络中,所述装置为多级; 每级装置接收由所述DHCPV6客户端发送的DHCPV6上行报文;在所述DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报文转发至下级装置,直到转发至所述 DHCPV6服务器;每级装置接收由所述DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6下行报文 中携带由当前装置添加的用于标识用户的字段,则剥离所述字段后,将剥离字段后的报文 转发至下级装置,直到转发至所述DHCPV6客户端。
10.如权利要求5所述的装置,其特征在于,所述装置还包括判断模块,用于判断接收的所述DHCPV6下行报文中携带的字段是否为所述二层设备 添加;所述判断模块具体包括第一判断单元,用于判断接收的DHCPV6下行报文中携带的字段的长度和所述二层设备添加的字段的长度是否一致,如果是,则接收的所述DHCPV6下行报文中携带的字段为所 述二层设备添加;或,第二判断单元,用于判断接收的DHCPV6下行报文中携带的字段中固定长度的内容和 所述二层设备添加的字段中所述固定长度的内容是否一致,如果是,则接收的所述DHCPV6 下行报文中携带的字段为所述二层设备添加;或,第三判断单元,用于判断接收的DHCPV6下行报文中携带的字段中预设标志位和所述 二层设备添加的字段中预设标志位是否一致,如果是,则接收的所述DHCPV6下行报文中携 带的字段为所述二层设备添加。
11.一种实现报文转发的系统,其特征在于,所述系统包括动态主机配置协议DHCPV6 服务器,以及位于二层网络中的二层设备,所述二层设备,用于接收由所述DHCPV6客户端发送的DHCPV6上行报文;在所述 DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报文向所述DHCPV6服务 器转发;还用于接收由所述DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6下行报 文中携带由所述二层设备添加的用于标识用户的字段,则剥离所述字段后,将剥离字段后 的报文向所述DHCPV6客户端转发;所述DHCPV6服务器,用于接收所述二层设备发送的报文,并向所述二层设备返回 DHCPV6下行报文。
12.如权利要求11所述的系统,其特征在于,所述二层设备根据接收所述DHCPV6上行 报文的接口的信息,将所述接口标识添加到所述第一字段;所述二层设备根据接收的所述 客户端的信息,将所述客户端标识添加到所述第二字段。
13.如权利要求11或12所述的系统,其特征在于,所述系统还包括位于三层网络的三层设备,所述三层设备,用于接收所述二层设备发送的添加字段后的报文后,在所述添加字段 后的报文中添加所述三层设备用于标识用户的字段,将携带二层设备用于标识用户的字 段和所述三层设备用于标识用户的字段转发至所述DHCPV6服务器;还用于接收由所述 DHCPV6服务器发送的DHCPV6下行报文;若所述DHCPV6下行报文中携带由所述三层设备添 加的用于标识用户的字段,则剥离所述字段后,将剥离字段后的报文转发至所述二层设备。
14.如权利要求13所述的系统,其特征在于,所述三层设备根据接收二层设备发送的 添加字段后的报文的接口的信息,添加第三字段,第三字段携带装置接收DHCPV6上行报文 的接口标识,将携带第一字段、第二字段和第三字段的报文转发至DHCPV6服务器。
15.如权利要求14所述的系统,其特征在于,所述三层设备还用于将二层设备发送 的DHCP上行报文中携带的DHCPV6客户端发送的DHCP上行报文填充到中继转发relay_ forward报文选项,并在DHCPV6客户端发送的DHCP上行报文前添加中继转发relay_ forward消息头,将消息类型msg_type填充为RELAY_F0RWARD ;将第三字段和第一字段合 并,将处理后的报文转发至DHCPV6服务器。
16.如权利要求12所述的系统,其特征在于,所述二层设备为多级,和/或,所述三层设 备为多级。
全文摘要
本发明公开了一种实现报文转发的方法、装置和系统,属于通信领域,当DHCPV6客户端仅通过二层网络接入DHCPV6服务器时,方法包括二层设备接收由DHCPV6客户端发送的DHCPV6上行报文;在DHCPV6上行报文中添加用于标识用户的字段,并将添加字段后的报文向DHCPV6服务器转发;二层设备接收由DHCPV6服务器发送的DHCPV6下行报文;若DHCPV6下行报文中携带由二层设备添加的用于标识用户的字段,则剥离字段后,将剥离字段后的报文向DHCPV6客户端转发。通过由二层网络中的二层设备添加物理信息,避免了在网络边缘部署三层网络设备,DHCPV6服务器根据二层网络设备添加的物理信息来对用户进行认证,以及匹配地址池,且下行DHCP报文根据option18字段进行转发,增强了报文转发的安全性,有效解决了DHCPV6协议中的安全问题。
文档编号H04L12/56GK102035724SQ20091023528
公开日2011年4月27日 申请日期2009年9月30日 优先权日2009年9月30日
发明者王琪, 罗勇, 莫增宁 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1