一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

微分段策略路由学习方法、报文转发方法及装置与流程

2022-07-22 22:50:18 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种微分段策略路由学习方法、报文转发方法及装置。


背景技术:

2.在以叶脊leaf-spine(或称为叶干)网络架构组网的分布式以太网虚拟私有网络(ethernet virtual private network,evpn)中,每台叶子leaf设备都作为下挂主机的网关,对本地站点的流量进行三层转发,缓解了网关的压力。
3.随着客户精细化访问控制的需求,同一网段的不同主机可能有不同的访问策略。如图1采用微分段策略的组网示例,例如vpn1内的ip地址为1.0.0.1的主机访问外网需要过防火墙fw1和waf(web application firewall,waf);地址为1.0.0.3的主机访问外网不需要过防火墙,直接放通;网段地址1.0.0.0/24内的其他主机访问外网,只需要过防火墙fw1等。vpn2内地址为2.0.0.1的主机访问外网,需要过防火墙fw2,网段地址2.0.0.0/24内的其他主机访问外网不需要过防火墙。vpn3内的所有主机都不需要过防火墙等。
4.针对这种场景,目前业界可以采用微分段micro-segment的方式来给主机进行端点分组(endpoint group,epg)。
5.例如:vpn1内,网段1.0.0.0/24内的主机默认分组为epg2,有特殊访问策略的1.0.0.1/32使用epg1。vpn2内2.0.0.0/24的默认分组是epg4,有特殊访问策略的2.0.0.1/32使用epg3。vpn3内所有主机的策略一致,使用epg5。
6.微分段策略配置表的示例配置如表1所示,其中epg6为位于外部虚拟私有网络(virtual private network,vpn)中的epg。
7.表1微分段策略配置表
8.源epg目的epg动作epg6epg1走服务链,重定向到fw1和wafepg1epg6走服务链,重定向到fw1和wafepg6epg2走服务链,重定向到fw1epg2epg6走服务链,重定向到fw1epg6epg3走服务链,重定向到fw2epg3epg6走服务链,重定向到fw2epg4epg6允许通过,按路由转发epg6epg4允许通过,按路由转发epg5epg6允许通过,按路由转发epg6epg5允许通过,按路由转发epg7epg6允许通过,按路由转发epg6epg7允许通过,按路由转发
9.目前,业界有使用路由表中增加一个分组标记的方式来标识epg组标识id,采用此
方案时,在分布式网关场景下,如leaf1,leaf2和leaf3均作为1.0.0.0/24,2.0.0.0/24和3.0.0.0/24网段或主机的分布式网关,外网通过边界网关border1访问内部主机,为了能够准确不绕行到达主机所在的叶子网关leaf,需要border上保存所有leaf下主机的主机路由,这样导致border上的路由表规模较大。如表2-表4的示例。
10.表2初始border1上vpn1的路由表
11.vpn目的地址下一跳出接口epg idvpn11.0.0.1/32leaf1到leaf1的隧道epg1vpn11.0.0.2/32leaf2到leaf2的隧道epg7vpn11.0.0.3/32leaf3到leaf3的隧道epg2vpn11.0.0.0/24leaf1到leaf1的隧道epg2vpn11.0.0.0/24leaf2到leaf2的隧道epg2vpn11.0.0.0/24leaf3到leaf3的隧道epg2
12.表3初始border 1上vpn2的路由表
[0013][0014][0015]
表4初始border 1上vpn3的路由表
[0016]
vpn目的地址下一跳出接口epg idvpn33.0.0.1/32leaf1到leaf1的隧道epg5vpn33.0.0.2/32leaf2到leaf2的隧道epg5vpn33.0.0.3/32leaf3到leaf3的隧道epg5vpn33.0.0.0/24leaf1到leaf1的隧道epg5vpn33.0.0.0/24leaf2到leaf2的隧道epg5vpn33.0.0.0/24leaf3到leaf3的隧道epg5
[0017]
当外部(external)vpn需要与vpn1,vpn2及vpn3的主机互访时,border1上external vpn的路由表如表5示例。
[0018]
表5更新后border 1上external vpn的路由表
[0019][0020][0021]
这种方式对转发设备的路由表项消耗过大,需要互访的路由需要同时存在于两个vpn里,当互访的vpn比较多时,很容易造成路由表容量不足。


技术实现要素:

