<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-network-static">
  <?dbhtml filename="network-static.html"?>

  <title>Static Networking Configuration</title>

  <sect2>
    <title>Creating the Static Network Interface Configuration Files</title>

    <para>Which interfaces are brought up and down by the network script
    depends on the files and directories in the <filename
    class="directory">/etc/sysconfig</filename> hierarchy.
    This directory should contain a sub-directory for each interface to be
    configured, such as <filename>ifconfig.xyz</filename>, where
    <quote>xyz</quote> is a network interface name. Inside this directory
    would be files defining the attributes to this interface, such as its IP
    address(es), subnet masks, and so forth.</para>

    <note><para>Udev may assign random Network Card Interface names
    for some network cards such as enp2s1. If you are not sure what
    your Network Card Interface name is, you can always run
    <command>ip l</command> after you have booted your system. Again,
    it is important that <filename>ifconfig.xyz</filename> is named
    after correct Network Card Interface name (e.g.
    <filename>ifconfig.enp2s1</filename> or
    <filename>ifconfig.eth0</filename>) or systemd will fail to bring
    up your network interface.</para></note>

    <para>The following command creates a sample <filename>ipv4</filename>
    file for the <emphasis>eth0</emphasis> device:</para>

<screen role="nodump"><userinput>mkdir -pv /etc/sysconfig &amp;&amp;
cd /etc/sysconfig &amp;&amp;
cat &gt; ifconfig.eth0 &lt;&lt; "EOF"
<literal>IFACE="eth0"
SERVICE="ipv4-static"
IP="192.168.1.1"
GATEWAY="192.168.1.2"
PREFIX="24"
BROADCAST="192.168.1.255"</literal>
EOF</userinput></screen>

    <para os="var-ob">The values of these variables must be changed in every
    file to match the proper setup.</para>

    <para os="var-i">The <envar>IFACE</envar> variable defines the interface
    name, for example, eth0. It is required for all network device configuration
    files.</para>

    <para os="var-s">The <envar>SERVICE</envar> variable defines the method used
    for obtaining the IP address. The CLFS-Network-Scripts package has a modular
    IP assignment format, and creating additional files in the <filename
    class="directory">/lib/services</filename>
    directory allows other IP assignment methods.</para>

    <para>The <envar>GATEWAY</envar> variable should contain the default
    gateway IP address, if one is present. If not, then comment out the
    variable entirely.</para>

    <para>The <envar>PREFIX</envar> variable needs to contain the number of
    bits used in the subnet. Each octet in an IP address is 8 bits. If the
    subnet's netmask is 255.255.255.0, then it is using the first three octets
    (24 bits) to specify the network number. If the netmask is 255.255.255.240,
    it would be using the first 28 bits.  Prefixes longer than 24 bits are
    commonly used by DSL and cable-based Internet Service Providers (ISPs).
    In this example (PREFIX=24), the netmask is 255.255.255.0. Adjust the
    <envar>PREFIX</envar> variable according to your specific subnet.</para>

    <para>For more information see the <command>ifup</command> man page.</para>

    <para>To configure another DHCP Interface, Follow <xref linkend="ch-network-dhcpcd"/>.</para>

  </sect2>

  <sect2>
    <title>Configuring the Network Interface at boot</title>

    <para>Enabling of the Network Interface configuration is
    done per interface. To enable Network Interface
    configuration at boot, run:</para>

<screen role="nodump"><userinput>systemctl enable ifupdown@eth0</userinput></screen>

    <para>To disable previously enabled Network Interface
    configuration at boot, run:</para>

<screen role="nodump"><userinput>systemctl disable ifupdown@eth0</userinput></screen>

    <para>To manually start the Network Interface configuration,
    run:</para>

<screen role="nodump"><userinput>systemctl start ifupdown@eth0</userinput></screen>

    <para>Replace eth0 with the correct Network Interface
    name as described on the beginning of this page.</para>

  </sect2>

</sect1>
