一种用户隔离方法和交换机与流程

文档序号:13534222阅读:537来源:国知局
一种用户隔离方法和交换机与流程

本发明涉及通信领域,尤其涉及一种用户隔离方法和交换机。



背景技术:

虚拟局域网(virtuallocalareanetwork,vlan)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就类似于在同一个网段中一样,由此得名虚拟局域网。vlan工作在开放系统互联(opensysteminterconnection,osi)参考模型的第2层和第3层。

在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应一个特定的租户,默认情况下这些不同的广播域是相互隔离的。不同的广播域之间想要通信,需要通过一个或多个路由器或交换机转发通信,这样的一个广播域就为一个vlan,一个vlan下的用户可以为一个租户,即一个租户中可以包括多个用户。租户可以理解为终端策略组(end-pointpolicygroup,epg),即一个租户中的所有用户为一个epg。不同vlan或不同的租户之间的通信是通过第3层的路由器或交换机来完成的。

这样,采用不同的vlan对用户进行隔离后,不同的epg可以分配不同的vlan,当一个vlan中的一个设备发出广播或未知单播或组播(broadcast、unicastunknown、multicast,bum)流量时,会在该vlan中泛洪,该vlan中的整网设备都会接收到该bum流量。但是,vlan的资源有限,导致支持的租户(隔离组)数量有限,如果不同的租户共享同一个vlan,将会导致bum流量无法在租户间隔离。



技术实现要素:

本发明实施例提供一种用户隔离方法和交换机,能够解决bum流量无法在租户间隔离的问题。

一方面,提供一种用户隔离方法,包括:

交换机侦听第一用户上线时发送的第一报文中携带的信息;交换机根据第一报文中携带的信息与终端策略组epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识以及epg的标识与网际协议ip组播地址的对应关系确定第一用户对应第一ip组播地址,并确定第一用户属于第一ip组播地址所对应的组播组;其中epg包括虚拟局域网vlan,虚拟扩展局域网vxlan,或同一个网段或子网中的用户中的部分用户,第一epg为多个epg中的一个;交换机将第一用户加入组播组;当交换机接收到第一用户发送的第一广播和未知单播组播bum流量时,交换机将第一bum流量封装为组播组的第一组播流量,第一组播流量包括第一ip组播地址,以使第一组播流量转发至属于组播组对应的其它用户。

由此,如果同一vlan下存在不同的epg,不同的epg下的bum流量需要隔离,一个epg为一个租户群,当在交换机中为epg配置了ip组播地址时,如果第一用户上线,交换机根据第一用户上线时侦听到的信息确定第一用户所属的组播组的第一ip组播地址,并将第一用户加入到该组播组中,如果交换机接收到第一用户发送的bum流量,交换机便可根据第一ip组播地址将bum流量封装为组播流量后转发至属于组播组的其余用户,使得同一vlan下的不同的epg间的bum流量隔离。

在一种可能的设计中,方法进一步包括:交换机建立vlan标识以及入接口标识共同与epg的标识的对应关系;以及交换机建立epg的标识与ip组播地址的对应关系。其中,对应关系可以是接入控制器(accesscontroller,ac)向交换机下发配置的,也可以是人工配置在交换机中的。

由此,当任一用户从交换机的接口上线时,可以根据对应关系确定用户所属的epg及其ip组播地址,以便根据ip组播地址发送组播流量。

在一种可能的设计中,交换机根据第一报文中携带的信息与终端策略组epg的标识的对应关系确定第一用户属于第一epg包括:交换机根据第一报文中携带的第一vlan标识、交换机接收第一报文的第一入接口,以及vlan标识以及入接口标识共同与epg的标识的对应关系确定第一用户属于第一epg。

在一种可能的设计中,交换机将第一用户加入组播组包括:交换机确定是否存在与第一用户共同属于第一ip组播地址所对应的组播组的第二用户;确定是,则将第一用户加入到与第二用户共同所属的组播组,并建立第一入接口标识和第一ip组播地址的对应关系;若确定否,则交换机建立第一入接口标识和第一ip组播地址的对应关系,通过与交换机连接的上游设备向汇聚点rp发送组播加入消息,组播加入消息包括第一ip组播地址,以及建立交换机发送组播加入消息的第一出接口的标识与第一ip组播地址的对应关系,以使上游设备和rp建立接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。

由此,将用户的ip组播地址与交换机的入接口和出接口建立对应关系后,当用户发送组播流量时,交换机可以根据ip组播地址与交换机的入接口和出接口将组播流量进行转发至组播组的其余用户,即基于接口粒度将用户加入到组播组中。

在一种可能的设计中,交换机将第一用户加入组播组包括:交换机确定是否存在与第一用户属于同一组播组的第二用户;若确定是,则将第一用户加入到与第二用户共同所属的组播组,并建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的对应关系;若确定否,则交换机建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的标识的对应关系,通过与交换机连接的上游设备向汇聚点rp发送组播加入消息,组播加入消息包括第一ip组播地址,以及建立交换机发送组播加入消息的第一出接口标识与第一ip组播地址的对应关系,以使上游设备和rp建立接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。

