一种三层以太网交换机直连主机路由的处理方法

文档序号:7964498阅读:232来源:国知局
专利名称:一种三层以太网交换机直连主机路由的处理方法
技术领域
本发明涉及以太网通信技术,特别涉及一种在以太网交换机上通过ARP (Address Resolution Protocol,地址解析协议)生成主机路由时MAC (Medium Access Control,媒体访问控制)不存在的处理方法。
背景技术
随着因特网的高速发展,以太网网络逐渐成为人们日常工作和生活中必 不可少的工具,从而对以太网交换机的需求和处理能力也越来越高,同时各 个生产厂家都在努力降低成本,提高产品的性价比。随着ASIC芯片设计技 术的迅速提高,以太网交换机的二三层转发基本上都由芯片完成了, CPU 在交换机上基本上不处理数据的转发,只负责一些控制管理以及转发表的生 成等功能,从成本上考虑一般上选用的CPU的性能不是很高,但是转发表 的形成是最关键的,如果由于某种原因影响了 CPU的转发表的形成,后果 将非常严重。目前以太网交换机的三层路由表中的主机路由是以IP进行索引的,主 要是由ARP表和MAC表共同形成的,ARP表条目的主要内容是IP—>MAC , MAC表条目的主要内容是MAC—>PORT,那么将这两项综合在一起,就是 IP—>MAC—〉PORT,这就是一条主机直连路由的主要组成部分。形成了这 条路由,对于目的IP地址为这个地址的数据包或者路由下一跳为这个IP地 址的数据包就可以根据这个转发表项直接转发到相应的端口 。从上面的分析中可以看出,三层以太网交换机形成主才贿由主要需要两 个元素, 一个是ARP, —个是MAC。假设缺少ARP,只有MAC,那么缺 少三层IP的相关信息,根本形成不了路由。假设只有ARP,而没有MAC, 怎么办呢,没有MAC,那就没有二层出口信息,但是可以根据ARP建立一 条主机路由,目的IP地址为这个IP地址的数据包在路由表中能够查到这个 转发条目,只是出口不对。在传统的做法中,在有ARP没有MAC的情况 下,交换机会建立一条路由,出口是指向CPU,也就是说如果有目的IP地 址为这个地址的数据包,经过路由查找以后,会转发到CPU,由CPU对该 数据包进行处理。上面讲的三层以太网交换机在有ARP没有MAC的情况下传统的方法 是将路由的出口建立为CPU,其实这种方法有非常大的弱点,假设某条数 据流目的IP为交换机直连网段内的IP地址,并且数据流流量很大,但是刚 好这个时候交换机处于已经学习到了 ARP,但是还没有学习到MAC的阶段, 这个时候路由建立的出口是指向CPU的,那么这个很大的流量将全部冲到 CPU,如果CPU处理能力一般,但沖到CPU的流量很大,那么CPU可能 一直忙于处理这些冲到CPU的数据包,没有时间和机会去学习目的IP所对 应的设备的MAC,没有机会修改这条指向CPU的路由,这样将会形成恶性 循环,导致这条路由长时间不能正常建立,导致长时间这样的数据流冲击 CPU,还会导致应该送到CPU的其他协议包的正常收发和处理,还会导致 长时间占用CPU而其他事件得不到正常处理等等,后果非常严重。本发明 提供了 一种方法可以避免这些问题。发明内容本发明要解决的技术问题是提供一种三层以太网交换机主机路由的处 理方法,防止三层交换机在有某个直连主机的ARP,而没有该主机的MAC 时,目的IP为该主机IP地址的数据包冲到CPU,而造成CPU无法处理其 他数据包而影响交换机运行。为了解决上述技术问题,本发明提供了 一种三层以太网交换机直连主机 路由的处理方法,包括以下步骤(a) 交换机收到某个设备发出的地址解析协议包,所述地址解析协议 以下简称ARP,从该ARP包中学习该设备的ARP信息,根据ARP信息中 的IP地址得到对应的媒体访问控制地址,所述媒体访问控制以下简称MAC;(b) 交换机根据所述MAC地址查找其上的MAC表,如杲没有学习到 该设备的MAC地址,则添加该IP地址的直连路由,使交换机通过该直连路
由转发报文时对报文的处理为丢弃。进一步地,上迷方法还可具有以下特点所述使交换机对报文处理为丢 弃的直连路由的出口为空,或出口为交换机不存在的端口,或给该直连路由 置上丢弃标志。进一步地,上述方法还可具有以下特点在交换机上建立一 ARP保活 表,对使交换机对报文处理为丟弃的直连路由进行监控,处理过程包括以下 步骤(d) 将使交换机对报文处理为丢弃的直连路由的设备的ARP信息保存 到ARP保活表中;(e) 向保活表中的设备发送ARP请求,如果收到ARP响应,执行下 一步,如果没有收到ARP响应,则老化掉该ARP信息;(f) 判断是否学习到该设备的MAC地址,如果是,更新交换机的ARP 表,如果不是返回步骤(e)。进一步地,上述方法还可具有以下特点所述步骤(e)进一步包括 定期向保活表中的设备发送ARP请求,如果没有收到ARP响应,判断是否 已经发送n次ARP请求,如果是,则老化掉该ARP信息,否则返回本步骤。进一步地,上述方法还可具有以下特点所述步骤(e)中,老化掉ARP 信息,删除交换机MAC表中使交换机对报文处理为丢弃的直连路由。进一步地,上述方法还可具有以下特点所述步骤(f)进一步包括 从收到的ARP响应中学习新的ARP信息,根据该信息查找交换机上的MAC 表,如果学习到该设备的MAC地址,则将交换机ARP表中该设备的直连 路由出口^奮改为MAC地址表中MAC地址对应的出口 ,删除保活表中该设 备的ARP信息,否则返回步骤(e)。进一步地,上述方法还可具有以下特点当交换机重新学习到某个设备 的MAC时,包括以下步骤(i)交换机收到某个设备发出的ARP包,学习到ARP信息,并学习到该设备的MAC地址;(j )交换机根据学习到的该MAC地址查找其上的ARP表,判断该MAC 地址对应的IP地址是否已经建立路由,如果已经建立路由,且判断已经建 立的直连路由出口与MAC地址表中对应的出口不相同,则将该直连路由出 口寸务改为所述MAC地址表中MAC地址对应的出口 。进一步地,上述方法还可具有以下特点如果ARP在交换;f几上没有老 化,但是MAC地址已经老化或者需要删除,则修改交换机ARP表中该设 备的直连路由,使交换机通过该直连路由转发报文时对寺艮文的处理为丟弃。进一步地,上述方法还可具有以下特点如果ARP在交换机上没有老 化,但是MAC地址老化后又重新学习到了,则在交换机ARP表中将该路 由的出口修改为MAC地址表中新学习到的MAC地址对应的出口 。进一步地,上述方法还可具有以下特点所述ARP信息包括设备IP和 MAC的对应关系。与现有技术相比较,本发明在处理交换机的直连主机路由时,如果存在 某个设备的ARP但是不存在该设备的MAC时,现有技术是将路由的出口 写成CPU,本发明是将出口写成空的,这样不会导致大量的数据包而非交 换机需要的协议包冲击CPU,造成交换机CPU忙,没有时间处理其他数据 包或者其他时间,影响交换机的正常运行。同时将这些没有MAC,但是通 过ARP建立了路由的ARP标记单独处理,定期再向该设备发送ARP请求, 这样既可以判断该设备是否已经不存在,加速老化该ARP。同时如果该设 备还存在,回应这个ARP请求的话,根据该ARP回应可以学习到该设备 MAC,加快正确的路由表的建立。附困说明

