컴퓨터망 15) DHCP

zh025700·2022년 7월 6일
0

컴퓨터네트워크

목록 보기
15/26

컴퓨터망

14. Host configuration: DHCP

첫 번째 클라이언트/서버 애플리케이션 프로그램인 DHCP(Dynamic Host Configuration Protocol)에 대해 논의한다
이 응용 프로그램은 호스트 부팅 후 사용되는 첫 번째 클라이언트/서버 응용 프로그램이다
즉, 호스트가 부팅되고 인터넷에 연결되어야 하지만 호스트가 IP 주소를 모를 때 부트스트랩 역할을 합니다

Introduction

TCP/IP 프로토콜을 사용하는 각 컴퓨터는 해당 IP 주소를 알아야 한다
컴퓨터가 classless를 사용하거나 서브넷의 구성원인 경우 서브넷 마스크도 알아야 한다
대부분의 컴퓨터는 다른 네트워크와 통신할 수 있는 기본 라우터의 주소와 다음 장에서 볼 수 있듯이 주소 대신 이름을 사용할 수 있는 네임 서버의 주소라는 두 가지 다른 정보가 필요하다
즉, 일반적으로 4가지 정보가 필요하다

  1. 컴퓨터의 IP 주소
  2. 컴퓨터 서브넷 마스크
  3. 라우터의 IP 주소
  4. 네임 서버의 IP 주소

DHCP Operation

DHCP 클라이언트와 서버는 동일한 네트워크에 있거나 다른 네트워크에 있을 수 있다

같은 네트워크에 있을 때

클라이언트와 서버를 동일한 네트워크에 배치할 수 있다
이 경우 작동은 다음과 같이 설명할 수 있다

  1. DHCP 서버는 UDP 포트 번호 67에서 패시브 오픈 명령을 실행하고 클라이언트를 기다린다
  2. 클라이언트는 포트 번호 68에서 활성 open 명령을 실행
    메시지는 destination 포트 번호 67과 source 포트 번호 68을 사용하여 UDP 사용자 데이터그램에 캡슐화된다
  3. 서버는 UDP 소스 포트 번호 67과 대상 포트 번호 68을 사용하여 브로드캐스트 또는 유니캐스트 메시지로 응답

다른 네트워크에 있을 때

클라이언트와 서버는 다른 네트워크에 있을 수 있다

클라이언트가 서버의 IP 주소를 모르기 때문에 DHCP 요청이 브로드캐스트된다 브로드캐스트 IP 데이터그램은 라우터를 통과할 수 없다
브로드캐스트 요청을 수신하는 라우터는 해당 패킷을 폐기한다

agent가 필요하다
호스트 중 하나는 릴레이로 사용될 수 있다
이 경우 호스트를 relay agent라고 한다
릴레이 에이전트는 DHCP 서버의 유니캐스트 주소를 알고 포트 67에서 브로드캐스트 메시지를 수신한다
이 유형의 패킷을 수신하면 유니캐스트 데이터그램에 메시지를 캡슐화하고 DHCP 서버로 요청을 전송한다
유니캐스트 destination 주소를 전송하는 패킷은 라우터에 의해 라우팅되고 DHCP 서버에 도달한다
DHCP 서버는 요청 메시지의 field 중 하나가 릴레이 에이전트의 IP 주소를 정의하기 때문에 릴레이 에이전트에서 메시지가 전송되었음을 알고 있다
릴레이 에이전트는 응답을 수신한 후 DHCP 클라이언트로 전송한다

UDP port

그림은 클라이언트와 DHCP 서버 간의 상호 작용을 보여준다

  • 서버는 well known 포트 67을 사용한다
  • 클라이언트는 well known 포트 68을 사용한다
    • 임시적 포트 번호가 아니라 정해져 있다!

Configuration

DHCP는 정적 및 동적 주소 할당을 제공하도록 고안되었다

동적 할당

DHCP에는 사용 가능한 IP 주소 풀이 있는 두 번째 데이터베이스가 있다
이 두 번째 데이터베이스는 DHCP를 동적으로 만든다
DHCP 클라이언트가 임시 IP 주소를 요청하면 DHCP 서버는 사용 가능한(사용되지 않은) IP 주소의 풀로 이동하여 협상 가능한 기간 동안 IP 주소를 할당한다

