네트워크/네트워크 기초

네트워크 기초) 4. DHCP

마리사라 2022. 12. 14. 17:01
반응형

이번 강의는 DHCP에 대해서 알아보겠습니다.


1. DHCP

DHCP는 Dynamic Host Configuration Protocol(동적 호스트 구성 규약)의 약자로 자신의 Network에 속한 Host들에게 자동으로 IP를 설정해 주는 프로토콜입니다. 이것과 비슷한 프로토콜은 Bootp(Bootstrap Protocol)이 있습니다.

 

DHCP는 임대(Lease), 갱신(Renewal), 반환(Release)의 3가지 과정을 가지고 있습니다.

 

[1] 임대(Lease)

임대는 DHCP에서 IP 주소를 할당받는 것을 말합니다. 이것을 배정 또는 부여가 아니라 임대인 이유는 일정 기간동안 빌리는 것이기 때문입니다. 즉, 임대기간이 끝나게 되면 Host가 가지고있던 IP는 다시 DHCP로 반환되게 됩니다. 임대기간은 Host가 많지 않은 경우 8일에서 Host가 많은 경우 1~2시간으로 설정됩니다.

 

[2] 갱신(Renewal)

만약 임대기간이 1시간으로 설정되어 있다면 Host는 1시간마다 IP를 뺏기고 다시 DHCP Server에게 IP를 임대받는 과정을 하게 된다면 1시간마다 불필요한 트래픽이 발생할 것입니다. 이를 효율적으로 관리하기 위해 갱신이라는 과정이 존재합니다. 갱신은 임대기간의 50%, 87.5%때 시도하며 갱신에 성공하게 되면 그 순간부터 임대기간이 초기화됩니다.

 

예를들어 임대기간이 10시간이고 12시 정각에 임대되었다고 가정하겠습니다. Host는 50%인 5시가 되면 DHCP Server에게 갱신요청을 보내게 됩니다. 만약 DHCP Server가 응답하지 않거나 모종의 이유로 갱신에 실패하면 87.5%인 8시 45분에 갱신 요청을 보냅니다. 이때 성공하게 된다면 8시 45분부터 10시간의 임대기간이 초기화되어 18시 45분까지 IP를 사용할 수 있습니다. 만약 이때도 실패하게 된다면 10시 정각에 IP를 반환하게 되고 다시 임대받게 됩니다.

 

[3] 반환(Relase)

임대기간이 끝났거나 Host가 더이상 IP를 사용하지 않을 때 IP를 반납하는 것을 말합니다. 이떄 두 경우는 서로 다른데, 임대기간이 끝났다면 Host가 따로 무언가를 보내지 않아도 Server에서 임대기간이 끝났음을 인지하고 있기 때문에 다른 Host에게 해당 IP 줄 수 있습니다. 하지만 Host가 직접 IP를 반납한다면 DHCP Release 패킷DHCP Server에게 전송하여 본인이 해당 IP를 사용하지 않음을 알리게 됩니다.


2. DHCP 통신

 

[1] 임대

DHCP를 통해 IP를 임대할때의 통신은 Discover, Offer, Request, ACK의 4단계로 이루어지며 모든 과정은 Broadcast를 이용해 통신합니다. 

  • DHCP Discover : 출발지(Host MAC, 0.0.0.0) - 목적지(FFFF.FFFF.FFFF, 255.255.255.255)

Host가 IP를 받아오기 위해 본인의 Network에 존재하는 모든 Host들을 향해 "DHCP가 누구냐?" 라고 Broadcast합니다. 이때 Packet에는 Host의 MAC주소가 포함되어 있습니다. 만약 본인이 DHCP가 아니라면 폐기하고, DHCP라면 다음 단계로 넘어갑니다.

  • DHCP Offer : 출발지(Server MAC, Server IP) - 목적지(Host MAC, 255.255.255.255), Payload(IP, S/M, GW, DNS, 임대기간 등등)

