본문 바로가기
Computer/Network

DHCP (Dynamic Host Configuration Protocol) Service

by 시앙라이 2007. 1. 17.
1.DHCP의 이해

IP Addressing에 대해서 잘 정리를 했다면 이제 할 일은 이러한 IP Address를 네트워크의 모든 호스트에게 할당하는 작업을 해야 할 것이다. 어차피 처음 한번만 잘 해주면 된다 싶은 생각에 일일이 하나씩 클라이언트들의 시스템까지 전체의 IP Address를 잘 셋팅을 해 두었지만 심심치 않게 새로운 시스템도 늘어나고, 몇몇 사용자들의 호기심 때문에 툭하면 IP Address로 인한 네트워크의 문제점이 생기고 있다. 한 두 대도 아니고 수많은 시스템을 관리해야 하는 관리자로서는 이러한 작업이 부담이 되지 않을 수가 없다. 이러한 IP Address 관리작업을 자동화하면 어떨까?
바로 DHCP (Dynamic Host Configuration Protocol)가 이러한 수고를 덜어줄 수 있다.

마이크로소프트는 Windows NT Server, Windows 2000 Server등의 서버OS제품군에서 DHCP서버 서비스를 지원한다. 이때 DHCP서버로 셋팅된 컴퓨터는 클라이언트들에게 할당할 IP Address Pool을 유지하고 있으면서 DHCP프로토콜을 이용해서 IP Address발급을 요청하는 클라이언트에게 IP Address를 할당해 주게 된다. DHCP서비스를 비디오 대여점의 프로세스와 유사하다. 비디오 대여점이 비디오테이프를 대여하는 것 대신에 DHCP서버는 IP Address를 대여하는 역할을 한다. 완전히 소유권이 넘어간게 아니라 임대의 형식을 이용하는 만큼  당연히 기간이 만료되기 전에 반납을 해야 하며, 계속 임대를 원한다면 갱신신청 보내서 임대기간을 연장해야 한다. 아래의 [그림1]과 같은 환경을 들여다 보자.


[그림1. DHCP 서버와 클라이언트 환경]

[그림1]에서 볼 수 있듯이 하나의 네트워크가 있고, 그 네트워크에는 DHCP서버, DHCP클라이언트,Non-DHCP클라이언트가 있을 수 있다. Non-DHCP클라이언트는 DHCP서버로부터 IP를 할당받지 않고 수동적으로 IP를 설정한 호스트를 의미한다. DHCP클라이언트는 IP Address가 변경될 수 있는(유동의) 소지가 있는 호스트이므로, IP가 변경됐을 때 네트워크의 원활한 소통에 문제가 있을 수 있는 서버로서 동작하는 컴퓨터들의 경우는 고정 IP를 할당할 수 있다. DHCP클라이언트는 시스템이 시작됨과 동시에 DHCP서버를 찾는 메시지를 네트워크에 발송하여 IP Address임대를 요청하게 되며, DHCP서버는 이러한 클라이언트의 요청에 응답하여 자신의 DHCP Database에서 IP Address를 임대해 주게 된다. 그 과정을 [그림2]와 같이 정리하였다.


[그림2.DHCP Process]

위의 그림을 보면 4가지 단계로 나뉘어 있는 것을 알 수가 있는데 자세한 과정은 다음과 같다.

(1)Discover : DHCP클라이언트는 부팅이 시작되는 동안에는 IP Address를 가지고 있지 않다. 부팅이 되고 네트워크가 시작되면 먼저 IP Address를 셋팅하여 TCP/IP를 초기화하려는 시도를 한다. 그 방법으로써 DHCP서버를 찾는 요청을 만들어서 패킷을 브로드캐스트한다. 이것이 "Discover"과정이다.

(2)Offer : Discover 메시지를 받은 DHCP서버는 사용가능한 IP Address 하나를 담은 DHCP패킷을 만들고, 역시 네트워크에 브로드캐스트를 이용해서 전파한다. 만일 한 네트워크에 여러대의 DHCP서버가 있었다면 서버마다 같은 작업을 하게 된다. 이 과정이 "Offer"이다.

