我有两台主机运行同一版本的 RHEL (6.4)。我被分配了八个 IP 地址,分别放在每台主机的一个 NIC 上。
在主机 A 上,我手动创建了 ifcfg-etho、ifcfg-etho:1、ifcfg-etho:2、ifcfg-etho:3、ifcfg-etho:4、ifcfg-etho:5、ifcfg-etho:6、ifcfg-etho:7 ifcfg-etho 如下所示:
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
IPADDR=xx.xx.xx.xx
PREFIX=24
GATEWAY=xx.xx.xx.xx
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=VLAN20
ONBOOT=yes
在二级接口文件中,我放入了以下内容:
DEVICE=eth0:x
IPADDR=xx.xx.xx.xx
PREFIX=24
GATEWAY=xx.xx.xx.xx
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
当我查看 NetworkManager GUI 时,它在 IPv4 设置选项卡下显示了一个名为 VLAN20 的条目,其中包含所有 IP。现在,在主机 B 上,我创建了相同的文件,具有相同的字段。但是 NetworkManager GUI 不显示 VLAN20,它显示了七个名为“System eth0:x”的项目(没有提到 eth0)。如果我在主机 B 上使用 NetworkManager GUI 来模拟主机 A 上的设置,它会创建一个包含所有地址的 ifcfg-VLAN20 文件,并且辅助接口不会显示在 ifconfig 中...
发生了什么?
答案1
首先,我认为 ifcfg-eth?:? 文件中的信息太多(而且有错误信息):
1)我认为您不需要/不应该在所有这些中指定GATEWAY,至少是为了避免混淆。
2) BOOTPROTO 可能不存在,即使存在,它的值也是不正确的(它可以是“none”、“bootp”或“dhcp”)。
3) ONBOOT 永远不应该用于别名接口,我以前见过很多由此引起的麻烦。它应该始终是 ONPARENT。
4) 我认为您应该始终在 /etc/sysconfig/network 中指定默认网关,而不是在接口定义中指定。但这可能只是个人观点,没有真正的证据表明这样做更好,只是对我来说听起来更合乎逻辑。
5) 您在 NetworkManager 中看到的 VLAN20 来自 NAME 选项,因此请在配置文件中指定它,因为我认为它可能缺失。