LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1615|回复: 6

网络接口的名字每次开机都变化

[复制链接]
发表于 2007-10-17 22:00:29 | 显示全部楼层 |阅读模式
网络接口是dhcp配置的。第一次开机名字是eth1, 以后每次开机增加一个数,
依次为eht2, eht3..., 现在到了eht58了, 还常出现 no IPv6 router present
这样的提示。这是怎么回事 ?
发表于 2007-10-19 09:51:43 | 显示全部楼层
我也偶尔遇到这个问题,
回复 支持 反对

使用道具 举报

发表于 2007-10-19 09:54:05 | 显示全部楼层
/etc/udev/rules.d/z25_persistent-net.rules
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-21 19:29:24 | 显示全部楼层
我的网卡的MAC地址每次开机都变化, 这可能也是网络接口变化的原因。
我的/etc/udev/rules.d/z25_persistent-net.rules文件已经有70多行了,
每行对应一个MAC地址和和一个网络接口,网络接口从eth0~eth70变化。
我改网络接口没用啊,因为下次MAC地址又变了,25_persistent-net.rules
文件有自动增加一行
回复 支持 反对

使用道具 举报

发表于 2007-10-21 23:08:33 | 显示全部楼层
mac开机变化,强悍阿,那是黑客专用网卡了哦
回复 支持 反对

使用道具 举报

发表于 2007-10-22 00:45:32 | 显示全部楼层
有些主板设计不符合规范, 驱动程序无法读取MAC地址, 所以只能临时随机分配一个. 而 udev 默认又根据MAC地址来分配接口, 所以你每次都会有一个新接口.

解决办法是自己在最前面加一条udev规则, 不用address作为识别标志, 而是改用其它某个特定参数(比如父设备的PCI地址).

udevinfo -a -p /sys/class/net/ethXX  (XX, 是你本次启动后的数字)

得到一长串信息.
  looking at device '/class/net/eth0':
    KERNEL=="eth0"
    SUBSYSTEM=="net"
    DRIVER==""
    ATTR{weight}=="16"
    ATTR{tx_queue_len}=="1000"
    ATTR{flags}=="0x1002"
    ATTR{mtu}=="1500"
    ATTR{operstate}=="down"
    ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"

    ...
    ...

  looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:02:08.0':
    [color="Red"]KERNELS=="0000:02:08.0"
    SUBSYSTEMS=="pci"

    ...
    ...

KERNELS=="0000:02:08.0"  就可以作为我们需要的父设备关键属性 ([color="Blue"]不要直接复制我的, 你机器上的肯定不是这个地址).

下面修改规则 /etc/udev/rules.d/z25_persistent-net.rules, 把下面这行作为第一条规则, 紧接着顶部的注释:

SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:02:08.0", NAME="eth0", OPTIONS+="last_rule"

应该就可以了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-27 07:31:39 | 显示全部楼层
谢谢bufferfly!果然可以了。
只是每次网络激活后,出来一条提示:no IPv6 routers persent.
我不懂IPv6, 不要它行吗?
上网用plog显示通过了认证,ip和dns都有了,但ping不通其它主机,如www.debian.org
请教这是怎么回事?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表