首页> 中国专利> 一种在动态主机地址配置过程中进行中继的方法和装置

一种在动态主机地址配置过程中进行中继的方法和装置

摘要

本发明公开了一种在动态主机地址配置过程中进行中继的方法,合法动态主机地址配置协议DHCP服务器位于子网外,非法DHCP服务器位于子网内,设置子网交换机的访问控制列表ACL,令子网交换机丢弃非法DHCP服务器发出的DHCP报文,包括:A.根据所述ACL,判断是否需要丢弃接收到的DHCP报文,如果需要则丢弃该报文并结束本次流程,否则执行步骤B;B.根据所收到的DHCP报文的来源,将该报文发往DHCP客户端或合法DHCP服务器。本发明还提供了一种在动态主机地址配置过程中进行中继的装置。采用本发明提供的技术方案,即能够阻止非法DHCP服务器对外提供DHCP服务,又不会影响非法DHCP服务器所在的终端所进行的其他类型的网络通信,更不会影响子网内其他正常终端的网络通信。

著录项

  • 公开/公告号CN1835515A

    专利类型发明专利

  • 公开/公告日2006-09-20

    原文格式PDF

  • 申请/专利权人 杭州华为三康技术有限公司;

    申请/专利号CN200610072124.6

  • 发明设计人 邱元香;

    申请日2006-04-12

  • 分类号H04L29/12(20060101);H04L29/06(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人王琦;程殿军

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路东华为3com公司

  • 入库时间 2023-12-17 17:46:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-26

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/12 变更前: 变更后: 申请日:20060412

    专利权人的姓名或者名称、地址的变更

  • 2009-10-21

    授权

    授权

  • 2006-11-22

    实质审查的生效

    实质审查的生效

  • 2006-09-20

    公开

    公开

说明书

技术领域

本发明涉及互联网技术,特别是涉及一种在动态主机地址配置过程中进行中继的方法。

背景技术

随着网络规模的扩大,子网内的终端数量往往超过可分配的互联网协议(Internet Protocol,IP)地址。但实际情况是,这些终端并非总是需要占用IP地址,例如在关机或者便携移动到其他子网的情况下,就不再占用原子网的IP地址。针对这种情况,通常的解决办法是采用动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)来进行IP地址的动态分配。需要占用IP地址的终端作为DHCP客户端向DHCP服务器动态地请求配置信息,DHCP服务器根据配置策略返回相应的配置信息,包括IP地址等。DHCP报文采用用户数据报协议(User Datagram Protocol,UDP)封装。

早期的DHCP协议只适用于DHCP客户端和服务器处于同一个子网内的情况,不可以跨网段工作。这样,为实现动态主机配置,需要为每一个子网设置一个DHCP服务器,这显然是不经济的。DHCP中继的引入解决了这一难题。DHCP中继位于子网的交换机上,子网内的DHCP客户端可以通过DHCP中继与位于其他子网的DHCP服务器通信,最终取得合法的IP地址。这样,多个子网上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。

但是,随着计算机技术的发展,原来需要由大型计算机才能实现的DHCP服务器,现在由大多数的终端就可以实现。终端用户只要把系统中的DHCP服务器启动,经过简单的配置,这个终端就会往外分配IP地址。这样就相当于有两个DHCP服务器在各自独立的工作,从而扰乱了正常的DHCP服务器地址管理,导致网络出现IP地址冲突、分配的IP地址不可用等情况,严重影响网络正常运行。

为了解决这个问题,在现有技术中,子网中发生的IP地址冲突、分配的IP地址不可用等情况被记录在交换机的系统日志中。网络管理员通过系统日志获知子网内存在非法DHCP服务器以后,可以进一步通过系统日志确认非法的DHCP协议报文是来自交换机的哪个物理端口。但是,一般的子网中,并不是所有的终端都直接连接在交换机的物理端口上,而通常是采用树型结构将终端连接到交换机,即先将终端连接到子交换机或集线器的物理端口上,再将子交换机或者集线器连接到交换机上。因此这时网络管理员可以采取两种措施,一种措施是检查交换机的该物理端口所连接的所有终端,人工查找非法DHCP服务器,这种办法的效率比较低下;另一种措施是直接禁止该物理端口的网络通信,这种办法虽然阻止了非法DHCP服务器进行IP地址分配的网络通信,但同时也阻止了该物理端口所间接连接的所有正常终端的正常网络通信。

由以上的叙述可以看出,现有技术需要网络管理员通过查看交换机的系统日志才能发现子网中出现了非法DHCP服务器。进而,为了阻止非法DHCP服务器分配IP地址,如果采用人工查找的方法,效率太低;如果不采用人工查找的方法,而采用禁止物理端口网络通信的方法,又会影响正常终端的网络通信。现有技术无法解决这个矛盾。

