私は現在、Linuxを基本システムとして使用する組み込みシステムで作業しています。技術的な理由から、ネットワークアダプタのMACアドレスに基づいて固定インターフェイス名を設定する必要があります。 udevにこの設定行を追加すると、nic0、nic1という2つのネットワークアダプタが作成されます。これはうまくいきます。名前は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サーバーも正しく設定されます。
起動時にアダプタが設定されないのはなぜですか?ここで何が起こっているのでしょうか?
ありがとうございます!