DHCP(Dynamic Host Configuration Protocol)
동적 호스트 설정 프로토콜
등장배경
다른 망과 통신하기 위해서는 디폴트게이트웨이 주소를 알아야하고, IP 주소 대신 도메인 이름을 사용해 통신하기위해 DNS 주소도 알아야함
일반 사용자들이 해당 주소들을 입력하는 것이 쉽지 않으므로 호스트 설정 프로토콜이 등장하게 되었음
DHCP란?
개념
DHCP 서버에 의한 호스트 구성정보 동작할당 절차 정의
호스트를 인터넷에 연결할때
호스트 구성정보
를 자동으로 할당해주는 프로토콜DHCP 서버 :
호스트 구성 정보
를 유지하고 있는 서버
IP주소, 서브넷마스크, 디폴트 게이트웨이 주소, DNS 서버주소 등을 자동으로 할당해주는 프로토콜
원리
클라이언트가 DHCP 서버에게 IP를 요청하고 DHCP가 현재 사용하지 않는 IP를 잠시 임대해주는 방식
같은 IP를 계속 부여하는 것이 아닌 임대 시간 동안 빌려주는 것
항상 같은 IP가 아닌 그때 그때마다 동적으로 IP가 변경될 수 있음
일반적인 가정집이나 사무실에서 가장 많이 사용되는 네트워크 사용 방법
DHCP 특징
클라이언트/서버 형태로 동작함
동적인 구성 정보를 요청/제공하는 프로토콜
DHCP 클라이언트(요청) 및 서버(응답)가 동일 서브넷에 있을 수도 있고, 다른 서브넷에 분리될 수 도 있음
다른 서브넷에 있을 경우 DHCP Relay Agent 이용함
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 데이터그램을 전달할 다음 홉 주소
추가 정보
지역 DNS 서버의 주소, DNS Query를 전달할 서버
디폴트 게이트웨이 주소
기본적으로 host컴퓨터는 라우팅 테이블 정보가 없다. 따라서 자신과 연결되어있는 네트워크에 해당하는 목적지 주소가 있다면 해당 주소로 전송하면 된다. 하지만 그렇지 않을 경우 라우터로 패킷을 전송해야하고, 이 값을 디폴트 게이트웨이 주소라고 한다.
DHCP 동작 절차
DHCP 서버 발견 (DHCP Server Discovery)
DHCP서버를 찾기 위해 단말이
DHCP Discover 메시지
를 브로드캐스트함동일 서브넷 안의 모든 단말들은 해당 메시지 수신할 수 있음
DHCP 서버 제안 (DHCP Server Offer)
Discover 메시지를 수신한 DHCP 서버는 자신을 알리기 위해
DHCP Offer 메시지
를 브로드캐스팅(Broadcasting)함DHCP Offer 메시지: 제안하는 IP주소, DHCP서버 ID, 임대기간 등 포함
Offer 메시지 또한 동일 서브넷 안의 모든 단말들이 수신
DHCP 요청 (DHCP Request)
DHCP서버 존재를 확인한 호스트는
DHCP Request 메시지
를 브로드캐스팅함DHCP Request 메시지: 자신에게 IP주소를 제안한 DHCP 서버의 ID 포함
특정 DHCP 서버에 요청하며 나머지 DHCP서버도 요청 메시지를 인지
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의 동작 원리
[단말 -> DHCP 서버] DHCP Discover Message
단말이 Discover 패킷을 브로드캐스트하면 이를 DHCP Relay Agent가 수신하여 유니캐스트로 변환하여 DHCP 서버로 전달
[단말 <- DHCP 서버] DHCP Offer Message
DHCP 서버가 DHCP Relay Agent에게 유니캐스트로 보내면 이를 수신한 DHCP Relay Agent는 단말로 브로드캐스트로 변환하여 전송
[단말 -> DHCP 서버] DHCP Request Message
단말이 Request 패킷을 브로드캐스트하면 이를 DHCP Relay Agent가 수신하여 유니캐스트로 변환하여 DHCP 서버로 전달
[단말 <- 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