logo

DHCP(동적 호스트 구성 프로토콜)

동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol)은 네트워크의 장치(예: 컴퓨터, 스마트폰, 프린터)에 IP 주소 및 기타 네트워크 구성 매개변수를 할당하는 프로세스를 자동화하는 데 사용되는 네트워크 프로토콜입니다.

DHCP란 무엇입니까?

DHCP는 동적 호스트 구성 프로토콜을 나타냅니다. 이는 기업 네트워크 사용자가 통신하는 중요한 기능입니다. DHCP는 기업이 원활하게 할당을 관리하도록 돕습니다. IP 주소 데스크톱, 노트북, 휴대폰 등과 같은 최종 사용자 클라이언트 장치에 다음을 제공하는 데 사용되는 애플리케이션 계층 프로토콜이 있습니다.



Subnet Mask (Option 1 - e.g., 255.255.255.0) Router Address (Option 3 - e.g., 192.168.1.1) DNS Address (Option 6 - e.g., 8.8.8.8) Vendor Class Identifier (Option 43 - e.g.,  'unifi' = 192.168.1.9 ##where unifi = controller)>

DHCP는 다음을 기반으로 합니다. 클라이언트-서버 모델 검색, 제안, 요청 및 ACK를 기반으로 합니다.

DHCP를 사용하는 이유는 무엇입니까?

DHCP는 전체 프로세스를 자동으로 중앙에서 관리하는 데 도움이 됩니다. DHCP는 서버를 사용하는 호스트의 고유한 IP 주소를 유지하는 데 도움이 됩니다. DHCP 서버는 TCP/IP 구성에 대한 정보를 유지하고 임대 제안의 형태로 DHCP 사용 클라이언트에 주소 구성을 제공합니다.

C 배열로 프로그래밍하기

DHCP의 구성요소

DHCP의 주요 구성 요소는 다음과 같습니다.



  • DHCP 서버: DHCP 서버는 IP 주소 및 구성과 관련된 기타 정보를 보유하는 서버입니다.
  • DHCP 클라이언트: 서버로부터 구성 정보를 수신하는 장치입니다. 모바일, 노트북, 컴퓨터 또는 연결이 필요한 기타 전자 장치일 수 있습니다.
  • DHCP 릴레이: DHCP 릴레이는 기본적으로 DHCP 클라이언트와 서버 간의 통신 채널로 작동합니다.
  • IP 주소 풀: DHCP 서버가 소유한 IP 주소의 풀 또는 컨테이너입니다. 장치에 할당할 수 있는 주소 범위가 있습니다.
  • 서브넷: 서브넷은 네트워크를 제어하기 위해 분할된 IP 네트워크의 작은 부분입니다.
  • 임차권: 단순히 서버로부터 받은 정보가 얼마 동안 유효한지 시간을 말하며, 임대 기간이 만료되면 임차인은 임대 계약을 다시 할당해야 합니다.
  • DNS 서버: DHCP 서버도 다음을 제공할 수 있습니다. DNS(도메인 이름 시스템) 서버 정보를 DHCP 클라이언트에 전달하여 도메인 이름을 IP 주소로 확인할 수 있도록 합니다.
  • 기본 게이트웨이: DHCP 서버는 대상이 로컬 네트워크 외부에 있을 때 패킷이 전송되는 장치인 기본 게이트웨이에 대한 정보도 제공할 수 있습니다.
  • 옵션: DHCP 서버는 서브넷 마스크, 도메인 이름, 시간 서버 정보와 같은 추가 구성 옵션을 클라이언트에 제공할 수 있습니다.
  • 갱신: DHCP 클라이언트는 임대가 만료되기 전에 임대 갱신을 요청하여 유효한 IP 주소와 구성 정보를 계속 유지할 수 있습니다.
  • 장애 조치: 장애 조치를 위해 DHCP 서버를 구성할 수 있습니다. 즉, 두 서버가 함께 작동하여 중복성을 제공하고 한 서버가 다운되더라도 클라이언트가 항상 IP 주소와 구성 정보를 얻을 수 있도록 보장합니다.
  • 동적 업데이트: 또한 DHCP 서버는 DHCP 클라이언트의 IP 주소로 DNS 레코드를 동적으로 업데이트하도록 구성할 수 있으므로 네트워크 리소스를 더 쉽게 관리할 수 있습니다.
  • 감사 로깅: DHCP 서버는 모든 DHCP 트랜잭션에 대한 감사 로그를 유지하여 관리자에게 어떤 장치가 어떤 IP 주소를 사용하고 있는지, 언제 임대가 할당되거나 갱신되는지에 대한 가시성을 제공합니다.

작업 코드 하드웨어 유형 하드웨어 길이 홉 수
전환 ID
초 수 플래그
클라이언트 IP 주소
귀하의 IP 주소
서버 IP 주소
게이트웨이 IP 주소

클라이언트 하드웨어 주소

(16바이트)



서버 이름

(64바이트)

부팅 파일 이름

(128바이트)

옵션

(가변 길이)

컴퓨터 네트워크

그림. DHCP 패킷 형식

  • 하드웨어 길이: 이는 물리적 주소의 길이를 바이트 단위로 정의하는 8비트 필드입니다. 예를 들어 이더넷 값은 6입니다.
  • 홉 수: 이는 패킷이 이동할 수 있는 최대 홉 수를 정의하는 8비트 필드입니다.
  • 거래 ID: 이는 정수를 전달하는 4바이트 필드입니다. 거래 식별은 클라이언트에 의해 설정되며 응답과 요청을 일치시키는 데 사용됩니다. 서버는 응답으로 동일한 값을 반환합니다.
  • 초 수: 클라이언트가 부팅을 시작한 이후 경과된 시간(초)을 나타내는 16비트 필드입니다.
  • 깃발: 16비트 필드로 가장 왼쪽 비트만 사용하고 나머지 비트는 os로 설정해야 합니다. 가장 왼쪽 비트는 서버의 강제 브로드캐스트 응답을 지정합니다. 응답이 클라이언트에 유니캐스트되는 경우 대상입니다. IP 패킷의 IP 주소는 클라이언트에 할당된 주소입니다.
  • 클라이언트 IP 주소: 이는 클라이언트 IP 주소를 포함하는 4바이트 필드입니다. 클라이언트에 이 정보가 없으면 이 필드의 값은 0입니다.
  • 귀하의 IP 주소: 이는 클라이언트 IP 주소를 포함하는 4바이트 필드입니다. 클라이언트의 요청에 따라 서버에 의해 채워집니다.
  • 서버 IP 주소: 이는 서버 IP 주소를 포함하는 4바이트 필드입니다. 이는 응답 메시지로 서버에 의해 채워집니다.
  • 게이트웨이 IP 주소: 라우터의 IP 주소를 포함하는 4바이트 필드입니다. IT는 서버에 의해 응답 메시지로 채워집니다.
  • 클라이언트 하드웨어 주소: 이것이 실제 주소 서버는 클라이언트가 보낸 프레임에서 이 주소를 검색할 수 있지만 요청 메시지에서 클라이언트가 주소를 명시적으로 제공하는 경우 더 효율적입니다.
  • 서버 이름: 이는 응답 패킷에서 서버가 선택적으로 채우는 64바이트 필드입니다. 여기에는 서버의 도메인 이름으로 구성된 null로 끝나는 문자열이 포함되어 있습니다. 서버가 이 필드를 데이터로 채우지 않으려면 서버는 이 필드를 모두 0으로 채워야 합니다.
  • 부팅 파일 이름: 이는 응답 패킷에서 서버가 선택적으로 채울 수 있는 128바이트 필드입니다. 여기에는 부팅 파일의 전체 경로 이름으로 구성된 null로 끝나는 문자열이 포함되어 있습니다. 클라이언트는 이 경로를 사용하여 다른 부팅 정보를 검색할 수 있습니다. 서버가 이 필드를 데이터로 채우지 않으려면 서버는 이 필드를 모두 0으로 채워야 합니다.
  • 옵션: 이는 이중 목적을 가진 64바이트 필드입니다. IT는 추가 정보나 일부 특정 공급업체 정보를 전달할 수 있습니다. 이 필드는 응답 메시지에만 사용됩니다. 서버는 99.130.83.99 값을 갖는 IP 주소 형식의 매직 쿠키라는 숫자를 사용합니다. 클라이언트가 메시지 읽기를 마치면 이 마법 쿠키를 찾습니다. 존재하는 경우 다음 60바이트는 옵션입니다.

DHCP 작동

DHCP는 TCP/IP 프로토콜의 응용 프로그램 계층에서 작동합니다. DHCP의 주요 작업은 IP 주소를 클라이언트에 동적으로 할당하고 TCP/IP 구성에 대한 정보를 클라이언트에 할당하는 것입니다. 자세한 내용은 기사를 참조하세요. DHCP 작동 .

DHCP 포트 번호 서버의 경우 67이고 클라이언트의 경우 68입니다. 다음을 사용하는 클라이언트-서버 프로토콜입니다. UDP 서비스 . IP 주소는 주소 풀에서 할당됩니다. DHCP에서는 클라이언트와 서버가 연결을 위해 주로 4개의 DHCP 메시지를 교환합니다. 도라 프로세스 중인데 8개의 DHCP 메시지가 진행 중입니다.

DHCP 작동

DHCP 작동

8가지 DHCP 메시지

1. DHCP 발견 메시지: 서버와 클라이언트 간의 통신 과정에서 생성되는 첫 번째 메시지입니다. 이 메시지는 네트워크에 DHCP 서버/서버가 있는지 여부를 검색하기 위해 클라이언트 호스트에 의해 생성됩니다. 이 메시지는 DHCP 서버를 찾기 위해 네트워크에 존재하는 모든 장치에 브로드캐스트됩니다. 이 메시지의 길이는 342 또는 576바이트입니다.

DHCP 발견 메시지

DHCP 발견 메시지

출처는 그림과 같이 MAC 주소 (클라이언트 PC)는 08002B2EAF2A, 목적지 MAC 주소(서버)는 FFFFFFFFFFFF, 소스 IP 주소는 0.0.0.0(PC는 지금까지 IP 주소가 없었기 때문에), 목적지 IP 주소는 255.255.255.255(사용된 IP 주소) 방송용). 발견한 메시지는 DHCP 서버 또는 네트워크의 서버를 찾기 위해 브로드캐스트되므로 브로드캐스트 IP 주소와 MAC 주소가 사용됩니다.