图1是本实施例学习到某设备ARP但没有学习到MAC的处理流程的示 意图2是本实施例釆用保活表的处理方法;图3是本实施例学习到某设备MAC的处理流程的示意图。
具体实施方式
下面结合附图和具体实施方式
对本发明作进一步详细描述。如杲某一时刻,交换机已经学习到了某个设备的ARP,如图1流程所示, 步骤如下步骤IIO,交换机收到某个设备发出的ARP包,从该ARP包中学习到 该设备ARP信息,根据ARP信息中的IP地址得到对应的MAC地址;步骤120,交换才M艮据得到的该设备的MAC地址查找交换机上的MAC 表,判断是否学习到该设备的MAC地址,如杲是,则根据该表中MAC地 址所对应的出口添加该IP地址的直连路由,如果没有学习到,则为该IP地 址添加一条出口为空的直连路由。交换机从收到的ARP包中取出源MAC地址,并得到收到该数据包的端 口号即ARP包从自己的哪个端口收到,两者构成一个MAC表,这就是MAC 学习过程。由于ARP学习的时候只能确定三层接口,而一个三层接口是可 以有很多的二层物理端口的,只有通过MAC学习才能确定二层物理端口 , 但是ARP和MAC是两个不同的流程,分别有不同的学习老化周期,ARP 学习是通过软件完成,MAC学习则是由硬件芯片完成,因此MAC地址的 学习能快速反映端口的变化。上述"判断是否学习到该设备的MAC地址" 是指判断MAC流程是否学习到该二层物理端口地址。交换机没有学习到 MAC地址的原因有很多,可能是先于ARP老化,或者拓朴变化被删除了。除了将直连路由的出口设置为空,还可以将该直连路由的出口设为交换 机不存在的端口,或者是给该路由置上丢弃标志,此时交换机转发报文时的 处理都是丢弃。当直连路由出口为空或为不存在的端口或置上丢弃标志时,可在交换机 上建立一ARP保活表,对该直连路由进行监控,如图2流程所示,.包括以 下步骤步骤210,将直连路由出口为空(或者是直连路由出口为交换机不存在 的端口,或者是置上丢弃标志的直连路由)的IP地址的ARP信息保存到 ARP保活表中;步骤220,定期向保活表中的设备(IP地址)发送ARP请求,如果收 到该设备发出的ARP响应,则从ARP响应中获取新的ARP信息,执行步 骤240,如果没有收到ARP响应,执行下一步;步骤230,判断是否已经发送n次ARP请求,如果是,则老化掉该ARP 信息(即删除保活表中该设备对应ARP信息的表项),删除交换机MAC 表中该设备的出口为空的直连路由,如果否,返回步骤220;表项中ARP信息的主要内容是IP和MAC的对应关系。步骤240,交换机收到该设备发出的ARP响应,学习到ARP信息,根 据ARP信息的IP地址得到对应的MAC地址,查找交换机上的MAC表, 判断是否学习到该设备的MAC地址,如杲学习到,则执行下一步,否则返 回步骤220;步骤250,从保活表中取出该设备对应的ARP信息放入交换机的ARP 表中,将该设备的直连路由出口修改为MAC地址表中MAC地址对应的出 cr 。从保活表里取出ARP,就相当于从表中删除该ARP信息,即认为取消 了定期发送ARP请求。本步骤也可以先根据新的ARP信息以及新学习到的MAC更新交换机 ARP表中的信息然后再删除保活表中的信息。如果某一时刻,交换机重新根据数据包学习到了某个设备的MAC地址, 如图3流程所示,包括以下步骤步骤310,交换机收到某个设备发出的ARP包,学习到ARP信息,并 学习到该设备的MAC地址;ARP学习是一个三层的流程,此处是指之前已经学习到ARP,此时重 新根据数据包学习MAC地址。步骤320,交换机根据学习到的该MAC地址查找其上的ARP表,判断 该MAC地址对应的IP地址是否已经建立路由,如果没有建立路由,则不做 操作,如果已经建立路由,执行下一步;步骤330,判断已经建立的直连路由出口和MAC地址表中对应的出口 是否相同,如果是,不做搡作,如果路由出口和MAC地址表中对应的出口 不相同,则将路由出口修改为MAC地址表中MAC地址对应的出口 。在路由表中添加了该路由后,该路由中的ARP和MAC还存在老化问 题。ARP和MAC分别老化,有各自的老化定时器,老4t时间可以不一样, 老化过程各自独立,但是老化过程基本相同,以MAC老化为例,当交换机 在老化周期内如果没有收到该源MAC地址的数据帧,就可以将MAC地址 老化而删除掉。ARP的老化则是删除ARP信息(即IP《+MAC对应关系)。MAC的学习和老化是对应相反(学习是添加,老化是删除)、且并行 的线程,有学习就有老化。如果某个设备在建立路由过程中,ARP在交换 机上没有老化,但是MAC地址老化或者需要删除,则修改交换机ARP表 中该设备的直连路由,将路由的出口修改为空(或者是交换机不存在的端口 , 或者是置上丢弃标志)。如果这个设备的ARP在交换机上没有老化,但是MAC地址老化后又重 新学习到了,则修改交换机ARP表中的该设备的直连路由,将路由的出口 修改为MAC地址表中新学习到的MAC地址对应的出口。如果MAC第一 次学习到了,并且之前已经学习到了 ARP的话,也是这样处理的。
权利要求
1、一种三层以太网交换机直连主机路由的处理方法,包括以下步骤(a)交换机收到某个设备发出的地址解析协议包,所述地址解析协议以下简称ARP,从该ARP包中学习该设备的ARP信息,根据ARP信息中的IP地址得到对应的媒体访问控制地址,所述媒体访问控制以下简称MAC;(b)交换机根据所述MAC地址查找其上的MAC表,如果没有学习到该设备的MAC地址,则添加该IP地址的直连路由,使交换机通过该直连路由转发报文时对报文的处理为丢弃。
2、 如权利要求1所述的方法,其特征在于所述4吏交换机对报文处理 为丢弃的直连路由的出口为空,或出口为交换机不存在的端口,或给该直连 路由置上丟弃标志。
3、 如权利要求l所述的方法,其特征在于在交换机上建立一ARP保 活表,对使交换机对报文处理为丢弃的直连路由进行监控,处理过程包括以 下步骤(d) 将使交换机对报文处理为丢弃的直连路由的设备的ARP信息保存 到ARP保活表中;(e) 向保活表中的设备发送ARP请求,如果收到ARP响应,执行下 一步,如果没有收到ARP响应,则老化掉该ARP信息;(f) 判断是否学习到该设备的MAC地址,如果是,更新交换机的ARP 表,如果不是返回步骤(e)。
4、 如权利要求3所述的方法,其特征在于所述步骤(e)进一步包括 定期向保活表中的设备发送ARP请求,如果没有收到ARP响应,判断是否 已经发送n次ARP请求,如果是,则老化掉该ARP信息,否则返回本步骤。
5、 如权利要求3或4所述的方法,其特征在于所述步骤(e)中,老 化掉ARP信息,删除交换机MAC表中使交换机对报文处理为丟弃的直连 路由。
6、 如权利要求3所述的方法,其特征在于所述步骤(f)进一步包括 从收到的ARP响应中学习新的ARP信息,根据该信息查找交换机上的MAC 表,如果学习到该设备的MAC地址,则将交换机ARP表中该设备的直连 路由出口修改为MAC地址表中MAC地址对应的出口 ,删除保活表中该设 备的ARP信息,否则返回步骤(e)。
7、 如权利要求l所述的方法,其特征在于当交换机重新学习到某个 设备的MAC时,包括以下步骤(i)交换机收到某个设备发出的ARP包,学习到ARP信息,并学习到 该i殳备的MAC地址;(j )交换机根据学习到的该MAC地址查找其上的ARP表,判断该MAC 地址对应的IP地址是否已经建立路由,如果已经建立路由,且判断已经建 立的直连路由出口与MAC地址表中对应的出口不相同,则将该直连路由出 口修改为所述MAC地址表中MAC地址对应的出口 。
8、 如权利要求l所述的方法,其特征在于如果ARP在交换机上没有 老化,但是MAC地址已经老化或者需要删除,则修改交换机ARP表中该 设备的直连路由,使交换机通过该直连路由转发报文时对报文的处理为丢弃。
9、 如权利要求l所述的方法,其特征在于如果ARP在交换机上没有 老化,但是MAC地址老化后又重新学习到了,则在交换机ARP表中将该 路由的出口修改为MAC地址表中新学习到的MAC地址对应的出口 。
10、 如权利要求l所述的方法,其特征在于所述ARP信息包括设备 IP和MAC的对应关系。
全文摘要
本发明公开一种三层以太网交换机直连主机路由的处理方法,防止三层交换机在有某直连主机的ARP,而没有该主机的MAC时,目的IP为该主机IP地址的数据包冲到CPU,步骤如下(a)交换机收到某个设备发出的地址解析协议包,所述地址解析协议以下简称ARP,从该ARP包中学习该设备的ARP信息,根据ARP信息中的IP地址得到对应的媒体访问控制地址,所述媒体访问控制以下简称MAC;(b)交换机根据所述MAC地址查找其上的MAC表,如果没有学习到该设备的MAC地址,则添加该IP地址的直连路由,使交换机通过该直连路由转发报文时对报文的处理为丢弃。采用本方法不会造成由于CPU无法处理其他数据包而影响交换机运行。
文档编号H04L12/56GK101114989SQ200610099558
公开日2008年1月30日 申请日期2006年7月28日 优先权日2006年7月28日
发明者杨自鹏, 毛继平 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1