[networking-guide] master: Add: Troubleshooting Network Device Naming (b6a35d9)
stephenw at fedoraproject.org
stephenw at fedoraproject.org
Wed Sep 3 20:32:55 UTC 2014
Repository : http://git.fedorahosted.org/cgit/docs/networking-guide.git
On branch : master
>---------------------------------------------------------------
commit b6a35d9eac4863d925035823717a2e3fe7b5104e
Author: Stephen Wadeley <swadeley at redhat.com>
Date: Wed Sep 3 22:31:23 2014 +0200
Add: Troubleshooting Network Device Naming
Thank you msekleta and lnykryn
>---------------------------------------------------------------
en-US/Consistent_Network_Device_Naming.xml | 56 ++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/en-US/Consistent_Network_Device_Naming.xml b/en-US/Consistent_Network_Device_Naming.xml
index 6cf8b9f..ac819a5 100644
--- a/en-US/Consistent_Network_Device_Naming.xml
+++ b/en-US/Consistent_Network_Device_Naming.xml
@@ -435,6 +435,62 @@ The name provided by <systemitem class="daemon">systemd-udev</systemitem> will b
</section>
+ <section id="sec_Troubleshooting_Network_Device_Naming">
+ <title>Troubleshooting Network Device Naming</title>
+
+ <para>
+ Predictable interface names will be assigned for each interface, if applicable, as per the procedure described in <xref linkend="sec-Understanding_the_Device_Renaming_Procedure" />. To view the list of possible names <application>udev</application> will use, issue a command in the following form as <systemitem class="username">root</systemitem>:
+ <screen>~]# <command>udevadm info /sys/class/net/<replaceable>ifname</replaceable> | grep ID_NET_NAME</command></screen>
+ where <replaceable>ifname</replaceable> is one of the interfaces listed by the following command:
+ <screen>~]$ <command>ls /sys/class/net/</command></screen>
+ </para>
+ <para>
+ One of the possible names will be applied by <application>udev</application> according to the rules as described in <xref linkend="sec-Understanding_the_Device_Renaming_Procedure" />, and summarized here:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>/usr/lib/udev/rules.d/60-net.rules</filename> - from initscripts,
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>/usr/lib/udev/rules.d/71-biosdevname.rules</filename> - from <application>biosdevname</application>,
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>/usr/lib/udev/rules.d/80-net-name-slot.rules</filename> - from <systemitem class="daemon">systemd</systemitem>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ From the above list of rule files it can be seen that if interface naming is done via initscripts or <application>biosdevname</application> it always takes precedence over <application>udev</application> native naming. However if initscripts renaming is not taking place and <application>biosdevname</application> is disabled, then to alter the interface names copy the <filename>80-net-name-slot.rules</filename> from <filename class="directory">/usr/</filename> to <filename class="directory">/etc/</filename> and edit the file appropriately. In other words, comment out or arrange schemes to be used in a certain order.
+ </para>
+
+ <example id="ex-Some_interfaces_have_names_from_the_kernel_namespace_while_others_are_successfully_renamed_by_udev">
+ <title>Some interfaces have names from the kernel namespace (eth[0,1,2...]) while others are successfully renamed by udev</title>
+ <para>
+ Mixed up schemes most likely means that either for some hardware there is no usable information provided by the kernel to <application>udev</application>, thus it could not figure out any names, or the information provided to <application>udev</application> is not suitable, for example non-unique device IDs. The latter is more common and the solution is to use a custom naming scheme in ifcfg files or alter which <application>udev</application> scheme is in use by editing 80-net-name-slot.rules.
+ </para>
+
+ </example>
+
+ <example id="ex-In_var-log-messages_or_the_systemd_journal_renaming_is_seen_to_be_done_twice_for_each_interface">
+ <title>In /var/log/messages or the systemd journal, renaming is seen to be done twice for each interface</title>
+ <para>
+ Systems with the naming scheme encoded in ifcfg files but which do not have a regenerated <systemitem class="filesystem">initrd</systemitem> image are likely to encounter this issue. The interface name is initially assigned (via <application>biosdevname</application> or <application>udev</application> or dracut parameters on the kernel command line) during early-boot while still in <systemitem class="filesystem">initrd</systemitem>. Then after switching to real <systemitem class="filesystem">rootfs</systemitem>, renaming is done a second time and a new interface name is determined by the <filename>/usr/lib/udev/rename_device</filename> binary spawned by <application>udev</application> because of processing 60-net.rules. You can safely ignore such messages.
+ </para>
+ </example>
+
+ <example id="ex-Using_naming_scheme_in_ifcfg_files_with_ethX_names_does_not_work">
+ <title>Using naming scheme in ifcfg files with ethX names does not work</title>
+ <para>
+ Use of interface names from kernel namespace is discouraged. To get predictable and stable interface names please use some other prefix than "eth".
+ </para>
+ </example>
+ </section>
+
<!--Topics, Reference-->
<section id="sec-Consistent_Network_Device_Naming-additional_resources">
More information about the docs-commits
mailing list