发明内容

有鉴于此,本发明的主要目的在于提供一种在动态主机地址配置过程中进行中继的方法和装置,不但能够自动发现子网内存在的非法DHCP服务器,还能够在阻止非法DHCP服务器进行地址分配的同时,确保该非法DHCP服务器所在终端除分配IP地址外的其他正常通信,以及子网中除DHCP服务器所在终端外其他终端的正常通信。

为了达到上述目的,本发明提供了一种在动态主机地址配置过程中进行中继的方法,合法的动态主机地址配置协议DHCP服务器位于子网外,非法的DHCP服务器位于子网内,其特征在于,设置子网交换机的访问控制列表ACL,令子网交换机丢弃非法DHCP服务器发出的DHCP报文,该方法包括:

A、根据所述ACL,判断是否需要丢弃接收到的DHCP报文,如果是则丢弃该报文并结束本次流程,否则执行步骤B;

B、判断所收到的DHCP报文是否由DHCP客户端发出,如果是则修改所收到的DHCP报文的源用户数据报协议UDP端口,并将报文发往合法DHCP服务器,然后结束本次流程,否则修改所收到的DHCP报文的目的UDP端口,并将报文发往DHCP客户端。

其中,所述设置子网交换机的ACL,令子网交换机丢弃非法DHCP服务器发出的DHCP报文为:

对子网交换机的所有物理端口设置ACL,丢弃源UDP端口为67,目的UDP端口为68的DHCP报文。

其中,所述设置子网交换机的ACL为丢弃非法DHCP服务器发出的DHCP报文为:

A1、判断所接收的DHCP报文是否源UDP端口为67且目的UDP端口为68,如果是则丢弃该报文后执行步骤A2,否则执行步骤B;

A2、获取收到源UDP端口为67且目的UDP端口为68的DHCP报文的物理端口标识;

A3、根据步骤A2中所获取的物理端口标识,对该物理端口设置ACL,丢弃源UDP端口为67,目的UDP端口为68的DHCP报文。

其中,步骤B所述判断所收到的DHCP报文是否由DHCP客户端发出为:

判断所收到的DHCP报文是否源UDP端口为68,目的UDP端口为67,如果是则认为所收到的DHCP报文是由DHCP客户端发出,否则认为所收到的DHCP报文不是由DHCP客户端发出。

其中,步骤B所述修改所收到的DHCP报文的源UDP端口,并将报文发往合法DHCP服务器为:

将所收到的DHCP报文的源UDP端口从68改为67,然后根据合法DHCP服务器的互联网协议IP地址,将DHCP报文发送给合法DHCP服务器。

其中,步骤B所述修改所收到的DHCP报文的目的UDP端口,并将报文发往DHCP客户端为:

将所收到的DHCP报文的目的UDP端口从67改为68,然后在子网内广播修改后的DHCP报文。

为了达到上述目的,本发明还提供了一种在动态主机地址配置过程中进行中继的装置,该装置位于子网交换机上,包括通信接口模块、动态主机地址配置协议DHCP报文分析模块、DHCP报文修改模块,其特征在于,该装置进一步包括:

访问控制列表ACL设置模块:用于根据DHCP报文分析模块的指示,设置所在交换机的ACL规则;

所述DHCP报文分析模块进一步用于:

对通信接口模块所收到的DHCP报文的源UDP端口和目的UDP端口进行分析,并且根据分析结果,指示ACL设置模块设置所在交换机的ACL。

其中,所述通信接口模块为:

用于通过子网交换机的物理端口接收动态主机地址配置协议DHCP报文,并且将所接收的DHCP报文传送给报文分析模块进行处理;还用于通过子网交换机的物理端口发送DHCP报文,所发送的DHCP报文来自于DHCP报文修改模块。

其中,所述DHCP报文修改模块为:

用于根据DHCP报文分析模块的指示,修改通信接口模块所收到的DHCP报文,并且将修改后的DHCP报文传送给通信接口模块进行发送。

由此可见,在本发明中,判断子网中是否有非法的DHCP服务器,是由位于子网交换机上的DHCP中继通过分析DHCP报文的目的UDP端口来进行的,而不再由网络管理员通过查看交换机的系统日志来进行。在发现子网中出现了非法的DHCP服务器后,设置交换机的访问控制列表(AccessControl List,ACL),丢弃由非法DHCP服务器发出的与IP地址分配相关的报文,从而达到阻止非法DHCP进行IP地址分配的目的。同时,由于交换机所丢弃的仅仅是由非法DHCP服务器发出的与IP地址分配相关的报文,因此不会影响非法DHCP服务器所在的终端所进行的其他类型的网络通信,更不会影响子网内其他正常终端的网络通信。

