[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