虚拟交换机与物理交换机的非聚合端口级联系统及方法与流程

文档序号:12494267阅读:350来源:国知局
虚拟交换机与物理交换机的非聚合端口级联系统及方法与流程



背景技术:

云计算数据中心包括多个物理服务器,每一个物理服务器上运行着多个虚拟机和一个虚拟交换机,多个虚拟机均与该虚拟交换机连接,该虚拟交换机通过物理服务器的物理网卡级联物理交换机,从而实现所有虚拟机网络互联。为了扩大虚拟机的业务带宽,通常将物理服务器的多块物理网卡绑定成一个虚拟端口,并将该虚拟端口加入虚拟交换机,使虚拟机的业务带宽通过多块物理网卡实现负载均衡。如图1所示,一个虚拟机通过虚拟网卡vnet1与虚拟交换机连接,物理服务器的物理网卡eth0和eth1分别与物理交换机连接,且eth0和eth1绑定成虚拟端口bond后与虚拟交换机连接。这种方法在某种特定情况下将导致虚拟机通信不正常,例如,当虚拟机发出一个广播报文时,该广播报文通过虚拟网卡vnet1到达虚拟交换机,虚拟交换机根据介质访问控制(Media Access Control,MAC)地址学习算法记录该广播报文的源MAC地址和虚拟网卡vnet1的对应关系,并将该广播报文转发到虚拟端口bond并从物理网卡eth0发送到物理交换机的端口,物理交换机将上述广播报文转发到其他所有端口上,该广播报文从物理网卡eth1和虚拟端口bond重新进入虚拟交换机,虚拟交换机根据MAC地址学习算法更新该广播报文的源MAC地址和虚拟端口bond的对应关系,即该虚拟机的MAC地址对应端口由虚拟网卡vnet1变为虚拟端口bond,造成此后发给该虚拟机的报文将被错误转发到虚拟端口bond,而不是转发到该虚拟机的虚拟网卡vnet1,造成虚拟机的通信不正常。只有当该虚拟机发出单播报文时,虚拟交换机根据MAC地址学习算法重新记录该单播报文的源MAC地址和虚拟网卡vnet1的对应关系,由于物理交换机不会将该单播报文转发回到虚拟端口bond,此后虚拟机的通信恢复正常。而在另一种特定情况下,例如,当虚拟机从当前物理服务器迁移到另一个物理服务器后,该虚拟机发出的报文的源MAC地址不变,但是,该虚拟机从另一个物理服务器的端口发出的报文被转发到上述虚拟端口bond时,当前物理服务器上的虚拟交换机应该根据MAC地址学习算法更新从该虚拟机发出的报文的源MAC地址对应的端口,否则将造成虚拟机的通信不正常。

为了解决上述问题,通常在物理交换机上将与物理服务器多个绑定网卡所连接的端口设置为一个端口聚合组,物理交换机将该端口聚合组当成一个逻辑端口,从而避免物理交换机在该逻辑端口收到广播报文后又转发回到上述逻辑端口,进而避免虚拟交换机从绑定的虚拟端口收到虚拟机发出的广播报文导致MAC地址表被错误更新。但是,上述方法存在以下缺陷:由于物理交换机需要支持端口聚合功能,每个绑定的物理网卡所连接的物理交换机端口都要设置端口聚合组,便宜的物理交换机通常不支持端口聚合功能,或者仅提供数量较少的端口聚合组,因此增加了云计算数据中心的部署成本和管理成本。



技术实现要素:

针对现有技术中存在的缺陷,本发明的主要目的在于提供一种虚拟交换机与物理交换机的非聚合端口级联系统,本发明的另一目的在于提供一种虚拟交换机与物理交换机的非聚合端口级联方法,能够保证虚拟机正常通信,且物理交换机不需要支持端口聚合,降低云计算数据中心的部署成本和管理成本。

本发明提供一种虚拟交换机与物理交换机的非聚合端口级联系统,虚拟交换机通过物理服务器的多个物理网卡绑定的虚拟端口与物理交换机通信连接,所述系统包括预设模块、截获模块和筛选模块;

所述预设模块用于在虚拟端口创建MAC学习受限属性变量,并将虚拟端口设置为MAC学习受限;

所述截获模块用于将虚拟交换机从设置为MAC学习受限的虚拟端口接收到的报文转发到筛选模块;

所述筛选模块用于计算报文的源MAC地址在MAC地址表中对应的端口的最近更新时间和该报文的接收时间的差值,剔除差值小于设定的时间阈值的报文,并将未剔除的报文发送回虚拟交换机。

在上述技术方案的基础上,所述MAC学习受限属性变量的取值为MAC学习受限或者MAC学习不受限。

在上述技术方案的基础上,所述预设模块还用于设定所述时间阈值,所述时间阈值用于判定MAC地址表中源MAC地址对应的端口的更新频繁程度。

在上述技术方案的基础上,所述筛选模块还用于对收到的报文进行解析,得到所述报文的目的MAC地址和源MAC地址,以及从MAC地址表中获取所述源MAC地址对应的端口及其最近更新时间。