由此,可基于用户粒度将用户加入到组播组中。这样,在同一接口下对应有多个用户例如对应多个vm时,如果多个vm属于不同的epg,可以根据用户的ip地址和接口标识共同与epg的对应关系确定属于同一epg的vm,避免不必要的流量泛洪。

在一种可能的设计中,方法还包括:当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,交换机根据第二ip组播地址与出接口的对应关系,向与第二ip组播地址对应的出接口下的用户复制并发送第二组播流量。

在一种可能的设计中,方法还包括:当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,交换机根据至少一个用户对应的第二入接口标识和第二ip地址共同与第二ip组播地址的对应关系,将第二ip组播地址替换为与第二ip组播地址对应的第二ip地址;交换机将与第二入接口标识对应的接口作为出接口,在出接口处复制第二组播流量,并根据替换后的第二ip地址将复制的第二组播流量发送给至少一个用户。

举例来说,当交换机同一接口下连接有多个虚拟机(virtualmachine,vm)时,如果多个虚拟机属于不同的epg,可以根据接口标识和ip地址共同与ip组播地址的对应关系将ip组播地址替换为vm的ip地址,由组播改为单播,以使得同一epg的用户的组播流量不会发送给其它epg的用户。

在一种可能的设计中,在第一用户上线后,方法还包括:

交换机为第一用户建立成员表,成员表包括第一用户的mac地址、第一入接口标识、第一vlan标识和第一ip地址的对应关系,第一成员表用于检验发送组播流量的用户是否合法。

例如,有另一用户仿冒第一用户的ip地址和mac地址,在另一接口向交换机发送攻击的组播流量,那么交换机可以根据保存的成员表确定组播流量对应的接口信息有误,确定该组播流量不合法,以便阻止该非法的组播流量的发送。

在一种可能的设计中,方法还包括:当交换机侦听到第一用户下线时,删除成员表,并向汇聚点rp发送第二报文,第二报文包括第一ip组播地址,以便rp删除接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和出接口标识与第一ip组播地址的对应关系。

由此,第一用户下线时,删除交换机中的成员表和rp中的对应关系,可以节省交换机和rp的存储空间。

另一方面,提供一种交换机,包括:

侦听单元,用于侦听第一用户上线时发送的第一报文中携带的信息;确定单元,用于根据第一报文中携带的信息与终端策略组epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识以及epg的标识与网际协议ip组播地址的对应关系确定第一用户对应第一ip组播地址,并确定第一用户属于第一ip组播地址所对应的组播组,其中epg包括虚拟局域网vlan,虚拟扩展局域网vxlan,或同一个网段或子网中的用户中的部分用户,第一epg为多个epg中的一个;加入单元,用于将第一用户加入组播组;封装单元,用于当交换机接收到第一用户发送的第一广播和未知单播组播bum流量时,将第一bum流量封装为组播组的第一组播流量,第一组播流量包括第一ip组播地址,以使第一组播流量转发至属于组播组对应的其它用户。

在一种可能的设计中,还包括:建立单元,用于建立vlan标识以及入接口标识共同与epg的标识的对应关系;以及建立epg的标识与ip组播地址的对应关系。

在一种可能的设计中,确定单元用于:

根据第一报文中携带的第一vlan标识、交换机接收第一报文的第一入接口,以及vlan标识以及入接口标识共同与epg的标识的对应关系确定第一用户属于第一epg。

在一种可能的设计中,加入单元包括:确定子单元,用于确定是否存在与第一用户共同属于第一ip组播地址所对应的组播组的第二用户;建立子单元用于:若确定是,则将第一用户加入到与第二用户共同所属的组播组,并建立第一入接口标识和第一ip组播地址的对应关系;若确定否,则建立第一入接口标识和第一ip组播地址的对应关系,方法还包括发送子单元,用于通过与交换机连接的上游设备向汇聚点rp发送组播加入消息,组播加入消息包括第一ip组播地址,以及建立交换机发送组播加入消息的第一出接口的标识与第一ip组播地址的对应关系,以使上游设备和rp建立接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。

在一种可能的设计中,加入单元包括:确定子单元,用于确定是否存在与第一用户属于同一组播组的第二用户;建立子单元用于:若确定是,则将第一用户加入到与第二用户共同所属的组播组,并建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的对应关系;若确定否,则建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的标识的对应关系,通过与交换机连接的上游设备向汇聚点rp发送组播加入消息,组播加入消息包括第一ip组播地址,以及建立交换机发送组播加入消息的第一出接口标识与第一ip组播地址的对应关系,以使上游设备和rp建立接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。

在一种可能的设计中,还包括发送单元,用于:当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,根据第二ip组播地址与出接口的对应关系,向与第二ip组播地址对应的出接口下的用户复制并发送第二组播流量。

在一种可能的设计中,还包括替换单元,用于当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,根据至少一个用户对应的第二入接口标识和第二ip地址共同与第二ip组播地址的对应关系,将第二ip组播地址替换为与第二ip组播地址对应的第二ip地址;发送单元,用于将与第二入接口标识对应的接口作为出接口,在出接口处复制第二组播流量,并根据替换后的第二ip地址将复制的第二组播流量发送给至少一个用户。

在一种可能的设计中,建立单元还用于:为第一用户建立成员表,成员表包括第一用户的mac地址、第一入接口标识、第一vlan标识和第一ip地址的对应关系,第一成员表用于检验发送组播流量的用户是否合法。

在一种可能的设计中,还包括:删除单元,用于当交换机侦听到第一用户下线时,删除成员表;发送单元还用于:向汇聚点rp发送第二报文,第二报文包括第一ip组播地址,以便rp删除接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和出接口标识与第一ip组播地址的对应关系。

本发明实施例提供一种用户隔离方法和交换机,交换机侦听第一用户上线时发送的第一报文中携带的信息,交换机根据第一报文中携带的信息与epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识以及epg的标识与ip组播地址的对应关系确定第一用户对应第一ip组播地址,并确定第一用户属于第一ip组播地址所对应的组播组,而后,交换机将第一用户加入组播组,当交换机接收到第一用户发送的第一bum流量时,交换机将第一bum流量封装为组播组的第一组播流量,第一组播流量包括第一ip组播地址,以使得第一组播流量转发至组播组的其它用户,这样通过在一个网络中划分不同的epg,每个epg分配一个ip组播地址用以承载该epg的用户的所有bum流量,即通过隔离的不同epg的bum流量来实现用户隔离,以解决共享同一vlan或同一vxlan的租户群间的bum流量无法隔离的问题,相对于现有技术中非组播方式转发流量,可能会导致不必要的端口也接收到该流量,占用网络带宽,本申请会优化bum流量的转发功能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种vlan的网络结构示意图;

图2为本发明实施例提供的一种vxlan的网络结构示意图;

图3为本发明实施例提供的一种用户隔离方法的流程示意图;

图4为本发明实施例提供的一种多个epg间流量隔离的系统示意图;

图5为本发明实施例提供的一种用户加入到组播组中的信号流程图;

图6为本发明实施例提供的一种发送组播流量的信号流程图;

图7为本发明实施例提供的一种用户下线时的信号流程图;

图8为本发明实施例提供的一种交换机的结构示意图;

图9为本发明实施例提供的一种交换机的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在vlan中,每个vlan对应一个网段或子网,可以减少在同一个广播域中的服务器的数量,降低不必要的广播流量。如图1所示,与交换机连接的多个用户对应不同的vlan,用户1、用户2和用户3对应的用户设备属于vlan10,用户4和用户5对应的用户设备属于vlan20,vlan10和vlan20之间的bum流量隔离,即vlan10中的任一用户设备发送bum流量时,vlan10中的其它所有用户设备都会接收到该bum流量,而vlan20中的用户设备都不会接收到该bum流量。如果该bum流量需要从vlan10传输至vlan20,则需要通过路由器或三层交换机来实现。

虚拟扩展局域网(virtualextensiblelocalareanetwork,vxlan)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。每个广播域(broadcastdomain,bd)被称为vxlansegment,它的id是由位于vxlan数据包头中的vxlan网络标识符(vxlannetworkidentifier,vni)标识的。vni字段包含24bits,故segments最大数量为2的24次方个,并且只有在相同vxlansegment内的虚拟机之间才可以相互通信。在vxlan中,将传统的物理服务器虚拟化成若干个虚拟服务器,即虚拟机(virtualmachine,vm),每个vm运行着独立的操作系统。同一个vxlan对应的租户拥有虚拟服务器资源池中的一个vm或一组vm。如图2所示,vxlan中,可以包括汇聚点(rendezvouspoint,rp)(图中未示出)、脊(spine)交换机、叶(leaf)交换机和服务器。不同的leaf交换机下连接有多个服务器,每个服务器中包括有至少一个vm,每个vm为一个独立的用户,服务器1包括vm1和vm2,服务器2包括vm3和vm4,服务器3包括vm5和vm6,同一服务器中的不同的vm可能属于不同的租户,如图2中的vm1和vm6可以属于同一租户,vm2和vm3可以属于同一租户,vm4和vm5可以属于同一租户。在同一vxlan网络内任何一个vm(或服务器)发出的bum流量都会在该vxlan中泛洪至每个成员,跨vxlan之间的bum流量需要通过路由器或三层交换机来实现。

