---------选择同学整理文档
1. 协议概述
Diameter协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。
1.1. 特点介绍
以前的AAA协议如RADIUS、TACACS主要是针对PPP服务和终端服务而设计的。随着网络技术的发展,新的接入方式如无线接入、DSL接入、移动IP陆续出现,以太网也不断发展,AAA中的网络访问服务器(NAS)自身也逐渐变得越来越复杂。这些发展变化,对AAA协议提出了新的要求。原 有的AAA协议已经不能充分满足这些要求,而新一代AAA协议-Diameter协议却可以满足这些需求,主要包括如下几个方面:
1) 良好的故障切换机制。Diameter协议支持应用层的信息确认和失效检测机制。
2) 传输层安全。Diameter协议通过IPsec和TLS保证传输的安全性,其中TLS对于客户端来讲是可选的。
3) 可靠的传输。Diameter协议通过TCP或SCTP提供可靠的传输。
4) 支持各种类型的代理,包括中继代理、重定向代理、Proxy代理、协议转换代理。
5) 支持服务器发起消息。例如服务器可以发消息要求客户端重新认证。
6) 保持与现有网络AAA协议(如RADIUS)的兼容性。
7) 支持节点间的能力协商机制。
8) 支持对等端自主发现和配置机制。
9) 支持漫游。Diameter协议定义了域间漫游、消息路由及安全传输,能够提供安全漫游服务。
1.2. 协议框架
Diameter协议族包括基础协议和各种应用协议。
基础协议(RFC 3588):提供了作为一个AAA协议的最低需求,是Diameter网络节点都必须实现的功能,包括节点间能力的协商、Diameter消息的接收及转发、计费信息的实时传输等。基础协议可以作为一个计费协议单独使用,但一般情况下需与某个应用一起使用。
应用协议:充分利用基础协议提供的消息传送机制,规范相关节点的功能以及其特有的消息内容,来实现应用业务的AAA。
应用
ID
Diameter Common Message
0
NASREQ
1
Mobile-IP
2
Diameter Base Accounting
3
Diameter Credit Control
4
Diameter EAP Application
5
3GPP保留(Cx/Dx接口)
16777216
3GPP保留(Sh/Dh接口)
16777217
Relay
Oxffffffff
注意:NASREQ(网络访问服务应用协议)、Mobile-IP(移动IP应用协议)、Diameter Credit Control(信用控制应用协议)、Diameter EAP Application(扩展认证应用协议)
1.3. 术语
• AAA
认证、鉴权、计费
• Accounting(计费)
为能力计划制定、审计、账单、费用分配等目的而进行资源使用的信息的收集动作。
• Accounting Record (计费记录)
记录某个用户在整个会话期间资源消费的情况,
• Authentication(认证)
校验一个实体一致性的动作。
• Authorization(鉴权)
决定一个请求实体是否允许访问某项资源。
• AVP (属性值对)
Diameter消息由一个报文头后跟一个或多个Attribute-Value-Pairs(AVPs),一个AVP包含一个头用于协议细节数据(例如路由信息)。
• Broker (代理)
代理是一个用于AAA架构中的商业术语,可以是relay, proxy,或者redirect agent。
• Diameter Agent(Diameter 代理)
指一个提供relay、proxy、redirect或翻译服务的diameter结点。
• Diameter Client(Diameter 客户端)
为一个处于网络边缘的,提供访问控制的设备。如NAS。
• Diameter Node(Diameter 节点)
为一个实现了diameter协议的主机进程,其行为为客户端、代理、服务端之一。
• Diameter Peer (Diameter 对端)
为一个具有直连连接的diameter节点。
• Diameter Security Exchange (diameter 安全交换)
为一个进程,两个diameter节点可以通过它建立端到端的安全。
• Diameter Server(diameter 服务端)
用于处理指定域中认证、鉴权、计费请求。
• End-to-End Security (端到端安全)
TLS和IPSec提供逐跳的安全,当relays或proxy很复杂时,逐跳的安全不能保证全部的diameter用户会话,端到端安全为两个diameter节点间的安全,或者Agent间的,这种安全保证了整个dimeter传送路径上的安全。
• Home Realm(归属域)
为一个维护帐户关系的管理域。
• Interim accounting(临时计费)
一个临时计费消息提供一个用户会话的使用快照,通常为一个用户会话在设备重启或者网络问题出现时提供部分的计费。
• Local Realm(本地域)
一个提供服务的管理域。
• Multi-Sessin(多会话)
一个多会话表示多个会话的逻辑连接,多会话使用Acct-Multi-Session-Id来跟踪。
• Network Access Identifier(网络接入标识)
即NAI,用来在diameter协议中提取一个用户的标识及域。用于在认证中识别用户,域用来消息路由。
• Proxy Agent or Proxy (代理)
除传输请求和响应外,代理制定与资源有关的策略,通常用来完成NAS设备状态的跟踪,代理在收到一个服务端的响应前不会对客户端的请求进行应答。当策略被违反时,它们可能会生成一个拒绝消息。因此,代理需要理解通过它们传输的消息的语义,它们可能不支持所有的diameter应用。
• Realm(域)
在NAI中跟在@符号之后的字符串,NAI的域要求为唯一的,且为DNS域的分段,用于判断消息是否满足本地处理的条件,或者被路由或重定向。
• Real-time Accounting(实时计费)
它包含在一个限定的时间窗内处理资源使用的信息,时间限制通常用来限制风险。
• Relay Agent or Relay(中继代理或转播)
转播请求和响应基于路由相关的AVPs和路由表,中继不会制定策略,他们不会检查或更改非路由AVPs,因此,中继从不产生消息,不需要理解消息的语义或者非路由AVPs,可能会处理八种diameter应用或消息类型,因此,中继依据路由和域来做决定,并且不保存NAS资源使用的状态或会话。
• Redirect Agent(重定向代理)
与其在客户端和服务端间传递消息,重定向代理涉及客户端和服务端,并允许它们直接通信,所以重定向代理不出现在传输路径中,它们从不修改客户端和服务端传输的任何AVPs,也不产生消息,可以处理任何消息类型,尽管它们可能仅配置为重定向特定类型的消息,与Proxy代理相比,重定向代理不保存会话或NAS资源相关的状态。
• Security Association(安全偶联)
一个安全的偶联是指两个端点之间的diameter会话,此会话允许端点完整且可信地通信,包括中继和/或Proxy。
• Session(会话)
会话是指一个事件相关的活动。每个应用应该为会话的开始和结束提供指导,所有具有相同会话标识的diameter包被认为同一个会话的一部分。
• Sub-session(子会话)
一个子会话表示一个明确的服务(例如Qos),这些服务可能同时或连续发生(例如同时产生的语音和同一会话中传输的数据)。此类会话由Accounting-Sub-Session-Id来跟踪。
• Transaction state(传输状态)
Diameter协议要求代理来维护传输状态,用于failover。传输状态暗指一个请求,逐跳标识被保存,且原来存储对应应答接收时的初始值字段被本地唯一标识符替代,当拒绝一个应答时请求的状态被释放。
• Translation Agent(传输代理)
是指为一个具有状态的dimaeter节点,用于在diameter和其它的AAA协议(如RADIUS)间进行翻译。
• Translation Connection(传输连接)
一个传输连接是指直接存在于两个diameter对端间的TCP或SCTP连接,或者说端到端连接。
• Upstream(上行)
用来标识一个特定的diameter消息从接入设备到归属服务器的传送方向。
• User(用户)
产生请求或使用某些资源的实体,支持diameter客户端产生一个请求。
1.4. Diameter角色
在Diameter协议之中,每一个(支持Diameter协议的)网络功能节点都称为Peer。任何一个Peer至少充当如下角色之一:
Diameter Client(客户端)
Diameter Server(服务端)
Diameter Relay Agent(中继)
Diameter Proxy Agent (代理)
Diameter Redirector Agent(重定向)
Diameter Translation Agent(翻译)
至少充当上述角色之一的含义是:一个Peer可能同时充当上述多种角色。
1.4.1. 角色-Client/Server
发起请求消息方被称为Diameter Client。
接收并处理请求方被称为Diameter Server。
Diameter协议中,哪个节点作为Client,哪个节点作为Server仅仅是一个逻辑概念,在Diameter协议层没有实际的物理实现上的差别。
如下图所示
1.4.2. 角色-Relay agent
能够从Diameter请求消息中提取信息,再根据Diameter基于域的路由表的内容决定消息发送的下一Diameter节点,Diameter中继只对过往消息进行路由信息的修改,而不改动消息中的其他内容。
Diameter协议层的角色:
a) 根据与路由相关的AVP和域路由表转发请求和响应消息
b) 中继不作策略决定,它们不检查或改变非路由AVP,不会更改消息体
c) 减轻了client和server的配置压力
d) 中继不需要维护会话状态,但需要维护事务状态