一种VXLAN资源的动态限制方法、系统及装置与流程

文档序号:31456893发布日期:2022-09-07 14:51阅读:99来源:国知局
一种VXLAN资源的动态限制方法、系统及装置与流程
一种vxlan资源的动态限制方法、系统及装置
技术领域
1.本发明涉及计算机技术领域,更具体的说是涉及一种vxlan资源的动态限制方法、系统及装置。


背景技术:

2.vxlan(virtual extensible local area network,虚拟扩展局域网),是由ietf定义的nvo3(network virtualization over layer 3)标准技术之一,是对传统vlan协议的一种扩展。vxlan的特点是将l2的以太帧封装到udp报文(即l2 over l4)中,并在l3网络中传输。vxlan本质上是一种隧道技术,在源网络设备与目的网络设备之间的ip网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发。从用户的角度来看,接入网络的服务器就像是连接到了一个虚拟的二层交换机的不同端口上,可以方便地通信。bgp evpn协议可以用来作为vxlan网络的控制面协议,可以帮助vtep之间实现主机ip、mac地址的学习,动态创建vxlan隧道。
3.现有技术中,交换机芯片为交换机核心芯片之一,决定了交换机的性能。交换机主要功能是提供子网内的高性能和低延时交换,而高性能交换的功能主要由交换芯片完成。但是,交换机芯片对于能够创建的vxlan隧道数量有限制,当超出限制后,隧道不能创建成功,芯片返回错误,交换机系统运行不正常。


技术实现要素:

