DHCP
네트워크에 연결된 장치가 통신하려면 IP 주소가 필요하다.
예를 들어 노트북이나 스마트폰이 와이파이에 연결되면, 해당 장치는 네트워크 안에서 자신을 식별할 IP 주소를 가져야 한다. IP 주소뿐만 아니라 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 같은 설정도 필요하다.
이 설정을 사용자가 직접 하나씩 입력할 수도 있지만, 장치가 많아지면 매우 번거롭다.
IP 주소를 잘못 입력하면 통신이 되지 않을 수 있고, 여러 장치가 같은 IP 주소를 사용하면 IP 충돌도 발생할 수 있다.
이 문제를 해결하기 위해 사용하는 프로토콜이 DHCP이다.
DHCP(Dynamic Host Configuration Protocol)는 네트워크에 연결된 호스트에게 IP 주소와 네트워크 설정 정보를 자동으로 할당해주는 프로토콜이다. 이름 그대로 호스트의 네트워크 설정을 동적으로 구성해주는 방식이다.
DHCP가 필요한 이유
DHCP가 없다면 사용자는 네트워크에 연결할 때마다 직접 IP 설정을 해야 한다.
예를 들어 다음 정보를 직접 입력해야 할 수 있다.
IP 주소
서브넷 마스크
기본 게이트웨이
DNS 서버 주소
작은 네트워크라면 직접 설정할 수도 있다. 하지만 학교, 회사, 카페처럼 많은 장치가 계속 들어오고 나가는 환경에서는 수동 설정이 비효율적이다.
DHCP를 사용하면 새 장치가 네트워크에 연결될 때 DHCP 서버가 사용 가능한 IP 주소를 자동으로 할당한다.
DHCP는 IP 주소뿐만 아니라 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 같은 네트워크 설정도 함께 제공할 수 있다.
덕분에 사용자는 복잡한 IP 설정을 직접 하지 않아도 되고, 관리자는 IP 주소 충돌을 줄이면서 네트워크를 더 쉽게 관리할 수 있다.
DHCP 서버와 DHCP 클라이언트
DHCP는 클라이언트-서버 구조로 동작한다.
DHCP 클라이언트는 IP 주소와 네트워크 설정이 필요한 장치이다.
노트북, 스마트폰, 태블릿, 데스크톱 PC 등이 DHCP 클라이언트가 될 수 있다.
DHCP 서버는 클라이언트에게 IP 주소와 네트워크 설정 정보를 제공하는 장치이다.
가정에서는 보통 공유기가 DHCP 서버 역할을 한다. 회사나 학교에서는 별도의 DHCP 서버를 운영하기도 한다.
DHCP 클라이언트
IP 주소와 네트워크 설정을 요청하는 장치
DHCP 서버
IP 주소와 네트워크 설정을 할당하는 장치
DHCP 서버는 자신이 관리하는 IP 주소 범위를 가지고 있다. 이 범위를 IP 주소 풀이라고 볼 수 있다.
클라이언트가 주소를 요청하면 DHCP 서버는 사용 가능한 주소 중 하나를 골라 일정 기간 동안 빌려준다.
DHCP는 주소를 임대한다
DHCP가 할당하는 IP 주소는 보통 영구적인 것이 아니다.
DHCP 서버는 클라이언트에게 IP 주소를 일정 기간 동안 임대한다. 이 기간을 임대 시간(lease time)이라고 한다.
클라이언트는 임대 시간 동안 해당 IP 주소를 사용할 수 있다. 임대 시간이 끝나기 전에 계속 사용하고 싶다면 임대 갱신을 요청한다.
DHCP 할당
IP 주소를 일정 기간 동안 빌려주는 방식
임대 시간
클라이언트가 해당 IP 주소를 사용할 수 있는 기간
임대 방식은 네트워크에서 IP 주소를 효율적으로 재사용하게 해준다.
예를 들어 카페 와이파이에 연결한 손님이 떠났다면, 그 장치가 사용하던 IP 주소는 나중에 다른 손님에게 다시 할당될 수 있다.
DHCP로 받을 수 있는 정보
DHCP는 IP 주소만 할당하는 것이 아니다.
일반적으로 다음과 같은 네트워크 설정 정보를 함께 제공할 수 있다.
IP 주소
서브넷 마스크
기본 게이트웨이
DNS 서버 주소
임대 시간
IP 주소는 네트워크 안에서 클라이언트를 식별하는 주소이다.
서브넷 마스크는 IP 주소에서 네트워크 주소와 호스트 주소를 구분하는 데 사용된다.
기본 게이트웨이는 다른 네트워크로 나가기 위해 거치는 장치의 주소이다. 보통 가정에서는 공유기 주소가 기본 게이트웨이가 된다.
DNS 서버 주소는 도메인 이름을 IP 주소로 바꿔주는 서버의 주소이다. 예를 들어 브라우저에서 도메인 이름을 입력하면 DNS 서버를 통해 해당 서버의 IP 주소를 알아낸다.
DHCP 동작 과정
DHCP가 IP 주소를 할당하는 기본 과정은 보통 네 단계로 설명한다.
이 과정을 DORA라고 부른다.
Discover
Offer
Request
Acknowledge
DHCP 클라이언트가 DHCP 서버를 찾고, 서버가 주소를 제안하고, 클라이언트가 그 주소를 요청하고, 서버가 최종 승인하는 흐름이다.
1. DHCP Discover
처음 네트워크에 연결된 클라이언트는 아직 IP 주소를 가지고 있지 않다.
그래서 DHCP 서버가 어디에 있는지도 알 수 없다. 이때 클라이언트는 네트워크 전체에 DHCP 서버를 찾는 메시지를 보낸다.
이 메시지를 DHCP Discover라고 한다.
클라이언트
“DHCP 서버 있나요? IP 주소가 필요합니다.”
DHCP Discover는 보통 브로드캐스트 방식으로 전송된다. 클라이언트가 아직 자신의 IP 주소도 모르고, DHCP 서버의 주소도 모르기 때문이다.
2. DHCP Offer
DHCP Discover 메시지를 받은 DHCP 서버는 클라이언트에게 사용할 수 있는 IP 주소를 제안한다.
이 메시지를 DHCP Offer라고 한다.
DHCP 서버
“이 IP 주소를 사용할 수 있습니다.”
DHCP Offer에는 서버가 제안하는 IP 주소뿐만 아니라 서브넷 마스크, 임대 시간, DHCP 서버 주소 같은 정보가 포함될 수 있다.
여러 DHCP 서버가 있는 네트워크라면 클라이언트는 여러 개의 Offer를 받을 수도 있다.
3. DHCP Request
클라이언트는 받은 제안 중 하나를 선택하고, 해당 DHCP 서버에게 그 IP 주소를 사용하겠다고 요청한다.
이 메시지를 DHCP Request라고 한다.
클라이언트
“제안한 IP 주소를 사용하겠습니다.”
이 메시지는 다른 DHCP 서버들에게도 어떤 서버의 제안을 선택했는지 알려주는 역할을 한다. 선택되지 않은 DHCP 서버들은 자신들이 제안했던 IP 주소를 다시 사용 가능한 주소 풀로 돌려놓을 수 있다.
4. DHCP Acknowledge
DHCP 서버는 클라이언트의 요청을 확인한 뒤 최종 승인 메시지를 보낸다.
이 메시지를 DHCP ACK 또는 DHCP Acknowledge라고 한다.
DHCP 서버
“좋습니다. 이 IP 주소를 사용하세요.”
DHCP ACK를 받은 클라이언트는 해당 IP 주소와 네트워크 설정을 자신의 네트워크 인터페이스에 적용한다. 이 시점부터 클라이언트는 네트워크에서 정상적으로 통신할 수 있다.
DORA 과정 정리
DORA 과정을 간단히 정리하면 다음과 같다.
1. Discover
클라이언트가 DHCP 서버를 찾는다.
2. Offer
DHCP 서버가 사용할 수 있는 IP 주소를 제안한다.
3. Request
클라이언트가 제안받은 IP 주소를 사용하겠다고 요청한다.
4. Acknowledge
DHCP 서버가 최종 승인하고 IP 주소를 임대한다.
전체 흐름은 이렇게 볼 수 있다.
클라이언트: DHCP 서버 있나요?
서버: 이 IP 주소를 사용할 수 있습니다.
클라이언트: 그 IP 주소를 사용하겠습니다.
서버: 승인합니다. 이 설정으로 사용하세요.
DHCP 임대 갱신과 반납
DHCP로 받은 IP 주소에는 임대 시간이 있다.
클라이언트는 임대 시간이 끝나기 전에 DHCP 서버에게 계속 사용하겠다고 갱신을 요청할 수 있다. 갱신이 성공하면 같은 IP 주소를 더 오래 사용할 수 있다.
클라이언트가 네트워크를 떠나거나 해당 IP 주소가 더 이상 필요하지 않다면 주소를 반납할 수도 있다. 다만 실제로는 장치가 갑자기 꺼지거나 네트워크에서 빠지는 경우도 많기 때문에, DHCP는 임대 시간이 끝나면 해당 주소를 다시 회수할 수 있는 방식으로 동작한다.
DHCP의 장점
DHCP의 가장 큰 장점은 IP 설정을 자동화할 수 있다는 점이다.
사용자가 직접 IP 주소를 입력하지 않아도 네트워크에 연결되면 자동으로 필요한 설정을 받을 수 있다.
또한 관리자는 IP 주소를 중앙에서 관리할 수 있다. 장치가 많거나 자주 바뀌는 환경에서 특히 유용하다.
학교, 회사, 카페, 도서관처럼 많은 사용자가 네트워크에 접속하는 환경에서는 DHCP가 거의 필수적이다.
DHCP의 단점
DHCP는 DHCP 서버에 의존한다.
DHCP 서버가 제대로 동작하지 않으면 새로 연결된 장치가 IP 주소를 받지 못할 수 있다. 이 경우 네트워크에 연결되어 있어도 정상적인 통신이 어려울 수 있다.
또한 기본 DHCP 자체에는 강력한 인증 기능이 포함되어 있지 않기 때문에, 잘못 설정된 DHCP 서버나 악의적인 DHCP 서버가 네트워크에 존재하면 클라이언트에게 잘못된 네트워크 설정을 제공할 수 있다.
이런 서버를 rogue DHCP server라고 부르기도 한다.
DHCP와 공유기
가정에서 사용하는 공유기는 보통 DHCP 서버 역할을 한다.
스마트폰이나 노트북이 와이파이에 연결되면 공유기가 사설 IP 주소를 자동으로 할당한다.
이때, 공유기가 사설 IP를 할당해주는 기능은 DHCP이고, 사설 IP와 공인 IP를 변환해주는 기능은 NAT이다.
예를 들어 공유기의 내부 네트워크가 192.168.0.0/24라면, 공유기는 내부 장치들에게 다음과 같은 주소를 할당할 수 있다.
노트북: 192.168.0.2
스마트폰: 192.168.0.3
태블릿: 192.168.0.4
장치들은 이 사설 IP 주소를 사용해 같은 네트워크 안에서 통신하고, 외부 인터넷으로 나갈 때는 공유기의 NAT 기능을 통해 공인 IP 주소로 변환되어 통신한다.
DHCP를 통해 공유기가 내부 장치에 사설 IP 주소를 할당하고, NAT를 통해 사설 IP 주소와 공인 IP 주소를 변환한다.
1. 스마트폰이 와이파이에 연결된다.
2. 공유기의 DHCP 기능이 스마트폰에게 사설 IP를 준다.
3. 스마트폰이 인터넷에 접속하려고 한다.
4. 공유기의 NAT 기능이 사설 IP를 공인 IP로 바꿔 외부로 보낸다.
5. 외부 서버의 응답이 공유기로 돌아온다.
6. 공유기는 NAT 기록을 보고 원래 스마트폰에게 응답을 전달한다.
DHCP와 정적 IP 설정
IP 주소를 설정하는 방식은 크게 두 가지로 볼 수 있다.
정적 IP 설정
동적 IP 설정
정적 IP 설정은 사용자가 직접 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버 등을 입력하는 방식이다.
동적 IP 설정은 DHCP를 통해 자동으로 네트워크 설정을 받는 방식이다.
일반 사용자 장치는 보통 DHCP를 사용한다. 반면 서버, 프린터, 네트워크 장비처럼 항상 같은 주소를 유지해야 하는 장치는 정적 IP를 사용하거나 DHCP 예약 기능을 사용할 수 있다.
DHCP 예약은 특정 MAC 주소를 가진 장치에게 항상 같은 IP 주소를 할당하도록 DHCP 서버에 설정하는 방식이다.
'STUDY' 카테고리의 다른 글
| [네트워크] TCP 신뢰성 보장 원리: 오류 제어, 흐름 제어, 혼잡 제어 (1) | 2026.05.28 |
|---|---|
| [네트워크] TCP와 UDP 정리: 연결형 통신과 비연결형 통신 (0) | 2026.05.28 |
| [네트워크] OSI 7계층 정리: 계층별 역할과 대표 프로토콜 매핑 (0) | 2026.05.28 |
| [네트워크] 공인 IP와 사설 IP, NAT 정리 (0) | 2026.05.28 |
| [네트워크] 서브넷 마스크와 CIDR 계산법 정리 (0) | 2026.05.28 |