一种数据包转发的方法、装置及系统的制作方法

文档序号:8342637阅读:287来源:国知局
一种数据包转发的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种数据包转发的方法、装置及系统。
【背景技术】
[0002]在SDN (Software Defined Network,软件定义网络)中,其核心技术是 OpenFlow,OpenFlow技术的思想是将原本完全由交换机/路由器控制的数据包转发过程转化为由OpenFlow交换机和控制器控制器分别完成的独立过程。即在OpenFlow交换机上实现数据的转发,在控制器上实现对数据的转发控制,从而将数据转发层和控制层分离。
[0003]在SDN场景下,虚拟机需要将数据包经过与其相连的Vswitch (Virtual Switch,虚拟交换机)发送至目的端口,Vswitch在接收到数据包之后,向控制器发送Packin消息来获取目的端口,控制器根据接收的Packin消息向Vswitch发送Packetout消息来告知Vswitch此数据包的目的端口。进而,Vswitch接收到控制器发送的Packetout消息之后,按照控制器指示的转发方式将数据包发送至目的端口,完成虚拟机对数据包的转发。
[0004]在上述数据包转发的过程中,若将控制器虚拟部署时,Vswitch在控制器虚拟部署的过程中,接收到VRM (Virtual Resource Management,管理虚拟机)发送的数据包时,由于控制器没有创建完成,Vswitch无法在控制器中获取转发数据包的流表,则Vswitch无法将接收到的数据包进行转发。所以,在现有技术中,控制器必须是物理部署,这样,Vswitch在接收到VRM发送的数据包之时,可以通过在控制器获取的转发流表转发数据包,保证数据包的正常转发。

【发明内容】

[0005]本发明的实施例提供了一种数据包转发的方法、装置及系统,用于在虚拟部署控制器时,保证数据包的正常转发。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,本发明实施例提供了一种数据包转发的方法,包括:第一虚拟交换机Vswitch接收管理虚拟机VRM发送的数据包;在所述第一 Vswitch没有建立与控制器虚拟机间的连接时,所述第一 Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口 ;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
[0008]在第一方面的第一种可能的实现方式中,在所述第一 Vswitch接收所述VRM发送的所述数据包之前,还包括:所述第一 Vswitch接收所述VRM发送的第一消息;其中,所述第一 Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;所述第一 Vswitch根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
[0009]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述第一 Vswitch根据获取的所述第一消息创建所述缺省转发表之后,还包括:所述第一 Vswitch建立与所述控制器虚拟机间的连接。
[0010]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括:在所述第一 VswitCh建立了与所述控制器虚拟机间的连接时,所述第一Vswitch根据转发流表转发所述数据包;其中,所述转发流表是所述第一 Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
[0011]结合第一方面,或第一方面的第一至第三任一种可能的实现方式,在第一方面的第四种可能的实现方式中,还包括:在所述第一 Vswitch建立了与所述控制器虚拟机间的连接时,所述第一 Vswitch删除所述缺省转发表。
[0012]第二方面,本发明实施例提供了一种数据包转发的方法,包括:管理虚拟机VRM向第一 Vswitch发送数据包。
[0013]在第二方面的第一种可能的实现方式中,在所述VRM向所述第一 Vswitch发送数据包之前,还包括:所述VRM向所述第一 Vswitch发送第一消息;其中,所述第一 Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
[0014]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,在所述VRM向所述第一 Vswitch发送第一消息之后,还包括:所述VRM创建控制器虚拟机;所述VRM向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
[0015]第三方面,本发明实施例提供了一种数据包转发的方法,包括:控制器虚拟机接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机;所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
[0016]在第三方面的第一种可能的实现方式中,在所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch之后,还包括:在所述第一 Vswitch是所述控制器虚拟机管理的Vswitch时,所述控制器虚拟机建立与所述第一Vswitch间的连接。
[0017]结合第三方面的第一种可能的实现方式,在第三方面的第四种可能的实现方式中,在所述控制器虚拟机建立与所述第一 Vswitch间的连接之后,还包括:所述控制器虚拟机向所述第一 Vswitch发送转发流表。
[0018]第四方面,本发明实施例提供了一种虚拟交换机,包括:接收单元,用于接收管理虚拟机VRM发送的数据包;转发单元,用于在虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口 ;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
[0019]在第四方面的第一种可能的实现方式中,所述接收单元,还用于接收所述VRM发送的第一消息;其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;创建单元,用于根据所述接收单元接收的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
[0020]结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述创建单元,还用于建立与所述控制器虚拟机间的连接。
[0021]结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述转发单元,还用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包;其中,所述转发流表是所述虚拟交换机通过所述控制器虚拟机获取的,用于转发数据包的流表。
[0022]结合第四方面,或第四方面的第一至第三任一种可能的实现方式中,还包括:删除单元,用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,删除所述缺省转发表。
[0023]第五方面,本发明实施例提供了一种管理虚拟机,包括:发送单元,用于向第一Vswitch发送数据包。
[0024]在第五方面的第一种可能的实现方式中,所述发送单元,还用于向所述第一Vswitch发送第一消息;其中,所述第一 Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
[0025]结合第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,还包括:创建单元,用于创建控制器虚拟机;所述发送单元,还用于向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
[0026]第六方面,本发明实施例提供了一种控制器虚拟机,包括:接收单元,用于接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机;确定单元,用于根据所述接收单元获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
[0027]在第六方面的第一种可能的实现方式中,还包括:创建单元,用于在所述确定单元确定所述第一 Vswitch是所述控制器虚拟机管理的Vswitch时,建立与所述第一 Vswitch间的连接。
[0028]结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,还包括:发送单元,用于向所述第一 Vswitch发送转发流表。
[0029]第七方面,本发明实施例提供了一种物理机,包括:硬件层以及运行在所述硬件层上的虚拟交换机;其中,所述虚拟交换机用于:接收管理虚拟机VRM发送的数据包;在所述虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口 ;所述控制器虚拟机是用于管理虚拟交换机,且确定所述虚拟交换机转发数据包时的转发规则的虚拟机。
[0030]在第七方面的第一种可能的实现方式中,所述虚拟交换机还用于:接收所述VRM发送的第一消息;其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
[0031]结合第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述虚拟交换机还用于:建立与所述控制器虚拟机间的连接。
[0032]结合第七方面的第二种可能的实现方式,在第七方面的第三种可能的实现方式中,所述虚拟交换机还用于:在建立了与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包;其中,所述转发流表是所述第一 Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
[0033]结合第七方面,或第七方面的第一至第三任一种可能的实现方式中,所述虚拟交换机还用于:在建立了与所述控制器虚拟机间的连接时,删除所述缺省转发表。
[0034]第八方面,本发明实施例提供了一种物理机,包括:硬件层以及运行在所述硬件层上的管理虚拟机VRM;其中,所述VRM用于向虚拟交换机发送数据包。
[0035]在第八方面的第一种可能的实现方式中,所述VRM还用于:向所述第一 Vswitch发送第一消息;其中,所述第一 Vswitch
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1