一种在交换机上实现虚拟设备的方法和装置制造方法及图纸

技术编号:9830562 阅读:128 留言:0更新日期:2014-04-01 19:31
本发明专利技术公开了一种在交换机上实现虚拟设备的方法和装置,方案为:为交换机中各VD的每个转发芯片配置二层隔离表;当在转发芯片的外部端口接收到的报文并从转发芯片的内部端口转发报文时,在报文中携带源端口;当在转发芯片的内部端口接收到报文时,根据报文的源端口以及为该转发芯片配置的二层隔离表判断报文是否属于该转发芯片所在VD,根据判断结果确定对报文的出端口进行过滤或不过滤,使报文只能从同VD进出。本发明专利技术能够满足交换机对VD间的流量隔离的需求,扩展了交换机的应用场景。

【技术实现步骤摘要】
一种在交换机上实现虚拟设备的方法和装置
本申请涉及通信
,特别涉及一种在交换机上实现虚拟设备(VirtualDevice,VD)的方法和装置。
技术介绍
网络设备虚拟化可以把一台大的物理设备虚拟成多台小设备,也即虚拟设备。各VD对于用户来说就像一台独立的小设备,有自己独立运行的路由进程、二三层协议、转发表项、接口、可以添加自己的用户、可以独自重启并读取自己的配置文件。各VD间的资源可以通过命令来进行分配管理,互不影响,当VD占用的资源超过分配的资源限制时,将不能抢占其他的VD资源。设备支持VD功能后,整台物理设备就是一个VD,称为缺省VD,当用户登录物理设备时,实际登录的就是缺省VD。用户在物理设备上的配置实质就是对缺省VD的配置。缺省VD的编号为1,不需要创建,不能被删除。与缺省VD相对应的是非缺省VD,即在该物理设备上新创建的VD。产品要支持VD特性,需要在同一块单板上同时下发多个VD的配置,并同时生效;具体的,从不同端口进入的报文,根据端口所在VD,去匹配该VD的配置和转发表项进行处理。对于路由器产品,一般通过CPU、NP等实现报文转发,可以通过软件方式灵活设置,各VD的不同配置可以在同一块单板上共存,不会有冲突。而绝大多数的交换机由于受芯片制约,不同VD的配置可能是冲突的,例如L2_entry,Fib等,不能做到冲突的表项同时下发、分别匹配。为了解决不同VD的配置冲突问题,交换机通常按照芯片来划分VD端口,规定同一芯片的所有外部端口只属于一个VD,这个VD成为有效VD时,在此芯片上只下发和这个VD相关的配置和转发表项,可以解决不同VD之间可能的配置冲突问题。此外,要实现按芯片划分VD端口,还需要解决VD间流量隔离、板间通信、Mac地址学习等诸多问题。
技术实现思路
为了达到上述目的,本专利技术的目的在于提供一种在交换机上实现虚拟设备的方法,该方法能够解决交换机对VD特性的需求,扩展了交换机的应用场景。为了达到上述目的,本专利技术提供了一种在交换机上实现虚拟设备的方法,所述交换机以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系;该方法包括:根据转发芯片和VD的对应关系为当前VD中每个转发芯片配置用于隔离非当前VD的报文的二层隔离表;当前VD在自身的任一转发芯片的外部端口接收到报文时,确定报文的出端口,对属于该转发芯片的外部端口的每个出端口,从该出端口转发报文;对不属于该转发芯片的外部端口的每个出端口,将接收报文的端口作为报文的源端口携带在报文中并通过该转发芯片的内部端口转发报文;当前VD在自身的任一转发芯片的内部端口接收到携带源端口的报文时,确定报文的出端口,根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于当前VD,如果是,则从确定的出端口转发报文,否则,滤除报文的出端口中属于该转发芯片的外部端口,从滤除后剩下的出端口转发报文。本专利技术还提供了一种虚拟设备VD,应用于交换机,所述交换机以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系;该VD包括:配置单元、接收单元、处理单元、发送单元;所述配置单元,用于根据所述交换机建立的转发芯片和VD的对应关系为本VD中每个转发芯片配置用于隔离非本VD的报文的二层隔离表;所述接收单元,用于在本VD的任一转发芯片的外部端口接收报文;用于在本VD的任一转发芯片的内部端口接收携带源端口的报文;所述处理单元,用于接收单元在本VD的任一转发芯片的外部端口接收到报文时,确定报文的出端口,对属于该转发芯片的外部端口的每个出端口,通知发送单元从该出端口转发报文;对不属于该转发芯片的外部端口的每个出端口,通知发送单元将接收报文的端口作为报文的源端口携带在报文中并通过该转发芯片的内部端口转发报文;用于接收单元本VD的任一转发芯片的内部端口接收到携带源端口的报文时,确定报文的出端口,根据报文的源端口和配置单元为该转发芯片配置的二层隔离表判断报文是否属于本VD,如果是,则通知发送单元从确定的出端口转发报文,否则,滤除报文的出端口中属于该转发芯片的外部端口,并通知发送单元从滤除后剩下的出端口转发报文。由上面的技术方案可知,本专利技术通过为交换机中各VD的每个转发芯片配置二层隔离表并根据接收报文的端口是转发芯片的内部端口或外部端口而对报文执行不同处理流程:当在转发芯片的外部端口接收到的报文并从转发芯片的内部端口转发报文时,在报文中携带源端口;当在转发芯片的内部端口接收到报文时,根据报文的源端口以及为该转发芯片配置的二层隔离表判断报文是否属于该转发芯片所在VD,根据判断结果确定对报文的出端口进行过滤或不过滤,并据此执行报文转发,使报文只能从同VD进出。本专利技术能够满足交换机对VD间的流量隔离的需求,扩展了交换机的应用场景。附图说明图1是本专利技术实施例在交换机中实现VD的广播报文处理流程示意图;图2是本专利技术实施例在交换机中实现VD的已知单播报文处理流程示意图;图3是本专利技术实施例在交换机中实现VD的已知组播报文处理流程示意图;图4是本专利技术实施例提供的虚拟设备的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本专利技术的技术方案进行详细说明。本专利技术中,为了便于描述,将转发芯片上的用于连接该转发芯片所在交换机以外的网络设备的端口称为转发芯片的外部端口;将转发芯片上用于连接该转发芯片所在的交换机中的其它转发芯片的端口称为转发芯片的内部端口;将转发芯片上的用于连接该转发芯片所在单板上的CPU的端口称为CPU端口。为了在交换机中实现VD,本专利技术按照转发芯片来划分VD,在交换机中以转发芯片为加入和退出VD的最小单元,并建立转发芯片和VD的对应关系;根据转发芯片和VD的对应关系为各VD的每个转发芯片配置用于隔离非该VD的报文的二层隔离表;VD在自身的任一转发芯片的外部端口接收到报文时,如果需要转发报文到其它转发芯片,则将接收报文的端口作为报文的源端口携带在报文中并通过该转发芯片的内部端口转发,通过报文的源端口标识报文所属VD;VD在自身的任一转发芯片的内部端口接收到携带源端口的报文时,根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于该VD,当报文不属于该VD时,不允许报文从该转发芯片的外部端口转发,使得非该VD的报文不会从该VD的任一转发芯片的外部端口转发出去,能够实现VD间的二层流量隔离。上述根据转发芯片和VD的对应关系为各VD的每个转发芯片配置用于隔离非该VD的报文的二层隔离表的方法有以下两种:第一种:将不属于该VD的所有转发芯片的外部端口添加到为该转发芯片的外部端口配置的二层隔离表。这种情况下,根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于该VD的方法为:如果报文的源端口是为该转发芯片配置的二层隔离表中的外部端口,则可以确定报文不属于该VD,否则,确定报文属于该VD。第二种:将属于该VD的所有转发芯片的外部端口添加到为该转发芯片的外部端口配置的二层隔离表。这种情况下,根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于该VD的方法为:如果报文的源端口是为该转发芯片配置的二层隔离表中的外部端口,则确定报文属于该VD,否则,确定报文不属于该VD。上述报文包括广播报文本文档来自技高网
...
一种在交换机上实现虚拟设备的方法和装置

