udhcpc: DHCP 서버가 호스트 이름 대신 IP 주소를 제공하는 경우 DHCP 옵션 66 변수 tftp에 "오류"가 포함됩니다.

udhcpc: DHCP 서버가 호스트 이름 대신 IP 주소를 제공하는 경우 DHCP 옵션 66 변수 tftp에 "오류"가 포함됩니다.

나는 다음을 사용하는 임베디드 Linux를 개발 중입니다.바쁜 상자그리고우즈베키스탄(부분바쁜 상자)를 DHCP 클라이언트로 사용합니다.

DHCP 옵션 66에서 FTP 서버를 제공하도록 DHCP 서버를 구성하는 경우 해당 옵션에 호스트 이름(유효한 DNS 이름일 수도 있음?!)이 포함되어 있는 한 모든 것이 정상입니다(즉, tftp변수에 구성된 값이 포함되어 있음). /etc/udhcpc.script옵션에 IP 주소가 포함되어 있으면 변수에 tftp"bad" 값이 포함됩니다.

이 행동의 이유와 의미는 무엇입니까?

udhcpc 문서(https://udhcp.busybox.net/README.udhcpc,https://udhcp.busybox.net/) Google에서도 유용한 결과를 얻지 못했습니다.

RFC2132이 옵션에는 IP 주소를 금지하는 제한 사항이 없습니다.

udhcpc의 옵션 66에서 IP 주소를 얻을 수 있는 방법이 있습니까?

답변1

업데이트: 별도의 TFTP 서버를 사용할 때는 일반적으로 옵션 150(또는 66)이 필요하지 않습니다.원래서아시아 주소대지DHCP 서버에서 구성할 수 있다면 충분할 것입니다. 끝을 참조하세요.

RFC 5859우리에게 말해주세요:

추상적인

이 메모는
"TFTP 서버 주소" 옵션의 현재 사용법을 문서화합니다. 현재 사용중인 옵션번호는 150 입니다.

[...]

DHCP 헤더의 "sname" 필드를 통해 이 서버를 검색하는 데 일반적으로 허용되는 두 가지 방법이 있습니다.[RFC2131]및 "TFTP 서버 이름" 옵션(66)[RFC2132]. 그러나 두 정보 소스 모두 TFTP 서버의 호스트 이름을 포함합니다. 그런 다음 호스트 이름을 IP 주소로 변환해야 합니다. 이를 달성하는 일반적인 방법은 DNS [RFC1034]입니다.

[...]

  1. TFTP 서버 주소 옵션 정의

TFTP 서버 주소 옵션은 DHCP 옵션[RFC2132]입니다. 이 옵션에는 클라이언트가 사용할 수 있는 하나 이상의 IPv4 주소가 포함되어 있습니다. 이 옵션의 현재 용도는 TFTP를 통해 VoIP 서버에서 구성을 다운로드하는 것입니다. 그러나 이 옵션은 VoIP 구성 서버에 접속하는 것 이외의 목적으로도 사용될 수 있습니다.

이 옵션의 형식은 다음과 같습니다.

Code   Len   IPv4 Configuration Server Address(es)
+-----+-----+-----+-----+-----+-----+
| 150 |  n  |     IPv4 address      | ...
+-----+-----+-----+-----+-----+-----+

              Figure 1

최소 옵션 길이(n)는 4입니다.

[...]

따라서 귀하의 질문에 대해 제가 드릴 수 있는 답변은 다음과 같습니다. 아니요, 옵션 66을 전혀 사용할 수 없습니다. 이를 위해서는 DHCP 옵션 150을 지원해야 합니다.또는이것서아시아 주소필드는 TFTP 서버를 가리키는 "다음 서버" 구성이지만 이 RFC에서는 일부 제한된 DHCP 서버가 이 필드에만 자신을 반환한다고 언급합니다.


업데이트(해결책이 생각보다 간단할 수 있음을 명확히 하기 위해):

만약 맞다면서아시아 주소(즉, DHCP 서버 자체와 다름)은 DHCP 서버(예: ISC dhcp 또는 busybox 자체)에서 지원됩니다.우즈베키스탄), 물론 이미 지원됩니다.우즈베키스탄고객:

환경 변수의 매개변수는 다음과 같습니다.

$HOME     - The set $HOME env or "/"

[...]

siaddr        - The bootp next server option

[...]

서아시아 주소지금까지 나는 데비안 네트워크 설치를 직접 부팅하는 것과 같이 별도의 TFTP 서버를 사용하여 DHCP를 통해 x86 시스템을 부팅하는 데 이를 사용해 왔습니다. 옵션 66이나 150을 모르거나 필요하지 않습니다.

관련 정보