附图说明

图1是DHCP服务器进行IP地址分配时的流程图;

图2是本发明所提供的在动态主机地址配置过程中进行中继的方法和装置的应用环境;

图3是本发明所提供的在动态主机地址配置过程中进行中继的方法流程图;

图4是本发明所提供的在动态主机地址配置过程中进行中继的装置方框图。

具体实施方式

本发明的核心思想是:利用子网内DHCP服务器进行IP地址分配时所发送的报文,与子网外的DHCP服务器进行IP地址分配时所发送的报文的不同,由位于子网交换机上的DHCP中继对接收到的所有进行IP地址分配的报文进行解析,然后利用交换机的ACL丢弃子网内的非法DHCP服务器所发送的进行IP地址分配的报文。

为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。

请参考图1,图1是DHCP服务器进行IP地址分配时的流程图。

图1(a)是DHCP服务器和DHCP客户端位于同一子网内时分配IP地址的流程图。

步骤1011:DHCP客户端广播DHCP发现(DHCP DISCOVER)报文,发起IP地址分配流程,该报文中至少包括DHCP客户端自身的媒体访问控制(Media Access Control,MAC)地址。报文的源UDP端口是68,目的UDP端口是67。

步骤1012:子网内的DHCP服务器收到广播的DHCP DISCOVER报文,广播DHCP提供(DHCP OFFER)报文作为响应,该报文中至少包括DHCP服务器分配的一个IP地址。报文的源UDP端口是67,目的UDP端口是68。

步骤1013:DHCP客户端收到DHCP OFFER报文后,广播DHCP请求(DHCP REQUEST)报文,表明自己接受DHCP OFFER报文中所提供的IP地址。该报文中至少包括DHCP客户端所接受的IP地址,报文的源UDP端口是68,目的UDP端口是67。

步骤1014:DHCP服务器收到广播的DHCP REQUEST报文后,广播DHCP确认(DHCP ACK)报文。该报文中还包含DHCP客户端进行网络通信所需的其他配置信息。报文的源UDP端口是67,目的UDP端口是68。

DHCP客户端收到DHCP ACK报文后,就可以进行网络通信了。

图1(b)是DHCP服务器和DHCP客户端位于不同子网内时分配IP地址的流程图。

由于DHCP客户端和DHCP服务器位于不同子网内,DHCP客户端广播的DHCP DISCOVER报文和DHCP REQUEST报文无法被DHCP服务器收到,DHCP服务器也无法通过广播DHCP OFFER报文和DHCP ACK报文向DHCP客户端分配IP地址。这时就需要DHCP中继来在DHCP客户端和DHCP服务器之间进行中继。

步骤1021:DHCP客户端广播DHCP DISCOVER报文,发起IP地址分配流程,该报文中至少包括DHCP客户端自身的MAC地址。报文的源UDP端口是68,目的UDP端口是67。

步骤1022:DHCP中继收到DHCP客户端广播的DHCP DISCOVER报文后,修改该报文的源UDP端口为67,然后通过单播的方式,将修改后的DHCP DISCOVER报文发往位于另一子网的,地址已知的DHCP服务器。报文的源UDP端口是67,目的UDP端口是67。

步骤1023:位于另一子网内的DHCP服务器收到DHCP中继的DHCPDISCOVER报文,通过单播的方式,向DHCP中继发送DHCP OFFER报文作为响应,该报文中至少包括DHCP服务器分配的一个IP地址。报文的源UDP端口是67,目的UDP端口是67。

步骤1024:DHCP中继收到DHCP服务器发来的DHCP OFFER报文后,修改该报文的目的UDP端口为68,然后将该DHCP OFFER报文在子网内广播。

步骤1025:DHCP客户端收到广播的DHCP OFFER报文后,广播DHCPREQUEST报文,表明自己接受DHCP OFFER报文中所提供的IP地址。该报文中至少包括DHCP客户端所接受的IP地址,报文的源UDP端口是68,目的UDP端口是67。

步骤1026:DHCP中继收到DHCP客户端广播的DHCP REQUEST报文后,修改该报文的源UDP端口为67,然后通过单播的方式,将修改后的DHCPREQUEST报文发往位于另一子网的,地址已知的DHCP服务器。报文的源UDP端口是67,目的UDP端口是67。

步骤1027:位于另一子网内的DHCP服务器收到DHCP中继的DHCPREQUEST报文,通过单播的方式,向DHCP中继发送DHCP ACK报文作为响应,该报文中还包含DHCP客户端进行网络通信所需的其他配置信息。报文的源UDP端口是67,目的UDP端口是67。

步骤1028:DHCP中继收到DHCP服务器发来的DHCP ACK报文后,修改该报文的目的UDP端口为68,然后将该DHCP ACK报文在子网内广播。

DHCP客户端收到DHCP ACK报文后,就可以进行网络通信了。

从前面的叙述可以看出,如果DHCP服务器和DHCP客户端位于同一子网内,那么DHCP服务器所发出的DHCP OFFER报文和DHCP ACK报文的源UDP端口是67,目的UDP端口为68;如果DHCP服务器和DHCP客户端位于不同子网内,那么DHCP服务器所发出的DHCP OFFER报文和DHCP ACK报文的源UDP端口和目的UDP端口都是67。

请参考图2,图2是本发明所提供的在动态主机地址配置过程中进行中继的方法和装置的应用环境。

在图2中,为了叙述方便,第二子网里的非法DHCP服务器和正常终端都直接连接到交换机上的不同物理端口。合法的DHCP服务器位于第一子网,和第而子网通过互联网相连。DHCP中继位于第二子网的交换机上,DHCP中继处理经过第二子网的交换机的DHCP报文,即合法DHCP服务器、正常终端以及非法DHCP服务器之间的DHCP报文。

请参考图3,图3是本发明所提供的在动态主机地址配置过程中进行中继的方法流程图,该方法包括:

步骤301:DHCP中继分析收到的DHCP报文。

在图2所示的结构中,合法DHCP服务器所发送的DHCP报文,由于必须经过子网交换机才能进入第一子网,因此在到达DHCP客户端之前会经过DHCP中继。而非法DHCP服务器和DHCP客户端连接于子网交换机的不同物理端口,因此非法DHCP服务器所发送的DHCP报文,虽然是在子网内进行广播,但是实际上也是经过子网交换机然后由子网交换机发送给DHCP客户端。这样,无论是合法DHCP服务器还是非法DHCP服务器,其所发送的DHCP报文都会由DHCP中继加以处理。因此,DHCP中继实际上可以对所有进出本子网的DHCP报文,以及本子网内部的DHCP报文进行分析。

步骤302:判断所收到的DHCP报文,是否源UDP端口为67且目的UDP端口为68,如果是,则执行步骤303,否则执行步骤306。

步骤303:认为子网内出现了非法DHCP服务器。

由于非法DHCP服务器与正常终端位于同一子网内,因此,正常终端所广播的DHCP DISCOVER消息也会被非法DHCP服务器收到。这时,DHCP服务器会广播DHCP OFFER消息。该DHCP OFFER消息,根据图1(a)中所示,源UDP端口是67且目的UDP端口为68。由于该DHCP OFFER消息是广播的,因此位于子网交换机上的DHCP中继也会收到,进而判断出子网内有非法DHCP服务器在进行地址分配。

步骤304:设置非法DHCP服务器所在物理端口的ACL规则。

在步骤301中,DHCP中继可以获知所收到的DHCP报文是从子网交换机的哪个物理端口进入子网交换机的。在步骤303中,DHCP中继在确认所收到的报文是由非法DHCP服务器所发出的以后,进一步就能知道非法DHCP服务器连接到子网交换机的哪个物理端口。DHCP中继设置子网交换机中,与非法DHCP服务器相连的物理端口的ACL,在ACL中添加一条规则,屏蔽所有源UDP端口为67且目的UDP端口为68的DHCP报文。

之所以只设置子网交换机中与非法DHCP服务器相连物理端口的ACL,是因为交换机上的ACL资源是有限的,如果对于每个物理端口,都添加一条丢弃源UDP端口为67且目的UDP端口为68的DHCP报文的ACL规则,就会浪费有限的ACL资源。

步骤305:将与非法DHCP服务器相连的物理端口收到的,所有源UDP端口为67,且目的UDP端口为68的DHCP报文丢弃,结束本次流程。

如前所述,在步骤304中对子网交换机与非法DHCP服务器相连物理端口的ACL设置以后,交换机就会根据ACL对交换机通过与非法DHCP服务器相连的物理端口收到的报文进行过滤处理,从而阻止非法DHCP服务器所发出的DHCP报文在子网内的广播,进而子网内的正常终端也不会使用由非法DHCP服务器所分配的IP地址。