[0022]
有鉴于此,本发明提供一种微分段策略路由学习方法、报文转发方法及装置,用于解决微分段策略路由场景下路由表项过多的技术问题。
[0023]
基于本发明实施例的一方面,本发明提供了一种微分段策略路由学习方法,该方法包括:
[0024]
当目的vpn路由表中同时存在网段路由和主机路由且具有不同epg时,基于epg进行分组;
[0025]
对于具有相同epg的路由表项,优先引入目的地址的掩码较短的网段路由表项到源vpn路由表中;
[0026]
对于目的地址的掩码较长的路由表项,只引入具有不同epg的路由表项到源vpn路由表中;
[0027]
其中,所述源vpn路由表中的路由表项的下一跳字段为目的vpn,出接口字段为目的vpn对应的还回口子接口,epg字段值为所引入的路由表项epg字段值。
[0028]
进一步地,所述对于具有相同epg的路由表项,优先引入目的地址的掩码较短的网段路由表项到源vpn路由表中具体为:
[0029]
将目的vpn路由表新学习到的路由表项作为当前路由表项;
[0030]
判断当前路由表项的目的地址的子网掩码是否为相同epg里子网掩码长度最小的路由表项;
[0031]
当判定为最小时,将所述当前路由表项引入源vpn路由表中,或使用所述当前路由表项替换掉源vpn路由表中目的地址匹配但掩码较长的路由表项;
[0032]
当判定为非最小时,不引入所述当前路由表项。
[0033]
进一步地,所述对于目的地址的掩码较长的路由表项,只引入具有不同epg的路由表项到源vpn路由表中具体为;
[0034]
将目的vpn路由表新学习到的路由表项作为当前路由表项;
[0035]
若源vpn路由表中存在与所述当前路由表项的目的地址匹配的路由表项,则只在所述当前路由表项的目的地址掩码较长且epg不同的情况下引入所述当前路由表项。
[0036]
根据本发明实施例的另一方面,本发明还提供了一种报文转发方法,该方法应用于边界网关设备,所述边界网关设备的外网接口配置有微分段策略表项,并拥有根据前述微分段路由学习方法学习的源vpn路由表,该方法包括:
[0037]
当从所述外网接口接收到发往目的vpn的报文时,使用报文的源地址在源vpn路由表中的目的地址字段进行匹配,匹配到默认路由后,从默认路由的epg字段获得报文源epg;
[0038]
使用报文目的地址在源vpn路由表的目的地址字段进行最长匹配,从匹配的路由表项中获得报文目的epg;
[0039]
使用得到的报文源epg和目的epg,在微分段策略配置表中匹配对应的策略表项,根据匹配的微分段策略配置表项中的动作字段对报文进行相应的处理。
[0040]
进一步地,当所述微分段策略配置表中匹配的表项的动作字段为允许按路由转发时,所述相应处理为:
[0041]
根据报文目的地址在源vpn路由表中匹配的路由表项的下一跳的目的vpn,从该目的vpn对应的环回口子接口转发出去;
[0042]
所述报文经环回口再次进入所述边界网关设备,继续在所述目的vpn的路由表中匹配,根据匹配到的目的vpn路由表项进行转发。
[0043]
根据本发明实施例的另一方面,本发明还提供一种微分段策略路由学习装置,该装置包括:
[0044]
分组模块,用于对目的vpn路由表中的网段路由和主机路由基于epg进行分组;
[0045]
第一引入模块,用于对于具有相同epg的路由表项,优先引入目的地址的掩码较短的网段路由表项到源vpn路由表中;
[0046]
第二引入模块,用于对于目的地址的掩码较长的路由表项,只引入具有不同epg的路由表项到源vpn路由表中;
[0047]
其中,所述源vpn路由表中的路由表项的下一跳字段为目的vpn,出接口字段为目的vpn对应的还回口子接口,epg字段值为所引入的路由表项epg字段值。
[0048]
进一步地,所述第一引入模块包括:
[0049]
第一判断单元,用于将目的vpn路由表新学习到的路由表项作为当前路由表项;判
断当前路由表项的目的地址的子网掩码是否为相同epg里子网掩码长度最小的路由表项;
[0050]
第一处理单元,用于在判定为最小时,将所述当前路由表项引入源vpn路由表中,或使用所述当前路由表项替换掉源vpn路由表中目的地址匹配但掩码较长的路由表项;当判定为非最小时,不引入所述当前路由表项。
[0051]
进一步地,所述第二引入模块包括:
[0052]
第二判断单元,用于将目的vpn路由表新学习到的路由表项作为当前路由表项;判断源vpn路由表中是否存在与所述当前路由表项的目的地址匹配的路由表项;
[0053]
第三判断单元,用于判断所述当前路由表项的目的地址掩码是否较长;
[0054]
第四判断单元,用于判断所述当前路由表项的epg是否与源vpn中匹配的路由表项的epg相同;
[0055]
第二处理单元,用于在判定源vpn路由表中存在与所述当前路由表项的目的地址匹配的路由表项、所述当前路由表项的目的地址掩码较长且epg不同时,引入所述当前路由表项到所述源vpn路由表中。
[0056]
根据本发明实施例的另一方面,本发明还提供一种报文转发装置,该装置应用于边界网关设备,所述边界网关设备的外网接口配置有微分段策略表项,并拥有根据前述微分段策略路由学习方法学习的源vpn路由表,该装置包括:
[0057]
源epg获取模块,用于在从所述外网接口接收到发往目的vpn的报文时,使用报文的源地址在源vpn路由表中的目的地址字段进行匹配,匹配到默认路由后,从默认路由的epg字段获得报文源epg;
[0058]
目的epg获取模块,用于使用报文目的地址在源vpn路由表的目的地址字段进行最长匹配,从匹配的路由表项中获得报文目的epg;
[0059]
策略处理模块,用于使用得到的报文源epg和目的epg,在微分段策略配置表中匹配对应的策略表项,根据匹配的微分段策略配置表项中的动作字段对报文进行相应的处理。
[0060]
进一步地,当所述微分段策略配置表中匹配的表项的动作字段为允许按路由转发时,所述策略处理模块的相应处理为:
[0061]
根据报文目的地址在源vpn路由表中匹配的路由表项的下一跳的目的vpn,从该目的vpn对应的环回口子接口转发出去;
[0062]
所述报文经环回口再次进入所述边界网关设备,继续在所述目的vpn的路由表中匹配,根据匹配到的目的vpn路由表项进行转发。
[0063]
根据本发明实施例的另一方面,本发明还提供一种电子设备,该电子设备包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
[0064]
存储介质,用于存放计算机程序;
[0065]
处理器,用于执行存储介质上所存放的计算机程序时,实施前述微分段策略路由学习方法或报文转发方法的步骤。
[0066]
根据本发明实施例的另一方面,本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序当被处理器执行时实施如前述微分段策略路由学习方法或报文转发方法的方法步骤。
[0067]
本发明在微分段策略路由场景下,在将目的vpn新学习到的路由引入源vpn路由表时,优先引入网段路由,在引入主机路由时,判断主机路由是否和已有的网段路由epg分组相同,不相同才引入,从而避免不必要的主机路由的引入,降低了源vpn路由表的路由表项的数量。
附图说明
[0068]
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。
[0069]
图1为本发明一实施例中采用的微分段策略组网示意图;
[0070]
图2为本发明一实施例提供的微分段策略路由学习方法的步骤流程图;
[0071]
图3为本发明一实施例提供的基于源vpn路由表进行微分段策略路由转发的步骤流程示意图;
[0072]
图4为本发明一实施例提供的一种微分段路由学习装置结构示意图;
[0073]
图5为本发明一实施例提供的一种基于微分段路由的报文转发装置的结构示意图;
[0074]
图6为本发明一实施例提供的一种电子设备结构示意图。
具体实施方式
[0075]
在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本发明中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
[0076]
应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0077]
本发明主要目的是解决主机微分段策略路由场景下,为实现源目的vpn内的主机跨vpn互访,引入过多路由表项导致路由表过于庞大、对计算资源要求高、路由效率低的技术问题。
[0078]
本发明技术方案的基本思想是:在微分段策略路由场景下,在将目的vpn新学习到的路由引入源vpn路由表时,优先引入网段路由,在引入主机路由时,判断主机路由是否和已有的网段路由epg分组相同,不相同才引入,从而避免不必要的主机路由的引入,降低了源vpn路由表的路由表项的数量。
[0079]
本发明所述的微分段策略路由是指基于微分段策略配置表进行的基于策略的路由方式,例如对于同一目的vpn中不同主机配置不同的路由策略,根据不同的路由策略对同一目的vpn中不同主机的流量进行不同的处理,以实现vpn内流量的更精细化地控制。
[0080]
本发明实施例中,将位于两个网络边缘承担网关和路由功能的设备称为边界网关设备,边界网关设备(例如图1中的border1设备)可通过路由协议从内部网络学习内部网络的主机或网段路由,例如border1会从脊网关设备spine和叶网关设备leaf学习内部网络中的vpn内的主机路由和网段路由。
[0081]
border1设备可通过边界网关协议(border gateway protocol,bgp)协议学习到vpn1、vpn2和vpn3的内部主机路由和网段路由,可在bgp路由通告报文的团体属性内携带路由对应的端点分组epg标识。
[0082]
以下结合图1,以外网vpn(external vpn)内的主机通过边界网关设备(border1)上的外网互连接口访问内网目的vpn中的主机为例,详细描述在边界网关设备上如何将目的vpn的路由引入到源vpn的路由表中,以及如何实现基于微分段策略的路由。
[0083]
假设源vpn即external vpn(这里以external vpn指代外部的一个特定的vpn,非泛指)需要跨vpn访问目的vpn即vpn1内的主机,那么border1设备需要学习目的vpn内的主机路由和网段路由,才能实现源vpn内主机到目的vpn内主机报文的正常转发,路由学习的过程主要分为两个阶段,第一阶段是通过路由协议学习目的vpn中的主机和网段路由到目的vpn路由表中,第二阶段是从目的vpn路由表将路由引入到源vpn路由。
[0084]
图2为本发明一实施例提供的微分段策略路由学习方法的步骤流程图,该流程图示例了路由学习的第二阶段中边界设备border1从目的vpn1的路由表引入路由到源vpn的路由表的过程。
[0085]
步骤201.当目的vpn的路由表学习到一条新的路由表项时,将该新的路由表项作为当前路由表项,并以epg为关键字对目的vpn的路由表项进行排序;
[0086]
在本发明实施例中,源vpn路由表和目的vpn路由表中都包括epg字段,用于标识路由表项所属的epg分组。
[0087]
步骤202.判断当前路由表项的目的地址的子网掩码是否为是相同epg里子网掩码长度最小的路由表项,如果是则执行步骤203,否则流程结束,不引入当前路由表项;
[0088]
本发明实施例对于目的vpn的路由中具有相同epg的路由表项,选取掩码长度最小的路由表项即route1_shortest_mask引入到源vpn即external vpn的路由中,这么做的目的是优先引入网段路由,因为网段路由的掩码小于主机路由的掩码。
[0089]
假设,在初始情况下,external_vpn的路由表为空,border1通过路由学习,学习到如表6中目的vpn1的路由表项,由于只有一条表项,所以按照epg为关键字key对目的vpn的路由进行排序的话仍如表6所示。
[0090]
表6目的vpn1的路由表
[0091]
epg idvpn目的地址下一跳出接口epg2vpn11.0.0.3/32leaf3到leaf3的隧道
[0092]
虽然,表6中的路由表项不是网段路由,但针对主机定制的特定微分段策略的主机路由也应当引入,因此根据图2的流程,该表项将会被引入到源vpn的路由表中,如表7所示。
[0093]
表7源vpn的路由表
[0094]
vpn目的地址下一跳出接口epg idexteral_vpn1.0.0.3/32vpn1loopback.vpn1epg2
[0095]
在表6的基础上,当border1通过路由学习,学习到epg相同的同一网段的网段路由
表项(目的地址掩码更小)时,按照epg为关键字对目的vpn1的路由进行排序后,如表8所示:
[0096]
表8目的vpn1的路由表
[0097]
epg idvpn目的地址下一跳出接口epg2vpn11.0.0.3/32leaf3到leaf3的隧道epg2vpn11.0.0.0/24leaf1到leaf1的隧道
[0098]
学习到1.0.0.0/24的网段路由表项触发图2的路由引入流程,引入流程中的当前路由表项即为表8中目的地址为1.0.0.0/24的路由表项,在步骤202中,由于当前路由表项中目的地址的掩码为24位,小于同一vpn内目的地址为1.0.0.3/32对应的路由表项,因此将会执行步骤203。
[0099]
如果先学到了1.0.0.0/24的路由表项,后学到了1.0.0.3/32的表项,则在步骤202中,由于1.0.0.3/32的掩码长度大于1.0.0.0/24,所以1.0.0.3/32的路由表项将不会被引入到源vpn的路由中。
[0100]
假设,在表8的基础上,border1通过路由学习,又学习到目的vpn1中相同epg2,目的地址仍然为1.0.0.0/24但下一跳不同(例如leaf2)的新的路由表项,按照epg为关键字对目的vpn1的路由进行排序后,得到如表9所示:
[0101]
表9目的vpn1的路由表
[0102]
epg idvpn目的地址下一跳出接口epg2vpn11.0.0.3/32leaf3到leaf3的隧道epg2vpn11.0.0.0/24leaf1到leaf1的隧道epg2vpn11.0.0.0/24leaf2到leaf2的隧道
[0103]
表9中,具有相同epg,目的vpn为vpn1的路由表项虽然有3个,但3个路由表项中不重复的目的地址只有2个,分别为1.0.0.3/32,1.0.0.0/24,24位的掩码小于32位的掩码长度,因此,针对新学习到的目的地址为1.0.0.0/24、下一跳为leaf2的路由表项,其掩码仍为最小值,仍然会走步骤203的分支进行处理。
[0104]
针对某个epg仅有一条路由表项的情况,例如表2中,以epg1为端点分组的路由表项只有1个,即epg1、目的地址为1.0.0.1/32的路由表项,其掩码虽然是32位的,但由于epg1分组中只有一条路由,因此默认该路由表项的目的地址的掩码长度为epg1分组中掩码长度最小的路由表项。
[0105]
步骤203.用当前路由表项的目的地址在源vpn的路由中做最长地址匹配;
[0106]
所述最长地址匹配指按照地址前缀的掩码,在掩码长度范围内做逐位的匹配判断。
[0107]
步骤204.判断是否存在匹配的路由表项,如果判定为是则执行步骤205,否则执行步骤208;
[0108]
该步骤用于判断在源vpn路由表中是否存在与当前路由表项的目的地址匹配的路由表项,如果不存在匹配的路由表项,说明在源vpn的路由表中还不存在同网段或同主机的相关路由表项。
[0109]
以表7和表8为例,在新学到目的vpn1的目的地址为1.0.0.0/24的路由表项时,由于该地址掩码小于32,因此在该步骤中以1.0.0.0/24做最长地址匹配,会匹配到表7源vpn的路由表中的目的地址为1.0.0.3/32的表项。
[0110]
步骤205.判断当前路由表项的目的地址的掩码长度是否小于所匹配的源vpn路由中的路由表项的目的地址的掩码长度,如果判定为是执行步骤206,否则执行步骤207;
[0111]
在源vpn的路由中存在与当前路由表项的目的地址匹配的路由表项的情况下,需要进一步判断是否当前路由表项的目的地址的掩码长度小于源vpn路由中匹配的路由表项的目的地址的掩码长度,如果小于则需要替换源vpn中匹配的路由表项即实现优先引入网段路由的目的,如果不小于则需要根据epg的异同做进一步地处理,通过替换处理可以保证优先引入短掩码的网段路由。
[0112]
步骤206.使用当前路由表项的目的地址替换源vpn内匹配的路由表项的目的地址,并将匹配的路由表项的下一跳改为当前路由表项的目的vpn,出接口改为与目的vpn对应的环回口的子接口;
[0113]
仍以表7和表8为例,当前路由表项的目的地址1.0.0.0/24匹配到源vpn中的1.0.0.3/32的表项,由于24位掩码小于32位,因此需要使用当前路由表项的目的地址替换源vpn中匹配的表项的目的地址即用1.0.0.0/24替换1.0.0.3/32,并替换下一跳和出接口为当前路由表项所属vpn和所属vpn对应的环回口子接口,如表10所示:
[0114]
表10源vpn路由表
[0115]
vpn目的地址下一跳出接口epg idexteral_vpn1.0.0.0/24vpn1loopback.vpn1epg2
[0116]
步骤207.判断当前路由表项的epg与源vpn中所匹配的路由表项的epg是否相同,若不相同则执行步骤208,若相同则流程结束。
[0117]
在当前路由表项的目的地址的掩码长度不小于所匹配的源vpn路由中的路由表项的目的地址的掩码长度且当前路由表项的epg与源vpn中所匹配的路由表项的epg相同的情况下,结束流程,即不将当前路由表项引入到源vpn路由表中。以表9为例,针对新学习到的目的地址为1.0.0.0/24、下一跳为leaf2的路由表项,由于目的地址、目的vpn和epg都相同,因此在步骤207中不会引入1.0.0.0/24下一跳为leaf2的路由表项到源vpn路由中。
[0118]
步骤208.在源vpn内引入当前路由表项并将该引入的路由表项的下一跳及出接口修改为当前路由表项的目的vpn及目的vpn对应的环回口的子接口;
[0119]
在源vpn的路由中还不存在与当前路由表项目的地址匹配的路由表项的情况下,需要将当前路由表项引入到源vpn的路由中。
[0120]
在源vpn的路由中存在与当前路由表项目的地址匹配的路由表项且当前路由表项的目的地址的掩码长度不小于所匹配的源vpn路由中的路由表项的目的地址的掩码长度且当前路由表项的epg与源vpn中所匹配的路由表项的epg不相同的情况下,需要将当前路由表项引入到源vpn的路由中。例如先学习到了epg2目的地址为1.0.0.0/24的路由,后又学到了epg8目的地址为1.0.0.5/32的路由,后者为更细分的微分段主机路由,因此需要将后者引入到源vpn的路由表中。
[0121]
上述将当前路由表项引入到源vpn的路由中需要执行步骤包括:在源vpn路由中新增一条源vpn为external vpn、目的地址为当前路由表项的目的地址、下一跳为当前路由表项所属目的vpn、出接口为环回口的子接口、epg为当前路由表项所属epg的路由表项。其中,出接口的环回口子接口标识id可以使用目的vpn的标识id或其映射值,即出接口为与当前路由表项所属目的vpn对应的环回口子接口。
[0122]
基于图2的路由学习流程,假设得到如表11的源vpn路由表:
[0123]
表11源vpn路由表
[0124][0125]
需要特别说明的是,本发明实施例需要在源vpn路由表中预先配置一条目的地址为0.0.0.0/0的默认路由表项,掩码长度为0,该路由表项用于获取报文入端口所属的epg。
[0126]
图3为本发明一实施例提供的基于源vpn路由表进行微分段策略路由转发的步骤流程示意图,步骤包括:
[0127]
步骤301.当从border1的外网接口接收到发往目的vpn的报文时,使用报文的源地址在源vpn路由表中的目的地址字段进行匹配,匹配到默认路由后,从默认路由的epg字段获得报文源epg;
[0128]
该实施例中,会在border1的接口下发如表1的微分段策略表项,当border1从外网接口如因特网互连接口接收到打上源vpn标记的发往目的vpn1,目的地址为1.0.0.1/32的报文时,首先使用报文的源ip地址到如表11的源vpn路由表中的目的地址字段进行最长地址匹配,由于是外网ip,因此会命中掩码长度为0的目的地址为0.0.0.0/0的默认路由表项,从而获得该端口上默认路由对应的epg分组即报文源epg分组为epg6。
[0129]
步骤302.使用报文目的地址在源vpn路由表的目的地址字段进行最长匹配,从匹配的路由表项中获得报文目的epg;
[0130]
在命中默认路由,从默认路由表项获得报文源地址所属的epg分组后,再使用报文目的ip地址在源vpn路由表中进行匹配得到报文目的epg分组,以表11为例,报文目的ip为1.0.0.1/32,得到目的epg分组为epg1,下一跳为vpn1,出接口为本地环回口的子接口loopback.vpn1。
[0131]
步骤303.使用得到的报文源epg和目的epg,在微分段策略配置表中匹配对应的策略表项,根据匹配的微分段策略配置表项中的动作字段对报文进行相应的处理。
[0132]
以表1的微分段策略配置表和表11为例,假设报文源ip地址对应的epg6,目的ip地址1.0.0.1/32对应的epg分组为epg1,对应的处理动作为“走服务链,重定向到fw1和waf”,此种情况下,报文将不再根据路由表项的下一跳进行转发,而是将报文重定向转发到fw1和waf。
[0133]
若报文目的地址为1.0.0.3/32,则对应的epg分组为epg7,查找表1的微分段策略配置,对应的处理动作为“允许通过,按路由转发”。此时根据报文目的ip地址1.0.0.0.3/32在源vpn路由表中匹配的路由表项的下一跳为vpn1,出接口为loopback.vpn1,则报文从border1的vpn1对应的环回口子接口转发出去后,再从环回口进入border1,然后会继续在vpn1的路由表中做路由查找,最终找到leaf3下的主机1.0.0.3/32对应的路由表项,根据找到的路由表项转发报文,从连接leaf3的隧道接口将报文转发出去。
[0134]
至此,border1完成了从接收到报文到基于微分段策略路由转发报文的过程。
[0135]
本发明实施所采用的动态路由引入的方式,相比于静态在源vpn路由中配置去往目的vpn的路由的方式来说,减少了网络配置和管理的工作量,提高了网络管理和维护的效率,避免了人为配置出错的情况的发生。
[0136]
图4为本发明一实施例提供的一种微分段路由学习装置结构示意图,该装置400中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。该装置400应用于边界网关,该装置400包括:
[0137]
分组模块401,用于对目的vpn路由表中的网段路由和主机路由基于epg进行分组;
[0138]
第一引入模块402,用于对于具有相同epg的路由表项,优先引入目的地址的掩码较短的网段路由表项到源vpn路由表中;
[0139]
第二引入模块403,用于对于目的地址的掩码较长的路由表项,只引入具有不同epg的路由表项到源vpn路由表中;
[0140]
其中,所述源vpn路由表中的路由表项的下一跳字段为目的vpn,出接口字段为目的vpn对应的还回口子接口,epg字段值为所引入的路由表项epg字段值。
[0141]
其中,第一引入模块402进一步包括:
[0142]
第一判断单元,用于将目的vpn路由表新学习到的路由表项作为当前路由表项;判断当前路由表项的目的地址的子网掩码是否为相同epg里子网掩码长度最小的路由表项;
[0143]
第一处理单元,用于在判定为最小时,将所述当前路由表项引入源vpn路由表中,或使用所述当前路由表项替换掉源vpn路由表中目的地址匹配但掩码较长的路由表项;当判定为非最小时,不引入所述当前路由表项。
[0144]
其中,第二引入模块进一步包括:
[0145]
第二判断单元,用于将目的vpn路由表新学习到的路由表项作为当前路由表项;判断源vpn路由表中是否存在与所述当前路由表项的目的地址匹配的路由表项;
[0146]
第三判断单元,用于判断所述当前路由表项的目的地址掩码是否较长;
[0147]
第四判断单元,用于判断所述当前路由表项的epg是否与源vpn中匹配的路由表项的epg相同;
[0148]
第二处理单元,用于在判定源vpn路由表中存在与所述当前路由表项的目的地址匹配的路由表项、所述当前路由表项的目的地址掩码较长且epg不同时,引入所述当前路由表项到所述源vpn路由表中。
[0149]
图5为本发明一实施例提供的一种基于微分段路由的报文转发装置的结构示意图,该装置500中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。该装置500应用于边界网关设备,边界网关设备的外网接口配置有微分段策略表项,并拥有根据前述实施例的路由学习方法学习的源vpn路由表,该装置500包括:
[0150]
源epg获取模块501,用于在从所述外网接口接收到发往目的vpn的报文时,使用报文的源地址在源vpn路由表中的目的地址字段进行匹配,匹配到默认路由后,从默认路由的epg字段获得报文源epg;
[0151]
目的epg获取模块502,用于使用报文目的地址在源vpn路由表的目的地址字段进行最长匹配,从匹配的路由表项中获得报文目的epg;
[0152]
策略处理模块503,用于使用得到的报文源epg和目的epg,在微分段策略配置表中
匹配对应的策略表项,根据匹配的微分段策略配置表项中的动作字段对报文进行相应的处理。
[0153]
进一步地,当微分段策略配置表中匹配的表项的动作字段为允许按路由转发时,策略处理模块503所做的相应处理为:
[0154]
根据报文目的地址在源vpn路由表中匹配的路由表项的下一跳的目的vpn,从该目的vpn对应的环回口子接口转发出去;
[0155]
所述报文经环回口再次进入所述边界网关设备,继续在所述目的vpn的路由表中匹配,根据匹配到的目的vpn路由表项进行转发。
[0156]
图6为本发明一实施例提供的一种电子设备结构示意图,该设备600包括:诸如中央处理单元(cpu)的处理器610、通信总线620、通信接口640以及存储介质630。其中,处理器610与存储介质630可以通过通信总线620相互通信。存储介质630内存储有计算机程序,当该计算机程序被处理器610执行时即可实现本发明实施例提供的方法的各步骤的功能。
[0157]
其中,存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0158]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0159]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发
明还包括计算机本身。
[0160]
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献