DHCP

hi2li·2026년 4월 30일

network

목록 보기
2/17

DHCP 란?

7계층 프로토콜

DHCP : Dynamic Host Configuration Protocol

  • 호스트의 IP 주소와 TCP/IP 프로토콜의 기본 설정(아이피주소 뿐만 아니라 DNS서버 주소같은 네트워크 부가정보)을 클라이언트에게 자동적으로 제공해주는 프로토콜
  • 클라이언트가 네트워크 부팅 과정에서 DHCP서버에 IP주소를 요청하여 얻어낼 수 있음.
  • IP 충돌을 막을 수 있지만 서버가 다운되면 오류발생
  • DHCP 서버가 할당해주는 주소는 영구적으로 할당되는 것이 아닌 임대기간 동안만 빌려줌.
    • 만약 연장하고 싶으면 따로 서버에 요청을 해야함 (Renewal)
    • 주소를 다 사용하면 반납 수행 (Release)

간단한 흐름

  1. DHCP Discover
  2. DHCP Offer
  3. DHCP Request
  4. DHCP Ack
  • DHCP Discover : 클라이언트가 브로드캐스트로 DHCP서버를 찾음

  • DHCP Offer : 서버 혹은 서버들이 브로드캐스트로 서버 본인의 ip 주소와 할당가능한 임대주소들을 보내줌

  • DHCP Request : 클라이언트가 브로드캐스트로 자신이 사용할 DHCP 서버주소와 원하는 IP 주소를 명시 (이때 다른 DHCP 서버는 자신이 선택되지 못함을 알 수 있음)

    • DHCP Request 메시지 안에 “Server Identifier 옵션”을 넣어서 선택한 서버를 지정할 수 있음
  • DHCP Ack : 서버가 브로드캐스트로 할당주소와 임대시간등을 보내줌.

    • DHCP ACK안에 있는 값들.

      •	클라이언트가 사용할 IP 주소
      •	서브넷 마스크
      •	게이트웨이 주소(라우터)
      •	DNS 서버 주소
      •	임대 시간(lease time) 등
      
  • 클라이언트(OS 내장되어있는 DHCP 클라이언트 소프트웨어)는 이 ACK을 받자마자, 자기 네트워크 스택에 이 값을 자동으로 설정.

  • 최초 할당시에는 ip스택이 초기화 되지 않았으니 브로드캐스트로 보낼 수 밖에없음(확정이 안됐으니)

하지만 연장시에는 주소가 있으니 유니캐스트로 보낼 수 있으며 request와 ack단계만 존재한다.

DHCP relay(중계)

  • DHCP 서버가 클라이언트와 같은 네트워크 상에 없을 때 사용되는 기능
  • DHCP 클라이언트 ↔ DHCP 서버 사이를 중계해줌
    • 브로드캐스트는 라우터를 뛰어넘지 못하기 때문에 다른 네트워크로의 중계가 필요

→ 라우터(또는 L3 스위치)가 브로드캐스트를 받아다가 유니캐스트로 DHCP 서버에게 전달함.

Relay 흐름

Relay가 있다면 흐름이 조금 달라짐.

  1. 클라이언트가 브로드캐스트로 discover

  2. 라우터가 그것을 받아 유니캐스트로 DHCP 서버에 전달

  3. 이때 라우터가 Gateway IP address 필드에 자신의 인터페이스 주소를 넣음.

  4. 서버는 라우터의 메시지를 보고 어떤 네트워크의 클라이언트인지 알게됨

  5. 서버는 라우터에게 유니캐스트로 해당 네트워크 pool에서 선택한 IP 주소들을 담은 메시지를 보냄

  6. 라우터가 이 메시지를 브로드캐스트로 전달.

  7. Request와 ACK도 같은 방식으로.

profile
Easy come , Easy go

0개의 댓글