您的位置:首页 > 其它

华为技术之协议原理与实现

2007-09-28 16:47 393 查看
为什么要实现IEEE802.1x?随着宽带以太网建设规模的迅速扩大,网络上原有的认证系统已经不能很好的适应用户数量急剧增加和宽带业务多样性的要求。IEEE802.1x协议具有完备的用户认证、管理功能,可以很好地支撑宽带网络的计费、安全、运营和管理要求,对宽带IP城域网等电信级网络的运营和管理具有极大的优势。IEEE802.1x协议认证方式和认证体系结构上进行了优化,解决了传统PPPOE和WEB/PORTAL认证方式带来的问题,更加适合在宽带以太网中的使用。

  IEEE802.1x是IEEE2001年6月通过的基于端口访问控制的接入管理协议标准。

  IEEE802系列LAN标准是目前居于主导地位的局域网络标准,传统的IEEE802协议定义的局域网不提供接入认证,只要用户能接入局域网控制设备,如传统的LanSwitch,用户就可以访问局域网中的设备或资源,这是一个安全隐患。对于移动办公,驻地网运营等应用,设备提供者希望能对用户的接入进行控制和配置,此外还存在计费的需求。

  IEEE802.1x是一种基于端口的网络接入控制技术,在 LAN 设备的物理接入级对接入设备进行认证和控制,此处的物理接入级指的是 LANSWITCH设备的端口。连接在该类端口上的用户设备如果能通过认证,就可以访问 LAN 内的资源;如果不能通过认证,则无法访问 LAN 内的资源,相当于物理上断开连接。

  下面首先让我们了解一下IEEE802.1x端口访问控制协议的体系结构。

  1.IEEE802.1x体系介绍
  虽然IEEE802.1x定义了基于端口的网络接入控制协议,但是需要注意的是该协议仅适用于接入设备与接入端口间点到点的连接方式,其中端口可以是物理端口,也可以是逻辑端口。典型的应用方式有:LanSwitch 的一个物理端口仅连接一个 End Station,这是基于物理端口的; IEEE 802.11定义的无线 LAN 接入方式是基于逻辑端口的。



              图1 IEEE802.1x的体系结构
  
  IEEE802.1x的体系结构中包括三个部分:Supplicant System,用户接入设备;Authenticator System,接入控制单元;Authentication Sever System,认证服务器

  在用户接入层设备(如LANSWITCH)实现 IEEE802.1x的认证系统部分,即Authenticator;IEEE802.1x的客户端一般安装在用户PC中,典型的为Windows XP操作系统自带的客户端; IEEE802.1x的认证服务器系统一般驻留在运营商的AAA中心。

  Supplicant与Authenticator间运行 IEEE IEEE802.1x定义的EAPOL协议;Authenticator 与 Authentication Sever 间同样运行 EAP 协议,EAP 帧中封装了认证数据,将该协议承载在其他高层次协议中,如 Radius,以便穿越复杂的网络到达认证服务器

  Authenticator每个物理端口内部有受控端口(Controlled Port)和非受控端口(unControlled Port)等逻辑划分。非受控端口始终处于双向连通状态,主要用来传递 EAPOL 协议帧,可保证随时接收Supplicant发出的认证EAPoL报文。受控端口只有在认证通过的状态下才打开,用于传递网络资源和服务。受控端口可配置为双向受控、仅输入受控两种方式,以适应不同的应用环境。输入受控方式应用在需要桌面管理的场合,例如管理员远程唤醒一台计算机(supplicant)。

  2.IEEE802.1x认证过程简介



            图2 IEEE802.1x的认证过程
  
  IEEE802.1x通过 EAP 承载认证信息,共定义了如下 EAP 包类型:

  EAP-Packet,认证信息帧,用于承载认证信息;
  EAPOL-Start,认证发起帧,Supplicant 和 Authenticator 均可以发起;
  EAPOL-Logoff,退出请求帧,可主动终止已认证状态;
  EAPOL-Key,密钥信息帧,支持对 EAP 报文的加密;
  EAPOL-Encapsulated-ASF-Alert,用于支持 Alert Standard Forum (ASF)的 Alerting 消息;

  其中 EAPOL-Start,EAPOL-Logoff 和 EAPOL-Key 仅在 Supplicant 和 Authenticator 间存在,在交换机和认证服务器间,EAP-Packet报文重新封装承载于Radius协议之上,以便穿越复杂的网络到达认证服务器。 EAPOL-Encapsulated-ASF-Alert 封装与网管相关信息,例如各种告警信息,由 Authenticator 终结。

  3.IEEE802.1x的特点

  (1)协议实现简单

  IEEE802.1x协议为二层协议,不需要到达三层,对设备的整体性能要求不高,可以有效降低建网成本。

  (2)认证和业务分离

  IEEE802.1x的认证体系结构中采用了"可控端口"和"不可控端口"的逻辑功能,从而可以实现业务与认证的分离,由Radius服务器和以太网交换机利用不可控的逻辑端口共同完成对用户的认证与控制,业务报文直接承载在正常的二层报文上通过可控端口进行交换;所以通过认证之后的数据包是无需封装的纯数据包。认证系统简化了PPPOE方式中对每个数据包进行拆包和封装等繁琐的工作,所以802 .1x封装效率高,消除了网络瓶颈;同时,由于IEEE802.1x认证包采用了在不可控通道中的独立处理的方式,因此认证处理容量可以很大,远远高于传统的BAS,无需要购买昂贵设备,降低了建网成本。

  (3)和其他认证方式的比较:

  IEEE802.1x协议虽然源于IEEE 802.11无线以太网(EAPOW),但是,它在以太网中的引入,解决了传统的PPPOE和WEB/PORTAL认证方式带来的问题,消除了网络瓶颈,减轻了网络封装开销,降低了建网成本。

  众所周知,PPPOE是从基于ATM的窄带网引入到宽带以太网的,由此可以看出,PPPOE并不是为宽带以太网量身定做的认证技术,将其应用于宽带以太网,必然会有其局限性,虽然其方式较灵活,在窄带网中有较丰富的应用经验,但是,它的封装方式,也造成了宽带以太网的种种等问题。在PPPOE认证中,认证系统必须将每个包进行拆解才能判断和识别用户是否合法,一旦用户增多或者数据包增大,封装速度必然跟不上,成为了网络瓶颈;其次这样大量的拆包解包过程必须由一个功能强劲同时价格昂贵的设备来完成,这个设备就是我们传统的BAS,每个用户发出的每个数据包BAS必须进行拆包识别和封装转发;为了解决瓶颈问题,厂商想出了提高BAS性能,或者采用大量分布式BAS等方式来解决问题,但是BAS的功能就决定了它是一个昂贵的设备,这样一来建设成本就会越来越高。

  WEB/PORTAL认证是基于业务类型的认证,不需要安装其他客户端软件,只需要浏览器就能完成,就用户来说较为方便。但是由于WEB认证走的是7层协议,从逻辑上来说为了达到网络2层的连接而跑到7层做认证,这首先不符合网络逻辑。其次由于认证走的是7层协议,对设备必然提出更高要求,增加了建网成本。第三,WEB是在认证前就为用户分配了IP地址,对目前网络珍贵的IP地址来说造成了浪费,而且分配IP地址的DHCP对用户而言是完全裸露的,容易造成被恶意攻击,一旦受攻击瘫痪,整网就没法认证;为了解决易受攻击问题,就必须加装一个防火墙,这样一来又大大增加了建网成本。WEB/PORTAL认证用户连接性差,不容易检测用户离线,基于时间的计费较难实现;用户在访问网络前,不管是 TELNET、FTP还是其它业务,必须使用浏览器进行WEB认证,易用性不够好;而且认证前后业务流和数据流无法区分。所以,在以太网中,WEB/PORTAL认证目前只是限于在酒店,校园等网络环境中使用。

  4.IEEE802.1x应用



