[네트워크] DHCP

ssunn·2025년 2월 23일
2

CS

목록 보기
4/5

이번 포스트는 cs 스터디를 하던 시절, 열심히 공부했던 DHCP에 대해 다시 한 번 정리해보았다.
네트워크에서 DHCP는 아주 기본적인 내용이지만 개념을 제외하고는 아는 것이 없었기에 나름 열심히 공부했던 것 같다.
다음 질문들을 준비하면서 공부했던 내용이니 이 포스트를 읽는 분들도 질문에 대한 답들을 생각해보면서 포스트를 읽어보면 좋을 것 같다.

기술면접 대비 CS 질문

  1. DHCP는 몇 계층 프로토콜인가요?
  2. DHCP는 어떻게 동작하나요?
  3. DHCP에서 UDP를 사용하는 이유가 무엇인가요?
  4. DHCP에서, IP 주소 말고 추가로 제공해주는 정보가 있나요?
  5. DHCP의 유효기간은 얼마나 긴가요?

출처: Tech-Interview

DHCP

DHCP(Dynamic Host Configuration Protocol)
네트워크 설정을 자동으로 할당받도록 돕는 프로토콜
IP 주소 및 기타 통신 매개변수를 네트워크에 연결된 장치에 자동으로 할당한다
ex) 가정용 네트워크에서는 라우터가 IP 주소를 장치에 할당하는 DHCP 서버 역할을 함

DHCP는 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 등의 네트워크 설정을 자동으로 할당받도록 돕는다. 그렇기 때문에 네트워크 관리자가 수동으로 IP 주소를 할당할 필요가 없으며, IP 주소의 중복 사용을 최소화 하고 주소 관리를 효율적으로 할 수 있게 한다.

주의해야할 점은 DHCP는 클라이언트와 서버간 통신을 통해 IP 주소와 네트워크 설정 정보를 전달하는데, 이 데이터 교환은 네트워크 서비스 수준에서 이루어진다는 것이다. 네트워크 서비스를 제공하며 프로토콜 메시지와 규칙을 정의할 수 있는 계층은 OSI 7계층 중 애플리케이션 계층에 해당하기 때문에 DHCP는 애플리케이션 계층 프로토콜이라 할 수 있다.

DHCP의 장단점

장점

  1. 서브넷 마스크 및 기본 게이트웨이와 같은 다른 매개변수를 네트워크의 장치에 할당할 수도 있다.
  2. 더 이상 사용하지 않는 주소를 재사용해 IP 주소를 보존하는 데 도움이 될 수 있다. 장치가 네트워크에서 제거되거나 임대가 만료되면 사용중이던 주소를 사용 가능한 주소 풀로 반환하고 다른 장치에 다시 할당할 수 있다. 이렇게 하면 IP 주소를 효율적으로 사용하고 주소 충돌을 방지할 수 있다.

단점

  1. 각 클라이언트 장치가 IP 주소에 대한 요청을 보낼 때 네트워크에서 더 많은 브로드캐스트 트래픽을 생성할 수 있다. 특히 소규모 네트워크에서 네트워크 성능에 영향을 미칠 수 있다.
  2. 악의적인 사용자가 DHCP 요청을 스푸핑하고 네트워크에서 IP 주소를 얻는 것이 더 쉬울 수 있으므로 DHCP가 정적 IP 주소 지정보다 덜 안전할 수 있다.
  3. DHCP는 IP 주소를 클라이언트에 할당하기 위해 사용 가능하고 제대로 작동하는 DHCP 서버에 의존하기 때문에 고정 IP 주소 지정보다 덜 안정적일 수 있다.

그래서 DHCP는 몇계층인가?

DHCP는 애플리케이션 계층이다. DHCP는 자동으로 IP 주소 및 네트워크 설정을 할당해주는 프로토콜이다.
DHCP는 클라이언트-서버 프로토콜이다. 그리고 클라이언트-서버 통신의 목적과 방식에서 애플리케이션 계층의 특성과 부합하다.

  1. 서비스 제공
  2. 메시지 기반 데이터 교환
  3. 사용자 응용 프로그램과의 상호작용
  4. 하위 계층(전송, 네트워크 계층)의 도움 필요

와 같은 이유들로 애플리케이션 계층에 속한다.

