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
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
|
.\" -*- nroff -*-
.ds g \" empty
.ds G \" empty
.\" Like TP, but if specified indent is more than half
.\" the current line-length - indent, use the default indent.
.de Tp
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
.el .TP "\\$1"
..
.TH RC.INET1.CONF 5 "16 Nov 2019" "Slackware Version 15.0"
.SH NAME
rc.inet1.conf \- Slackware network configuration file.
.SH DESCRIPTION
This file contains the configuration settings for network interfaces.
It consists of a series of shell variable array definitions. The
convention in this man page is to refer to these shell variable array
definitions as "parameters".
.LP
Parameters with the same index number will all belong to the same network
interface. By default, index number `0' is used for the configuration of
interface
.IR eth0 ,
index number `1' is used for
.I eth1
and so forth. The default interface name can be overruled by the use of
the parameter
.B IFNAME.
.LP
This is what a typical section of the file looks like for an interface,
showing all parameters with the index number `0':
.LP
.br
# IPv4 config options for eth0:
.br
IPADDRS[0]=""
.br
USE_DHCP[0]=""
.br
# IPv6 config options for eth0:
.br
IP6ADDRS[0]=""
.br
USE_SLAAC[0]=""
.br
USE_DHCP6[0]=""
.br
# Generic options for eth0:
.br
DHCP_HOSTNAME[0]=""
.LP
Alternatively, here is an example for an interface that uses static
IPv4 addresses, an autoconfigured IPv6 address, and a non-default name
.RI ( ath0
instead of
.IR eth1 ).
The parameter index is `1' in this case.
.LP
.br
IFNAME[1]="ath0"
.br
# IPv4 config options for ath0:
.br
IPADDRS[1]="192.168.1.10/24 10.0.0.10/8"
.br
USE_DHCP[1]=""
.br
# IPv6 config options for ath0
.br
IP6ADDRS[1]=""
.br
USE_SLAAC[1]="yes"
.br
USE_DHCP6[1]=""
.br
# Generic options for ath0:
.br
DHCP_HOSTNAME[1]=""
.br
# Gateway IP addresses:
.br
GATEWAY="192.168.1.1"
.br
GATEWAY6=""
.br
.SH EXAMPLE VIRTUAL INTERFACE CREATION AND SETUP
Virtual interfaces are created before any address configuration or bridge
setup is done, so you may use these interfaces as IFNAME or BRNICS values.
These can be tun or tap interfaces: adjust VIRTIFNAME and VIRTIFTYPE as
needed.
.LP
# Virtual tap interface example
.br
VIRTIFNAME[0]="tap0"
.br
VIRTIFTYPE[0]="tap"
.br
VIRTIFUSER[0]="root"
.br
VIRTIFGROUP[0]="root"
.br
.SH EXAMPLE BONDING INTERFACE CREATION
Link aggregation (bond) interfaces can be configured with the use of 3 new
parameters for use in rc.inet1.conf. The BONDNICS parameter should contain
the (space delimited) list of interfaces to include in the bond. The type
of bond is configured with the BONDMODE parameter, which can be any of the
supported mode types as found in the bonding kernel documentation found at
/usr/src/linux/Documentation/networking/bonding.txt.
.LP
The final parameter is a new generic IFOPTS parameter, which takes a list
of interface specific configuration options in a pipe (|) delimited list.
There are several module specific options which can be set with this
parameter, and they can be found in the kernel source documentation from
above. Note: it is
.B highly
recommended that you use at least the
.B miimon
option. Certain bonding modes will require other options to operate correctly.
.LP
Here is a complete configuration for a load balancing, fault tolerant
interface, with two ethernet devices:
.LP
IFNAME[0]="bond0"
.br
BONDNICS[0]="eth0 eth1"
.br
BONDMODE[0]="balance-rr"
.br
IFOPTS[0]="xmit_hash_policy layer2+3 | miimon 100"
.br
IPADDRS[0]="192.168.0.10/24"
.br
IP6ADDRS[0]="e1ff:fec8:ae47:d9ab::abc1/64"
.br
GATEWAY="192.168.0.1"
.br
GATEWAY6="e1ff:fec8:ae47:d9ab::1"
.LP
.SH EXAMPLE VLAN INTERFACE CREATION
VLAN interfaces can be configured in rc.inet1.conf, in the standard Slackware
way of defining an interface. The key to the configuration is to use the
correct IFNAME setting for the underlying ethernet (or bond) interface and the
tagged VLAN ID that should be exposed.
.LP
Here are the basic settings to expose a VLAN with ID 100 on the eth0
interface, configured with a static IPv4 address:
.LP
IFNAME[0]="eth0.100"
.br
IFOPTS[0]=""
.br
IPADDRS[0]="192.168.100.10/24"
.LP
The IFNAME of the interface contains the underlying ethernet device name
(eth0), a period (.), and the VLAN ID to be exposed.
.LP
Note that the underlying ethernet (or bond) interface does not need to have an
IP address to be used with the VLAN, but it can have an IP address if you are
also using an untagged VLAN.
.LP
The new generic IFOPTS parameter takes a pipe (|) delimited list of interface
type specific options, but does not need any options in order for a VLAN
interface to be configured. However, there are several VLAN specific options
which can be configured if required - these are documented in the ip-link(8)
man page (search for "VLAN Type Support").
.br
.SH EXAMPLE BRIDGE CREATION AND SETUP
Note the added BRNICS parameter which contains a space-separated list
of the physical or virtual network interfaces you want to add to the bridge.
Note that the parameter index can not be a duplicate of that defined for some
other interface (e.g. eth0 will be index 0 by default).
.LP
IFNAME[5]="br0"
.br
BRNICS[5]="eth0 eth1 tun0"
.br
IFOPTS[5]=""
.br
IPADDRS[5]="192.168.0.10/24"
.LP
The new generic IFOPTS parameter takes a pipe (|) delimited list of interface
type specific options, but does not need any options in order for a bridge
interface to be configured. However, there are several bridge specific options
which can be configured if required - these are documented in the ip-link(8)
man page (search for "BRIDGE Type Support").
.br
.SH GENERAL PARAMETERS
This is a list of parameters you can set for any interface.
The example section is for `eth0' by default, i.e.
the parameters all have the array index `0':
.LP
# Config information for eth0:
.TP 25
IPADDRS[0]=""
# Set this parameter to a space delimited list of IPv4 addresses and netmasks
to bind to the interface, The netmask should be in CIDR style separated from
the IP address with a /. E.g. "192.168.1.10/24 10.0.0.10/8". If the netmask
is not provided, "/24" is assumed.
.TP
USE_DHCP[0]=""
# If set to "yes", we will run a DHCP client and have the IPv4 address
dynamically assigned.
.TP
DHCP_HOSTNAME[0]=""
# Tell the DHCP server what hostname to register, e.g. "darkstar".
.TP
DHCP_TIMEOUT[0]=""
# The default timeout for the DHCP client to wait for server response is
15 seconds, but you might want a shorter or longer wait.
.TP
IP6ADDRS[0]=""
# The static IPv6 addresses for the interface. This option takes a list of
IPv6 addresses and prefix lengths in CIDR notation, in a space delimited
list. For example: IP6ADDRS[0]="a:b:c:d::1/48 1:2:3:4::5/64".
If a prefix length is not given (separated from the IP address with a /), a
length of 64 will be assumed.
.TP
USE_SLAAC[0]=""
# With this parameter set to "yes", the interface's IPv6 address will be
configured via SLAAC (also known as autoconfig), even if RA indicates
DHCP6 is available on the network. If SLAAC is not available on the
network, no IPv6 address will be assigned. If this parameter is unset or
empty, the interface will not be autoconfigured -- note that this is
changed behaviour from Slackware 14.2 and earlier.
.TP
USE_DHCP6[0]=""
# When set to "yes", use DHCP6 to configure the interface. This will
bring up the interface using DHCP6 if RA indicates DHCP6 support is
available on the network, falling back to SLAAC (if available on the
network), or will leave the interface unconfigured after a timeout. When
this parameter is set to "yes", USE_SLAAC[0] is ignored.
.TP
SLAAC_TIMEOUT[0]=""
# The default timeout for autoconfiguration to wait for the interface
to come up is 15 sec. Increase the timeout if a longer period is required
on your network.
.TP
USE_RA[0]=""
# If set to "yes", accept Router Advertisements even when SLAAC is disabled
on the interface. This parameter should almost never be required.
.TP
IFNAME[0]=""
# Use this to define configuration blocks for interfaces with non-standard
names.
.TP
HWADDR[0]=""
# Overrule the hardware MAC address (if supported by the network card) by
setting a new value here, e.g. "00:01:23:45:67:89".
.TP
MTU[0]=""
# The default MTU is 1500, but you might need 1360 when you use NAT'ed
IPSec traffic.
.TP
PROMISCUOUS[0]=""
# If set to "yes", enable promiscuous mode on the interface.
.TP
DHCP_KEEPRESOLV[0]=""
# If you do
.B not
want
.I /etc/resolv.conf
overwritten by the DHCP client, set this parameter to "yes".
.TP
DHCP_KEEPNTP[0]=""
# If you do
.B not
want
.I /etc/ntp.conf
overwritten by the DHCP client, set this parameter to "yes".
.TP
DHCP_KEEPGW[0]=""
# If you do
.B not
want the DHCP client to change your default gateway, set this parameter
to "yes".
.TP
DHCP_NOIPV4LL[0]=""
# When set to "yes", do
.B not
assign an IPv4 Link Local (IPv4LL) address when a DHCP server is not found.
IPv4LL addresses are in the range 169.254.0.0/16, and is also known as
.I `zeroconf'
address assignment.
.TP
DHCP_IPADDR[0]=""
# Request a specific IPv4 address from the DHCP server. Note that this is only
a request - the DHCP server may offer a completely different address.
.TP
DHCP_DEBUG[0]="yes"
# Make dhcpcd show verbose diagnostics.
.SH WIRELESS PARAMETERS
For wireless interfaces, several additional parameter definitions are available.
All these parameters start with the prefix
.B WLAN_ .
.LP
.TP 25
WLAN_ESSID[4]=""
# Your Wireless Access Point's name, e.g. "darkstar".
.TP
WLAN_MODE[4]=""
# Set to "Managed" for use with Access Points. For a peer-to-peer connection
set this parameter to "Ad-Hoc".
.TP
WLAN_RATE[4]=""
# The transmission rates you want the driver to try, e.g. "54M auto".
("auto" means that bandwidth can be variable).
.TP
WLAN_CHANNEL[4]=""
# The channel to which the Access Point is tuned, or "auto" to let the
driver find the correct channel.
.TP
WLAN_KEY[4]=""
# Definition of a WEP key, e.g. "D5A31F54ACF0487C2D0B1C10D2".
.TP
WLAN_IWPRIV[4]=""
# Some drivers require a private ioctl to be set through the iwpriv command. e.g.
"set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=the_64_character_key".
If more than one is required, you can place them in the
.I WLAN_IWPRIV
parameter separated with the pipe (|) character. Ssee the example.
.TP
WLAN_WPA[4]=""
# The name of the application that should be executed for WPA support. This
will usually be "wpa_supplicant".
.TP
WLAN_WPADRIVER[4]=""
# Tell wpa_supplicant to specifically use this driver, e.g. "ndiswrapper".
If you leave this empty the "wext" driver is used by default - most modern
wireless drivers use wext.
.TP
WLAN_WPAWAIT[4]=30
# In case it takes long for the WPA association to finish, you can
use this parameter to increase the wait time before rc.wireless decides
that association failed. The default is 10 seconds.
.SH DEFAULT GATEWAY PARAMETERS
These parameters, to set an IPv4 and IPv6 default gateway, are not
interface-specific and must not have an index number.
.TP 25
GATEWAY=""
# The IPv4 default gateway, e.g. "192.168.1.1". This parameter should be left
empty when interfaces are configured via DHCP.
.TP
GATEWAY6=""
# The IPv6 default gateway, e.g. "fe80::1". This parameter should be left
empty when interfaces are configured via DHCP6 or SLAAC.
.SH FILES
.TP 25
.I /etc/rc.d/rc.inet1
network configuration script.
.TP
.I /etc/rc.d/rc.inet1.conf
configuration parameter file (read by rc.inet1 and rc.wireless).
.TP
.I /etc/rc.d/rc.wireless
wireless configuration script.
.TP
.I /etc/rc.d/rc.wireless.conf
wireless configuration parameter file
.B (deprecated)
\.
.SH CAVEATS
The network interface definitions are stored in shell variable
.I arrays
\.
The bash shell has no facilities to retrieve the largest array index used.
Therefore, the
.I rc.inet1
script makes the assumption that array indexes stay below the value of
.B 6
\.
.LP
If you want to configure more than six network interfaces, you will
have to edit the file
.I /etc/rc.d/rc.inet1.conf
and uncomment, and change the value `6' in the line
.B #MAXNICS="6"
(at the very bottom of the file) to the number of network interfaces you wish to use.
.SH AUTHORS
Patrick J. Volkerding <volkerdi@slackware.com>
.br
Eric Hameleers <alien@slackware.com>
.br
Robby Workman <rworkman@slackware.com>
.br
Darren 'Tadgy' Austin <darren@slackware.uk>
.SH "SEE ALSO"
.BR rc.inet1(8)
|