本发明还提供一种虚拟交换机与物理交换机的非聚合端口级联方法,包括步骤:

S1.预设模块在虚拟端口创建MAC学习受限属性变量,并将虚拟端口设置为MAC学习受限;

S2.截获模块将虚拟交换机从设置为MAC学习受限的虚拟端口接收到的报文转发到筛选模块;

S3.筛选模块计算报文的源MAC地址在MAC地址表中对应的端口的最近更新时间和该报文的接收时间的差值,剔除差值小于设定的时间阈值的报文,并将未剔除的报文发送回虚拟交换机。

在上述技术方案的基础上,步骤S3包括:

S31所述筛选模块对收到的报文进行解析,得到所述报文的目的MAC地址和源MAC地址,以及从MAC地址表中获取所述源MAC地址对应的端口及其最近更新时间;

S32所述筛选模块计算报文的源MAC地址在MAC地址表中对应的端口的最近更新时间和该报文的接收时间的差值,剔除差值小于设定的时间阈值的报文,并将未剔除的报文发送回虚拟交换机。

在上述技术方案的基础上,步骤S3具体包括:

S321判断收到报文的虚拟端口与所述报文的源MAC地址在MAC地址表中对应的端口是否相同,若是,进入S326;若否,进入S322;

S322检测所述报文是否为广播报文,若是,进入S323;若否,进入S326;

S323检测收到报文的虚拟端口是否设置为MAC学习受限,若是,进入S324;若否,进入S326;

S324判断所述报文的接收时间与所述最近更新时间的差值是否小于所述时间阈值,若是,进入S325;若否,进入S326;

S325剔除所述报文;

S326将所述报文发送回虚拟交换机。

在上述技术方案的基础上,所述MAC学习受限属性变量的取值为MAC学习受限或者MAC学习不受限。

在上述技术方案的基础上,所述预设模块设定所述时间阈值,所述时间阈值用于判定MAC地址表中源MAC地址对应的端口的更新频繁程度。

在上述技术方案的基础上,所述时间阈值为1秒。

与现有技术相比,本发明的优点如下:

(1)本发明在虚拟端口创建并设置MAC学习受限属性变量,对收到报文的虚拟端口和该报文的源MAC地址在MAC地址表中对应的端口不相同的广播报文进行筛选,确保剔除接收时间与最近更新时间的差值小于设定的时间阈值的广播报文,从而保证虚拟机正常通信,提高云计算数据中心的运行效率,提升用户体验。

(2)采用本发明的物理交换机不需要支持端口聚合,因此,降低了云计算数据中心的部署成本和管理成本,减少维护时间和费用。

(3)本发明适用于多种虚拟交换机,适用范围广。

附图说明

图1是虚拟交换机与物理交换机的连接示意图;

图2是本发明实施例虚拟交换机与物理交换机的非聚合端口级联系统示意图;

图3是本发明实施例虚拟交换机与物理交换机的级联方法流程图;

图4是步骤S32的具体流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

通常情况下,虚拟交换机发出的广播报文先后通过虚拟网卡vnet1和虚拟端口bond进入虚拟交换机的时间间隔很小,而虚拟交换机分别从迁移前后的两个物理服务器的端口发出的报文被转发到虚拟端口bond的时间间隔相对较长。

基于上述原理,本发明实施例提供一种虚拟交换机与物理交换机的非聚合端口级联系统,虚拟交换机通过物理服务器的多个物理网卡绑定的虚拟端口与物理交换机通信连接,参见图2所示,包括预设模块,截获模块和筛选模块。

预设模块用于在虚拟端口创建MAC学习受限属性变量,并将虚拟端口设置为MAC学习受限。

MAC学习受限属性变量的取值为MAC学习受限或者MAC学习不受限。

预设模块还用于设定时间阈值,时间阈值用于判定MAC地址表中源MAC地址对应的端口的更新频繁程度。

时间阈值可以默认设定为1秒。由于不同物理交换机的运行性能和实际负载情况存在差异,因此,可以根据不同物理交换机的具体情况灵活设定时间阈值。

截获模块用于将虚拟交换机从设置为MAC学习受限的虚拟端口接收到的报文转发到筛选模块。

筛选模块用于计算报文的源MAC地址在MAC地址表中对应的端口的最近更新时间和该报文的接收时间的差值,剔除差值小于设定的时间阈值的报文,并将未剔除的报文发送回虚拟交换机。

筛选模块还用于对收到的报文进行解析,得到报文的目的MAC地址和源MAC地址,以及从MAC地址表中获取源MAC地址对应的端口及其最近更新时间。

预设模块、截获模块和筛选模块均设于虚拟交换机中。

本发明在虚拟端口创建并设置MAC学习受限属性变量,对收到报文的虚拟端口和该报文的源MAC地址在MAC地址表中对应的端口不相同的广播报文进行筛选,确保剔除接收时间与最近更新时间的差值小于设定的时间阈值的广播报文,从而保证虚拟机正常通信,提高云计算数据中心的运行效率,提升用户体验。