DHCP Server가 DHCP Discover 패킷을 받게 되면 DHCP 서버는 "내가 DHCP다"라는 내용으로 Broadcast합니다. 이때 Broadcast Packet에는 Host의 Mac주소와 Host에게 제안하는 IP, Subnet Mask, Gateway Address, DNS, 임대기간등이 들어있습니다.

  • DHCP Request : 출발지(Host MAC,0.0.0.0) - 목적지(Server MAC,255.255.255.255), Payload(이전에 받은 IP, S/M, GW, DNS, 임대기간 등등)

Host가 DHCP Offer 패킷을 받게 되면 Host는 DHCP가 Server에 존재한다고 판단하고 "나 니가 준 이 IP 쓸게"라는 내용으로 Broadcast합니다. 이때까진 IP가 확정되지 않았기 때문에 출발지의 IP는 그대로 0.0.0.0입니다.

  • DHCP ACK : 출발지(Server MAC, Server IP) - 목적지(Host MAC, 255.255.255.255), Payload(이전에 보냈던 IP, S/M, GW, DNS, 임대기간 등등)

DHCP Server가 DHCP Request 패킷을 받게 되면 DHCP Server는 Request로 받은 Payload와 자신의 IP 풀을 비교하여 이상이 없다면 "그래 그거 써" 라는 내용으로 Broadcast합니다. 이 역시 Host의 IP가 확정된 것이 아니기 때문에 Broadcast입니다.

 

이렇게 4단계를 거치는 이유는 DHCP가 하나의 Network에 여러개일 수도 있습니다. 그렇기 때문에 Host는 처음에 Broadcast를 통해 자신에게 가장 잘 맞는 DHCP Server를 찾습니다. 이후 DHCP Server가 응답할 때엔 Host의 MAC Address를 포함하여 Broadcast하고, Host는 특정한 DHCP Server의 MAC Address를 향해 Broadcast합니다.

 

[2] 갱신

Host가 IP를 갱신하고 싶을 때는 2단계의 과정을 거치게 되며, 이때는 Host와 DHCP Server 서로 알고있기 때문에 Unicast로 통신합니다.

  • DHCP Request : 출발지(Host IP) - 목적지(Server IP)

Host는 Server에게 "나 이거 계속써도 될까요?" 라는 내용으로 패킷을 보내게 됩니다. 이때 Server가 패킷을 받으면 다음 단계로 넘어갑니다.

  • DHCP ACK : 출발지(Server IP) - 목적지(Host IP)

Server는 해당 IP에 문제가 없다면 Host에게 "계속 써" 라는 내용으로 패킷을 보냅니다. 이때 Server에서는 해당 IP의 임대기간을 초기화시킵니다.

 

[3] 반환

반환의 경우 Host가 직접 반환할 때만 통신이 발생합니다.

  • DHCP Release : 출발지(Host IP) - 목적지(Server IP)

Host는 Server에게 "나 이거 그만쓸게" 라는 내용으로 패킷을 보냅니다. 이때 Server의 응답은 필요치 않으며 Host는 그 즉시 IP를 삭제합니다.

 


3. DHCP 장점

[1] 신뢰성

DHCP를 쓰는 가장 큰 장점은 신뢰성입니다. IP를 직접 입력하면 오타가 있을수도 있고, Network에서 다른 Host와 IP가 충돌할 수도 있습니다. 하지만 DHCP를 사용하게 되면 DHCP Server에서 모든 IP를 관리하기 때문에 이러한 상황을 방지할 수 있습니다.

 

[2] 확장성

IP가 고정되어 있으면 C Class의 경우 한 Network당 254개의 Host만 사용이 가능합니다. 하지만 DHCP의 경우 현재 사용하지 않는 IP를 다른 Host에게 재할당해 줄 수 있기 때문에 더 많은 Host를 수용할 수 있습니다.


4. 마치며

이번 강의에서는 DHCP에 대해서 알아보았습니다. 다음에는 NAT에 대해서 알아보겠습니다.

반응형