PXE 起動時に NetworkManager を使用して DNS IP を取得できません。

PXE 起動時に NetworkManager を使用して DNS IP を取得できません。

NetworkManagerを唯一のネットワークデーモンとして使用し、PXE経由でボードを起動するカスタムBuildrootを構築しました。問題は、/etc/resolv.conf実際のDNS IPとドメインが欠落していることです。カーネルが起動すると、DHCP要求を送信し、DHCPサーバーは必要なすべてのネットワーク設定を含む応答を送信します。

[   8.278182] Sending DHCP requests ..., OK
[   16.272817] IP-Config: Got DHCP answer from X.X.X.X, my address is X.X.X.X
[   16.280985] IP-Config: Complete:
[   16.284623]      device=eth1, hwaddr=X:X:X:X:X:X, ipaddr=X.X.X.X, mask=255.255.0.0, gw=X.X.0.1
[   16.295317]      host=X.X.X.X, domain=*my-domain*.com, nis-domain=(none)
[   16.302670]      bootserver=0.0.0.0, rootserver=X.X.X.X, rootpath=
[   16.302692]      nameserver0=X.X.1.30, nameserver1=X.X.1.100

しかし、/etc/resolv.conf行方不明です。

# cat /etc/resolv.conf
# This is /run/systemd/resolve/resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
...

nameserver 1.1.1.1
nameserver 8.8.8.8
search .

/proc/net/pnpによると、NFSルートを使用するときに必要な実際のネームサーバーとドメインがあります。文書

# cat /proc/net/pnp
#PROTO: DHCP
domain my-domain.com
nameserver X.X.1.30
nameserver X.X.1.100
bootserver 0.0.0.0

ただし、/etc/resolv.confリンクする代わりにリンクしてください/run/systemd/resolve/resolv.conf

また、ホスト名でマザーボードをpingできないため、カーネルが最初のDHCP要求を送信したときにそれを保存するFSがないため、DNSサーバーでさえマザーボードIPとホスト名を含むレコードを生成しないと結論付けることができます。ホスト名。 PXEの起動中にカーネルコマンドラインパラメータでホスト名を設定できることはわかっていますが、Linuxでは「hostname」コマンドを使用して設定したいと思います。

DHCP クライアントを使用するには、この systemd-networkd 構成を使用します。

# cat /etc/systemd/network/80-dhcp.network               
[Match]
Name=eth*

[Network]
DHCP=yes

[DHCP]
UseDomains=true
UseHostname=false
ClientIdentifier=mac
CriticalConnection=true

この構成では、systemd-networkd は内部 DHCP クライアントを起動して別の DHCP 要求を送信し、/etc/resolv.conf実際のネットワーク設定を入力します。すべてがうまく機能しているようで、単にsystemd-networkdを再起動してDHCPリースを更新できますが、systemd-networkdを削除してNetworkManagerを唯一のネットワークデーモンとして使用したいと思います。

だから私はNetworkManagerがボードのホスト名で始まり、ネットワーク設定を受信して​​入力するときに別のDHCP要求を送信すると仮定しましたが、/etc/resolv.confそうではなく、ipv4.ethインタフェースのメソッドで手動でそれを行います。

設定されたインターフェイスからDHCP要求を送信するようにNetworkManagerをトリガする方法はありますか?より一般的な質問は、NetworkManagerがPXEブートで使用するのに適していますか、それとも別のネットワークユーティリティに切り替える必要がありますか?

修正する:

解決策dhcpcd起動後、パラメータを使用して手動で起動します。

dhcpcd --nooption host_name --clientid -h $(hostname) -1

nfs-client.target と network.target の後、systemd サービスでこのコマンドを実行します。 NFSが依存するイーサネットインターフェイスのIPは変更されず、マイボードは関連するネットワーク設定を取得し、そのホスト名が解決されます。

ベストアンサー1

解決策起動後、次のパラメータを使用してdhcpcdを手動で起動します。

dhcpcd --nooption host_name --clientid -h $(hostname) -1

nfs-client.target と network.target の後、systemd サービスでこのコマンドを実行します。 NFSが依存するイーサネットインターフェイスのIPは変更されず、マイボードは関連するネットワーク設定を取得し、そのホスト名が解決されます。

おすすめ記事