1 .\" Copyright (c) 2012 The FreeBSD Foundation
2 .\" All rights reserved.
4 .\" This software was developed by Edward Tomasz Napierala under sponsorship
5 .\" from the FreeBSD Foundation.
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
16 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 .Nd CAM Target Layer / iSCSI target daemon configuration file
39 configuration file is used by the
44 are interpreted as comments.
45 The general syntax of the
48 .Bd -literal -offset indent
51 .No auth-group Ar name No {
52 .Dl chap Ar user Ar secret
56 .No portal-group Ar name No {
58 .Dl listen-iser Ar address
59 .Dl discovery-auth-group Ar name
64 .Dl auth-group Ar name
65 .Dl portal-group Ar name
66 .Dl lun Ar number No {
73 .Bl -tag -width indent
74 .It Ic auth-group Ar name
77 configuration context,
78 defining a new auth-group,
79 which can then be assigned to any number of targets.
81 The debug verbosity level.
83 .It Ic maxproc Ar number
84 The limit for concurrently running child processes handling
87 A setting of 0 disables the limit.
88 .It Ic pidfile Ar path
89 The path to the pidfile.
91 .Pa /var/run/ctld.pid .
92 .It Ic portal-group Ar name
95 configuration context,
96 defining a new portal-group,
97 which can then be assigned to any number of targets.
101 configuration context, which can contain one or more
104 .It Ic timeout Ar seconds
105 The timeout for login sessions, after which the connection
106 will be forcibly terminated.
108 A setting of 0 disables the timeout.
109 .It Ic isns-server Ar address
110 An IPv4 or IPv6 address and optionally port of iSNS server to register on.
111 .It Ic isns-period Ar seconds
112 iSNS registration period.
113 Registered Network Entity not updated during this period will be unregistered.
115 .It Ic isns-timeout Ar seconds
116 Timeout for iSNS requests.
119 .Ss auth-group Context
120 .Bl -tag -width indent
121 .It Ic auth-type Ar type
122 Sets the authentication type.
129 In most cases it is not necessary to set the type using this clause;
130 it is usually used to disable authentication for a given
132 .It Ic chap Ar user Ar secret
133 A set of CHAP authentication credentials.
136 the configuration may only contain either
140 entries; it is an error to mix them.
141 .It Ic chap-mutual Ar user Ar secret Ar mutualuser Ar mutualsecret
142 A set of mutual CHAP authentication credentials.
145 the configuration may only contain either
149 entries; it is an error to mix them.
150 .It Ic initiator-name Ar initiator-name
151 An iSCSI initiator name.
152 Only initiators with a name matching one of the defined
153 names will be allowed to connect.
154 If not defined, there will be no restrictions based on initiator
156 .It Ic initiator-portal Ar address Ns Op / Ns Ar prefixlen
157 An iSCSI initiator portal: an IPv4 or IPv6 address, optionally
158 followed by a literal slash and a prefix length.
159 Only initiators with an address matching one of the defined
160 addresses will be allowed to connect.
161 If not defined, there will be no restrictions based on initiator
164 .Ss portal-group Context
165 .Bl -tag -width indent
166 .It Ic discovery-auth-group Ar name
167 Assign a previously defined authentication group to the portal group,
168 to be used for target discovery.
169 By default, portal groups are assigned predefined
172 which denies discovery.
175 .Qq Ar no-authentication ,
177 to permit discovery without authentication.
178 .It Ic listen Ar address
179 An IPv4 or IPv6 address and port to listen on for incoming connections.
180 .It Ic listen-iser Ar address
181 An IPv4 or IPv6 address and port to listen on for incoming connections
182 using iSER (iSCSI over RDMA) protocol.
185 .Bl -tag -width indent
187 Assign a human-readable description to the target.
189 .It Ic auth-group Ar name
190 Assign a previously defined authentication group to the target.
191 By default, targets that do not specify their own auth settings,
192 using clauses such as
200 which denies all access.
203 .Qq Ar no-authentication ,
204 may be used to permit access
205 without authentication.
206 Note that targets must only use one of
207 .Sy auth-group , chap , No or Sy chap-mutual ;
208 it is a configuration error to mix multiple types in one target.
209 .It Ic auth-type Ar type
210 Sets the authentication type.
217 In most cases it is not necessary to set the type using this clause;
218 it is usually used to disable authentication for a given
220 This clause is mutually exclusive with
223 both in a single target.
224 .It Ic chap Ar user Ar secret
225 A set of CHAP authentication credentials.
226 Note that targets must only use one of
227 .Sy auth-group , chap , No or Sy chap-mutual ;
228 it is a configuration error to mix multiple types in one target.
229 .It Ic chap-mutual Ar user Ar secret Ar mutualuser Ar mutualsecret
230 A set of mutual CHAP authentication credentials.
231 Note that targets must only use one of
232 .Sy auth-group , chap , No or Sy chap-mutual ;
233 it is a configuration error to mix multiple types in one target.
234 .It Ic initiator-name Ar initiator-name
235 An iSCSI initiator name.
236 Only initiators with a name matching one of the defined
237 names will be allowed to connect.
238 If not defined, there will be no restrictions based on initiator
240 This clause is mutually exclusive with
243 both in a single target.
244 .It Ic initiator-portal Ar address Ns Op / Ns Ar prefixlen
245 An iSCSI initiator portal: an IPv4 or IPv6 address, optionally
246 followed by a literal slash and a prefix length.
247 Only initiators with an address matching one of the defined
248 addresses will be allowed to connect.
249 If not defined, there will be no restrictions based on initiator
251 This clause is mutually exclusive with
254 both in a single target.
255 .It Ic portal-group Ar name
256 Assign a previously defined portal group to the target.
257 The default portal group is
259 which makes the target available
260 on TCP port 3260 on all configured IPv4 and IPv6 addresses.
264 configuration context, defining a LUN exported by the parent target.
267 .Bl -tag -width indent
268 .It Ic backend Ar block No | Ar ramdisk
269 The CTL backend to use for a given LUN.
274 block is used for LUNs backed
275 by files or disk device nodes; ramdisk is a bitsink device, used mostly for
277 The default backend is block.
278 .It Ic blocksize Ar size
279 The blocksize visible to the initiator.
280 The default blocksize is 512.
281 .It Ic device-id Ar string
282 The SCSI Device Identification string presented to the initiator.
283 .It Ic option Ar name Ar value
284 The CTL-specific options passed to the kernel.
285 All CTL-specific options are documented in the
290 The path to the file or device node used to back the LUN.
291 .It Ic serial Ar string
292 The SCSI serial number presented to the initiator.
294 The LUN size, in bytes.
297 .Bl -tag -width ".Pa /etc/ctl.conf" -compact
299 The default location of the
305 pidfile /var/run/ctld.pid
307 auth-group example2 {
308 chap-mutual "user" "secret" "mutualuser" "mutualsecret"
309 chap-mutual "user2" "secret2" "mutualuser" "mutualsecret"
312 portal-group example2 {
313 discovery-auth-group no-authentication
320 target iqn.2012-06.com.example:target0 {
321 alias "Example target"
322 auth-group no-authentication
324 path /dev/zvol/example_0
330 target iqn.2012-06.com.example:target3 {
331 chap chapuser chapsecret
333 path /dev/zvol/example_3
337 target iqn.2012-06.com.example:target2 {
339 portal-group example2
341 path /dev/zvol/example2_0
344 path /dev/zvol/example2_1
356 configuration file functionality for
359 .An Edward Tomasz Napierala Aq trasz@FreeBSD.org
360 under sponsorship from the FreeBSD Foundation.