네트워크 케이블 언플러그드 시 dhcp 클라이언트 동작

안녕하세요, 현재 w5500을 이용하여 임베디드 서버 개발 중에 막히는 부분이 있어서 문의드립니다.
(w5500 장착된 보드는 TCP server로 사용, IP할당은 DHCP server를 이용한 동적할당 사용)

아래의 두 가지 경우에 대해서 적절한 설계방향이 어떻게 되는지 도움을 주실 수 있으실까요?

  1. DHCP client 측 네트워크 케이블 언플러그드 후 다시 플러그인
  2. DHCP server re-boot

두 가지 경우 모두 DHCP client 입장에서는 일시적으로 link down될 것으로 예상되며, 2번의 경우에는 DHCP server가 재부팅됨에 따라 client IP 할당 정보가 사라진다는 점이 다릅니다.

조금 더 자세하게 말씀드리면,
DHCP client가 link down을 감지하게 되면 다시 discover/offer/request/ack의 IP할당 절차를 재수행하는 것이 맞을까요? 아니면, 이전에 할당받은 네트워크 정보를 lease time이 만료될 때까지 사용하는 것이 맞을까요?
만약에 IP할당 절차를 재수행해야 한다면 기존에 연결된 TCP client들과의 연결관리는 어떻게 해야할까요?

감사합니다.

안녕하세요 :slight_smile:

DHCP 통신은 다음과 같은 상황에 주로 일어납니다.

  • client가 IP가 필요하여 DHCP 서버에게 DISCOVER 메세지 요청시
  • Server에게 받은 IP 임대시간의 유효시간이 50% 지났을경우에 REQUEST 메세지를 요청시

등등에서 일어납니다. 자세한 내용은 DHCP 프로토콜 스펙을 확인해주시기 바랍니다.

  1. DHCP client측에서 케이블 언플러그가 되었을 때 타임아웃이 발생 후 다시 연결이 된다면 다시 DHCP Server에게 DICOVER 메세지를 보내서 IP를 할당받는 과정이 있으면 좋을것 같습니다. 타임아웃 발생 이전이라면 문제없이 통신이 계속 이루어질것입니다.

  2. DHCP server측이 reboot 되었을시 역시 타임아웃이 발생할 것이고 다시 DISCOVER 메세지를 보낸다면 정상 동작할 것입니다.

즉 ip 할당 절차를 재수행하는게 안전할 것입니다.
TCP client와 내부적으로 연결되어있다면 sever인것을 찾을 수 있는… server만 응답하는 broadcast를 보내 server의 ip를 찾아 tcp 연결을 하는 방법도 있을 수 있겠네요… 마치 DHCP discover message 같은 것을 해당 TCP server에 설계해 client들이 server 주소를 찾아 connection을 맺는 부분을 설계하시면 될 것 같습니다.