DHCP란?
- Dynamic Host Configuration Protocol(동적 호스트 구성 프로토콜)의 약자
- 호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동으로 제공해주는 프로토콜
- 네트워크 안의 컴퓨터에 자동으로 네임 서버 주소, IP 주소, 게이트웨이 주소를 할당
- 해당 클라이언트에게 일정 기간 임대해주는 동적 주소 할당 프로토콜
- 네트워크에 사용되는 IP 주소를 DHCP 서버가 중앙 집중식으로 관리하는 클라이언트/서버 모델을 사용
- DHCP 지원 클라이언트는 네트워크 부팅 과정에서 DHCP 서버에 IP 주소를 요청하고 이를 얻을 수 있음
DHCP의 장단점
장점
- 신뢰성 높은 DHCP IP 주소 구성
- 높은 이동성
- 사용자는 네트워크 범위 내에서 어디서든지 모바일 장치 이용 가능
- 효율적인 네트워크 관리
- IP 체계의 유연성
- PC의 수가 많거나 PC 자체 변동사항이 많아도 IP 설정이 자동으로 되기 때문에 효율적인 사용 가능
- 최종 사용자에게 지장을 주지 않으면서 IP 주소 체계를 쉽게 변경 가능
단점
- DHCP 서버에 의존하기 때문에 서버가 다운되면 IP 할당이 제대로 이루어지지 않음
- 아무런 인증을 발생하지 않기 때문에 사이버 공격에 취약
- 승인받지 않은 DHCP 서버가 잘못된 정보를 클라이언트에 제공 가능
- 승인받지 않은 클라이언트가 DHCP 서버를 가로채 리소스에 대한 접근 권한을 탈취 가능
- 악성 클라이언트가 DHCP 리소스를 소모시킬 수 있음
DHCP 구성
DHCP 서버
- 네트워크 인터페이스를 위해 IP 주소를 가지고 있는 서버에서 실행되는 프로그램
- 일정한 범위의 IP 주소를 다른 클라이언트에게 할당하여 자동으로 설정해줌
- 클라이언트에게 할당된 IP 주소를 변경없이 유지해줄 수 있음
- 클라이언트에게 IP 할당 요청이 들어오면 IP를 부여
- 할당 가능한 IP들을 관리
DHCP 클라이언트
- 시스템이 시작하면 DHCP 서버에 IP 주소를 요청
- IP 주소를 부여받으면 TCP/IP 설정이 초기화되고 다른 호스트와 TCP/IP로 통신 가능해짐
DHCP 프로토콜 원리
- DHCP 서버가 IP 주소를 영구적으로 단말에 할당하는 것이 아닌 임대기간(IP Lease Time)을 명시하여 해당 기간 동안만 단말이 IP 주소를 사용하도록 임대해주는 것
- 단말(DHCP Client)이 임대기간 이후에도 해당 IP 주소 사용을 원한다면 IP 주소 임대기간 연장(IP Address Renewal)을 DHCP 서버에 요청 필요
- 임대 받은 IP 주소가 더 이상 필요하지 않으면 IP 주소 반납 절차(IP Address Release) 수행
IP 주소 할당 절차
1. DHCP Discover
- 메세지 방향: 클라이언트 -> DHCP 서버
- 브로드캐스트 메세지 (Destination MAC = FF:FF:FF:FF:FF:FF)
- 클라이언트가 DHCP 서버를 찾기 위한 메세지
- 주요 파라미터
- Client MAC: 클라이언트의 MAC 주소
2. DHCP Offer
- 메세지 방향: DHCP 서버 -> 클라이언트
- DHCP Discover의 Flag가 1이면 브로드캐스트 메세지, Flag가 0이면 유니캐스트 메세지
- DHCP 서버의 존재와 단말에 할당할 IP 주소 등 다양한 네트워크 정보를 전달
- 주요 파라미터
- Client MAC: 클라이언트의 MAC 주소
- Your IP: 클라이언트에 할당(임대)할 IP 주소
- Subnet Mask (Option 1)
- Router (Option 3): 클라이언트의 Default Gateway IP 주소
- DNS (Option 6): DNS 서버 IP 주소
- IP Lease Time (Option 51): 클라이언트가 IP 주소를 사용(임대)할 수 있는 기간(시간)
- DHCP Server Identifier (Option 54): DHCP Offer를 보낸 DHCP 서버의 주소. 2개 이상의 DHCP 서버가 DHCP Offer를 보낼 수 있으므로 각 DHCP 서버는 자신의 IP 주소를 메세지에 포함
3. DHCP Request
- 메세지 방향: 클라이언트 -> DHCP 서버
- 브로드캐스트 메세지
- DHCP 서버의 존재와 제공받을 네트워크 정보를 수신하였으므로 하나의 DHCP 서버를 선택하고 해당 서버에게 클라이언트가 사용할 네트워크 정보를 요청
- 주요 파라미터
- Client MAC: 클라이언트의 MAC 주소
- Requested IP Address (Option 50): 사용을 요청할 IP 주소 (DHCP Offer의 Your IP 주소)
- DHCP Server Identifier (Option 54): 선택한 DHCP 서버의 IP 주소
4. DHCP Ack
- 메세지 방향: DHCP 서버 -> 클라이언트
- DHCP Request의 Flag가 1이면 브로드캐스트 메세지, Flag가 0이면 유니캐스트 메세지
- DHCP 절차의 마지막 메세지이며 DHCP 서버가 클라이언트에게 네트워크 정보를 전달해주는 메세지
- DHCP Offer의 네트워크 정보와 동일한 파라미터가 포함됨
- 주요 파라미터
- Client MAC: 클라이언트의 MAC 주소
- Your IP: 클라이언트에 할당(임대)할 IP 주소
- Subnet Mask (Option 1)
- Router (Option 3): 클라이언트의 Default Gateway IP 주소
- DNS (Option 6): DNS 서버 IP 주소
- IP Lease Time (Option 51): 클라이언트가 IP 주소를 사용(임대)할 수 있는 기간(시간)
- DHCP Server Identifier (Option 54): DHCP Offer를 보낸 DHCP 서버의 주소. 2개 이상의 DHCP 서버가 DHCP Offer를 보낼 수 있으므로 각 DHCP 서버는 자신의 IP 주소를 메세지에 포함
DHCP Ack를 수신한 클라이언트는 IP 주소를 포함한 네트워크 정보를 획득(임대)하게 되고, 인터넷 사용이 가능하게 됨
참고 자료
https://learn.microsoft.com/ko-kr/windows-server/networking/technologies/dhcp/dhcp-top
https://nordvpn.com/ko/blog/what-is-dhcp/
https://jwprogramming.tistory.com/35