一种基于DHCPv6监听的邻居发现代理方法和系统的制作方法

文档序号:7889007阅读:157来源:国知局
专利名称:一种基于DHCPv6监听的邻居发现代理方法和系统的制作方法
技术领域
本发明涉及计算机数据通信领域,尤其涉及一种基于DHCPve监听的邻居发现代理方法和系统。
背景技术
动态主机设置协议版本(DynamicHost Configuration Protocol, DHCPv6)是一个局域网的网络协议,使用用户数据包协议(UDP)工作,主要有两个用途给内部网络或网络服务供应商自动分配IPv6地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。DHCPv6监听(SNOOPING)功能指交换机监测DHCPv6客户端(CLIENT)通过DHCPv6 协议获取IP的过程。它通过设置可信端口和非可信端口,来防止DHCPV6攻击及私设DHCPV6 服务器(SERVER)。从可信端口接收的DHCPv6报文无需校验即可转发。典型的设置是将可信端口连接DHCPv6服务器(SERVER)或者DHCPv6中继(RELAY)代理。非可信端口连接 DHCPv6客户端(CLIENT),交换机将转发从非可信端口接收的DHCPv6请求报文,不转发从非可信端口接收的DHCPv6回应报文。如果启用了 DHCPv6监听(SNOOPING)绑定功能,则交换机将会保存非可信端口下的DHCPv6客户端(CLIENT)的绑定信息,每一条绑定信息包含该 DHCPv6客户端(CLIENT)的MAC地址、IPv6地址、有效生存期、虚拟局域网(VLAN)号和端口号,这些绑定信息存放于DHCPv6监听(SNOOPING)的绑定表中。如果邻居请求(Neighbor Solicitation)是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有邻居发现代理功能的设备就可以回答该请求,这个过程称作邻居发现代理(Neighbor Discovery Proxy,简称ND Proxy)。邻居发现代理功能屏蔽了分离的物理网络这一事实,使用户使用起来,好像在同一个物理网络上。邻居发现代理的优点是,它可以只被应用在一个设备上,此时该设备的作用相当于网关,不会影响到网络中其他设备的路由表。邻居发现代理功能可以在IPv6主机没有配置缺省网关或者IPv6主机没有任何路由能力的情况下使用。邻居发现代理的缺陷在于设备没有检测目标IP的可达性而直接给请求端发送邻居公告(Neighbor Advertisement),在请求端的邻居发现缓存中存在目标主机的IPv6地址和硬件地址的映射关系,造成请求终端认为目的终端在DHCPv6客户端邻居表中存在,实际无法互通。

发明内容
为了解决现有技术中邻居发现代理存在的问题,本发明提出一种基于DHCPv6监听的邻居发现代理方法和系统。一种基于DHCPv6监听的邻居发现代理方法,该方法包括具备DHCPv6监听功能的接入交换机监听DHCPv6客户端的地址请求过程,创建包括所述DHCPv6客户端的MAC地址、IP地址、租期、VLAN号和端口号的绑定信息以及配置汇聚交换机的IP ;所述接入交换机根据原先配置的汇聚交换机IP地址将所述绑定信息通过绑定报文上传给具备邻居发现代理功能的汇聚交换机;所述汇聚交换机从所述绑定报文中提取绑定信息更新绑定信息表;所述汇聚交换机对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端。优选的,所述接入交换机配置汇聚交换机的IP,进一步的还有所述接入交换机将预先配置的DHCPv6报文重定向至所述接入交换机的CPU的规则至交换芯片,所述接入交换机交换芯片收到所述DHCPv6报文后,不执行硬件转发行为,而是将所述报文重定向至所述接入交换机的CPU,由CPU进行软件的解析和转发。优选的,所述接入交换机DHCPv6监听所述客户端DHCPv6地址请求过程,包括所述接入交换机的DHCPv6监听模块截获用户的DHCPv6请求后,根据源MAC地址查询绑定表,如果所述MAC地址在绑定表中存在,从可信口转发出去,否则,交换机会创建一个临时的对象绑定,记录用户的所述MAC地址,报文的事物ID,端口和虚拟局域网信息, 从所述可信口转发出去;所述接入交换机的DHCPv6监听模块截获用户的DHCPv6应答报文后,解析获得报文的所述事物ID,互联网数字分配机构中的IPv6地址,以及有效生存期,根据所述事物ID 查找查询所述对象绑定表,如果存在相应,则创建一个绑定信息,记录DHCPv6客户端的所述MAC地址、IP地址、租期、虚拟局域网号和端口号。优选的,所述接入交换机根据原先配置的汇聚交换机IP地址将所述绑定信息通过绑定报文上传给具备邻居发现代理功能的汇聚交换机,进一步的包括将所述绑定信息加入到DHCPv6监听绑定报文中,并对所述绑定报文进行加密和散列处理,所述加密采用的是数据加密标准方式,所述散列处理采用的是MD5方式。优选的,所述绑定报文采用用户数据包协议,所述报文格式如下
版本号目前为I ;
类型目前为I,表示包含绑定信息;
序列号每发送一个报文,加I ;
被加密报文的长度;
签名DHCPv6监听绑定报文所有字段的MD5散列结果;
交换机的IPv4地址;
交换机账号取交换机CPU MAC地址;
绑定数量;
客户端MAC地址租用地址的PC终端MAC地址;
保留填O ;
客户端虚拟局域网账号DHCPv6用户接入交换机的虚拟局域网账号
DHCPv6用户所在的交换机端口号;
客户端IP :用户IPv6地址;
客户端有效生存期DHCPv6分配的地址有效生存期;
分配地址的时间戳。
优选的,所述汇聚交换机从所述绑定报文中提取绑定信息更新绑定信息表,进一步的包括收到所述绑定报文后,先进行散列计算,再解密;计算时先备份签名字段的值, 然后所述签名字段清零,再计算整个报文的MD5散列值,如果所述散列值与备份的所述签名字段的值一样,则散列验证成功,继续对DHCPv6监听所述绑定报文作数据加密标准解密处理,如果所述散列验证失败,丢弃该DHCPv6监听所述绑定报文。对于接收到的MD5散列验证成功的报文,交换机对从所述签名字段之后位置开始,长度由被加密报文长度字段指定的报文内容进行所述数据加密标准解密处理,还原出自交换机IP地址字段开始的DHCPv6 监听所述绑定报文内容。优选的,所述汇聚交换机对满足邻居发现代理条件的邻居请求报文查询其目标ID 是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端,进一步的包括如果接收的所述汇聚交换机的三层接口使能了邻居发现代理,并且所述客户端的所述邻居请求的目标IP处在所述汇聚交换机的另一个所述三层接口的网段中,不在同一个广播域,则满足所述邻居发现代理条件,所述汇聚交换机根据所述邻居请求中目标 IPv6地址,查询绑定表,如果所述目标IP在绑定表中,则发送邻居公告给终端,其中,所述邻居公告中的目标MAC地址填为接收该邻居请求的三层接口的所述MAC地址;否则,丢弃该邻居请求,不做处理。一种基于DHCPv6监听的邻居发现代理系统,该系统包括至少一个客户端、至少一个接入交换机、汇聚交换机和DHCPv6服务器;所述客户端用于通过DHCPv6地址请求流程请求地址并在获得地址后发送邻居请求报文给所述汇聚交换机;所述接入交换机用于监听DHCPv6客户端的地址请求过程,创建包括所述DHCPv6 客户端的MAC地址、IP地址、租期、VLAN号和端口号的绑定信息并将所述绑定信息通过绑定报文上传所述汇聚交换机;所述汇聚交换机用于从所述绑定报文中提取绑定信息更新绑定信息表并对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端所述DHCPv6服务器,用于响应于客户端请求分配IPv6地址。优选的,所述接入交换机,预先配置有所述汇聚交换机的IP地址;所述汇聚交换机具备邻居发现代理功能本发明克服了普通邻居发现代理的缺陷,所述缺陷在于设备没有检测目标IP的可达性而直接给请求端发送邻居公告(Neighbor Advertisement),在请求端的邻居发现缓存中存在目标主机的IPv6地址和硬件地址的映射关系,造成请求终端认为目的终端在 DHCPv6客户端邻居表中存在,实际无法互通。


图I是本发明的方法流程示意图;图2是本发明使用的DHCPv6监听(SNOOPING)绑定报文格式;图3是本发明系统的网络连接结构框图。
具体实施例方式下面结合附图并通过具体实施方式
来进一步说明本发明的技术方案。图I是本发明的方法流程示意图,如图I所示;该方法包括S101、具备DHCPv6监听功能的接入交换机监听DHCPv6客户端的地址请求过程,创建包括所述DHCPv6客户端的MAC地址、IP地址、租期、VLAN号和端口号的绑定信息以及配置汇聚交换机的IP地址;首先,在接入交换机上使能DHCPv6监听(SNOOPING),设置可信端口,并配置接收绑定信息的汇聚交换机的IP地址,汇聚交换机的接口上使能邻居发现代理功能;接入交换机使能DHCPv6监听(SNOOPING)后,下发DHCPv6报文重定向至交换机CPU 的规则至交换芯片,交换机交换芯片收到DHCPv6报文后,不执行硬件转发行为,而是将报文重定向至交换机的CPU,由CPU进行软件的解析和转发。其次,接入交换机DHCPv6监听(SNOOPING)监听用户终端DHCPv6地址请求过程, 过程如下(I)接入交换机的DHCPv6监听(SNOOPING)模块截获用户的DHCPv6地址请求后,根据源MAC地址查询绑定表,如果该MAC地址在绑定表中存在,从可信口转发出去。 否则,交换机会创建一个临时的对象(REQUEST)绑定,记录用户的MAC地址,报文的事物 ID(Transaction-ID),端口和虚拟局域网(VLAN)信息,从可信口转发出去。(2)接入交换机的DHCPv6监听(SNOOPING)模块截获用户的DHCPv6应答报文后, 解析获得报文的事物ID (Transaction-ID),互联网数字分配机构(IANA)中的IPv6地址,以及有效生存期。根据事物ID(Transaction-ID)查找查询对象(REQUEST)绑定表,如果存在相应,则创建一个绑定信息,记录DHCPv6客户端(CLIENT)的MAC地址、IP地址、租期、虚拟局域网(VLAN)号和端口号。接入交换机创建并保存绑定信息后,将绑定信息加入到DHCPv6监听(SNOOPING) 绑定报文中,并对绑定报文进行加密和散列处理,根据SlOl设置的接收绑定信息的汇聚交换机的IP地址将绑定信息上传到汇聚交换机;S102,接入交换机根据原先配置的汇聚交换机IP地址将绑定信息通过绑定报文上传给具备邻居发现代理功能的汇聚交换机;进一步的包括将DHCPv6监听(SNOOPING) 绑定信息加入到DHCPv6监听(SNOOPING)绑定报文中,再转发给后台服务器备份。交换机和后台服务器之间的DHCPv6监听(SNOOPING)绑定报文使用用户数据包协议(UDP)连接在网络上传播,为了保证安全性和防篡改,可以对DHCPv6监听(SNOOPING)绑定报文进行加密和散列处理,本发明加密采用共享密钥的数据加密标准(DES)方式,散列采用MD5方式。图2是本发明使用的DHCPv6监听(SNOOPING)绑定报文格式,DHCPv6监听 (SNOOPING)绑定报文承载于用户数据包协议(UDP)中,其报文格式如图2所示,各字段解释如下版本号(Version):目前为I ;类型(Type):目前为I,表示包含绑定信息;序列号(SeqNo):每发送一个报文,加I ;被加密报文的长度(SecretLen);签名(Signature) DHCPv6监听(SNOOPING)绑定报文所有字段的MD5散列结果;
交换机的IPv4 地址(SwitchIPAddr);交换机ID (SwitchID):取交换机CPU MAC地址;绑定数量(Count);客户端(CLIENT) MAC地址租用地址的PC终端MAC地址;保留(Reserved):填O ;客户端(CLIENT)虚拟局域网(VLAN) Id :DHCPv6用户接入交换机的虚拟局域网 (VLAN)ID ;端口号(PortNum) DHCPv6用户所在的交换机端口号;客户端(CLIENT)IP :用户 IPv6 地址;客户端有效生存期(CLIENT ValidLifetime) :DHCPv6分配的地址有效生存期;分配地址的时间戳(bindingTimeStamp);为了防止用户信息泄露以及传输过程中被恶意篡改,需要对报文进行数据加密标准(DES)加密和MD5散列处理,数据加密标准(DES)密钥由用户配置,接入交换机与汇聚交换机的密钥必须确保一致。发送报文前,先进行加密,后进行散列处理,具体过程如下自交换机IP地址(SwitchIPAddr)字段开始,一直到结尾的报文内容进行数据加密标准(DES)加密,密文与明文等长,密文放入DHCPv6监听(SNOOPING)绑定报文中交换机IP地址(SwitchIPAddr)字段开始的报文区域,密文长度置于DHCPv6监听(SNOOPING) 绑定报文的被加密报文的长度(SecretLen)字段,然后交给散列处理模块。对于交换机数据加密标准(DES)加密后的DHCPv6监听(SNOOPING)绑定报文,计算MD5散列时签名 (Signature)字段先清零,然后对整个报文作散列运算,散列操作完成后散列值填入签名 (Signature)字段,这时报文可以发出交换机。S103、汇聚交换机从绑定报文中提取绑定信息更新绑定信息表;进一步的,收到绑定报文后,先进行散列计算,再解密,具体过程如下计算时先备份签名(Signature)字段的值,然后签名(Signature)字段清零,再计算整个报文的MD5散列值,如果散列值与备份的签名(Signature)字段的值一样,则散列验证成功,继续对DHCPv6监听(SNOOPING)绑定报文作数据加密标准(DES)解密处理。如果散列验证失败,丢弃该DHCPv6监听(SNOOPING)绑定报文。对于接收到的MD5散列验证成功的报文,交换机对从签名(Signature)字段之后位置开始,长度由被加密报文的长度 (SecretLen)字段指定的报文内容进行数据加密标准(DES)解密处理,还原出自交换机IP 地址(SwitchIPAddr)字段开始的DHCPv6监听(SNOOPING)绑定报文内容。S104、汇聚交换机对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端; 进一步的,用户终端发送邻居请求(Neighbor Solicitation),邻居请求(Neighbor Solicitation)到达汇聚交换机。如果接收的三层接口使能了邻居发现代理,并且用户终端的邻居请求(Neighbor Solicitation)的目标IP处在汇聚交换机的另一个三层接口的网段中,不在同一个广播域,则满足邻居发现代理条件。汇聚交换机根据邻居请求(Neighbor Solicitation)中目标IPv6地址,查询绑定表,如果目标IP在绑定表中,则发送邻居公告 (Neighbor Advertisement)给终端,其中,邻居公告(Neighbor Advertisement)中的目标MAC地址填为接收该邻居请求(Neighbor Solicitation)的三层接口的MAC地址;否则,丢弃该邻居请求(Neighbor Solicitation),不做处理。图3是本发明系统的网络连接结构框图,如图3所示,一种基于DHCPv6监听的邻居发现代理系统,该系统包括至少一个客户端、至少一个接入交换机、汇聚交换机和DHCPv6 服务器;该客户端用于通过DHCPv6地址请求流程请求地址并在获得地址后发送邻居请求报文给该汇聚交换机;该接入交换机用于监听DHCPv6客户端的地址请求过程,创建包括该DHCPv6客户端的MAC地址、IP地址、租期、VLAN号和端口号的绑定信息并将该绑定信息通过绑定报文上传给该汇聚交换机;该汇聚交换机用于从该绑定报文中提取绑定信息更新绑定信息表并对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于该绑定信息表中,如果存在,则该汇聚交换机发送邻居公告报文给终端该DHCPv6服务器,用于响应于客户端请求分配IPv6地址。该接入交换机,预先配置有该汇聚交换机的IP地址;该汇聚交换机具备邻居发现代理功能。本发明克服了普通邻居发现代理的缺陷,该缺陷在于设备没有检测目标IP的可达性而直接给请求端发送邻居公告(Neighbor Advertisement),在请求端的邻居发现缓存中存在目标主机的IPv6地址和硬件地址的映射关系,造成请求终端认为目的终端在 DHCPv6客户端邻居表中存在,实际无法互通。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
权利要求
1.一种基于DHCPv6监听的邻居发现代理方法,其特征在于,所述方法包括具备DHCPv6监听功能的接入交换机监听DHCPv6客户端的地址请求过程,创建包括所述DHCPv6客户端的MAC地址、IP地址、租期、VLAN号和端口号的绑定信息以及配置汇聚交换机的IP ;所述接入交换机根据原先配置的汇聚交换机IP地址将所述绑定信息通过绑定报文上传给具备邻居发现代理功能的汇聚交换机;所述汇聚交换机从所述绑定报文中提取绑定信息更新绑定信息表;所述汇聚交换机对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端。
2.根据权利要求I所述的一种基于DHCPv6监听的邻居发现代理方法,其特征在于,所述接入交换机将预先配置的DHCPv6报文重定向至所述接入交换机的CPU的规则下发至交换芯片,所述接入交换机交换芯片收到所述DHCPv6报文后,不执行硬件转发行为,而是将所述报文重定向至所述接入交换机的CPU,由CPU进行软件的解析和转发。
3.根据权利要求I所述的一种基于DHCPv6监听的邻居发现代理方法,其特征在于,所述接入交换机DHCPv6监听所述客户端DHCPv6地址请求过程,包括所述接入交换机的DHCPv6监听模块截获用户的DHCPv6地址请求后,根据源MAC地址查询绑定表,如果所述MAC地址在绑定表中存在,从可信口转发出去;否则,交换机会创建一个临时的对象绑定,记录用户的所述MAC地址,报文的事物ID,端口和虚拟局域网信息, 从所述可信口转发出去;所述接入交换机的DHCPv6监听模块截获用户的DHCPv6应答报文后,解析获得所述报文的所述事物ID,互联网数字分配机构中的IPv6地址,以及有效生存期,根据所述事物ID 查找查询所述对象绑定表,如果存在相应,则创建一个绑定信息,记录DHCPv6客户端的所述MAC地址、IP地址、租期、虚拟局域网号和端口号。
4.根据权利要求I所述的一种基于DHCPv6监听的邻居发现代理方法,其特征在于,所述接入交换机根据原先配置的汇聚交换机IP地址将所述绑定信息通过绑定报文上传给具备邻居发现代理功能的汇聚交换机,进一步的包括将所述绑定信息加入到DHCPv6监听绑定报文中,并对所述绑定报文进行加密和散列处理,所述加密采用的是数据加密标准方式, 所述散列处理采用的是MD5方式。
5.根据权利要求4所述的一种基于DHCPv6监听的邻居发现代理方法,其特征在于,所述绑定报文采用用户数据包协议,所述报文格式如下版本号目前为I ;类型目前为I,表示包含绑定信息;序列号每发送一个报文,加I ;被加密报文的长度;签名DHCPv6监听绑定报文所有字段的MD5散列结果;交换机的IPv4地址;交换机账号取交换机CPU MAC地址;绑定数量;客户端MAC地址租用地址的PC终端MAC地址;保留填0 ;客户端虚拟局域网账号DHCPv6用户接入交换机的虚拟局域网账号;DHCPv6用户所在的交换机端口号;客户端IP :用户IPv6地址;客户端有效生存期DHCPv6分配的地址有效生存期;分配地址的时间戳。
6.根据权利要求I所述的一种基于DHCPv6监听的邻居发现代理方法,其特征在于,所述汇聚交换机从所述绑定报文中提取绑定信息更新绑定信息表,进一步的包括收到所述绑定报文后,先进行散列计算,再解密;计算时先备份签名字段的值,然后所述签名字段清零,再计算整个报文的MD5散列值,如果所述散列值与备份的所述签名字段的值一样,则散列验证成功,继续对DHCPv6监听所述绑定报文作数据加密标准解密处理,如果所述散列验证失败,丢弃该DHCPv6监听所述绑定报文,对于接收到的MD5散列验证成功的报文,交换机对从所述签名字段之后位置开始,长度由被加密报文长度字段指定的报文内容进行所述数据加密标准解密处理,还原出自交换机IP地址字段开始的DHCPv6监听所述绑定报文内容。
7.根据权利要求I所述的一种基于DHCPv6监听的邻居发现代理方法,其特征在于, 所述汇聚交换机对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端,进一步的包括如果接收的所述汇聚交换机的三层接口使能了邻居发现代理,并且所述客户端的所述邻居请求的目标IP处在所述汇聚交换机的另一个所述三层接口的网段中,不在同一个广播域,则满足所述邻居发现代理条件,所述汇聚交换机根据所述邻居请求中目标IPv6地址,查询绑定表,如果所述目标IP在绑定表中,则发送邻居公告给终端,其中,所述邻居公告中的目标 MAC地址填为接收该邻居请求的三层接口的所述MAC地址;否则,丢弃该邻居请求,不做处理。
8.一种基于DHCPv6监听的邻居发现代理系统,其特征在于,该系统包括至少一个客户端、至少一个接入交换机、汇聚交换机和DHCPv6服务器;所述客户端用于通过DHCPv6地址请求流程请求地址并在获得地址后发送邻居请求报文给所述汇聚交换机;所述接入交换机用于监听DHCPv6客户端的地址请求过程,创建包括所述DHCPv6客户端的MAC地址、IP地址、租期、VLAN号和端口号的绑定信息并将所述绑定信息通过绑定报文上传所述汇聚交换机;所述汇聚交换机用于从所述绑定报文中提取绑定信息更新绑定信息表并对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端所述DHCPv6服务器,用于响应于客户端请求分配IPv6地址。
9.根据权利要求8所述的一种基于DHCPv6监听的邻居发现代理系统,其特征在于,所述接入交换机,预先配置有所述汇聚交换机的IP地址;所述汇聚交换机具备邻居发现代理功能。
全文摘要
本发明公开了一种基于DHCPv6监听的邻居发现代理方法和系统,该方法包括具备DHCPv6监听功能的接入交换机监听DHCPv6客户端的地址请求过程,创建绑定信息以及配置汇聚交换机的IP;所述接入交换机根据原先配置的汇聚交换机IP地址将所述绑定信息通过绑定报文上传给具备邻居发现代理功能的汇聚交换机;所述汇聚交换机从所述绑定报文中提取绑定信息更新绑定信息表;所述汇聚交换机对满足邻居发现代理条件的邻居请求报文查询其目标ID是否存在于所述绑定信息表中,如果存在,则所述汇聚交换机发送邻居公告报文给终端。本发明克服了目的终端在DHCPv6客户端邻居表中存在,实际无法互通缺点。
文档编号H04L29/08GK102594882SQ20121002749
公开日2012年7月18日 申请日期2012年2月8日 优先权日2012年2月8日
发明者梁小冰 申请人:神州数码网络(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1