대학공부/인터넷 프로토콜

동적 호스트 설정 프로토콜(DHCP)

진진리 2024. 4. 5. 14:33
728x90

PC가 DHCP에 IP 주소를 요청하면서 물리 주소를 보냄(RARP 동작, 브로드캐스트)

DHCP는 IP주소를 할당하고 MAC 주소와 IP 주소를 매핑하는 정보를 저장(일정 기간 동안에는 동일한 IP 주소를 할당)

  • TCP/IP에 접속하는 모든 컴퓨터가 알아야 하는 정보(DHCP가 제공하는 정보)
    • 구성 파일에 저장되어 부팅 과정에 접근 
      • 컴퓨터의 IP 주소
      • 컴퓨터의 해당 서브넷 마스크
      • 라우터의 IP 주소
      • DNS의 IP 주소
  • 이전 프로토콜
    1. RARP(Reverse Address Resolution Protocol)
      • 물리 주소 -> IP 주소
      • 나의 MAC 주소를 가지고 나의 IP 주소를 알고자 함
      • *ARP: 목적지의 IP를 알고 있을 때 MAC을 알고자 함
    2. BOOTP(Bootstrap Protocol)
      • DHCP의 이전 버전
      • 정적인 설정 프로토콜

DHCP 동작 절차

  • 같은 네트워크에 DHCP 서버 위치 (일반적)

  1. UDP 포트 번호에 67에 수동 개방(passive open) 명령을 수행하고 클라이언트 요청을 기다림
  2. 부팅된 클라이언트는 포트 번호 68에 능동 개방(active open) 명령을 수행
  3. 서버는 UDP 목적지 포트 번호를 68, 발신지 포트 번호를 67로 지정한 뒤 유니 캐스트나 브로드 캐스트 메시지를 클라이언트로 보냄

 

  • 다른 네트워크에 DHCP 서버 위치

  1. 중계 에이전트(relay agent) 필요
  2. DHCP 서버의 유니캐스트 주소를 알고 있으며 포트 번호 67번호로 들어오는 브로드캐스트 메시지를 기다림
  3. 해당 패킷을 수신하면 이 메시지를 유니캐스트 메시지를 캡슐화하여 DHCP 서버로 보냄
  4. 유니 캐스트 목적지 주소를 가지는 패킷은 라우터에 의해 라우팅되며 DHCP 서버에 도착 (브로드캐스트는 라우팅 X)
  5. DHCP 서버는 중계 에이전트 IP 주소를 정의하고 있으므로 중계 에이전트로부터 온 메시지임을 알게 됨
  6. 응답을 받은 중계 에이전트는 클라이언트로 전송

DHCP 패킷 형식

 

variable: 가변 길이


DHCP 주소 할당

  • 정적 주소 할당
    • DHCP 서버는 물리 주소와 IP 주소를 정적으로 바인딩한 데이터베이스 이용
  • 동적 주소 할당
    • 이용 가능한 IP 주소의 풀(pool)로 이루어진 또 다른 데이터베이스를 이용하여 동적 할당
    • 요청을 받았을 때 주소 풀에서 활용 가능하고 사용하지 않는 IP 주소를 협상 기간 동안 할당
  • 절차
    1. 먼저 자신의 정적 데이터 베이스를 찾음
    2. 요청된 물리 주소가 있으면 영구적인 IP 주소 반환
    3. 없으면 IP 풀에서 할당하고 동적 데이터베이스에 항목을 추가
  • 상태 천이
    • 메시지 유형은 DHCP 패킷에 포함된 태그 값 53을 갖는 옵션에 의해 정의
      • 초기(INIT): 처음 시작
      • 선택(SELECTING): 서버를 찾는 상태 (DISCOVER 메시지를 전송, 서버들은 OFFER로 응답)
      • 요청(REQUESTING): IP 주소 요청
      • 바운드(BOUND): IP 연결 완료. 임대 완료까지 IP 주소 사용
      • 재설정(RENEWING): 임대 만료 전에 다시 할당 요청
      • 재연결(REBINDING): 임대 기간 종료 후 재요청

  • 타이머
    • Renewal timer(재설정 타이머): 50% of lease time
    • Rebinding timer(재연결 타이머): 87.5%
    • Expiration timer(만료 타이머): 100%
  • 메시지 교환

UDP 사용, 공유기가 DHCP 서버 기능을 해줌, 서버가 없다면 OFFER x


DHCP 패킷 분석

  • DHCP 주요 목적: 갱신 프로세스 동안 클라이언트에게 주소 할당. 갱신은 유니캐스트로 동작
  • DORA 패킷 유형(Discover, Offer, Request, Acknowledge)

 

  • Discover 패킷
    1. Message Type: 1(Request)
    2. 대부분의 필드는 비어있거나 이전 섹션의 DHCP 필드 목록을 기반으로 함
      • Broadcast
    3. DHCP Message Type: 53, 길이 1, 값 1 (Discover)

 

  • Offer 패킷
    1. Message Type: 2(Reply)
    2. 이전 패킷과 동일한 Transaction ID
    3. Client IP address: 유효한 IP 주소를 제공 (MAC 주소로 클라이언트와 통신)
    4. Next server IP address: 게이트웨이 IP 주소
    5. DHCP Message Type: Offer
      • 추가 정보: 서브넷 마스크, 갱신 시간, 리바인딩 시간, IP 주소 임대 시간, DHCP 서버 식별자

 

  • Request 패킷
    1. IP 주소를 획득하는 절차
    2. Message Type: 1(Request)
    3. 새로운 요청/응답이므로 새로운 transaction ID
    4. DHCP Message Type: Request

 

  • Acknowledge 패킷: 마지막 단계, ack 패킷을 보내고 정보를 데이터베이스에 기록

 

  • DHCP 임대 갱신
    • 임대 상태인 클라이언트가 재가동 되었을 때 IP 주소를 재요청
    • request와 acknowledgement 단계만 수행

  • A - 인터넷 - B일 때
    • A ~ B: IP, Port 정보 사용
    • A, B 각 내부에서 이더넷(MAC 주소, 단말기와 스위치 간의 통신, 로컬 네트워크) 사용
    • A와 B를 종단이라고 함
    • 이더넷 네트워크의 경계선이 라우터
    • 출발지, 목적지의 MAC 주소는 네트워크가 바뀔 때마다 변경되므로 종단이라고 하지 않음