另一方面,由于交换机只是丢弃了源UDP端口为67,且目的UDP端口为68的DHCP报文,其他类型的报文还是能够通过交换机在子网内正常的进行传送,因此不会影响包括子网内非法DHCP服务器所在终端在内的所有终端的正常通信。

步骤306:判断所收到的DHCP报文,是否源UDP端口为67且目的UDP端口为67,如果是,则执行步骤307,否则执行步骤308。

步骤307:修改报文目的UDP端口为68后在子网内广播该报文。

DHCP中继所收到的源UDP端口为67且目的UDP端口为67的DHCP报文,是由位于另一子网的合法DHCP服务器所发送的DHCP报文,该报文是正常的IP地址分配过程中的报文。根据图1(b)所示,DHCP中继收到位于另一子网发来的DHCP报文后,将原报文中的目的UDP端口67修改为68,然后在子网内广播该报文,即通过子网交换机的所有物理端口发送该报文。

步骤308:判断所收到的DHCP报文,是否源UDP端口为68且目的UDP端口为67,如果是,则执行步骤310,否则执行步骤309。

如果DHCP中继所收到的DHCP报文,既不是源UDP端口为67且目的UDP端口为68的报文,也不是原UDP端口和目的UDP端口都为67报文,那么DHCP中继进一步判断报文是否源UDP端口为68且目的UDP端口为67。

步骤309:将该报文交由交换机其他模块处理。

如果DHCP中继所收到的报文,既不是源UDP端口为67且目的UDP端口为68的报文,也不是源UDP端口和目的UDP端口都为67的报文,也不是源UDP端口为68且目的UDP端口为67的报文,那么该报文不是DHCP报文,有可能是其他类型的报文。因此DHCP中继对该报文不作任何处理,而是交由交换机的其他模块进行处理。

步骤310:修改报文源UDP端口为67后发往已知IP地址的合法DHCP服务器。

源UDP端口为68且目的UDP端口为67的DHCP报文是DHCP客户端在子网内广播的消息,根据图1(b)所示,DHCP中继会将该报文源UDP端口修改为67后发往已知IP地址的合法DHCP服务器。

这样,DHCP中继就完成了自动检测子网内是否出现非法DHCP服务器,以及在子网内出现非法DHCP服务器的时候阻止该非法DHCP服务器进行IP地址分配的功能。

请参考图4,图4是本发明所提供的在动态主机地址配置过程中进行中继的装置方框图。该装置位于子网交换机上,包括:

通信接口模块:用于通过子网交换机的物理端口接收DHCP报文,并且将所接收的DHCP报文传送给报文分析模块进行处理;还用于通过子网交换机的物理端口发送DHCP报文,所发送的DHCP报文来自于DHCP报文修改模块。

DHCP报文分析模块:用于对通信接口模块所收到的DHCP报文的源UDP端口和目的UDP端口进行分析,并且根据分析结果,指示DHCP报文修改模块对通信接口模块所收到的DHCP报文进行修改,或者指示ACL设置模块设置所在交换机的ACL。

DHCP报文分析模块分析通信接口模块所收到的DHCP报文的源UDP端口和目的UDP端口,如果所收到的DHCP报文的源UDP端口为67,目的UDP端口为68,则认为该DHCP报文是由非法DHCP服务器发出的,DHCP报文分析模块指示ACL设置模块设置所在交换机的ACL;如果所收到的DHCP报文的源UDP端口为67,目的UDP端口为67,则认为该DHCP报文是由合法DHCP服务器发出的,DHCP报文分析模块指示DHCP报文修改模块,将所收到的DHCP报文的目的UDP端口改为68;如果所收到的DHCP报文的源UDP端口为68,目的UDP端口为67,则认为该DHCP报文是由DHCP客户端发出的,DHCP报文分析模块指示DHCP报文修改模块,将所收到的DHCP报文的源UDP端口改为67。

DHCP报文修改模块:用于根据DHCP报文分析模块的指示,修改通信接口模块所收到的DHCP报文,并且将修改后的DHCP报文传送给通信接口模块进行发送。

如果DHCP报文分析模块发送给DHCP报文修改模块的修改指令,是将DHCP报文的目的UDP端口改为68,则DHCP报文修改模块执行修改指令后,通过通信接口模块向子网内广播修改后的报文;如果DHCP报文分析模块发送给DHCP报文修改模块的修改指令,是将DHCP报文的源UDP端口改为67,则DHCP报文修改模块执行修改指令后,通过通信接口模块将修改后的报文发往另一子网内的地址已知的合法DHCP服务器。

ACL设置模块:用于根据DHCP报文分析模块的指示,设置所在交换机的ACL。

总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号