NIC在RHEL5 / CentOS 5上重新sorting

我有一个HP ProLiant DL360 G6,它包含两个板载网卡以及一个HP NC375T(NetXen NX3031芯片组)4端口PCIe卡。 系统正在使用属于板载NIC的eth0和eth1以及NetXen卡上的eth2-eth5运行。 我最近重build了服务器,从kickstart进程开始,NIC重新sorting,板载NIC成为eth4和eth5,而NetXen卡接pipe了eth0-eth3。

过去我曾经有过一些经验,通过对ifcfg-ethXconfiguration文件的修改,将NIC绑定到特定的接口,但是这是我第一次看到一个附加卡从主板接口接pipeeth0。 这影响了我的kickstart脚本,所以:

1)。 我如何确保板载网卡在kickstart安排中优先。

2)。 通过反复重新启动,内核更改(例如,从RHEL主线内核到RHEL MRG实时内核),维持该顺序的最一致的方式是什么?

3)。 /etc/modprobe.conf模块/ NIC定义, /etc/sysconfig/network-scripts/ifcfg-ethX/etc/modprobe.d/blacklist函数之间的交互是什么?

这是RHEL5和衍生产品的一个已知问题。 有两种可能的解决scheme:

  1. 请将HWADDR设置在ifcfg脚本中(可以使用脚本化的正则expression式和MAC范围为不同的NIC供应商提供)
  2. 再次使用udev规则,MAC在这里扮演一个angular色

您可以使用kssendmac选项来获取NIC的MAC地址发送到Kickstart脚本。 用PHPparsing出来并进行相应的configuration。

这样,已知的variables就是板载NIC的MAC,未知是内核分配的eth设备。

这段代码将得到并打印所有的头文件。 你必须想出一些parsing你所需要的信息的东西。 您的networkingconfiguration线将根据您从中得到的结果进行有条件的处理。

<?
$headers = getallheaders();
foreach ($headers as $key => $value)
{ echo "# $key: $value\n"; }
?>

如果你需要更多的帮助,请告诉我。 不过,这应该让你朝着正确的方向前进。

将多个NIC插入服务器有时会导致新的NIC以自己的顺序启动,而不是按照您期望的eth0(现有nic),eth1(新nic),eth2(新nic)顺序启动

Red Hat / CentOS在Red Hat中,例如,如果驱动程序名为“tg3”(Tigon驱动程序),则只需通过编辑指定eth(x)顺序来指定所需的networking名称顺序

vi /etc/modprobe.conf

别名eth0 tg3

别名eth1 e1000

别名eth2 3com

上面的例子显示tg3驱动程序将在e1000和3com内核之前加载。