14c95d3760b3832904e1fc85dff170deb8bbaad9
[freeradius.git] / man / man5 / dictionary.5
1 .TH dictionary 5 "31 Oct 2005"
2 .SH NAME
3 dictionary \- RADIUS dictionary file
4 .SH DESCRIPTION
5 The master RADIUS dictionary file resides in
6 \fI/etc/raddb/dictionary\fP.  It references other \fIdictionary\fP
7 files located in \fI/usr/local/share/freeradius/\fP.  Each dictionary
8 file contains a list of RADIUS attributes and values, which the server
9 uses to map between descriptive names and on-the-wire data.  The names
10 have no meaning outside of the RADIUS server itself, and are never
11 exchanged between server and clients.
12 .PP
13 That is, editing the dictionaries will have NO EFFECT on anything
14 other than the server that is reading those files.  Adding new
15 attributes to the dictionaries will have NO EFFECT on RADIUS clients,
16 and will not make RADIUS clients magically understand those
17 attributes.  The dictionaries are solely for local administrator
18 convenience, and are specific to each version of FreeRADIUS.
19 .PP
20 The dictionaries in \fI/usr/local/share\fP SHOULD NOT be edited unless
21 you know exactly what you are doing.  Changing them will most likely
22 break your RADIUS deployment.
23 .PP
24 If you need to add new attributes, please edit the
25 \fI/etc/raddb/dictionary\fP file.  It's sole purpose is to contain
26 site-local defintions that are added by the local administrator.
27
28 .SH FORMAT
29 Every line starting with a hash sign
30 .RB (' # ')
31 is treated as comment and ignored.
32 .PP
33 Each line of the file can contain one of the following strings
34 .TP 0.5i
35 .B ATTRIBUTE name  number  type [vendor|options]
36 Define a RADIUS attribute name to number mapping.  The \fIname\fP
37 field can be any non-space text, but is usually taken from
38 \fIRFC2865\fP, and other related documents.  The \fInumber\fP field is
39 also taken from the relevant documents, for that name.  The \fItype\fP
40 field can be one of \fIstring\fP, \fIoctets\fP, \fIipaddr\fP,
41 \fIinteger\fP, \fIdate\fP, \fIifid\fP, \fIipv6addr\fP,
42 \fIipv6prefix\fP, or \fIether\fP \fIabinary\fP.  See the RFC's, or the main
43 \fIdictionary\fP file for a description of the various types.
44
45 The last (optional) field of an attribute definition can have either a
46 vendor name, or options for that attribute.  When a vendor name is
47 given, the attribute is defined to be a vendor specific attribute.
48 Alternately, the options may be the a comma-separated list of the
49 following options:
50
51 .TP 0.5i
52 .DS
53         encrypt=[1-3]
54 .DE
55 .RS
56 Mark the attribute as being encrypted with one of three methods.  "1"
57 means that the attribute is encrypted with the method as defined in
58 \fIRFC2865\fP for the User-Password attribute.  "2" means that the
59 password is encrypted with the method as defined in \fIRFC2868\fP for
60 the Tunnel-Password attribute.  "3" means that the attribute is
61 encrypted as per Ascend's definitions for the Ascend-Send-Secret attribute.
62 .RE
63
64 .DS
65         has_tag
66 .DE
67 .RS
68 Mark the attribute as being permitted to have a tag, as defined in
69 \fIRFC2868\fP.  The purpose of the tag is to allow grouping of
70 attributes for tunnelled users.  See \fIRFC2868\fP for more details.
71 .RE
72
73 When the server receives an encoded attribute in a RADIUS packet, it
74 looks up that attribute by number in the dictionary, and uses the name
75 found there for printing diagnostic and log messages.
76
77 .TP 0.5i
78 .B VALUE attribute-name value-name number
79 Define an attribute value name to number mapping, for an attribute of
80 type \fIinteger\fP.  The \fIattribute-name\fP field MUST be previously
81 defined by an \fIATTRIBUTE\fP entry.  The \fIvalue-name\fP field can
82 be any non-space text, but is usually taken from \fIRFC2865\fP, or
83 other documents..  The \fInumber\fP field is also taken from the
84 relevant documents, for that name.
85
86 When the server receives an encoded value in a RADIUS packet, it looks
87 up the value of that attribute by number in the dictionary, and uses
88 the name found there for printing diagnostic and log messages.
89
90 .TP 0.5i
91 .B VENDOR vendor-name number [format=t,l]
92 Define a Vendor Specific Attribute encapsulation for \fIvendor-name\fP
93 to \fInumber\fP.  For a list of vendor names and numbers, see
94 http://www.iana.org/enterprise-numbers.txt.
95 .PP
96 The "format=t,l" statement tells the server how many octets to use to
97 encode/decode the vendor "type" and "length" fields in the attributes.
98 The default is "format=1,1", which does not have to be specified.  For
99 USR VSA's, the format is "format=4,0", for Lucent VSA's it's
100 "format=2,1", and for Starent VSA's it's "format=2,2".
101 .PP
102 The supported values for the number of type octets (i.e. the first
103 digit) are 1, 2, and 4.  The support values for the number of length
104 octets (i.e. the second digit) are 0, 1, and 2.  Any combination of
105 those values will work.
106
107 .TP 0.5i
108 .B $INCLUDE filename
109 Include dictionary entries from the file \fIfilename\fP.  The
110 \fIfilename\fP is taken as relative to the location of the file which
111 is asking for the inclusion.
112 .PP
113 .SH FILES
114 .I /etc/raddb/dictionary,
115 .I /usr/share/freeradius/dictionary.*
116 .SH "SEE ALSO"
117 .BR radiusd (8),
118 .BR naslist (5),
119 .BR RFC2865,
120 .BR RFC2866,
121 .BR RFC2868