Repository :
http://git.fedorahosted.org/cgit/docs/networking-guide.git
On branch : master
---------------------------------------------------------------
commit 946d157bbc1133554a0d7c304ff709c40cc6612e
Author: Stephen Wadeley <swadeley(a)redhat.com>
Date: Wed Jul 16 22:37:29 2014 +0200
Update to Introduction
Update to networkscripts section based on feedback from dcbw
---------------------------------------------------------------
en-US/Introduction_to_Fedora_Networking.xml | 216 +++++++++++++++++++--------
1 files changed, 152 insertions(+), 64 deletions(-)
diff --git a/en-US/Introduction_to_Fedora_Networking.xml
b/en-US/Introduction_to_Fedora_Networking.xml
index 69295df..3cbe9d4 100644
--- a/en-US/Introduction_to_Fedora_Networking.xml
+++ b/en-US/Introduction_to_Fedora_Networking.xml
@@ -9,10 +9,13 @@
<section id="sec-How_this_Book_is_Structured">
<title>How this Book is Structured</title>
<para>
- All new material in this book has been written and arranged in such a way as to clearly
separate introductory material, such as explanations of concepts and use cases, from
configuration tasks. We hope that you can quickly find configuration instructions you
need, while still providing some relevant explanations and conceptual material to help you
understand and decide on the appropriate tasks relevant to your needs. Where material has
been reused from the <ulink
url="https://access.redhat.com/site/documentation/en-US/Red_Hat_Ente...
><citetitle pubwork="book"> Deployment
Guide</citetitle></ulink>, it has been reviewed and changed were possible to
fit this idea of separating concepts from tasks.
+ All new material in this book has been written and arranged in such a way as to clearly
separate introductory material, such as explanations of concepts and use cases, from
configuration tasks. The authors hope that you can quickly find configuration instructions
you need, while still providing some relevant explanations and conceptual material to help
you understand and decide on the appropriate tasks relevant to your needs. Where material
has been reused from the <ulink
url="https://access.redhat.com/site/documentation/en-US/Red_Hat_Ente...
><citetitle pubwork="book">Red Hat
Enterprise Linux 6 Deployment Guide</citetitle></ulink>, it
has been reviewed and changed, where possible, to fit this idea of separating concepts
from tasks.
</para>
<para>
- The material is grouped according to the goal rather than the method. That is to say,
instructions on how to achieve a specific task using different methods are grouped
together. This is intended to make it easier for you to find the information on how to
achieve a particular task or goal, and at the same time allow you to quickly see the
different methods available. We will first present a graphical user interface (GUI)
method, such as the use of <application>nm-connection-editor</application> or
<application>control-network</application> to direct <systemitem
class="service">NetworkManager</systemitem>, then methods using the
command line and configuration files. The command line can be used to issue commands and
to compose or edit configuration files, therefore we will document the use of the
<application>ip</application> commands and configuration files together. We
will end each task by explaining the use of the
<application>nmcli</application> tool where possible.
+ The material is grouped according to the goal rather than the method. Instructions on
how to achieve a specific task using different methods are grouped together. This is
intended to make it easier for you to find the information on how to achieve a particular
task or goal, and at the same time allow you to quickly see the different methods
available.</para>
+ <para>
+ In each chapter, the configuration methods will be presented in the following order:
+ A graphical user interface (GUI) method, such as the use of
<application>nm-connection-editor</application> or
<application>control-network</application> to direct <systemitem
class="service">NetworkManager</systemitem>, then
<application>NetworkManager</application>'s command line tool
<application>nmcli</application>, and then finally methods using the command
line and configuration files. The command line can be used to issue commands and to
compose or edit configuration files, therefore the use of the
<application>ip</application> commands and configuration files will be
documented together.
</para>
@@ -22,11 +25,46 @@
<title>Introduction to NetworkManager</title>
<para>
- As of <application>Fedora 20</application>, the default networking service
is provided by <systemitem
class="service">NetworkManager</systemitem>, which is a dynamic network
control and configuration daemon that attempts to keep network devices and connections up
and active when they are available.</para>
- <para>
- <systemitem class="service">NetworkManager</systemitem> has an
associated command line configuration tool, <application>nmcli</application>.
The GNOME graphical user interface application called
<application>control-center</application> can be used to instruct
<systemitem class="service">NetworkManager</systemitem> to create,
edit and remove connections and interfaces. The old
<application>nm-connection-editor</application> tool is still provided for
some tasks not yet handled by
<application>control-center</application>.</para>
+ As of <application>Fedora 20</application>, the default networking service
is provided by <systemitem
class="service">NetworkManager</systemitem>, which is a dynamic network
control and configuration daemon that attempts to keep network devices and connections up
and active when they are available. The traditional <filename>ifcfg</filename>
type configuration files are still supported. See <xref
linkend="sec-NetworkManager_and_the_Network_Scripts" /> for more
information.</para>
+<table id="tb-A_Summary_of_Networking_Tools_and_Applications"
frame='all'>
+<title>A Summary of Networking Tools and Applications</title>
+<tgroup cols='2' align='left' colsep='1'
rowsep='1'>
+<colspec colname='c1' colwidth="20*" />
+<colspec colname='c2' colwidth="50*" />
+<thead>
+<row>
+ <entry>Application or Tool</entry>
+ <entry>Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+ <entry><application>NetworkManager</application></entry>
+ <entry>The default networking daemon</entry>
+</row>
+<row>
+ <entry><application>nmtui</application></entry>
+ <entry>A simple curses-based text user interface (TUI) for
<application>NetworkManager</application></entry>
+</row>
+<row>
+ <entry><application>nmcli</application></entry>
+ <entry>A command line tool provided to allow users and scripts to interact with
<application>NetworkManager</application></entry>
+</row>
+<row>
+ <entry><application>control-center</application></entry>
+ <entry>A graphical user interface tool provided by the GNOME Shell</entry>
+</row>
+ <row>
+ <entry><application>nm-connection-editor</application></entry>
+ <entry>A GTK+ 3 application available for certain tasks not yet handled by
<application>control-center</application></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+
<para>
- <systemitem class="service">NetworkManager</systemitem> can be
used with the following types of connections: Ethernet, wireless, mobile broadband (such
as cellular 3G), and DSL and PPPoE (Point-to-Point over Ethernet). In addition,
<systemitem class="service">NetworkManager</systemitem> allows for
the configuration of network aliases, static routes, <systemitem
class="protocol">DNS</systemitem> information and VPN connections, as
well as many connection-specific parameters. Finally, <systemitem
class="service">NetworkManager</systemitem> provides an API via D-Bus
which allows applications to query and control network configuration and state.
+ <systemitem class="service">NetworkManager</systemitem> can be
used with the following types of connections: Ethernet, VLANs, Bridges, Bonds, Teams,
Wi-Fi, mobile broadband (such as cellular 3G), and IP-over-InfiniBand. For these
connection types, <systemitem
class="service">NetworkManager</systemitem> can configure network
aliases, <systemitem class="protocol">IP</systemitem> addresses,
static routes, <systemitem class="protocol">DNS</systemitem>
information, and VPN connections, as well as many connection-specific parameters. Finally,
<systemitem class="service">NetworkManager</systemitem> provides an
API via D-Bus which allows applications to query and control network configuration and
state.
</para>
</section>
@@ -34,12 +72,12 @@
<section id="sec-Installing_NetworkManager">
<title>Installing NetworkManager</title>
<para>
- <application>NetworkManager</application> is installed by default on
&MAJOROS;. To ensure that it is, run the following command as the <systemitem
class="username">root</systemitem> user:</para>
+ <application>NetworkManager</application> is installed by default on
&MAJOROS;. If necessary, to ensure that it is, run the following command as the
<systemitem class="username">root</systemitem> user:</para>
<screen>~]# <command>yum install
NetworkManager</command></screen>
<section
id="sec-The_NetworkManager_Daemon">
<title>The NetworkManager Daemon</title>
- <para>The <application>NetworkManager</application> daemon runs
with root privileges and is usually configured to start up at boot time. You can determine
whether the <application>NetworkManager</application> daemon is running by
entering this command:</para>
+ <para>The <application>NetworkManager</application> daemon runs
with root privileges and is, by default, configured to start up at boot time. You can
determine whether the <application>NetworkManager</application> daemon is
running by entering this command:</para>
<screen>~]$ <command>systemctl status
NetworkManager</command>
NetworkManager.service - Network Manager
Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled)
@@ -53,7 +91,7 @@ NetworkManager.service - Network Manager
<section
id="sec-Interacting_with_NetworkManager">
<title>Interacting with NetworkManager</title>
- <para>Users do not interact with the
<application>NetworkManager</application> system service directly. Instead,
you perform network configuration tasks via graphical and command line user interface
tools. The following tools are available in
<application>Fedora</application>:</para>
+ <para>Users do not interact with the
<application>NetworkManager</application> system service directly. Instead,
users perform network configuration tasks via graphical and command line user interface
tools. The following tools are available in
<application>Fedora</application>:</para>
<para>
<orderedlist>
<listitem>
@@ -64,30 +102,42 @@ NetworkManager.service - Network Manager
<listitem>
<para>
- A command line tool, <application>nmcli</application>, is provided
to allow users and scripts to interact with
<application>NetworkManager</application>.
+ A command line tool, <application>nmcli</application>, is provided
to allow users and scripts to interact with
<application>NetworkManager</application>. Note that
<application>nmcli</application> can be used on GUI-less systems like servers
to control all aspects of <application>NetworkManager</application>. It is on
an equal footing with the GUI tools.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The GNOME Shell also provides a network icon in its Notification Area
representing network connection states as reported by
<application>NetworkManager</application>. The icon has multiple states that
serve as visual indicators for the type of connection you are currently using.
</para>
</listitem>
<listitem>
<para>
- A graphical user interface tool,
<application>nm-connection-editor</application>, is available for certain
tasks not yet handled by <application>control-center</application>. It start
it, press the <keycap>Super</keycap> key to enter the Activities Overview,
type <command>network connections</command> or
<command>nm-connection-editor</command> and then press
<keycap>Enter</keycap>.
+ A graphical user interface tool called
<application>control-center</application>, provided by the GNOME Shell, is
available for desktop users. It incorporates a
<application>Network</application> settings tool. To start it, press the
<keycap>Super</keycap> key to enter the Activities Overview, type
<command>control network</command> and then press
<keycap>Enter</keycap>. The <keycap>Super</keycap> key appears in
a variety of guises, depending on the keyboard and other hardware, but often as either the
Windows or Command key, and typically to the left of the Spacebar.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ A graphical user interface tool,
<application>nm-connection-editor</application>, is available for certain
tasks not yet handled by <application>control-center</application>. To start
it, press the <keycap>Super</keycap> key to enter the Activities Overview,
type <command>network connections</command> or
<command>nm-connection-editor</command> and then press
<keycap>Enter</keycap>.
</para>
</listitem>
-
</orderedlist>
</para>
</section>
</section>
-<section id="sec-Network_Config_Using-CLI">
+<section id="sec-Network_Config_Using_CLI">
<title>Network Configuration Using the Command Line Interface
(CLI)</title>
<para>
</para>
-<para>The commands for the <application>ip</application> utility,
sometimes referred to as <package>iproute2</package> after the package name,
are documented in the <filename>man ip(8)</filename> page. If necessary, you
can check that the <application>ip</application> utility is installed by
checking its version number as follows:</para>
+<para>The commands for the <application>ip</application> utility,
sometimes referred to as <package>iproute2</package> after the upstream
package name, are documented in the <filename>man ip(8)</filename> page. The
package name in Fedora is <package>iproute</package>. If necessary, you can
check that the <application>ip</application> utility is installed by checking
its version number as follows:</para>
<screen>~]$ <command>ip -V</command>
ip utility, iproute2-ss130716</screen>
+<para>
+ The <application>ip</application> commands can be used to add and remove
addresses and routes to interfaces in parallel with
<application>NetworkManager</application>, which will preserve them and
recognize them in <application>nmcli</application>,
<application>nmtui</application>,
<application>control-center</application>, and the D-Bus API.
+</para>
<para>
- As mentioned in the preface, we will include examples of using the command line and
configuration files for each task after explaining the use of one of the graphical user
interfaces to <application>NetworkManager</application>, namely,
<application>control-center</application> and
<application>nm-connection-editor</application>.
+ Examples of using the command line and configuration files for each task are
included after explaining the use of one of the graphical user interfaces to
<application>NetworkManager</application>, namely,
<application>control-center</application> and
<application>nm-connection-editor</application>.
</para>
</section>
<section id="sec-Network_Config_Using_nmcli">
@@ -95,66 +145,130 @@ ip utility, iproute2-ss130716</screen>
<para>
</para>
<para>
- The <application>NetworkManager</application> command line tool,
<application>nmcli</application>, provides those who prefer to use the command
line a way to configure networking by controlling
<application>NetworkManager</application>. It is installed, along with
<application>NetworkManager</application>, by default. If necessary, see
<xref linkend="sec-The_NetworkManager_Daemon" /> for information on how to
verify that <application>NetworkManager</application> is
running.</para>
+ The <application>NetworkManager</application> command line tool,
<application>nmcli</application>, provides a command line way to configure
networking by controlling <application>NetworkManager</application>. It is
installed, along with <application>NetworkManager</application>, by default.
If required, for details on how to verify that
<application>NetworkManager</application> is running, see <xref
linkend="sec-The_NetworkManager_Daemon" />.</para>
<para>
- As mentioned in the preface, we will include examples of using the
<application>nmcli</application> tool for each task where possible, after
explaining the use of graphical user interfaces and other command line methods. See
<xref linkend="sec-Using_the_NetworkManager_Command_Line_Tool_nmcli" />
for an introduction to <application>nmcli</application>.
+ Examples of using the <application>nmcli</application> tool for each
task will be included where possible, after explaining the use of graphical user
interfaces and other command line methods. See <xref
linkend="sec-Using_the_NetworkManager_Command_Line_Tool_nmcli" /> for an
introduction to <application>nmcli</application>.
</para>
</section>
+<section id="sec-NetworkManager_and_the_Network_Scripts">
+<title>NetworkManager and the Network Scripts</title>
+<para>
+In previous Red Hat Enterprise Linux releases, the default way to
configure networking was using <firstterm>network scripts</firstterm>. The
term <firstterm>network scripts</firstterm> is commonly used for the script
<filename class="directory">/etc/init.d/network</filename> and any
other installed scripts it calls. The user supplied files are typically viewed as
configuration, but can also be interpreted as an amendment to the scripts.</para>
+ <para>
+ Although <application>NetworkManager</application> provides the default
networking service, Red Hat developers have worked hard to ensure that scripts
and <application>NetworkManager</application> cooperate with each other.
Administrators who are used to the scripts can certainly continue to use them. We expect
both systems to be able to run in parallel and work well together. It is expected that
most user shell scripts from previous releases will still work. Red Hat
recommends that you test them first.
+</para>
+ <bridgehead id="bh-Running_Network_Script">Running Network
Script</bridgehead>
+ <para>
+Run the script with the <command>systemctl
<option>start|stop|restart|status</option> network</command> wrapper to
clear any existing environment variables and ensure clean execution. Do not run any
service by calling
<command>/etc/init.d/<replaceable>servicename</replaceable>
<option>start|stop|restart|status</option></command> directly.
+</para>
+<para>
+ Note that in Red Hat Enterprise Linux 7,
<application>NetworkManager</application> is started first, and
<filename>/etc/init.d/network</filename> checks with
<application>NetworkManager</application> to avoid tampering with
<application>NetworkManager</application>'s connections.
<application>NetworkManager</application> is intended to be the primary
application using sysconfig configuration files and
<filename>/etc/init.d/network</filename> is intended to be secondary, playing
a fallback role.
+</para>
+<para>
+The <filename>/etc/init.d/network</filename> script is not event-driven, it
runs either:
+<orderedlist>
+ <listitem>
+ <para>
+ manually (by one of the <command>systemctl</command> commands
<command><option>start|stop|restart</option> network</command>),
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ on boot and shutdown if the network service is enabled (as a result of the command
<command>systemctl enable network</command>).
+ </para>
+ </listitem>
+</orderedlist>
+ It is a manual process and does not react to events that happen after boot. Users can
also call the scripts <filename>ifup</filename> and
<filename>ifdown</filename> manually.
+ </para>
+ <para>
+ <!--<remark>SJW: Adding new material from:
https://bugzilla.redhat.com/show_bug.cgi?id=1056090#c22</remark>-->
+ </para>
+ <bridgehead id="bh-Custom_Commands_and_the_Network_Scripts">Custom
Commands and the Network Scripts</bridgehead>
+ <para>
+ Custom commands in the scripts <filename>/sbin/ifup-local</filename>,
<filename>ifdown-pre-local</filename>, and
<filename>ifdown-local</filename> are only be executed when those devices are
controlled by the <systemitem
class="daemon">/etc/init.d/network</systemitem> service. If you
modified the initscripts themselves (for example,
<filename>/etc/sysconfig/network-scripts/ifup-eth</filename>) then those
changes would be overwritten by an <package>initscripts</package> package
update. Therefore it is recommend that you avoid modifying the initscripts directly.
However, the whole idea of the <filename>/sbin/if*local</filename> scripts is
so you can make custom changes which survive package updates. The initscripts just check
for the presence of the relevant <filename>/sbin/if*local</filename> and run
them if they exit. The initscripts do not place anything in the
<filename>/sbin/if*local</filename> scripts, nor does the
<package>initscripts</package> RPM (or any package)
own or modify those files.
+ </para>
+ <para>
+There are ways to perform custom tasks when network connections go up and down, both with
the old network scripts and with <application>NetworkManager</application>.
When <application>NetworkManager</application> is enabled, the
<filename>ifup</filename> and <filename>ifdown</filename> script
will ask <application>NetworkManager</application> whether
<application>NetworkManager</application> manages the interface in question,
which is found from the <quote>DEVICE=</quote> line in the
<filename>ifcfg</filename> file. If
<application>NetworkManager</application> does manage that device, and the
device is not already connected, then <filename>ifup</filename> will ask
<application>NetworkManager</application> to start the connection.
+<itemizedlist>
+ <listitem>
+ <para>
+If the device is managed by <application>NetworkManager</application> and it
<emphasis role="bold">is</emphasis> already connected, nothing is
done.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+If the device is not managed by <application>NetworkManager</application>,
then the scripts will start the connection using the older,
non-<application>NetworkManager</application> mechanisms that they have used
since the time before <application>NetworkManager</application> existed.
+ </para>
+ </listitem>
+</itemizedlist>
+</para>
+<para>
+If you are calling "<filename>ifdown</filename>" and the device is
managed by <application>NetworkManager</application>, then
<filename>ifdown</filename> will ask
<application>NetworkManager</application> to terminate the connection.
+ </para>
+ <para>
+ The scripts dynamically check <application>NetworkManager</application>,
so if <application>NetworkManager</application> is not running, the scripts
will fall back to the old, pre-<application>NetworkManager</application>
script-based mechanisms.
+ </para>
+</section>
+
<section id="sec-Network_Configuration_Using_sysconfig_Files">
<title>Network Configuration Using sysconfig Files</title>
<para>
-The <filename class="directory">/etc/sysconfig/</filename>
directory is a location for configuration files and scripts. Most network configuration
information is stored there, with the known exception of VPN, mobile broadband and PPPoE
configuration, which are stored in <filename
class="directory">/etc/NetworkManager/</filename> subdirectories.
Interface specific information for example, is stored in
<filename>ifcfg</filename> files in the <filename
class="directory">/etc/sysconfig/network-scripts/</filename>
directory.</para>
+The <filename class="directory">/etc/sysconfig/</filename>
directory is a location for configuration files and scripts. Most network configuration
information is stored there, with the exception of VPN, mobile broadband and PPPoE
configuration, which are stored in <filename
class="directory">/etc/NetworkManager/</filename> subdirectories.
Interface specific information for example, is stored in
<filename>ifcfg</filename> files in the <filename
class="directory">/etc/sysconfig/network-scripts/</filename>
directory.</para>
<para>
-The file <filename>/etc/sysconfig/network</filename> is for settings which
are to have global effect. Information for VPNs, mobile broadband and PPPoE connections is
stored in <filename
class="directory">/etc/NetworkManager/system-connections/</filename>.
+The file <filename>/etc/sysconfig/network</filename> is for global settings.
Information for VPNs, mobile broadband and PPPoE connections is stored in <filename
class="directory">/etc/NetworkManager/system-connections/</filename>.
</para>
<para>
In <application>Fedora</application>, when you edit an
<filename>ifcfg</filename> file,
<application>NetworkManager</application> is not automatically aware of the
change and has to be prompted to notice the change. If you use one of the tools to update
<application>NetworkManager</application> profile settings, then
<application>NetworkManager</application> does not implement those changes
until you reconnect using that profile. For example, if configuration files have been
changed using an editor, <application>NetworkManager</application> must be
told to read the configuration files again. To do that, issue the following command as
<systemitem class="username">root</systemitem>:
<screen>~]# <command>nmcli connection
reload</command></screen>
- The above command reads all connection profiles.</para>
+ The above command reads all connection profiles. Alternatively, to reload only one
changed file,
<filename>ifcfg-<replaceable>ifname</replaceable></filename>,
issue a command as follows:
+ <screen>~]# <command>nmcli con load
/etc/sysconfig/network-scripts/ifcfg-<replaceable>ifname</replaceable></command></screen>
+ The command accepts multiple file names. These commands require <systemitem
class="username">root</systemitem> privileges. For more information on
user privileges and gaining privileges, see the <citetitle
pubwork="book">&MAJOROSVER; System Administrator's
Guide</citetitle> and the <filename>su(1)</filename> and
<filename>sudo(8)</filename> man pages.</para>
<para>
- Changes made using tools such as <application>nmcli</application>, or
graphical user interface tools, do not require a reload but do require the associated
interface to be put down and then up again. That can be done by using commands in the
following format:
+ Changes made using tools such as <application>nmcli</application> do not
require a reload but do require the associated interface to be put down and then up again.
That can be done by using commands in the following format:
<synopsis>nmcli dev disconnect
<replaceable>interface-name</replaceable></synopsis>
Followed by:
<synopsis>nmcli con up
<replaceable>interface-name</replaceable></synopsis>
- These commands require <systemitem
class="username">root</systemitem> privileges.
</para>
<para>
- <application>NetworkManager</application> does not trigger any of the
network scripts, though the network scripts will try to trigger
<application>NetworkManager</application> if it is running when
<command>ifup</command> commands are used.
+ <application>NetworkManager</application> does not trigger any of the
network scripts, though the network scripts will try to trigger
<application>NetworkManager</application> if it is running when
<filename>ifup</filename> commands are used. See <xref
linkend="sec-NetworkManager_and_the_Network_Scripts" /> for an explanation of
the network scripts.
</para>
<para>
- The <filename>ifup</filename> script is a generic script which does a few
things and then calls interface-specific scripts like
<filename>ifup-ethX</filename>,
<filename>ifup-wireless</filename>, <filename>ifup-ppp</filename>,
and so on. When a user runs <filename>ifup-eth0</filename> manually, the
following occurs:
- <itemizedlist>
+ The <filename>ifup</filename> script is a generic script which does a few
things and then calls interface-specific scripts like
<filename>ifup-ethX</filename>,
<filename>ifup-wireless</filename>, <filename>ifup-ppp</filename>,
and so on. When a user runs <command>ifup eth0</command> manually, the
following occurs:
+ <orderedlist>
<listitem>
<para>
- <filename>ifup</filename> looks for a file called
<filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename>,
+ <filename>ifup</filename> looks for a file called
<filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename>;
</para>
</listitem>
<listitem>
<para>
- if the <filename>ifcfg</filename> file exists,
<filename>ifup</filename> looks for the <option>TYPE</option> key
in that file to determine which type-specific script to call,
+ if the <filename>ifcfg</filename> file exists,
<filename>ifup</filename> looks for the <option>TYPE</option> key
in that file to determine which type-specific script to call;
</para>
</listitem>
<listitem>
<para>
- <filename>ifup</filename> calls
<filename>ifup-wireless</filename> or
<filename>ifup-eth</filename> or <filename>ifup-XXX</filename>
based on <option>TYPE</option>,
+ <filename>ifup</filename> calls
<filename>ifup-wireless</filename> or
<filename>ifup-eth</filename> or <filename>ifup-XXX</filename>
based on <option>TYPE</option>;
</para>
</listitem>
<listitem>
<para>
- the type-specific scripts do type-specific setup,
+ the type-specific scripts do type-specific setup;
</para>
</listitem>
<listitem>
<para>
- and then the type-specific scripts let some common functions perform IP-related
tasks like <systemitem class="protocol">DHCP</systemitem> or static
setup.
+ and then the type-specific scripts let common functions perform <systemitem
class="protocol">IP</systemitem>-related tasks like <systemitem
class="protocol">DHCP</systemitem> or static setup.
</para>
</listitem>
- </itemizedlist>
+ </orderedlist>
</para>
<para>
- On bootup, <filename>/etc/init.d/network</filename> reads through all the
<filename>ifcfg</filename> files and calls
<filename>ifup</filename> for each of them if
<command>ONBOOT=yes</command> is present.
+ On bootup, <filename>/etc/init.d/network</filename> reads through all the
<filename>ifcfg</filename> files and for each one that has
<command>ONBOOT=yes</command>, it checks whether
<application>NetworkManager</application> is already starting the DEVICE from
that <filename>ifcfg</filename> file. If
<application>NetworkManager</application> is starting that device or has
already started it, nothing more is done for that file, and the next
<command>ONBOOT=yes</command> file is checked. If
<application>NetworkManager</application> is not yet starting that device, the
initscripts will continue with their traditional behavior and call
<filename>ifup</filename> for that <filename>ifcfg</filename>
file.
+ </para>
+ <para>
+ The end result is that any <filename>ifcfg</filename> file that has
<command>ONBOOT=yes</command> is expected to be started on system bootup,
either by <application>NetworkManager</application> or by the initscripts.
This ensures that some legacy network types which
<application>NetworkManager</application> does not handle (such as ISDN or
analog dialup modems) as well as any new application not yet supported by
<application>NetworkManager</application> are still correctly started by the
initscripts even though <application>NetworkManager</application> is unable to
handle them.
</para>
<note>
<para>
@@ -164,37 +278,6 @@ The file <filename>/etc/sysconfig/network</filename> is
for settings which are t
</note>
</section>
-<section id="sec-NetworkManager_and_the_Network_Scripts">
-<title>NetworkManager and the Network Scripts</title>
-<para>
- The term <firstterm>network scripts</firstterm> is a commonly used term for
the script <filename
class="directory">/etc/init.d/network</filename> and any other
installed scripts it calls. The user supplied files are typically viewed as configuration,
but can be also interpreted as an amendment to the scripts. With
<application>NetworkManager</application> providing the default networking
service, user shell scripts from previous releases can no longer be used.
-</para>
-<para>
- Note that in <application>Fedora</application>,
<application>NetworkManager</application> is started first, and
<filename>/etc/init.d/network</filename> checks with
<application>NetworkManager</application> to avoid tampering with
<application>NetworkManager</application>'s connections.
<application>NetworkManager</application> is intended to be the primary
application using sysconfig configuration files and
<filename>/etc/init.d/network</filename> is intended to be secondary, playing
a fallback role.
-</para>
-<para>
-The <filename>/etc/init.d/network</filename> script is not event-driven, it
runs either:
-<itemizedlist>
- <listitem>
- <para>
- (a) manually (by one of the <command>systemctl</command> commands
<command><option>start|stop|restart</option> network</command>),
- </para>
- </listitem>
- <listitem>
- <para>
- (b) on boot and shutdown if the network service is enabled (as a result of the
command <command>systemctl enable network</command>)
- </para>
- </listitem>
-</itemizedlist>
- It is a manual process and does not react to events that happen after boot. Users can
of course also call the scripts <filename>ifup</filename> and
<filename>ifdown</filename> manually.
- </para>
- <bridgehead id="bh-Running_Network_Script">Running Network
Script</bridgehead>
- <para>
-Run the script with the <command>systemctl
<option>start|stop|restart|status</option> network</command> wrapper to
clear any existing environment variables and ensure clean execution. Do not run any
service by calling <command>/etc/init.d/servicename
<option>start|stop|restart|status</option></command> directly.
-</para>
-
-</section>
-
<!--Topics, Reference-->
<section
id="sec-Introduction_to_Fedora_Networking-additional_resources">
@@ -207,12 +290,17 @@ Run the script with the <command>systemctl
<option>start|stop|restart|status</op
<itemizedlist>
<listitem>
<para>
+ <filename>man(1)</filename> man page — Describes man pages and how to
find them.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
<filename>NetworkManager(8)</filename> man page — Describes the
network management daemon.
</para>
</listitem>
<listitem>
<para>
- <filename>man(1)</filename> man page — Describes man pages and how to
find them.
+ <filename>NetworkManager.conf(5)</filename> man page — Describes the
<systemitem class="daemon">NetworkManager</systemitem> configuration
file.
</para>
</listitem>