CN103457864A - 处理路由下一跳的方法、装置及网络设备 - Google Patents
处理路由下一跳的方法、装置及网络设备 Download PDFInfo
- Publication number
- CN103457864A CN103457864A CN2013103788661A CN201310378866A CN103457864A CN 103457864 A CN103457864 A CN 103457864A CN 2013103788661 A CN2013103788661 A CN 2013103788661A CN 201310378866 A CN201310378866 A CN 201310378866A CN 103457864 A CN103457864 A CN 103457864A
- Authority
- CN
- China
- Prior art keywords
- list item
- down hop
- hop list
- neighbours
- routing table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种处理路由下一跳的方法、装置及网络设备。方法包括:当确定在硬件路由表中添加对应于双栈用户的第一邻居的第一下一跳表项时,确定硬件路由表中是否存在关键字与第一下一跳表项相同的下一跳表项;如果不存在,则在硬件路由表中添加第一下一跳表项,并设置第一下一跳表项的状态标识,使得第一下一跳表项仅对应第一邻居;如果存在,则设置所述存在的下一跳表项的状态标识,使得所述存在的下一跳表项同时对应于第一邻居和第二邻居;其中,第一邻居是IPv4邻居和IPv6邻居中的一个,第二邻居是另一个。本发明技术方案可以实现IPv4邻居和IPv6邻居共享下一跳表项,解决了硬件路由表中下一跳表项资源不足的问题。
Description
技术领域
本发明涉及通信技术,尤其涉及一种处理路由下一跳的方法、装置及网络设备。
背景技术
随着互联网协议版本6(Internet Protocol Version6,简称为IPv6)的推广,互联网协议版本4(Internet Protocol Version4,简称为IPv4)/IPv6双栈用户越来越多。在IPv4/IPv6双栈应用环境下,当设备学习到IPv4邻居后,在硬件路由表的下一跳表项资源中添加对应的下一跳表项,当设备学习到IPv6邻居后,同样在硬件路由表的下一跳表项资源中添加对应的下一跳表项。
在大汇聚扁平化网络环境中,如果一个IPv4/IPv6双栈用户上线,则在大汇聚网关设备上面就要为该用户添加IPv4的下一跳表项和IPv6的下一跳表项,这将导致大汇聚网关设备的硬件路由表中下一跳表项资源的不足。
发明内容
本发明提供一种处理路由下一跳的方法、装置及网络设备,用以实现IPv4邻居和IPv6邻居共享下一跳表项,解决硬件路由表中下一跳表项资源不足的问题。
第一方面提供一种处理路由下一跳的方法,包括:
当确定在硬件路由表中添加第一下一跳表项时,确定所述硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项;所述第一下一跳表项是指对应于双栈用户的第一邻居的下一跳表项;
如果确定出所述硬件路由表中不存在关键字与所述第一下一跳表项相同的下一跳表项,在所述硬件路由表中添加所述第一下一跳表项,并设置添加到所述硬件路由表中的所述第一下一跳表项的状态标识,使得添加到所述硬件路由表中的所述第一下一跳表项仅对应所述双栈用户的第一邻居;
如果确定出所述硬件路由表中存在关键字与所述第一下一跳表项相同的下一跳表项,设置所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项的状态标识,使得所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居;
其中,所述双栈用户的第一邻居是所述双栈用户的IPv4邻居和IPv6邻居中的一个,所述双栈用户的第二邻居是所述双栈用户的IPv4邻居和IPv6邻居中的另一个。
第二方面提供一种处理路由下一跳的装置,包括:
确定模块,用于在确定在硬件路由表中添加第一下一跳表项时,确定所述硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项;所述第一下一跳表项是指对应于双栈用户的第一邻居的下一跳表项;
添加模块,用于在所述确定模块确定出所述硬件路由表中不存在关键字与所述第一下一跳表项相同的下一跳表项时,在所述硬件路由表中添加所述第一下一跳表项,并设置添加到所述硬件路由表中的所述第一下一跳表项的状态标识,使得添加到所述硬件路由表中的所述第一下一跳表项仅对应所述双栈用户的第一邻居;
第一状态设置模块,用于在所述确定模块确定出所述硬件路由表中存在关键字与所述第一下一跳表项相同的下一跳表项时,设置所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项的状态标识,使得所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居;
其中,所述双栈用户的第一邻居是所述双栈用户的IPv4邻居和IPv6邻居中的一个,所述双栈用户的第二邻居是所述双栈用户的IPv4邻居和IPv6邻居中的另一个。
第三方面提供一种网络设备,包括本发明第二方面提供的任一处理路由下一跳的装置。
本发明提供的处理路由下一跳的方法、装置及网络设备,当确定在硬件路由表中添加对应于双栈用户的第一邻居的第一下一跳表项时,首先确定硬件路由表中是否存在关键字与该第一下一跳表项相同的下一跳表项,如果确定硬件路由表中不存在关键字与该第一下一跳表项相同的下一跳表项,则在硬件路由表中添加第一下一跳表项,并通过设置第一下一跳表项的状态标识,使得第一下一跳表项仅对应于双栈用户的第一邻居;如果确定硬件路由表中存在关键字与该第一下一跳表项相同的下一跳表项,则不在硬件路由表中添加第一下一跳表项,而是直接设置硬件路由表中存在的关键字与该第一下一跳表项相同的下一跳表项的状态标识,使得硬件路由表中存在的关键字与该第一下一跳表项相同的下一跳表项同时对应于双栈用户的第一邻居和第二邻居,其中,双栈用户的第一邻居是IPv4邻居和IPv6邻居中的一个,而第二邻居是IPv4邻居和IPv6邻居中的另一个。由此可见,本发明通过设置硬件路由表中下一跳表项的状态标识,可以实现IPv4邻居和IPv6邻居共享同一下一跳表项,有利于节约硬件路由表中的下一跳表项资源,在下一跳表项资源一定的情况下有利于带动更多的用户。
附图说明
图1为本发明实施例提供的一种处理路由下一跳的方法流程图;
图2为本发明实施例提供的一种处理路由下一跳的装置结构示意图;
图3为本发明实施例提供的另一种处理路由下一跳的装置结构示意图。
具体实施方式
图1为本发明实施例提供的一种处理路由下一跳的方法流程图。如图1所示,所述方法包括:
101、当确定在硬件路由表中添加第一下一跳表项时,确定所述硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项,所述第一下一跳表项是指对应于双栈用户的第一邻居的下一跳表项;如果确定结果为否,即确定出所述硬件路由表中不存在关键字与所述第一下一跳表项相同的下一跳表项,执行102;如果确定结果为是,即确定出所述硬件路由表中存在关键字与所述第一下一跳表项相同的下一跳表项,执行103。
102、在所述硬件路由表中添加所述第一下一跳表项,并设置添加到所述硬件路由表中的所述第一下一跳表项的状态标识,使得添加到所述硬件路由表中的所述第一下一跳表项仅对应所述双栈用户的第一邻居。
103、设置所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项的状态标识,使得所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居;其中,所述双栈用户的第一邻居是所述双栈用户的IPv4邻居和IPv6邻居中的一个,所述双栈用户的第二邻居是所述双栈用户的IPv4邻居和IPv6邻居中的另一个。
本实施例提供的方法适用于IPv4/IPv6双栈应用环境下对下一跳表项的处理。本实施例中的双栈用户是指既存在IPv4地址又存在IPv6地址的用户,更有甚者,双栈用户可能存在多个IPv6临时地址。对应于双栈用户的IPv4地址的邻居,可称为IPv4邻居;对应于双栈用户的IPv6地址的邻居,可称为IPv6邻居。
在本实施例中,无论是对对应于IPv4邻居的下一跳表项的处理,还是对对应于IPv6邻居的下一跳表项的处理,其处理过程均相同。为了描述上的统一和方便,本实施例以第一邻居和第二邻居代替双栈用户的IPv4邻居和IPv6邻居,其中,第一邻居可以是双栈用户的IPv4邻居和IPv6邻居中的一个,则第二邻居就是双栈用户的IPv4邻居和IPv6邻居的另一个。具体来说,如果第一邻居是IPv4邻居,则第二邻居是IPv6邻居;如果第一邻居是IPv6邻居,则第二邻居就是IPv4邻居。同时,为了简化描述,将对应于双栈用户的第一邻居的下一跳表项称为第一下一跳表项。这里的“第一”并没有个数和先后顺序的限定,仅仅是为了便于描述。
则当确定在硬件路由表中添加第一下一跳表项时,处理路由下一跳的装置首先确定硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项。其中,无论是对应于IPv4邻居的下一跳表项还是对应于IPv6邻居的下一跳表项,所关注的字段主要包括:目的IP地址(dip),目的介质访问控制(Media Access Control,简称为MAC)地址(dmac),出口(port),出口所在的虚拟局域网(Virtual Local Area Network,简称为VlAN)和符合该下一跳表项的报文的转发行为(action)。其中,目的IP地址是邻居的IP地址;目的MAC地址是邻居的MAC地址;出口是指设备上向邻居发送报文的接口;出口所在VLAN是设备上向邻居发送报文的接口所在的VLAN。对应业务来说,dmac可以确定对应的邻居,因此下一跳表项实际关注的字段是dmac,port,vlan,action,这些字段也就是本实施例所述的下一跳表项的关键字。
具体的,处理路由下一跳的装置可以将第一下一跳表项的关键字和硬件路由表中存在的各个下一跳表项的关键字进行逐一比较,从而确定硬件路由表中是否存在关键字与第一下一跳表项相同的下一跳表项。在此说明,两个下一跳表项的关键字相同是指两个下一跳表项的dmac,port,vlan和action均相同。相应的,关键字与第一下一跳表项相同的下一跳表项是指dmac,port,vlan和action均与第一下一跳表项相同的下一跳表项。
如果确定硬件路由表中不存在关键字与第一下一跳表项相同的下一跳表项,说明硬件路由表中尚不存在该双栈用户对应于任何邻居的下一跳表项,因此,处理路由下一跳的装置在硬件路由表中添加第一下一跳表项,并设置添加到硬件路由表中的第一下一跳表项的状态标识,使得添加到硬件路由表中的第一下一跳表项仅对应于双栈用户的第一邻居。其中,因为第一下一跳表项是对应于第一邻居的下一跳表项,并且此时硬件路由表中除了新添加的对应于第一邻居的下一跳表项(即第一下一跳表项)之外,并不需要第二邻居与第一邻居共享该第一下一跳表项,因此此时第一下一跳表项仅对应于双栈用户的第一邻居。例如,如果第一邻居是IPv4邻居,则处理路由下一跳的装置可以设置第一下一跳表项的状态标识为1,标识第一下一跳表项仅对应于IPv4邻居;如果第一邻居是IPv6邻居,则处理路由下一跳的装置可以设置第一下一跳表项的状态标识为2,标识第一下一跳表项仅对应于IPv6邻居。在此说明,处理路由下一跳的装置设置第一下一跳表项的状态标识,使得第一下一跳表项仅对应于第一邻居的方式并不限于上述举例,状态标识还可以是其它的取值。
如果确定硬件路由表中存在关键字与第一下一跳表项相同的下一跳表项,说明硬件路由表中已经存在该双栈用户对应于第二邻居的下一跳表项,为了使得第一邻居和第二邻居共享同一个下一跳表项,则处理路由下一跳的装置设置硬件路由表中存在的关键字与第一下一跳表项相同的下一跳表项的状态标识,使得硬件路由表中存在的关键字与第一下一跳表项相同的下一跳表项同时对应于双栈用户的第一邻居和双栈用户的第二邻居,而不在硬件路由表中添加第一下一跳表项,使得双栈用户的第一邻居和第二邻居共享同一下一跳表项。基于上述设置第一下一跳表项的状态标识为1或2的举例,处理路由下一跳的装置可以设置硬件路由表中存在的关键字与第一下一跳表项相同的下一跳表项的状态标识为3,标识该下一跳表项同时对应于IPv4邻居和IPv6邻居,但并不限于此。
下面通过具体实施方式对本实施例提供的技术方案做进一步说明。
首先,假设仅对应于IPv4邻居的下一跳表项的状态标识为1,仅对应于IPv6邻居的下一跳表项的状态标识为2,同时对应于IPv4邻居和IPv6邻居的下一跳表项的状态标识为3。
则对于第一邻居为IPv4邻居、第二邻居为IPv6邻居的应用场景:如果硬件路由表中不存在对应于IPv6邻居的下一跳表项,则当需要在硬件路由表中添加对应于IPv4邻居的下一跳表项时,直接在硬件路由表中添加对应于IPv4邻居的下一跳表项,并设置状态标识为1;如果硬件路由表中存在对应于IPv6邻居的下一跳表项,此时该对应于IPv6邻居的下一跳表项的状态标识为2,则当需要在硬件路由表中添加对应于IPv4邻居的下一跳表项时,直接将对应于IPv6邻居的下一跳表项的状态标识设置为3,使得该下一跳表项同时对应于IPv4邻居和IPv6邻居。
则对于第一邻居为IPv6邻居、第二邻居为IPv4邻居的应用场景:如果硬件路由表中不存在对应于IPv4邻居的下一跳表项,则当需要在硬件路由表中添加对应于IPv6邻居的下一跳表项时,直接在硬件路由表中添加对应于IPv6邻居的下一跳表项,并设置状态标识为2;如果硬件路由表中存在对应于IPv4邻居的下一跳表项,此时该对应于IPv4邻居的下一跳表项的状态标识为1,则当需要在硬件路由表中添加对应于IPv6邻居的下一跳表项时,直接将对应于IPv4邻居的下一跳表项的状态标识设置为3,使得该下一跳表项同时对应于IPv4邻居和IPv6邻居。
下面简单介绍几种确定需要在硬件路由表中添加第一下一跳表项的场景:
例如,当学习到第一邻居时,确定需要在硬件路由表中添加对应于第一邻居的下一跳表项(即所述的第一下一跳表项)。
又例如,当第一邻居的报文转发行为由丢弃(dorp)变为转发(fwd)时,确定需要在硬件路由表中添加对应于第一邻居的下一跳表项(即所述的第一下一跳表项)。
在本实施例中,通过设置硬件路由表中下一跳表项的状态标识,可以实现IPv4邻居和IPv6邻居共享同一下一跳表项,有利于节约硬件路由表中的下一跳表项资源,在下一跳表项资源一定的情况下有利于带动更多的用户,尤其可以满足大汇聚场景的需求。
进一步,本实施例提供的处理路由下一跳的方法除了包括添加下一跳路由表项之外,还包括下一跳路由表项的更新、删除等操作。下面分别对更新和删除下一跳表项的过程进行说明。
对于下一跳表项的更新,触发对下一跳表项进行更新的因素很多,不同因素触发的更新处理并不相同。例如,触发对下一跳表项进行更新的因素包括:邻居的MAC地址发生变更,设备上发往邻居的报文的出口(port)发生变更,出口所在线卡的ID(vid)发生变更,报文转发行为(action)发生变更,等等。下面以对第一下一跳表项进行更新为例,针对不同的触发因素分别进行说明。
当确定第一邻居的MAC地址发生变更时,直接将硬件路由表中第一下一跳表项中的目的MAC地址更新为第一邻居的变更后的目的MAC地址。
当确定向第一邻居发送报文的接口发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口更新为所述变更后的接口。
当确定向第一邻居发送报文的接口所在线卡的ID发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口所在线卡的ID更新为所述接口所在线卡的变更后的ID。
当确定第一邻居的报文转发行为由转发变更为丢弃时,获取所述第一下一跳表项的状态标识;如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应所述双栈用户的第一邻居,则直接从所述硬件路由表中删除所述第一下一跳表项;如果所述第一下一跳表项的状态标识标识所述第一下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居,则设置所述第一下一跳表项的状态标识,使得所述第一下一跳表项仅对应于所述双栈用户的第二邻居;如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应于所述双栈用户的第二邻居,则返回错误。
具体的,第一邻居的报文转发行为由转发变更为丢弃,说明需要将第一邻居对应的下一跳表项(即第一下一跳表项)删除。由于在本实施例中,第一下一跳表项可能同时对应于第一邻居和第二邻居,于是需要基于第一下一跳表项的状态标识对第一下一跳表项进行删除。因此,在确定第一邻居的报文转发行为由转发变更为丢弃时,处理路由下一跳的装置获取所述第一下一跳表项的状态标识;然后判断第一下一跳表项的状态标识所标识的第一下一跳表项的状态。如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应所述双栈用户的第一邻居,说明第一下一跳表项没有被第二邻居共享,于是处理路由下一跳的装置直接从所述硬件路由表中删除所述第一下一跳表项。如果所述第一下一跳表项的状态标识标识所述第一下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居,说明第一下一跳表项同时被第一邻居和第二邻居共享,虽然此时该第一下一跳表项不再对应于第一邻居,但该下一跳表项仍对应于第二邻居,于是处理路由下一跳的装置不能从硬件表项中删除该第一下一跳表项,而仅是设置第一下一跳表项的状态标识,使得第一下一跳表项仅对应于双栈用户的第二邻居。如果第一下一跳表项的状态标识标识第一下一跳表项仅对应于双栈用户的第二邻居,意味着硬件路由表中并不存在第一邻居对应的下一跳表项,但却需要删除第一邻居对应的下一跳表项,所以会发生错误。
对于下一跳表项的删除,触发对下一跳表项进行删除的因素很多,例如链路故障、表项老化等。下面以第一下一跳表项为例,说明对下一跳表项的删除过程,包括:
当确定要从所述硬件路由表中删除所述第一下一跳表项时,获取所述第一下一跳表项的状态标识;如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应所述双栈用户的第一邻居,则直接从所述硬件路由表中删除所述第一下一跳表项;如果所述第一下一跳表项的状态标识标识所述第一下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居,则设置所述第一下一跳表项的状态标识,使得所述第一下一跳表项仅对应于所述双栈用户的第二邻居;如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应于所述双栈用户的第二邻居,则返回错误。
下面通过具体实施方式对删除下一跳表项的过程做进一步说明。
首先,假设仅对应于IPv4邻居的下一跳表项的状态标识为1,仅对应于IPv6邻居的下一跳表项的状态标识为2,同时对应于IPv4邻居和IPv6邻居的下一跳表项的状态标识为3。
对于第一邻居为IPv4邻居,第二邻居为IPv6邻居的场景:当删除IPv4邻居对应的下一跳表项时,查看该下一跳表项的状态标识,如果需要删除的该IPv4邻居对应的下一跳表项的状态标识为1,说明硬件路由表中IPv4邻居对应的下一跳表项未被双栈用户的IPv6邻居共享,于是直接从硬件路由表中删除该IPv4邻居对应的下一跳表项;如果需要删除的该IPv4邻居对应的下一跳表项的状态标识为3,说明硬件路由表中该IPv4邻居对应的下一跳表项同时被双栈用户的IPv4邻居和IPv6邻居共享,则此时不能删除该下一跳表项,而是通过将该下一跳表项的状态标识修改为2,使得该下一跳表项仅对应于IPv6邻居,从而实现删除IPv4邻居对应的下一跳表项的目的;如果需要删除的该IPv4邻居对应的下一跳表项的状态标识为2,说明硬件路由表中的该下一跳表项仅对应于IPv6邻居,并未被IPv4邻居共享,所以此时删除对应于IPv4邻居的下一跳表项就会出错,于是返回错误。
对于第一邻居为IPv6邻居,第二邻居为IPv4邻居的场景:当删除IPv6邻居对应的下一跳表项时,查看该下一跳表项的状态标识,如果需要删除的该IPv6邻居对应的下一跳表项的状态标识为2,说明硬件路由表中IPv6邻居对应的下一跳表项未被双栈用户的IPv4邻居共享,于是直接从硬件路由表中删除该IPv6邻居对应的下一跳表项;如果需要删除的该IPv6邻居对应的下一跳表项的状态标识为3,说明硬件路由表中该IPv6邻居对应的下一跳表项同时被双栈用户的IPv6邻居和IPv4邻居共享,则此时不能删除该下一跳表项,而是通过将该下一跳表项的状态标识修改为1,使得该下一跳表项仅对应于IPv4邻居,从而实现删除IPv6邻居对应的下一跳表项的目的;如果需要删除的该IPv6邻居对应的下一跳表项的状态标识为1,说明硬件路由表中的该下一跳表项仅对应于IPv4邻居,并未被IPv6邻居共享,所以此时删除对应于IPv6邻居的下一跳表项就会出错,于是返回错误。
由上述可见,本实施例通过设置硬件路由表中下一跳表项的状态标识,可以实现IPv4邻居和IPv6邻居共享同一下一跳表项,有利于节约硬件路由表中的下一跳表项资源,在下一跳表项资源一定的情况下有利于带动更多的用户,尤其可以满足大汇聚场景的需求。同时,本实施例通过修改硬件路由表中下一跳表项的状态标识,实现对共享同一下一跳表项的更新和删除等操作。
图2为本发明实施例提供的一种处理路由下一跳的装置结构示意图。如图2所示,所述装置包括:确定模块21、添加模块22和第一状态设置模块23。
确定模块21,用于在确定在硬件路由表中添加第一下一跳表项时,确定所述硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项;所述第一下一跳表项是指对应于双栈用户的第一邻居的下一跳表项。
可选的,确定模块21用于确定在硬件路由表中添加第一下一跳表项,包括:确定模块21具体用于在学习到所述第一邻居时,确定要在所述硬件路由表中添加所述第一下一跳表项;和/或,在所述第一邻居的报文转发行为由丢弃变为转发时,确定要在所述硬件路由表中添加所述第一下一跳表项。
添加模块22,与确定模块21连接,用于在确定模块21确定出所述硬件路由表中不存在关键字与所述第一下一跳表项相同的下一跳表项时,在所述硬件路由表中添加所述第一下一跳表项,并设置添加到所述硬件路由表中的所述第一下一跳表项的状态标识,使得添加到所述硬件路由表中的所述第一下一跳表项仅对应所述双栈用户的第一邻居。
第一状态设置模块23,与确定模块22连接,用于在确定模块22确定出所述硬件路由表中存在关键字与所述第一下一跳表项相同的下一跳表项时,设置所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项的状态标识,使得所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居。
在本实施例中,所述双栈用户的第一邻居是所述双栈用户的IPv4邻居和IPv6邻居中的一个,所述双栈用户的第二邻居是所述双栈用户的IPv4邻居和IPv6邻居中的另一个。
在本实施例中,所述第一下一跳表项的关键字包括:目的MAC地址、出口、出口所在VLAN和转发行为,但不限于此。在此说明,两个下一跳表项的关键字相同是指两个下一跳表项的目的MAC地址、出口、出口所在VLAN和转发行为均相同。相应的,关键字与第一下一跳表项相同的下一跳表项是指目的MAC地址、出口、出口所在VLAN和转发行为均与第一下一跳表项相同的下一跳表项。
上述确定模块21、添加模块22和第一状态设置模块23用于完成第一下一跳表项的添加操作。
进一步,如图3所示,所述装置还包括:获取模块31、删除模块32、第二状态设置模块33和错误处理模块34。
获取模块31,用于在确定所述第一邻居的报文转发行为由转发变更为丢弃时或者在确定要从所述硬件路由表中删除所述第一下一跳表项时,获取所述第一下一跳表项的状态标识。可选的,获取模块31与第一状态设置模块23连接。
删除模块32,与获取模块31连接,用于在获取模块31获取的所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应所述双栈用户的第一邻居时,直接从所述硬件路由表中删除所述第一下一跳表项。
第二状态设置模块33,与获取模块31连接,用于在获取模块31获取的所述第一下一跳表项的状态标识标识所述第一下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居时,设置所述第一下一跳表项的状态标识,使得所述第一下一跳表项仅对应于所述双栈用户的第二邻居。
错误处理模块34,与获取模块31连接,用于在获取模块31获取的所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应于所述双栈用户的第二邻居时,返回错误。
上述获取模块31、删除模块32、第二状态设置模块33和错误处理模块34用于在第一邻居的报文转发行为由转发变更为丢弃时,完成对第一下一跳表项的更新操作。或者,上述获取模块31、删除模块32、第二状态设置模块33和错误处理模块34用于在需要从硬件路由表中删除第一下一跳表项时,完成对第一下一跳表项的删除操作。
进一步,如图3所示,所述装置还包括:更新模块35。更新模块35,用于在确定所述第一邻居的MAC地址发生变更时,将所述硬件路由表中所述第一下一跳表项中的目的MAC地址更新为所述第一邻居的变更后的MAC地址;或者,在确定向所述第一邻居发送报文的接口发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口更新为所述变更后的接口;或者,在确定向所述第一邻居发送报文的接口所在线卡的ID发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口所在线卡的ID更新为所述接口所在线卡的变更后的ID。可选的,更新模块34与添加模块22连接。
上述更新模块35具体完成由其它因素引起的第一下一跳表现的更新操作。
本实施例提供的处理路由下一跳的装置的各功能模块可用于执行图1所示方法实施例的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例提供的处理路由下一跳的装置,通过设置硬件路由表中下一跳表项的状态标识,可以实现IPv4邻居和IPv6邻居共享同一下一跳表项,有利于节约硬件路由表中的下一跳表项资源,在下一跳表项资源一定的情况下有利于带动更多的用户。
本发明实施例提供一种网络设备,包括上述实施例提供的处理理由下一跳的装置。本实施例提供的网络设备可以是大汇聚网络中的网关设备,但不限于此。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种处理路由下一跳的方法,其特征在于,包括:
当确定在硬件路由表中添加第一下一跳表项时,确定所述硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项;所述第一下一跳表项是指对应于双栈用户的第一邻居的下一跳表项;
如果确定出所述硬件路由表中不存在关键字与所述第一下一跳表项相同的下一跳表项,在所述硬件路由表中添加所述第一下一跳表项,并设置添加到所述硬件路由表中的所述第一下一跳表项的状态标识,使得添加到所述硬件路由表中的所述第一下一跳表项仅对应所述双栈用户的第一邻居;
如果确定出所述硬件路由表中存在关键字与所述第一下一跳表项相同的下一跳表项,设置所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项的状态标识,使得所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居;
其中,所述双栈用户的第一邻居是所述双栈用户的IPv4邻居和IPv6邻居中的一个,所述双栈用户的第二邻居是所述双栈用户的IPv4邻居和IPv6邻居中的另一个。
2.根据权利要求1所述的方法,其特征在于,还包括:
当确定所述第一邻居的报文转发行为由转发变更为丢弃时或者当确定要从所述硬件路由表中删除所述第一下一跳表项时,获取所述第一下一跳表项的状态标识;
如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应所述双栈用户的第一邻居,则直接从所述硬件路由表中删除所述第一下一跳表项;
如果所述第一下一跳表项的状态标识标识所述第一下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居,则设置所述第一下一跳表项的状态标识,使得所述第一下一跳表项仅对应于所述双栈用户的第二邻居;
如果所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应于所述双栈用户的第二邻居,则返回错误。
3.根据权利要求1所述的方法,其特征在于,还包括:
当确定所述第一邻居的介质访问控制MAC地址发生变更时,将所述硬件路由表中所述第一下一跳表项中的目的MAC地址更新为所述第一邻居的变更后的MAC地址;或者
当确定向所述第一邻居发送报文的接口发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口更新为所述变更后的接口;或者
当确定向所述第一邻居发送报文的接口所在线卡的标识ID发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口所在线卡的ID更新为所述接口所在线卡的变更后的ID。
4.根据权利要求1或2或3所述的方法,其特征在于,所述确定在硬件路由表中添加第一下一跳表项,包括:
当学习到所述第一邻居时,确定要在所述硬件路由表中添加所述第一下一跳表项;和/或
当所述第一邻居的报文转发行为由丢弃变为转发时,确定要在所述硬件路由表中添加所述第一下一跳表项。
5.根据权利要求1或2或3所述的方法,其特征在于,所述第一下一跳表项的关键字包括:目的MAC地址、出口、出口所在虚拟局域网VLAN和转发行为。
6.一种处理路由下一跳的装置,其特征在于,包括:
确定模块,用于在确定在硬件路由表中添加第一下一跳表项时,确定所述硬件路由表中是否存在关键字与所述第一下一跳表项相同的下一跳表项;所述第一下一跳表项是指对应于双栈用户的第一邻居的下一跳表项;
添加模块,用于在所述确定模块确定出所述硬件路由表中不存在关键字与所述第一下一跳表项相同的下一跳表项时,在所述硬件路由表中添加所述第一下一跳表项,并设置添加到所述硬件路由表中的所述第一下一跳表项的状态标识,使得添加到所述硬件路由表中的所述第一下一跳表项仅对应所述双栈用户的第一邻居;
第一状态设置模块,用于在所述确定模块确定出所述硬件路由表中存在关键字与所述第一下一跳表项相同的下一跳表项时,设置所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项的状态标识,使得所述硬件路由表中存在的关键字与所述第一下一跳表项相同的下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居;
其中,所述双栈用户的第一邻居是所述双栈用户的IPv4邻居和IPv6邻居中的一个,所述双栈用户的第二邻居是所述双栈用户的IPv4邻居和IPv6邻居中的另一个。
7.根据权利要求6所述的装置,其特征在于,还包括:
获取模块,用于在确定所述第一邻居的报文转发行为由转发变更为丢弃时或者在确定要从所述硬件路由表中删除所述第一下一跳表项时,获取所述第一下一跳表项的状态标识;
删除模块,用于在所述第一获取模块获取的所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应所述双栈用户的第一邻居时,直接从所述硬件路由表中删除所述第一下一跳表项;
第二状态设置模块,用于在所述第一获取模块获取的所述第一下一跳表项的状态标识标识所述第一下一跳表项同时对应于所述双栈用户的第一邻居和所述双栈用户的第二邻居时,设置所述第一下一跳表项的状态标识,使得所述第一下一跳表项仅对应于所述双栈用户的第二邻居;
错误处理模块,用于在所述第一获取模块获取的所述第一下一跳表项的状态标识标识所述第一下一跳表项仅对应于所述双栈用户的第二邻居时,返回错误。
8.根据权利要求6所述的装置,其特征在于,还包括:
更新模块,用于在确定所述第一邻居的介质访问控制MAC地址发生变更时,将所述硬件路由表中所述第一下一跳表项中的目的MAC地址更新为所述第一邻居的变更后的MAC地址;或者,在确定向所述第一邻居发送报文的接口发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口更新为所述变更后的接口;或者,在确定向所述第一邻居发送报文的接口所在线卡的标识ID发生变更时,将所述硬件路由表中所述第一下一跳表项中的出口所在线卡的ID更新为所述接口所在线卡的变更后的ID。
9.根据权利要求6或7或8所述的装置,其特征在于,所述确定模块用于确定在硬件路由表中添加第一下一跳表项,包括:
所述确定模块具体用于在学习到所述第一邻居时,确定要在所述硬件路由表中添加所述第一下一跳表项,和/或,在所述第一邻居的报文转发行为由丢弃变为转发时,确定要在所述硬件路由表中添加所述第一下一跳表项。
10.根据权利要求6或7或8所述的装置,其特征在于,所述第一下一跳表项的关键字包括:目的MAC地址、出口、出口所在虚拟局域网VLAN和转发行为。
11.一种网络设备,其特征在于,包括权利要求6-10任一项所述的处理路由下一跳的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310378866.1A CN103457864B (zh) | 2013-08-27 | 2013-08-27 | 处理路由下一跳的方法、装置及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310378866.1A CN103457864B (zh) | 2013-08-27 | 2013-08-27 | 处理路由下一跳的方法、装置及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103457864A true CN103457864A (zh) | 2013-12-18 |
CN103457864B CN103457864B (zh) | 2016-12-28 |
Family
ID=49739835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310378866.1A Active CN103457864B (zh) | 2013-08-27 | 2013-08-27 | 处理路由下一跳的方法、装置及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103457864B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516387A (zh) * | 2015-12-09 | 2016-04-20 | 上海斐讯数据通信技术有限公司 | 一种基于跳表的mac表项检索方法及*** |
CN113364692A (zh) * | 2021-06-02 | 2021-09-07 | 烽火通信科技股份有限公司 | 双平面模式下的路由内存优化方法和路由内存优化装置 |
CN117651029A (zh) * | 2024-01-29 | 2024-03-05 | 深圳市新蕾电子有限公司 | 下一跳资源的更新方法、装置、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060140213A1 (en) * | 2004-12-23 | 2006-06-29 | Sun-Young Hwang | Tunneling method and apparatus for multicasting between IPv4 network and IPv6 network |
CN101582851A (zh) * | 2009-06-12 | 2009-11-18 | 中兴通讯股份有限公司 | 一种实现双栈路由器上共享路由容量的方法和*** |
CN103078796A (zh) * | 2013-01-28 | 2013-05-01 | 杭州华三通信技术有限公司 | 一种路由计算方法和设备 |
-
2013
- 2013-08-27 CN CN201310378866.1A patent/CN103457864B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060140213A1 (en) * | 2004-12-23 | 2006-06-29 | Sun-Young Hwang | Tunneling method and apparatus for multicasting between IPv4 network and IPv6 network |
CN101582851A (zh) * | 2009-06-12 | 2009-11-18 | 中兴通讯股份有限公司 | 一种实现双栈路由器上共享路由容量的方法和*** |
CN103078796A (zh) * | 2013-01-28 | 2013-05-01 | 杭州华三通信技术有限公司 | 一种路由计算方法和设备 |
Non-Patent Citations (1)
Title |
---|
刘泽伟: "Linux平台下基于IPv4/IPv6的企业网关设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516387A (zh) * | 2015-12-09 | 2016-04-20 | 上海斐讯数据通信技术有限公司 | 一种基于跳表的mac表项检索方法及*** |
CN105516387B (zh) * | 2015-12-09 | 2019-07-05 | 上海斐讯数据通信技术有限公司 | 一种基于跳表的mac表项检索方法及*** |
CN113364692A (zh) * | 2021-06-02 | 2021-09-07 | 烽火通信科技股份有限公司 | 双平面模式下的路由内存优化方法和路由内存优化装置 |
CN117651029A (zh) * | 2024-01-29 | 2024-03-05 | 深圳市新蕾电子有限公司 | 下一跳资源的更新方法、装置、终端设备及存储介质 |
CN117651029B (zh) * | 2024-01-29 | 2024-04-19 | 深圳市新蕾电子有限公司 | 下一跳资源的更新方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103457864B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2523917C2 (ru) | Система управления связью и способ управления связью | |
CN109981493B (zh) | 一种用于配置虚拟机网络的方法和装置 | |
CN107231307B (zh) | 用于防止数据中心架构内子网间流量转接的方法、***和装置 | |
CN108141416A (zh) | 一种报文处理方法、计算设备以及报文处理装置 | |
US10567274B1 (en) | Method, system, and apparatus for proxying intra-subnet traffic across multiple interfaces within networks | |
CN103560951A (zh) | 报文处理方法及物理转发设备 | |
CN106155264B (zh) | 管理存储子***的电力消耗的计算机方法与计算机*** | |
US20180054397A1 (en) | Filtration of Network Traffic Using Virtually-Extended Ternary Content-Addressable Memory (TCAM) | |
CN103731356A (zh) | 报文处理方法及装置 | |
WO2016124105A1 (zh) | 一种媒体接入控制地址学习方法、设备和*** | |
CN103931144A (zh) | 一种在虚拟域中通信的方法、设备和*** | |
CN107995032B (zh) | 一种基于云数据中心搭建网络实验平台的方法及装置 | |
CN114650223B (zh) | 一种Kubernetes集群的网络配置方法、装置及电子设备 | |
CN114024886A (zh) | 跨资源池的网络互通方法、电子设备及可读存储介质 | |
CN104836738A (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
CN109391548A (zh) | 表项迁移方法、装置及网络通信*** | |
CN103457864A (zh) | 处理路由下一跳的方法、装置及网络设备 | |
CN104010018B (zh) | 同步组播组的方法和装置 | |
US10374899B2 (en) | Method and device for reporting OpenFLow switch capability | |
US9608915B2 (en) | Least disruptive AF assignments in TRILL LAN adjacencies | |
CN104301446A (zh) | 一种报文处理方法、交换机设备及*** | |
CN101115017A (zh) | 一种删除mac地址的方法及装置 | |
CN112333295A (zh) | 一种多路径连接方法、装置及电子设备和存储介质 | |
CN104348737A (zh) | 一种组播报文的传输方法及交换机 | |
WO2016173196A1 (zh) | 地址映射关系的学习方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS CO., LTD. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Fujian Xingwangruijie Network Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |