Blog
스터디
CS Study with SON
16주차
DHCP

출처 - https://github.com/jmxx219/CS-Study (opens in a new tab)

DHCP(Dynamic Host Configuration Protocol)

동적 호스트 설정 프로토콜


등장배경

  • TCP/IP 프로토콜을 사용하는 모든 호스트들은 IP 주소 (opens in a new tab), 서브넷 마스크 (opens in a new tab)가 할당되어야 정상적으로 네트워크와 연결이 가능함
  • 다른 망과 통신하기 위해서는 디폴트게이트웨이 주소를 알아야하고, IP 주소 대신 도메인 이름을 사용해 통신하기위해 DNS 주소 (opens in a new tab)도 알아야함
  • 일반 사용자들이 해당 주소들을 입력하는 것이 쉽지 않으므로 호스트 설정 프로토콜이 등장하게 되었음

DHCP란?

  • 개념
    • DHCP 서버에 의한 호스트 구성정보 동작할당 절차 정의
    • 호스트를 인터넷에 연결할때 호스트 구성정보를 자동으로 할당해주는 프로토콜
      • DHCP 서버 : 호스트 구성 정보를 유지하고 있는 서버
    • IP주소, 서브넷마스크, 디폴트 게이트웨이 주소, DNS 서버주소 등을 자동으로 할당해주는 프로토콜
  • 원리
    • 클라이언트가 DHCP 서버에게 IP를 요청하고 DHCP가 현재 사용하지 않는 IP를 잠시 임대해주는 방식
      • 같은 IP를 계속 부여하는 것이 아닌 임대 시간 동안 빌려주는 것
      • 항상 같은 IP가 아닌 그때 그때마다 동적으로 IP가 변경될 수 있음
    • 일반적인 가정집이나 사무실에서 가장 많이 사용되는 네트워크 사용 방법

DHCP 특징

  • 클라이언트/서버 형태로 동작함
    • 동적인 구성 정보를 요청/제공하는 프로토콜
    • DHCP 클라이언트(요청) 및 서버(응답)가 동일 서브넷에 있을 수도 있고, 다른 서브넷에 분리될 수 도 있음
  • UDP 기반 프로토콜
    • 서버가 사용 가능한 주소를 자동으로 확인하고 네트워크 클라이언트에게 IP 주소를 실시간으로 부여함
      • UDP 67(Server)번과 68(Client)번 포트를 사용함
    • DHCP는 네트워크 장비의 초기화 과정에서 일어나기 때문에 네트워크 구성 정보를 효율적으로, 빠르게 구성할 수 있어야 함
      • 신뢰성보다 속도가 더 중요하기 때문에 UDP를 사용함

장점

  • 사용자 편의성
    • ip 주소들을 외우고 있지 않아도 됨
  • IP 주소 절약
    • 필요할 때만 할당하고, 동시 사용자 수만큼 할당함
  • 신뢰성 높은 DHCP IP 주소 구성
    • 동일한 IP 주소를 사용하는 사용자들 사이 충돌 방지
  • 높은 이동성
    • 사용자는 네트워크 범위내에서 어디서든지 모바일 장치 이용 가능
  • 효율적인 네트워크 관리
    • DHCP 이용시 별도 IP 할당 서버가 필요하지 않으며 네트워크 관리 효율성 개선

보안문제

  • 승인받지 않은 DHCP 서버가 잘못된 정보를 클라이언트에게 제공할 위험성 존재
  • 승인받지 않은 클라이언트가 DHCP서버를 가로채 리소스에 대한 접근 권한 얻을 위험성 존재
  • 악성 클라이언트가 DHCP 리소스를 소모시킬 수 있는 위험성 존재


호스트 구성 정보 (Configuration Information)

DHCP 서버는 클라이언트에 다음 기본 정보를 제공한다.

기본 정보

  • 호스트 IP 주소
    • 동일한 네트워크 주소인지, 다른 네트워크 주소인지 판별
  • 서브넷 마스크(Subnetmast)
    • 네트워크 ID 필드 크기, 네트워크 주소 구분을 위한 필수 정보
    • 서브넷 마스크를 통해 해당 ip 주소와 연결된 네트워크 주소를 계산하고, 그 값을 통해 라우팅
  • 디폴트 게이트웨이 주소(Default Gateway Address)
    • 자신의 네트워크에 연결된 라우터의 주소, 목적지 주소가 동일 네트워크에 존재하지 않을 때 IP 데이터그램을 전달할 다음 홉 주소

