RC.INET1.CONF(5)

NAME
rc.inet1.conf - Slackware network configuration file.

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".

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 eth0, index number `1' is used for eth1 and so forth. The default interface name can be overruled by the use of the parameter IFNAME.

This is what a typical section of the file looks like for an interface, showing all parameters with the index number `0':

# IPv4 config options for eth0:
IPADDRS[0]=""
USE_DHCP[0]=""
# IPv6 config options for eth0:
IP6ADDRS[0]=""
USE_SLAAC[0]=""
USE_DHCP6[0]=""
# Generic options for eth0:
DHCP_HOSTNAME[0]=""

Alternatively, here is an example for an interface that uses static IPv4 addresses, an autoconfigured IPv6 address, and a non-default name (ath0 instead of eth1). The parameter index is `1' in this case.

IFNAME[1]="ath0"
# IPv4 config options for ath0:
IPADDRS[1]="192.168.1.10/24 10.0.0.10/8"
USE_DHCP[1]=""
# IPv6 config options for ath0
IP6ADDRS[1]=""
USE_SLAAC[1]="yes"
USE_DHCP6[1]=""
# Generic options for ath0:
DHCP_HOSTNAME[1]=""
# Gateway IP addresses:
GATEWAY="192.168.1.1"
GATEWAY6=""

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.

# Virtual tap interface example
VIRTIFNAME[0]="tap0"
VIRTIFTYPE[0]="tap"
VIRTIFUSER[0]="root"
VIRTIFGROUP[0]="root"

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.

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 highly recommended that you use at least the miimon option. Certain bonding modes will require other options to operate correctly.

Here is a complete configuration for a load balancing, fault tolerant interface, with two ethernet devices:

IFNAME[0]="bond0"
BONDNICS[0]="eth0 eth1"
BONDMODE[0]="balance-rr"
IFOPTS[0]="xmit_hash_policy layer2+3 | miimon 100"
IPADDRS[0]="192.168.0.10/24"
IP6ADDRS[0]="e1ff:fec8:ae47:d9ab::abc1/64"
GATEWAY="192.168.0.1"
GATEWAY6="e1ff:fec8:ae47:d9ab::1"

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.

Here are the basic settings to expose a VLAN with ID 100 on the eth0 interface, configured with a static IPv4 address:

IFNAME[0]="eth0.100"
IFOPTS[0]=""
IPADDRS[0]="192.168.100.10/24"

The IFNAME of the interface contains the underlying ethernet device name (eth0), a period (.), and the VLAN ID to be exposed.

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.

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").

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).

IFNAME[5]="br0"
BRNICS[5]="eth0 eth1 tun0"
IFOPTS[5]=""
IPADDRS[5]="192.168.0.10/24"

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").

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':

# Config information for eth0:

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.

USE_DHCP[0]=""
    # If set to "yes", we will run a DHCP client and have the IPv4 address dynamically assigned.

DHCP_HOSTNAME[0]=""
    # Tell the DHCP server what hostname to register, e.g. "darkstar".

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.

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.

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.

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.

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.

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.

IFNAME[0]=""
    # Use this to define configuration blocks for interfaces with non-standard names.

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".

MTU[0]=""
    # The default MTU is 1500, but you might need 1360 when you use NAT'ed IPSec traffic.

PROMISCUOUS[0]=""
    # If set to "yes", enable promiscuous mode on the interface.

DHCP_KEEPRESOLV[0]=""
    # If you do not want /etc/resolv.conf overwritten by the DHCP client, set this parameter to "yes".

DHCP_KEEPNTP[0]=""
    # If you do not want /etc/ntp.conf overwritten by the DHCP client, set this parameter to "yes".

DHCP_KEEPGW[0]=""
    # If you do not want the DHCP client to change your default gateway, set this parameter to "yes".

DHCP_NOIPV4LL[0]=""
    # When set to "yes", do 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 `zeroconf' address assignment.

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.

DHCP_DEBUG[0]="yes"
    # Make dhcpcd show verbose diagnostics.

WIRELESS PARAMETERS
For wireless interfaces, several additional parameter definitions are available. All these parameters start with the prefix WLAN_ .

WLAN_ESSID[4]=""
    # Your Wireless Access Point's name, e.g. "darkstar".

WLAN_MODE[4]=""
    # Set to "Managed" for use with Access Points. For a peer-to-peer connection set this parameter to "Ad-Hoc".

WLAN_RATE[4]=""
    # The transmission rates you want the driver to try, e.g. "54M auto". ("auto" means that bandwidth can be variable).

WLAN_CHANNEL[4]=""
    # The channel to which the Access Point is tuned, or "auto" to let the driver find the correct channel.

WLAN_KEY[4]=""
    # Definition of a WEP key, e.g. "D5A31F54ACF0487C2D0B1C10D2".

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 WLAN_IWPRIV parameter separated with the pipe (|) character. Ssee the example.

WLAN_WPA[4]=""
    # The name of the application that should be executed for WPA support. This will usually be "wpa_supplicant".

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.

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.

DEFAULT GATEWAY PARAMETERS
These parameters, to set an IPv4 and IPv6 default gateway, are not interface-specific and must not have an index number.

GATEWAY=""
    # The IPv4 default gateway, e.g. "192.168.1.1". This parameter should be left empty when interfaces are configured via DHCP.

GATEWAY6=""
    # The IPv6 default gateway, e.g. "fe80::1". This parameter should be left empty when interfaces are configured via DHCP6 or SLAAC.

FILES

/etc/rc.d/rc.inet1
    network configuration script.

/etc/rc.d/rc.inet1.conf
    configuration parameter file (read by rc.inet1 and rc.wireless).

/etc/rc.d/rc.wireless
    wireless configuration script.

/etc/rc.d/rc.wireless.conf
    wireless configuration parameter file (deprecated) .

CAVEATS
The network interface definitions are stored in shell variable arrays . The bash shell has no facilities to retrieve the largest array index used. Therefore, the rc.inet1 script makes the assumption that array indexes stay below the value of 6 .

If you want to configure more than six network interfaces, you will have to edit the file /etc/rc.d/rc.inet1.conf and uncomment, and change the value `6' in the line #MAXNICS="6" (at the very bottom of the file) to the number of network interfaces you wish to use.

AUTHORS
Patrick J. Volkerding <volkerdi@slackware.com>
Eric Hameleers <alien@slackware.com>
Robby Workman <rworkman@slackware.com>
Darren 'Tadgy' Austin <darren@slackware.uk>

SEE ALSO
rc.inet1(8)