本发明涉及通信,具体为一种在云环境支持qinq通信的方法。
背景技术:
1、在openstack云网络中,通过network trunk方式可以使用一个主端口和多个不同vlan网络的子端口共同创建一个虚拟trunk,通过主端口创建的虚拟机可以直接配置子端口的ip和vlan id,实现对子端口报文的透传。
2、但是,上述实现方式的底层原理是在ovs网桥上为虚拟机创建不同的子端口,并且为这些端口添加不同的vlan id进行传输。因此,在服务器连接的交换机上依然转发的是携带子端口vlan id的报文,交换机需要配置子端口所属的vlan,并没有降低交换机上vlanid的消耗,没有实现qinq报文的传输。
技术实现思路
1、本发明的目的在于提供一种在云环境支持qinq通信的方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种在云环境支持qinq通信的方法,所述方法包括以下步骤:
3、在neutron-server的api中创建trunk;
4、设置trunk为开启qinq,并且添加主网络端口和多个子网络的端口;
5、在ovs网桥上实现虚拟机子端口报文转发所需要的配置和相关流表的下发;
6、在物理交换机上,放通主端口所在网络的vlan报文。
7、优选的,添加主网络端口和多个子网络的端口后,使用主网络端口创建虚拟机。
8、优选的,添加主网络端口和多个子网络的端口后,判断是否存在子端口。
9、优选的,判断是否存在子端口具体包括:
10、步骤1,如果开启了qinq,则在ovs网桥上配置到主端口的流表;
11、步骤2,判断是否存在子端口,如果不存在则不需要配置,否则需要在tbr网桥上为主端口配置qinq;
12、步骤3,如果存在子端口,获取子端口的vlan id、mac地址、ip地址信息;
13、步骤4,根据子端口的信息,为tbr网桥和br-int网桥添加流表,转发匹配对应规则的报文。
14、与现有技术相比,本发明的有益效果是:
15、本发明提出的在云环境支持qinq通信的方法支持对qinq报文的透传,当用户采用开启qinq的透传模式时,交换机只需要配置报文外层的vlan id就可以支持虚拟机之间子端口的正常通信,实现了虚拟机内层vlan tag的透明传输。保证在不影响其他通信的前提下,最大程度降低了交换机上vlan资源的消耗。同时取消了在ovs网桥上创建子端口的行为,也降低了ovs网桥上端口的占用;通过流表规则约束只对用户绑定了trunk的子网络端口对应vlan id报文进行qinq封装,其他vlan id的报文禁止转发。在提供虚拟机子端口之间的通信支持的同时,也提高了安全性。
1.一种在云环境支持qinq通信的方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种在云环境支持qinq通信的方法,其特征在于:添加主网络端口和多个子网络的端口后,使用主网络端口创建虚拟机。
3.根据权利要求2所述的一种在云环境支持qinq通信的方法,其特征在于:添加主网络端口和多个子网络的端口后,判断是否存在子端口。
4.根据权利要求3所述的一种在云环境支持qinq通信的方法,其特征在于:判断是否存在子端口具体包括: