[네트워크] DHCP (Dynamic Host Configuration Protocol)

1. DHCP의 개념

DHCP (Dynamic Host Configuration Protocol) 서버는 자신의 네트워크 안의
호스트에게 IP주소, 서브넷마스크, 게이트웨이 주소, DNS 서버 주소를 할당한다.
한번 할당된 IP는 해당 호스트에 영구적으로 종속되는 것이 아니라 일정 기간 후에 회수되고 다시 할당된다.
IP를 할당받은 호스트는 항상 네트워크에 접속해 있는 것은 아니다. 그렇다면 다른 호스트가 IP를 요구할 때 이 IP를 할당할 수 있다.
이 작동방식은 한정된 IP로 여러명의 호스트가 네트워크를 사용할 수 있게 해준다.

2. DHCP 서버의 작동 방식

DHCP discover, DHCP offer, DHCP request, DHCP ACK 4단계로 나누어지며, UDP를 사용한다.
IP가 없는 장비는 연결 지향형 프로토콜인 TCP 통신이 불가능하기 때문이다.
서버는 67번 포트, 클라이언트는 68번 포트를 기본으로 사용하게 된다.

image

1) DHCP discover

클라이언트가 DHCP 서버를 찾는 메세지이다.

보내는이 src dst yiaddr transaction ID
Client 0.0.0.0, 68 255.255.255.255, 67 0.0.0.0 654

[DHCP discover 주요 필드]

클라이언트는 아직 IP가 없기 때문에 src는 0.0.0.0, 68 이고, DHCP서버의 주소를 모르기 때문에 dst는 255.255.255.255, 67로 브로드캐스트 한다.
yiaddr은 클라이언트에 할당되는 IP를 저장하는 필드이고, transaction ID는 다른 클라이언트와 자신을 구분하기 위한 ID이다.
이때, DHCP 서버는 하나일 수도 있고, 여러개일 수도 있다.

2) DHCP offer

DHCP discover 메세지를 받은 DHCP 서버가 클라이언트에게 IP를 제안하는 메세지이다.

보내는이 src dest yiaddr transaction ID lifetime
Server 223.1.2.5, 67 255.255.255.255, 68 223.1.2.4 654 3600s

[DHCP offer 주요 필드]

서버는 자신이 갖고 있는 DHCP pool에서 할당 가능한 IP를 yiaddr 필드에 적는다.
lifetime 필드는 IP주소 임대 기간이다.
아직 클라이언트에게 IP를 할당한 것이 아니기 때문에 메세지를 브로드캐스트 한다.

3) DHCP request

클라이언트는 여러개의 DHCP 서버로부터 offer 메세지를 받는다.
제안된 IP중 하나를 선택하여 DHCP request 메세지를 브로드캐스트 한다.

보내는이 src dest yiaddr transaction ID lifetime
Client 0.0.0.0, 68 255.255.255.255, 67 223.1.2.4 654 3600s

[DHCP resuqest 주요 필드]

메세지를 브로드캐스트 하는 이유는 다른 DHCP 서버에게도 자신이 IP를 선택했다는 것을 알려주기 위함이다.
해당 메세지를 받은 DHCP 서버는 yiaddr필드를 확인하여 자신이 제안한 IP가 아니라면 해당 IP 예약을 취소하고 다른 클라이언트에게 제안한다.

4) DHCP ACK

클라이언트가 해당 IP를 사용하겠다는 메세지에 대한 답변이다.
yiaddr 필드가 자신이 제안한 IP인 DHCP서버는 IP를 임대중 상태로 바꾸고 DHCP ACK 를 브로드캐스트 한다.

보내는이 src dest yiaddr transaction ID lifetime
Server 223.1.2.5, 67 255.255.255.255, 68 223.1.2.4 654 3600s

[DHCP ACK 주요 필드]

DHCP ACK를 받은 후 클라이언트는 이제 해당 IP를 사용하여 통신할 수 있게 된다.

3. 외부 네트워크의 DHCP 서버

항상 하나의 네트워크 안에 DHCP서버가 존재하지는 않는다.
외부에 DHCP서버가 있다면 브로드캐스트되는 메세지는 라우터에서 폐기된다.
이를 위해 DHCP Relay Agent를 사용한다.
네트워크에서 브로드캐스팅 된 메세지가 DHCP라면 라우터는 해당 메세지를 DHCP서버로 보내는 유니캐스트 메세지로 변환하여 전송한다.

카테고리:

업데이트:

댓글남기기