반응형

DHCP 프로토콜이란?

 

1. DHCP란?

DHCP(Dynamic Host Configuration Protocol)는 조직의 네트워크(사설망)의 호스트에게 동적으로 IP주소를 할당하는 프로토콜입니다.

예를들어 본다면, 쉽게 생각하여 IP를 할당하는 공유기에 PC를 연결하면 자동으로 192.168.~ 로 시작하는 IP주소를 자동으로 할당해주는 것과 같습니다.

 

개인 또는 소규모 사업체의 경우 위와같은 공유기 등을 이용하여 사설IP를 할당받아 사용하거나, 각 호스트별로 IP를 관리자가 직접 할당하지만, 호스트가 네트워크 케이블을 연결함과 동시에 자동으로 IP를 할당받아 통신이 될 필요가 있으면서 연결된 호스트 IP를 정해진 규칙에 맞에 관리할 필요가 있다면 DHCP를 선택하는 방법이 좋습니다.

 

 

 

2. DHCP의 장단점

 

DHCP의 장점

 : DHCP 이전에는 네트워크 관리자가 IP주소를 관리하기 위해서는 [ MAC주소 - IP주소 ]를 관리자가 직접 맵핑하여 서버에 저장해 두고 PC와 같은 노드(node)가 부팅되면 BOOTP라는 프로토콜을 이용하여 서버로부터 IP를 알아오는 방식이었습니다.

이러한 방식은 매번 새로운 IP장비를 연결할때마다 관리자가 직접 IP주소와 MAC 주소를 맵핑시켜줘야 할 필요가 있습니다. 하지만 DHCP방식이 도입되면서는 자동으로 PC에 IP주소를 할당해주기 때문에 이러한 문제를 해결할 수 있었습니다.

 

또한 DHCP는 서버에서 모든 사설 IP주소를 관리하기 때문에 IP주소 충돌과 같은 문제를 예방할 수 있습니다.

 

 

DHCP의 단점

: DHCP는 서버가 자동으로 IP를 할당하기 때문에 몇가지 문제가 있습니다. 예를 들어 A라는 PC가 192.168.0.2라는 IP주소를 갖고 있다가 연결이 해제되면 해당 IP주소를 다른 B라는 PC가 할당받을 수 있습니다. 일반적인 경우라면 문제가 없겠지만, 만약 포트포워딩으로 특별한 서비스를 제공하는 경우 정전 등에 의해 공유기(DHCP 서버)가 재부팅될 때, 갑작스럽게 IP주소가 변경되어 서비스가 불통이 될 수 있습니다.

 

또한 IP주소를 기반으로한 인증방식을 갖고 있는 서비스가 사설 네트워크에 제공된다면 이것 역시도 문제를 발생시킬 수 있습니다.

 

이러한 문제들 외에도 보안과 서비스에 관련된 문제들이 있고 이러한 문제를 해결하는 여러 방식들이 존재합니다.

 

 

 

3. DHCP의 원리

DHCP의 IP주소 할당방식은 'IP주소 임대'가 핵심입니다.

특정 장비에 특정 IP주소를 일정 기간동안 빌려주는 방식이고, 해당 시간이 끝나면 다시 서버가 회수합니다.

이 과정에서 장비와 서버는 [IP주소 임대 요청], [임대기간 연장], [IP주소 사전 반납], [재연결 요청] 등의 통신을 수행합니다.

 

 

4. DHCP PACKET

DHCP는 Client는 UDP 68번, Server는 UDP 67번을 사용합니다.

 

 

1) DHCP DISCOVER ( Client -> Server )

 

 

DHCP Discover
DHCP Discover

DHCP Discover Message는 위와같이 네트워크 전체에 '브로드캐스팅'되는 것을 볼 수 있습니다.

 

Client가 Server에 전송하는 Packet으로 Client는 자신의 MAC 주소를 네트워크에 브로드캐스팅합니다.

 

브로드캐스팅된 해당 패킷을 DHCP 서버가 확인하면 'DHCP 서버의 IP주소'와 'DHCP 서버가 할당할 수 있는 IP주소'를 해당 장비에게 전달합니다. (DHCP OFFER)

 

 

2) DHCP OFFER ( Server-> Client )

 

DHCP Offer
DHCP Offer

 

위에서 보면 [172.30.1.254 = 공유기(DHCP 서버)]가 [172.30.1.35 = Client에게 할당하려는 IP주소]에게 DHCP Offer Message를 전송하는 것을 볼 수 있습니다.

 

