专利名称:一种处理源角色信息的方法和转发芯片的制作方法
技术领域:
本发明涉及网络通信技术领域,特别涉及一种处理源角色信息的方法和转发芯片。
背景技术:
为了保证网络的安全,当用户接入网络时,需要对用户进行认证,认证后还需要通过接入控制手段即通过配置接入控制列表(ACL)对用户的访问权限进行限制。传统的接入控制方法主要是基于IP地址,但会造成ACL配置数量过多以及ip地址变化所带来的配置管理工作量大的缺点。于是,基于角色的接入控制方法被提出,其基本思想是针对用户分配源角色标签(tag),针对服务器分配目的角色tag,ACL相应基于源角色tag和目的角色 tag进行接入控制。这种基于角色的方式相当于通过角色信息对基于ip地址的ACL进行聚合,大大缩减了 ACL配置的数量,且不管ip地址如何变化,角色标签不会发生变化,基于角色的ACL均不会发生变化,显然大大降低了配置管理的工作量。基于角色的接入控制架构可以如图1所示,用户设备在通过认证后获得源角色, 该源角色信息存储在入口(digress)设备中,资源侧设备(图中以服务器为例)在通过认证后获得目的角色,该目的角色信息存储在出口(Egress)设备中,并形成基于角色的接入控制列表(RBACL)。用户设备发送报文至hgress设备,Ingress设备将该报文中携带用户设备的源角色信息,该报文在后续转发过程中都携带该源角色信息直至到达Egress设备。 Egress设备接收到该报文后,确定该报文的目的角色信息,根据源角色信息和目的角色信息匹配RBACL,根据匹配结果对该报文进行接入控制,包括允许转发、拒绝转发或转发速率限制等。需要说明的是,在图1所示架构中,digress和Egress设备可以在二层网络也可以在三层网络中,Ingress设备与用户设备之间以及Egress设备与服务器之间可以存在普通网络设备,Ingress设备与Egress设备之间可以存在中间网络设备。在现有的实现方法中,源角色信息在报文中的携带方式主要存在以下几种第一种通过物理层携带的方式。即通过报文中8个字节的以太网前导码携带。 但这种方式需要修改标准以太网的前导码,当前设备的物理层功能并不支持,需要进行整网升级,升级成本高,难以过渡和推广。第二种通过链路层携带的方式。即通过报文中新构造的角色控制信息字段携带。 但这种方式由于构造了新的字段,当前设备并不支持,需要进行整网升级,升级成本高。第三种通过IPv4选项(Option)字段携带的方式。即在IPv4字段中定义一个新的Option类型来携带源角色信息,同样需要对整网进行升级处理,使得所有设备都能够对新增加的Option类型进行处理,升级代价高,且不支持除IPv4之外的其它类型报文。第四种通过IPv6 Option字段携带的方式。即在IPv6字段中定义一个新的IPv6 扩展头,即SGT选项头来携带源角色信息。但SGT选项头的硬件插入需要芯片支持新的功能,同样需要进行芯片功能的升级,升级代价高,且不支持除IPv6之外的其它类型报文。可以看出,现有技术中的上述几种方式都需要对现有设备的功能进行较大改动,升级成本较高。
发明内容
本发明提供了一种处理源角色信息的方法和转发芯片,以便于较好的与现有设备的功能兼容,降低升级成本。一种处理源角色信息的方法,该方法包括确定使能digress功能时,将源角色标签tag作为数据报文的内层虚拟局域网 VLAN插入数据报文;确定使能中间设备功能时,在转发数据报文的过程中,对作为内层VLAN标签的源角色tag保持不变;确定使能Egress功能时,从数据报文中获取作为内层VLAN标签的源角色tag,用于对所述数据报文进行基于角色的接入控制。一种处理源角色信息的转发芯片,该转发芯片包括Jngress功能模块、中间设备功能模块和Egress功能模块;所述digress功能模块,用于在被使能时,将源角色标签tag作为数据报文的内层虚拟局域网VLAN插入数据报文;所述中间设备功能模块,用于在被使能时,在转发数据报文的过程中,对作为内层 VLAN标签的源角色tag保持不变;所述Egress功能模块,用于在被使能时,从数据报文中获取作为内层VLAN标签的源角色tag,用于对所述数据报文进行基于角色的接入控制。由以上技术方案可以看出,本发明通过使能hgress功能时,将源角色tag作为报文的内层VLAN标签插入报文,使能中间设备功能时对携带源角色tag的内层VLAN标签保持不变,使能Egress功能时从报文中获取作为内层VLAN标签的源角色tag从而进行基于角色的接入控制。本发明巧妙利用了现有转发芯片已有的QinQ功能,以及充分借用现有的报文结构,无需对现有网络设备的功能进行较大改动,降低了网络的升级成本。另外,在本发明提供的转发芯片集成了 hgress功能、中间设备功能和Egress功能,可以根据网络设备所处的网络位置不同,使能相应的功能,从而提供对源角色tag的相应处理。也就是说,提供了一种通用的转发芯片在Ingress设备、中间设备或Egress设备中都能够采用,为上层软件涉及提供了更加灵活的基础,同时对转发芯片的归一化处理更加方便了对各转发芯片的管理,降低了硬件和软件的管理成本。另外,上述三个功能相关性强,集成全部功能后,芯片成本增加并不多,但是应用范围却得到了扩大,因此,集成 Ingress功能、中间设备功能以及Egress功能的芯片是以后技术发展的必然趋势。
图1为基于角色的接入控制架构示意图;图2为第一种应用场景的示意图;图3为第二种应用场景的示意图;图4为第三种应用场景的示意图;图5为第四种应用场景的示意图6为本发明提供的hgress设备采用认证方式配置对应关系的第一个实例示意图;图7为本发明提供的hgress设备采用认证方式配置对应关系的第二个实例示意图;图8为本发明提供的Egress设备采用认证的方式配置RBACL的方法示意图;图9为本发明提供的hgress设备的一种结构示意图;图10为本发明提供的hgress设备的另一种结构示意图;图11为本发明提供的Egress设备的结构示意图;图12为本发明提供的中间设备的结构示意图;图13为本发明提供的通用的转发芯片的结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的核心思想在于Jngress设备根据接收到的报文的来源信息确定源角色 tag后,将该源角色tag作为报文的内层VLAN标签插入报文中后进行转发,其中该源角色 tag对应用户设备的角色;如果Egress设备与Egress设备之间存在中间设备,则该中间设备在转发过程中对作为内层VLAN标签的源角色tag保持不变直至转发该报文至Egress 设备;Egress设备从报文中获取作为内层VLAN标签的源角色tag,用于对数据报文进行基于角色的接入控制。也就是说,本发明利用了网络设备已有的QinQ功能,将源角色tag以报文的内层 VLAN标签的形式插入报文,只需设置中间设备对携带源角色tag的内层VLAN标签保持不变,Egress设备从报文中获取作为内层VLAN标签中的源角色tag即可。其中,上述方法中涉及的报文来源信息可以为接收报文的入端口信息、报文的源地址信息、报文的四层端口号、三层协议号或应用层协议号等。Egress设备对数据报文进行基于角色的接入控制可以包括从接收到的数据报文的内层VLAN标签中获取源角色tag, 并确定该报文的目的角色信息,根据源角色tag和目的角色信息匹配RBACL,并按照匹配结果对报文进行相应的接入控制处理下面结合具体的实施例对上述方法进行详细描述。根据图1所示的基于角色的接入控制架构主要可以包括以下四种应用场景第一种应用场景如图2所示,用户设备直接接入hgress设备,然后再经过二层网络连接中间设备,通过中间设备接入三层网络。服务器直接接入Egress设备,再经过二层网络连接中间设备,通过中间设备接入三层网络。hgress和Egress之间路径上所有设备均可以作为中间设备。hgress设备和Egress设备直接与接入认证服务器进行交互。第二种应用场景如图3所示,用户设备通过普通设备接入digress设备,然后再经过二层网络连接中间设备,通过中间设备接入三层网络。服务器通过普通设备接入 Egress设备,再经过二层网络连接中间设备,通过中间设备接入三层网络。digress和 Egress之间路径上所有设备均可以作为中间设备。普通设备与接入认证服务器进行交互, 并将通过认证的角色信息发送给hgress设备。
第三种应用场景如图4所示,与第一种应用场景不同的是用户设备和服务器分别直接接入hgress设备和Egress设备,Ingress设备和Egress设备进行三层转发处理。第四种应用场景如图5所示,与第三种应用场景不同的是用户设备和服务器通过普通设备分别连接hgress设备和Egress设备,普通设备与接入认证服务器进行交互, 并将通过认证的角色信息发送给hgress设备。上述场景中涉及的普通设备是不具备标签插入和处理功能的网络设备。本发明中,Ingress设备中存储有报文的来源信息与源角色tag之间的对应关系, 以及Egress设备中的RBACL可以采用静态配置的方式,也可以采用动态认证的方式。下面对采用动态认证的方式进行详细描述。对于hgress设备而言,采用认证的方式配置报文的来源信息与源角色tag之间的对应关系的方法可以包括确定通过认证的设备角色信息和认证报文的来源信息,将该来源信息与源角色tag之间的对应关系下发给硬件层面。其中来源信息可以包括接收报文的入端口信息、报文的源地址信息、报文的四层端口号、三层协议号或应用层协议号等。根据不同的应用场景,hgress设备确定通过认证的设备角色信息和认证报文的来源信息的方式也不相同,下面分别列举两个实例。实例一如果用户设备直接接入hgress设备,Ingress设备与接入认证服务器直接交互,即对应上述第一种应用场景和第三种应用场景,则hgress采用认证的方式配置报文的来源信息与源角色tag之间的对应关系的过程如图6所示,可以包括以下步骤步骤601 用户设备向hgress设备发起认证请求。步骤602 =Ingress设备将认证请求转发给接入认证服务器。步骤603 接入认证服务器在用户设备通过认证后,将用户设备的角色信息下发给Ingress设备。步骤604 =Ingress设备将接收认证请求的入端口与该角色信息对应的源角色tag 之间的对应关系下发给硬件层面。也就是说,此时该入端口作为该报文的来源信息。在下发该对应关系时,可以将源角色tag存储在入端口所包含的内层VLAN字段中。由于hgress设备本身已经具备QinQ 功能,因此,的入端口存在内层VLAN字段用于通过入端口接收到报文后,将该内层VLAN字段中的内容作为内层VLAN标签插入报文中。实例二 如果用户设备通过普通设备接入hgress设备,普通设备与接入认证服务器进行交互,即对应上述第二种应用场景和第四种应用场景,则hgress采用认证的方式配置报文的来源信息与源角色tag之间的对应关系的过程如图7所示,可以包括以下步骤步骤701 用户设备向普通设备发起认证请求。步骤702 普通设备将认证请求转发给接入认证服务器。步骤703 接入认证服务器在用户设备通过认证后,将用户设备的角色信息下发给普通设备。步骤704 普通设备将用户设备的角色信息与认证请求的源地址信息之间的对应关系发送给hgress设备。步骤705 Jngress设备将用户设备的角色信息对应的源角色tag与源地址信息之间的对应关系下发给硬件层面。也就是说,此时报文的源地址信息作为该报文的来源信息,可以采用源IP地址或源MAC地址。在下发该对应关系时,可以将源角色tag与源地址信息之间的对应关系存储为硬件表项的形式,后续Egress设备根据接收到的报文的源地址信息查找该硬件表项即可确定对应的源角色tag。对于Egress设备而言,采用认证的方式配置RBACL的方法可以如图8所示,包括以下步骤步骤801 =Egress设备接收资源侧设备的认证请求。该认证请求可以是资源侧设备直接发送来的,也可以是资源侧设备通过普通设备发送来的。步骤802 =Egress设备将认证请求转发给接入认证服务器。步骤803 接入认证服务器在发送认证请求的服务器通过认证后,将通过认证的资源侧设备的角色信息发送给Egress设备。步骤804 =Egress设备将认证请求的源地址信息与该角色信息之间的对应关系下发到硬件层面。该源地址信息与角色信息之间的对应关系之所以下发到硬件层面,是为了 Egress 设备后续对报文进行接入控制时,根据接收到的报文的目的地址信息查找该对应关系从而确定对应的目的角色,该部分内容将在后续描述中涉及。另外,该源地址信息与该角色信息之间的对应关系可以存储到硬件表项中,例如二层转发表或三层转发表等,该角色信息在表项中的区域不影响其它转发功能,含义唯一, 空间专用,从而避免功能干扰。步骤805 =Egress设备向接入认证服务器请求该角色信息作为目的角色的基于角色的控制策略。步骤806 接入认证服务器向Egress设备下发以该角色信息作为目的角色的基于角色的控制策略。通常,在接入认证服务器中会预先配置有所有基于角色的控制策略,当接收到步骤805的请求后,会将所有以该角色信息为目的角色的基于角色的控制策略下发给Egress 设备,该基于角色的控制策略中各表项的内容包含源角色信息、目的角色信息和接入控制处理方式(允许转发、拒绝转发、转发速率限制、镜像、重定向、优先级重标记、统计、进一步匹配其它报文字段等接入控制处理方式)。步骤807 =Egress设备基于角色的控制策略中的源角色信息替换为对应的源角色 tag后,将RBACL下发至硬件层面。由于此时下发至硬件层面的RBACL中包含的源角色tag,即便用户设备的地址发生变化,但由于用户设备的角色信息,进而源角色tag不变,因此,该RBACL保持不变,因此用户设备的地址发生的变化不会对转发平面产生任何冲击。另外,该RBACL的下发可以基于出端口,也可以基于全局。下面对硬件层面在报文转发过程中实现的接入控制进行具体描述。对于hgress设备,分为hgress功能和转发处理功能。其中,hgress功能为 将源角色tag作为数据报文的内层VLAN标签插入数据报文;具体包括接收到来自用户设备的数据报文后,根据该数据报文的来源信息确定源角色tag,将该源角色tag作为该数据报文的内层VLAN标签插入数据报文中后进行转发。转发处理功能为根据hgress设备所处的网络,如果处于二层网络,则进行二层转发处理,如果处于三层网络则进行三层转发处理。具体二层和三层转发过程在后续过程中进行描述。在Egress设备中对数据报文插入的源角色tag是与用户设备的角色相对应的, 其中用户设备可以是实际的网络实体,也可以是逻辑实体,例如一个网络设备中的应用协议,针对不同的应用协议可以设置不同的角色,对应不同的源角色tag。digress设备插入源角色tag可以在入端口处接收到该数据报文时执行,也可以在出端口处转发该数据报文时执行,也可以在接收到数据报文之后且转发该数据报文之前的任意时刻执行,在下面的描述中均以在入端口处接收到数据报文时插入源角色tag为例。下面分别针对上述的四种应用场景,对hgress设备对数据报文的处理过程进行描述。对于图2所示的第一种应用场景,hgress设备接收到的是不包含标签的数据报文,记为imtag的数据报文。hgress设备接收到该数据报文后,根据入端口或acl确定源角色tag,并确定对应的外层VLAN标签(Vtag),将源角色tag作为内层VLAN标签,将Vtag 作为外层VLAN标签插入该数据报文(当然,如果该出端口的同一 VLAN内的流量中不需要插入源角色tag的过路报文,例如CPU发出的报文或者确定入端口没有设置对应的源角色 tag,则不执行插入源角色tag的操作,只进行执行Vtag的插入,后续实例中也如此,不再赘述)O需要说明的是,digress设备确定源角色tag和Vtag,可以根据入端口来确定,也可以根据入端口处设置的acl确定。例如可以预先将报文源地址信息或协议号等特征对应的源角色tag设置在acl中,接收到数据报文后,通过查找acl便可以确定对应的源角色 tag。对于中间设备、Egress设备也同样如此,在以下的描述中不再一一赘述,均以通过入端口确定为例进行描述。 另外,Vtag的确定是用于转发报文的,这是现有技术的内容,本发明并没有对该部分内容进行变更,在确定Vtag后可以将该Vtag插入数据报文,也可以不插入数据报文,本发明并不做特别限制,在本发明的实施例中统一按照插入Vtag为例进行描述。Ingress设备根据Vtag和报文的目的MAC地址查找二层转发表确定出端口,将已经插入Vtag和源角色tag的数据报文通过确定的出端口进行转发。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的Vtag后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。对于图3所示的第二种应用场景,Ingress设备接收到的是包含Vtag的数据报文, 根据该数据报文的源地址信息查找源地址信息与源角色tag之间的对应关系,确定该源地址信息对应的源角色tag,将该源角色tag作为内层VLAN标签插入该数据报文。Ingress设备根据Vtag和报文的目的MAC地址查找二层转发表确定出端口,将携带了 Vtag和源角色tag的数据报文通过确定的出端口进行转发。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的Vtag后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。对于图4所示的第三种应用场景,digress设备接收到的是imtag的数据报文。 Egress设备接收到该数据报文后,根据入端口查找入端口与源角色tag之间的对应关系, 确定该入端口对应的源角色tag,并确定入端口对应的Vtag,将源角色tag作为内层VLAN 标签,将Vtag作为外层VLAN标签插入该数据报文。在hgress设备根据Vtag和目的IP地址查找三层转发表确定出端口,对Vtag、源 MAC地址和目的MAC进行替换后通过确定出端口进行转发,此时转发的报文携带Vtag和源角色tag。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的 Vtag(替换后的Vtag)后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。对于图5所示的第四种应用场景,Ingress设备接收到的是包含Vtag的数据报文, 根据该数据报文的源地址信息查找源地址信息与源角色tag之间的对应关系,确定该源地址信息对应的源角色tag,将该源角色tag作为内层VLAN标签插入该数据报文。digress设备根据Vtag和目的IP地址查找三层转发表确定出端口,对Vtag、源 MAC地址和目的MAC进行替换后通过确定出端口进行转发,此时转发的报文携带Vtag和源角色tag。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的 Vtag(替换后的Vtag)后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。在上述hgress设备的处理过程中,源角色tag作为内层VLAN标签插入报文时, 该内层VLAN标签的标签协议标识(TPID,Tag Protocol Identifier)采用非0x8100的一个设定值来标识该内层VLAN标签为源角色tag。源角色tag的TPID可配置,全局统一。需要说明的是,在某些情况(例如CPU发出的数据报文或入端口处设置不插入源角色tag的情况)下对接收到的数据报文并不需要插入源角色tag,对于这样的数据报文如果与上述插入了源角色tag的报文从同一出端口转发,则保持各数据报文的格式,不相互干扰。对于中间设备,同样具备中间设备功能和转发处理功能。其中,中间设备功能为 接收到数据报文后,保持对报文进行二层或三层转发的过程中,对作为内层VLAN标签的源角色tag保持不变。即如果通过内层VLAN标签的TPID识别出该内层VLAN标签为源角色 tag,则保持内层VLAN标签不变。转发处理功能与hgress设备的转发处理功能相同,也可以为二层转发处理或三层转发处理。对于图2所示的第一种应用场景,中间设备接收到的是仅携带源角色tag的数据报文,确定入端口对应的VtagJf Vtag作为外层VLAN标签插入该数据报文;根据Vtag和报文的目的MAC地址查找二层转发表确定出端口,将该数据报文通过确定的出端口进行转发。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的Vtag后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。对于图3所示的第二种应用场景,中间设备接收到的是包含Vtag和源角色tag的数据报文,根据Vtag和报文的目的MAC地址查找二层转发表确定出端口,将携带了 Vtag和源角色tag的数据报文通过确定的出端口进行转发。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的Vtag后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。
10
对于图4所示的第三种应用场景,中间设备接收到的是仅携带源角色tag的数据报文,确定入端口对应的Vtag,将Vtag作为外层VLAN标签插入该数据报文;根据Vtag和目的IP地址查找三层转发表确定出端口,对Vtag、源MAC地址和目的MAC进行替换后通过确定出端口进行转发,此时转发的报文携带Vtag和源角色tag。如果出端口上设置了 Vtag 剥离,则在转发该数据报文之前,剥离该数据报文的Vtag (替换后的Vtag)后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。对于图5所示的第四种应用场景,中间设备接收到的是包含Vtag和源角色tag的数据报文,根据Vtag和目的IP地址查找三层转发表确定出端口,对Vtag、源MAC地址和目的MAC进行替换后通过确定出端口进行转发,此时转发的报文携带Vtag和源角色tag。如果出端口上设置了 Vtag剥离,则在转发该数据报文之前,剥离该数据报文的Vtag(替换后的Vtag)后通过确定的出端口进行转发,此时转发的报文仅携带源角色tag。对于Egress设备,具备Egress功能和转发处理功能。其中,Egress功能为从数据报文的内层VLAN标签中获取源角色tag,用于对数据报文进行基于角色的接入控制。具体包括接收到中间设备发送来的数据报文时,查找图8中804下发的对应关系,确定该数据报文的目的地址(如目的IP地址)对应的目的角色信息;从数据报文的内层VLAN标签中获取源角色tag,利用源角色tag和目的角色信息对BRACL进行匹配,根据匹配的结果对该数据报文进行接入控制处理。由于在图8的步骤807中,Egress设备向硬件层面下发了 RBACL,该RBACL的表项中包含源角色tag、目的角色信息和接入控制处理方式。在利用获取的源角色tag和目的角色信息对BRACL进行匹配后,如果存在匹配的表项,则可以确定对应的接入控制处理方式, 例如允许转发、拒绝转发、转发速率限制、镜像、重定向、优先级重标记、统计等接入控制处理方式。另外,在Egress设备中除了进行上述接入控制过程之外,还会实现转发处理功能,即在设备内部进行二层或三层转发处理,Egress设备的转发处理功能与hgress设备和中间设备稍有不同。下面针对上述四种应用场景对Egress设备内部的处理过程进行详细描述。对于图2所示的第一种应用场景,Egress设备接收到的是包含源角色tag和 Vtag,或者仅携带源角色tag的数据报文。如果数据报文仅携带源角色tag,则Egress设备通过数据报文内层VLAN标签的 TPID类型确定出该内层VLAN标签为源角色tag时,获取该源角色tag。同时基于入端口确定Vtag,将Vtag作为外层VLAN标签插入该数据报文。利用Vtag和目的MAC地址查找二层转发表确定出端口。确定该数据报文的目的地址对应的目的角色信息;利用源角色tag 和目的角色信息对BRACL进行匹配,根据匹配的结果对该数据报文进行接入控制处理。例如,如果匹配结果是允许转发,则数据报文的所有标签后通过确定的出端口进行转发。如果匹配结果是拒绝转发,则丢弃该数据报文。在通过出端口进行转发时,剥离源角色tag和 Vtag,即转发出去的报文是imtag的数据报文。其中,上述对BRACL进行匹配的操作可以在查找二层或三层转发表确定出端口的操作之前,也可以在之后。如果Egress设备接收到的报文携带源角色tag和Vtag,与对仅携带源角色tag的数据报文的处理方式不同的是,无需基于入端口确定Vtag,其它处理方式与对仅携带源角色tag的数据报文的处理方式相同。对于图3所示的第二种应用场景,其处理方式与第一种应用场景基本相同,只是在出端口处仅剥离源角色tag,即通过出端口转发的数据报文携带Vtag。对于图4所示的第三种应用场景,如果Egress设备接收到的数据报文仅携带源角色tag,则通过数据报文内层VLAN标签的TPID类型确定出该内层VLAN标签为源角色tag 时,获取该源角色tag。同时基于入端口确定VtagJf Vtag作为外层VLAN标签插入该数据报文。利用Vtag和目的IP地址查找三层转发表确定出端口,对Vtag、源MAC地址和目的 MAC进行替换。确定该数据报文的目的地址对应的目的角色信息;利用源角色tag和目的角色信息对BRACL进行匹配,根据匹配的结果对该数据报文进行接入控制处理。例如,如果匹配结果是允许转发,则数据报文的所有标签后通过确定的出端口进行转发。如果匹配结果是拒绝转发,则丢弃该数据报文。在通过出端口进行转发时,剥离源角色tag和替换后的 Vtag,即转发出去的报文是imtag的数据报文。如果Egress设备接收到的报文携带源角色tag和Vtag,与对仅携带源角色tag的数据报文的处理方式不同的是,无需基于入端口确定Vtag,其它处理方式与对仅携带源角色tag的数据报文的处理方式相同。对于图5所示的第四种应用场景,其处理方式与第三种应用场景基本相同,只是在出端口处仅剥离源角色tag,即通过出端口转发的数据报文携带Vtag(进行替换处理后的 Vtag)。在本发明提供的上述方法中,各设备内部对内层VLAN标签和外层VLAN标签的处理过程互不产生影响,并且,在插入作为内层VLAN标签的源角色tag后,不会影响设备对报文的外层VLAN标签和其它报文字段的匹配和处理。另外,上述方法中均以单播的数据报文为例进行描述,需要说明的是,本发明对于源角色tag的处理方式同样支持组播,Ingress设备、中间设备或Egress设备在对报文进行三层或二层复制后,复制的报文同样携带与组播源报文相同的源角色tag。上述方法除了应用于网络设备的普通端口之外,也同样可以应用于CPU端口,CPU 端口的逻辑处理与普通端口相同。在本发明提供的方法中,可以将hgress功能、中间设备功能和Egress功能集成在一个转发芯片中,即hgress设备、中间设备和Egress设备都可以采用该通用的转发芯片,只是通过软件配置使能不同的功能。该通用的转发芯片确定使能hgress功能时,将源角色tag作为数据报文的内层虚拟局域网VLAN插入数据报文;确定使能中间设备功能时, 在转发数据报文的过程中,对作为内层VLAN标签的源角色tag不做处理;确定使能Egress 功能时,从数据报文的内层VLAN标签中获取源角色tag。该通用芯片中使能hgress功能和中间设备功能时,同时会使能上述hgress设备和中间设备实现的转发处理功能;使能Egress功能时,同时会使能上述Egress设备实现的转发处理功能,在此不再重复赘述。以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的Egress 设备、中间设备和Egress设备进行详细描述。图9为本发明提供的digress设备的结构示意图,如图9所示,该digress设备可以包括报文接收单元901、角色标签确定单元902、角色标签插入单元903和转发处理单元 904。报文接收单元901,用于接收来自用户设备的数据报文。角色标签确定单元902,用于根据数据报文的来源信息确定源角色标签tag ;其中源角色tag对应用户设备的角色。角色标签插入单元903,用于将源角色tag作为数据报文的内层VLAN标签插入数据报文。转发处理单元904,用于转发角色标签插入单元903处理后的数据报文。上述报文接收单元901、角色标签确定单元902、角色标签插入单元903和转发处理单元904均为硬件层面的单元,可以通过转发芯片实现。另外,该digress设备还可以包括认证处理单元911和第一标签配置单元912来进行硬件层面的相关信息配置。认证处理单元911,用于将来自用户设备的认证请求转发给接入认证服务器。第一标签配置单元912,用于获取接入认证服务器下发的用户设备的角色信息,并将接收认证请求的入端口与用户设备的角色信息对应的源角色tag之间的对应关系下发给硬件层面。此时,上述角色标签确定单元902根据下发给硬件层面的对应关系,执行根据数据报文的来源信息确定源角色标签tag的操作;其中来源信息为接收数据报文的入端口。根据网络架构的不同,如果digress设备与用户设备之间存在普通设备,且通过普通设备与接入认证服务器进行交互,则hgress设备可以采用另一种方式,如图10所示, 利用角色获取单元913和第二标签配置单元914来进行硬件层面的相关信息配置。角色获取单元913,用于获取普通设备发送来的用户设备的角色信息与认证请求的源地址信息或协议号之间的对应关系;其中用户设备的角色信息是普通设备将用户设备的认证请求转发至接入认证服务器后,由接入认证服务器下发给普通设备的。第二标签配置单元914,用于将用户设备的角色信息对应的源角色tag与源地址信息或协议号之间的对应关系下发给硬件层面。此时,上述角色标签确定单元902根据下发给硬件层面的对应关系,执行根据数据报文的来源信息确定源角色标签tag的操作;其中来源信息为数据报文的源地址信息或协议号。上述的认证处理单元911、第一标签配置单元912、角色获取单元913和第二标签配置单元914是软件控制层面的单元。具体地,角色标签插入单元903将源角色tag作为数据报文的内层VLAN标签插入数据报文时,将内层VLAN标签的标签协议标识TPID设置为非0X8100的一个设定值。其中,digress设备中的转发处理单元904可以具体包括外层标签插入子单元 941、转发表查找子单元942和出口处理子单元943。外层标签插入子单元941,用于在报文接收单元901接收到的数据报文中没有包含虚拟局域网标签Vtag时,确定数据报文的Vtag,并将该Vtag作为外层VLAN标签插入数据报文。转发表查找子单元942,用于利用报文接收单元901接收到的数据报文中包含的Vtag和目的地址信息,或者利用外层标签插入子单元941处理后的数据报文中包含的Vtag 和目的地址信息,查找二层或三层转发表确定出端口。出口处理子单元943,用于剥离或者不剥离数据报文中携带的Vtag后,将携带源角色tag的数据报文通过确定的出端口进行转发。至于剥离或者不剥离数据报文的Vtag 由出端口的具体配置决定。另外,转发处理单元904进行的是三层转发时,该转发处理单元还会包含对数据报文的Vtag、源MAC和目的MAC进行替换的单元,由于该部分是现有协议中已有的内容,在图中并没有示出,也不再具体描述。图11为本发明提供的Egress设备的结构示意图,如图11所示,该Egress设备可以包括报文接收单元1101、角色标签获取单元1102和接入控制单元1103。报文接收单元1101,用于接收来自用户侧的数据报文。角色标签获取单元1102,用于从数据报文中获取作为内层VLAN标签的源角色 tag ;其中源角色tag对应发送数据报文的用户设备的角色。接入控制单元1103,用于利用源角色tag对数据报文进行基于角色的接入控制。上述报文接收单元1101、角色标签获取单元1102和接入控制单元1103是硬件层面的单元,可以采用转发芯片实现。其中,接入控制单元1103可以具体包括目的角色确定子单元1131、接入控制匹配子单元1132和接入控制处理子单元1133。目的角色确定子单元1131,用于确定数据报文的目的角色信息。接入控制匹配子单元1132,用于根据源角色tag和目的角色信息匹配基于角色的接入控制列表RBACL。接入控制处理子单元1133,用于根据接入控制匹配子单元1132的匹配结果对数据报文进行接入控制处理。另外,该Egress设备还包括认证处理单元1111、目的角色配置单元1112、控制列表获取单元1113和控制列表配置单元1114来实现硬件层面的相关信息配置。认证处理单元1111,用于将来自资源侧设备的认证请求转发给接入认证服务器, 获取接入认证服务器下发的资源侧设备的角色信息。目的角色配置单元1112,用于将认证请求的源地址信息与资源侧设备的角色信息之间的对应关系下发到硬件层面。控制列表获取单元1113,用于从接入认证服务器获取基于角色的控制策略,该基于角色的控制策略以接入认证服务器下发的角色信息作为目的角色信息。控制列表配置单元1114,用于将上述基于角色的控制策略中的源角色信息替换为对应的源角色tag后得到RBACLJf RBACL下发到硬件层面。此时,目的角色确定子单元1131根据下发到硬件层面的对应关系,确定数据报文的目的地址对应的目的角色信息。接入控制匹配子单元1132对下发到硬件准发层面的 RBACL执行匹配处理。上述的认证处理单元1111、目的角色配置单元1112、控制列表获取单元1113和控制列表配置单元1114是软件控制平面的单元。更进一步地,该Egress设备还可以包括现有的转发处理单元1104,该转发处理单元1104可以具体包括外层标签插入子单元1141、转发表查找子单元1142和出口处理子单元1143。外层标签插入子单元1141,用于在报文接收单元1101接收到的数据报文中没有包含虚拟局域网标签Vtag时,确定数据报文的的Vtag,并将该Vtag作为外层VLAN标签插入数据报文。转发表查找子单元1142,用于利用报文接收单元1101接收到的数据报文中包含的Vtag和目的地址信息,或者利用外层标签插入子单元1141处理后的数据报文中包含的 Vtag和目的地址信息,查找二层或三层转发表确定出端口。出口处理子单元1143,用于剥离数据报文的源角色tag,剥离或者不剥离数据报文中携带的Vtag后,在接入控制单元1103确定需要转发数据报文时,将数据报文通过确定的出端口进行转发。另外,转发处理单元1104进行的是三层转发时,该转发处理单元1104还会包含 对数据报文的Vtag、源MAC和目的MAC进行替换的单元,由于该部分是现有协议中已有的内容,在图中并没有示出,也不再具体描述。图12为本发明提供的中间设备的结构示意图,如图12所示,该中间设备具体包括报文接收单元1201、标签识别单元1202和转发处理单元1203。报文接收单元1201,用于接收来自hgress设备或其它中间设备的数据报文。标签识别单元1202,用于对数据报文的内层VLAN标签进行识别。转发处理单元1203,用于在对数据报文的转发过程中,如果标签识别单元1202识别出内层VLAN标签为源角色tag,则保持内层VLAN标签不变。其中源角色tag对应发送数据报文的用户设备的角色。其中,标签识别单元1202如果解析出内层VLAN标签的标签协议标识TPID为非 0X8100的一个设定值,则识别出内层VLAN标签为源角色tag。上述转发处理单元1203可以具体包括外层标签插入子单元1231、转发表查找子单元1232和出口处理子单元1233。外层标签插入子单元1231,用于在报文接收单元1201接收到的数据报文中没有包含虚拟局域网标签Vtag时,确定数据报文的Vtag,并将该Vtag作为外层VLAN标签插入数据报文。转发表查找子单元1232,用于利用报文接收单元1201接收到的数据报文中包含的Vtag和目的地址信息,或者利用外层标签插入子单元1231处理后的数据报文中包含的 Vtag和目的地址信息,查找二层或三层转发表确定出端口。出口处理子单元1233,用于剥离或者不剥离数据报文中携带的Vtag后,将携带源角色tag数据报文通过确定的出端口进行转发。另外,转发处理单元1203进行的是三层转发时,该转发处理单元1203还会包含 对数据报文的Vtag、源MAC和目的MAC进行替换的单元,由于该部分是现有协议中已有的内容,在图中并没有示出,也不再具体描述。上述报文接收单元1201、标签识别单元1202和转发处理单元1203均是中间设备中硬件层面的单元,可以通过转发芯片的方式实现。另外,需要说明的是,可以将上述digress设备、中间设备和Egress设备中硬件层面的各单元集成在一个转发芯片上实现,当该转发芯片确定自身需要完成Egress设备的功能时,执行Egress设备中硬件层面上各单元的功能;当该转发芯片确定自身需要完成中间设备的功能时,执行中间设备中硬件层面上各单元的功能;当该转发芯片确定自身需要完成Egress设备的功能时,执行Egress设备中硬件层面上各单元的功能。图13为本发明提供的通用转发芯片的结构示意图,如图13所示,该转发芯片可以包括Jngress功能模块1301、中间设备功能模块1302和Egress功能模块1303。Ingress功能模块1301,用于在被使能时,将源角色tag作为数据报文的内层VLAN 插入数据报文。中间设备功能模块1302,用于在被使能时,在转发数据报文的过程中,对作为内层 VLAN标签的源角色tag保持不变。Egress功能模块1303,用于在被使能时,从数据报文中获取作为内层VLAN标签的源角色tag,用于对数据报文进行基于角色的接入控制。其中,Egress功能模块1303可以具体包括源角色获取子模块1331和接入控制子模块1332。源角色获取子模块1331,用于从数据报文的内层VLAN标签中获取源角色tag并提供给接入控制子模块1332。接入控制子模块1332,用于确定数据报文的目的角色信息,根据源角色tag和目的角色信息匹配表RBACL,按照匹配结果对数据报文进行接入控制处理。其中,上述内层VLAN标签的标签协议标识TPID为非0X8100的一个设定值。更进一步地,该转发芯片还可以包括第一转发功能模块1304,在digress功能模块1301被使能或中间设备功能模块1302被使能时,第一转发功能模块1304被使能。第一转发功能模块1304的结构与图9中的转发处理单元904以及图12中的转发处理单元1203相同,在此不再赘述。另外,该芯片还可以包括第二转发功能模块1305,在Egress功能模块1303被使能时,第二转发功能模块1305被使能。该第二转发功能模块的结构与图11中的转发处理单元相同,在此不再赘述。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种处理源角色信息的方法,其特征在于,该方法包括确定使能hgress功能时,将源角色标签tag作为数据报文的内层虚拟局域网VLAN插入数据报文;确定使能中间设备功能时,在转发数据报文的过程中,对作为内层VLAN标签的源角色 tag保持不变;确定使能Egress功能时,从数据报文中获取作为内层VLAN标签的源角色tag,用于对所述数据报文进行基于角色的接入控制。
2.根据权利要求1所述的方法,其特征在于,对所述数据报文进行基于角色的接入控制包括确定所述数据报文的目的角色信息,根据获取的源角色tag和所述目的角色信息匹配基于角色的接入控制列表RBACL,按照匹配的结果对所述数据报文进行接入控制处理。
3.根据权利要求1所述的方法,其特征在于,所述源角色tag作为内层VLAN标签时,所述内层VLAN标签的标签协议标识TPID为非0X8100的一个设定值;确定使能中间设备功能时,如果识别出接收到的数据报文的内层VLAN标签的TPID为所述设定值时,对所述数据报文的内层VLAN标签保持不变;确定使能Egress功能时,识别出接收到的数据报文的内层VLAN标签的TPID为所述设定值时,从所述数据报文中获取作为内层VLAN标签的源角色tag。
4.根据权利要求1、2或3所述的方法,其特征在于,确定使能Egress功能或者确定使能中间设备功能时,还包括Al、如果接收到的数据报文中没有包含虚拟局域网标签Vtag,则确定该数据报文的 Vtag,并将该Vtag作为外层VLAN标签插入数据报文,执行A2 ;如果接收到的数据报文中已经包含Vtag,则直接执行A2 ;A2、利用数据报文包含的Vtag和数据报文的目的地址信息查找二层或三层转发表确定出端口 ;A3、将剥离或不剥离所述Vtag,且携带所述源角色tag的数据报文通过确定的出端口进行转发。
5.根据权利要求1、2或3所述的方法,其特征在于,确定使能Egress功能时,还包括Bi、如果接收到的数据报文中没有包含Vtag,则确定该数据报文的Vtag,并将该Vtag作为外层VLAN标签插入数据报文,执行B2 ;如果接收到的数据报文中已经包含Vtag,则直接执行B2 ;B2、利用数据报文包含的Vtag和数据报文的目的地址信息查找二层或三层转发表确定出端口 ;B3、剥离数据报文的源角色tag,剥离或不剥离所述Vtag,在所述接入控制处理需要转发数据报文时,通过确定的出端口转发数据报文。
6.一种处理源角色信息的转发芯片,其特征在于,该转发芯片包括Jngress功能模块、中间设备功能模块和Egress功能模块;所述Egress功能模块,用于在被使能时,将源角色标签tag作为数据报文的内层虚拟局域网VLAN插入数据报文;所述中间设备功能模块,用于在被使能时,在转发数据报文的过程中,对作为内层VLAN 标签的源角色tag保持不变;所述Egress功能模块,用于在被使能时,从数据报文中获取作为内层VLAN标签的源角色tag,用于对所述数据报文进行基于角色的接入控制。
7.根据权利要求6所述的转发芯片,其特征在于,所述Egress功能模块具体包括源角色获取子模块和接入控制子模块;所述源角色获取子模块,用于从数据报文的内层VLAN标签中获取源角色tag并提供给所述接入控制子模块;所述接入控制子模块,用于确定所述数据报文的目的角色信息,根据所述源角色tag 和所述目的角色信息匹配基于角色的接入控制列表RBACL,按照匹配结果对所述数据报文进行接入控制处理。
8.根据权利要求6所述的转发芯片,其特征在于,所述内层VLAN标签的标签协议标识 TPID为非0X8100的一个设定值。
9.根据权利要求6、7或8所述的转发芯片,其特征在于,该转发芯片还包括第一转发功能模块,在所述Egress功能模块被使能或所述中间设备功能模块被使能时,第一转发功能模块被使能;所述第一转发功能模块具体包括第一外层标签插入子单元,用于该转发芯片接收到的数据报文中没有包含虚拟局域网标签Vtag时,确定所述数据报文的Vtag,并将该Vtag作为外层VLAN标签插入所述数据报文;第一转发表查找子单元,用于利用该转发芯片接收到的数据报文中包含的Vtag和目的地址信息,或者利用所述第一外层标签插入子单元处理后的数据报文中包含的Vtag和目的地址信息,查找二层或三层转发表确定出端口 ;第一出口处理子单元,用于剥离或者不剥离数据报文中携带的Vtag后,将携带所述源角色tag的数据报文通过确定的出端口进行转发。
10.根据权利要求6、7或8所述的转发芯片,其特征在于,该转发芯片还包括第二转发功能模块,在所述Egress功能模块被使能时,第二转发功能模块被使能;所述第二转发功能模块具体包括第二外层标签插入子单元,用于在该转发芯片接收到的数据报文中没有包含Vtag时, 确定所述数据报文的Vtag,并将该Vtag作为外层VLAN标签插入所述数据报文;第二转发表查找子单元,用于利用该转发芯片接收到的数据报文中包含的Vtag和目的地址信息,或者利用所述第二外层标签插入子单元处理后的数据报文中包含的Vtag和目的地址信息,查找二层或三层转发表确定出端口 ;第二出口处理子单元,用于剥离所述数据报文的源角色tag,剥离或者不剥离数据报文中携带的Vtag后,在所述Egress功能模块确定需要转发数据报文时,将数据报文通过确定的出端口进行转发。
全文摘要
本发明提供了一种处理源角色信息的方法和转发芯片,使能入口(Ingress)功能时,将源角色tag作为数据报文的内层虚拟局域网(VLAN)标签插入数据报文;使能中间设备功能时,在转发数据报文时,对数据报文中作为内层VLAN标签的源角色tag保持不变;使能出口(Egress)功能时,从数据报文中获取作为内层VLAN标签的源角色tag从而进行基于角色的接入控制。本发明利用了现有转发芯片已有的QinQ功能,无需对现有网络设备的功能进行较大改动,降低了网络的升级成本。同时提供了一种通用的转发芯片,为上层软件提供了更加灵活的基础,方便对转发芯片的管理。
文档编号H04L12/28GK102263679SQ201010187358
公开日2011年11月30日 申请日期2010年5月24日 优先权日2010年5月24日
发明者宋玉兵, 杨小朋 申请人:杭州华三通信技术有限公司