본문 바로가기
컴퓨터 지식창고

DHCP 프로토콜의 개념과 동작원리

by 재미보장 2021. 12. 13.

이번포스팅에서는 인터넷 통신 과정에 사용되고 있는 DHCP 프로토콜에 대한 기본개념과 동작원리에 대하여 살펴보겠습니다. 

DHCP 프로토콜의 개념

DHCP는 Dynamic Host Configuration Protocol의 약자로 이름을 그대로 풀면 호스트(서버)에서 보유하고 있는 IP를 유동적으로 관리하는 프로토콜이 되겠습니다. 다시 말해 IP 자동 할당과 분배 기능이죠.

 

우리가 ISP에서 할당 받는 아이피 주소는 ISP의 DHCP 서버의 일정 대역에서 자동으로 부여 받는 IP로 이 아이피 주소는 유동적입니다. ISP에서 이렇게 유동 IP로 연결하는 이유는 바로 IP의 갯수가 유한하기 때문입니다. 우리가 사용하는 인터넷 프로토콜은 IPv4로 4,294,967,296개의 IP 갯수를 가지고 있습니다.

 

IPv4를 디자인 했을 당시에는 현재처럼 많은 장치들이 인터넷에 연결될 것이라는 걸 고려하지 않았고 전세계에 스마트폰등의 휴대 장치, 인터넷 사물 장치(IoT)등이 연결되어 장치마다 IP를 하나씩 할당하게 되면 IP의 관리 문제도 있고 그중 사용하지 않는 장치가 있는 경우에 IP가 낭비되기 때문에 이러한 문제를 해결하기 위해 고안된 것이 바로 DHCP 입니다.

DHCP의 동작원리

DHCP 서버는 일정한 IP 대역을 가지고 있고 네트워크에 연결된 장치가 IP를 필요로 하는 경우 제한된 대역 안에서 IP를 발급해 주고 발급해준 IP를 일정 시간동안 사용하지 않는 경우에는 다시 IP를 회수하여 다른 장치에서 요청이 있을때 발급해 줍니다. 이렇게 DHCP 임대시간(DHCP Lease Time)을 적용해 유동적으로 IP를 관리해서 제한된 자원을 효율적으로 관리하고 분배할 수 있게 하는 역할을 하는 것입니다. 구체적으로 단계별로 설명하겠습니다.

1) DHCP Discover

  • 메시지 방향: 단말 -> DHCP 서버
  • 브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF)
  • 의미: 단말이 DHCP 서버를 찾기 위한 메시지입니다. 그래서 LAN상에(동일 subent상에) 브로드캐스팅을 하여 "거기 혹시 DHCP 서버 있으면 내게 응답 좀 해 주세요~"라고 단말이 외칩니다.
  • 주요 파라미터
    • Client MAC: 단말의 MAC 주소
2) DHCP Offer
  • 메시지 방향: DHCP 서버 -> 단말
  • 브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF)이거나 유니캐스트일수 있습니다. 이는 단말이 보낸 DHCP Discover 메시지 내의 Broadcast Flag의 값에 따라 달라지는데, 이 Flag=1이면 DHCP 서버는 DHCP Offer 메시지를 Broadcast로, Flag=0이면 Unicast로 보내게 됩니다.
  • 의미: DHCP 서버가 "저 여기 있어요~"라고 응답하는 메시지입니다. 단순히 DHCP 서버의 존재만을 알리지 않고, 단말에 할당할 IP 주소 정보를 포함한 다양한 "네트워크 정보"를 함께 실어서 단말에 전달합니다.
  • 주요 파라미터
    • Client MAC: 단말의 MAC 주소
    • Your IP: 단말에 할당(임대)할 IP 주소
    • Subnet Mask (Option 1)
    • Router (Option 3): 단말의 Default Gateway IP 주소
    • DNS (Option 6): DNS 서버 IP 주소
    • IP Lease Time (Option 51): 단말이 IP 주소(Your IP)를 사용(임대)할 수 있는 기간(시간)
    • DHCP Server Identifier (Option 54): 본 메시지(DHCP Offer)를 보낸 DHCP 서버의 주소. 2개 이상의 DHCP 서버가 DHCP Offer를 보낼 수 있으므로 각 DHCP 서버는 자신의 IP 주소를 본 필드에 넣어서 단말에 보냄

3) DHCP Request

  • 메시지 방향: 단말 -> DHCP 서버
  • 브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF)
  • 의미: 단말은 DHCP 서버(들)의 존재를 알았고, DHCP 서버가 단말에 제공할 네트워크 정보(IP 주소, subnet mask, default gateway등)를 알았습니다. 이제 단말은 DHCP Request 메시지를 통해 하나의 DHCP 서버를 선택하고 해당 서버에게 "단말이 사용할 네트워크 정보"를 요청합니다.
  • 주요 파라미터
    • Client MAC: 단말의 MAC 주소
    • Requested IP Address (Option 50): 난 이 IP 주소를 사용하겠다. (DHCP Offer의 Your IP 주소가 여기에 들어감)
    • DHCP Server Identifier (Option 54): 2대 이상의 DHCP 서버가 DHCP Offer를 보낸 경우, 단말은 이 중에 마음에 드는 DHCP 서버 하나를 고르게 되고,  그 서버의 IP 주소가 여기에 들어감. 즉, DHCP Server Identifier에 명시된 DHCP 서버에게 "DHCP Request" 메시지를 보내어 단말 IP 주소를 포함한 네트워크 정보를 얻는 것임
4) DHCP Ack
  • 메시지 방향: DHCP 서버 -> 단말
  • 브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF) 혹은 유니캐스트일수 있으며 이는 단말이 보낸 DHCP Request 메시지 내의 Broadcast Flag=1이면 DHCP 서버는 DHCP Ack 메시지를 Broadcast로, Flag=0이면 Unicast로 보내게 됩니다.
  • 의미: DHCP 절차의 마지막 메시지로, DHCP 서버가 단말에게 "네트워크 정보"를 전달해 주는 메시지입니다. 앞서 설명드린 DHCP Offer의 '네트워크 정보"와 동일한 파라미터가 포함됩니다.
  • 주요 파라미터
    • Client MAC: 단말의 MAC 주소
    • Your IP: 단말에 할당(임대)할 IP 주소
    • Subnet Mask (Option 1)
    • Router (Option 3): 단말의 Default Gateway IP 주소
    • DNS (Option 6): DNS 서버 IP 주소
    • IP Lease Time (Option 51): 단말이 본 IP 주소(Your IP)를 사용(임대)할 수 있는 기간(시간)
    • DHCP Server Identifier (Option 54): 본 메시지(DHCP Ack)를 보낸 DHCP 서버의 주소
 
이렇게 DHCP Ack를 수신한 단말은 이제 IP 주소를 포함한 네트워크 정보를 획득(임대)하였고, 이런 과정을 거쳐 인터넷 사용이 가능하게 됩니다.

 

댓글