一种桥接设备转发802.1X认证报文的方法 【技术领域】
本发明涉及802.1X报文的传输,特别是指一种桥接设备转发802.1X认证报文至与客户端桥接相连的设备端,触发并完成802.1X认证的方法。
背景技术
IEEE 802.1X协议是一种基于端口的访问控制协议(Port based networkaccess control protocol),是一种基于以太网技术的认证协议。802.1X以其协议安全、实现简单的特点与其它认证协议一起,给使用不对称数字用户线路(ADSL)、甚高速数字用户线路(VDSL)、局域网(LAN)、无线局域网(WLAN)等多种宽带接入方式的用户提供了丰富的认证方式。
IEEE 802.1X系统的体系结构及信息交换关系如图1所示,802.1X系统共有三个实体:客户端系统(Supplicant System)、设备端系统(AuthenticatorSystem)、认证服务器系统(Authentication Server System)。在客户端系统中进一步包括客户端端口状态实体(PAE),在设备端系统中进一步包括设备端系统提供的服务和设备端端口状态实体,在认证服务器系统中进一步包括认证服务器;该认证服务器与设备端的端口状态实体相连,通过扩展认证协议(EAP)来交换设备端和认证服务器间的认证信息,客户端的端口状态实体直接连到局域网(LAN)上,设备端的服务和端口状态实体分别通过受控端口(ControlledPort)和非受控端口连接于局域网上,客户端和设备端通过客户端和设备端间的认证协议(EAPoL)进行通信。其中,Controlled Port负责控制网络资源和业务的访问。
设备端系统通常为支持802.1X协议的网络设备,如图1所示,设备端系统的内部有两个虚端口:受控端口(Controlled Port)和非受控端口(Uncontrolled Port),该非受控端口始终处于双向连通状态,主要用来传递EAPoL协议帧,可保证客户端随时发出EAPoL协议帧或接受认证;而受控端口只有在认证通过,即授权的状态下才打开,用于传递网络资源和服务,也就是说,在认证未通过时该受控端口为未授权端口。受控端口可配置为双向受控、仅输入受控两种方式,以适应不同应用环境的需要。比如:图1中设备端系统地受控端口处于未认证、未授权状态,此客户端无法访问设备端系统提供的服务。
802.1X系统中的认证过程是由设备端接收客户端的认证信息,再将这些信息转发给对应的认证服务器上进行认证。802.1X认证通通常使用EAP认证方式,常用的EAP认证方式有MD5、TLS、OTP、SIM等等。基于图1所示的结构,以EAP-MD5认证方式为例,参见图2所示,其中,接入服务器为设备端,RADIUS服务器为认证服务器,实现802.1X认证的过程具体包括以下步骤:
步骤201:在客户端与接入服务器之间建立好物理连接后,客户端向接入服务器发送认证起始报文EAPoL-Start,触发802.1X的认证流程。这里,如果客户端是动态分配地址的,认证起始报文也可能是DHCP请求报文;如果客户端是手工配置地址的,认证起始报文还可能是ARP请求报文。
步骤202:接入服务器收到认证起始报文后,向客户端发送请求用户名报文EAP-Request[Identity],请求用户名。
步骤203:客户端回应一个响应用户名报文EAP-Response[Identity]给接入服务器,其中包括用户名。
步骤204:接入服务器以EAPoR(EAP over RADIUS)的报文格式向RADIUS服务器发送接入请求报文Access-Request,将客户端发给接入服务器的EAP-Response[Identity]报文透传给RADIUS服务器。
步骤205~206:RADIUS服务器收到用户名后,产生一个128bit的密钥Challenge;然后,发给接入服务器一个接入密码请求报文Access-Challenge,其中含有请求用户密码报文EAP-Request[MD5 Challenge]和Challenge。
步骤207:接入服务器收到后,发EAP-Request[MD5 Challenge]给客户端,将Challenge值发给客户端,并向客户端进行MD5质询。
步骤208:客户端收到EAP-Request[MD5 Challenge]报文后,将用户密码和Challenge值做MD5算法后得到加密密码,在响应用户密码报文EAP-Response[MD5 Challenge]中发给接入服务器。
步骤209:接入服务器再将加密密码通过Access-Request报文送到RADIUS服务器,由RADIUS服务器进行认证。
步骤210:RADIUS服务器根据用户信息判断该用户是否合法,然后回应认证成功/失败报文到接入服务器。如果成功,携带协商参数以及用户的相关业务属性给用户授权。
步骤211~212:接入服务器根据认证结果,给客户端回应认证成功/失败报文EAP-Success/EAP-Failure,通知用户认证结果。如果认证失败,则结束此流程;否则,如果客户端是动态分配地址的则通过DHCP进行地址分配,然后进行授权、计费等后续流程。
在客户端和设备端之间实现信息交互时,按照802.1X标准规定:当客户端知道设备端时,使用设备端的单播介质访问控制(MAC)地址发送EAPoL报文;当客户端不知道设备端时,使用多播MAC地址01-80-C2-00-00-03组地址发送EAPoL报文。而该多播MAC地址01-80-C2-00-00-03属于802.1D标准中所规定的不能被桥所中继的MAC地址,因此,802.1X标准建议:802.1X认证一般在最接近用户的设备上实现,即在802.1X认证前不经过桥接设备。
图3所示为常用的以太网组网方式,其中,可采用有线以太网技术,每台个人计算机(PC)中的网卡和以太网交换机(LAN Switch)通过网线相连,一个LAN Switch可同时连接多个PC机,LAN Switch通过以太网线路接到核心网中,所说的核心网可以是企业局域网、城域网等等;也可采用无线局域网技术,利用每台PC机中的无线网卡与无线接入点(AP)相连,一个AP可同时连接多个PC机,同样,AP也通过以太网线路接到核心网中。
图3只是以太网组网的一个具体实例,在实际组网中,可有多种组网结构。对于有线连接方式,PC机可以直接接在LAN Switch上,也可以通过HUB、LANSwitch等设备级联到LAN Switch上,还可以通过VDSL和VDSL交换机(VDSLSwitch)相连,其中在VDSL线路中传递的是以太网格式的报文。在无线局域网中,可使用但不限于802.11、802.11a、802.11b、802.11g等无线以太网协议来连接PC机和AP,PC机也可以通过ADSL设备连接到网络中。可见,PC机可以通过但不限于LAN Switch、AP、VDSL、ADSL等方式接入网络,并且通过网络中的认证服务器,如RADIUS服务器,对其进行合法性认证,来验证当前用户的身份是否合法,是否允许其接入网络。
基于以上所述的以太网组网结构,按802.1X标准的建议,802.1X认证就应该在LAN Switch和AP上实现。在LAN Switch和AP上实现对小规模网络中用户的认证完全没有问题,但对于规模庞大的大型网络,如图4所示的中大型企业网或运营商网络,在图4中,PC机通过网卡或无线网卡分别与LANSwitch或AP相连,LAN Switch或AP再通过以太网线路连接在接入控制设备上,这里所说的接入控制设备包括但不限于具有用户管理功能的LAN Switch、或路由器、或层三交换机(L3)、或宽带接入服务器(BAS)等等,若干个接入控制设备形成边缘汇聚层。
在图4所示的网络中,如果在所有最接近用户的设备上实现认证,由于这类设备的数量太大,设备成本、运营维护费用将会非常巨大,因此,此种情况下一般是在网络的边缘汇聚层中进行认证。换句话说就是,对于802.1X认证而言,如果在边缘汇聚层中进行802.1X认证,图4中的PC机相当于客户端,边缘汇聚层中的接入控制设备相当于设备端,那么,客户端向设备端传送的802.1X认证报文需要经过桥接设备转发。
由于在每个桥接设备,如交换机的底层都设置有MAC地址表,该表中规定了对经过本设备的、MAC地址不同的传输报文应该如何处理。因此,目前客户端与设备端之间的桥接设备,也就是最接近用户的设备与接入控制设备之间的所有桥接设备,对所接收到报文的处理过程是这样的:桥接设备收到新的报文后,先查询底层的MAC地址表,该表中给出了对于每个或每组目标MAC地址的处理方式,如果判断出该新报文的目标组地址为01-80-C2-00-00-03组地址,则将该新报文由本设备的上层实体进行处理,而不传送给下一层设备。
根据802.1D和802.1X标准的规定,用于802.1X认证的多播报文正是采用该多播MAC地址发送,那么,按照上述处理过程,802.1X认证报文将无法透过客户端与设备端之间的所有桥接设备,因此也无法转发到接入控制设备上,进而不能触发接入控制设备上的802.1X认证,所以,现有的运营网络中无法开展802.1X认证业务。
【发明内容】
有鉴于此,本发明的主要目的在于提供一种桥接设备转发802.1X认证报文的方法,使得802.1X认证报文能通过所有桥接设备转发,进而在与客户端桥接相连的设备端上触发802.1X认证,使运营网络能够开展802.1X认证业务。
为达到上述目的,本发明的技术方案是这样实现的:
一种桥接设备转发802.1X认证报文的方法,当需要进行802.1X认证的802.1X客户端经过桥接设备向其对应的设备端发送802.1X认证报文时,关键在于,对于不支持802.1X认证报文透传的桥接设备,该方法包括:
当前桥接设备接收到每个经过自身的报文后,先判断当前报文是否为802.1X认证报文,如果不是,则根据桥接设备中已有的底层MAC地址表内设置的处理方式对当前报文进行处理;否则,桥接设备根据配置参数设定的报文转换方式,对当前的802.1X认证报文进行转换处理,然后将经过转换处理的报文发送至下一层设备。
上述过程中,所述桥接设备根据配置参数设定方式对802.1X认证报文进行转换处理进一步包括:桥接设备根据配置参数判断当前所采用的报文转换方式,如果为改变报文处理流程方式,则桥接设备将对当前802.1X认证报文的处理方式改为透传当前报文;如果为转换报文传输地址方式,则桥接设备根据配置参数将传输当前802.1X认证报文的介质访问控制(MAC)地址替换为指定的多播MAC地址。
所述桥接设备将802.1X认证报文处理方式改为透传是:桥接设备将自身底层MAC地址表中对发送802.1X认证报文的01-80-C2-00-00-03组地址的处理方式改为透传当前报文。或是,桥接设备将自身上层实体中预先设定的对802.1X认证报文的传输方式改为透传当前报文。
所述桥接设备替换当前传输802.1X认证报文MAC地址为:将当前传输802.1X认证报文的MAC地址替换为01-80-C2-00-00-00到01-80-C2-00-00-0F组地址以外的任意一个多播MAC地址。该替换地址可为01-80-C2-00-00-20到01-80-C2-00-00-2F组地址中的任意一个。
或是,将当前传输802.1X认证报文的MAC地址替换为广播MAC地址。该方法进一步包括:在802.1X认证报文中设置一个控制802.1X认证报文广播范围的虚拟局域网标识。该方法还包括:在桥接设备所属的网络中,采用生成树协议(STP)对802.1X认证报文的传输进行管理。
或是,将当前传输802.1X认证报文的MAC地址替换为能导致广播方式的单播MAC地址。
或是,将当前传输802.1X认证报文的MAC地址替换为当前桥接设备与设备端通过协议交互协商确定的设备端单播MAC地址。其中,当前桥接设备可通过动态主机配置协议(DHCP)与设备端交互协商确定设备端单播MAC地址。
上述方法进一步包括:通过配置命令、或开关控制、或两者的组合确定每个桥接设备当前要替换的传输802.1X认证报文的MAC地址。
因此,本发明所提供的桥接设备转发802.1X认证报文的方法,在客户端与设备端之间的桥接设备上,通过各种方式转换传送802.1X认证报文的MAC地址,或改变对现有MAC多播地址传送802.1X认证报文的处理方式,使802.1X认证报文能由所经过的桥接设备转发,从而使客户端发送的802.1X认证报文能够透过桥接设备在设备端触发并进一步完成802.1X认证过程,如此,可支持在现有运营网络中开展802.1X认证业务,为用户提供更多更好、质量更高的服务。同时,这种方法使802.1X认证在边缘汇聚层上实现成为可能,进而可降低设备成本,减少网络的运营和维护费用。
【附图说明】
图1为802.1X系统的体系结构及信息交换关系示意图;
图2为802.1X系统中EAP-MD5认证过程的信令交互示意图;
图3为常用小型以太网组网方式的结构示意图;
图4为常用大型企业网或运营网络的组网结构示意图;
图5为本发明实现的流程图。
【具体实施方式】
本发明的核心思想就是:当客户端与设备端通过桥接设备相连时,由桥接设备将所有802.1X认证报文的MAC地址转换为所有桥接设备能转发的MAC地址,该桥接设备可根据自身对报文的处理过程或802.1X认证报文的传输过程,对所收到的802.1X认证报文的MAC地址进行相应的转换,然后再将转换后的802.1X认证报文向下一层设备发送。在此过程中,如果当前的桥接设备支持802.1X认证,则要关闭该设备的802.1X认证功能,并由该设备将802.1X认证报文转发给下一层设备。
因为客户端与设备端之间可能存在多个桥接设备,且有的桥接设备本身具有透传802.1X认证报文能力,那么,本发明所指的完成报文转换的桥接设备将分为三种情况:1)客户端与设备端之间的所有桥接设备都进行802.1X报文转换操作;2)客户端与设备端之间不具备透传802.1X认证报文能力的桥接设备都进行802.1X报文转换操作;3)由与客户端相连的第一个不能透传802.1X认证报文的桥接设备完成802.1X报文转换操作,其余后续的桥接设备直接转发已转换的报文。在第二和第三种情况下,具体哪个桥接设备需要进行报文转换操作是由系统通过配置命令或配置参数设定,且该配置可以动态更新。
对于每个桥接设备而言,根据报文在桥接设备中的处理过程和发送特点,具体的报文转换又可以包括两种实现方式:1)通过改变桥接设备内部的报文处理过程来实现;2)通过改变当前802.1X认证报文的传输MAC地址来实现。
对于第一种方式,具体有两种实现方案:
1)改变底层MAC地址表中的配置,即将表中01-80-C2-00-00-03组地址对应的处理方式由本机上层实体处理改为透传当前报文,即直接向下一层设备转发,那么,当桥接设备收到新报文查询MAC地址表时,就会根据MAC地址表中规定的处理方式,直接将该802.1X认证报文转发给下一层设备。
2)改变当前桥接设备中上层实体的处理,具体地说就是:预先在上层实体中设定对于01-80-C2-00-00-03组地址的802.1X认证报文进行透传处理,即直接向下一层设备转发,那么,当前桥接设备收到新报文后,查询MAC地址表,根据表中规定的处理方式,将该新报文发送给本设备的上层实体进行处理,上层实体根据预先的设定即将该802.1X认证报文向下一层设备转发。
对于第二种方式,具体有四种实现方案:
a)直接将传输802.1X认证报文的多播地址转换为01-80-C2-00-00-00到01-80-C2-00-00-0F以外的多播地址,在可选用为转换MAC地址的多播地址中也包括01-80-C2-00-00-20到01-80-C2-00-00-2F的多播组地址。
b)将传输802.1X认证报文的多播MAC地址转换为广播MAC地址,因为在以太网中,广播地址可以透传过所有的交换机,到达接入控制设备。
在本方案中,由于使用广播地址可能形成广播报文,可能会产生广播风暴。为了避免广播风暴的产生,可在802.1X规定的报文格式基础上,增加一个虚拟局域网标识(VLAN tag),使当前的802.1X认证报文只在指定的VLAN中广播,而不会广播到整个以太网络中。另外,如果桥接设备所属的网络,比如由交换机组成的网络中存在环网,则采用生成树协议(STP)对网络中的报文传输进行管理,以防止802.1X认证报文出现环路。
c)将传输802.1X认证报文的多播地址转换为一个可能导致广播的单播地址,因为在以太网中,如果以太网交换机收到一个单播MAC地址报文后,发现本交换机上没有对应该单播目的MAC地址的信息,则向非本端口或非本VLAN广播此单播报文,该类单播地址被视为可能导致广播的单播地址。可以预先确定一个导致广播的单播地址,也可以先设定一段可能导致广播的单播地址范围,每次从该范围内任选一个来传输802.1X认证报文。
d)由于有明确单播MAC地址为目的地址的报文可直接透传至目的设备上,因此,可预先通过桥接设备和设备端之间的协商确定要转换的MAC地址,该配置协商可通过某种已有协议或新协议在802.1X认证前进行,也就是说,先通过某种选定的协议进行认证前的交互,使得桥接设备能先获得设备端的MAC地址,然后,桥接设备直接将当前发送802.1X认证报文的MAC地址转换为所获取的单播MAC地址,这里所述的可用协议包括但不限于动态主机配置协议(DHCP)。
对于上述六种报文转换方式,具体采用何种方式以及选用哪个目的MAC地址可通过配置命令在桥接设备上预先设定,然后,桥接设备在按确定好的方式和配置好的目的MAC地址转发802.1X认证报文,这样就可使802.1X认证报文一直透传到接入控制设备,触发接入控制设备上的802.1X认证,并完成802.1X认证流程。这里,报文的转换处理可由硬件功能、或CPU、或配置数据库中的信息单独实现;或由硬件功能和配置数据库中信息配合完成;或由CPU和配置数据库中信息配合完成。
在实际应用过程中,如果客户端与设备端之间有多个桥接设备需要完成报文转换操作,那么,每个桥接设备可任意的选用其中一种实现方案,多个桥接设备可以使用相同的实现方案,或分别使用不同的实现方案都可以,只要能完成客户端到设备端802.1X认证报文的转发即可。另外,在整个认证过程中,同一桥接设备在802.1X初始认证过程和重认证过程中也可分别使用不同的报文转换方案。其中,每个桥接设备采用何种报文转换的实现方案可通过配置命令、或开关控制、或两者的组合来设定。
基于上述分析,当某个需要进行802.1X认证的客户端经过桥接设备向其对应的设备端发送认证报文时,如图5中步骤501~步骤508所示,本发明中某个桥接设备转发802.1X认证报文的基本实现过程是这样的:
当前桥接设备接收到每个经过自身的报文后,先判断当前报文是否为802.1X认证报文,如果不是,则根据桥接设备中已有的底层MAC地址表内设置的处理方式对当前报文进行处理;否则,桥接设备根据配置参数判断使用何种报文转换方式,如果是改变报文处理过程,则桥接设备将自身底层MAC地址表或上层实体对802.1X认证报文的处理方式改为透传,然后将当前收到的802.1X认证报文直接发送至下一层设备;如果是转换报文的传输地址,则再根据配置参数将传输当前802.1X认证报文的MAC地址替换为指定的多播MAC地址,然后将经过MAC地址转换的报文发送至下一层设备。比如:交换机对当前的802.1X认证报文按指定方式进行转换,然后将转换后的报文转发给接入控制设备。
其中,桥接设备接收报文后,可由其内部的特定用途集成电路(ASIC)直接处理,也可以由其内部的ASIC转发给CPU,由CPU对报文进行处理。这里所述的处理就是指:对普通的接收报文按现有技术的处理过程完成相应的操作;对所接收到的802.1X认证报文,按设定的转换方式进行报文转换后转发给下一层设备。同样,转换后的报文可由桥接设备内部的ASIC发送,也可以由CPU发送。
以上所述,仅为本发明的较佳实施例而已,并非用来限定本发明的保护范围。