1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
Maintenance Procedures dhcrelay(8)
NNNNAAAAMMMMEEEE
dhcrelay - Dynamic Host Configuration Protocol Relay Agent
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
ddddhhhhccccrrrreeeellllaaaayyyy [ ----pppp _p_o_r_t ] [ ----dddd ] [ ----qqqq ] [ ----iiii _i_f_0 [ ............ ----iiii _i_f_N ] ]
[ ----aaaa ] [ ----AAAA _l_e_n_g_t_h ] [ ----DDDD ] [ ----mmmm _a_p_p_e_n_d | _r_e_p_l_a_c_e | _f_o_r_w_a_r_d
| _d_i_s_c_a_r_d ] _s_e_r_v_e_r_0 [ ..._s_e_r_v_e_r_N ]
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The Internet Software Consortium DHCP Relay Agent, dhcrelay,
provides a means for relaying DHCP and BOOTP requests from a
subnet to which no DHCP server is directly to one or more
DHCP servers on other subnets.
OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN
The DHCP Relay Agent listens for DHCP and BOOTP queries and
responses. When a query is received from a client, dhcrelay
forwards it to the list of DHCP servers specified on the
command line. When a reply is received from a server, it is
broadcast or unicast (according to the relay agent's ability
or the client's request) on the network from which the ori-
ginal request came.
CCCCOOOOMMMMMMMMAAAANNNNDDDD LLLLIIIINNNNEEEE
The names of the network interfaces that dhcrelay should
attempt to configure may be specified on the command line
using the ----iiii option. If no interface names are specified on
the command line dhcrelay will identify all network inter-
faces, elimininating non-broadcast interfaces if possible,
and attempt to configure each interface.
If a relay agent is running on a system that is connected to
one or more networks on which no DHCP servers are present,
and is also connected to one or more networks on which DHCP
servers _a_r_e connected, it is may not be helpful for the
relay agent to relay requests from those networks on which a
DHCP server already exists. To avoid such a situation, the
interfaces on which the relay agent should listen should be
specified with the ----iiii flag.
Note that in some cases it _i_s helpful for the relay agent to
forward requests from networks on which a DHCP server is
running to other DHCP servers. This would be the case if
two DHCP servers on different networks were being used to
provide backup service for each other's networks.
If dhcrelay should listen and transmit on a port other than
the standard (port 67), the ----pppp flag may used. It should be
followed by the udp port number that dhcrelay should use.
This is mostly useful for debugging purposes.
SunOS 5.6 Last change: 1
Maintenance Procedures dhcrelay(8)
Dhcrelay will normally run in the foreground until it has
configured an interface, and then will revert to running in
the background. To run force dhcrelay to always run as a
foreground process, the ----dddd flag should be specified. This
is useful when running dhcrelay under a debugger, or when
running it out of inittab on System V systems.
Dhcrelay will normally print its network configuration on
startup. This can be annoying in a system startup script -
to disable this behaviour, specify the ----qqqq flag.
RRRREEEELLLLAAAAYYYY AAAAGGGGEEEENNNNTTTT IIIINNNNFFFFOOOORRRRMMMMAAAATTTTIIIIOOOONNNN OOOOPPPPTTTTIIIIOOOONNNNSSSS
If the ----aaaa flag is set the relay agent will append an agent
option field to each request before forwarding it to the
server. Agent option fields in responses sent from servers
to clients will be stripped before forwarding such responses
back to the client.
The agent option field will contain two agent options: the
Circuit ID suboption and the Agent ID suboption. Currently,
the Circuit ID will be the printable name of the interface
on which the client request was received. The Agent ID
will be the value that the relay agent stores in the DHCP
packet's giaddr field. The client supports inclusion of a
Remote ID suboption as well, but this is not used by
default.
_N_o_t_e: The Agent ID suboption is not defined in the current
Relay Agent Information Option draft (draft-ietf-dhc-agent-
options-03.txt), but has been proposed for inclusion in the
next draft.
Relay Agent options are added to a DHCP packet without the
knowledge of the DHCP client. The client may have filled
the DHCP packet option buffer completely, in which case
there theoretically isn't any space to add Agent options.
However, the DHCP server may be able to handle a much larger
packet than most DHCP clients would send. The current
Agent Options draft requires that the relay agent use a max-
imum packet size of 576 bytes.
It is recommended that with the Internet Software Consortium
DHCP server, the maximum packet size be set to about 1400,
allowing plenty of extra space in which the relay agent can
put the agent option field, while still fitting into the
Ethernet MTU size. This can be done by specifying the ----AAAA
flag, followed by the desired maximum packet size (e.g.,
1400).
Note that this is reasonably safe to do even if the MTU
between the server and the client is less than 1500, as long
as the hosts on which the server and client are running
SunOS 5.6 Last change: 2
Maintenance Procedures dhcrelay(8)
support IP fragmentation (and they should). With some
knowledge as to how large the agent options might get in a
particular configuration, this parameter can be tuned as
finely as necessary.
It is possible for a relay agent to receive a packet which
already contains an agent option field. If this packet does
not have a giaddr set, the standard requires that the packet
be discarded.
If giaddr is set, the server may handle the situation in one
of four ways: it may _a_p_p_e_n_d its own set of relay options to
the packet, leaving the supplied option field intact. It
may _r_e_p_l_a_c_e the existing agent option field. It may _f_o_r_w_a_r_d
the packet unchanged. Or, it may _d_i_s_c_a_r_d it.
Which of these behaviours is followed by the Internet
Software Consortium DHCP Relay Agent may be configured with
the ----mmmm flag, followed by one of the four keywords specified
in _i_t_a_l_i_c_s above.
When the relay agent receives a reply from a server that
it's supposed to forward to a client, and Relay Agent Infor-
mation option processing is enabled, the relay agent scans
the packet for Relay Agent Information options and removes
them. As it's scanning, if it finds a Relay Agent Informa-
tion option field containing an Agent ID suboption that
matches one of its IP addresses, that option is recognized
as its own. If no such option is found, the relay agent
can either drop the packet, or relay it anyway. If the ----DDDD
option is specified, all packets that don't contain a match
will be dropped.
SSSSPPPPEEEECCCCIIIIFFFFYYYYIIIINNNNGGGG DDDDHHHHCCCCPPPP SSSSEEEERRRRVVVVEEEERRRRSSSS
The name or IP address of at least one DHCP server to which
DHCP and BOOTP requests should be relayed must be specified
on the command line.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
dhclient(8), dhcpd(8), RFC2132, RFC2131, draft-ietf-dhc-
agent-options-03.txt.
BBBBUUUUGGGGSSSS
It should be possible for the user to define the Circuit ID
and Remote ID values on a per-interface basis.
The relay agent should not relay packets received on a phy-
sical network to DHCP servers on the same physical network -
if they do, the server will receive duplicate packets. In
order to fix this, however, the relay agent needs to be able
to learn about the network topology, which requires that it
have a configuration file.
SunOS 5.6 Last change: 3
Maintenance Procedures dhcrelay(8)
AAAAUUUUTTTTHHHHOOOORRRR
ddddhhhhccccrrrreeeellllaaaayyyy((((8888)))) has been written for the Internet Software Con-
sortium by Ted Lemon <mellon@fugue.com> in cooperation with
Vixie Enterprises. To learn more about the Internet
Software Consortium, see hhhhttttttttpppp::::////////wwwwwwwwwwww....vvvviiiixxxx....ccccoooommmm////iiiisssscccc.... To learn
more about Vixie Enterprises, see hhhhttttttttpppp::::////////wwwwwwwwwwww....vvvviiiixxxx....ccccoooommmm....
SunOS 5.6 Last change: 4
|