특이한 것은 DHCP Server가 목적지로 하는 172.30.1.35는 아직 Client의 IP주소가 아니라는 것입니다. 때문에 Client 측에서는 해당 패킷을 수신하면 이더넷(Layer 2) 계층에서는 자신의 MAC 주소를 목적지로 하기 때문에 상위계층(Layer 3, Network)으로 올려 보내지만 해당 Layer에서는 자신을 목적지로 한 IP주소가 아니라고 생각합니다. 해당 장비가 Routing 기능이 활성화되어있다면 어떻게 될지 궁금하네요.

 

어찌 되었든 해당 DHCP Offer Message를 좀 더 보겠습니다.

 

DHCP의 메시지 영역을 보면 아래와 같은 내용이 있습니다.

 

DHCP Offer

해당 내용은 현재 IP주소를 할당하려는 DHCP 서버가 Client에게 할당하려는 IP주소와 네트워크의 정보들을 공지한 것입니다.

 

해당 내용을 참고하여 Client는 해당 IP주소를 사용할 것인지를 판단하고, 해당 IP주소를 할당받기를 원한다면 DHCP 서버에게 DHCP REQUEST Message를 전달합니다.

 

 

3) DHCP REQUEST ( Client -> Server )

 

DHCP Request
DHCP Request

 

DHCP Request는 DHCP Server가 알려준 IP주소와 네트워크 정보를 잘 수신하였고, 해당 IP주소를 할당받겠다는 응답을 전달하는 역할을 수행합니다.

 

위에 보시면 아직 송신지 주소는 0.0.0.0인 상태이며, DHCP Server의 IP주소로 내용을 전달하는 것이 아니라 브로드캐스팅을 수행하는 것을 볼 수 있습니다. 즉, 아직 Client는 IP주소를 할당받지 않은 상태임을 말합니다.

 

서버는 Client의 DHCP Request Message를 수신하면, 해당 내용을 확인했으며 IP주소를 사용해도 좋다는 응답(DHCP ACK)을 보냅니다.

 

 

 

4) DHCP ACK ( Server -> Client )

 

DHCP Ack
DHCP Ack

 

DHCP Ack Message를 수신한 Client는 이제부터 해당 IP주소를 사용하여 네트워크에 패킷을 전송할 수 있습니다.

 

즉, 이 시점부터 IP임대가 시작되는 것입니다. (172.30.1.35 가 저의 IP주소가 되었습니다.)

 

DHCP ACK 패킷을 좀 더 보겠습니다.

 

DHCP Option

DHCP의 Option을 보면 위와 같이 IP주소의 임대 기간이 나와있습니다.

 

해당 DHCP Server는 정확하게 1시간을 임대기간으로 할당하는 것을 볼 수 있습니다.

 

만약 1시간 동안 PC에서 IP 주소 임대 연장에 관련한 요청이 없다면 해당 IP주소는 1시간 후 회수됩니다.

 

그럼 이제 임대연장에 대해 보겠습니다.

 

 

 

5) DHCP IP 임대기간 연장

 

DHCP에서 IP주소의 임대기간을 연장할 때에는 앞서 사용한 DHCP Request Message를 사용합니다.

 

DHCP Request & Ack

위에 패킷을 보게 되면 [172.30.1.35]라는 제가 위에서 할당받았던 IP주소를 사용하여 DHCP 서버(172.30.1.254)에 DHCP Request 메시지를 보내는 것을 볼 수 있습니다.

 

앞서 0.0.0.0으로 브로드캐스팅했던 것과 큰 차이가 있습니다.

 

패킷의 Option 부분에도 큰 차이가 있습니다.

 

DHCP Request ( Client -> Server )

클라이언트가 보낸 메시지에는 위와 같은 내용이 있습니다.

 

즉, IP주소의 임대기간을 90일로 변경해달라는 내용입니다. 기존에 1시간을 할당받았던 것을 생각해보면 너무 파격적이네요.

 

그리고 응답(DHCP Ack)을 보겠습니다.

 

DHCP Ack ( Server -> Client )

응답을 보게 되면 Client의 90일은 할당해주지 않았지만, 위와 같이 1시간으로 임대기간을 변경해 준 것을 볼 수 있습니다.

 

기존에 1시간을 받았다가 30분 정도가 지나 30분이 남았던 임대기간을 1시간으로 재조정한 것입니다.

 

 

 

5. 다음 이야기

이번에 알아본 DHCP의 네 가지 [Discover, Offer, Request, Ack]이외에도 몇 가지 Message들이 존재합니다.

 

물론 위의 네 가지가 가장 압도적인 비율을 차지합니다만, 다음 페이지에서는 위 네가지 이외의 메시지들과 Client 측에서 DHCP Server를 귀찮게 하는 몇 가지 것들을 알아보겠습니다.

반응형

+ Recent posts