我目前正在做一个嵌入式系统,使用linux作为底层系统。由于技术原因,我必须根据网络适配器的 MAC 地址设置固定的接口名称。通过为 udev 添加此配置行,我有 2 个网络适配器,名为 nic0、nic1。这工作得很好,命名总是相同的,基于 mac 地址:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:11:11:11:11:11", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="nic0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="22:22:22:22:22:22", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="nic1"
nic0 的 IP 配置是静态的。 nic1 的 IP 配置由 DHCP 服务器提供。请参阅“/etc/network/interfaces”:
auto nic0
iface nic0 inet static
address 10.0.1.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8
auto nic1
iface nic1 inet dhcp
不幸的是,重新启动系统后,根本没有设置 dns 服务器(不是静态的,不是 DHCP 服务器提供的)。这确实很奇怪,因为 DHCP 服务器提供的其他信息已设置(例如 IP 地址、子网掩码、广播等)。
重新启动后,文件“/etc/resolv.conf”为空。
如果我再次删除/注释掉 udev 的可预测接口名称,适配器被命名为 eth0、eth1(尽管是任意分配)并且一切正常,dns 服务器由 DHCP 服务器提供的值设置。
如果我在启动系统后启动“dhclient”,DNS 服务器也会正确设置。
我做错了什么,导致适配器在启动时没有设置?这里发生了什么?
谢谢!