TCP/IP 기반의 모든 디바이스는 아래 항목을 모두 갖고 있어야 한다.
IP 주소
서브넷 마스크
게이트웨이
네임 서버
DHCP
개별 디바이스가 위 4가지를 모두 개별적으로 관리하는 것은 어려운 설정 작업이다. 따라서 DHCP(Dynamic Host Configuration Protocol) 를 사용한다.
네트워크에서 호스트의 구성 프로세스를 자동화하는 애플리케이션 계층 프로토콜
개별 디바이스는 네트워크에 연결될 때 DHCP 서버에 요청하고 응답을 받아 네트워크 구성을 한 번에 설정할 수 있음
네트워크 구성을 관리하는 오버헤드를 줄일 뿐만 아니라 디바이스별로 IP 주소를 자동으로 할당하는 기능도 제공함
DHCP의 IP 할당 방식
Dynamic Allocation
클라이언트에게 할당할 IP 주소들을 갖고 있다가 요청 시 하나를 줌
같은 디바이스가 네트워크에 연결해도 다른 IP 주소를 할당받을 가능성이 높음
Automatic Allocation
Dynamic Allocation 과 동일하게 클라이언트에게 할당할 IP 주소 목록을 갖고 있음
디바이스에서 요청이 들어올 경우 이전에 해당 디바이스에게 할당한 IP 주소 정보를 기억하고 있다가 같은 디바이스에 같은 IP 주소를 할당함
Fixed Allocation
MAC 주소에 대응되는 IP 주소를 갖고 있어 특정 디바이스가 요청을 하면 그 MAC 주소에 대응되는 IP 주소를 할당함
MAC 주소에 해당하는 IP 주소가 없을 경우, 위 방법들로 할당하거나 할당을 거부함
보안을 위해 사용
DHCP 동작 방식
네트워크 설정을 위해 클라이언트가 DHCP 서버에 요청하는 것을 DHCP discovery 라고 한다.
DHCP 클라이언트가 DHCP 서버를 찾는 요청을 보낸다. DHCP 클라이언트는 자신의 IP도 모르고 DHCP 서버의 IP도 모르기 때문에 정해진 규격에 따라 패킷을 전송하는데, 클라이언트는 UDP 로 0.0.0.0:67 의 주소를 갖고 목적지 255.255.255.255:68 로 브로드캐스트한다.
DHCP 서버는 요청을 확인하고 시스템의 설정값들을 확인한 뒤 제공할 IP 주소를 결정한다.
DHCP 서버는 응답으로 발신 주소를 제공할 IP와 67번 포트로 설정하고 목적지를 255.255.255.255:68 로 하여 브로드캐스트한다. 이때, 검색 요청을 한 MAC 주소를 목적지 MAC 주소로 설정해놓았기 때문에 DHCP discovery 요청을 보낸 클라이언트가 이 응답을 수신할 수 있다.
이후 DHCP 클라이언트는 데이터를 잘 받았다고 다시 브로드캐스트하며 DHCP 서버도 다시 ACK 응답을 한다.
DHCP 서버에서 받은 설정 정보는 네트워크 구성을 모두 마칠 수 있는 정보를 포함할 수 있어야 하며, 일정 기간동안만 사용되는 정보이기에 DHCP lease 라고도 부른다. 이 기간은 설정에 따라 다르며 만료될 경우 다시 discovery 해야 한다.