*보충

  1. 서비스 제공 목적: 애플리케이션 계층의 핵심 역할은 네트워크 상의 특정 서비스를 제공하는 것이다. DHCP는 IP 주소 및 네트워크 설정 정보의 동적 할당을 목적으로 한 네트워크 구성 서비스이다.
  2. 메시지 기반 데이터 교환: 메시지 기반 상호작용은 전형적인 애플리케이션 계층 프로토콜의 특징이다. DHCP는 클라이언트와 서버 간에 명시적인 메시지 형식과 규칙(DHCP Discover, Offer, Request, ACK)을 기반으로 통신한다. 반면 하위 계층은 데이터 전달 자체가 주요 기능이므로 서비스 논리를 다루지 않는다.
  3. 사용자 응용 프로그램과 상호작용: DHCP는 운영체제나 네트워크 장치의 응용 프로그램에 의해 호출되어 동작하며, 이러한 상호작용은 애플리케이션 계층에서 이루어진다.
  4. 하위 계층(전송, 네트워크 계층)의 도움 필요: DHCP는 UDP(전송 계층) 및 IP(네트워크 계층)를 사용해 메시지를 전달한다. 이처럼 하위 계층의 도움을 받는 프로토콜은 일반적으로 애플리케이션 계층에 속한다.

DHCP의 동작

  1. Discover 단계 (탐색 단계)
    • 클라이언트(호스트 : PC나 모바일)가 네트워크에 접속을 시도
    • 이때 DHCP Discover 메시지를 브로드 캐스트해서 DHCP 서버를 찾는다
  2. Offer 단계(제안 단계)
    • DHCP 서버가 Discover 메시지를 수신하면, 클라이언트에게 할당 가능한 IP주소와 네트워크 설정 정보(서브넷 마스크, 게이트웨이, DNS 서버 등)을 포함한 DHCP Offer 메시지를 브로드캐스트로 응답
    • 클라이언트는 여러 서버로부터 Offer를 받을 수 있고, 보통 첫번째에 받은 Offer 메시지를 수락해서 설정함
  3. Request (요청 단계)
    • 클라이언트는 받은 Offer로 해당 서버에게 이 IP주소를 할당 받고싶다고 DHCP Request를 브로드캐스트 (사용가능한 IP인지 다시 확인) - 브로드 캐스트인 이유는 서버가 여러대 일 수 있기 때문에!
    • 이때 Request에는 서버 식별자 및 할당 받고자 하는 IP 주소 요청 정보 있음
  4. Acknowledgement (승인 단계)
    • DHCP 클라이언트로부터 IP주소를 사용하겟다는 요청을 받은 DHCP 서버는 어떤 클라이언트가 언제부터 해당 IP주소를 사용하기로 했는지 정보 기록
    • 확정한다는 의미의 DHCP ACK(acknowledgement) 메시지를 전송
    • 이 메시지에는 IP 주소 임대 기간(Lease Time), 추가적인 구성 정보가 포함되며, 클라이언트는 이를 받고 네트워크에 정상적으로 통신을 시작하게 됩니다.

임대 - 연장(or not) - 반납

  • 영구적으로 IP 주소를 하는 것이 아니라 임대 방식
    • 임대 기간(IP lease time)을 정해 그 기간 동안 클라이언트가 해당 IP 주소를 사용
  • 임대 기간 이후에도 해당 IP 주소를 사용하려면 임대기간 연장 요청을 해야함
  • 더 이상 해당 IP 주소가 필요하지 않으면 IP 주소 반납 절차 수행
  1. IP 주소 할당 절차
    • DHCP discover: 클라이언트가 DHCP 연결 요청
    • DHCP offer: DHCP가 설정 가능한 IP 주소를 선택해서 보내줌
    • DHCP request: 클라이언트가 IP 목록 중에 선택
    • DHCP ACK: DHCP 서버가 확인 메시지와 다양한 네트워크 정보(IP, Subnet, Gateway, DNS, lease time 등)를 전송
  2. 주소 임대 기간 연장 절차
    • DHCP request: 클라이언트가 DHCP 서버에게 연장 요청, 서로의 IP 주소를 이미 알고 있기 때문에 Unicast 방식으로 보낸다
    • DHCP ACK(Unicast): 응답(수락) 패킷과 데이터를 보낸다
  3. IP 주소 반납 절차
    • DHCP release(Unicast): 클라이언트가 DHCP 서버에게 IP 주소와 자원을 반납

그 외 메시지

  • DHCP NAK: 서버가 요청을 거부한 경우
  • DHCP inform: 클라이언트가 IP 주소 이외의 설정 정보를 요청할 때 보내는 메시지

*보충

  1. 장치가 네트워크에 연결되면 DHCP 요청 메시지를 보낸다. 이 메시지는 네트워크의 모든 장치에 브로드캐스트 된다.
  2. 일반적으로 라우터에 통합된 DHCP 서버는 이 메시지를 수신하고 DHCP 제공 메시지로 응답한다. (응답 메시지에는 할당된 IP 주소에 대한 정보가 포함)
  3. 장치는 DHCP 확인 메시지를 다시 보내고 통신을 시작할 수 있다.

참고

DHCP Explained - Dynamic Host Configuration Protocol
동적 호스트 프로토콜(DHCP)의 뜻과 작동 원리 알아보기
What Is DHCP? A Simple Guide To Understanding IP Address Assignment

0개의 댓글