4.针对以上问题,本发明的目的在于提供一种vxlan资源的动态限制方法、系统及装置,在需要的vxlan隧道资源超过芯片限制时,能够动态的创建删除vxlan隧道,并可以查看隧道的状态。
5.本发明为实现上述目的,通过以下技术方案实现:一种vxlan资源的动态限制方法,包括如下步骤:
6.s1:为交换机配置evpn,使其能够发送和接收evpn type3路由;
7.s2:记录最大隧道数和当前已使用的隧道数;
8.s3:添加发起创建或删除vxlan隧道的请求功能;
9.s4:添加识别bgp发出的创建或删除vxlan隧道的通知功能;
10.s5:添加识别静态vxlan的创建或删除通知功能;
11.s6:创建队列,将队列成员设为一个pair结构体,pair结构体的第一成员变量用于记录源ip地址、目的ip地址、隧道名称三者的hash结果,pair结构体的第二成员变量用于记录操作类型;
12.s7:添加队列成员的添加和删除功能;
13.s8:当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中;
14.s9:当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。
15.进一步,步骤s2包括:
16.通过获取交换机芯片支持的隧道数量的上限,作为最大隧道数,并将其记录到第一标记中;
17.将当前已使用的隧道数记录到第二标记中。
18.进一步,步骤s3包括:
19.创建隧道创建函数,隧道创建函数用于根据源ip地址和目的ip地址向芯片发起创建vxlan隧道的请求;创建隧道删除函数,隧道删除函数用于根据源ip地址和目的ip地址向芯片发起删除vxlan隧道的请求。
20.进一步,步骤s4包括:
21.创建第一识别函数,第一识别函数用于当bgp接收到type3路由后,识别bgp发出的创建或删除vxlan隧道的通知,通知内容包括远端vtep的ip地址、vniid、vlan id和隧道名称。
22.进一步,步骤s5包括:
23.创建第二识别函数,第二识别函数用于识别静态vxlan的创建或删除通知,通知内容包括本端vtep的ip地址、远端vtep的ip地址。
24.进一步,步骤s7包括:
25.创建队列控制函数,队列控制函数用于添加队列成员,当有新队列成员加入队列且新队列成员第二成员变量记录的操作类型为删除时,倒序遍历队列;若发现队列中存在第二成员变量的内容相同,且第二成员变量记录的操作类型为添加的队列成员,将此队列成员从队列中移除,并返回ture,否则返回false。
26.进一步,步骤s8包括:
27.当创建vxlan隧道的请求被触发时,判断当前已使用隧道数加一后是否小于或等于最大隧道数;若是,则调用隧道创建函数创建隧道,并在日志中添加隧道创建成功的日志,将结果记录到数据库中,将该隧道的状态设置为active;若否,首先计算源ip地址+目的ip地址+隧道名称的hash值,将计算的hash值设为第一成员变量,将添加操作设为第二成员变量,并生成相应的队列成员添加队列中,然后在日志中添加隧道创建失败的日志,将结果记录到数据库中,将该隧道的状态设置为inactive。
28.进一步,步骤s9包括:
29.当删除vxlan隧道的请求被触发时,计算源ip地址+目的ip地址+隧道名称的hash值,将计算的hash值,删除操作作为参数,调用队列控制函数,若返回结果为false,则调用隧道删除函数删除隧道,并删除数据库中隧道对应的信息;当隧道删除函数被调用后,若当前队列不为空,则从队列最前端取出一个队列成员,调用隧道创建函数创建隧道,并将数据库中相应隧道的状态更改为active。
30.相应的,本发明还公开了一种vxlan资源的动态限制系统,包括:
31.环境准备单元,用于为交换机配置evpn,使其能够发送和接收evpn type3路由;记录单元,用于记录最大隧道数和当前已使用的隧道数;
32.第一功能添加单元,用于添加发起创建或删除vxlan隧道的请求功能;
33.第二功能添加单元,用于添加识别bgp发出的创建或删除vxlan隧道的通知功能;第三功能添加单元,用于添加识别静态vxlan的创建或删除通知功能;
34.队列创建单元,用于创建队列,将队列成员设为一个pair结构体,pair结构体的第一成员变量用于记录源ip地址、目的ip地址、隧道名称三者的hash结果,pair结构体的第二成员变量用于记录操作类型;
35.第四功能添加单元,用于添加队列成员的添加和删除功能;
36.隧道创建单元,用于当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中;隧道删除单元,用于当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。
37.相应的,本发明公开了一种vxlan资源的动态限制装置,包括:
38.存储器,用于存储vxlan资源的动态限制程序;
39.处理器,用于执行所述vxlan资源的动态限制程序时实现如上文任一项所述vxlan资源的动态限制方法的步骤。
40.对比现有技术,本发明有益效果在于:本发明公开了一种vxlan资源的动态限制方法、系统及装置,在需要的vxlan隧道资源超过芯片限制时,能够动态的创建删除vxlan隧道,正确的提示用户隧道创建情况并记录日志。
41.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
43.附图1是本发明具体实施方式的方法流程图。
44.附图2是本发明具体实施方式的系统结构图。
45.图中,1为环境准备单元;2为记录单元;3为第一功能添加单元;4为第二功能添加单元;5为第三功能添加单元;6为队列创建单元;7为第四功能添加单元;8为隧道创建单元;9为隧道删除单元。
具体实施方式
46.本发明的核心是提供一种vxlan资源的动态限制方法,现有技术中,交换机芯片为交换机核心芯片之一,决定了交换机的性能。交换机主要功能是提供子网内的高性能和低延时交换,而高性能交换的功能主要由交换芯片完成。但是,交换机芯片对于能够创建的vxlan隧道数量有限制,当超出限制后,隧道不能创建成功,芯片返回错误,交换机系统运行不正常。
47.而本发明提供的vxlan资源的动态限制方法,首先,记录最大隧道数和当前已使用的隧道数,并实现创建或删除vxlan隧道的各种基本功能。此时,创建一个具有记录隧道操作功能的队列。当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中;当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。由此可见,本发明在需要的vxlan隧道资源
超过芯片限制时,能够动态的创建删除vxlan隧道,并可以查看隧道的状态。
48.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.实施例一:
50.如图1所示,本实施例提供了一种vxlan资源的动态限制方法,包括如下步骤:
51.s1:为交换机配置evpn,使其能够发送和接收evpn type3路由。
52.s2:记录最大隧道数和当前已使用的隧道数。
53.具体的,首先创建第一标记和第二标记。然后通过获取交换机芯片支持的隧道数量的上限,作为最大隧道数,并将其记录到第一标记中。同时,将当前已使用的隧道数记录到第二标记中。
54.s3:添加发起创建或删除vxlan隧道的请求功能。
55.具体的,创建隧道创建函数,隧道创建函数用于根据源ip地址和目的ip地址向芯片发起创建vxlan隧道的请求;创建隧道删除函数,隧道删除函数用于根据源ip地址和目的ip地址向芯片发起删除vxlan隧道的请求。
56.s4:添加识别bgp发出的创建或删除vxlan隧道的通知功能。
57.本步骤通过创建第一识别函数实现功能的添加,第一识别函数用于当bgp接收到type3路由后,识别bgp发出的创建或删除vxlan隧道的通知,通知内容包括远端vtep的ip地址、vniid、vlan id和隧道名称。
58.s5:添加识别静态vxlan的创建或删除通知功能。
59.本步骤通过创建第二识别函数实现功能的添加,第二识别函数用于识别静态vxlan的创建或删除通知,通知内容包括本端vtep的ip地址、远端vtep的ip地址。
60.s6:创建队列,将队列成员设为一个pair结构体,pair结构体的第一成员变量用于记录源ip地址、目的ip地址、隧道名称三者的hash结果,pair结构体的第二成员变量用于记录操作类型。
61.s7:添加队列成员的添加和删除功能。
62.本步骤通过创建队列控制函数实现。队列控制函数用于添加队列成员,当有新队列成员加入队列且新队列成员第二成员变量记录的操作类型为删除时,倒序遍历队列;若发现队列中存在第二成员变量的内容相同,且第二成员变量记录的操作类型为添加的队列成员,将此队列成员从队列中移除,并返回ture,否则返回false。
63.s8:当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中。
64.具体来说,当创建vxlan隧道的请求被触发时,判断当前已使用隧道数加一后是否小于或等于最大隧道数;若是,则调用隧道创建函数创建隧道,并在日志中添加隧道创建成功的日志,将结果记录到数据库中,将该隧道的状态设置为active;若否,首先计算源ip地址+目的ip地址+隧道名称的hash值,将计算的hash值设为第一成员变量,将添加操作设为第二成员变量,并生成相应的队列成员添加队列中,然后在日志中添加隧道创建失败的日志,将结果记录到数据库中,将该隧道的状态设置为inactive。
65.s9:当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。
66.具体来说,当删除vxlan隧道的请求被触发时,计算源ip地址+目的ip地址+隧道名称的hash值,将计算的hash值,删除操作作为参数,调用队列控制函数,若返回结果为false,则调用隧道删除函数删除隧道,并删除数据库中隧道对应的信息;当隧道删除函数被调用后,若当前队列不为空,则从队列最前端取出一个队列成员,调用隧道创建函数创建隧道,并将数据库中相应隧道的状态更改为active。
67.实施例二:
68.基于实施例一,如图2所示,本发明还公开了一种vxlan资源的动态限制系统,包括:环境准备单元1、记录单元2、第一功能添加单元3、第二功能添加单元4、第三功能添加单元5、队列创建单元6、第四功能添加单元7、隧道创建单元8和隧道删除单元9。
69.环境准备单元1,用于为交换机配置evpn,使其能够发送和接收evpn type3路由。
70.记录单元2,用于记录最大隧道数和当前已使用的隧道数。
71.第一功能添加单元3,用于添加发起创建或删除vxlan隧道的请求功能。
72.第二功能添加单元4,用于添加识别bgp发出的创建或删除vxlan隧道的通知功能。
73.第三功能添加单元5,用于添加识别静态vxlan的创建或删除通知功能。
74.队列创建单元6,用于创建队列,将队列成员设为一个pair结构体,pair结构体的第一成员变量用于记录源ip地址、目的ip地址、隧道名称三者的hash结果,pair结构体的第二成员变量用于记录操作类型。
75.第四功能添加单元7,用于添加队列成员的添加和删除功能。
76.隧道创建单元8,用于当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中。
77.隧道删除单元9,用于当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。
78.实施例三:
79.本实施例公开了一种vxlan资源的动态限制装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的vxlan资源的动态限制程序时实现以下步骤:
80.1、为交换机配置evpn,使其能够发送和接收evpn type3路由。
81.2、记录最大隧道数和当前已使用的隧道数。
82.3、添加发起创建或删除vxlan隧道的请求功能。
83.4、添加识别bgp发出的创建或删除vxlan隧道的通知功能。
84.5、添加识别静态vxlan的创建或删除通知功能。
85.6、创建队列,将队列成员设为一个pair结构体,pair结构体的第一成员变量用于记录源ip地址、目的ip地址、隧道名称三者的hash结果,pair结构体的第二成员变量用于记录操作类型。
86.7、添加队列成员的添加和删除功能。
87.8、当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中。
88.9、当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。
89.进一步的,本实施例中的vxlan资源的动态限制装置,还可以包括:
90.输入接口,用于获取外界导入的vxlan资源的动态限制程序,并将获取到的vxlan资源的动态限制程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
91.输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
92.通讯单元,用于在vxlan资源的动态限制装置和外部服务器之间建立远程通讯连接,以便于vxlan资源的动态限制装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
93.键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
94.显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
95.鼠标,可以用于协助用户输入数据并简化用户的操作。
96.实施例四:
97.本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有vxlan资源的动态限制程序,所述vxlan资源的动态限制程序被处理器执行时实现以下步骤:
98.1、为交换机配置evpn,使其能够发送和接收evpn type3路由。
99.2、记录最大隧道数和当前已使用的隧道数。
100.3、添加发起创建或删除vxlan隧道的请求功能。
101.4、添加识别bgp发出的创建或删除vxlan隧道的通知功能。
102.5、添加识别静态vxlan的创建或删除通知功能。
103.6、创建队列,将队列成员设为一个pair结构体,pair结构体的第一成员变量用于记录源ip地址、目的ip地址、隧道名称三者的hash结果,pair结构体的第二成员变量用于记录操作类型。
104.7、添加队列成员的添加和删除功能。
105.8、当创建vxlan隧道的请求被触发时,如果隧道资源充足,直接进行隧道创建操作;如果隧道资源不足,则是将隧道创建操作添加到队列中。
106.9、当删除vxlan隧道的请求被触发时,删除相应的队列成员,并释放隧道资源。
107.综上所述,本发明实现了在需要的vxlan隧道资源超过芯片限制时,能够动态的创建删除vxlan隧道,正确的提示用户隧道创建情况并记录日志。
108.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
109.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
110.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
111.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
112.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
113.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
114.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
115.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
116.以上对本发明所提供的vxlan资源的动态限制方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1