2. DHCP는 다음 메시지를 제공합니다. 서버는 임대되지 않은 IP 주소와 기타 TCP 구성 정보를 지정하는 이 메시지로 호스트에 응답합니다. 이 메시지는 서버에 의해 브로드캐스트됩니다. 메시지 크기는 342바이트입니다. 네트워크에 둘 이상의 DHCP 서버가 있는 경우 클라이언트 호스트는 수신한 첫 번째 DHCP OFFER 메시지를 수락합니다. 또한 서버를 식별하기 위해 패킷에 서버 ID가 지정됩니다.

DHCP 제안 메시지

DHCP 제안 메시지

이제 Offer 메시지의 경우 원본 IP 주소는 172.16.32.12(예제에서는 서버의 IP 주소), 대상 IP 주소는 255.255.255.255(브로드캐스트 IP 주소), 원본 MAC 주소는 00AA00123456, 대상 MAC 주소는 다음과 같습니다. FFFFFFFFFFFF. 여기서 Offer 메시지는 DHCP 서버에 의해 브로드캐스트되므로 Destination IP 주소는 브로드캐스트 IP 주소이고 Destination MAC 주소는 FFFFFFFFFFFF이고 Source IP 주소는 서버 IP 주소이고 MAC 주소는 서버 MAC 주소입니다.

