<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://alteeve.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rucus</id>
	<title>Alteeve Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://alteeve.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rucus"/>
	<link rel="alternate" type="text/html" href="https://alteeve.com/w/Special:Contributions/Rucus"/>
	<updated>2026-05-09T01:08:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://alteeve.com/w/index.php?title=User:Rucus&amp;diff=4780</id>
		<title>User:Rucus</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=User:Rucus&amp;diff=4780"/>
		<updated>2013-05-18T18:26:55Z</updated>

		<summary type="html">&lt;p&gt;Rucus: Created page with &amp;quot;Test&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4581</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4581"/>
		<updated>2012-11-19T14:18:38Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* &amp;#039;udev&amp;#039; Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg eth1&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above. It is outside the scope of this tutorial to cover the various settings.  For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
First, change the file names to reflect the device order that you want.  In this example we need to swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using your editor of choice, open each file and change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; to match the new filename.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Simply delete this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4580</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4580"/>
		<updated>2012-11-19T14:16:10Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* For the Impatient */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg eth1&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above. It is outside the scope of this tutorial to cover the various settings.  For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
First, change the file names to reflect the device order that you want.  In this example we need to swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using your editor of choice, open each file and change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; to match the new filename.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4579</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4579"/>
		<updated>2012-11-19T14:15:09Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* For the Impatient */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg eth1&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above. It is outside the scope of this tutorial to cover the various settings.  For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
First, change the file names to reflect the device order that you want.  In this example we need to swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using your editor of choice, open each file and change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; to match the new filename.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4578</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4578"/>
		<updated>2012-11-19T14:13:58Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* Interface Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above. It is outside the scope of this tutorial to cover the various settings.  For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
First, change the file names to reflect the device order that you want.  In this example we need to swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using your editor of choice, open each file and change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; to match the new filename.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4577</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4577"/>
		<updated>2012-11-19T14:09:43Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* Interface Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;no&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above. It is outside the scope of this tutorial to cover the various settings.  For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
First, change the file names to reflect the device order that you want.  In this example we need to swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
mv ifcfg-eth0 ifcfg-temp&lt;br /&gt;
mv ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
mv ifcfg-temp ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using your editor of choice, open each file and change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; to match the new filename.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4576</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4576"/>
		<updated>2012-11-19T14:07:37Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* Interface Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;no&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above. It is outside the scope of this tutorial to cover the various settings.  For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
First, change the file names to reflect the device order that you want.  In this example we need to swap &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4575</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4575"/>
		<updated>2012-11-19T13:58:06Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* The Fix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
What we need to do is modify the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; line in each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; file to reflect the order we want.&lt;br /&gt;
&lt;br /&gt;
To avoid confusion later on, we should also rename the files to reflect the new device names.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:21:91:19:96:53&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
DEFROUTE=&amp;quot;yes&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;90:E6:BA:71:82:EA&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DEVICE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
HWADDR=&amp;quot;00:0E:0C:59:46:E4&amp;quot;&lt;br /&gt;
ONBOOT=&amp;quot;no&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above, and most will likely be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;BOOTPROTO=static&amp;lt;/span&amp;gt;. One or more may also be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ONBOOT=yes&amp;lt;/span&amp;gt;. It is outside the scope of this tutorial to cover the various settings&lt;br /&gt;
&lt;br /&gt;
For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
With networking stopped, all we need to do is remove the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. &#039;&#039;&#039;Personally&#039;&#039;&#039;, I like to keep the network card name and the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; entries in my files, but comment them out. If you wish to do the same, move them to the appropriate file. Further, I use this time to further configure each interface to the values I want. Do whatever is right for you.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
#HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=192.168.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
GATEWAY=192.168.1.1&lt;br /&gt;
DNS1=192.139.81.117&lt;br /&gt;
DNS2=192.139.81.1&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
#HWADDR=00:21:91:19:96:53&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.0.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
#HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4574</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4574"/>
		<updated>2012-11-19T13:48:56Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* Initial Mapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
