DHCP(Dynamic Host Configuration Protocol)

동적 호스트 설정 프로토콜

등장배경

  • TCP/IP 프로토콜을 사용하는 모든 호스트들은 IP 주소, 서브넷 마스크가 할당되어야 정상적으로 네트워크와 연결이 가능함

  • 다른 망과 통신하기 위해서는 디폴트게이트웨이 주소를 알아야하고, IP 주소 대신 도메인 이름을 사용해 통신하기위해 DNS 주소도 알아야함

  • 일반 사용자들이 해당 주소들을 입력하는 것이 쉽지 않으므로 호스트 설정 프로토콜이 등장하게 되었음

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 동작 절차

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

    • DHCP서버를 찾기 위해 단말이 DHCP Discover 메시지를 브로드캐스트함

    • 동일 서브넷 안의 모든 단말들은 해당 메시지 수신할 수 있음

  2. DHCP 서버 제안 (DHCP Server Offer)

    • Discover 메시지를 수신한 DHCP 서버는 자신을 알리기 위해 DHCP Offer 메시지를 브로드캐스팅(Broadcasting)함

      • DHCP Offer 메시지: 제안하는 IP주소, DHCP서버 ID, 임대기간 등 포함

    • Offer 메시지 또한 동일 서브넷 안의 모든 단말들이 수신

  3. DHCP 요청 (DHCP Request)

    • DHCP서버 존재를 확인한 호스트는 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 Relay Agent

  • 필요성

    • 일반적으로 DHCP 메시지는 브로드캐스팅되기 때문에 단말과 DHCP 서버는 반드시 동일 서브넷 상에 위치해야함

      • 그 이유는 라우터가 브로드캐스트 패킷을 다른 인터페이스로 전달하지 않기 때문에 단말이 송신한 DHCP 메세지가 라우터를 통해 DHCP 서버로 전달될 수 없기 때문

    • 하지만 이러한 제약 사항으로 DHCP 서버가 각 서브넷(랜)마다 위치해야만 하는데 실제 통신 사업자 망 혹은 기업망 환경에서 이와 같은 구성은 실용적이지 못함

    • 이와 같은 문제를 해결하기 위해 DHCP Relay Agent 개념이 생겨남

      • 라우터에 DHCP Relay Agent 기능을 설정하면, 서로 다른 서브넷에 위치하는 단말과 DHCP 서버간에도 DHCP 메시지 통신이 가능하게 됨

  • 개념

    • 서로 다른 서브넷에 위치한 클라이언트가 DHCP 서버와 통신할 수 있도록 중계하는 역할

      • 가장 핵심적인 기능은 단말이 송신하는 DHCP 브로드캐스트 패킷을 유니캐스트로 변환하여 DHCP 서버에 전달하는 것

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

  • DHCP Relay Agent가 있는 환경에서 DHCP의 동작 원리

    1. [단말 -> DHCP 서버] DHCP Discover Message

      • 단말이 Discover 패킷을 브로드캐스트하면 이를 DHCP Relay Agent가 수신하여 유니캐스트로 변환하여 DHCP 서버로 전달

    2. [단말 <- DHCP 서버] DHCP Offer Message

      • DHCP 서버가 DHCP Relay Agent에게 유니캐스트로 보내면 이를 수신한 DHCP Relay Agent는 단말로 브로드캐스트로 변환하여 전송

    3. [단말 -> DHCP 서버] DHCP Request Message

      • 단말이 Request 패킷을 브로드캐스트하면 이를 DHCP Relay Agent가 수신하여 유니캐스트로 변환하여 DHCP 서버로 전달

    4. [단말 <- DHCP 서버] DHCP Ack Message

      • DHCP 서버가 DHCP Relay Agent로 유니캐스트로 보내면 이를 수신한 DHCP Relay Agent는 단말로 브로드캐스트로 변환하여 전송

BOOTP

  • 정적으로 클라이언트/서버 형태의 구성정보를 제공하는 프로토콜

  • 처음으로 부팅된 컴퓨터, 디스크를 갖지 않은 컴퓨터에게 IP주소등 구성정보 제공

  • 지금은 거의 사용되지 않은 구형 프로토콜, 상위버전읜 동적 DHCP와는 완벽 호환

DHCP의 IP주소 할당 방식

  • 동적 할당

    • 관리자가 DHCP에 IP주소를 유보해놓은 경우 동적할당 방식 활용

    • 제한된 수량의 IP주소를 '재사용', '한시적 사용', '자동 재활용' 가능

  • 자동 할당

    • DHCP서버는 관리자가 정한 규칙에 따라 IP주소 클라이언트에 영구할당하는 방식

    • DHCP서버에 이전 IP주소 할당 데이터가 있고, 동일한 IP주소를 동일한 클라이언트에게 재할당할 수 있다는 점에서 동적할당과 다름

  • 수동 할당

    • 관리자가 각 클라이언트에 대한 고유한 식별자를 IP주소에 수동할당하는 방식

    • 미리 할당된 IP주소를 장치에게 전달해 장치가 IP주소 사용

Last updated