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