Diameter协议介绍内容提要IMS中的AAA协议:DiameterDiameter在IMS中的应用Diameter协议的起源和发展AAA指的是Authentication(鉴别),Authorization(授权),Accounting(计费)。RADIUS是目前最常用的认证计费协议之一,它简单安全,易于管理,扩展性好,所以得到广泛应用。随着新的接入技术的引入和接入网络的快速扩容,越来越复杂的路由器和接入服务器大量投入使用,对AAA协议提出了新的要求,使得传统的RADIUS结构的缺点日益明显。这就需要采用新一代的AAA协议——Diameter。Diameter协议的体系架构Diameter的基础协议(Baseprotocol)Diameter的CMS(CryptographicMessageSyntax)密码消息语法协议Diameter的(MobileIP)移动IP协议Diameter的NAS(NetworkAccessService)网络接入服务协议Diameter的EAP(ExtensibleAuthenticationProtocol)可扩展鉴别协议Diameter在IETF协议栈结构中的位置Diameter协议的体系架构连接层负责维护管理两个对等端之间的Diameter连接状态机,为上层数据传输提供数据通道。事务层负责处理Diameter消息的事务处理部分,包括消息缓存队列维护、请求消息和响应消息的对应、事务逐跳标识的维护管理等。会话层构建和维护AAA体系的鉴权、授权以及计费的会话状态机。应用层在会话状态机的基础之上定义Diameter消息的结构和参数,完成业务的要求。Diameter协议的功能AVP信息传送Diameter连接维护、管理事务缓存能力协商对端发现和配置Diameter协议的特点故障恢复Diameter协议提供统一的故障恢复方式,支持应用层的故障确认、定义了故障恢复的算法和相应的状态机。传输层安全提供统一的传输层安全机制,Diameter协议要求在传输层,IPSEC是必须的,TLS是可选的。传输的可靠性Diameter协议运行于可靠的传输TCP、SCTP之上,保证了传输的可靠性。Diameter基本协议运行在TCP和SCTP传输协议的端口3868上,以后版本将强制Diameter协议特点支持代理RADIUS没有明确支持代理功能,包括代理服务器、中继服务器、重定向服务器。而Diameter协议则提供对上述代理的支持。安全监控Radius不提供基于数据的安全机制,导致数据在传输过程中被修改而无法发现。Diameter协议提供可选的CMS功能对数据进行保护。过渡性支持因为Diameter和Radius没有共用的数据协议单元,只要有一个同时支持Radius和Diameter的网关,两种协议可以在同一个网络中使用。服务器主动发起消息Diameter协议中定义服务器主动发起消息是必选功能。Diameter协议的网络架构客户端(Client)服务器(Server)中继(Relay)中继的功能是根据与路由相关的AVP和域路由表转发请求和响应中继可以用来集中一定地理范围内的NAS请求由于中继不作策略决定,它们不检查或改变非路由AVP中继不需要维护会话状态,但需要维护事务状态Diameter协议的网络架构代理(Proxy)通过Diameter路由表路由Diameter消息根据实施策略可以对消息进行修改需要对资源进行限制的Proxy必须维护会话状态,所有的Proxy必须维护事务状态重定向服务器(RedirectServer)重定向Agent引导Diameter客户端到服务端,使得它们可以直接通信。翻译服务器(TranslationServer)用于执行Diameter和其它AAA协议(如RADIUS)之间的协议翻译Diameter协议的网络架构接入设备Diameter中继归属Diameter服务器1、请求5、应答6、应答4、请求example.netexample.netexample.comDiameter重定向2、请求3、重定向通知Diameter协议的网络架构Diameter协议的消息格式01234567890123456789012345678901VersionMessageLengthCommandlagsCommand-CodeApplication-IDHop-by-HopIdentifierEnd-to-EndIdentifierAVPS……..Diameter消息头格式Diameter消息头格式Diameter消息头长度为20byteVersion:Diameter协议版本号,设置为1MessageLength:包括diameter头的消息长度CommandFlags:命令标记8比特01234567+-+-+-+-+-+-+-+-+|RPETrrrr|+-+-+-+-+-+-+-+-+R(equest)如果设置表明是请求消息,如果清除表明是应答消息P(roxiable)如果设置,该消息可以被代理、中继、重定向;如果清除,该消息必须本地处理E(rror)该bit表示消息包含了协议错误,不能出现在请求消息中Diameter消息头格式T(Potentiallyre-transmittedmessage)该标志是用来在倒换过程后防止重复的请求。该标志仅在发送请求后没有收到任何响应,再次发送请求时设置。只在请求消息中设置。对于diameteragent,当收到包含Tbit的消息重新转发时必须保持Tbit。r(eserved)保留位,必须设置为0,接收者可以忽略这些保留位Command-Code:3个8位组24bit的命令码空间地址由IANA统一管理。命令码16,777,214和16,777,215是用作试验目的的。Application-ID应用标识,表明该消息属于那个应用。每个应用必须由IANA分配一个标识。基础协议不需要应用标识,因为对基础协议的支持是必须的。在能力协商过程中,diameter结点通知对等端本地支持的应用。而且在所有的diameter消息中都包含应用标识Diameter消息头格式目前已经定义的应用有:DiameterCommonMessages0NASREQ1[NASREQ]Mobile-IP2[DIAMMIP]DiameterBaseAccounting3Relay0xffffffff中继和重定向必须广告中继应用标识,而其它结点必须广播自己支持的本地应用。Hop-by-HopIdentifier逐跳标识用来对应请求和响应。End-to-EndIdentifier端对端标识是用来检测重复消息的。端对端标识不可以被任何agent修改。该标识和Origin-Host结合起来可以用来检测重复消息。AVPs数据属性对用来包含一定的数据。Diameter协议的消息格式-AVP消息头结构01234567890123456789012345678901AVPCodeVMPrrrrrAVPLengthVendor-ID(opt)Data……..Diameter协议的消息格式-AVP消息头结构AVP消息头8-12byteAVPCode:AVP码和提供者ID(Vendor-Id)一起唯一决定了AVP的属性。AVP(1-255)是为了后向兼容RADIUS而保留的(无Vendor-Id)。256以及以上是提供给diameter使用的,由IANA统一分配。AVPFlags:rbit是保留位,设置为0,供今后应用需要。‘P’bit指示是否需要为了端对端安全进行加密。‘M’bit表明对该AVP的支持是否是必须的。如果没有Mbit的AVP,如果不能识别或者支持,只需要简单忽略该AVP即可。Vbit标识可选的提供者ID在AVP头中是否存在。如果Vbit设置,标识该AVP码属于该特定的提供者。AVPLength三个字节,标识AVP码、AVP标志位、提供者ID和AVP-DATA。如果长度错误,消息将被拒绝。Diameter协议关键技术(1)Diameter对等端发现机制通过静态配置查找通过SLPV2发现diameter服务。(建议采用SLPV2的安全机制,保证被发现的对等端的角色是授权的。)通过NAPTR查询特定域中的服务器。如果没有发现NAPTR记录,则进行'_diameter._sctp'.realm、'_diameter._tcp'.realm.形式的DNS查询。如果DNS服务器没有返回地址记录,则查询失败。Diameter对等端列表和域路由表对等端列表:Hostidentity(包含CER、CEA消息中的Origin-HostAVP)StatusT(动态或者静态)TLSEnabled(是否采用TLS安全手段)如果需要,还可以包括一些安全信息,如密钥、证书Diameter协议关键技术(2)域路由表:RealmName域名(域名是路由表查询中的主关键字)ApplicationIdentifier应用标识(应用标识是路由表查询中的次关键字。同一个路由入口根据不同的应用,可以有不同的目的地址。)LocalAction本地动作,包括消息本地处理、中继、代理、REDIRECT重定向ServerIdentifier服务器标识StaticorDynamic静态或者动态Expirationtime动态路由的超时时间能力交换Capabilities-Exchange-Request(CER)能力交换请求:Capabilities-Exchange-Answer(CEA)能力交换应答Diameter协议关键技术Diameter对等端连接的中断当一个Diameter节点中断和对等端的连接,对等端是无法了解中断的原因的。在这种情况下,对等端可能会认为是连接出现问题,或者对方重启,因此它会周期性地进行连接重试。该动作通过TC定时器控制,通常建议30秒。但是如果中断的原因是内部资源缺乏或者不希望和对方再保持连接,则必须通知对方中断的原因,以避免不必要的周期性重试。Disconnect-Peer-Request(DPR)对等端中断请求Disconnect-Peer-Answer(DPA)对等端中断响应传输失败检测尽快检测出差错可以降低将消息发送至无效代理的机会,减少不必要的时延,并且提供更好的Failover性能。Device-Watchdog-Request(DWR)Device-Watchdog-Answer(DWA)Diameter协议关键技术(3)FailoverandFailback当检测到一个对等端的传输失败时,必须将所有等待处理的请求消息发送到替代的Agent。为了进行倒换,Diameter节点必须维护给定对等端的消息等待队列。对于失败的对等端要进行周期性的尝试,以便重新建立连接。当传输恢复正常后,消息可以再次发送到该对等端,这被称为倒回。重复消息检测重复检测用于应用服务器检测收到的请求消息是否与先前收到的消息有重复Diameter消息中的T标志用来指示在应用层发生重传事件可以根据Diameter头中的End-to-EndIdentifier和Origin-HostAVP对重复消息进行识别。内容提要IMS中的AAA协议:DiameterDiameter在IMS中的应用Diameter协议在IMS中的应用-CX/DX/SHIMCNsubsystemCxCShGrGcDMSC/VLRGMSCCSDomainSGSNGGSNPSDomainSIPApplicationServerCSCFHSSSiIM-SSFOSA-SCSgsmSCFDiameter协议在IMS中的应用3GPP作为Diameter协议的提供者,IANA分配给3GPP的VendorID为10415。CX/DX/SH作为一种应用,IAN