【技术保护点】
一种在交换机上实现虚拟设备VD的方法,所述交换机以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系;其特征在于,该方法包括:根据转发芯片和VD的对应关系为当前VD中每个转发芯片配置用于隔离非当前VD的报文的二层隔离表;当前VD在自身的任一转发芯片的外部端口接收到报文时,确定报文的出端口,对属于该转发芯片的外部端口的每个出端口,从该出端口转发报文;对不属于该转发芯片的外部端口的每个出端口,将接收报文的端口作为报文的源端口携带在报文中并通过该转发芯片的内部端口转发报文;当前VD在自身的任一转发芯片的内部端口接收到携带源端口的报文时,确定报文的出端口,根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于当前VD,如果是,则从确定的出端口转发报文,否则,滤除报文的出端口中属于该转发芯片的外部端口,从滤除后剩下的出端口转发报文。

【技术特征摘要】
1.一种在交换机上实现虚拟设备VD的方法,所述交换机以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系;其特征在于,该方法包括:根据转发芯片和VD的对应关系为当前VD中每个转发芯片配置用于隔离非当前VD的报文的二层隔离表;当前VD在自身的任一转发芯片的外部端口接收到报文时,确定报文的出端口,对属于该转发芯片的外部端口的每个出端口,从该出端口转发报文;对不属于该转发芯片的外部端口的每个出端口,将接收报文的端口作为报文的源端口携带在报文中并通过该转发芯片的内部端口转发报文;当前VD在自身的任一转发芯片的内部端口接收到携带源端口的报文时,确定报文的出端口,根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于当前VD,如果是,则从确定的出端口转发报文,否则,滤除报文的出端口中属于该转发芯片的外部端口,从滤除后剩下的出端口转发报文;其中,转发芯片的外部端口为转发芯片上的用于连接该转发芯片所在交换机以外的网络设备的端口;转发芯片的内部端口为转发芯片上用于连接该转发芯片所在的交换机中的其它转发芯片的端口。2.根据权利要求1所述的在交换机上实现VD的方法,其特征在于,所述对不属于该转发芯片的外部端口的每个出端口,将接收报文的端口作为报文的源端口携带在报文中并通过该转发芯片的内部端口转发报文的方法为:如果该出端口为该转发芯片的内部端口,则将接收报文的端口作为报文的源端口携带在报文中并从该出端口转发报文;如果该出端口是其它转发芯片的外部端口,则将接收报文的端口、该出端口、该出端口所在转发芯片分别作为报文的源端口、目的出端口、目的转发芯片携带在报文中,并查找转发芯片映射表确定报文的目的转发芯片对应的内部端口,从确定的内部端口转发报文;所述从滤除后剩下的出端口转发报文的方法为:针对滤除后剩下的每个出端口,如果该出端口是该转发芯片的内部端口,则从该出端口转发报文,如果该出端口是其它转发芯片的外部端口,则查找转发芯片映射表确定报文的目的转发芯片对应的内部端口,从确定的内部端口转发报文。3.根据权利要求2所述的在交换机上实现VD的方法,其特征在于,所述根据转发芯片和VD的对应关系为当前VD中每个转发芯片配置用于隔离非当前VD的报文的二层隔离表时,进一步将该转发芯片的每个内部端口加入到所述交换机中所有VD的VLAN中,并将该内部端口加入到所有组播组对应的组播表项的出端口列表中;当前VD在自身的任一转发芯片的外部端口接收到报文时,确定报文的出端口的方法为:如果报文是单播报文,则查找MAC转发表确定报文的出端口,如果报文是组播报文,则查找报文所属组播组对应的组播表项的出接口列表确定报文的所有出端口,对于根据MAC转发表未能确定出端口的单播报文、根据组播表项的出接口列表未能确定出端口的组播报文以及广播报文,则查找VLAN广播表确定报文的所有出端口;当前VD在自身的任一转发芯片的内部端口接收到报文时,确定报文的出端口的方法为:如果报文是单播报文且携带目的出端口,则确定报文的出端口为该目的出端口,如果报文是组播报文,则查找报文所属组播组对应的组播表项的出接口列表确定报文的所有出端口,对于未携带目的出端口的单播报文、根据组播表项的出接口列表未能确定出端口的组播报文以及广播报文,则查找VLAN广播表确定报文的所有出端口。4.根据权利要求1所述的在交换机上实现VD的方法,其特征在于,当前VD在任一转发芯片的内部端口接收到报文并确定报文属于当前VD之后,进一步包括:学习该报文的源MAC地址到报文的源端口;当前VD在任一转发芯片的内部端口接收到报文并确定报文不属于当前VD之后,进一步包括:禁止对该报文进行MAC地址学习。5.根据权利要求2-4任一权项所述的在交换机上实现VD的方法,其特征在于,该方法进一步包括:当前VD在自身的任一转发芯片的CPU端口接收到广播协议报文时,查找VLAN广播表确定报文的所有出端口,针对每个出端口,如果该出端口是该转发芯片的外部端口,则从该出端口转发广播协议报文,如果该出端口是该转发芯片的内部端口,则将预先为当前VD分配的CPU源端口作为广播协议报文的源端口携带在广播协议报文,并从该出端口转发广播协议报文;当前VD在自身的任一转发芯片的内部端口接收到携带源端口的广播协议报文时,查找VLAN广播表确定广播协议报文的所有出端口,根据广播协议报文的源端口和为该转发芯片配置的二层隔离表判断广播协议报文是否属于当前VD,如果是,则从所有出端口转发广播协议报文,否则,将所有出端口中属于该转发芯片的外部端口过滤,从过滤后的所有出端口转发广播协议报文。6.根据权利要求5所述的在交换机上实现VD的方法,其特征在于,所述根据转发芯片和VD的对应关系为当前VD中每个转发芯片配置用于隔离非当前VD的报文的二层隔离表的方法为:将不属于当前VD的所有转发芯片的外部端口添加到为该转发芯片配置的二层隔离表,将为除当前VD外其它每个VD预先分配的CPU源端口添加到为该转发芯片配置的二层隔离表;所述根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于当前VD的方法为:如果报文的源端口是为该转发芯片配置的二层隔离表中的外部端口,则确定报文不属于当前VD,否则,确定报文属于当前VD;所述根据广播协议报文的源端口和为该转发芯片配置的二层隔离表判断广播协议报文是否属于当前VD的方法为:如果广播协议报文的源端口是为该转发芯片配置的二层隔离表中的CPU源端口,则确定广播协议报文不属于当前VD,否则,确定广播协议报文属于当前VD;或者,所述根据转发芯片和VD的对应关系为当前VD中每个转发芯片配置用于隔离非当前VD的报文的二层隔离表的方法为:将属于当前VD的所有转发芯片的外部端口添加到为该转发芯片配置的二层隔离表,将为当前VD预先分配的CPU源端口添加到为该转发芯片配置的二层隔离表;所述根据报文的源端口和为该转发芯片配置的二层隔离表判断报文是否属于当前VD的方法为:如果报文的源端口是为该转发芯片配置的二层隔离表中的外部端口,则确定报文属于当前VD,否则,确定报文不属于当前VD;所述根据广播协议报文的源端口和为该转发芯片配置的二层隔离表判断广播协议报文是否属于当前VD的方法为:如果广播协议报文的源端口是为该转发芯片配置的二层隔离表中的CPU源端口,则确定广播协议报文属于当前VD,否则,确定广播协议报文不属于当前VD。7.一种虚拟设备VD,应用于交换机,所述交换机以转发芯片为加入和退出VD的最小单元,并建立有转发芯片和VD的对应关系;其特征在于,该VD包括:配置单元、接收单元、处理单元、发送单元;所述配置...

【专利技术属性】
技术研发人员:王明辉
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1