Traditionally, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device was linked via the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file. With the introduction of [http://en.wikipedia.org/wiki/Udev udev], the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; is no longer needed. Instead, this mapping is now made in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt; udev configuration file. &lt;br /&gt;
&lt;br /&gt;
So the trick then is to remove or comment-out the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file, then, change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;ethX&amp;quot;&amp;lt;/span&amp;gt; in the udev configuration file to match the MAC address you want.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DHCPCLASS=&lt;br /&gt;
HWADDR=00:21:91:19:96:53&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
IPV4_FAILURE_FATAL=yes&lt;br /&gt;
IPV6INIT=no&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
OPTIONS=layer2=1&lt;br /&gt;
PEERDNS=yes&lt;br /&gt;
PEERROUTES=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
ONBOOT=no&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above, and most will likely be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;BOOTPROTO=static&amp;lt;/span&amp;gt;. One or more may also be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ONBOOT=yes&amp;lt;/span&amp;gt;. It is outside the scope of this tutorial to cover the various settings&lt;br /&gt;
&lt;br /&gt;
For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
With networking stopped, all we need to do is remove the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. &#039;&#039;&#039;Personally&#039;&#039;&#039;, I like to keep the network card name and the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; entries in my files, but comment them out. If you wish to do the same, move them to the appropriate file. Further, I use this time to further configure each interface to the values I want. Do whatever is right for you.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
#HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=192.168.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
GATEWAY=192.168.1.1&lt;br /&gt;
DNS1=192.139.81.117&lt;br /&gt;
DNS2=192.139.81.1&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
#HWADDR=00:21:91:19:96:53&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.0.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
#HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4573</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4573"/>
		<updated>2012-11-19T13:47:43Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* Desired Mapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
Traditionally, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device was linked via the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file. With the introduction of [http://en.wikipedia.org/wiki/Udev udev], the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; is no longer needed. Instead, this mapping is now made in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt; udev configuration file. &lt;br /&gt;
&lt;br /&gt;
So the trick then is to remove or comment-out the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file, then, change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;ethX&amp;quot;&amp;lt;/span&amp;gt; in the udev configuration file to match the MAC address you want.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DHCPCLASS=&lt;br /&gt;
HWADDR=00:21:91:19:96:53&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
IPV4_FAILURE_FATAL=yes&lt;br /&gt;
IPV6INIT=no&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
OPTIONS=layer2=1&lt;br /&gt;
PEERDNS=yes&lt;br /&gt;
PEERROUTES=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
ONBOOT=no&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above, and most will likely be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;BOOTPROTO=static&amp;lt;/span&amp;gt;. One or more may also be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ONBOOT=yes&amp;lt;/span&amp;gt;. It is outside the scope of this tutorial to cover the various settings&lt;br /&gt;
&lt;br /&gt;
For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
With networking stopped, all we need to do is remove the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. &#039;&#039;&#039;Personally&#039;&#039;&#039;, I like to keep the network card name and the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; entries in my files, but comment them out. If you wish to do the same, move them to the appropriate file. Further, I use this time to further configure each interface to the values I want. Do whatever is right for you.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
#HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=192.168.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
GATEWAY=192.168.1.1&lt;br /&gt;
DNS1=192.139.81.117&lt;br /&gt;
DNS2=192.139.81.1&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
#HWADDR=00:21:91:19:96:53&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.0.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
#HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4572</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4572"/>
		<updated>2012-11-19T13:43:46Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* For the Impatient */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
# Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
# Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
# Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
Traditionally, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device was linked via the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file. With the introduction of [http://en.wikipedia.org/wiki/Udev udev], the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; is no longer needed. Instead, this mapping is now made in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt; udev configuration file. &lt;br /&gt;
&lt;br /&gt;
So the trick then is to remove or comment-out the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file, then, change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;ethX&amp;quot;&amp;lt;/span&amp;gt; in the udev configuration file to match the MAC address you want.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DHCPCLASS=&lt;br /&gt;
HWADDR=00:21:91:19:96:53&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
IPV4_FAILURE_FATAL=yes&lt;br /&gt;
IPV6INIT=no&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
OPTIONS=layer2=1&lt;br /&gt;
PEERDNS=yes&lt;br /&gt;
PEERROUTES=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
ONBOOT=no&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above, and most will likely be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;BOOTPROTO=static&amp;lt;/span&amp;gt;. One or more may also be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ONBOOT=yes&amp;lt;/span&amp;gt;. It is outside the scope of this tutorial to cover the various settings&lt;br /&gt;
&lt;br /&gt;
For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
With networking stopped, all we need to do is remove the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. &#039;&#039;&#039;Personally&#039;&#039;&#039;, I like to keep the network card name and the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; entries in my files, but comment them out. If you wish to do the same, move them to the appropriate file. Further, I use this time to further configure each interface to the values I want. Do whatever is right for you.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
#HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=192.168.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
GATEWAY=192.168.1.1&lt;br /&gt;
DNS1=192.139.81.117&lt;br /&gt;
DNS2=192.139.81.1&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
#HWADDR=00:21:91:19:96:53&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.0.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
#HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4571</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4571"/>
		<updated>2012-11-19T13:33:16Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* For the Impatient */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.  This example will swap eth0 and eth1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
#Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
#Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
#Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
Traditionally, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device was linked via the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file. With the introduction of [http://en.wikipedia.org/wiki/Udev udev], the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; is no longer needed. Instead, this mapping is now made in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt; udev configuration file. &lt;br /&gt;
&lt;br /&gt;
So the trick then is to remove or comment-out the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file, then, change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;ethX&amp;quot;&amp;lt;/span&amp;gt; in the udev configuration file to match the MAC address you want.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DHCPCLASS=&lt;br /&gt;
HWADDR=00:21:91:19:96:53&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
IPV4_FAILURE_FATAL=yes&lt;br /&gt;
IPV6INIT=no&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
OPTIONS=layer2=1&lt;br /&gt;
PEERDNS=yes&lt;br /&gt;
PEERROUTES=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
ONBOOT=no&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above, and most will likely be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;BOOTPROTO=static&amp;lt;/span&amp;gt;. One or more may also be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ONBOOT=yes&amp;lt;/span&amp;gt;. It is outside the scope of this tutorial to cover the various settings&lt;br /&gt;
&lt;br /&gt;
For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
With networking stopped, all we need to do is remove the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. &#039;&#039;&#039;Personally&#039;&#039;&#039;, I like to keep the network card name and the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; entries in my files, but comment them out. If you wish to do the same, move them to the appropriate file. Further, I use this time to further configure each interface to the values I want. Do whatever is right for you.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
#HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=192.168.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
GATEWAY=192.168.1.1&lt;br /&gt;
DNS1=192.139.81.117&lt;br /&gt;
DNS2=192.139.81.1&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
#HWADDR=00:21:91:19:96:53&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.0.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
#HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4570</id>
		<title>Changing the ethX to Ethernet Device Mapping in EL6 and Fedora 12 to 14</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Changing_the_ethX_to_Ethernet_Device_Mapping_in_EL6_and_Fedora_12_to_14&amp;diff=4570"/>
		<updated>2012-11-19T13:32:27Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* For the Impatient */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
{{note|1=This applies up to Fedora 14. Fedora 15 works quite differently now that it uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;biosdevname&amp;lt;/span&amp;gt;. Please follow [[Changing Ethernet Device Names in EL7 and Fedora 15+|this tutorial]] for Fedora 15 and newer.}}&lt;br /&gt;
&lt;br /&gt;
When you have two or more ethernet devices in one machine, the Fedora install may not install them in the order you want. This document will show you how to change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device mapping.&lt;br /&gt;
&lt;br /&gt;
This is desirable in cases where specific network cards need to be used on specific networks, and you are interested in maintaining common &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names across servers. A practical example is found in the [[2-Node Red Hat KVM Cluster Tutorial]].&lt;br /&gt;
&lt;br /&gt;
= For the Impatient =&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NetworkManager&amp;lt;/span&amp;gt; is already removed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Stop the network daemon&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
#Move your ifcfg files to the device names you desire&lt;br /&gt;
cp ifcfg-eth0 ifcfg-temp&lt;br /&gt;
cp ifcfg-eth1 ifcfg-eth0&lt;br /&gt;
cp ifcfg-temp ifcfg eth1&lt;br /&gt;
rm ifcfg-temp&lt;br /&gt;
#Modify DEVICE lines to match new file names&lt;br /&gt;
vim /etc/sysconfig/network-scripts/ifcfg-eth*&lt;br /&gt;
# Make changes as needed&lt;br /&gt;
#Remove udev rules file&lt;br /&gt;
rm /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
start_udev&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks for &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenris02&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;mutk&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
I find it easier to follow instructions when I have an example to follow, so let me provide one here:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got the same hardware in the same configuration in both of my storage nodes. To keep things simple, I want to make sure that both nodes use the same &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; name for the network devices on each of the given networks.&lt;br /&gt;
&lt;br /&gt;
== Desired Mapping ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s assume that you want this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Initial Mapping ==&lt;br /&gt;
&lt;br /&gt;
When the Fedora install finished, you may have gotten this:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:21:91:19:96:53&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;90:E6:BA:71:82:EA&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;&lt;br /&gt;
** Type: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;# Intel Corporation 82540EM Gigabit Ethernet Controller&amp;lt;/span&amp;gt;&lt;br /&gt;
** MAC: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:0E:0C:59:46:E4&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Problem ==&lt;br /&gt;
&lt;br /&gt;
In the above example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt; is where we want it, so we leave it alone. The problem is that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; are reversed.&lt;br /&gt;
&lt;br /&gt;
== The Fix ==&lt;br /&gt;
&lt;br /&gt;
Traditionally, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to physical ethernet device was linked via the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file. With the introduction of [http://en.wikipedia.org/wiki/Udev udev], the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; is no longer needed. Instead, this mapping is now made in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt; udev configuration file. &lt;br /&gt;
&lt;br /&gt;
So the trick then is to remove or comment-out the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; argument in each NIC&#039;s &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-ethX&amp;lt;/span&amp;gt; configuration file, then, change the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;ethX&amp;quot;&amp;lt;/span&amp;gt; in the udev configuration file to match the MAC address you want.&lt;br /&gt;
&lt;br /&gt;
=== Stopping the Network ===&lt;br /&gt;
&lt;br /&gt;
First, stop the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt;. This is important because if you change the MAC address to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; mapping while the network is still up, the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;init.d&amp;lt;/span&amp;gt; script will fail to bring down the network devices and you will need to reboot for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/sysconfig/network-scripts/&amp;lt;/span&amp;gt; directory and then use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt; to see the contents of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifcfg-eth*&amp;lt;/span&amp;gt; network configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DHCPCLASS=&lt;br /&gt;
HWADDR=00:21:91:19:96:53&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=dhcp&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
IPV4_FAILURE_FATAL=yes&lt;br /&gt;
IPV6INIT=no&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
OPTIONS=layer2=1&lt;br /&gt;
PEERDNS=yes&lt;br /&gt;
PEERROUTES=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04&lt;br /&gt;
DHCP_HOSTNAME=an-node01.alteeve.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
ONBOOT=no&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important lines are the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DEVICE=...&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. The rest of the lines will very likely differ from the output above, and most will likely be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;BOOTPROTO=static&amp;lt;/span&amp;gt;. One or more may also be set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ONBOOT=yes&amp;lt;/span&amp;gt;. It is outside the scope of this tutorial to cover the various settings&lt;br /&gt;
&lt;br /&gt;
For an exhaustive list of available options, please [http://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-networkscripts-interfaces.html see the Fedora documentation].&lt;br /&gt;
&lt;br /&gt;
With networking stopped, all we need to do is remove the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; lines. &#039;&#039;&#039;Personally&#039;&#039;&#039;, I like to keep the network card name and the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;HWADDR=...&amp;lt;/span&amp;gt; entries in my files, but comment them out. If you wish to do the same, move them to the appropriate file. Further, I use this time to further configure each interface to the values I want. Do whatever is right for you.&lt;br /&gt;
&lt;br /&gt;
Here is the updated files with updated network settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/sysconfig/network-scripts&lt;br /&gt;
cat ifcfg-eth0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller&lt;br /&gt;
#HWADDR=90:E6:BA:71:82:EA&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=192.168.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
GATEWAY=192.168.1.1&lt;br /&gt;
DNS1=192.139.81.117&lt;br /&gt;
DNS2=192.139.81.1&lt;br /&gt;
DEFROUTE=yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# D-Link System Inc DGE-560T PCI Express Gigabit Ethernet Adapter&lt;br /&gt;
#HWADDR=00:21:91:19:96:53&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.0.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ifcfg-eth2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# Intel Corporation 82540EM Gigabit Ethernet Controller&lt;br /&gt;
#HWADDR=00:0E:0C:59:46:E4&lt;br /&gt;
DEVICE=eth2&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
TYPE=Ethernet&lt;br /&gt;
IPADDR=10.0.1.71&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;udev&#039; Configuration ===&lt;br /&gt;
&lt;br /&gt;
The user-space device manager, [http://en.wikipedia.org/wiki/Udev udev], maintains a list of configuration files that help ensure that hardware to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/dev&amp;lt;/span&amp;gt; (software) mappings stay consistent, even when hardware is hot swapped or moved between physical connections. For networking hardware, this mapping is recorded in the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;70-persistent-net.rules&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here, all that needs to be done is for the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;NAME=&amp;quot;...&amp;quot;&amp;lt;/span&amp;gt; entry to be changed to reflect what you want.&lt;br /&gt;
&lt;br /&gt;
Note that the entries do not need to be in any particular order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/udev/rules.d/&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the changes and save the file. The file should now look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat 70-persistent-net.rules&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# This file was automatically generated by the /lib/udev/write_net_rules&lt;br /&gt;
# program, run by the persistent-net-generator.rules rules file.&lt;br /&gt;
#&lt;br /&gt;
# You can modify it, as long as you keep each rule on a single&lt;br /&gt;
# line, and change only the value of the NAME= key.&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x10ec:0x8168 (r8169) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;90:e6:ba:71:82:ea&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x1186:0x4b00 (sky2) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:21:91:19:96:53&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;00:0e:0c:59:46:e4&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, KERNEL==&amp;quot;eth*&amp;quot;, NAME=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making the Changes Take Effect ===&lt;br /&gt;
&lt;br /&gt;
First, you need to reload &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; so that it updates the mapping in memory. This is done using the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;start_udev&amp;lt;/span&amp;gt; program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
start_udev&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Starting udev:                                             [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;udev&amp;lt;/span&amp;gt; updated, the last step is to restart the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;network&amp;lt;/span&amp;gt; daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/network start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Bringing up loopback interface:                            [  OK  ]&lt;br /&gt;
Bringing up interface eth0:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth1:                                [  OK  ]&lt;br /&gt;
Bringing up interface eth2:                                [  OK  ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done! use &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ifconfig&amp;lt;/span&amp;gt; to verify that the network cards are properly assigned to the specified &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
== Caveat! ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&#039;&#039;: If you are using a vlan, the device facing the vlan &#039;&#039;&#039;can not&#039;&#039;&#039; have the &#039;&#039;&#039;HWADDR=...&#039;&#039;&#039; value set! Set the others and leave this commented out. Otherwise, because of how the vlan loads, the OS will not see the physical device and will fail to bring up the interface at all.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=TNAP_v1.1.4&amp;diff=1380</id>
		<title>TNAP v1.1.4</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=TNAP_v1.1.4&amp;diff=1380"/>
		<updated>2010-04-16T15:52:15Z</updated>

		<summary type="html">&lt;p&gt;Rucus: /* TNAP v1.1.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{na_v1.1.4_header}}&lt;br /&gt;
&lt;br /&gt;
TNAP; The Node Assassin Protocol is the protocol that defines how commands are to be passed to a Node Assassin device and what output to expect in return. Generally, you will use [[telnet]] to connect to a Node Assassin.&lt;br /&gt;
&lt;br /&gt;
= TNAP v1.1.4 =&lt;br /&gt;
&lt;br /&gt;
TNAP works by listening for a connection on [[TCP]] port &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;238&amp;lt;/span&amp;gt; on [[IP]] &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;192.168.1.66&amp;lt;/span&amp;gt; by default. Both the port and the IP are configurable. Once connected, it uses a very simple protocol.&lt;br /&gt;
&lt;br /&gt;
There are two types of calls:&lt;br /&gt;
* [[#Queries|Queries]]&lt;br /&gt;
* [[#Commands|Commands]]&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
Any message starting with &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;00:x&amp;lt;/span&amp;gt; are &#039;&#039;&#039;query commands&#039;&#039;&#039;. That is, the integer represented by &#039;&#039;&#039;x&#039;&#039;&#039; is interpreted to be a specific information request. Currently, two queries are supported:&lt;br /&gt;
* [[#00:0 - Node Status|00:0]] - Node states query&lt;br /&gt;
* [[#00:1 - NA Information|00:1]] - Node Assassin query&lt;br /&gt;
&lt;br /&gt;
All queries and commands terminate with a final &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;EOM&amp;lt;/span&amp;gt; on a new line. Any programs accessing a Node Assassin must watch for this message and, not finding it, treat any messages as incomplete and corrupt.&lt;br /&gt;
&lt;br /&gt;
=== 00:0 - Node Status ===&lt;br /&gt;
&lt;br /&gt;
To request the state of all supported nodes, send:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 00:0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will generate a message such as:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Node states:&lt;br /&gt;
- Node Count: 04&lt;br /&gt;
- Node 01: P0 R0 F1&lt;br /&gt;
- Node 02: P0 R0 F1&lt;br /&gt;
- Node 03: P1 R1 F0&lt;br /&gt;
- Node 04: P0 R0 F0&lt;br /&gt;
End Message.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The status is broken down into three values:&lt;br /&gt;
* Power: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;P[0|1]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Reset: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;R[0|1]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Feed: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;F[0|1]&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For the power and reset buttons, a value of &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt; indicates that the related switch switch is open. If it is set to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;, the switch is closed (the indicated button is &amp;quot;pressed&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
For the Feed value, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt; indicates that there is no power coming from the node&#039;s feed and thus, the node is &amp;quot;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;off&amp;lt;/span&amp;gt;&amp;quot; or disconnected. If the feed is &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;, then power is detected from the node and the node is known to be &amp;quot;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;on&amp;lt;/span&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Quick reference table:&lt;br /&gt;
{|style=&amp;quot;width: 600px; border-top: 1px dotted #7f7f7f; border-left: 1px dotted #7f7f7f;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&#039;&#039;&#039;Type&#039;&#039;&#039;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Power Switch&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;P&amp;lt;/span&amp;gt;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Open&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Closed&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Reset Switch&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Open&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Closed&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Power Feed&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;F&amp;lt;/span&amp;gt;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Node is On&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center&amp;quot;|Node is Off/disconnected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00:1 - NA Information ===&lt;br /&gt;
&lt;br /&gt;
This query requests information on the node assassin device itself and is called via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 00:1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will generate a message such as:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Node info: &lt;br /&gt;
- Node Name: ..... Motoko&lt;br /&gt;
- Port Count: .... 04&lt;br /&gt;
- NAOS Version: .. v1.1.4.4&lt;br /&gt;
- Serial Number: . PR0002&lt;br /&gt;
- Build Date: .... 2010-04-03&lt;br /&gt;
- MAC address: ... 02:00:00:FF:F0:AA&lt;br /&gt;
- IP address: .... 192.168.1.66&lt;br /&gt;
- Subnet Mask: ... 255.255.255.0&lt;br /&gt;
- Default Gateway: 192.168.1.1&lt;br /&gt;
EOM&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above information is from the internal NAOS, not from the configuration file.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
Commands are always given in the form: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX:Y&amp;lt;/span&amp;gt; where:&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt; is the two-digit, zero-padded node number between &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt; and max node.&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt; is the single-digit command being issues.&lt;br /&gt;
&lt;br /&gt;
=== XX:0 - Release ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX:0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Release the fence on the node if one exists. Specifically, both power and reset switches are opened.&lt;br /&gt;
&lt;br /&gt;
=== XX:1 - Fence ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX:1&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fence the specified node. Specifically;&lt;br /&gt;
# The state is checked.&lt;br /&gt;
## If the node is already fenced, the fence is momentarily released so that it can be re-applied.&lt;br /&gt;
# The reset switch is closed for one second to immediately disable the node.&lt;br /&gt;
# The reset switch is opened for one second.&lt;br /&gt;
## Some machines will not respond to the power button if the reset button is simultaneously pressed.&lt;br /&gt;
# The power switch is closed.&lt;br /&gt;
## After five seconds the node&#039;s power feed is checked. If the feed is still high, NA waits another 25 seconds and checks again. If the feed is still high, an error is generated.&lt;br /&gt;
# The reset switch is closed.&lt;br /&gt;
## At this point, both power and reset are closed, disabling the node&#039;s front-panel switches preventing accidental booting of the node before the fence is released.&lt;br /&gt;
&lt;br /&gt;
=== XX:2 - Boot or Graceful Power Off ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX:2&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will close the power switch for one second and then re-open it. If the node was off, this should initiate a boot. If the node was on, this should initiate shutdown via [[ACPI]]. The power feed is checked prior to the one second fence and the returned message reflects whether the node is being booted or shut down.&lt;br /&gt;
&lt;br /&gt;
=== XX:3 - Force Power Off ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX:3&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is essentially the same as &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;XX:1&amp;lt;/span&amp;gt; except the node is not locked at the end of the fence process. This will close the power switch. After five seconds the node&#039;s power feed is checked. If the feed is still high, NA waits another 25 seconds and checks again. If the feed is still high, an error is generated. Regardless of success or failure, the fence is removed.&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Node_Assassin_v1.1.4&amp;diff=1376</id>
		<title>Node Assassin v1.1.4</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Node_Assassin_v1.1.4&amp;diff=1376"/>
		<updated>2010-04-16T15:46:52Z</updated>

		<summary type="html">&lt;p&gt;Rucus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{na_header}}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width: 100%; align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[Image:na_artsy_view.jpg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-=] &#039;&#039;&#039;&#039;&#039;Paradise by the node assassin light&#039;&#039;&#039;&#039;&#039; [=-&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:an_cluster_logo_01.jpg|thumb|300px|right|The AN!Cluster unnamed assassin.]]&lt;br /&gt;
&lt;br /&gt;
= About =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Node Assassin&#039;&#039;&#039; is an open hardware, open source [[cluster fence]] device.&lt;br /&gt;
&lt;br /&gt;
It is 100% compatible with the [[RedHat]]/[[CentOS]] cluster management suite.&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
&lt;br /&gt;
All downloads include all files needed to build your own Node Assassin from commodity parts.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width: 95%; border-top: 1px dotted #7f7f7f; border-left: 1px dotted #7f7f7f;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center; font-weight: bold;&amp;quot; colspan=&amp;quot;3&amp;quot;|&#039;&#039;Downloads&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center; font-weight: bold;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|Source &lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|[http://nodeassassin.org/files/node_assassin/node_assassin-1.1.4-1.tar.gz node_assassin-1.1.4-1.tar.gz]&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot;|Contains all files and programs needed to build a Node Assassin, load it&#039;s NAOS and install it&#039;s fence agent. Simply run the &#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;install&amp;lt;/span&amp;gt;&#039; script from the root of the directory created by extracting the tarball.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center; font-weight: bold;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|&amp;amp;nbsp;Minimal&amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|[http://nodeassassin.org/files/node_assassin/node_assassin-1.1.4-1.tar.gz node_assassin-1.1.4_minimal.tar.gz]&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot;|Same as the full source, but without the build images and files and does not have the Arduino IDE or BSchV3 programs. Substantially smaller download.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center; font-weight: bold;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|RPM &lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|[http://nodeassassin.org/files/node_assassin/node_assassin-1.1.4-1.noarch.rpm node_assassin-1.1.4-1.noarch.rpm]&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot;|Architecture independent RPM wrapper for the source file.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: center; font-weight: bold;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|SRPM &lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;|[http://nodeassassin.org/files/node_assassin/node_assassin-1.1.4-1.noarch.srpm node_assassin-1.1.4-1.noarch.srpm]&lt;br /&gt;
|style=&amp;quot;border-bottom: 1px dotted #7f7f7f; border-right: 1px dotted #7f7f7f; text-align: left;&amp;quot;|Architecture independent Source RPM wrapper for the source file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Node Assassin =&lt;br /&gt;
&lt;br /&gt;
[[Image:current_na.jpg|thumb|400px|right|&#039;&#039;&#039;Apr. 03, 2010&#039;&#039;&#039;: The current Node Assassin; v1.1.4 Prototype A.]]&lt;br /&gt;
&lt;br /&gt;
There are four major sections:&lt;br /&gt;
&lt;br /&gt;
* [[#Building your own Node Assassin|Building your own Node Assassin]]&lt;br /&gt;
* [[#NAOS; The Node Assassin Operating System|NAOS; The Node Assassin Operating System]]&lt;br /&gt;
* [[#The NA Fence Agent|The NA Fence Agent]]&lt;br /&gt;
* [[#TNAP; The Node Assassin Protocol|TNAP; The Node Assassin Protocol]]&lt;br /&gt;
&lt;br /&gt;
== Building your own Node Assassin ==&lt;br /&gt;
&lt;br /&gt;
At this time, the commercial, pre-built Node Assassin is still in development. In order to get a Node Assassin now, you will need to build your own.&lt;br /&gt;
&lt;br /&gt;
If you live in a big city, then your local electronics hobby shop should have everything you need. If you don&#039;t, then you can either order the parts from an online supplier or, if you wish, you can buy a kit with everything you need from us.&lt;br /&gt;
&lt;br /&gt;
* [[Building a Node Assassin v1.1.4]]&lt;br /&gt;
&lt;br /&gt;
== NAOS; The Node Assassin Operating System ==&lt;br /&gt;
&lt;br /&gt;
NAOS is the Arduino-based sketch that operates the Node Assassin. You will need to edit the source file &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;naos_v1.1.4.4.c&amp;lt;/span&amp;gt; file to match your environment and then load it into your Node Assassin. Everything you need to know can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
* [[NAOS v1.1.4.x]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The NA Fence Agent ==&lt;br /&gt;
&lt;br /&gt;
This is the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;FenceAgentAPI&amp;lt;/span&amp;gt; compatible fence agent for Node Assassin devices. It is a [[perl]] program consisting of three files; &lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/sbin/fence_na&amp;lt;/span&amp;gt; - The core agent called by the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;fenced&amp;lt;/span&amp;gt; daemon.&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/fence_na/fence_na.lib&amp;lt;/span&amp;gt; - The library containing the shared functions used by the core program.&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/etc/fence_na/fence_na.conf&amp;lt;/span&amp;gt; - This is the common configuration file for your Node Assassin(s). It must be updated to match your environment in order to work.&lt;br /&gt;
&lt;br /&gt;
All the details, including the source code, can be found in the following article:&lt;br /&gt;
&lt;br /&gt;
* [[Node Assassin Fence Agent v1.1.4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TNAP; The Node Assassin Protocol ==&lt;br /&gt;
&lt;br /&gt;
Node Assassins are accessed and controlled over [[telnet]] using a custom protocol called &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;TNAP&amp;lt;/span&amp;gt;. For day-to-day clustering, you do not need to worry about the protocol as the fence agent handles the communication for you behind the scenes. If you would like to know the details though, or would like to help improving the protocol, all the details are in the following article.&lt;br /&gt;
&lt;br /&gt;
* [[TNAP v1.1.4]]&lt;br /&gt;
&lt;br /&gt;
{{na_footer}}&lt;/div&gt;</summary>
		<author><name>Rucus</name></author>
	</entry>
</feed>