一种802.1x认证方法 【发明领域】
本发明一般涉及网络通信技术,特别涉及一种在网络通信认证系统中实现的基于MAC(介质访问控制)或端口的802.1x认证方法。
背景技术
IEEE 802 LAN(局域网)协议定义的局域网通常不提供接入认证,一般来说,只要用户能接入局域网控制设备,如Hub(集线器)或LanSwitch(局域网交换机),用户就可以访问局域网中的设备或资源。但是对于诸如电信接入等应用,LAN(局域网)设备提供者希望能对用户的接入进行控制,为此产生了基于端口的网络接入控制(Port Based network access control)需求。802.1x协议提供了一种用户接入认证的手段,用以对用户的认证进行控制。
图1是常规的802.1x认证体系的结构示意图。从图1中可以看出,IEEE802.1x认证体系包括三部分:认证申请系统;认证执行系统;以及认证服务器系统。
认证申请系统与认证系统之间运行由IEEE 802.1x定义的EAPOL协议(承载于局域网的扩展认证协议),在EAP(扩展认证协议)帧中封装了认证数据。认证系统与认证服务器之间同样运行EAP协议,只是该协议承载于其他高层次的协议中,如Radius(远端拨入用户验证服务协议),以便穿越复杂的网络到达认证服务器(EAP中继)。
802.1x协议规定,认证执行系统在将EAPOL传递到认证服务器时不能修改EAP帧的内容。而且,如果认证系统与认证服务器系统处于同一个设备中,则不需要进行EAP中继。
认证申请系统可以是任何接入LAN(局域网)的设备,为支持基于端口的接入控制,只需使认证申请系统支持EAPOL协议即可,运行EAPOL协议的实体称为认证申请端口接入实体。
认证执行系统内部有受控端口(Controlled Port)和非受控端口(Uncontrolled Port)。非受控端口始终处于双向连通状态,主要用来传递EAPOL协议帧,以保证客户端始终可以发出或接受认证。受控端口只有在认证通过的状态下才打开,用于传递网络资源和服务。受控端口可配置为双向受控和仅输入受控两种方式,以适应不同的应用环境。
认证服务器系统接受认证系统传递来的认证需求,并在认证完成后将认证结果下发给认证执行系统,以完成对端口的管理。由于EAP协议较为灵活,除了IEEE 802.1x定义的端口状态外,认证服务器系统实际上还可以用于认证和下发更多用户相关的信息,如VLAN(虚拟局域网)、QOS(业务质量)、加密认证密钥、DHCP(动态主机控制协议)响应等。
图2是常规IEEE 802.1x认证机制地原理示意图。如图2所示,常规的IEEE 802.1x认证包括以下主要过程:(1)认证发起(用户和设备均可发起);(2)Radius(远端拨入用户验证服务)服务器接受认证,并返回认证结果;(3)认证通过,打开受控端口;(4)认证包丢失重传;(5)重新认证(根据时间);以及(6)退出已认证态(用户“下线”)。由于其具体过程在本领域中都是公知技术,故省略说明。
IEEE 802.1x作为一种认证方式,其封装开销小,容易实现基于时间的计费,而且由于操作系统内置有认证客户端的支持,因此使用非常方便。但是,由于目前市场上推出的基于802.1X的认证方式都是基于端口的认证方式。在该认证方式下,如果该端口被认证通过,则该端口下的所有用户都可以上网。但是,如果一个接入端口下接多个用户,则不能分别对各用户进行认证控制,从而不能很好地满足企业和集团用户的需求。
【发明内容】
因此,本发明就是针对现有技术中存在的上述问题而做出的,其目的是提供一种基于MAC(介质访问控制)地址或端口的802.1X认证方法,该方法既可以对同一端口下接的多个用户分别进行认证,也可以通过配置提供基于端口的802.1X认证。
为了实现上述目的,本发明提供了一种802.1x认证方法,该方法包括以下步骤:1)所述网络认证执行系统根据用户报文的认证类型来控制外部认证设备对用户报文的认证;以及2)所述网络认证执行系统根据外部认证设备对所述用户报文的认证情况以控制所述用户报文的转发处理。
所述步骤1)中进一步包括判断所述用户报文的认证类型是基于端口的认证还是基于MAC地址的认证的步骤。
在所述用户报文的认证类型是基于端口的认证的情况下,所述步骤2)进一步包括对用户报文所属端口是否通过外部认证设备的认证进行判断的步骤。
在用户报文所属端口通过外部认证设备的认证的情况下,所述网络认证执行系统将对用户报文所属端口的地址进行学习,并且对地址学习成功的报文进行转发处理,对地址学习不成功的报文进行丢弃;在用户报文所属端口未通过外部认证设备的认证的情况下,所述网络认证执行系统将直接丢弃所述用户报文。
在上述方法中,所述对用户报文所属端口进行地址学习的步骤进一步包括限制允许学习来自端口的MAC地址的数目以及将学习到的地址与所述网络认证执行系统的内部连接标识进行绑定的步骤。
另一方面,在所述用户报文的认证类型是基于MAC地址的认证的情况下,所述步骤2)包括禁止学习所述用户报文的所述端口的地址的步骤。
进一步,所述步骤2)包括对用户报文的MAC地址是否通过外部认证设备的认证进行判断的步骤。
在用户报文的MAC地址通过外部认证设备的认证的情况下,所述网络认证执行系统将保存所述用户报文的MAC地址,以使所述用户报文可以通过网络认证执行系统进行发送和接收;在用户报文的MAC地址通过外部认证设备的认证的情况下,所述网络认证执行系统将直接丢弃所述用户报文。
此外,上述方法中还包括所述网络认证执行系统对EAPOL类型的报文直接进行转发处理的步骤。
采用本发明的认证方法,既可以实现基于端口认证的802.1X认证,也可实现基于MAC地址的认证以对同一端口下接的多个用户分别进行认证,从而可以较好地满足企业和集团用户的多样性需求。
【附图说明】
通过以下的文字说明并参考附图,本发明的上述目的、特征和优点将变得更加清楚。在以下的附图中:
图1是常规802.1x认证体系的结构示意图;
图2是常规IEEE 802.1x认证机制的原理示意图;
图3示出了本发明中采用的认证执行系统的结构框图;
图4示出了根据本发明实施例所述的基于MAC或端口的802.1x认证方法的流程框图。
【具体实施方式】
以下将参考附图对本发明的具体实施方式进行详细说明。
图3示出了本发明中采用的认证执行系统的结构框图。如图3所示,该认证执行系统包括:用户侧接收发送处理设备1、协议处理模块2、MAC地址维护模块3、中央处理器(CPU)4以及网络侧接收发送处理模块5。
用户侧接收发送处理模块1的功能是:从用户设备接收报文,进行缓存,然后送给协议处理模块处理;对网络侧的报文进行封装处理,转发给用户设备;协议处理模块2的功能是:对报文进行协议分析,根据分析结果进行交CPU、转发或丢弃的操作。对于EAPOL帧,不需要进行MAC地址学习或查找操作而直接转发;对于其他的业务报文只有MAC地址学习或查找操作成功的情况下才转发,否则丢弃;MAC地址维护模块3的功能是:提供MAC地址学习和查找、自动老化、基于端口的是否允许学习控制、基于端口的允许学习的MAC地址数控制、MAC地址/IP地址和内部连接标识的绑定、CPU4添加静态MAC地址等功能。网络侧接收发送处理模块5的功能是:从协议处理模块2接收报文,将报文转发给外部认证设备,并将来自外部认证设备的报文转发给协议处理模块2。应该明白,上述各个模块的实现方法对本领域技术人员来说都是公知的,其具体内容可参考如IEEE802.1D,这里不再赘述。
以下将参考图4对根据本发明实施例所述的方法进行详细说明。
图4示出了根据本发明实施例所述的基于MAC或端口的802.1x认证方法的流程框图。如图4所示,首先,当用户侧接收发送处理模块1接收到来自用户设备的报文时(步骤1),它将把报文交送给协议处理模块处理2。在接收到报文之后,协议处理模块2先判断报文是否为EAPOL报文(步骤2),其判断的依据是对报文的Ethernet Type域进行分析,如果该域的值为0x888E,则认为该报文是EAPOL报文。对于EAPOL报文,协议处理模块2将其直接送交CPU4并通过网络侧接收发送处理模块5转发给外部认证设备(步骤3)。接下来,若报文不是EAPOL报文,则协议处理模块2将进一步判断报文是基于端口认证的模式还是基于MAC地址认证的模式(步骤4)。这里,需要注意的是,用户报文的认证类型已在用户组网时被预先设定好。可以通过用户报文中预先设定好的标记来确定用户报文的认证类型。在步骤7中,当用户报文是基于端口认证的模式时,协议处理模块2将进一步判断该用户端口是否已经通过认证,如果用户端口未通过认证,则协议处理模块2将丢弃该报文(步骤10),反之,则协议处理模块2将对用户端口进行地址学习(步骤8)。如果端口地址学习不成功,则协议处理模块2丢弃该报文(步骤11),反之,则协议处理模块2将把该报文发送至网络侧接收发送处理模块进行转发处理(步骤9)。另外,在上述步骤8中,则协议处理模块2还提供了基于端口的允许学习的MAC地址数目控制以及MAC地址/IP地址和内部连接标识的绑定,从而起到了限制用户数量和防止用户MAC地址盗用的作用。举例如下:在MAC地址维护模块3中提供了允许由CPU配置的基于端口的允许学习的MAC地址数目,另外还提供一个MAC地址维护模块3维护的已经学习到的MAC地址数量计数器,每次该端口学习到一个新的MAC地址,MAC地址维护模块3维护的计数器就加1,如果CPU删除或者老化掉一个MAC地址时,MAC地址维护模块3维护的计数器就减1,如果这个计数器大于或者等于CPU配置的允许学习的MAC地址数目时,新的MAC地址将不会再允许学习,这样就起到了限制端口用户数量的功能。MAC地址/IP地址和内部连接标识的绑定功能可以在协议处理模块2中允许由CPU配置相应的内部标识符和MAC地址/IP地址的映射表,然后由协议处理模块2从接收的报文中提取源MAC和源IP地址和配置的表项进行比较,匹配的就允许通过,不匹配的报文进行丢弃处理,这样就实现了MAC地址/IP地址和内部连接标识的绑定功能。
另一方面,在步骤4中,当用户报文是基于MAC的认证类型时,协议处理模块2将判断该报文所属的MAC地址是否已经通过认证(步骤5),如果此MAC地址未通过认证,则该报文将被丢弃。反之,当该MAC地址通过认证时,CPU将通过MAC地址维护模块把该MAC地址添加为静态MAC,这样该MAC地址的用户就可以进行业务报文的发送和接收。以后,对于除EAPOL报文以外的其它报文来讲,在用户通过认证之前,协议处理模块2对其他数据报文进行丢弃处理(步骤6),在认证通过以后,对其他数据报文进行MAC地址匹配查找,如果能够在MAC地址表中找到匹配的表项就转发(步骤9),否则就丢弃。
应该注意的是,虽然以上是参考具体实施方式对本发明进行说明的,但这并不意味着是对本发明的限制。本领域的普通技术人员应该明白,可以在上述说明的基础上对本发明做出多种修改和变换。因此,本发明的保护范围是由所附权利要求而不是具体实施方式来限定的。