추가 정보


디폴트 게이트웨이 주소

기본적으로 host컴퓨터는 라우팅 테이블 정보가 없다. 따라서 자신과 연결되어있는 네트워크에 해당하는 목적지 주소가 있다면 해당 주소로 전송하면 된다. 하지만 그렇지 않을 경우 라우터로 패킷을 전송해야하고, 이 값을 디폴트 게이트웨이 주소라고 한다.



DHCP 동작 절차

스크린샷 2023-07-03 오후 3 54 51

  1. DHCP 서버 발견 (DHCP Server Discovery)

    • DHCP서버를 찾기 위한 DHCP Discover 메시지 브로드캐스트
    • 동일 서브넷 안의 모든 단말들은 해당 메시지 수신
  2. DHCP 서버 제안 (DHCP Server Offer)

    • Discover메시지를 수신한 DHCP서버는 자신을 알리기 위해 Offer메시지 브로드캐스팅(Broadcasting)
      • DHCP Offer 메시지: 제안하는 IP주소, DHCP서버 ID, 임대기간 등 포함
    • Offer 메시지 또한 동일 서브넷 안의 모든 단말들이 수신
  3. DHCP 요청 (DHCP Request)

    • DHCP서버 존재를 확인한 호스트는 Request메시지를 브로드캐스팅
      • DHCP Request 메시지: 자신에게 IP주소를 제안한 DHCP서버 ID포함
    • 특정 DHCP 서버에 요청하며 나머지 DHCP서버도 요청 메시지를 인지
  4. DHCP 확인 (DHCP Ack)

    • 서버는 DHCP Request 메시지의 DHCP서버 ID확인
    • 자신의 IP 주소와 동일한 경우
      • DHCP Ack메시지를 브로드캐스트 방식으로 전송하고 IP주소 할당
    • 자신의 IP 주소와 동일하지 않은 경우
      • 제안한 IP주소를 IP주소 풀에 그대로 유지


DHCP의 IP주소 할당 방식

  • 동적 할당

    • 관리자가 DHCP에 IP주소를 유보해놓은 경우 동적할당 방식 활용
    • 제한된 수량의 IP주소를 '재사용', '한시적 사용', '자동 재활용' 가능
  • 자동 할당

    • DHCP서버는 관리자가 정한 규칙에 따라 IP주소 클라이언트에 영구할당하는 방식
    • DHCP서버에 이전 IP주소 할당 데이터가 있고, 동일한 IP주소를 동일한 클라이언트에게 재할당할 수 있다는 점에서 동적할당과 다름
  • 수동 할당

    • 관리자가 각 클라이언트에 대한 고유한 식별자를 IP주소에 수동할당하는 방식
    • 미리 할당된 IP주소를 장치에게 전달해 장치가 IP주소 사용


DHCP Relay Agent

  • 개념

    • DHCP 서버가 없는 서브넷으로부터 다른 서브넷에 존재하는 1개 이상의 DHCP서버에게 DHCP또는 BOOTP 요청을 중계(Relay)
  • 동작

    • DHCP서버가 동일 서브넷 밖에 있을 경우 동일 서브넷 내부에는 반드시 DHCP Relay Agent 존재해야함
    • DHCP 클라이언트가 정보 요청시 DHCP Relay Agent는 해당 요청을 지정된 DHCP 서버 목록으로 전송
    • DHCP 서버가 응답시 원래 요청을 보낸 네트워크 상으로 DHCP 서버 응답을 브로드캐스트 혹은 유니캐스트(1:1 캐스트)

BOOTP

  • 정적으로 클라이언트/서버 형태의 구성정보를 제공하는 프로토콜
  • 처음으로 부팅된 컴퓨터, 디스크를 갖지 않은 컴퓨터에게 IP주소등 구성정보 제공
  • 지금은 거의 사용되지 않은 구형 프로토콜, 상위버전인 동적 DHCP와는 완벽 호환