달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2008. 11. 13. 21:18

4-1. DHCP의 이해 Windows Networking2008. 11. 13. 21:18


당신은 회사의 시스템 관리자이다. 사용자들이 네트워크 활동을 할 수 있도록 하기 위해서는 네트워크의 모든 호스트에게 IP Address를 할당하는 작업이 필요하다. 처음 한번만 잘 해주면 된다는 생각에 일일이 수작업으로 PC마다 IP Address를 잘 설정해 주었지만 심심치 않게 새로운 시스템도 늘어나고, 몇몇 사용자들의 호기심(?) 때문에 툭하면 IP Address로 인한 네트워크 장애가 발생하고 있다. 한 두 대도 아니고 수 많은 시스템을 관리해야 하는 관리자로서는 이러한 작업이 부담이 될 수 밖에 없다.

 

이러한 IP Address 관리작업을 자동화하면 해결된다. 바로 DHCP (Dynamic Host Configuration Protocol)가 그 해답이다.

 

마이크로소프트는 서버OS제품군에서 DHCP서버 서비스를 지원한다. 이때 DHCP서버로 셋팅된 컴퓨터는 클라이언트들에게 할당할 IP Address Pool을 유지하고 있으면서 DHCP프로토콜을 이용해서 IP Address발급을 요청하는 클라이언트에게 IP Address를 할당한다.

 

DHCP서비스를 DVD대여점의 프로세스와 유사하다. DVD 대여점이 DVD타이틀을 대여한다면 DHCP서버는 IP Address를 대여하는 역할을 한다. 완전히 소유권이 넘어간 것이 아니라 임대의 형식을 이용하는 만큼 당연히 기간이 만료되기 전에 반납을 해야 하며, 계속 임대를 원한다면 갱신요청을 보내서 임대기간을 연장해야 한다. 아래의 <그림4-1>과 같은 환경을 가정해 보자.

 

 
< 그림4-1. DHCP 서버와 클라이언트 환경>

 

<그림4-1>에서 볼 수 있듯이 하나의 네트워크가 있고, 그 네트워크에는 DHCP서버, DHCP클라이언트, Non-DHCP클라이언트가 있을 수 있다. Non-DHCP클라이언트는 DHCP서버로부터 IP를 할당받지 않고 고정IP를 설정한 호스트를 의미한다. DHCP클라이언트는 IP Address가 변경될 수 있는(유동의) 소지가 있는 호스트이므로, IP가 변경됐을 때 네트워크의 원활한 소통에 문제가 있을 수 있는 서버역할을 하는 컴퓨터들의 경우는 고정 IP를 할당해야 한다. 예를 들면 웹서버, DNS서버, 메일서버, 도메인컨트롤러 등 서버들의 경우이다.

 

DHCP클라이언트는 시스템이 시작됨과 동시에 DHCP서버를 찾는 메시지를 네트워크에 발송하여 IP Address임대를 요청하게 되며, DHCP서버는 이러한 클라이언트의 요청에 응답하여 자신의 DHCP Database에서 IP Address를 임대한다. 그 과정을 <그림4-2>와 같이 정리하였다.



<그림4-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를 네트워크모니터를 이용해서 캡처하였다.

 

<그림4-3.DHCP Process 캡처 그림>

 

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

 

뒤에서 설명하겠지만 이러한 경우라도 역시 얼마든지 DHCP는 구현이 가능한다. 결론부터 말하자면 IP Address를 관리하는데 DHCP서비스를 이용하자는 것이다. 많은 관리자들이 DHCP의 편리성을 알면서도 사용하지 않고 있다. 물론 이유는 있다. 특정 사용자가 임의로 고정IP를 사용함으로써 IP충돌이 생길 수 있다는데 그 이유가 있고, 또 하나는 특정 사용자가 임의로 셋팅한 DHCP Server 때문에 정상적인 DHCP서버가 제대로 서비스를 하지 못하다는 것을 들 수가 있다. 그러한 것은 또다른 측면의 정책을 통해서 해결할 수 있다. 이를 테면 사용자가 임의로 IP주소를 바꿀 수 없도록 제어판의 네트워크 설정에 대한 접근을 제한하는 것도 한가지 방안이 될 수 있다.

 

또한 Active Directory의 인증을 얻은 DHCP서버만 동작하도록 되어 있는가 하면, DHCP Client DNS에 자동적으로 등록하는 등 Windows NT 4.0 DHCP 서버에 비해서 Windows Server 2003 DHCP서비스는 개선된 기능을 제공하고 있다.

:
Posted by 새벽예찬