커널 버전 5.15를 실행하는 Linux 상자가 있습니다. systemd 버전 250.5+를 설치하고 물리적 이더넷 포트에서 DHCP 서버를 실행하도록 구성했습니다. 오늘 최신 버전을 실행하는 Raspberry Pi가 있습니다. Raspberry Pi를 이더넷 포트에 직접 연결하면 Pi가 IP 주소를 얻고 두 장치가 정상적으로 통신할 수 있습니다. 관리되지 않는 스위치를 2개 사이에 직접 배치하면 DHCP가 작동하지 않고 Raspberry Pi가 IP 주소를 얻을 수 없습니다. 내 홈 라우터와 다른 컴퓨터 간에 스위치를 사용할 수 있기 때문에 스위치가 작동한다는 것을 알고 있습니다. 스위치 없이도 작동하고 스위치는 다른 장치와도 작동하는데 스위치를 사용할 때 systemd networkd의 DHCP 서버가 실패하는 이유는 무엇입니까?
systemd-networkd의 DHCP 서버 기능에 대한 문서에는 분명히 누락된 내용이 없습니다. https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html
이것은 DHCP 서버에 사용하는 systemd 네트워크 구성 파일입니다.
cat /etc/systemd/network/eth0.network
[Match]
Name=eth0
Type=ether
[DHCPV4]
DUIDType=link-layer
ClientIdentifier=mac
[Network]
Address=172.1.16.1/24
DHCPServer=yes
#IPMasquerade=ipv4
[DHCPServer]
PoolOffset=1
PoolSize=4
답변1
링크 속도를 100Mb/s로 설정해야 한다는 사실이 밝혀졌습니다. 다음 명령을 실행하고 클라이언트 연결을 끊었다가 클라이언트를 스위치에 다시 연결하면 DHCP가 스위치를 통해 작동합니다.
ethtool -s eth0 speed 100 duplex full autoneg off