개념 사전 · 프로토콜

DHCP

Dynamic Host Configuration Protocol · 동적 호스트 구성 프로토콜

는 클라이언트에게 주소를 일정 시간 임대하고 마스크·게이트웨이· 등의 옵션을 제공하는 프로토콜이다. DHCPv4의 와 의 DHCPv6는 별도 메시지 체계이며 기본 게이트웨이를 얻는 방식도 다르다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 주소 풀과 임대 상태를 중앙 관리하여 수동 주소 중복과 설정 부담을 줄인다.
  • 클라이언트에게 주소뿐 아니라 서비스 접근에 필요한 네트워크 옵션을 전달한다.
  • 갱신·재결합·해제와 충돌 통보로 시간이 지나며 바뀌는 주소 사용 상태를 관리한다.

02어떤 순서로 동작하나

  1. Discover

    INIT 클라이언트는 아직 주소가 없어 보통 0.0.0.0:68에서 제한 브로드캐스트로 서버를 찾는다.

  2. Offer

    서버는 의 후보 주소와 옵션을 제안한다. 여러 서버가 응답할 수 있으며 제안은 최종 사용 확정이 아니다.

  3. Request

    클라이언트는 Requested IP Address와 선택한 Server Identifier를 넣어 요청한다. 브로드캐스트하면 다른 서버도 자신의 제안이 선택되지 않았음을 알 수 있다.

  4. ACK

    선택한 서버가 임대와 설정을 승인한다. 클라이언트는 주소를 정상 사용하기 전에 임대 조건과 충돌 여부를 최종 확인하며, 충돌을 발견하면 해당 주소를 사용하지 않는다.

  5. 충돌 여부에 따른 분기

    충돌이 없으면 임대를 사용한다. 충돌을 발견하면 으로 알리고 새 주소 획득 절차를 시작한다.

  6. 갱신과 재바인딩

    중 에 이르면 기존 서버로 를 유니캐스트하여 연장을 시도한다. ACK 없이 에 이르면 에서 브로드캐스트하여 다른 서버도 응답할 수 있게 한다.

  7. 연장 성공 또는 사용 중단

    유효한 ACK를 받으면 새 임대 조건으로 를 이어 간다. NAK을 받거나 갱신 없이 임대가 끝나면 그 주소 사용을 중단하고 새 설정 획득 절차로 돌아간다.

03먼저 알아둘 용어와 구성요소

주소를 사용할 수 있는 유효 시간과 서버의 할당 기록이다.
ID다. 요청과 관련 응답을 대응시키는 32비트 식별 값이다.
임대 연장 시도를 시작하는 시간이다. 서버가 별도 값을 주지 않으면 보통 임대 기간의 50%를 사용한다.
재바인딩을 시작하는 시간이다. 별도 값이 없으면 보통 임대 기간의 87.5%를 사용한다.
DHCPv4 신규 임대의 대표 흐름인 Discover, Offer, Request, ACK의 머리글자를 묶은 이름이다.
클라이언트가 사용할 서버와 설정을 찾기 위해 보내는 메시지다.
서버가 제공할 수 있는 주소와 설정 조건을 제안하는 메시지다.
클라이언트가 선택한 임대 또는 기존 임대의 확인·연장을 요청하는 메시지다. 상태에 따라 목적지와 필드가 달라진다.
서버가 임대와 설정을 승인하여 클라이언트에게 알려 주는 메시지다.
클라이언트가 요청한 주소 상태를 인정할 수 없음을 서버가 알리는 메시지다.
클라이언트가 제공받은 주소의 충돌을 발견했음을 서버에 알리는 메시지다.
클라이언트가 임대받은 주소와 설정을 사용하는 상태다.
이후 기존 서버를 대상으로 임대 연장을 시도하는 상태다.
이후 기존 서버에 한정하지 않고 임대 연장을 시도하는 상태다.
Gateway IP Address 필드다. 릴레이가 클라이언트가 속한 네트워크를 서버에 알리고 응답 경로를 정하는 데 사용한다.
Client IP Address 필드다. 이미 주소를 알고 사용하는 클라이언트의 주소를 나타내는 상태에서 사용한다.
Your IP Address 필드다. 서버가 클라이언트에게 제안하거나 할당하는 주소를 담는다.
Requested IP Address 옵션이다. 클라이언트가 원하는 주소를 나타낸다.
Server Identifier 옵션이다. 관련 서버를 식별한다.
Agent Information 옵션이다. 릴레이 경로의 회선·단말 위치 식별 정보를 전달할 수 있다.
LEARN THROUGH PRACTICE

실습: 주소 풀·클라이언트 임대·두 서버의 Offer 비교

풀 설정이 클라이언트 주소로 이어지는 과정과 복수 Offer에서 한 임대가 확정되는 과정을 구분한다.

