네트워크

DHCP(Dynamic Host Configuration Protocol)란? (동작 방식과 서버 구성 + DHCP 릴레이 에이전트)

우잉~ 2025. 1. 20. 21:31

DHCP(Dynamic Host Configuration Protocol)

DHCP란 IP를 자동으로 할당하는 데 사용하는 프로토콜이다.

 

사용자가 네트워크와 통신하기 위해서는 IP 주소, 서브넷 마스크, 게이트웨이 등 네트워크 정보와 물리적인 네트워크 구성이 필요하다. 네트워크를 구성하는 방법은 2가지로 나뉜다.

  1. 직접 설정(정적 할당): 데이터 센터의 운영 망(예: 서버 팜)에서 사용되는 IP 설정
  2. IP 정보를 할당해주는 서버를 이용하여 자동으로 설정(동적 할당): 사무실 네트워크 IP 설정, 가정 공유기 등 특별한 경우를 제외한 경우 기본적으로 사용되는 방식

※ 과거에는 보안 및 관리 목적으로 사무실 네트워크도 정적 할당 방식을 이용했지만, 현재 동적 할당 방식 + 보안 강화 장비가 대중화되어 동적 할당 방식이 많이 이용되고 있다.

 

즉, 동적 할당은  DHCP를 사용한 IP 할당을 뜻하게 된다.

DHCP를 사용하면 IP 주소, 서브넷 마스크, 게이트웨이, DNS 정보를 자동으로 할당받을 수 있다. + 관리도 자동으로 되므로 설정 정보 오류 및 중복 IP 할당 문제를 해소할 수 있다!

 

 

DHCP는 BOOTP(Bootstrap Protocol)을 기반으로 한다.

* BOOTP란? 컴퓨터 부팅 중 네트워크를 통해 IP 주소와 초기 설정 정보를 동적으로 할당받는 방법으로, 클라이언트 MAC 주소를 기준으로 미리 설정된 IP 주소를 할당한다. 

BOOTP의 기능 + 지원되지 않았던 몇 가지 기능 = DHCP

DHCP는 서버(포트번호 67, bootps), 클라이언트(포트번호 68, bootpc)로 동작한다.

 

DHCP 동작 방식

DHCP는 호스트가 IP를 자동으로 할당 받을 수 있도록 돕는다.

DHCP가 호스트에게 IP를 할당할 때 DHCP 클라이언트(호스트)와 DHCP 서버의 패킷 교환으로 이루어지게 되는데, 이 과정은 4단계로 나눌 수 있으며 DHCP Discover, DHCP Offer, DHCP Request, DHCP Acknowledgement라는 이름을 가지고 있다.

 

[DHCP 패킷 흐름 4단계]

DHCP 패킷 흐름

  1. DHCP Discover: IP를 할당받기 위해 첫 메시지를 전송하는 단계
    DHCP 클라이언트가 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트로 전송
    DHCP 클라이언트는 현재 IP 주소가 존재하지 않기 때문에 출발지 주소는 0.0.0.0을 사용 + 포트는 UDP 68(bootpc)

  2. DHCP Offer: DHCP 서버가 클라이언트에게 IP 주소 사용을 제안하는 단계
    DHCP Discover를 수신한 DHCP 서버가 DHCP IP Pool(IP 할당 가능 리스트) 중에서 할당하려는 정보(IP, Subnet, Gateway, DNS, Lease Time 등)와 자신의 서버 정보를 포함하여 클라이언트로 전송

  3. DHCP Request: DHCP 서버로부터 제안 받은 IP 정보를 사용하기 위한 요청을 서버로 보내는 단계
    IP 주소, DHCP 서버 정보를 포함한 DHCP 요청(Request) 메시지를 브로드캐스트로 전송
    ※ DHCP 서버 정보를 포함하고 있는데 브로드캐스트 말고 유니캐스트를 사용해도 되지 않나?! 
      DHCP 서버가 여러 대 동작하는 환경에서는 원활한 통신을 위해 유니캐스트가 아닌 브로드캐스트를 사용한다.
    * DHCP 서버는 자신이 보낸 DHCP Offer 메시지에 대한 DHCP Request인지 확인하고 해당 패킷에 대해서만 응답한다.
  4. DHCP Acknowledgement(Ack): 자신에게 DHCP Request를 보낸 클라이언트에게 최종 확인 메시지를 보내는 단계
    DHCP 클라이언트에게 받은 요청을 DHCP 서버에 기록(어떤 클라이언트가 어떤 IP 주소를 사용하는 지 + 언제까지 사용할 것인지에 대한 정보)한 뒤 정상적으로 수신했다는 응답 전송

 

++ Lease Time이란?

DHCP를 통해 IP를 할당할 때 클라이언트가 IP를 임대할 수 있는 시간을 뜻한다.

Lease Time(임대 시간)이 만료되면 클라이언트에 할당된 IP를 다시 DHCP 서버의 IP Pool로 회수하게 된다.

클라이언트가 IP를 잘 사용하고 있는데 임대 시간이 다 되어버리면 어떻게 될까?

당연히 IP를 수거해간다. 클라이언트는 IP를 사용하기 위해 다시 DHCP Discover 메시지를 서버에게 보내 IP를 할당 받아야 한다! 다른 IP를 할당 받을 가능성이 아주 높은 것 같다.,,

 

이렇게 임대 시간이 다 되면 매번 새로 IP를 DHCP 서버에 요청해야 하는 것일까? 솔직히 너무 번거롭다.

또한, 같은 IP를 사용해야 되는데 재할당 받으면서 다른 IP가 할당될 경우에는 정말 난감하기 짝이 없다.

 

이를 해결하기 위해 클라이언트는 DHCP에서 IP를 할당 받은 뒤, 임대 시간의 50%, 75%가 지난 시점에서 갱신 과정을 수행하게 된다.

갱신하는 방법은 DHCP Request 메시지를 DHCP 서버로 전송하면 되며, 브로드캐스트가 아닌 유니캐스트로 진행된다!

임대 갱신 과정

 

 

+++ 그 외 DHCP 메시지 타입

 

메시지 타입 내용
DHCP Discover 클라이언트가 사용한 DHCP 서버를 찾는 메시지
DHCP Offer DHCP 서버가 IP 설정값에 대해 클라이언트에게 제안하는 메시지
DHCP Request DHCP 서버에서 제안받은 설정값을 요청하는 메시지
DHCP Decline 현재 IP가 사용 중임을 클라이언트가 서버에 알려주는 메시지
DHCP Ack DHCP 서버가 클라이언트에 받은 요청을 수락하는 메시지
DHCP Nak DHCP 서버가 클라이언트에 받은 요청을 수락하지 않는다는 메시지
DHCP Release 클라이언트가 현재 IP를 반납할 때 사용하는 메시지
DHCP Inform 클라이언트가 서버에 IP 설정값을 요청하는 메시지

 

DHCP 릴레이 에이전트

위에서 이야기했듯이 DHCP 클라이언트-서버 간의 패킷 교환은 브로드캐스트로 진행된다.

브로드캐스트의 특징은 같은 네트워크 내에서 모두에게 패킷을 전송한다는 특징을 가지고 있다.

 

이 원리대로라면 여러 네트워크에서 DHCP를 사용하려면 각 네트워크마다 DHCP 서버가 최소 1개 씩은 있어야 한다는 소리다. 이것 또한 너무 번거롭다... 어떻게 배치할 것인지, 이중화는 사용할 것인지 따져야할 게 너무 많다.

 

그래서 여러 네트워크를 가진 환경에서 DHCP를 사용하기 위해 DHCP 릴레이 에이전트 기능이 나타나게 됐다.

DHCP 릴레이 에이전트는 DHCP 패킷을 중간에서 중계(Relay)하는 역할을 해준다. 그래서 DHCP 릴레이 에이전트 기능을 적용하게 되면, DHCP 서버 1대에서 여러 네트워크 대역의 IP Pool을 관리할 수 있다.

 

DHCP 릴레이 에이전트 구성 및 통합된 DHCP 서버 구성

 

위 그림을 보면 30.30.30.0/24 네트워크인 C 네트워크에 DHCP 서버에서 모든 네트워크가 관리되는 것을 확인할 수 있다.

A 혹은 B 네트워크에서 브로드캐스트로 전송하게 되면 DHCP 릴레이 에이전트가 수신하게 되고, 이후에 DHCP 서버로 전달된다.

바로 DHCP 서버로 전달될 수 있는 이유는 DHCP 릴레이 에이전트는 브로드캐스트 패킷을 받으면 DHCP 서버로 전달될 수 있도록 유니캐스트로 변환하기 때문이다.

DHCP 릴레이 에이전트,,, 굉장히 편리하다. 이제는 각 네트워크마다 DHCP 서버를 구축하지 않아도 DHCP 환경을 운영할 수 있게 되었다.

 

DHCP 릴레이 에이전트를 사용하면 DHCP의 메시지 흐름은 다음과 같다.

DHCP 릴레이 에이전트 적용 패킷 흐름

 


요약

  1. DHCP는 호스트에게 네트워크 통신을 위한 IP를 할당해주는 역할을 한다.
  2. IP를 할당 받기 위해서는 클라이언트-서버 간의 패킷 교환이 이루어진다. 이 패킷 교환은 총 4단계로 이루어진다.
  3. 클라이언트가 IP를 할당 받아 사용하게 되면 정해둔 임대 시간 동안 사용할 수 있다. 임대 시간의 50%, 75%가 지났을 때 임대를 갱신해야 한다. 갱신하지 못한다면 재할당 받아야 하는 귀찮음이 생긴다!
  4. 클라이언트는 IP를 할당 받기 위해 서버에게 브로드캐스트 전송을 진행한다. 하지만, 브로드캐스트는 동일 네트워크 내에서만 패킷을 전달할 수 있기 때문에 여러 네트워크 대역에서 DHCP 환경을 구축하기 위해서는 DHCP 릴레이 에이전트 기능을 사용하여 IP 풀을 설정해야 한다.
  5. DHCP 릴레이 에이전트는 DHCP 패킷을 전달하기 위한 중계 역할을 한다. 브로드캐스트로 수신한 패킷을 유니캐스트로 전환하여 DHCP 서버의 네트워크로 전달한다.