DHCP 란?
Dynamic Host Configuration Protocol
동적 호스트 구성 프로토콜
DHCP은 호스트 IP 구성 관리를 단순화하는 IP 표준 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공
DHCP를 사용하면 사용자가 직접 IP 주소, 서브넷 마스크, 게이트웨이, DNS 정보를 직접 작성할 필요 없이 자동으로 할당받음
-> 별도의 설정 작업이 없기 때문에 사용자와 관리자 모두 편리하게 인터넷 접속이 가능하고 사용하지 않는 IP 정보는 회수되어 한정된 IP 주소를 효율적으로 사용할 수 있고 중복 IP 할당 문제도 예방할 수 있음.
DHCP의 경우 IP를 할당해 주는 것이 임대
이 임대에는 임대 기간이 있는데, 말 그대로 해당 IP 주소를 사용할 수 있는 기간을 말한다. 즉, 임대 기간이 끝나면 해당 IP 주소는 DHCP 주소 풀로 반환이 됨
임대 시간의 경우 사용 장소에 따라서 시간이 달라짐. 유동적으로 IP를 임대해주는 경우는 짧게 고정적인 경우는 길게하는 형식으로 시간 변경
DORA 라고 불리는 DHCP 패킷의 4단계 흐름
DHCP Discover : DHCP 클라이언트가 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트로 전송
DHCP Offer : DHCP Discover를 수신한 DHCP 서버는 클라이언트에 할당할 IP주소와 서브넷, 게이트웨이, DNS 정보, Lease Time 등의 정보를 포함한 DHCP 메시지를 클라이언트로 전송
DHCP Request : DHCP 서버로부터 제안받은 IP 주소와 DHCP 서버 정보를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송
DHCP Acknowledgement : DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상적으로 수신했다는 응답을 전송
이렇게 4단계로 되어 있는 이유는, 클라이언트에 연결된 네트워크에 DHCP 서버가 여러 개일 수도 있기 때문이다. 즉, 디스커버를 한번만 날려도, 오퍼는 여러개 날아올 수 있다. 그중에 하나를 골라서 정확히 리퀘스트를 던지면, 그제서야 최종적으로 Ack 처리하며 IP를 사용 할 수 있게 되는 것이다.
IP 주소를 임대 후 갱신하기 까지의 과정
첫 임대 후 임대 시간의 50%가 지나면 DHCP 클라이언트에서 DHCP 서버로 DHCP Request를 이용하여 갱신을 요청하고 서버는 DHCP Ack를 이용하여 요청에 대한 응답을 한다.
50%가 지나서 요청을 보냈을 때 어떠한 사정 때문에 갱신에 실패하게 되면 75%의 시간이 흐른 뒤 다시 한 번 요청하게 되고 이마저도 갱신에 실패하게 되면 IP를 반납하고 다시 처음부터 임대를 진행한다.
임대 기간이 끝났거나, IP 주소를 더 이상 사용하지 않는다면 DHCP 서버에 IP 주소를 반환하게 되는데, 이것을 반환(Release)이라고 함
임대 시간이 모두 지낫는데 클라이언트와 DHCP 서버끼리 통신이 되지 않을 경우 DHCP는 그냥 반환 받은것으로 처리
일반적으로 DHCP 메시지는 브로드캐스팅되기 때문에 단말과 DHCP 서버는 반드시 동일 서브넷 상에 위치해야함 그 이유는 라우터가 브로드캐스트 패킷을 다른 인터페이스로 전달하지 않기 때문에 단말이 송신한 DHCP 메시지(브로드캐스트 패킷)가 라우터를 통해 다른 서브넷에 위치한 DHCP 서버로 전달될 수 없음.
DHCP Relay Agent의 가장 핵심적인 기능은 단말이 송신하는 DHCP 브로드캐스트 패킷을 유니캐스트로 변환하여 DHCP 서버에 전달하는 것
이 문제를 해결하기 위해 DHCP Relay Agent라는 개념이 생겨났음
모든 네트워크에 DHCP 서버가 있는 경우
DHCP 서버를 다른 네트워크에 보내는 경우
DHCP relay agent 를 사용했을 때 DHCP 메시지
(그림의 화살표 방향과 유니 캐스트가 살짝 다른것같음)
참고자료
https://www.netmanias.com/ko/post/blog/5348/dhcp-ip-allocation-network-protocol/understanding-the-basic-operations-of-dhcp
https://thebook.io/007046/ch07/04/04-02/