DHCP 클라이언트가 DHCP 서버에 요청을 보낼 때 서버는 먼저 정적 데이터베이스를 확인한다
요청한 실제 주소를 가진 항목이 정적 데이터베이스에 있는 경우 클라이언트의 영구 IP 주소가 반환된다
반면, 정적 데이터베이스에 항목이 없는 경우, 서버는 사용 가능한 풀에서 IP 주소를 선택하고 클라이언트에 주소를 할당한 후 동적 데이터베이스에 항목을 추가한다
DHCP의 동적 측면은 호스트가 네트워크에서 네트워크로 이동하거나 네트워크에서 연결 및 연결 해제될 때 필요하다
DHCP는 제한된 기간 동안 임시 IP 주소를 제공한다
DHCP 서버는 특정 기간 동안 lease를 발행한다
lease가 만료되면 클라이언트는 IP 주소 사용을 중지하거나 lease를 갱신해야 한다 서버는 갱신에 동의하거나 동의하지 않을 수 있다
서버가 동의하지 않으면 클라이언트는 주소 사용을 중지한다

tag 53의 옵션

동적 주소 할당을 제공하기 위해 DHCP 클라이언트는 수신하거나 보내는 메시지에 따라 state machine으로 표현된다
이 경우 메시지 유형은 DHCP 패킷에 포함된 태그 53의 옵션으로 정의된다
그림은 DHCP 패킷의 유형을 정의하기 위한 유형 옵션과 그 값의 해석을 보여준다

DHCP client transition diagram

그림은 상태를 나타내는 다이어그램이다

InIT State

  • DHCP 클라이언트가 처음 시작되면 INIT 상태(초기화 상태)가 된다
  • 클라이언트는 포트 67을 사용하여 DHCPDISCOVER 메시지(DHCPDIS-COVER 옵션이 있는 요청 메시지)를 브로드캐스트한다

Selecting state

  • DHCPDISCOVER 메시지를 보낸 후 클라이언트는 selecting 상태로 전환된다
  • 서비스를 제공할 수 있는 서버는 DHCPOFFER 메시지로 응답한다
  • 이 메시지에서 서버는 IP 주소를 제공한다
  • DHCPOFFER를 보내는 서버는 제공된 IP 주소를 잠궈 다른 클라이언트가 사용할 수 없도록 한다
  • 클라이언트는 IP 중 하나를 선택하고 선택한 서버로 DHCPREQUEST 메시지를 보낸다 - 그런 다음 요청 상태로 이동

Requesting state

  • 클라이언트는 서버로부터 DHCPACK 메시지를 수신하여 클라이언트 물리적 주소와 IP 주소 간의 바인딩을 생성할 때까지 request 상태를 유지한다
  • DHCPACK을 수신한 후 클라이언트는 바운드 상태로 전환

Bound state

  • 이 상태에서 클라이언트는 리스가 만료될 때까지 IP 주소를 사용할 수 있다
  • lease time의 50%에 도달하면 클라이언트는 다른 DHCPREQUEST를 전송하여 갱신을 요청하고 갱신 상태가 된다
  • 바운드 상태일 때 클라이언트는 lease를 취소하고 INIT 상태로 이동할 수있다

Renewing state

  • 클라이언트는 두 이벤트 중 하나가 발생할 때까지 갱신 상태를 유지
  • lease를 갱신하는 DHCPACK을 수신할 수 있다
  • DHCPACK이 수신되지 않고 lease time의 87.5%가 만료되면 클라이언트가 rebiding 상태로 전환

Rebinding state

  • 클라이언트는 세 가지 이벤트 중 하나가 발생할 때까지 rebinding 상태를 유지
  • 클라이언트가 DHCPNACK을 수신하거나 lease가 만료되면 init 상태로 돌아감
  • 클라이언트가 DHCPACK을 수신하면 bound 상태로 전환되고 타이머를 재설정

Exchanging messages

profile
정리

0개의 댓글