또한 서버는 제공된 IP 주소 192.16.32.51과 72시간의 임대 시간을 제공했습니다(이 시간 이후에는 호스트 항목이 서버에서 자동으로 삭제됩니다). 또한 클라이언트 식별자는 모든 메시지에 대한 PC MAC 주소(08002B2EAF2A)입니다.

3. DHCP 요청 메시지: 클라이언트가 제안 메시지를 받으면 DHCP 요청 메시지를 브로드캐스팅하여 응답합니다. 클라이언트는 네트워크에 동일한 IP 주소를 가진 다른 호스트가 있는지 확인하기 위해 무료 ARP를 생성합니다. 다른 호스트로부터 응답이 없으면 네트워크에 동일한 TCP 구성을 가진 호스트가 없으며 IP 주소를 수락했음을 나타내는 메시지가 서버로 브로드캐스트됩니다. 이 메시지에는 클라이언트 ID도 추가됩니다.

DHCP 요청 메시지

DHCP 요청 메시지

CSS를 중앙으로 보내는 버튼

이제 요청 메시지는 클라이언트 PC에 의해 브로드캐스트되므로 소스 IP 주소는 0.0.0.0(클라이언트에 현재 IP가 없으므로)이고 대상 IP 주소는 255.255.255.255(브로드캐스트 IP 주소)이며 소스 MAC 주소는 08002B2EAF2A입니다. (PC MAC 주소)이며 대상 MAC 주소는 FFFFFFFFFFFF입니다.

메모 - 이 메시지는 다른 호스트가 제공된 IP를 사용하고 있지 않은지 확인하기 위해 PC에서 ARP 요청 브로드캐스트 후에 브로드캐스트됩니다. 응답이 없으면 클라이언트 호스트는 IP 주소 및 기타 TCP/IP 구성의 수락을 표시하는 DHCP 요청 메시지를 서버에 브로드캐스트합니다.

4. DHCP 승인 메시지: 수신된 요청 메시지에 대한 응답으로 서버는 지정된 클라이언트 ID로 항목을 만들고 임대 시간으로 제공되는 IP 주소를 바인딩합니다. 이제 클라이언트는 서버에서 제공한 IP 주소를 갖게 됩니다.

DHCP 승인 메시지

DHCP 승인 메시지