采用本发明的物理交换机不需要支持端口聚合,因此,降低了云计算数据中心的部署成本和管理成本,减少维护时间和费用。

参见图3所示,本发明实施例提供一种虚拟交换机与物理交换机的非聚合端口级联方法,包括步骤:

S1.预设模块在虚拟端口创建MAC学习受限属性变量,并将虚拟端口设置为MAC学习受限。

S2.截获模块将虚拟交换机从设置为MAC学习受限的虚拟端口接收到的报文转发到筛选模块。

S3.筛选模块计算报文的源MAC地址在MAC地址表中对应的端口的最近更新时间和该报文的接收时间的差值,剔除差值小于设定的时间阈值的报文,并将未剔除的报文发送回虚拟交换机。

步骤S3包括:

S31筛选模块对收到的报文进行解析,得到报文的目的MAC地址和源MAC地址,以及从MAC地址表中获取源MAC地址对应的端口及其最近更新时间。

S32筛选模块计算报文的源MAC地址在MAC地址表中对应的端口的最近更新时间和该报文的接收时间的差值,剔除差值小于设定的时间阈值的报文,并将未剔除的报文发送回虚拟交换机。

参见图4所示,步骤S32具体包括:

S321判断收到报文的虚拟端口与报文的源MAC地址在MAC地址表中对应的端口是否相同,若是,进入S326;若否,进入S322。

S322检测报文是否为广播报文,若是,进入S323;若否,进入S326。

S323检测收到报文的虚拟端口是否设置为MAC学习受限,若是,进入S324;若否,进入S326。

S324判断报文的接收时间与最近更新时间的差值是否小于时间阈值,若是,进入S325;若否,进入S326。

S325剔除报文。

S326将报文发送回虚拟交换机。

MAC学习受限属性变量的取值为MAC学习受限或者MAC学习不受限。

预设模块设定时间阈值,时间阈值用于判定MAC地址表中源MAC地址对应的端口的更新频繁程度。时间阈值为1秒。

本发明适用于多种虚拟交换机,虚拟交换机可以为Open vSwitch、Linux网桥、VMware vSphere标准交换机或者VMware vSphere分布式交换机,因此,本发明的适用范围广。

以下以开源虚拟交换机Open vSwitch为例对本发明作进一步详细说明,对其它类型的虚拟交换机同理可得。

虚拟交换机Open vSwitch通过物理服务器的多个物理网卡绑定的虚拟端口与物理交换机通信连接,将预设模块、截获模块和筛选模块安装在该物理服务器上。

预设模块在虚拟端口上创建MAC学习受限属性变量,并将MAC学习受限属性变量设置为MAC学习受限,以及设定用于判定MAC地址表中源MAC地址对应的端口的更新频繁程度的时间阈值。

创建的MAC学习受限属性变量可以命名为mac-learning-limited,并对MAC学习受限属性变量进行设置,例如,可以将mac-learning-limited设为true,表示绑定的虚拟端口为MAC学习受限,mac-learning-limited设为false,表示绑定的虚拟端口为MAC学习不受限。

时间阈值用于判定MAC地址表中源MAC地址对应的端口的更新频繁程度,可以设置为1秒,如果报文的接收时间与该报文的源MAC地址在MAC地址表中对应的端口的最近更新时间的差值小于1秒,则判定该报文的源MAC地址对应的端口更新频繁。

本系统对虚拟交换机的MAC地址学习算法进行修改,具体的,在虚拟交换机Open vSwitch中,MAC地址学习算法为mac_learning_insert函数。

具体方法为:虚拟交换机Open vSwitch接收到的报文的当前端口为in_port,虚拟交换机Open vSwitch在MAC地址表中找到该报文的源MAC地址的表项e,该报文的源MAC地址对应的端口为e->port.ofp_port,

进行如下操作:

a)检查该报文的in_port端口与e->port.ofp_port是否相同,若否,则转b);若是,转e)。

b)检查该报文是否为广播报文,若是,则转c);若否,转e)。

c)检查该报文的in_port端口的mac-learning-limited属性,如果该属性为true,则转d);若否,转e)。

d)计算接收时间与表项e中的最近更新时间的差值,如果上述差值小于1秒,则返回NULL,即剔除该报文;若否,转e)。

e)将报文发送到虚拟交换机Open vSwitch。

虚拟交换机Open vSwitch则继续执行mac_learning_insert函数的后续代码,即虚拟交换机根据MAC地址学习算法将MAC地址表中该报文的源MAC地址的表项e的e->port.ofp_port更新为in_port端口。

本发明在绑定的虚拟端口创建并设置MAC学习受限属性变量,对虚拟端口和源MAC地址对应的端口不相同的广播报文进行筛选,可以确保剔除设置为MAC学习受限的当前端口对应的接收时间与最近更新时间的差值小于时间阈值的广播报文,从而保证虚拟机正常通信,提高云计算数据中心的运行效率,提升用户体验。

采用本发明的物理交换机不需要支持端口聚合,因此,降低了云计算数据中心的部署成本和管理成本,减少维护时间和费用。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1