실습 구성과 전제

  • 첫 사례는 192.168.0.1 라우터와 VPCS, 두 번째는 .254·.253 서버의 별도 캡처다. 서로 다른 실행이다.
  • 주소 풀의 제외 범위와 게이트웨이 주소를 먼저 정한다. 명령의 풀 이름 LAB은 재구성한 이름이다.
  1. 주소 풀과 제외 범위 구성

    • 네트워크는 /24이며 .1~.9는 고정 장치에 사용하도록 제외한다. default-router는 클라이언트에게 줄 옵션이고 라우터 자신의 인터페이스 주소 설정을 대신하지 않는다.
    • 풀 이름은 로컬 관리 이름이다. 다른 서버의 풀 이름과 같다고 동일 풀을 공유하는 것은 아니다.
    text
    ip dhcp excluded-address 192.168.0.1 192.168.0.9
    ip dhcp pool LAB
     network 192.168.0.0 255.255.255.0
     default-router 192.168.0.1
    exit
    interface FastEthernet0/0
     ip address 192.168.0.1 255.255.255.0
     no shutdown

    실제 풀·제외 범위를 반영한 IOS 재구성 예시

    확인 기준

    서버 인터페이스 .1/24와 풀 네트워크가 일치하며 제외 주소를 동적으로 배정하지 않아야 한다.

  2. 주소가 없던 PC의 임대 결과 확인

    • VPCS의 show ip는 초기 주소 0.0.0.0/0을 보인다. ip 이후 .10/24와 게이트웨이 .1이 출력된다.
    • 이 결과는 첫 가용 주소가 .10이었던 해당 실행이다. 모든 구현이 항상 가장 작은 주소부터 배정한다고 일반화하지 않는다.
    text
    PC1> ip dhcp
    PC1> show ip
    
    R1# show ip dhcp binding
    R1# show ip dhcp pool

    실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.

    DHCP · 실습·개념 참고 화면 7원본 크기로 보기 ↗
    • 초기 IP/MASK는 0.0.0.0/0, GATEWAY도 0.0.0.0이다.
    • ip dhcp 뒤 IP 192.168.0.10/24 GW 192.168.0.1이 보인다.
    확인 기준

    클라이언트 값과 서버의 임대 테이블을 대조한다.

  3. 별도 두 서버 사례의 거래 식별

    • 같은 ID에 .254와 .253의 Offer가 보인다. Offer 개수를 최종 임대 개수로 읽지 않는다.
    • Discover는 0.0.0.0에서 브로드캐스트로 향하며 68→67이다. Request와 ACK를 이어서 읽고 선택 서버는 Request의 Server Identifier 옵션으로 확정한다.
    DHCP · 실습·개념 참고 화면 13원본 크기로 보기 ↗
    • 동일 거래에 서로 다른 두 서버의 Offer가 보인다.
    • Discover의 출발지 0.0.0.0, 목적지 255.255.255.255와 UDP 68→67이 보인다.
    확인 기준

    화면에 접히거나 잘린 옵션값을 추정하지 않고 상세 트리에서 확인한다.

  4. 응답의 유니캐스트와 BOOTP op 구분

    • 선택한 Offer는 67→68이며 제안받을 클라이언트를 향한 유니캐스트다. 응답이 항상 브로드캐스트라는 설명은 맞지 않는다.
    • Boot Reply (2)는 BOOTP op이며 Offer 유형 옵션과 구분한다. ACK 이후의 는 주소 사용 과정의 추가 관찰이다.
    DHCP · 실습·개념 참고 화면 16원본 크기로 보기 ↗
    • Offer가 192.168.0.254에서 192.168.0.1로 향한다.
    • UDP 67→68 및 Message type Boot Reply (2)가 보인다.
    확인 기준

    서버의 ACK와 클라이언트 주소 적용을 함께 확인한다.

실습에서 확인한 동작 원리

  • 풀·제외·인터페이스·옵션은 각각 다른 구성 요소다.
  • 는 거래 식별자와 클라이언트 식별자를 묶어 추적해야 한다.
관련 개념·전체 실습 화면 이어서 읽기 →
동작·명령 참고 문서

04예제로 따라가기

  • 클라이언트가 =0x12345678로 Discover를 보낸다. 릴레이 주소는 192.0.2.1이고 서버 A·B가 서로 충돌하지 않는 풀에서 주소를 제안하는 예다. A는 192.0.2.100, B는 192.0.2.150을 같은 거래에 대한 Offer로 제안한다. Offer를 두 개 받았다고 클라이언트가 두 주소를 동시에 임대로 사용하지 않는다.
  • 클라이언트는 를 연결해 Requested IP=192.0.2.100, Server Identifier=A인 Request를 보낸다. B도 이를 보고 자신의 제안이 선택되지 않았음을 판단할 수 있다. A의 ACK에 있는 임대·마스크·라우터 옵션을 확인하고 주소 중복 확인을 수행한다. 충돌이 드러나면 Decline으로 알리고 그 주소를 정상 주소로 사용하지 않는다.
  • 성공한 임대가 3600초이고 ·가 별도 지정되지 않으면 기본 비율로 =1800초, =3150초다. 갱신 성공 시 받은 새 임대 정보를 기준으로 시간 상태가 다시 정해진다.

05혼동하기 쉬운 점과 확인 기준

  • 클라이언트 구간에서 Discover가 보이지만 서버 구간에 없으면 helper 적용 인터페이스·서버 경로·전달 정책을 좁힌다. 릴레이 설정은 클라이언트 브로드캐스트를 받는 인터페이스와 연결된다.
  • 서버가 Discover를 받아도 가 가리키는 링크의 풀이 없거나 주소가 소진되면 정상 Offer를 만들지 못할 수 있다. 서버 자체 인터페이스의 만 보는 것으로는 부족하다.
  • 서버가 ACK를 송신한 증거와 릴레이 수신·클라이언트 전달을 분리한다. 서버의 반환 경로와 릴레이가 사용하는 유니캐스트·브로드캐스트 전달 조건을 함께 본다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

표준

RFC 2131 §4.4·Figure 5: 클라이언트 상태 기계

이후 갱신·재바인딩·만료를 읽어 상태별 필드가 달라지는 이유를 이해한다.

읽으면서 확인할 것
  • SELECTING·INIT-REBOOT·의 필드 차이
  • §4.4.5의 유니캐스트와 브로드캐스트
  • 또는 임대 만료의 사용 중단

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.