AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 401320
Accepted
Banjer
Banjer
Asked: 2012-06-23 05:33:25 +0800 CST2012-06-23 05:33:25 +0800 CST 2012-06-23 05:33:25 +0800 CST

eth0 和 eth1 都在启动时分配了相同的 IP

  • 772

我在 Sun Fire x4140 上有一个物理 SLES 11 SP2 服务器,它在重新启动时给我带来网络问题。NIC 是板载的。

引导期间网络似乎成功,但网络服务(如 nfs)却严重失败。这是因为 eth0 和 eth1 都接收相同的配置并且都被 ifup-ed。一旦一切都超时并且我在控制台,ifconfig 显示 eth0 和 eth1 已启动并使用相同的 IP 运行。尝试 ping 该子网中的任何内容都失败。重新启动网络服务可解决此问题。

根据 MA​​C 地址,eth0 是应该配置为主网卡的正确网卡。

问题:是什么导致 eth1 使用与 eth0 相同的配置?

我没有为 eth1 设置配置脚本:

banjer@harp:~> ls -la /etc/sysconfig/network/
total 104
drwxr-xr-x 6 root root  4096 Jun 11 12:21 .
drwxr-xr-x 6 root root  4096 Apr 10 09:46 ..
-rw-r--r-- 1 root root 13916 Apr 10 09:32 config
-rw-r--r-- 1 root root  9952 Apr 10 09:36 dhcp
-rw------- 1 root root   180 Jun 11 12:21 ifcfg-eth0
-rw------- 1 root root   180 Jun 11 12:21 ifcfg-eth3
-rw------- 1 root root   172 Feb  1 08:32 ifcfg-lo
-rw-r--r-- 1 root root 29333 Feb  1 08:32 ifcfg.template
drwxr-xr-x 2 root root  4096 Apr 10 09:32 if-down.d
-rw-r--r-- 1 root root   239 Feb  1 08:32 ifroute-lo
drwxr-xr-x 2 root root  4096 Apr 10 09:33 if-up.d
drwx------ 2 root root  4096 May  5  2010 providers
-rw-r--r-- 1 root root    25 Nov 16  2010 routes
drwxr-xr-x 2 root root  4096 Apr 10 09:36 scripts

附带说明一下,eth3 还配置了不同子网中的 IP,但这没有造成任何问题。仅供参考,正在使用的内核模块是forcedeth.

banjer@harp:~> sudo cat /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='172.21.64.25/20'
MTU=''
NAME='MCP55 Ethernet'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'
ONBOOT="yes"

这是 eth3,以备不时之需:

banjer@harp:~> sudo cat /etc/sysconfig/network/ifcfg-eth3
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='172.11.200.4/24'
MTU=''
NAME='MCP55 Ethernet'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'
ONBOOT="yes"

也许与 udev 有关? 70-persistent-net-rules对我来说看起来不错,但我可能不完全理解。

banjer@harp:~> cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# PCI device 0x1077:0x3032 (qla3xxx)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c1:dd:0e:34:6c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"

关于什么会导致这种情况的任何其他想法?

更新 1

根据建议,我为所有其他未使用的 NIC(eth1 和 eth2)提供了配置,例如这里是 eth1:

banjer@harp:/etc/sysconfig/network> sudo cat ifcfg-eth1
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME='MCP55 Ethernet'
NETMASK='255.255.255.0'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='off'
ONBOOT='no'
USERCONTROL='no'

并将具体添加HWADDR到实际插入的 NIC(eth0 和 eth3)。在测试重启期间,我看到网络按预期出现,并且 eth1 和 eth2 按预期显示“已跳过”。然而,eth1 仍然会随着 eth0 的配置一起出现。

我设置udev_log="debug"了/etc/udev/udev.conf,现在我在/var/log/messages. 这是 的粘贴,grep eth1 /var/log/messages但与其他 eth 的 grep 相比,我看不出有什么突出之处。

更新 2

认为这是一个 udev 问题,我进行了更改/lib/udev/rules.d/75-persistent-net-generator.rules并做了rm /etc/udev/rules.d/70-persistent-net.rules.

# device name whitelist
#KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
KERNEL!="eth[03]|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"

重新启动后,这正是我想要的(为 eth0、eth3 生成规则),但它没有解决问题。eth1 仍然被提出。有没有办法调试整个启动过程,例如strace?我不知道这是从哪里来的。

作为创可贴,我添加了一个 rc 脚本以在引导过程的后期重新启动网络。

linux networking udev sles sles11
  • 4 4 个回答
  • 7513 Views

4 个回答

  • Voted
  1. cas
    2012-06-25T18:42:56+08:002012-06-25T18:42:56+08:00

    你说你没有 eth1 的配置脚本。为什么不?是否应该配置?如果是,那么它应该拥有什么 IP。静态分配或DHCP?

    顺便说一句,这些是您需要考虑的问题,不一定要在这里回答。

    尝试为 eth1 创建一个配置,即使它只是一个带有ONBOOT="no"的最小配置,如果没有配置文件,suse 可能会做一些疯狂的默认自动魔术废话。

    • 2
  2. fukawi2
    2012-06-25T18:48:54+08:002012-06-25T18:48:54+08:00

    使配置文件更具体应该有所帮助。将以下指令添加到您的 ifcfg-ethX 文件中:

    DEVICE=eth0
    HWADDR=00:18:4f:8d:85:4a
    

    冲洗、起泡、重复 eth3 等

    您也可以(应该?)为 eth1 等添加配置文件:

    DEVICE=eth1
    HWADDR=00:18:4f:8d:85:4b
    ONBOOT=no
    
    • 2
  3. d34dh0r53
    2012-06-25T18:36:57+08:002012-06-25T18:36:57+08:00

    尝试添加:

    HWADDR='00:18:4f:8d:85:4a'
    

    到/etc/sysconfig/network-scripts/ifcfg-eth0。您可能还想创建一个ifcfg-eth1包含如下内容的:

    DEVICE='eth1'
    BOOTPROTO='none'
    HWADDR='00:18:4f:8d:85:4b'
    USERCONTROL='no'
    ONBOOT='yes'
    

    至少在 RHEL 上,它只会调出没有 IP 配置的界面,并且网络初始化脚本在 SuSE 11 上看起来很相似。关于 SuSE 网络配置的另一个解决方案是用类似的70-persistent-net.rules东西清除:

    cat < /dev/null > /etc/udev/rules.d/70-persistent-net.rules
    

    这将清除 udev 规则并告诉 init 使用 ifcfg-eth* 文件进行接口识别。

    • 1
  4. Best Answer
    Banjer
    2012-06-27T07:30:45+08:002012-06-27T07:30:45+08:00

    我无法确定两个 NIC 在启动时配置相同的 IP 和子网的谜团背后的原因。

    然而,该问题的最终解决方案是将电缆从第一个 NIC 移至第二个 NIC,即从 eth0 移至 eth1。然后我配置了 ifcfg-eth1 和“未配置的”ifcfg-eth0。现在我的网络和网络相关服务完美运行。

    我感觉它可能是forcedeth模块或 BIOS 问题,但我不会再花时间在它上面,因为这些天我们正在使用完全不同的硬件构建服务器并从 SLES 迁移到 CentOS,所以我不要指望问题再次出现。

    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 有什么软件可以模拟局域网?

  • 保护新的 Ubuntu 服务器 [关闭]

  • 带宽利用工具?[关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve