CN107046502B - 一种转发表生成方法及装置 - Google Patents
一种转发表生成方法及装置 Download PDFInfo
- Publication number
- CN107046502B CN107046502B CN201710157490.XA CN201710157490A CN107046502B CN 107046502 B CN107046502 B CN 107046502B CN 201710157490 A CN201710157490 A CN 201710157490A CN 107046502 B CN107046502 B CN 107046502B
- Authority
- CN
- China
- Prior art keywords
- subnet
- forwarding
- polymerization
- discrete
- unit
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种转发表生成方法及装置。本申请中,聚合设备通过发布包含有基于聚合子网所确定的分立子网的路由消息,可以使得决策设备据此生成新的转发表,并利用该新的转发表指导匹配分立子网的网络流量的正常转发,从而有效避免了在二级子网与其一级子网在网络中分立存在的情况下,匹配分立子网的网络流量出现丢包、流量的非最优路径传输以及路由环路等问题。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种转发表生成方法及装置。
背景技术
在IP(Internet Protocol,网络互连协议)资源日益短缺导致子网划分更加精细的背景下,路由聚合应运而生。比如在如图1所示的应用场景中,第一路由设备将一级子网拆分成一系列二级子网,而在进行路由发布时,第一路由设备仅向第二路由设备发布上述一级子网的路由消息,而不是尽数发布拆分所产生的二级子网的路由消息,第一路由设备所表现出的这一行为就叫做路由聚合。应用路由聚合在网络中发布路由消息的方式,不仅可以实现网络中路由设备资源的节省,还可以有效提高转发表项的查找效率,实现流量的快速转发。
然而在一些实际的应用场景中,由于网络的不合理规划、网络变迁等原因,一些二级子网可能与其一级子网在网络中分立存在,即这些分立存在的二级子网可能由其它路由设备管理,而在这一条件下,如果第一路由设备向第二路由设备发布了一级子网的路由消息,则很可能导致第二路由设备将匹配这些分立存在的二级子网的网络流量错误地转发至第一路由设备,从而导致丢包、流量的非最优路径传输以及路由环路等问题的产生。其中,为便于区分,将上述第一路由设备定义为聚合设备,一级子网定义为聚合子网;将上述第二路由设备定义为决策设备,一级子网中分立存在的二级子网定义为分立子网,一级子网中非分立存在的二级子网定义为非分立子网。
发明内容
有鉴于此,本申请提供一种转发表生成方法及装置,以在二级子网与其一级子网在网络中分立存在时,避免丢包、流量的非最优路径传输以及路由环路等问题的产生。
根据本申请第一个实施例的第一方面,提供一种转发表生成方法,应用于所述决策设备,所述方法包括:
接收聚合设备发布的路由消息,获取所述路由消息中记录的聚合子网和分立子网;
判断本地转发表中是否存在所记录的目标子网为所述分立子网的转发表项;
如果不存在,则遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,所述条件为:所记录的目标子网覆盖匹配所述分立子网;
判断所述第一转发表项中的目标子网是否为所述聚合子网;
如果是,则忽略该确定的转发表项,并继续遍历所述转发表,依据最长掩码长度匹配原则,确定满足所述条件的第二转发表项;
判断所述第二转发表项中的目标转发设备,记为标准目标转发设备,是否为所述聚合设备;
如果不是所述聚合设备,则在所述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
根据本申请第一个实施例的第二方面,提供一种转发表生成装置,应用于所述决策设备,所述装置包括:
接收单元,用于接收聚合设备发布的路由消息;
获取单元,用于获取所述路由消息中记录的聚合子网和分立子网;
分立子网判断单元,用于判断本地转发表中是否存在所记录的目标子网为所述分立子网的转发表项;
第一转发表项确定单元,用于在所述分立子网判断单元的判断结果为否时,遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,所述条件为:所记录的目标子网覆盖匹配所述分立子网;
聚合子网判断单元,用于判断所述第一转发表项中的目标子网是否为所述聚合子网;
第二转发表项确定单元,用于在所述聚合子网判断单元的判断结果为是时,忽略该确定的转发表项,并继续遍历所述转发表,依据最长掩码长度匹配原则,确定满足所述条件的第二转发表项;
聚合设备判断单元,用于判断所述第二转发表项中的目标转发设备,记为标准目标转发设备,是否为所述聚合设备;
创建单元,用于在所述聚合设备判断单元的判断结果为否时,在所述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
根据本申请第二个实施例的第一方面,提供一种转发表生成方法,应用于本申请第一个实施例第一方面所述的聚合设备,所述方法包括:
根据待发布的聚合子网、以及根据待发布的聚合子网所确定的非分立子网确定分立子网;
根据所述待发布的聚合子网和确定出的分立子网生成路由消息;
发布所生成的路由消息,以使所述决策设备根据该路由消息生成转发表。
根据本申请第二个实施例的第二方面,提供一种转发表生成装置,应用于本申请第一个实施例第二方面所述的聚合设备,所述装置包括:
确定单元,用于根据待发布的聚合子网、以及根据待发布的聚合子网所确定的非分立子网确定分立子网;
生成单元,用于根据所述待发布的聚合子网和确定出的分立子网生成路由消息;
发布单元,用于发布所生成的路由消息,以使所述决策设备根据该路由消息生成转发表。
本申请中,聚合设备通过发布包含有基于聚合子网所确定的分立子网的路由消息,可以使得决策设备据此生成新的转发表,并利用该新的转发表指导匹配分立子网的网络流量的正常转发。具体的,当本地转发表中不存在所记录的目标子网为分立子网的转发表项时,决策设备将确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配分立子网,并在第一转发表项中的目标子网为聚合子网时,忽略该确定的第一转发表项,进一步确定满足上述条件的第二转发表项;对于再次确定出的第二转发表项,决策设备将在该第二转发表项中的目标转发设备,记为标准转发设备,不是聚合设备时,创建一条可以被匹配分立子网的网络流量匹配到的、且目标转发设备为上述标准转发设备的转发表项,需要特别指出的是,为保证上述网络流量在现有的最长掩码长度匹配原则下,可以优先匹配到所创建的转发表项,而不是聚合子网所对应的转发表项,决策设备需要保证所创建的转发表项中预设目标子网的掩码长度大于聚合子网的掩码长度,并以此避免将这些匹配分立子网的网络流量错误地转发至聚合设备,从而保证了这些网络流量的正常转发。
附图说明
图1是一示例性的路由聚合的应用场景图;
图2是本申请一种转发表生成方法的第一个示例性的场景示意图;
图3是本申请一种转发表生成方法的第二个示例性的场景示意图;
图4是本申请一种转发表生成方法的一个流程图;
图5是本申请一种转发表生成方法的另一个流程图;
图6是本申请一种转发表生成方法的第三个示例性的场景示意图;
图7是本申请一种转发表生成装置的第一个实施例的第一种结构图;
图8是本申请一种转发表生成装置的第一个实施例的第二种结构图;
图9是本申请一种转发表生成装置的第二个实施例的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在一些实际的应用场景中,由于网络的不合理规划、网络变迁等原因,一些二级子网可能与其一级子网在网络中分立存在,即这些分立存在的二级子网可能由其它路由设备管理,而在这一条件下,如果第一路由设备向第二路由设备发布了一级子网的路由消息,则很可能导致第二路由设备将匹配这些分立存在的二级子网的网络流量错误地转发至第一路由设备,从而导致丢包、流量的非最优路径传输以及路由环路等问题的产生。
参见图2,图2是本申请一种转发表生成方法的第一个示例性的场景示意图。该场景图中,二级子网4被迁移至第三路由设备进行管理,且第三路由设备同时对一级子网2进行管理。在实际的组网环境中,由于这些路由设备很可能并不是由同一设备商统一管理的,比如第三路由设备并不同于第一路由设备经由我方管理,如果在我方管理的第一路由设备向第二路由设备发布了一级子网路由消息的情况下,第三路由设备未向第二路由设备发出发布二级子网4的路由消息,则在这一条件下,在第二路由设备的本地转发表中,可能仅有一条转发表项可供匹配二级子网4的网络流量进行匹配,即一级子网1所对应的路由表项,此时,第二路由设备将把匹配二级子网4的网络流量转发至第一路由设备;这种情况下,由于第一路由设备本地的转发表中并没有可供上述网络流量进行匹配的转发表项,所以可能会有两种情况发生:其一,如果第一路由设备预先被配置为黑洞路由,则第一路由设备在接收到无匹配表项的网络流量时,会直接对这一流量执行丢包处理,从而导致网络流量的丢失;其二,如果第一路由设备未被配置为黑洞路由,则第一路由设备会将这一网络流量返回至第二路由设备,从而导致这一网络流量在第一路由设备与第二路由设备之间循环转发,导致路由环路现象的产生,这一现象的产生不仅会在一段时间内破坏网络通信的秩序,也最终会导致这一流量的丢失。
需要指出的是,导致第二路由设备的本地转发表中不存在可供匹配二级子网4的网络流量进行匹配的转发表项的原因有很多种,本文仅以第三路由设备未向第二路由设备发出二级子网4的路由消息这一示例性的原因进行说明,但并不限定于这一示例性的原因,特此说明,下文不再赘述。
参见图3,图3是本申请一种转发表生成方法的第二个示例性的场景示意图。在图2的基础上,图3所示的场景图中第一路由设备与第三路由设备之间存在有运营商部署的物理链路。同样在我方管理的第一路由设备向第二路由设备发布了一级子网的路由消息,而第三路由设备未向第二路由设备发布二级子网4的路由消息的条件下,第二路由设备同样会把匹配二级子网4的网络流量转发至第一路由设备;这一条件下,第一路由设备会进一步将这一流量转发至对该流量进行管理的第三路由设备,并最终由第三路由设备将这一流量发往二级子网4下该流量的目的主机。我们将上述现象称为流量的非最优路径传输,而该流量的最优路径应该是从第二路由设备开始直接经由第三路由设备对该流量进行转发,并送往第三路由设备直接管理的二级子网4下该流量的目的主机。流量的非最优路径传输不仅延长了流量的网络传输时长,也加重了处于最优路径以外设备的流量转发负担。
有鉴于此,本申请提供一种转发表生成方法及装置,以在二级子网与其一级子网在网络中分立存在时,避免丢包、流量的非最优路径传输以及路由环路等问题的产生。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
在下述实施例中,将上述第一路由设备定义为聚合设备,一级子网定义为聚合子网;将上述第二路由设备定义为决策设备,一级子网中分立存在的二级子网定义为分立子网,一级子网中非分立存在的二级子网定义为非分立子网。
参见图4,图4是本申请一种转发表生成方法的一个流程图,该流程图可以包括以下步骤:
步骤401:接收聚合设备发布的路由消息,获取上述路由消息中记录的聚合子网和分立子网;
本方法实施例涉及决策设备和聚合设备,并应用于其中的决策设备。
本方法实施例中,决策设备所获取的聚合子网和分立子网可以来自于聚合设备所发布的一条路由消息,也可以来自于聚合设备所发布的多条路由消息,这具体与聚合设备发布路由消息时所使用的协议有关,对此,我们将在下述实施例中给予说明,在此不再赘述。
本方法实施例中,决策设备所获取的聚合子网和分立子网具有唯一的对应关系,在下文的描述中,我们不再强调聚合子网为与上述分立子网相对应的聚合子网,或者分立子网是与上述聚合子网相对应的分立子网,在此给予对于这一默认情况的声明,下文不再赘述。
本方法实施例中,根据本方法的实际应用场景,同一聚合子网可以唯一对应一个分立子网,也可以同时对应多个分立子网,本文仅以聚合子网唯一对应一个分立子网的示例进行说明。
本方法实施例中,决策设备可以在获取上述聚合子网后,根据所获取到的聚合子网创建一条以该聚合子网为目标子网的转发表项。
步骤402:判断本地转发表中是否存在所记录的目标子网为上述分立子网的转发表项;如果不存在,则执行步骤403。
本方法实施例中,如果本地转发表中存在所记录的目标子网为上述分立子网的转发表项,则可结束本次转发表的生成过程。即:在接收到匹配分立子网的网络流量后,按照这一已经存在的转发表项进行流量转发,即可实现该流量的正常转发。这一情形对应上述图2和图3中第三路由设备已经向第二路由设备发布了二级子网4路由消息的情况,此处的二级子网4即为实施例中的分立子网,第二路由设备即为实施例中的决策设备,而第三路由设备即为实施例中除聚合设备和决策设备以外的任意一台对分立子网进行管理的路由设备。其中,实现流量的正常转发是指实现流量的最优路径转发,且在流量传输过程中不会引发丢包、路由环路等问题的产生。
步骤403:遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配上述分立子网;
本方法实施例中,决策设备会在本地转发表中不存在所记录的目标子网为上述分立子网的转发表项时,执行该步骤403。转发表中的转发表项一般按照从上至下目标子网的掩码长度逐渐减小的顺序进行排列,这样的排列规律有助于在现有的最长掩码长度匹配原则下实现表项的有序匹配、以及匹配时长的最小化。
本方法实施例中,假设分立子网为1.1.1.0/24,则覆盖匹配这一分立子网的目标子网可以为1.1.0.0/16。
步骤404:判断第一转发表项中的目标子网是否为上述聚合子网;如果是,则执行步骤405。
本方法实施例中,如果第一转发表项中该目标子网不是上述聚合子网,则结束本次转发表的生成过程。本领域技术人员可理解的是,如果第一转发表项中该目标子网不是聚合子网,则在本方法流程所确定的第一转发表项中,该目标子网的子网掩码的长度一定大于聚合子网的子网掩码的长度,且由路由学习可知,该表项中的目标转发设备一定为管理分立子网的路由设备,即按照第一转发表项对匹配分立子网的网络流量进行转发可以实现该网络流量的正常转发。
步骤405:忽略该确定的转发表项,并继续遍历上述转发表,依据最长掩码长度匹配原则,确定满足上述条件的第二转发表项;
本方法实施例中,如果第一转发表项中的目标子网不是上述聚合子网,则在当前转发表中,该聚合子网所对应的转发表项是本地转发表中匹配分立子网的网络流量首个匹配到的转发表项,在现有技术中,决策设备会依照该表项将上述流量转发至聚合设备,从而导致该流量的丢失,其中,上述聚合子网所对应的转发表项是指以该聚合子网为目标子网的转发表项。为此,在本申请转发表的生成过程中,我们需要忽略该确定的转发表项,并继续遍历上述转发表,确定满足上述条件的第二转发表项,并执行后续步骤,这样做的目的将在以下步骤中加以说明,在此暂不赘述。
需要指出的是,如果在本地转发表中不能确定出上述第二转发表项,则为上述流量执行丢包处理。在本方法实施例的一种实现方式中,在这一条件下,决策设备可以在本地转发表中创建一默认路由表项,并指定该表项中的动作为:对匹配该表项的流量执行丢包处理,其中,该默认路由表项的目标子网可以为0.0.0.0/0。
步骤406:判断第二转发表项中的目标转发设备,记为标准目标转发设备,是否为上述聚合设备;如果不是上述聚合设备,则执行步骤407。
本方法实施例中,如果第二转发表项中的目标转发设备是上述聚合设备,则结束本次转发表的生成过程。在这一情况下,第二转发表项中的目标转发设备与聚合设备所对应的转发表项中的目标转发设备都为聚合设备,同样由路由学习可知,此时,聚合子网所对应的转发表项同样可以指导匹配分立子网的网络流量的正常转发,即在这一条件下,决策设备继续使用当前本地转发表即可实现匹配分立子网的网络流量的正常转发。
步骤407:在上述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
本方法实施例中,如果第二转发表项中的目标转发设备,记为标准目标转发设备,不是上述聚合设备,则须执行本步骤407。这时因为如果为匹配分立子网的网络流量匹配聚合子网所对应的转发表项,依然会致使匹配分立子网的网络流量丢失,所以在这一情况下,通过基于已经确定的第二转发表项创建一可供上述网络流量匹配的、预设目标子网的掩码长度大于聚合子网的掩码长度的转发表项,上述网络流量便可以依照最长掩码长度匹配原则优先匹配到该创建的转发表项,而不是聚合子网所对应的转发表项,从而保证这一网络流量的正常转发。
参见图5,图5是本申请一种转发表生成方法的另一个流程图,该流程图可以包括以下步骤:
步骤501:根据待发布的聚合子网、以及根据待发布的聚合子网所确定的非分立子网确定分立子网;
本方法实施例应用于上述方法实施例中所涉及的聚合设备。
本方法实施例中,在确定上述待发布的聚合子网后,聚合设备可根据该待发布的聚合子网以及本设备管理的该聚合子网下的非分立子网确定分立子网。具体的,聚合设备可以通过比较聚合子网与非分立子网集合所覆盖的范围来确定出分立子网,比如:在聚合子网为1.1.0.0/16,非分立子网为1.1.0.0/24、1.1.2.0/24、1.1.3.0/24、……、1.1.254.0/24、1.1.255.0/24的情况下,通过子网所覆盖范围的比较,可以确定出分立子网为1.1.1.0/24。
步骤502:根据上述待发布的聚合子网和确定出的分立子网生成路由消息;
本方法实施例中,当聚合设备所使用的协议为BGP(Border Gateway Protocol,边界网关协议)或者ISIS(Intermediate system to intermediate system,中间系统到中间系统)协议时,由于以上协议均使用TLV(type、length、value,类型、长度、值)对报文进行封装,故可以通过直接在报文中定义一新的TLV的方式在该定义的TLV中标明上述聚合子网与分立子网,并对该报文,即上述路由消息,进行发布。
当聚合设备所使用的协议为OSPF(Open Shortest Path First,开放式最短路径优先)协议时,上述聚合子网与分立子网可以通过多个同类的LSA(Link-State Advertise,链路状态广播)报文,即上述路由消息,进行发布。比如,聚合设备可以在其在先发布的、包含有上述分立网段的OSPF报文中添加一标记,这一标记表明包含上述聚合子网的报文是带有该标记报文的同类报文,则在聚合设备接收到上述带有该标记的报文后,聚合设备便可以通过查找上述带有该标记报文的同类报文的方式,确定聚合设备在后发布的、包含有上述聚合子网的报文,从而获取聚合子网和分立子网。其中,上述同类报文是指:报文的发送者相同、类型相同(以及区域相同)等,上述类型可以为external、network等。
步骤503:发布所生成的路由消息,以使上述决策设备根据该路由消息生成转发表。
由以上两个方法实施例可以看出,聚合设备通过发布包含有基于聚合子网所确定的分立子网的路由消息,可以使得决策设备据此生成新的转发表,并利用该新的转发表指导匹配分立子网的网络流量的正常转发。具体的,当本地转发表中不存在所记录的目标子网为分立子网的转发表项时,决策设备将确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配分立子网,并在第一转发表项中的目标子网为聚合子网时,忽略该确定的第一转发表项,进一步确定满足上述条件的第二转发表项;对于再次确定出的第二转发表项,决策设备将在该第二转发表项中的目标转发设备,记为标准转发设备,不是聚合设备时,创建一条可以被匹配分立子网的网络流量匹配到的、且目标转发设备为上述标准转发设备的转发表项,需要特别指出的是,为保证上述网络流量在现有的最长掩码长度匹配原则下,可以优先匹配到所创建的转发表项,而不是聚合子网所对应的转发表项,决策设备需要保证所创建的转发表项中预设目标子网的掩码长度大于聚合子网的掩码长度,并以此避免将这些匹配分立子网的网络流量错误地转发至聚合设备,从而保证了这些网络流量的正常转发。
以下将通过一个实施例对申请方法进行详细描述,与上述方法实施例不同的是,本实施例将结合具体示例对部分步骤进行说明,具有较强的实际操作意义,具体的,本实施例可以包括以下步骤:
步骤1:接收聚合设备发布的路由消息,获取上述路由消息中记录的聚合子网和分立子网;
参见图6,图6是本申请一种转发表生成方法的第三个示例性的场景示意图。本实施例应用于图6中的决策设备。参见图6可知,本实施例中的聚合子网为1.1.0.0/16,该聚合子网下的非分立子网为1.1.0.0/18、1.1.64.0/18以及1.1.128.0/18,分立子网为1.1.192.0/18。为更好的对本申请方法进行阐述,本实施例可假设:聚合设备向决策设备发布了包含聚合子网1.1.0.0/16以及分立子网1.1.192.0/18的路由消息,而由于一些原因,第三路由设备仅向决策设备发布了另一一级子网1.0.0.0/8的路由消息,而未发布分立子网1.1.192.0/18的路由消息,则在这一假设下,决策设备的当前本地转发表可以表示为如下表1的形式:
目标子网 | 目标转发设备 |
1.1.0.0/16 | 聚合设备 |
1.0.0.0/8 | 第三路由设备 |
表1
本实施例中,聚合设备在获取到上述聚合子网之后,已经根据该聚合子网创建一条以该聚合子网为目标子网的转发表项,即表1中的第一条转发表项。
步骤2:判断本地转发表中是否存在所记录的目标子网为上述分立子网的转发表项;如果不存在,则执行步骤3。
本实施例中,根据步骤1中所作的假设,决策设备将判断出本地转发表中不存在所记录的目标子网为上述分立子网的转发表项,并执行步骤3。
步骤3:遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配上述分立子网;
本实施例中,根据步骤1中所作的假设,决策设备所确定的第一转发表项即为表1中的第一条转发表项:聚合子网所对应的转发表项。
步骤4:判断第一转发表项中的目标子网是否为上述聚合子网;如果是,则执行步骤5。
本实施例中,根据步骤1中所作的假设,决策设备将在判断出上述第一转发表项中该目标子网是聚合子网后,执行步骤5。
步骤5:忽略该确定的转发表项,并继续遍历上述转发表,依据最长掩码长度匹配原则,确定满足上述条件的第二转发表项;
本实施例中,根据步骤1中所作的假设,决策设备将忽略上述第一转发表项,并继续遍历上述转发表,依据最长掩码长度匹配原则,确定一条所记录的目标子网覆盖匹配上述分立子网的第二转发表项,该确定出的第二转发表项即为表1中的第二条转发表项。
步骤6:判断第二转发表项中的目标转发设备,记为标准目标转发设备,是否为上述聚合设备;如果不是上述聚合设备,则执行步骤7。
本实施例中,根据步骤1中所作的假设,决策设备将在判断出上述第二转发表项中的目标转发设备,记为标准目标转发设备,不是上述聚合设备后,执行步骤7。
步骤7:在上述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
本实施例中,若假设决策设备所创建的转发表项中预设目标子网为1.1.128.0/17,则在决策设备创建上述表项之后,决策设备在本地所生成的转发表可以表示为如下表2所示的形式:
目标子网 | 目标转发设备 |
1.1.128.0/17 | 第三路由设备 |
1.1.0.0/16 | 聚合设备 |
1.0.0.0/8 | 第三路由设备 |
表2
本实施例中,假设在上述表2生成后,决策设备接收到的一条匹配分立子网1.1.192.0/18的网络流量,且该流量中记录的目的主机为1.1.193.0/18,则决策设备在遍历上述表2时,会优先为该流量匹配表2中新创建的、目的转发设备为第三路由设备的第一条转发表项,而不是目的转发设备为聚合设备的第二条转发表项,故可以避免丢包、环路等问题的产生,实现这一流量的正常转发。
同样,在图3所示的场景中,第二路由设备应用本申请方法新生成的本地转发表同样可以表示为如上表2所示的形式,则此时,第二路由设备会根据优先命中的第一条转发表项将接收到的流量直接转发至第三路由设备,从而避免了流量的非最优路径传输,实现该流量的正常转发,其中,上述第二路由设备即为上述实施例中的决策设备。
由以上实施例可以看出,聚合设备通过发布包含有基于聚合子网所确定的分立子网的路由消息,可以使得决策设备据此生成新的转发表,并利用该新的转发表指导匹配分立子网的网络流量的正常转发。具体的,当本地转发表中不存在所记录的目标子网为分立子网的转发表项时,决策设备将确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配分立子网,并在第一转发表项中的目标子网为聚合子网时,忽略该确定的第一转发表项,进一步确定满足上述条件的第二转发表项;对于再次确定出的第二转发表项,决策设备将在该第二转发表项中的目标转发设备,记为标准转发设备,不是聚合设备时,创建一条可以被匹配分立子网的网络流量匹配到的、且目标转发设备为上述标准转发设备的转发表项,需要特别指出的是,为保证上述网络流量在现有的最长掩码长度匹配原则下,可以优先匹配到所创建的转发表项,而不是聚合子网所对应的转发表项,决策设备需要保证所创建的转发表项中预设目标子网的掩码长度大于聚合子网的掩码长度,并以此避免将这些匹配分立子网的网络流量错误地转发至聚合设备,从而保证了这些网络流量的正常转发。
与前述一种转发表生成方法的实施例相对应,本申请还提供了一种转发表生成装置的实施例。
参见图7,图7是本申请一种转发表生成装置的第一个实施例的第一种结构图,该装置应用于决策设备,可以包括:接收单元710、获取单元720、分立子网判断单元730、第一转发表项确定单元740、聚合子网判断单元750、第二转发表项确定单元760、聚合设备判断单元770、创建单元780。
其中,接收单元710,用于接收聚合设备发布的路由消息;
获取单元720,用于获取上述路由消息中记录的聚合子网和分立子网;
分立子网判断单元730,用于判断本地转发表中是否存在所记录的目标子网为上述分立子网的转发表项;
第一转发表项确定单元740,用于在上述分立子网判断单元的判断结果为否时,遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配上述分立子网;
聚合子网判断单元750,用于判断第一转发表项中的目标子网是否为上述聚合子网;
第二转发表项确定单元760,用于在上述聚合子网判断单元的判断结果为是时,忽略该确定的转发表项,并继续遍历上述转发表,依据最长掩码长度匹配原则,确定满足上述条件的第二转发表项;
聚合设备判断单元770,用于判断第二转发表项中的目标转发设备,记为标准目标转发设备,是否为上述聚合设备;
创建单元780,用于在聚合设备判断单元的判断结果为否时,在上述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
在本装置实施例的第一种实现方式中,上述装置还可以包括:结束单元790。
结束单元790,用于在上述分立子网判断单元的判断结果为是时,结束本次转发表的生成过程;
和/或用于在上述聚合子网判断单元的判断结果为否时,结束本次转发表的生成过程;
和/或用于在上述聚合设备判断单元的判断结果为是时,结束本次转发表的生成过程。
作为一个可选的实施例,在上述第一种实现方式中所用的“和/或”都替换为“和”的情况下,本实施例中的装置结构图可以参见图8,图8是本申请一种转发表生成装置的第一个实施例的第二种结构图。
在本装置实施例的第二种实现方式中,上述创建单元780,还可以用于:根据所获取到的聚合子网创建一条以该聚合子网为目标子网的转发表项。
参见图9,图9是本申请一种转发表生成装置的第二个实施例的结构图,该装置应用于聚合设备,可以包括:确定单元910、生成单元920、发布单元930。
其中,确定单元910,用于根据待发布的聚合子网、以及根据待发布的聚合子网所确定的非分立子网确定分立子网;
生成单元920,用于根据上述待发布的聚合子网和确定出的分立子网生成路由消息;
发布单元930,用于发布所生成的路由消息,以使上述决策设备根据该路由消息生成转发表。
由以上两个装置实施例可以看出,聚合设备通过发布包含有基于聚合子网所确定的分立子网的路由消息,可以使得决策设备据此生成新的转发表,并利用该新的转发表指导匹配分立子网的网络流量的正常转发。具体的,当本地转发表中不存在所记录的目标子网为分立子网的转发表项时,决策设备将确定满足条件的第一转发表项,上述条件为:所记录的目标子网覆盖匹配分立子网,并在第一转发表项中的目标子网为聚合子网时,忽略该确定的第一转发表项,进一步确定满足上述条件的第二转发表项;对于再次确定出的第二转发表项,决策设备将在该第二转发表项中的目标转发设备,记为标准转发设备,不是聚合设备时,创建一条可以被匹配分立子网的网络流量匹配到的、且目标转发设备为上述标准转发设备的转发表项,需要特别指出的是,为保证上述网络流量在现有的最长掩码长度匹配原则下,可以优先匹配到所创建的转发表项,而不是聚合子网所对应的转发表项,决策设备需要保证所创建的转发表项中预设目标子网的掩码长度大于聚合子网的掩码长度,并以此避免将这些匹配分立子网的网络流量错误地转发至聚合设备,从而保证了这些网络流量的正常转发。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种转发表生成方法,应用于决策设备,其特征在于,所述方法包括:
接收聚合设备发布的路由消息,获取所述路由消息中记录的聚合子网和分立子网;
判断本地转发表中是否存在所记录的目标子网为所述分立子网的转发表项;
如果不存在,则遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,所述条件为:所记录的目标子网覆盖匹配所述分立子网;
判断所述第一转发表项中的目标子网是否为所述聚合子网;
如果是,则忽略该确定的转发表项,并继续遍历所述转发表,依据最长掩码长度匹配原则,确定满足所述条件的第二转发表项;
判断所述第二转发表项中的目标转发设备,记为标准目标转发设备,是否为所述聚合设备;
如果不是所述聚合设备,则在所述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果本地转发表中存在所记录的目标子网为所述分立子网的转发表项,则结束本次转发表的生成过程。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第一转发表项中的目标子网不是所述聚合子网,则结束本次转发表的生成过程。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第二转发表项中的目标转发设备是所述聚合设备,则结束本次转发表的生成过程。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所获取到的聚合子网创建一条以该聚合子网为目标子网的转发表项。
6.一种转发表生成方法,应用于聚合设备,其特征在于,所述方法包括:
根据待发布的聚合子网、以及根据待发布的聚合子网所确定的非分立子网确定分立子网;
根据所述待发布的聚合子网和确定出的分立子网生成路由消息;
发布所生成的路由消息,以使决策设备根据该路由消息生成转发表。
7.一种转发表生成装置,应用于决策设备,其特征在于,所述装置包括:
接收单元,用于接收聚合设备发布的路由消息;
获取单元,用于获取所述路由消息中记录的聚合子网和分立子网;
分立子网判断单元,用于判断本地转发表中是否存在所记录的目标子网为所述分立子网的转发表项;
第一转发表项确定单元,用于在所述分立子网判断单元的判断结果为否时,遍历转发表,依据最长掩码长度匹配原则,确定满足条件的第一转发表项,所述条件为:所记录的目标子网覆盖匹配所述分立子网;
聚合子网判断单元,用于判断所述第一转发表项中的目标子网是否为所述聚合子网;
第二转发表项确定单元,用于在所述聚合子网判断单元的判断结果为是时,忽略该确定的转发表项,并继续遍历所述转发表,依据最长掩码长度匹配原则,确定满足所述条件的第二转发表项;
聚合设备判断单元,用于判断所述第二转发表项中的目标转发设备,记为标准目标转发设备,是否为所述聚合设备;
创建单元,用于在所述聚合设备判断单元的判断结果为否时,在所述转发表中创建分立子网的一条匹配转发表项,所创建的匹配转发表项记录一预设目标子网与标准目标转发设备的对应关系,其中,预设目标子网的掩码长度大于聚合子网的掩码长度。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
结束单元,用于在所述分立子网判断单元的判断结果为是时,结束本次转发表的生成过程;
和/或用于在所述聚合子网判断单元的判断结果为否时,结束本次转发表的生成过程;
和/或用于在所述聚合设备判断单元的判断结果为是时,结束本次转发表的生成过程。
9.根据权利要求7所述的装置,其特征在于,所述创建单元,还用于:根据所获取到的聚合子网创建一条以该聚合子网为目标子网的转发表项。
10.一种转发表生成装置,应用于聚合设备,其特征在于,所述装置包括:
确定单元,用于根据待发布的聚合子网、以及根据待发布的聚合子网所确定的非分立子网确定分立子网;
生成单元,用于根据所述待发布的聚合子网和确定出的分立子网生成路由消息;
发布单元,用于发布所生成的路由消息,以使决策设备根据该路由消息生成转发表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157490.XA CN107046502B (zh) | 2017-03-16 | 2017-03-16 | 一种转发表生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157490.XA CN107046502B (zh) | 2017-03-16 | 2017-03-16 | 一种转发表生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107046502A CN107046502A (zh) | 2017-08-15 |
CN107046502B true CN107046502B (zh) | 2019-09-20 |
Family
ID=59544643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710157490.XA Active CN107046502B (zh) | 2017-03-16 | 2017-03-16 | 一种转发表生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107046502B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109005110B (zh) * | 2018-08-29 | 2021-05-28 | 新华三技术有限公司合肥分公司 | 生成聚合路由的方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7362744B2 (en) * | 2002-08-15 | 2008-04-22 | International Business Machines Corporation | Database management system and method of using it to transmit packets |
US8223667B2 (en) * | 2007-06-11 | 2012-07-17 | International Business Machines Corporation | Inferred discovery of a data communications device |
CN101227465B (zh) * | 2007-12-29 | 2010-11-03 | 北京亿阳信通软件研究院有限公司 | 一种ip地址管理方法和系统 |
CN101557341B (zh) * | 2009-05-14 | 2011-10-26 | 中兴通讯股份有限公司 | 一种基于介质访问控制转发表的报文转发方法及系统 |
US9325525B2 (en) * | 2010-12-28 | 2016-04-26 | Citrix Systems, Inc. | Systems and methods for VLAN tagging via cloud bridge |
CN102065093B (zh) * | 2010-12-31 | 2016-07-06 | 凌涛 | 酒店多媒体网络服务方法及酒店多媒体网络服务系统 |
CN102664788B (zh) * | 2012-04-05 | 2015-07-22 | 中兴通讯股份有限公司 | Mpls l3vpn中ce双归链路保护的方法及系统 |
US9838315B2 (en) * | 2015-07-29 | 2017-12-05 | Cisco Technology, Inc. | Stretched subnet routing |
-
2017
- 2017-03-16 CN CN201710157490.XA patent/CN107046502B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107046502A (zh) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11909645B2 (en) | Segment routing traffic engineering based on link utilization | |
CN105743795B (zh) | 用于广域网优化的点到多点路径计算 | |
CN107666436B (zh) | 报文转发方法及装置 | |
US9444677B2 (en) | Scalable edge node protection using IPv6 segment routing extension header | |
US7111074B2 (en) | Control method for data path load-balancing on a data packet network | |
CN105323167B (zh) | 多协议标签切换环 | |
CN105337870B (zh) | 一种路由发布方法和装置 | |
CN107968752B (zh) | 一种sid获取方法和装置 | |
CN105594167B (zh) | 转发报文的方法、控制器、转发设备和网络系统 | |
US11743204B2 (en) | Tunnel establishment method, apparatus, and system | |
CN108259341A (zh) | 一种前缀标签分配方法和sdn控制器 | |
CN108702328A (zh) | 用于穿越分段路由和mpls网络的业务的灵活路径拼接和选择的is-is扩展 | |
CN105871721A (zh) | 一种段路由处理方法、处理装置及发送装置 | |
ITRM20130571A1 (it) | Protezione di un nodo di bordo scalabile utilizzante instradamento di segmenti | |
CN105323168B (zh) | 多协议标签切换环 | |
US9237078B1 (en) | Path validation in segment routing networks | |
CN106817299B (zh) | 软件定义网络的表项生成方法和装置以及报文转发方法 | |
CN105637807B (zh) | 转发报文的方法、控制器、转发设备和网络系统 | |
CN106921579A (zh) | 基于业务功能链sfc的通信方法和装置 | |
CN107483338A (zh) | 一种确定跨域标签交换路径隧道的方法、设备和系统 | |
CN108989210A (zh) | 一种基于策略的隧道选择方法及软件定义网络控制器 | |
CN107689915A (zh) | 报文转发方法及装置 | |
CN101719868B (zh) | 一种lsp承载于te隧道的方法及装置 | |
CN105323169B (zh) | 用于多协议标签切换环的方法、设备和计算机可读存储介质 | |
US11750495B2 (en) | Congruent bidirectional segment routing tunnels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |