📄 rfc2868.txt
字号:
Network Working Group G. Zorn
Request for Comments: 2868 Cisco Systems, Inc.
Updates: RFC 2865 D. Leifer
Category: Informational A. Rubens
Ascend Communications
J. Shriver
Intel Corporation
M. Holdrege
ipVerse
I. Goyret
Lucent Technologies
June 2000
支持隧道协议的RADIUS属性
(RFC2868-RADIUS Attributes for Tunnel Protocol Support)
摘要
该文档定义了一组Radius属性,用于支持拨号网络中的强制隧道。
1、目的(Motivation)
许多隧道协议的应用,例如L2TP, 都包括拨号网络接入。一部分被定义为非强制隧道,例如通过
Internet提供安全接入到企业网:只有用户申请后才被创建。另外一部分是强制隧道:
隧道直接被创建,不用用户的任何动作,也不用用户做任何选择。为了提供这种功能,
需要定义一些用于从RADIUS服务器传送隧道信息到隧道另一端的新的RADIUS属性。
该文档定义了这些属性。有关这些用于L2TP属性的更详细的描述请参考RFC 2809。
2、要求规范
In this document, the key words "MAY", "MUST, "MUST NOT", "optional",
"recommended", "SHOULD", and "SHOULD NOT", are to be interpreted as
described in [14].
3、属性
下面定义的每个属性有可能在同一个RADIUS报文中被包含多次。在这种情况下,它们各自属性
中Tag域的值必需相同。否则,就不要使用Tag域。
如果RADIUS服务器返回的属性中描述了多条隧道,则隧道的创建者会把它解释成可选择的。
服务器应该在每组隧道属性集合中包含一个Tunnel-Preference属性。 同样,如果客户端
在Access-Request报文中包含了多组隧道属性集合,则所有属于同一隧道的属性的Tag域
的值应该相同,并且每组属性集合应该包含一个带有合适值的Tunnel-Preference属性。
3.1. Tunnel-Type
描述
该属性描述了将被使用的隧道协议(隧道创建者[tunnel initiator])或者是已经被使用的
隧道协议(隧道终结者[tunnel terminator])。该属性可以被包含在Access-Request,
Access-Accept 和 Accounting-Request报文中。如果该属性是被包含在隧道创建者发送
的Access-Request报文中,则是暗示RADIUS服务器隧道终点(the tunnel end-point)
所能支持的隧道协议;但是,RADIUS服务器可以忽视这个。隧道创建者并不要求实现所有的隧
道类型。如果隧道创建者收到的一个Access-Accept报文中包含了不知道或者是不支持的隧道
类型,则它按照收到一个Access-Reject报文处理。
如果一个隧道终结者发送的Access-Request报文中包含了Tunnel-Type属性,则该属性应该
是表示当前正在使用的隧道协议。这中情况下,如果RADIUS服务器认为该协议没有被授权,
它会返回一个Access-Reject报。如果一个隧道终结者收到包含有一个或者是多个
Tunnel-Type属性的Access-Accept报文,但是其中任何一种类型都没有被使用,则隧道
终结者必需按照收到一个Access-Reject报文处理。
该报文的结构如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Tag | Value
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Value (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
64
Length
6
Tag
该域长度是一个字节,用于组织属于同一隧道的一组属性,其取值范围从0x01
到0x1f,包括0x01和0x1f。如果没有使用该域,则必需填0。
Value
该域长度是三个字节,用于指定隧道类型,其取值如下:
1 Point-to-Point Tunneling Protocol (PPTP) [1]
2 Layer Two Forwarding (L2F) [2]
3 Layer Two Tunneling Protocol (L2TP) [3]
4 Ascend Tunnel Management Protocol (ATMP) [4]
5 Virtual Tunneling Protocol (VTP)
6 IP Authentication Header in the Tunnel-mode (AH) [5]
7 IP-in-IP Encapsulation (IP-IP) [6]
8 Minimal IP-in-IP Encapsulation (MIN-IP-IP) [7]
9 IP Encapsulating Security Payload in the Tunnel-mode (ESP) [8]
10 Generic Route Encapsulation (GRE) [9]
11 Bay Dial Virtual Services (DVS)
12 IP-in-IP Tunneling [10]
3.2. Tunnel-Medium-Type
描述
隧道协议(例如L2TP)能运行在多种传输媒体(transport medium)上,
Tunnel-Medium-Type属性指示创建隧道时用的是哪一种传输媒体。该属性可以
包含在Access-Request或者是Access-Accept报文中。如果它出现在
Access-Request报文中,则用于提示RADIUS 服务器隧道终点所支持的
隧道媒体类型。RADIUS服务器也可以忽略这个提示。
该属性的报文结构如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Tag | Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Value (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
65
Length
6
Tag
该域长度是一个字节,用于组织属于同一隧道的一组属性,其取值范围从0x01
到0x1f,包括0x01和0x1f。如果没有使用该域,则必需填0。
Value
该域长度是3个字节,其取值范围在参考文档[14]中的 "Address Family Number"
列表下。下面是关于该列表的一个摘要:
1 IPv4 (IP version 4)
2 IPv6 (IP version 6)
3 NSAP
4 HDLC (8-bit multidrop)
5 BBN 1822
6 802 (includes all 802 media plus Ethernet "canonical format")
7 E.163 (POTS)
8 E.164 (SMDS, Frame Relay, ATM)
9 F.69 (Telex)
10 X.121 (X.25, Frame Relay)
11 IPX
12 Appletalk
13 Decnet IV
14 Banyan Vines
15 E.164 with NSAP format subaddress
3.3. Tunnel-Client-Endpoint
描述
该属性包含了创建端的地址。它可以被包含在Access-Request和Access-Accept报文中,
用于指示要创建隧道的对端的地址。如果Tunnel-Client-Endpoint属性如果出现在
Access-Request报文中,RADIUS服务器可以将它看做一个暗示,但是也可以忽略它。
该属性应该被包含在一个带有Acct-Status-Type属性的Accounting-Request的报文中,
其中,Acct-Status-Type的取值可以是Start或者是Stop。这种情况下,Tunnel-Client-Endpoint
属性要创建隧道的对端地址。Tunnel-Client-Endpoint、Tunnel-Server-Endpoint和
Acct-Tunnel-Connection-ID能提供一种唯一的用于标识隧道的方法,可用于记费和查账。
该属性的报文结构如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Tag | String ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type:
66
Length
>=3
Tag
该域长度是一个字节,用于组织属于同一隧道的一组属性,如果该域的值大于0x00,
且小于或者等于0x1F,则被解释成指示该属性所属的隧道。如果该域的值大于0x1F,
则被解释成String域的第一个字节。
String
该域的值的格式决定于Tunnel-Medium-Type属性的取值。
如果Tunnel-Medius-Type的值是IPv4 (1),该域可以是隧道客户端机器的完整域名
(FQDN),或者是IP地址(点分十进制形式)。实现要求一定要(MUST)实现点分十进制形式,
建议(SHOULD)也实现FQDN格式。
如果Tunnel-Medius-Type的值是IPv6 (2),该域可以是FQDN格式,或者是用字符串形式表现
的优先的或者是可选的地址〔17〕。实现要求一定要(MUST)支持优先格式的地址,建议(SHOULE)
实现可选格式的或者是FQDN格式的地址。、
如果Tunnel-Medium-Type既不是IPv4,也不是IPv6,该域指出本地RADIUS客户端的关于接口
和媒体特有的地址的配置数据。
3.4. Tunnel-Server-Endpoint
描述
该属性描述的是隧道服务器端的地址。该属性可以被包含在Access-Request报文中。如果希望建立一个
隧道,则在Access-Request报文中一定要包含该属性。如果一个Accounting-Request报文带有值是
Start或者是Stop的Acct-Status-Type的属性,且该报文属于一个隧道会话(tunnel session),则
该报文也应该包含Tunnel-Server-Endpoint属性。Tunnel-Client-Endpoint、Tunnel-Server-Endpoint
和Acct-Tunnel-Connection-ID能提供一种唯一的用于标识隧道的方法,可用于记费和查账。
该属性的报文结构如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Tag | String ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
67
Length
>=3
Tag
该域长度是一个字节,用于组织属于同一隧道的一组属性,如果该域的值大于0x00,
且小于或者等于0x1F,则被解释成指示该属性所属的隧道。如果该域的值大于0x1F,
则被解释成String域的第一个字节。
String
该域的值的格式决定于Tunnel-Medium-Type属性的取值。
如果Tunnel-Medius-Type的值是IPv4 (1),该域可以是隧道客户端机器的完整域名
(FQDN),或者是IP地址(点分十进制形式)。实现要求一定要(MUST)实现点分十进制形式,
建议(SHOULD)也实现FQDN格式。
如果Tunnel-Medius-Type的值是IPv6 (2),该域可以是FQDN格式,或者是用字符串形式表现
的优先的或者是可选的地址〔17〕。实现要求一定要(MUST)支持优先格式的地址,建议(SHOULE)
实现可选格式的或者是FQDN格式的地址。、
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -