背景技术
DHCP,其采用客户端/服务器通信模式,由DHCP客户端(Client)向DHCP服务器(Server)提出配置请求比如申请IP地址等,DHCP服务器返回DHCP客户端请求的配置信息比如IP地址等,以实现配置信息的动态配置。
下面以DHCP客户端动态申请IP地址为例来描述DHCP客户端动态获取配置的流程,其他情况原理类似,
参见图1,图1示出了DHCP客户端动态申请IP地址的流程示意图。该流程主要通过四个阶段实现:
发现阶段(DHCP-DISCOVER):DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文寻找DHCP服务器。
提供阶段(DHCP-OFFER),DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给DHCP客户端。
选择阶段(DHCP-REQUEST),DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向DHCP客户端发来DHCP-OFFER报文,按照协议规定DHCP客户端只选择接受其中一个比如第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含其选择的DHCP-OFFER报文中的IP地址。
确认阶段(DHCP-ACK),DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的DHCP服务器会进行如下操作:如果确认将地址分配给该客户端,则返回DHCP-ACK报文;否则返回DHCP-NAK报文,表明地址不能分配给该客户端。
至此,通过上述四个阶段实现了DHCP客户端动态申请IP地址的流程。
通过图1所示的流程可以看出,在DHCP客户端动态申请IP地址过程中DHCP客户端采用广播方式发送报文,这限制了图1所示流程仅适用于DHCP客户端和DHCP服务器处于同一个子网内的情况。如此,为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。为了解决该问题,引入了DHCP中继功能。
所谓DHCP中继功能,其实质为DHCP客户端通过具有DHCP中继功能的网络设备(DHCP relay agent)与其他网段的DHCP服务器通信,最终实现动态配置。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,如图2所示的组网,既节省了成本,又便于进行集中管理。通过DHCP relay agent完成DHCP客户端的动态配置比如动态申请IP地址的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面以DHCP客户端动态获取IP地址为例来描述,其他情况原理类似。
参见图3,图3为采用DHCP中继的IP地址动态申请流程图。如图3所示,该流程可以包括:针对DHCP relay agent上与DHCP客户端相连的用户侧接口建立一个对应的DHCP服务器组,当DHCP中继设备通过用户侧接口收到DHCP客户端以广播方式发送的DHCP-DISCOVER时,将收到的报文中的giaddr字段填充为DHCP relay agent的IP地址,并转发给该用户侧接口对应的DHCP服务器组中的所有DHCP服务器。DHCP服务器收到DHCP relay agent转发的报文后,根据giaddr字段为DHCP客户端分配IP地址,并通过DHCP relay agent将分配的IP地址转发给DHCP客户端。DHCP客户端选择接收其中的一个IP地址比如将第一个收到的IP地址,并以广播方式发送DHCP-REQUEST报文,该DHCP-REQUEST报文包括选择的IP地址。DHCPrelay agent通过用户侧接口收到DHCP客户端以广播方式发送的DHCP-REQUEST时,将收到的报文中的giaddr字段填充为DHCP relay agent的IP地址,并转发给该用户侧接口对应的DHCP服务器组中的所有DHCP服务器,以执行上述的确认阶段。至此,完成DHCP客户端即完成动态申请IP地址的过程。
在组网应用中,DHCP relay agent可以接收DHCP客户端以广播方式发送的上述报文,但是,针对DHCP客户端发送的单播报文,比如用于请求续约已分配的IP地址的报文即续约报文、用于释放已分配的IP地址的报文即释放(release)报文等,由于该单播报文是在三层转发,而DHCP relay agent工作在应用层,其是无法感知到DHCP客户端发送的这些单播报文,这会导致DHCP中继设备不能及时根据这些单播报文处理已记录的与DHCP客户端对应的安全表项信息,其中,安全表项信息可包括DHCP客户端被分配的IP地址的租约期限、MAC地址、和/或DHCP relay agent接入所述DHCP客户端的接口等,其作为网络安全的依据。以DHCP客户端发送的单播报文为release报文为例,由于DHCP中继设备不能感知该release报文,其就不会及使删除DHCP客户端对应的安全表项,就会导致安全隐患。
发明内容
本申请提供了DHCP中继realy处理单播报文的方法和装置,以实现具有DHCPrelay功能的网络设备感知DHCP客户端发送的单播报文,及时依据感知的单播报文更新针对DHCP客户端的安全表项,避免安全隐患。
本申请提供的技术方案包括:
一种DHCP中继realy处理单播报文的方法,该方法应用于具有DHCP relay功能的网络设备,该方法包括:
所述网络设备接收DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文,将所述应答报文中DHCP服务器的IP地址修改为所述网络设备的上行口IP地址,所述上行口IP地址与所述DHCP服务器的IP地址处于相同网段;
所述网络设备将修改后的应答报文转发给DHCP客户端,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址;
所述网络设备接收DHCP客户端以记录的网络设备上行口IP地址作为目的IP地址发送的单播报文,并依据所述单播报文更新已记录的针对所述DHCP客户端的安全表项信息。
一种具有DHCP中继realy功能的网络设备,所述网络设备包括:
IP地址修改单元,用于接收DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文,并将所述应答报文中DHCP服务器的IP地址修改为所述网络设备的上行口IP地址,所述上行口IP地址与所述DHCP服务器的IP地址处于相同网段;
转发单元,用于将修改后的应答报文转发给DHCP客户端,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址;
更新单元,用于接收DHCP客户端以记录的网络设备上行口IP地址作为目的IP地址发送的单播报文,并依据所述单播报文更新已记录的针对所述DHCP客户端的安全表项信息。
一种DHCP客户端设备,所述DHCP客户端设备包括:
接收单元,用于接收如权利要求6至10任一所述网络设备转发的DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文;
记录单元,用于在确认所述接收单元接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址;
发送单元,用于以所述记录单元记录的网络设备上行口IP地址作为目的IP地址发送单播报文。
由以上技术方案可以看出,本发明中,网络设备通过将DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文中DHCP服务器IP地址修改为所述网络设备的上行口IP地址,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址,并在后续发送单播报文时,以记录的网络设备上行口IP地址作为目的IP地址发送单播报文,以使得网络设备接收单播报文,并依据所述单播报文更新已记录的针对DHCP客户端的安全表项信息,这实现了网络设备及时更新DHCP客户端安全表项信息,避免安全隐患。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法是由具有DHCP relay功能的网络设备通过对DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文进行以下修改:将该应答报文中的DHCP服务器IP地址修改为所述网络设备的上行口IP地址,其中,所述上行口IP地址与所述DHCP服务器的IP地址处于相同网段,能够将DHCP客户端发送的单播报文引导至应用层,以使得所述网络设备能够感知这些单播报文,并依据感知的单播报文对DHCP客户端对应的安全表项信息进行及时更新,以解决安全表项更新不及时带来的网络安全隐患。
作为本发明实施例的扩展,上述具有DHCP relay功能的网络设备可为网关设备或者其他网络设备,本发明不限定。
下面通过图4对本发明实施例提供的方法进行描述:
参见图4,图4为本发明实施例提供的方法流程图。如图4所示,该流程可包括以下步骤:
步骤401中,网络设备接收DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文,将所述应答报文中DHCP服务器的IP地址修改为所述网络设备的上行口IP地址,所述上行口IP地址与所述DHCP服务器的IP地址处于相同网段。
本发明中,DHCP服务器的IP地址封装在应答报文的选项(OPTION)54中;基于此,本步骤401中,将所述应答报文中DHCP服务器的IP地址修改为所述网络设备的上行口IP地址具体为:
将所述应答报文中OPTION 54的内容修改为所述网络设备的上行口IP地址。
另外,基于DHCP客户端申请IP地址的过程可以知道,本步骤401中的应答报文可为:用于提供IP地址的DHCP-OFFER报文、用于通知DHCP客户端允许使用其已选择的IP地址的DHCP-ACK报文、以及用于通知DHCP客户端禁止使用其已选择的IP地址的DHCP-NCK报文。
步骤402,网络设备将修改后的应答报文转发给DHCP客户端,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址。
本步骤402中,用于表示成功申请IP地址的应答报文为DHCP-ACK报文。
从步骤401和步骤402可以看出,步骤401中,只要网络设备接收DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的任何一个报文比如DHCP-OFFER报文、DHCP-ACK报文或DHCP-NAK报文,都会执行上述将应答报文中OPTION 54内容修改为网络设备上行口IP地址的操作。而步骤402中,DHCP客户端只有在确认接收到的应答报文为DHCP-ACK报文时,才记录该DHCP-ACK报文中的上行口IP地址,而针对接收的其他应答报文比如DHCP-OFFER报文、或DHCP-NAK报文,尽管在步骤401中,网络设备已将该应答报文比如DHCP-OFFER报文、或DHCP-NAK报文的OPTION 54内容修改为网络设备上行口IP地址,DHCP客户端仍然不记录该OPTION 54中网络设备的上行口IP地址。
步骤403,网络设备接收DHCP客户端以记录的网络设备上行口IP地址作为目的IP地址发送的单播报文,并依据所述单播报文更新已记录的针对所述DHCP客户端的安全表项信息。
也就是说,DHCP客户端在记录网络设备的上行口IP地址后,如果后续需要向DHCP服务器发送单播报文,则就会以记录的网络设备上行口IP地址作为目的IP地址发送,由于该记录的网络设备上行口IP地址为网络设备的IP地址,因此,网络设备会接收到该单播报文,即实现了网络设备获知单播报文的目的。当网路设备获知到单播报文时,网络设备就会依据所述单播报文更新已记录的针对所述DHCP客户端的安全表项信息。
下面以单播报文为续约报文和释放报文为例分别对步骤403进行描述:
续约报文:
在DHCP中,DHCP客户端申请的IP地址具有一定的租约期限,当DHCP客户端申请的IP地址在租约期限内,DHCP客户端就可以使用其申请的IP地址进行网络通信,反之,当DHCP客户端申请的IP地址不在租约期限内比如已过期,DHCP客户端就不能使用其申请的已过期的IP地址进行网络通信。
为了延长DHCP客户端使用其申请的IP地址的期限,就需要更新IP地址的租约期限,基于此,DHCP客户端就需要单播发送用于请求更新所述租约期限的报文,即续约报文。其中,该续约报文中的OPTION 54中封装了目的IP地址,即所述网络设备的上行口IP地址。
当网路设备接收到续约报文时,网络设备就会依据续约报文更新已记录的针对所述DHCP客户端的安全表项信息,具体为:将所述续约报文中OPTION 54封装的目的IP地址修改为DHCP服务器的IP地址,转发修改后的单播报文至DHCP服务器;接收所述DHCP服务器针对续约报文返回的应答报文,如果该应答报文提供更新后的租约期限,则将针对所述DHCP客户端的安全表项信息中的租约期限修改为该更新后的租约期限,如果该应答报文通知禁止租约期限更新,则维持针对所述DHCP客户端的安全表项信息中的租约期限不变,之后修改该应答报文中OPTION 54封装的DHCP服务器IP地址为网络设备上行口IP地址并转发至DHCP客户端。
至此,完成以续约报文为例对步骤403的描述。下面以释放报文为例描述步骤403:
释放(release)报文:
当DHCP客户端不再需要其已申请的、但还处在租约期限内的IP地址时,DHCP客户端会主动发送一个释放报文。其中,该释放报文中的OPTION54中封装了目的IP地址,即所述网络设备的上行口IP地址。
当网路设备接收到释放报文时,网络设备就会依据释放报文更新已记录的针对所述DHCP客户端的安全表项信息,具体为:删除已记录的针对所述DHCP客户端的安全表项信息,并将所述释放报文中OPTION 54封装的目的IP地址修改为DHCP服务器的IP地址,转发修改后的释放报文至DHCP服务器,以使得DHCP服务器收到释放报文后,删除针对该需要释放的IP地址的租约。
至此,完成图4所示方法的描述。
从图4所示流程可以看出,网络设备通过将DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文中DHCP服务器IP地址修改为所述网络设备的上行口IP地址,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址,并在后续发送单播报文时,以记录的网络设备上行口IP地址作为目的IP地址发送单播报文,以使得网络设备接收单播报文,并依据所述单播报文更新已记录的针对DHCP客户端的安全表项信息,这实现了网络设备及时更新DHCP客户端安全表项信息,避免安全隐患。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
首先,本发明提供了一种具有DHCP realy功能的网络设备。如图5所示,所述网络设备包括:
IP地址修改单元,用于接收DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文,并将所述应答报文中DHCP服务器的IP地址修改为所述网络设备的上行口IP地址,所述上行口IP地址与所述DHCP服务器的IP地址处于相同网段;
转发单元,用于将修改后的应答报文转发给DHCP客户端,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址;
更新单元,用于接收DHCP客户端以记录的网络设备上行口IP地址作为目的IP地址发送的单播报文,并依据所述单播报文更新已记录的针对所述DHCP客户端的安全表项信息。
优选地,本发明中,所述DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文包括:
用于提供IP地址的DHCP-OFFER报文、用于通知DHCP客户端允许使用其已选择的IP地址的DHCP-ACK报文、以及用于通知DHCP客户端禁止使用其已选择的IP地址的DHCP-NCK报文;
基于此,所述表示成功申请IP地址的应答报文为:DHCP-ACK报文。
优选地,本发明中,所述应答报文中DHCP服务器的IP地址封装在应答报文的选项OPTION 54中;基于此,所述IP地址修改单元将应答报文中DHCP服务器的IP地址修改为所述网络设备的上行口IP地址包括:将所述应答报文中选项OPTION 54封装的DHCP服务器IP地址修改为所述网络设备的上行口IP地址。
本发明中,所述单播报文的目的IP地址封装在OPTION 54中,所述单播报文为用于释放所述DHCP客户端已成功申请的IP地址的报文;基于此,所述更新单元依据单播报文更新已记录的针对DHCP客户端的安全表项信息包括:
删除已记录的针对所述DHCP客户端的安全表项信息,并将所述单播报文中OPTION54封装的目的IP地址修改为DHCP服务器的IP地址,转发修改后的单播报文至DHCP服务器。
另外,所述DHCP客户端申请的IP地址具有租约期限,所述单播报文为用于请求更新所述租约期限的报文,所述单播报文的目的IP地址封装在OPTION54中;基于此,所述更新单元依据单播报文更新已记录的针对DHCP客户端的安全表项信息包括:
将所述单播报文中OPTION 54封装的目的IP地址修改为DHCP服务器的IP地址,转发修改后的单播报文至DHCP服务器;
接收所述DHCP服务器针对单播报文返回的应答报文,如果该应答报文提供更新后的租约期限,则将针对所述DHCP客户端的安全表项信息中的租约期限修改为该更新后的租约期限,如果该应答报文通知禁止租约期限更新,则维持针对所述DHCP客户端的安全表项信息中的租约期限不变,之后修改该应答报文中OPTION 54封装的DHCP服务器IP地址为网络设备上行口IP地址并转发至DHCP客户端。
至此,完成图5所示的网络设备结构描述。
优选地,本发明还提供了如图6所示的DHCP客户端设备,如图6所示,所述DHCP客户端设备包括:
接收单元,用于接收如权利要求6至10任一所述网络设备转发的DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文;
记录单元,用于在确认所述接收单元接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址;
发送单元,用于以所述记录单元记录的网络设备上行口IP地址作为目的IP地址发送单播报文。
至此,完成本发明提供的装置描述。
由以上技术方案可以看出,本发明中,网络设备通过将DHCP服务器在DHCP客户端申请IP地址过程中向DHCP客户端返回的应答报文中DHCP服务器IP地址修改为所述网络设备的上行口IP地址,以使得DHCP客户端在确认接收到的应答报文为表示成功申请IP地址的应答报文时,记录所述应答报文中的上行口IP地址,并在后续发送单播报文时,以记录的网络设备上行口IP地址作为目的IP地址发送单播报文,以使得网络设备接收单播报文,并依据所述单播报文更新已记录的针对DHCP客户端的安全表项信息,这实现了网络设备及时更新DHCP客户端安全表项信息,避免安全隐患。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。