출처 - https://github.com/jmxx219/CS-Study (opens in a new tab)
DHCP(Dynamic Host Configuration Protocol)
동적 호스트 설정 프로토콜
등장배경
- TCP/IP 프로토콜을 사용하는 모든 호스트들은 IP 주소 (opens in a new tab), 서브넷 마스크 (opens in a new tab)가 할당되어야 정상적으로 네트워크와 연결이 가능함
- 다른 망과 통신하기 위해서는 디폴트게이트웨이 주소를 알아야하고, IP 주소 대신 도메인 이름을 사용해 통신하기위해 DNS 주소 (opens in a new tab)도 알아야함
- 일반 사용자들이 해당 주소들을 입력하는 것이 쉽지 않으므로 호스트 설정 프로토콜이 등장하게 되었음
DHCP란?
- 개념
- DHCP 서버에 의한 호스트 구성정보 동작할당 절차 정의
- 호스트를 인터넷에 연결할때
호스트 구성정보
를 자동으로 할당해주는 프로토콜- DHCP 서버 :
호스트 구성 정보
를 유지하고 있는 서버
- DHCP 서버 :
- IP주소, 서브넷마스크, 디폴트 게이트웨이 주소, DNS 서버주소 등을 자동으로 할당해주는 프로토콜
- 원리
- 클라이언트가 DHCP 서버에게 IP를 요청하고 DHCP가 현재 사용하지 않는 IP를 잠시 임대해주는 방식
- 같은 IP를 계속 부여하는 것이 아닌 임대 시간 동안 빌려주는 것
- 항상 같은 IP가 아닌 그때 그때마다 동적으로 IP가 변경될 수 있음
- 일반적인 가정집이나 사무실에서 가장 많이 사용되는 네트워크 사용 방법
- 클라이언트가 DHCP 서버에게 IP를 요청하고 DHCP가 현재 사용하지 않는 IP를 잠시 임대해주는 방식
DHCP 특징
- 클라이언트/서버 형태로 동작함
- 동적인 구성 정보를 요청/제공하는 프로토콜
- DHCP 클라이언트(요청) 및 서버(응답)가 동일 서브넷에 있을 수도 있고, 다른 서브넷에 분리될 수 도 있음
- 다른 서브넷에 있을 경우 DHCP Relay Agent 이용함
UDP 기반 프로토콜
- 서버가 사용 가능한 주소를 자동으로 확인하고 네트워크 클라이언트에게 IP 주소를 실시간으로 부여함
- UDP 67(Server)번과 68(Client)번 포트를 사용함
- DHCP는 네트워크 장비의 초기화 과정에서 일어나기 때문에 네트워크 구성 정보를 효율적으로, 빠르게 구성할 수 있어야 함
- 신뢰성보다 속도가 더 중요하기 때문에 UDP를 사용함
- 서버가 사용 가능한 주소를 자동으로 확인하고 네트워크 클라이언트에게 IP 주소를 실시간으로 부여함
장점
- 사용자 편의성
- ip 주소들을 외우고 있지 않아도 됨
- IP 주소 절약
- 필요할 때만 할당하고, 동시 사용자 수만큼 할당함
- 신뢰성 높은 DHCP IP 주소 구성
- 동일한 IP 주소를 사용하는 사용자들 사이 충돌 방지
- 높은 이동성
- 사용자는 네트워크 범위내에서 어디서든지 모바일 장치 이용 가능
- 효율적인 네트워크 관리
- DHCP 이용시 별도 IP 할당 서버가 필요하지 않으며 네트워크 관리 효율성 개선
보안문제
- 승인받지 않은 DHCP 서버가 잘못된 정보를 클라이언트에게 제공할 위험성 존재
- 승인받지 않은 클라이언트가 DHCP서버를 가로채 리소스에 대한 접근 권한 얻을 위험성 존재
- 악성 클라이언트가 DHCP 리소스를 소모시킬 수 있는 위험성 존재
호스트 구성 정보 (Configuration Information)
DHCP 서버는 클라이언트에 다음 기본 정보를 제공한다.
기본 정보
- 호스트 IP 주소
- 동일한 네트워크 주소인지, 다른 네트워크 주소인지 판별
- 서브넷 마스크(Subnetmast)
- 네트워크 ID 필드 크기, 네트워크 주소 구분을 위한 필수 정보
- 서브넷 마스크를 통해 해당 ip 주소와 연결된 네트워크 주소를 계산하고, 그 값을 통해 라우팅
- 디폴트 게이트웨이 주소(Default Gateway Address)
- 자신의 네트워크에 연결된 라우터의 주소, 목적지 주소가 동일 네트워크에 존재하지 않을 때 IP 데이터그램을 전달할 다음 홉 주소
추가 정보
- DNS 서버 주소 (opens in a new tab)
- 지역 DNS 서버의 주소, DNS Query를 전달할 서버
디폴트 게이트웨이 주소
기본적으로 host컴퓨터는 라우팅 테이블 정보가 없다. 따라서 자신과 연결되어있는 네트워크에 해당하는 목적지 주소가 있다면 해당 주소로 전송하면 된다. 하지만 그렇지 않을 경우 라우터로 패킷을 전송해야하고, 이 값을 디폴트 게이트웨이 주소라고 한다.
DHCP 동작 절차
-
DHCP 서버 발견 (DHCP Server Discovery)
- DHCP서버를 찾기 위한 DHCP Discover 메시지 브로드캐스트
- 동일 서브넷 안의 모든 단말들은 해당 메시지 수신
-
DHCP 서버 제안 (DHCP Server Offer)
- Discover메시지를 수신한 DHCP서버는 자신을 알리기 위해 Offer메시지 브로드캐스팅(Broadcasting)
- DHCP Offer 메시지: 제안하는 IP주소, DHCP서버 ID, 임대기간 등 포함
- Offer 메시지 또한 동일 서브넷 안의 모든 단말들이 수신
- Discover메시지를 수신한 DHCP서버는 자신을 알리기 위해 Offer메시지 브로드캐스팅(Broadcasting)
-
DHCP 요청 (DHCP Request)
- DHCP서버 존재를 확인한 호스트는 Request메시지를 브로드캐스팅
- DHCP Request 메시지: 자신에게 IP주소를 제안한 DHCP서버 ID포함
- 특정 DHCP 서버에 요청하며 나머지 DHCP서버도 요청 메시지를 인지
- DHCP서버 존재를 확인한 호스트는 Request메시지를 브로드캐스팅
-
DHCP 확인 (DHCP Ack)
- 서버는 DHCP Request 메시지의 DHCP서버 ID확인
- 자신의 IP 주소와 동일한 경우
- DHCP Ack메시지를 브로드캐스트 방식으로 전송하고 IP주소 할당
- 자신의 IP 주소와 동일하지 않은 경우
- 제안한 IP주소를 IP주소 풀에 그대로 유지
DHCP의 IP주소 할당 방식
-
동적 할당
- 관리자가 DHCP에 IP주소를 유보해놓은 경우 동적할당 방식 활용
- 제한된 수량의 IP주소를 '재사용', '한시적 사용', '자동 재활용' 가능
-
자동 할당
- DHCP서버는 관리자가 정한 규칙에 따라 IP주소 클라이언트에 영구할당하는 방식
- DHCP서버에 이전 IP주소 할당 데이터가 있고, 동일한 IP주소를 동일한 클라이언트에게 재할당할 수 있다는 점에서 동적할당과 다름
-
수동 할당
- 관리자가 각 클라이언트에 대한 고유한 식별자를 IP주소에 수동할당하는 방식
- 미리 할당된 IP주소를 장치에게 전달해 장치가 IP주소 사용
DHCP Relay Agent
-
개념
- DHCP 서버가 없는 서브넷으로부터 다른 서브넷에 존재하는 1개 이상의 DHCP서버에게 DHCP또는
BOOTP
요청을 중계(Relay)
- DHCP 서버가 없는 서브넷으로부터 다른 서브넷에 존재하는 1개 이상의 DHCP서버에게 DHCP또는
-
동작
- DHCP서버가 동일 서브넷 밖에 있을 경우 동일 서브넷 내부에는 반드시 DHCP Relay Agent 존재해야함
- DHCP 클라이언트가 정보 요청시 DHCP Relay Agent는 해당 요청을 지정된 DHCP 서버 목록으로 전송
- DHCP 서버가 응답시 원래 요청을 보낸 네트워크 상으로 DHCP 서버 응답을 브로드캐스트 혹은 유니캐스트(1:1 캐스트)
BOOTP
- 정적으로 클라이언트/서버 형태의 구성정보를 제공하는 프로토콜
- 처음으로 부팅된 컴퓨터, 디스크를 갖지 않은 컴퓨터에게 IP주소등 구성정보 제공
- 지금은 거의 사용되지 않은 구형 프로토콜, 상위버전인 동적 DHCP와는 완벽 호환