设置固定、可预测的网络接口名称时未设置 DNS 服务器

设置固定、可预测的网络接口名称时未设置 DNS 服务器

我目前正在做一个嵌入式系统,使用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 服务器也会正确设置。

我做错了什么,导致适配器在启动时没有设置?这里发生了什么?

谢谢!

相关内容