본문 바로가기

DHCP

Dynamic Host Configuration Protocol.

IP 주소 체계의 단점을 보완하기 위한 방법이다.

 

 

 

현재 IP 주소 체계에는 다음과 같은 단점이 있다.

 

1. IP 주소 배정하는 작업이 복잡하다.

2. IP 주소가 부족하다.

 

1. IP 주소를 배정하는 작업이 복잡하다.

네트워크 관리자 입장에서 IP 주소 배정은 여간 어려운 일이 아니다. 관리해야 하는 PC 수가 적다면 쉬울 지도 모르겠으나 보통 수백, 수천 대의 PC를 관리하게 된다. 게다가 PC를 포맷하거나 다른 부서로 가거나, 아예 다른 곳으로 가거나 하게 되면 더 골치아파진다. 원래 쓰던 IP 주소를 찾고, 안 쓰는 IP 주소를 찾아서 할당하는 일이 생각보다 복잡하고 머리아픈 일이다. 특히 PC를 포맷한다면 IP주소 설정까지 지워지는데, 사용자들은 보통 자신이 사용하는 IP 주소를 모른다.

 

IP 주소의 가장 큰 특징은 서로 같으면 안 되는 것, 즉 '충돌'이 발생하면 안 된다는 건데, 그러다 보니 수백 대의 PC가 있다면 그 만큼의 서로 다른 IP 주소를 할당해야 하는 것이다. 말로는 간단한 듯 하지만 실제로 해보면 절대 간단하지 않다.

군 CERT에서 일할 때 가장 힘든 건 훈련이 아니라 IP 주소 관리였다...

 

2. IP 주소가 부족하다.

현재 우리가 쓰는 IP 주소는 0.0.0.0 ~ 255.255.255.255의 총 2^32(= 4,294,967,296)개다.

여기서 루프백 IP나 네트워크 주소, 브로드캐스트 주소 등등 고정된 특수한 주소 몇 개를 빼면 약간 적어진다.

 

예전에는 이 정도로도 충분했지만 대부분의 사람들이 PC를 사용하게 되면서 IP 주소가 부족해졌다.

당장 나부터도 내 소유의 PC로 랩탑, 데스크탑이 있다. 학교를 생각해보면 컴퓨터실같은 곳에 수십 대의 PC가 있으니 IP 주소가 부족해질 만도 하다.

그런데 이 PC들이 항상 켜져 있지는 않다. 사용하지 않을 때도 IP 주소를 점유하고 있다면 IP 주소가 낭비되는 것이다.

 

 

DHCP(Dynamic Host Configuration Protocol)는 IP 주소를 자동으로 할당하는 방식이다.

우선 PC가 켜진 직후에는 IP 주소가 할당되어 있지 않은 상태일 것이다. 그리고 DHCP 서버에 IP 주소를 요청하면 자동적으로 남는 IP, 즉 0.0.0.0~255.255.255.255에서 특수한 주소를 빼고, (충돌이 일어나지 않도록) 아무도 사용하고 있지 않은 IP 주소를 나에게 할당해주는 것이다. 이런 방식은 앞에서 말한 단점을 해결하는 데에 도움을 준다.

 

우선 켜져 있는 PC들만 IP 주소를 할당받게 되므로 부족한 IP 주소를 효율적으로 사용할 수 있게 해준다.

그리고 네트워크 관리자가 따로 IP 주소를 할당할 필요가 없다. 따라서 IP 주소가 충돌할 위험도 적어지고, 사용자들도 본인의 IP 주소를 알 필요가 없어진다.

 

앞에서는 IP 주소를 자동으로 할당한다고 했지만 사실 DHCP는 할당할 IP 주소에 맞게 서브넷 마스크와 게이트웨이 주소도 DHCP로 할당한다.

 

 

DHCP는 다음과 같은 방식으로 작동한다.

 

 

Discover: 네트워크 정보(IP 주소, 서브넷 마스크 등)를 받기 위해 동일 네트워크 내에서 DHCP 서버를 찾는 패킷

Offer: Discover 패킷을 받은 DHCP 서버가 호스트에게 네트워크 정보를 제안하는 패킷.

Request: Offer 패킷으로 받은 네트워크 정보를 사용하기 위해 서버에 요청하는 패킷

ACK(ACKnowledge): 서버에서 확인했음을 알리는 완료 패킷

 

ACK 패킷을 받은 클라이언트는 자신이 제공받은 네트워크 정보를 사용하는 PC가 있는지, 즉 충돌 여부를 확인한 후 사용하게 된다.

이 때 충돌 여부는 GARP를 통해 확인한다. 브로드캐스트로 GARP 패킷을 뿌린 후 응답이 없으면 네트워크 정보를 적용하고 응답이 있으면 다시 위의 과정을 반복하는 것이다. 이 방법이 유효한 것은 GARP 특성 상 응답이 있으면 나와 같은 IP 주소를 사용하는 PC가 존재한다는 뜻이 되기 때문이다. (GARP: https://t0pli.tistory.com/152 참고)

'Network' 카테고리의 다른 글

Gratuitous ARP  (0) 2021.02.08
인터넷, 인트라넷, 엑스트라넷  (0) 2019.05.17