针对现有技术中vlan和vxlan需要全局规划,且vlan和vxlan资源有限,导致支持的隔离组数量有限,如果不同的租户共享同一个vlan或vxlan,则会导致bum流量无法在租户间隔离的问题,本发明采用在同一个vlan或vxlan中划分不同的租户群epg,并给每个epg分配一个ip组播地址,用以承载同一epg的bum流量,这样通过隔离bum流量来实现用户隔离。因此,本发明实施例提供一种用户隔离方法,以vxlan为例,如图3所示,包括:

301、交换机建立vlan标识及交换机的入接口标识共同与epg的标识的对应关系,以及建立epg的标识与ip组播地址的对应关系。

这里的交换机为leaf交换机,即与用户设备直接连接的交换机。

在本申请实施例中,可为每一个epg都分配一个ip组播地址,并建立epg的标识与ip组播地址的对应关系。epg即为一个租户,同一个vlan可能对应一个epg或多个epg,即多个epg共享同一vlan,同样的,同一个vxlan也可能对应一个epg或多个epg。例如,如图4所示,不同的vm与机顶交换机(topofrank,tor)连接(图中未示出),tor为本实施例中的leaf交换机。其中vm1和vm6为同一个租户,属于epg-1,epg-1对应的ip组播地址为225.0.0.1,vm2和vm3为同一个租户,属于epg-2,epg-2对应的ip组播地址为225.0.0.2,vm4和vm5为同一个租户,属于epg-3,epg-3对应的ip组播地址为225.0.0.3。epg-1、epg-2和epg-3均属于同一个vxlan的广播域bd8,其对应的vni为10000,该vxlan对应的网段为ip192.168.1.1/16。网关(gateway,gw)1和gw2可以为路由器或交换机。

当在leaf交换机中配置vlan标识以及leaf交换机的入接口标识共同与epg的标识的对应关系后,若某一用户上线时,则leaf交换机可根据接收该用户发送报文的入接口的标识和报文中携带的vlan标识与epg的标识的对应关系确定用户所属的epg。

其中,leaf交换机中建立的vlan标识和入接口标识共同与epg的标识的对应关系,和epg的标识与ip组播地址的对应关系可以是人工配置在leaf交换机中的,也可以是如图4中的接入控制器(accesscontroller,ac)向leaf交换机直接或间接通过其它交换机下发配置信息并保存在leaf交换机中的。其中在人工配置时,可以通过命令行将对应关系输入至leaf交换机;在ac下发配置信息至leaf交换机时,可以先将配置信息通过命令行输入配置在ac端,ac通过与leaf交换机之间连接的gw将配置信息透传给leaf交换机,或者ac也可以与leaf交换机直接连接,并将配置信息直接下发给leaf交换机,例如ac可以通过openflow接口或网络管理接口或其它接口向leaf交换机下发配置信息。

302、交换机侦听第一用户上线时发送的第一报文中携带的信息。

当某一时刻,一个新用户(对应一个vm)从leaf交换机上线时,leaf交换机可以接收到第一用户发送的第一报文,该第一报文可以为动态主机配置协议(dynamichostconfigurationprotocol,dhcp)报文,并侦听dhcp报文中携带的第一用户的第一媒体访问控制(mediaaccesscontrol,mac)地址和第一用户所属的第一vlan的第一vlan标识。

303、交换机根据第一报文中携带的信息与epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识与ip组播地址的对应关系确定第一用户对应的第一ip组播地址。

leaf交换机在侦听到第一报文中携带的第一用户的第一mac地址和第一vlan标识后,可根据接收到第一报文的接口确定第一用户连接leaf交换机的第一接口标识,并为第一用户分配第一ip地址。leaf交换机可根据第一mac地址、第一vlan标识、第一ip地址和第一接口标识为第一用户设备建立成员表,成员表包括该第一mac地址、第一vlan标识、第一ip地址和第一接口标识等信息。该成员表可用于安全校验,以检测后续用户发送的组播流量是否合法,例如存在另一用户仿冒了与第一用户相同的第一mac地址和第一ip地址,但是另一用户与第一用户分别和leaf交换机连接的是不同的接口,另一用户可能从另一接口向leaf交换机发送用于攻击的组播流量。假设leaf交换机在确定另一用户发送组播流量时与成员表中的第一ip地址和第一mac地址均相同,但是接口标识与成员表中的第一接口标识不同,则leaf交换机可以不接收另一用户发送的组播流量。

由于leaf交换机中保存有接口标识和vlan标识共同与epg的标识的对应关系,于是,leaf交换机可以根据第一接口标识和第一vlan标识共同与第一epg的标识的对应关系确定第一用户所属的第一epg,例如第一用户属于epg-1。又由于leaf交换机中保存有epg的标识与ip组播地址的对应关系,因此,leaf交换机可以根据第一用户所属的第一epg的标识与第一ip组播地址的对应关系确定第一用户所属的组播组对应的第一ip组播地址,例如epg-1对应的ip组播地址为225.0.0.1,第一用户所属的组播组对应的ip组播地址就为225.0.0.1。组播组可以理解为组播报文或者数据帧发送的目标地址,这里的目标地址例如为225.0.0.1。

