내 Linux 시스템의 IPv4 인터페이스에 개인 주소와 APIPA(링크 로컬) 할당 주소가 모두 있는 이유는 무엇입니까?

내 Linux 시스템의 IPv4 인터페이스에 개인 주소와 APIPA(링크 로컬) 할당 주소가 모두 있는 이유는 무엇입니까?

Linux 커널 4.19.94+에서는 아래와 같이 인터페이스 eth0에 할당된 IPv4 개인 주소와 링크 로컬 주소를 볼 수 있습니다. APIPA(자동 개인 IP 주소 지정) IP 주소(169.254.0.0/16)는 DHCP 서버가 IP 주소를 할당하지 않는 경우에만 할당되는 것으로 알고 있습니다.

빌 매닝에 따르면특수 목적 IPv4 주소 블록 사양 문서화:

169.254.0.0/16은 DHCP 서버를 찾을 수 없을 때 엔드포인트 자동 구성에 사용되는 IP 범위로 지정되었습니다. 따라서 네트워크 운영 및 관리자는 경로 광고나 패킷 전달이 미디어 경계를 넘지 않도록 적극적으로 노력해야 합니다. 이는 인터넷과 IP 프로토콜을 사용하는 모든 개인 네트워크에 해당됩니다. 엔드포인트 관리자는 일부 공급업체가 이 접두사를 자동으로 구성하여 노드 전달 테이블에 추가한다는 점에 유의해야 합니다. 이로 인해 라우터 검색이나 RIP와 같은 더 이상 사용되지 않는 라우팅 프로토콜을 실행하는 사이트에 문제가 발생합니다.

위의 정보를 바탕으로 누군가 다음 질문을 명확히 해 주실 수 있습니까?

DHCP 서버가 IPv4 주소를 성공적으로 할당하면 Linux 버전 4.19.94에 169.254.0.0/16이 할당되는 원인은 무엇입니까?

이는 브로드캐스트 메시지를 보낼 때 문제를 일으키는 것으로 밝혀졌습니다.
인터페이스에 개인 IP 주소를 할당할 때 링크-로컬 할당을 비활성화하려면 어떻게 해야 합니까?

특히 SSDP 프로토콜이나 기타 서비스 프로토콜을 사용할 때 이러한 할당으로 인해 네트워크 패킷이 중복되거나 네트워크 오버헤드가 증가하는지 여부입니다.

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq qlen 1000
    link/ether 00:1c:2b:13:06:2f brd ff:ff:ff:ff:ff:ff
    inet 169.254.196.187/16 brd 169.254.255.255 scope link eth0
       valid_lft forever preferred_lft forever
    inet 192.168.0.20/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::21c:2bff:fe13:62f/64 scope link 
       valid_lft forever preferred_lft forever

답변1

위 동작은 구성의 네트워크 섹션에 "LinkLocalAddressing=yes"를 할당했기 때문에 발생합니다 systemd/network/10-eth0.network.

이는 분명히 시스템 네트워킹의 버그입니다. 이 버그에 대한 자세한 내용은 여기에서 볼 수 있습니다. https://github.com/systemd/systemd/issues/13316;

현재 시스템 버그로 인해 DHCP 서버를 찾을 수 없는 경우 IPV4LL(IPV4 링크 로컬 주소) 주소를 할당할 수 없습니다.

설정된 경우 LinkLocalAddressing=fallbackDHCP 클라이언트는 IPV4LL 주소가 할당된 후 DHCP 서버 수신을 중지합니다. 이는 RFC 3927 (Ref https://tools.ietf.org/html/draft-ietf-dhc-dna-ipv4-01).DHCP 서버가 다시 온라인 상태가 되면 이전에 할당된 IPV4LL 주소가 삭제되지 않고 DHCP 서버의 새 주소가 클라이언트에 할당되지 않음을 의미합니다.

관련 정보