CentOS的网卡顺序/网卡名称排列

来源:互联网 发布:中兴软件南昌公司如何 编辑:程序博客网 时间:2024/04/25 02:39

CentOS中udev对于网卡加载的配置:(/etc/udev/rules.d/60-net.rules)

 

ACTION=="add", SUBSYSTEM=="net", IMPORT{program}="/lib/udev/rename_device"   

SUBSYSTEM=="net", RUN+="/etc/sysconfig/network-scripts/net.hotplug"

 

 

 

而net.hotplug是这么写得:

 

     export IN_HOTPLUG=1
     if [ -x /sbin/ifup ]; then
         addr=$(get_hwaddr ${INTERFACE})         根据interface(eth0等)查找hwaddr,查找方式就是cat /sys/class/net/eth0/addr
  if [ -n "$addr" ]; then
   nconfig=$(get_config_by_hwaddr ${addr})   根据addr查找config文件
   [ -n "$nconfig" ] && INTERFACE=$nconfig      根据config文件改名interface
  fi
  exec /sbin/ifup $INTERFACE                          ifup device
     fi 
     ;;
    esac
    ;;


最后,ifup会根据配置文件的内容对interface再次更名,完毕后udev会更新/sys/class/net/下的目录。这说明配置文件最终决定了eth的名称。

 

 

比如原来有个eth1:

eth1      Link encap:Ethernet  HWaddr 00:1D:09:1F:FF:6E 

 

将eth1down掉后,该配置文件ifcfg-eth1为ifcfg-eth3,并将内容中的device项也改掉:

DEVICE=eth3

 

重启udev和网络:

udevcontrol reload_rules

service network restart

 

好吧,eth1就变成eth3了,-_-|||,配置文件不变就是永久生效……

 

eth3      Link encap:Ethernet  HWaddr 00:1D:09:1F:FF:6E