leaf交换机保存有接口标识和vlan标识共同与epg的标识的对应关系是由于leaf交换机的同一接口可能连接有不同epg中的vm,即,leaf交换机的任一接口可连接不同的vxlan或不同的epg中的vm。

304、交换机将第一用户加入组播组,而后执行步骤305或步骤306。

leaf交换机在确定第一用户所属的组播组的第一ip组播地址后,可将第一用户加入到该组播组中。用户加入组播组的过程即为建立组播共享树的过程,建立的组播共享树时均以leaf交换机已知的rp为根建立。其中,组播共享树是在网络中选一个rp之后,所有的组播报文都需要从这个rp来进行传送。rp是预先设定的一个路由器或交换机,承担转发所有的组播报文的责任。发送组播报文的服务器在发送组播报文前,需要到rp上进行注册,然后通过直连的路由器或交换机来确定到rp的最短路径,通过rp来确定到目的地的最短路径。

本申请实施例包括基于接口粒度加入到组播组中和基于用户粒度加入到组播组中。无论基于接口粒度还是用户粒度将第一用户加入到组播组中,在将第一用户加入到该组播组之前,由于leaf交换机不同的接口下可能连接有同一epg中的用户,如果与第一用户属于同一组播组的另一用户已经加入到了该组播组中,那么另一用户与rp的传输路径和rp到目的地的传输路径已经建立好,leaf交换机不需要通过组播共享树向rp发送组播加入消息以加入到组播组中,leaf交换机只需将第一用户加入到与所述另一用户所共属的组播组中。

因此,在leaf交换机将第一用户加入组播组之前,leaf交换机先确定交换机中是否保存有与第一用户属于相同组播组的第二用户,具体可以确定leaf交换机中是否建立有第一vlan标识和第二接口标识与第一epg的标识的对应关系,即leaf交换机中不同接口下的用户可以属于同一epg,若确定建立有,则确定leaf交换机中存在与第一用户属于同一组播组的第二用户,此时,该组播组对应的用于转发组播流量的路径已经建立,leaf交换机只需将第一用户加入到leaf交换机的该组播组中即可。