(3)Request : DHCP서버로부터 IP Address를 받은 DHCP클라이언트가 그 즉시 이 IP Address를 사용할 수 있는 것은 아니다. DHCP클라이언트는 서버로부터 할당받은 IP Address와 이 IP Address를 임대해준 서버의 IP를 담은 패킷을 만들어서 네트워크에 다시 브로드캐스트를 날린다. DHCP서버가 여러대 있어서 서버마다 클라이언트에게 각기 다른 IP Address를 발송할 수 있는 상황이 있기에 이러한 작업이 진행되는 것이다. 이 과정이 할당받은 IP를 사용하겠다는 요청인 "Request"이다.

(4)Ack : DHCP클라이언트의 Request브로드캐스트를 받은 DHCP서버는 둘중의 한가지 작업을 할 수 있다. 자신이 보낸 IP Address가 채택되지 않았다면 DHCP서버는 다시 IP Database에 유지하고, 자신이 보낸 IP가 채택되었다면 IP임대기간, DNS, Default Gateway, WINS등의 DHCP옵션값을 담은 "확인(Acknowledgment)" 패킷을 만들어서 최종적으로 브로드캐스트한다.

이것을 마지막으로 클라이언트는 TCP/IP를 초기화하고, 이때부터는 IP Address를 이용한 Unicast 통신이 가능해진다. 복잡해 보일 수 있지만 이 DHCP Broadcast가 트워크에서 차지하는 것은 극히 일부분일 뿐이다. 중요한 것은 이 네가지 과정이 모두 브로드캐스트 통신이라는 것이다. 그것은 DHCP 클라이언트로 설정된 호스트가 DHCP서버로부터 IP Address를 얻기 전까지는 IP Address가 없다는 것에서부터 기인된다. 자신이 IP Address가 셋팅되지 않은 상태이니 DHCP서버의 특정한 IP를 향해 메시지를 날리는 것은 불가능할 수밖에 없다.DHCP Process를 Windows2000 서버의 네트워크모니터를 이용해서 캡춰하였다.


[그림3.DHCP Process 캡춰 화면]

그렇다면 회사의 네트워크가 브로드캐스트 도메인으로 나뉜 상황, 즉 두 개 이상의 네트워크로 세그먼트된 상황에서의 DHCP는 추가로 고려해야 할 사항이 발생한다. 두 개의 네트워크의 모든 호스트들이 DHCP클라이언트로 설정이 되었을 때 한쪽 네트워크에만 DHCP서버가 있다면 DHCP서버가 없는 쪽 네트워크의 DHCP클라이언트의 요청은 전달이 될 수 없다는 것을 의미한다.

이러한 경우에도 얼마든지 DHCP는 구현이 가능하다. 결론부터 말하자면 IP Address를 관리하는데 DHCP서비스를 이용하자는 것이다. 많은 관리자들이 DHCP의 편리성을 이해하면서도 사용하지 않고 있다. 물론 이유는 있다. 특정 사용자가 임의로 고정IP를 사용함으로써 IP충돌이 생길 수 있다는데 그 이유가 있고, 또 하나는 특정 사용자가 임의로 셋팅한 DHCP Server 때문에 정상적인 DHCP서버가 제대로 서비스를 하지 못한다는 것을 들 수가 있다. Active Directory의 인증을 얻은 DHCP서버만 동작하도록 되어 있는가 하면, DHCP Client을 DNS에 자동적으로 등록하는 등 Windows NT 4.0의 DHCP 서버에 비해서 Windows 2000의 DHCP서비스는 개선된 기능을 제공하고 있다.

'Computer > Network' 카테고리의 다른 글

DHCP Client 구성  (0) 2007.01.17
DHCP서버의 구현  (0) 2007.01.17
IP Packet의 기본흐름의 이해  (0) 2007.01.17
Windows Size의 크기에 따른 영향  (0) 2007.01.17
TCP/IP Sliding Window  (0) 2007.01.17