图3 IEEE802.1x应用于有线和无线网络
     移动办公为企业网用户带来了灵活方便的使用环境。但同时也带来了相应的安全和管理问题。IEEE802.1x协议的出现有效地解决了上述问题。

  如上图,移动办公环境中的接入层交换机Quidway S3026和Quidway AccessPoint位于在企业网的最边缘,所有接入PC的的端口被配置为IEEE802.1x Authenticator管理,这些端口在初始化时处于阻塞状态,除了IEEE802.1x的控制协议报文,所有其他报文在端口处都将被丢弃。

  用户的PC机充当IEEE802.1x的supplicant客户端,典型的IEEE802.1x客户端是Windows XP自带的身份认证系统。用户的用户名和口令信息(或者证书)被送到认证服务器。在认证服务器认证通过后,服务器认证结果和相关附属配置下发到边缘交换机,边缘交换机根据认证结果报文打开或继续关闭边缘端口,配置端口属性,例如,此端口(用户)的VLAN-ID,缺省802.1p优先级,ACL访问控制列表,802.11WLAN用户40bit/128bit动态密钥等。其中VLAN配置可以通过动态VLAN协议自动扩散到企业LAN的其他交换机,通过这种方式,一个用户可以搬迁、漫游到企业网的不同工作位置,不需要管理人员参与任何配置工作就能迅速地接入工作网络,同时又保证了用户群组的安全隔离,例如,工作核心人员的便携机即使漫游到开放的休息室也能接入到特定VLAN。

  网络管理员通过管理集中的认证服务器数据库可以实现对整个企业网用户的有效管理。 Authentication Sever可以采用标准的Radius认证服务器,也可以选用业务交换机来实现,后者主要用在网络规模不大的(300用户左右)情况中,华为3Com的Quidway 3000系列以上交换机在新的软件版本中,都提供内嵌Authentication Sever(认证服务器)的功能,通过华为3Com内部集群通讯协议高效完成对用户的认证配置功能。

  IEEE802.1x通过对Radius的支持,还能提供计费功能,通过监控边缘用户接入端口的会话时间和流量,向计费服务器发出计费报文,从而方便的实现对流量、时间计费等运营需求。

  5.IEEE802.1x配置

   5.1 实现本地认证的配置:

   (1)配置aaa

   aaa authentication-scheme authentication local
   aaa accounting-scheme accounting disable
  说明:simple认证也是本地认证的一种,它和local认证相比,在认证时不对密码进行验证,即用户可以不需密码直接通过认证上网。

   (2)配置域huawei

   domain huawei
   authentication-scheme authentication
   accounting-scheme accounting
   state active
   quit
  说明:域里配置的auth要和aaa配置的auth名称一致,acc也一样,如上蓝色部分和红色部分。

   (3)配置本地用户

   local-user test@huawei state active service-type dot1x password simple test

   (4)dot

   Dot1X
   Dot1X interface e0/10
  说明:全局启动dot后,用户接入端口也要手工启动dot,这一步不可省,而服务器与Lanswitch接入的端口千万不能启动Dot1X。

   5.2 实现远程认证的配置:

   (1)配置aaa

   Aaa authentication auth radius
   Aaa accounting acc enable offline
  说明:Enable offline即认证失败后用户下线;enable online是认证失败后用户仍在线。

   (2)配置radius host

   Radius scheme radius
   Primary auth 10.110.92.74 1812
   Primary acct 10.110.92.74 1813
   Exit
  说明:10.110.92.74为Radius server的IP地址。

   (3)配置域huawei

   Authen-scheme auth
   Acct-scheme acc
   Radius-scheme radius
   State active

   (4)启动dot

   Dot 1X
   Dot1X int e0/10

   5.3 配置说明
   (1)port-method

  我们在敲命令行的时候,Port-method 有两种选择:

   “[S3026-1]dot port-method ?
   macbased  Method based on MAC address
   portbased Method based on port   ”

  基于mac的认证和基于port的认证,这两种方式有什么不同呢?

   a、应用方式不同

  mac方式:对一个端口下挂的所有用户,每一个用户都必须通过认证,才能上网。
  port方式:对一个端口下挂的所有用户,只要有一个用户通过认证,其他用户不必通过认证,即可上网。

   b、实现的机制不同

  mac方式:端口启动dot1X,第一步,用户未认证前,把该端口设成Mac max-mac-count 0,禁止地址学习;第二步,用户认证通过后,在这个端口上配置一条mac地址,如:

   MAC ADDR     VLAN ID   STATE    PORT INDEX    AGING TI

   0005.5da4.6b2d  1     system   Ethernet0/10     5

  只有在Lanswitch上存在mac地址表项的用户才可以上网。
  port方式:端口启动dot1X,第一步,用户未认证前,借用Span tree机制,端口设成discarding状态。第二步,用户认证通过后,端口状态变为forwarding状态。当然这些端口状态对用户不可见。port方式在用户认证的时候不配置mac地址。

   c、认证时交互报文不同

   mac方式:PC发起的start报文目的mac是0180c2000003,源mac是PC的Mac;之后的request报文或response报文目的mac都是单播报文,是PC和Lanswitch的Mac。
   port方式:PC发起的start报文目的mac是0180c2000003,源mac是PC的mac,这点和mac方式一样。之后的request报文或response报文是PC和0180c20003的交互,即request报文源mac是0180c2000003,response报文目的mac是0180c2000003。

   (2)port-control

   “[S3026-1 ]dot port-control ?
   authorized-force  Port authorized unconditionally
   auto   Authorized status controlled by Finite State Machine
   unauthorized-force Port unauthorized unconditionally”

  根据IEEE IEEE802.1x,ForceUnauthorized是常关模式,端口保持非认证状态,即用户从这个端口接入,是无论如何上不了网的,不管用户是否通过认证
  ForceAuthorized是常开模式,端口保持认证状态,即用户从这个端口接入,肯定可以上网,不管用户是否通过认证
  Auto:端口是开还是关取决于认证是否通过。认证通过,用户可以上网,否则,用户不能上网。端口只有置于这种模式下,客户端才能认证通过,我们的Lanswitch缺省配置就是auto模式。

  6.故障排查

  首先,保证链路连接正确。检测方法:将Lanswitch的dot1X关闭--“No dot1X”,本地认证PC ping Lanswitch,远程认证PC ping radius server,保证能ping通。其次,检查用户和Lanswitch连接的端口是否启动802.1x。检测方法:可以通过“Show run”或“show dot int e0/10”来查看。再次,检查交换机配置是否正确。包括:远程认证检查交换机配置的key是否和Radius server的key一致;域里是否引用了Radius host;域的状态是否激活。第四,检查NAS地址配置是否和Radius server上指定的地址一致。在radius server上可以指定NAS地址,交换机上的NAS配置须和radius server上指定的一致。第五,对于我们的cams服务器,客户端上的用户名要和cams上的业务名一致,而不是和帐号名一致,用户密码要和业务密码一致。如:客户端用户名是test@huawei,密码test。cams上创建一个帐号用户,111@huawei,密码111,此帐号需要申请业务--LAN接入业务(因为不申请业务这个帐号就不能提供服务),申请业务的业务名必须是test@huawei,业务密码必须是Test。 第六,对于cams上生成的预付费卡用户,密码是随机的,你需要到cams上查找密码,路径即是生成卡用户时指定的路径。需要注意的是,对于这种用户,交换机上应配置:

  [S3026-1-radius-default]user-name-format without-domain

  认证时,客户端输入,如:用户:10000001@huawei,密码:726939。Lanswitch这样配置是因为在cams上预付费卡用户名是不带域名存在的,当然,对预付费卡来说,用户上网的先决条件一定是卡里的余额大于零。第七,如果和cams配合认证还是失败,可以telnet登上去看cams的log信息,在/root/cams/log目录下,根据日期就可以查看,比如今天是2002年7月30日,文件名就是20020730.log,大家需要注意的是,千万不能“vi”打开看log,这样会造成读写冲突,丢失日志信息,建议大家使用“Tail -f 20020730.log”命令查看。

  7.小结

   下面总结IEEE802.1x协议的优点:

   容易实现:可在普通L3、L2、IP DSLAM上实现,网络综合造价成本低。
   安全可靠:在二层网络上实现用户认证,并可以通过设备实现MAC、端口、账户和密码等绑定技术具有很高的安全性;
   行业标准:IEEE标准,微软操作系统内置支持;
   易于运营:控制流和业务流完全分离,易于实现多业务运营,少量改造传统包月制等单一收费制网络即可升级成运营级网络。

function ImgZoom(Id)//重新设置图片大小 防止撑破表格
{
var w = $(Id).width;
var m = 550;
if(w < m)
{
return;
}
else
{
var h = $(Id).height;
$(Id).height = parseInt(h*m/w);
$(Id).width = m;
}
}
window.onload = function()
{
var Imgs = $("content").getElementsByTagName("img");
var i=0;
for(;i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: