When I was working on this last time (with the r8169 driver), someone on this list provided the following script which is what "fixed" the issue at the time by creating a new 70-persistent-net.rules file with the devices enumerated in order. However, this no longer works now. echo "[KICKSTART] Binding eth interfaces to the expected MAC address in UDEV" echo "## Created by Kickstart to keep network interfaces in an expected order" > \ /etc/udev/rules.d/70-persistent-net.rules echo "" >> \ /etc/udev/rules.d/70-persistent-net.rules cd /sys/class/net/ for NETDEV in $(ls | /bin/grep eth | sort) do ## Create a UDEV rule for each eth interface echo "## ${NETDEV} interface" >> \ /etc/udev/rules.d/70-persistent-net.rules ## We throw this one in here as it can contain some useful information echo "## $(dmesg | /bin/grep ${NETDEV} | /bin/grep -i -v -e "console" -e "Command line" | head -1)" >> \ /etc/udev/rules.d/70-persistent-net.rules echo -n "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", " >> \ /etc/udev/rules.d/70-persistent-net.rules echo -n "ATTR{address}==\"$(cat ${NETDEV}/address)\", " >> \ /etc/udev/rules.d/70-persistent-net.rules echo -n "ATTR{dev_id}==\"0x0\", ATTR{type}==\"1\", KERNEL==\"eth?*\", " >> \ /etc/udev/rules.d/70-persistent-net.rules echo -e "NAME=\"${NETDEV}\"\n" >> \ /etc/udev/rules.d/70-persistent-net.rules ## Make a log of the devices present during install echo -e "${NETDEV} $(cat ${NETDEV}/address)\n" >> /root/ksnet-devices ## Also remove the HWADDR line from all of the net config files /bin/grep -v -e NAME -e HWADDR -e NM_CONTROLLED \ /etc/sysconfig/network-scripts/ifcfg-${NETDEV} | sed 's/\"//g' \ > /etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp #/usr/bin/perl -p -i -e 's/dhcp/none/' /etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp /bin/mv -f /etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp \ /etc/sysconfig/network-scripts/ifcfg-${NETDEV} done After the machine boots and I look in /root/ksnet-devices, I see the MAC addresses for the devices as: Port1 -> eth0 PCIe Card-> eth1 Port2 -> eth2 And yet, during the machine's POST (which can verify by the PXE boot up of each device), it correctly enumerates the ethernet devices as: Port1 Port2 PCIe card So where and why is the order changed when the kernel kicks in and start booting the machine? And how can I stop it, or change its behavior? I'm not seeing any 'renaming' going on in dmesg like I sometimes find. So something is causing this and I can't figure it out. On Wed, May 13, 2015 at 5:17 PM, Kahlil Hodgson < kahlil.hodgson at dealmax.com.au> wrote: > Have you tried having kickstart set up a more appropriate > /etc/udev/rules/70-persistent-net.rules? > This is normally written by /lib/udev/write_net_rules. You should be able > to modify the automatically generated one to match what you need. > > K > _______________________________________________ > CentOS mailing list > CentOS at centos.org > http://lists.centos.org/mailman/listinfo/centos > >