dhclient -v 출력의 LPF 및 소켓/폴백은 무엇입니까?

dhclient -v 출력의 LPF 및 소켓/폴백은 무엇입니까?

다음은 명령의 일부 샘플 출력입니다.

$ sudo dhclient -v
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:15:5d:5a:e4:c5
Sending on   LPF/eth0/00:15:5d:5a:e4:c5
Listening on LPF/dummy0/6e:0b:72:f9:83:f0
Sending on   LPF/dummy0/6e:0b:72:f9:83:f0
Listening on LPF/bond0/82:a2:7e:03:69:19
Sending on   LPF/bond0/82:a2:7e:03:69:19
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x3115634c)
DHCPDISCOVER on dummy0 to 255.255.255.255 port 67 interval 3 (xid=0x1ab3dc37)
DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 3 (xid=0xcea7a32d)

"LPF" 또는 "소켓/대체"가 무엇인지에 대한 문서를 찾을 수 없습니다.
설명을 좀 해주실 수 있나요? 이에 대한 추가 정보는 어디서 찾을 수 있나요?

링크https://www.isc.org/software/dhcp/별로 도움이 되지 않습니다.

답변1

분명히 LPF는 Linux 패킷 필터를 나타냅니다.https://gitlab.isc.org/isc-projects/dhcp/-/blob/master/common/lpf.c

다른 맥락에서는 다음으로도 알려져 있습니다.Linux 소켓 필터링 또는 Berkeley 패킷 필터.

DHCP 클라이언트는 브로드캐스트 UDP 패킷을 보내고 받을 수 있어야 하며 네트워크 인터페이스에는 구성된 IP 주소가 반드시 필요한 것은 아닙니다. 또한 여러 인터페이스가 있는 시스템의 인터페이스가 아닌 패킷을 수신하는 특정 네트워크 인터페이스에 네트워크 구성이 할당되도록 패킷이 어떤 인터페이스를 통과할지 신경 써야 합니다.

패킷 필터링 API(예: Linux의 LPF)는 DHCP 소프트웨어가 운영 체제 네트워크 스택에 다음과 같이 알리는 가장 유연하고 효율적인 방법입니다. "내 네트워크 트래픽 요구 사항이 약간 특이하기 때문에 원시 패킷 소켓을 사용할 예정이지만 여전히 사본을 받고 싶지 않습니다패킷당네트워크 인터페이스를 통해 도착하는 패킷 - 특정 포트 번호의 UDP 패킷입니다. "

LPF 또는 유사한 패킷 필터 API를 사용할 수 없는 경우 DHCP 소프트웨어는 표준 네트워크 소켓 API 및 다양한 확장, 특히 소켓 옵션에 의존해야 합니다. 그러나 이는 ISC DHCP 제품군이 지원하는 모든 운영 체제에서 균일하게 지원되지는 않습니다.ISC DHCP의 소켓 코드는 상대적으로 복잡합니다.그리고 #ifdefs로 가득 차 있습니다.

패킷 필터 API나 특정 소켓 옵션을 모두 사용할 수 없는 경우 호스트에 네트워크 인터페이스가 하나만 있는 경우에만 DHCP 제품군이 올바르게 작동할 수 있습니다.

#if !defined(SO_BINDTODEVICE) && !defined(USE_FALLBACK)
    /* Make sure only one interface is registered. */
    if (once) {
        log_fatal ("The standard socket API can only support %s",
               "hosts with a single network interface.");
    }
    once = 1;
#endif

패킷 필터링 API를 사용할 때 ISC DHCP 제품군은 또한대체 소켓표준 웹 소켓 API를 사용합니다. 수신 측에서 폴백 소켓은 도착하는 모든 트래픽을 삭제합니다. 일부 패킷 필터링 API는복사들어오는 트래픽의 양과 운영 체제가 DHCP에 사용되는 UDP 포트가 닫혀 있다고 생각하지 않도록 일반 소켓이 있어야 하며, 이로 인해 수신된 유니캐스트 DHCP 패킷에 대해 ICMP 오류 메시지가 전송됩니다(예: 기존 플러시 활동) 임대).

송신측에서는 폴백 소켓의 사용이 덜 명확합니다. 더 많은 정보를 알고 있는 사람이 있으면 이 답변을 편집하거나 직접 추가하세요.

관련 정보