이제 서버는 제공된 IP 주소와 임대 시간을 사용하여 클라이언트 호스트를 입력합니다. 이 IP 주소는 서버에서 다른 호스트에 제공되지 않습니다. 대상 MAC 주소는 FFFFFFFFFFFF이고 대상 IP 주소는 255.255.255.255이며 소스 IP 주소는 172.16.32.12이고 소스 MAC 주소는 00AA00123456(서버 MAC 주소)입니다.

5. DHCP 부정 승인 메시지: DHCP 서버는 구성된 범위에 따라 유효하지 않은 IP 주소에 대한 요청을 받을 때마다 DHCP Nak 메시지를 클라이언트에 보냅니다. 예를 들어 서버에 사용되지 않은 IP 주소가 없거나 풀이 비어 있는 경우 이 메시지는 서버에서 클라이언트로 전송됩니다.

6. DHCP 거부: DHCP 클라이언트는 제공된 구성 매개변수가 다르거나 유효하지 않다고 판단하면 DHCP 거부 메시지를 서버에 보냅니다. 무상으로 답변이 왔을 때 ARP 임의의 호스트가 클라이언트에 대해 클라이언트는 제공된 IP 주소가 이미 사용 중임을 나타내는 DHCP 거부 메시지를 서버에 보냅니다.

리눅스용 작업 관리자

7. DHCP 해제: DHCP 클라이언트는 DHCP 해제 패킷을 서버로 보내 IP 주소를 해제하고 남은 임대 시간을 취소합니다.

8. DHCP 알림: 클라이언트 주소가 수동으로 IP 주소를 얻은 경우 클라이언트는 DHCP 정보를 사용하여 도메인 이름과 같은 다른 로컬 구성 매개변수를 얻습니다. DHCP inform 메시지에 대한 응답으로 DHCP 서버는 새로운 IP 주소를 할당하지 않고 클라이언트에 적합한 로컬 구성으로 DHCP ack 메시지를 생성합니다. 이 DHCP 확인 메시지는 클라이언트에 유니캐스트됩니다.

메모 - 서버가 다른 네트워크에 있는 경우 모든 메시지는 DHCP 릴레이 에이전트에 의해서도 유니캐스트될 수 있습니다.

DHCP의 장점

  • IP 주소의 중앙 집중식 관리.
  • 중앙 집중화 및 자동화 TCP/IP 구성 .
  • 네트워크에 새 클라이언트를 쉽게 추가할 수 있습니다.
  • IP 주소를 재사용하면 필요한 총 IP 주소 수가 줄어듭니다.
  • 무선 네트워크의 다른 위치로 이동하는 휴대용 장치와 같이 자주 업데이트해야 하는 클라이언트의 IP 주소 변경을 효율적으로 처리합니다.
  • 각 클라이언트를 재구성할 필요 없이 DHCP 서버에서 IP 주소 공간을 간단하게 재구성합니다.
  • DHCP 프로토콜은 네트워크 관리자에게 중앙 집중식 영역에서 네트워크를 구성할 수 있는 방법을 제공합니다.
  • DHCP의 도움으로 새로운 사용자를 쉽게 처리하고 IP 주소를 재사용할 수 있습니다.

DHCP의 단점

  • IP 충돌이 발생할 수 있습니다.
  • DHCP의 문제점은 클라이언트가 모든 서버를 허용한다는 것입니다. 따라서, 근처에 다른 서버가 있는 경우, 클라이언트는 이 서버에 접속할 수 있고, 이 서버는 클라이언트에게 유효하지 않은 데이터를 보낼 가능성이 있다.
  • 클라이언트는 DHCP 서버가 없으면 네트워크에 액세스할 수 없습니다.
  • 새 IP 주소가 할당된 경우 기기 이름은 변경되지 않습니다.

DHCP에 대해 자주 묻는 질문 – FAQ

DHCP와 관련된 일반적인 문제는 무엇입니까?

DHCP 서버가 제대로 설정되지 않으면 IP 주소 충돌, 잘못된 정보 등의 문제가 발생할 수 있습니다. 서브넷 마스크 , 잘못된 기본값 게이트웨이 또는 IP 주소 풀이 부족합니다.

DHCP에서는 어떤 포트가 사용됩니까?

DHCP는 서버에서는 UDP 포트 67을 사용하고 클라이언트에서는 UDP 포트 68을 사용합니다.

DHCP는 어떤 계층 프로토콜입니까?

DHCP는 애플리케이션 계층 프로토콜.

DHCP가 선호되는 이유는 무엇입니까?

이는 고정 주소 할당보다 IP 주소를 관리하는 더 효율적인 방법입니다. DHCP는 안정적인 전송 계층 프로토콜을 사용합니다.