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.

또한 호스트 이름으로 마더보드를 핑할 수 없으므로 커널이 첫 번째 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는 변경되지 않으며 내 보드는 관련 네트워크 설정을 가져오고 해당 호스트 이름이 확인됩니다.

답변2

부팅 프로세스 및 배포 등을 어떻게 설정했는지 모르겠습니다. 이것이 내가 본 것입니다 resolv.conf.

cat /etc/resolv.conf 
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad
search lan

첫째, Fedora 38+에서는 기본적으로 resolv.conf에 의해 관리됩니다. 또한 NetworkManager 버전에 따라 다른 옵션을 사용할 /etc/NetworkManager/NetworkManager.conf수도 있습니다 ./etc/NetworkManager/conf.d/dns=...

또한 해당 텍스트를 기반으로 파일 링크 여부가 적어도 에 의해 동적으로 수행되지 않는 것처럼 들립니다 resoved. 따라서 설정에서 심볼릭 링크로 설정할 수 있습니다.

전체 부팅 후 다시 연결하려면 아마도

nmcli connection down int
nmcli connection up int

또는

nmcli nm enable false
nmcli nm enable true

또는 그런 것.

관련 정보