具体地,若基于接口粒度将第一用户加入到组播组中,且已存在与第一用户属于同一组播组的第二用户,则leaf交换机建立接收到第一用户发送的第一报文的第一入接口标识和第一ip组播地址的对应关系;若基于接口粒度将第一用户加入到组播组中,且不存在与第一用户属于同一组播组的第二用户,则如图5所示,leaf交换机建立第一入接口标识和第一ip组播地址的对应关系,通过与交换机连接的上游设备向rp发送组播加入消息,组播加入消息包括第一ip组播地址,并建立leaf交换机发送组播加入消息的第一出接口标识与第一ip组播地址的对应关系,当上游设备和rp接收到组播加入消息时,上游设备和rp建立接收组播加入消息的接口的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。具体地,leaf交换机可以通过协议无关组播((protocolindependentmulticast,pim)join报文向上游交换机和rp发送组播加入消息,每一级接收到组播加入消息的上游交换机以及rp建立接收到pimjoin报文的入接口与第一ip组播地址的对应关系,和发送pimjoin报文的出接口与第一ip组播地址的对应关系,以将第一用户加入到组播组中;

若基于用户粒度将第一用户加入到组播组中,且已存在与第一用户属于同一组播组的第二用户,则leaf交换机建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的对应关系;若基于用户粒度将第一用户加入到组播组中,且不存在与第一用户属于同一组播组的第二用户,则leaf交换机建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的对应关系后,通过与leaf交换机连接的上游设备向rp发送组播加入消息,该组播加入消息包括第一ip组播地址,以及建立leaf交换机发送组播加入消息的第一出接口标识与第一ip组播地址的对应关系,每个上游设备和rp在接收到组播接入消息后,建立接收组播加入消息的入接口标识与第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系,以将第一用户加入到组播组中。

305、当交换机接收到第一用户发送的第一bum流量时,交换机将第一bum流量封装为组播组的第一组播流量,以使第一组播流量转发至属于组播组的其它用户。

当第一用户为vm时,leaf交换机中还可以部署有vxlan隧道终端(vxlantunnelingendpoint,vtep),用于在一端将bum流量封装为vxlan数据报文后通过隧道向另一端vtep发送封装报文,另一端vetp接收到封装的报文解封装后转发报文至各用户。可选的,vetp还可以部署在服务器的虚拟交换机(virtualswitch,vswitch)中,即leaf交换机在接收到用户发送的组播流量时,是vswitch基于vm的mac或ip控制使得转发查表失败确定流量不是单播,需要泛洪,可通过服务器中的vswitch将bum流量封装为组播流量发送给leaf交换机。

当leaf交换机将第一用户加入到组播组中后,若第一用户要发送bum流量至组播组中的其它用户,则当与第一用户连接的leaf交换机接收到第一用户发送的第一bum流量时,如果leaf交换机进行路由查表或地址解析协议(addressresolutionprotocol,arp)查表或媒体访问控制(mediaaccesscontrol,mac)查表失败时,说明流量不是单播,而是bum流量,需要泛洪。如图6所示,leaf交换机中的vtep将第一bum流量封装为第一用户加入的组播组的第一组播流量,在vxlan中按照组播共享树转发该第一组播流量,使得该第一组播流量在已建立的组播共享树中转发至属于该组播组的其它用户。具体地,第一组播流量中包括第一ip组播地址,当leaf交换机接收到该第一组播流量时,leaf交换机根据第一ip组播地址与第一出接口标识的对应关系将第一组播流量发送给上游交换机,上游交换机再根据步骤304中建立的入接口标识与第一ip组播地址的对应关系和出接口标识与第一ip组播地址的对应关系将第一组播流量经过spine交换机和rp发送给组播组与其余用户连接的其它leaf交换机,其它leaf交换机根据其余用户加入组播组时的第一ip组播地址和与其它leaf交换机连接的出接口的对应关系,将第一组播流量发送至组播组的其余用户。

306、当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,交换机根据第二ip组播地址与出接口的对应关系,向与第二ip组播地址对应的出接口下的用户复制并发送第二组播流量。

对于该leaf交换机来说,若是基于接口粒度将用户加入的组播组中,则如果该leaf交换机接收到组播共享树的上游设备转发的第三用户对应的第二组播流量时,假设第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,该leaf交换机可以根据第二ip组播地址与出接口的对应关系,向与第二ip组播地址对应的出接口下的用户复制并发送该第二组播流量。由于第二组播流量中携带第二ip组播地址,该leaf交换机下连接的用户中与第三用户属于同一epg的用户集合与第三用户对应的组播地址相同,即第二ip组播地址,该用户集合中上线的用户也会如同上述第一用户,在上线时加入到第三用户的组播组中,会建立与leaf交换机连接的入接口与第二ip组播地址的对应关系,那么当leaf交换机接收到上游发送的第二组播流量时,会根据第二组播流量中的第二ip组播地址与leaf交换机的入接口的对应关系,将入接口作为向下游的用户发送的出接口,向用户集合中与第三用户属于同一epg的用户发送第二组播流量。由于同一epg中的用户可能连接在leaf交换机上不同的接口上,当leaf交换机确定该epg中的用户与leaf交换机连接的多个接口时,leaf交换机会在每个确定的接口下复制接收到的第二组播流量,并向每个确定的接口发送该第二组播流量,以使得leaf交换机下不同接口下同一epg的用户接收到该第二组播流量。其中在发送第二组播流量时,leaf交换机中的vtep可以根据目的ip即第二ip组播地址解封装第二组播流量,得到第二组播流量对应的报文,以复制和发送该报文至出接口下的用户;或者,leaf交换机将第二组播流量发送给出接口下的用户,用户所在的服务器中的vswitch会对第二组播流量进行解封装,得到解封装后的报文。

由于在vxlan中,同一接口下连接的服务器中可能包括有多个vm,如果将组播流量在leaf交换机与服务器连接的接口下复制并转发至该服务器,可使得该服务器中的多个vm会接收到该组播流量,但是如果多个vm属于不同的epg时,会使得不同的租户都会接收到该组播流量,因此,在上述步骤304中,若是基于用户粒度将用户加入的组播组,即leaf交换机建立有用户的ip地址与ip组播地址的对应关系,则当leaf交换机接收到第三用户对应的第二组播流量时,交换机可以根据至少一个用户对应的第二入接口标识和第二ip地址共同与第二ip组播地址的应关系,将第二ip组播地址替换为与第二ip组播地址对应的第二ip地址;leaf交换机将与第二入接口标识对应的接口作为出接口,在出接口处复制第二组播流量,并根据替换后的第二ip地址将复制的第二组播流量发送给至少一个用户。也就是说,当上游发送的第二组播流量到达leaf交换机时,如果leaf交换机中保存有第二组播流量中的第二ip组播地址与vm和leaf交换机连接的第二入接口标识和第二ip地址的对应关系,将组播转为单播,即用同一epg下的多个vm的第二ip地址替换第二ip组播地址,并将同一epg下的vm与该leaf交换机连接的多个入接口作为流量发送的出接口,在每个出接口处复制该第二组播流量,第二组播流量中携带有替换后的用于单播的第二ip地址,当服务器接收到第二组播流量后,会根据第二ip地址将第二组播流量发送给同一epg下的多个vm,这样可以避免同一接口下不同的epg的用户接收到组播流量,以减少下游设备不必要的流量泛洪或接收到未知流量。

可选的,当第一用户下线时,为了节省交换机的存储资源,该方法还包括:

307、当交换机侦听到第一用户下线时,并向rp发送第二报文,第二报文包括第一ip组播地址,以便rp删除接收组播加入消息的入接口标识与第一ip组播地址的对应关系,和出接口标识与第一ip组播地址的对应关系。

如图7所示,第一用户下线时,会向leaf交换机发送下线通知,该下线通知中包括第一用户的第一ip地址和第一ip组播地址,当leaf交换机侦听到第一用户下线时,会删除第一用户基于接口粒度加入组播组时的第一入接口标识与第一ip组播地址的对应关系,或删除第一用户基于用户粒度加入组播组时的第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,并向rp发送第二报文,第二报文中携带有第一ip组播地址,rp在接收到之后,删除第一ip组播地址与接收组播加入消息的入接口标识。同时,leaf交换机会将为第一用户建立的成员表删除。

此外,leaf交换机也会维护有用户的mac表和arp表。mac表包括leaf交换机建立的mac地址与接口的对应关系,arp表包括mac地址与ip地址的对应关系,因此,当第一用户下线时,leaf交换机也会使得第一用户的mac地址对应的mac表和arp表老化,以节省leaf交换机的存储空间。

因此,本发明实施例提供一种用户隔离方法,交换机侦听第一用户上线时发送的第一报文中携带的信息,交换机根据第一报文中携带的信息与epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识以及epg的标识与ip组播地址的对应关系确定第一用户对应第一ip组播地址,并确定第一用户属于第一ip组播地址所对应的组播组,而后,交换机将第一用户加入组播组,当交换机接收到第一用户发送的第一bum流量时,交换机将第一bum流量封装为组播组的第一组播流量,第一组播流量包括第一ip组播地址,以使得第一组播流量转发至组播组的其它用户,这样通过在一个网络中划分不同的epg,每个epg分配一个ip组播地址用以承载该epg的用户的所有bum流量,即通过隔离的不同epg的bum流量来实现用户隔离,以解决共享同一vlan或同一vxlan的租户群间的bum流量无法隔离的问题,相对于现有技术中非组播方式转发流量,可能会导致不必要的端口也接收到该流量,占用网络带宽,本申请会优化bum流量的转发功能。

本发明实施例提供一种交换机8,如图8所示,包括:

侦听单元802,用于侦听第一用户上线时发送的第一报文中携带的信息;

确定单元803,用于根据第一报文中携带的信息与终端策略组epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识以及epg的标识与网际协议ip组播地址的对应关系确定第一用户对应第一ip组播地址,并确定第一用户属于第一ip组播地址所对应的组播组,其中epg包括虚拟局域网vlan,虚拟扩展局域网vxlan,或同一个网段或子网中的用户中的部分用户,第一epg为多个epg中的一个;

加入单元804,用于将第一用户加入组播组;

封装单元805,用于当交换机接收到第一用户发送的第一广播和未知单播组播bum流量时,将第一bum流量封装为组播组的第一组播流量,第一组播流量包括第一ip组播地址,以使第一组播流量转发至属于组播组对应的其它用户。

可选的,还可以包括:建立单元801,用于建立vlan标识以及入接口标识共同与epg的标识的对应关系;以及

建立epg的标识与ip组播地址的对应关系。

可选的,确定单元803可以用于:

根据第一报文中携带的第一vlan标识、交换机接收第一报文的第一入接口,以及vlan标识以及入接口标识共同与epg的标识的对应关系确定第一用户属于第一epg。

可选的,确定单元803可以用于:

侦听第一用户上线时发送动态主机配置协议dhcp报文,dhcp报文携带第一用户的第一媒体访问控制mac地址和第一用户所属的第一虚拟局域网vlan标识。

可选的,加入单元804可以包括:

确定子单元8041,用于确定是否存在与第一用户共同属于第一ip组播地址所对应的组播组的第二用户;

建立子单元8042,用于若确定是,则将第一用户加入到与第二用户共同所属的组播组,并建立第一入接口标识和第一ip组播地址的对应关系;

若确定否,则建立第一入接口标识和第一ip组播地址的对应关系,方法还包括发送子单元8043,用于通过与交换机连接的上游设备向汇聚点rp发送组播加入消息,组播加入消息包括第一ip组播地址,以及建立交换机发送组播加入消息的第一出接口的标识与第一ip组播地址的对应关系,以使上游设备和rp建立接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。

可选的,加入单元804可以包括:

确定子单元8041,用于确定是否存在与第一用户属于同一组播组的第二用户;

建立子单元8042,用于若确定是,则将第一用户加入到与第二用户共同所属的组播组,并建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的对应关系;

若确定否,则建立第一入接口标识和第一ip地址共同与第一ip组播地址的对应关系,或建立第一入接口标识、第一ip地址和第一vlan标识共同与第一ip组播地址的标识的对应关系,通过与交换机连接的上游设备向汇聚点rp发送组播加入消息,组播加入消息包括第一ip组播地址,以及建立交换机发送组播加入消息的第一出接口标识与第一ip组播地址的对应关系,以使上游设备和rp建立接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和发送组播加入消息的出接口标识与第一ip组播地址的对应关系。

可选的,还可以包括:

发送单元806,用于当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,根据第二ip组播地址与出接口的对应关系,向与第二ip组播地址对应的出接口下的用户复制并发送第二组播流量。

可选的,还包括替换单元807,用于当交换机接收到第三用户对应的第二组播流量时,第二组播流量包括第三用户所属的组播组对应的第二ip组播地址,根据至少一个用户对应的第二入接口标识和第二ip地址共同与第二ip组播地址的对应关系,将第二ip组播地址替换为与第二ip组播地址对应的第二ip地址;

发送单元806可以用于:将与第二入接口标识对应的接口作为出接口,在出接口处复制第二组播流量,并根据替换后的第二ip地址将复制的第二组播流量发送给至少一个用户。

可选的,建立单元801还可以用于:为第一用户建立成员表,成员表包括第一用户的mac地址、第一入接口标识、第一vlan标识和第一ip地址的对应关系,第一成员表用于检验发送组播流量的用户是否合法。

可选的,还可以包括:删除单元808,用于当交换机侦听到第一用户下线时,删除成员表;

发送单元806还用于:向汇聚点rp发送第二报文,第二报文包括第一ip组播地址,以便rp删除接收组播加入消息的入接口标识和第一ip组播地址的对应关系,和出接口标识与第一ip组播地址的对应关系。

因此,本发明实施例提供的交换机侦听第一用户上线时发送的第一报文中携带的信息,交换机根据第一报文中携带的信息与epg的标识的对应关系确定第一用户属于第一epg,并根据第一epg的标识以及epg的标识与ip组播地址的对应关系确定第一用户对应第一ip组播地址,并确定第一用户属于第一ip组播地址所对应的组播组,而后,交换机将第一用户加入组播组,当交换机接收到第一用户发送的第一bum流量时,交换机将第一bum流量封装为组播组的第一组播流量,第一组播流量包括第一ip组播地址,以使得第一组播流量转发至组播组的其它用户,这样通过在一个网络中划分不同的epg,每个epg分配一个ip组播地址用以承载该epg的用户的所有bum流量,即通过隔离的不同epg的bum流量来实现用户隔离,以解决共享同一vlan或同一vxlan的租户群间的bum流量无法隔离的问题,相对于现有技术中非组播方式转发流量,可能会导致不必要的端口也接收到该流量,占用网络带宽,本申请会优化bum流量的转发功能。

图9示出了上述实施例中涉及到的交换机的结构示意图。该交换机可以是图1所示的网络架构中的交换机,也可以是图2所示的网络架构中的leaf交换机,也可以是图3中阐述的方法中的交换机。

该交换机可以包括:控制器/处理器902用于对交换机的动作进行控制管理。例如,控制器/处理器902用于支持交换机执行图3中的过程301~307,和/或用于本发明实施例中所描述的技术的其它过程。存储器901用于存储交换机的程序代码和数据。网络接口903用于支持交换机与其它网络实体的通信,网络接口可包括发射器和接收器。例如,网络接口903用于支持交换机与用户所在的服务器进行通信。又例如,网络接口903用于支持交换机与组播共享树中的其它交换机之间的通信。

在本发明实施例中,网络接口903执行本发明实施例可用于侦听第一用户上线时发送的第一报文中携带的信息;控制器/处理器902执行本发明实施例可用于根据所述第一报文中携带的信息与终端策略组epg的标识的对应关系确定所述第一用户属于第一epg,并根据所述第一epg的标识以及所述epg的标识与网际协议ip组播地址的对应关系确定所述第一用户对应第一ip组播地址,并确定所述第一用户属于所述第一ip组播地址所对应的组播组;其中所述epg包括虚拟局域网vlan,虚拟扩展局域网vxlan,或同一个网段或子网中的用户中的部分用户,所述第一epg为多个所述epg中的一个;控制器/处理器902执行本发明实施例还用于将所述第一用户加入所述组播组;当网络接口903接收到所述第一用户发送的第一广播和未知单播组播bum流量时,控制器/处理器902执行本发明实施例还用于将所述第一bum流量封装为所述组播组的第一组播流量,所述第一组播流量包括所述第一ip组播地址,以使所述第一组播流量转发至属于所述组播组对应的其它用户。

上述控制器/处理器902和网络接口903的具体实现方式可参见上述实施例,此处不再赘述。

因此,本发明实施例提供的交换机,通过在一个网络中划分不同的epg,每个epg分配一个ip组播地址用以承载该epg的用户的所有bum流量,即通过隔离的不同epg的bum流量来实现用户隔离,以解决共享同一vlan的租户群间的bum流量无法隔离的问题,相对于现有技术中非组播方式转发流量,可能会导致不必要的端口也接收到该流量,占用网络带宽,本申请会优化bum流量的转发功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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