저는 회사의 새로운 제품에 대한 새로운 테스트 장비를 프로그래밍하고 있습니다.C# 간단한 DHCP 서버, DNS 요청?
테스트 중 하나는 이더넷 테스팅이고 나는 이와 같이 테스트 할 것이라고합니다.
- 일단 제품이 이더넷을 통해 연결되면 DHCP 프로토콜을 사용하여 IP 주소를 요청합니다.
- MAC 주소를 캡처하고 확인합니다.
- IP 주소가 제품에 부여됩니다.
- 이제 제품이 "something.something.something.se"호스트 이름의 IP 주소를 요청합니다.
- 호스트 이름을 확인하고 확인해야합니다.
- DNS 서버가 호스트 이름에 대한 IP 주소를 다시 보냅니다.
- 그러면 제품이 주어진 IP 주소로 TCP 연결을합니다.
제 문제는 제품에서 DHCP 검색 메시지를 수신하고 응답하는 것입니다. 그런 다음 IP 주소에 대한 DHCP 요청 메시지를 수신합니다 (1 단계). IP 주소를 다시 보내면 제품에서 더 이상 듣지 못합니다.
내가 보낸 IP 주소로 제품을 핑 (Ping)하면 제품에 IP 주소가 수신되고 설정되었음을 알리는 응답이 나타납니다.
나는 소통을 할 수있는 UdpClient를 이용하고 있고 설정되어 있으므로
IPEndPoint ProductEndPoint = new IPEndPoint(IPAddress.Any, 0);
UdpClient host = new UdpClient();
host.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
host.Client.Bind(new IPEndPoint(IPAddress.Parse("192.168.0.1"), 67)); //192.168.0.1 is ip address of PC
for(int i = 0; i < 30; i++)
{
if (host.Available > 0)
{
byte[] Data = host.Receive(ref ProductEndPoint);
// Do something with the data
}
else
Thread.Sleep(1000);
}
처럼 어떤 생각을 내가 다시 4 단계에 대한 응답을하지 왜?
EDIT DNS로 전송되는 IP 주소를 확인한 결과 192.168.0.1 (0.0.0.0)으로 변경되었지만 변경 사항이 없습니다. 내가 말했듯이 제품에 IP 주소를 알 수 있기 때문에 핑을 할 수는 있지만 DNS 주소에 문제가있는 것으로 보입니다. 제품에 빨간색 표시등이 깜박이면 DNS 요청이 실패했음을 알리는 것으로 확인되었습니다.
프로그래밍 질문이 여기에 표시되지 않습니다. DHCP 코드가 분명히 IP를 반환하고 장치가이를 사용하고 있습니다. 나머지는 단지 DNS 결의안입니다. DHCP 응답으로 DNS 서버를 다시 보냅니 까? – Joe
미안 나는 점심 먹으러 가기 전에 서두르려고했다. 아, DNS 서버가 DHCP 응답으로 들어가야합니까? 나는 RFC 문서 중 일부를 살펴 보았지만 IP 주소 요청에 대한 응답으로 DNS 서버를 보내는 것에 대해서는 아무것도 보지 못했습니다. – Gaz83
SteenT에 대한 내 답변보기 – Gaz83