달력

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. 20. 08:59

8-4. NAT 고급기능 Windows Networking2008. 11. 20. 08:59

 

위에서는 개인네트워크의 클라이언트들이 인터넷을 사용하기 위한 기본적인 기능을 설명했다. 추가로 NAT 가지는 몇가지 유용한 기능에 대해서도 설명한다.

 

8-4-1. DHCP서비스

 

개인네트워크의 클라이언트들은 NAT서버의 개인네트워크 인터페이스와 같은 네트워크ID IP Address 할당되어야 한다. 이러한 작업을 수동으로 해도 되겠지만 만일 많은 수의 NAT클라이언트들을 관리해야 한다면 DHCP서비스를 고려할 있을 것이다. 별도의 DHCP서버를 두지 않고 NAT서버에서 DHCP서버 역할을 제공할 있다. 라우팅 원격 액세스 서비스 관리콘솔에서 왼쪽패널의 NAT 클릭하고 등록정보로 접근하면 <그림8-25> 메뉴를 있다.


"
주소할당"탭에서 'DHCP 사용하여 IP주소 자동 할당'옵션을 체크하면 DHCP서비스를 제공할 있다. IP주소 항목에는 NAT서버의 개인 네트워크 인터페이스에 해당하는 네트워크 ID 적어준다. 예를 들어서 NAT서버의 개인네트워크 IP 192.168.200.1이라면 IP 주소항목에는 192.168.200.0 된다.


 <그림8-23. NAT 등록정보 - DHCP구성 >

 

위와 같이 구성하면 클라이언트는 IP주소와 서브넷마스크를 NAT에서 설정한 대로 할당받게 되고, NAT 개인네트워크 인터페이스에 할당된 IP주소를 클라이언트의 기본 게이트웨이로 사용하도록 구성된다.  TCP/IP환경에서 클라이언트가 인터넷을 쓰기 위해서는 추가로 구성되어야 항목이 있다. 바로 DNS서버의 IP 가져야 하는데 이것까지도 NAT서버를 통해서 받게 하고 싶다면 추가로 "이름확인"탭까지 구성을 주면 된다.


 <그림8-24. NAT 등록정보 - 이름확인 구성 >

 

<그림8-24>에서 '이름확인'탭에서 '클라이언트가 DNS 사용'이라는 옵션을 체크하였다. 이렇게 하면 NAT 클라이언트는 IP주소, 서브넷마스크, 기본게이트웨이 뿐만 아니라 DNS IP까지도 할당받을 있게 된다

 

NAT서버의 이러한 설정을 클라이언트가 사용하고 싶다면 클라이언트의 시스템에서는 TCP/IP설정을 DHCP클라이언트로 변경해야 한다. <그림8-25>에서는 클라이언트의 TCP/IP설정을 '자동으로 IP받기' 선택함으로써 DHCP클라이언트로서 셋팅한 것을 보여준다.


<그림8-25. TCP/IP설정을 DHCP클라이언트로 구성>

 

8-4-2. 외부 네트워크에서의 개인네트워크 액세스 허용

 

ICS, NAT 제공하는 다른 측면이라면 그것은 정반대의 기능도 제공한다는 것이다. 개인네트워크의 클라이언트들이 외부 인터넷으로 접근하도록 지원하지만 다른 측면은 인터넷상의 클라이언트들이 개인네트워크의 서버로 연결할 있도록 지원하는 것도 역시 ICS, NAT등의 기능이다.


< 그림8-26. 개인네트워크에 웹서버 배치하기 >

 

<그림8-26> 예제에서 보여지듯이 인터넷에서 접근하는 사용자에게 웹서비스를 제공하고자 하는데, 만일 웹서버를 공용네트워크에 두는 것이 아니라 개인네트워크에 배치하고 싶다면 어떻게 할까? 당연히 웹서버는 개인네트워크 IP Address 가지게 것이고, 외부에서 IP Address 접근을 시도하더라도 웹서버까지 요청은 도달될 없다. InterNIC에서는 개인 네트워크 IP주소를 위해 특별히 네트워크 ID 예약해 두었고, IP 인터넷에서는 통용되지 않는 개인네트워크를 위해서 사용이 되고 있다. 192.168.x.x 네트워크 ID 역시 개인 네트워크 용도로 할당된 ID이다. 이것을 목적지로 패킷은 갈곳이 없다.

  

방법은 있다. NAT서버에서 약간의 설정을 통하여 내부의 서버가 공용네트워크에 서비스를 제공할 있게 있다. 2가지 방법이 제공되는데 각각의 기능은 차이점을 보이게 된다.

먼저, 특수포트 매핑 방법이 있다.

 

NAT서버의 공인IP 211.232.71.131라고 가정해 보자. DNS서버의 www레코드는 211.232.71.131 가리키고 있어야 한다. 외부에서 보기에는 NAT서버가 회사의 웹서버가 되는 것이다. 클라이언트의 http요청은 NAT서버에게 날아올 것이다. 이때 NAT서버에서는 요청을 자신이 처리하는 것이 아니라 개인 네트워크로 요청을 포워딩 주면 된다.

 

아래와 같이 구성한다.


 <그림8-27. NAT 인터페이스 등록정보 >


라우팅 원격 액세스관리콘솔에서 NAT프로토콜을 선택하고, Public 인터페이스를 선택한 다음 등록정보를 연다.

 


 <그림8-28. 특수포트 매핑 1>


'
서비스 포트'탭을 클릭하면 이미 몇가지 주요한 네트워크 서비스 템플릿이 구성되어 있다. 웹서버를 구성하고자 하기 때문에 서버(HTTP)’ 선택하고 [편집] 눌렀다.

 


 <그림8-29. 특수포트 매핑 2>


<
그림8-29> 서비스 편집 화면에서 211.232.71.131  HTTP요청이 왔을 포워딩하여 내부네트워크에서 웹서비스를 제공할 서버의 IP 주소를 입력해야 한다. 예제 화면에서는 192.168.200.15 입력했다.

 

 

다른 방법은 Address Pool (주소풀) 이용하는 방법이다. 이것은 공인 IP 추가로 필요하다. 하나의 IP 가지고 있을 경우에는 구현할 없는 방법이다. NAT서버에게 여러개의 공인 IP주소를 할당해 두고 공인 IP 내부의 사설IP 예약해 두겠다는 것인데, 이렇게 하면 NAT서버에게 할당해 공인 IP에게 요청이 들어오면 내부의 예약된 개인IP 가진 컴퓨터들에게 요청을 포워딩 수가 있게 된다.

 


 <그림8-30. NAT 인터페이스 등록정보 - 주소풀 추가 >



NAT
Public인터페이스의 등록정보에서 '주소풀' 선택하면 아래의 <그림8-23> 수가 있다. 먼저 [추가]버튼을 클릭하여 NAT서버가 추가로 가지고 있게 IP주소를 입력한다. 예제에서는 192.168.0.201 부터 192.168.0.253까지의 IP 추가했다.

 


 <그림8-31. NAT 인터페이스 등록정보 주소예약>

다음에 [예약]버튼을 클릭하여 위에서 할당한 공인 IP 개인네트워크 내부의 시스템의 개인 IP 매핑시킨다. 예제에서는 192.168.0.251 192.168.200.15 매핑시켰다. 다음에 ' 주소로 들어오는 세션 허용' 항목을 체크하고 [확인] 눌러 마친다.

이렇게 하면 NAT서버는 192.168.0.251 목적지로 하는 모든 패킷들을 개인 네트워크의 192.168.200.15 서버에게 포워딩하게 된다. 결과적으로는 인터넷상의 사용자가 개인네트워크 내의 컴퓨터에게 접속할 있게 구성이 것이다.

DNS서버의 www 레코드는 이상 NAT서버의 공용IP Address 가리키고 있어서는 안된다. <그림8-31>에서 예약한 192.168.0.251 가리키고 있어야 것이다.

  

8-4-3. NAT 지원하지 못하는 것들

 

NAT서버는 단점이 있다. 클라이언트의 숫자가 늘어날수록 성능면에서 상당한 저하를 가져올 밖에 없다는 것이다. 보통 20명에서 최대 30여명 정도의 클라이언트가 있는 환경에서는 그런대로 쓸만 하지만 보다 많은 사용자를 지원해야 한다면 NAT 권장할만한 솔루션은 아니다.

 

또한 NAT서버가 개인네트워크와 공용네트워크간의 연결성을 훌륭하게 수행하긴 하지만 아쉽게도 모든 프로토콜이 허용되는 것은 아니다. 일반적으로 사용하는 http, ftp, smtp, pop3등은 동작하지만 Kerberos, IPSec, DCOM, LDAP등의 프로토콜을 NAT에서 지원이 되지 않는다. 개인네트워크의 NAT 클라이언트가 NAT서버를 이용해서 외부의 서버와 통신을 , 만일 이러한 NAT에서 지원되지 않는 프로토콜이 필요하다면 때는 NAT서버를 사용할 수는 없다. 예를 들면, 도메인 환경에서 클라이언트가 로그온을 한다든가, Active Directory 쿼리를 한다든가, L2TP 이용한 VPN 구현한다든가 하는 경우가 있다.

 

또한 NAT 개인네트워크에 여러 개의 서브넷을 지원하지 못한다. 공용인터페이스 하나, 개인 인터페이스 하나, 이걸로 끝이다. 여러 개의 서브넷을 만들고 각각 서로 다른 수준의 보안설정을 하는 작업을 지원하지 않는다는 것이다.

 

또한 NAT 사용자 인증을 지원하지 않는다. 물리적으로 개인 네트워크에 있는 클라이언트가 NAT서버의 IP Address 알고 있다면 누구라도 NAT 이용해서 인터넷에 액세스하는 것이 가능하다.

 

프로토콜 필터링 또한 지원하지 않는다. 물론 이것은 라우팅 원격액세스의 필터링 기능과 연동하여 사용하면 가능하긴 하지만 NAT자체적으로 필터링을 지원하는 것은 아니다. 이를 테면 관리자들은 FTP 사용하게 하고, 영업부 직원들은 http 사용하지 못하게 하는 등의 사용자별 프로토콜별 필터링을 통한 통제가 되지 않는다는 것이다.

 

.. 적고 보니 되는 기능이 너무 많은 하다. 하지만 소규모의 기업네트워크 환경이라면 위의 단점으로 지적한 기능들이 현실적으로 문제가 되지는 않는다.

 

그렇다면 이런 경우에는 해결책이 없는가? 물론 있다. MS 솔루션으로는 ISA (Internet Security & Acceleration) Server 있다. 현재 ISA Server 2004 출시되어 있다.

  

ISA Server 제품이름에서 있듯이 단순히 개인네트워크와 공용네트워크와의 연결성 뿐만이 아니라 웹캐싱 기능을 통해서 보다 빠른 인터넷 액세스를 제공하고, 사용자관리를 통한 인터넷 액세스 제한, 특정 사이트 접근 제한 등의 부가적인 기능을 가지고 있으며 이전버전에 비해 향상된 파이어월의 기능을 제공하여 Microsoft 야심작인 닷넷플랫폼에 있어서 보안을 담당하는 중요한 인프라의 관문역할을 담당하고 있다. 마이크로소프트 웹사이트 ( http://www.microsoft.com/korea/isaserver/ ) 참고한다.


:
Posted by 새벽예찬

 

기업네트워크에서 어느 위치에 몇대의 서버를 배치할 것인가의 문제는 단순히 서버를 관리하는 것보다 중요한 의미를 가진다. 서버를 설치하고 구성하기에 앞서 먼저 서버의 배치 디자인을 계획해야 할 필요성이 있다. 이때 여러분의 디자인에는 다음의 몇가지 측면이 고려되어야 한다.

 

(1) 기능성(Functionality) : 디자인에 따라 서버를 배치했을 때 모든 위치에서 기업의 요구사항을 반영할 수 있도록 디자인 되어야 한다는 것을 뜻한다. 가장 실질적인 기능적 측면을 고려해야 한다는 것이다.

 

(2) 보안(Security) : 근래에 들어서 점점더 비중이 강조되고 있는 부분이다. 그동안 많은 관리자는 보안의 측면은 상대적으로 신경을 쓰지 않았던 것이 사실이다. 하지만 서버의 배치시 잠재적인 위험요소를 고려하여 보안에 초점을 맞추어야 할 것이다.

 

(3) 가용성(availability) : Downtime을 최소화할 수 있도록 고려해야 한다. 한대의 서버가 문제가 생겼더라도 사용자들은 계속해서 서비스를 받을 수가 있도록 서버를 배치하여야 한다. 무슨 마술인가 싶지만 의외로 간단하다. 서버를 중복배치하면 될 것이다. 한대의 서버가 다운 되었더라도 다른 서버가 그 기능을 계속 대체할 수 있다면 가능한 일이다. 마이크로소프트의 네트워크 환경에서는 그러한 서버들의 중복기능을 기본적으로 포함하고 있다. 관리자가 잘 디자인해 주면 해결이 된다. 최고의 가용성을 제공하는 솔루션으로서는 클러스터링 기술을 생각할 수 있지만 상대적으로 비용이 많이 들어가는 방법이다. ( http://www.microsoft.com/korea/windowsserver2003/technologies/clustering/default.asp 사이트 참고)

 

(4) 성능(Performance) : 사용자가 기대하는 시간안에 응답을 얻을 수 있도록 해야 함을 의미한다. 대부분의 사용자들은 예상치 못한 느린 응답시간을 참을 수 있는 인내력이 없다. 한대의 서버보다는 두대의 서버가, 두대의 서버보다는 세대의 서버가 보다 나은 응답력을 제공한다. 이 항목은 (3)가용성과도 밀접한 관계가 있으니 가용성을 제공하면서 성능까지 챙겨줄 수 있도록 디자인되어야 할 것이다.

 

여러분이 고려한 네트워킹 서비스의 디자인에 위의 네가지가 모두 고려되었고, 현재의 디자인이 위의 네가지를 만족하고 있다면 잘 구성된 네트워크라고 생각해도 좋다. 그 중에서도 어느쪽에 비중을 더 둘 것인가는 회사의 판단이 요구된다. 모든 것에 최상의 솔루션을 채택하기는 현실적으로 어렵다. 예를 들어서 보안을 중요시하여 서버에 IPSec, VPN등의 암호화 기술을 채택하였다면 상대적으로 그렇지 않을때에 비해 성능은 떨어질 수도 있는 것이기 때문이다.  

 

이 책에서 설명되는 네트워크 서비스들의 배치는 필자가 생각하는 최적의 환경을 구성하는 쪽으로 초점을 맞추었다. 다른 의견이나 더 나은 솔루션이 있다면 언제든지 필자의 메일이나 홈페이지를 통해서 의견 교환 할 수 있기를 기대한다.
:
Posted by 새벽예찬
2008. 11. 13. 22:04

4-6. DHCP서비스의 확장 구현 Windows Networking2008. 11. 13. 22:04


지금까지는 DHCP의 기능과 구성에 대해서 살펴보았다. 위의 내용만으로도 구현하는 것은 얼마든지 가능하겠지만, 이제부터는 조금 다른 측면을 고려해 볼까 한다. 회사의 네트워크 환경이 적어도 2개 이상의 세그먼트로 네트워크가 분리되어 있는 상황을 고려해 보고, 하나의 DHCP서버가 서비스를 하지 못하는 상황이 발생했을때를 고려하여 그러한 경우라도 클라이언트가 정상적인 IP를 할당받는데 차질이 없도록 하기 위한 서버의 중복배치를 고려해 보고자 한다.

 4-5-1. DHCP서비스의 확장 구현

 

아래의 <그림4-56>과 같은 네트워크 구성을 가진 회사가 있다



<그림4-56. 복수 네트워크를 가진 회사의 DHCP서비스 1>

 

그림에서 보는 바와 같이 회사는 2개의 네트워크를 가지고 있고 각각 192.168.5.0 192.168.10.0 네트워크ID를 사용한다. 두개의 네트워크에서 호스트들은 IP를 구성하는 방법으로 DHCP를 사용하고 있다. 이 경우 안정적으로 DHCP서비스를 제공하기 위한 회사의 디자인은 <그림4-56>에서 보는 바와 같이 배치할 수 있다.

 

일단 첫번째 고려해야 할 것은 두개의 네트워크에 있는 클라이언트들이 IP를 할당받을 수 있어야 한다는 기본적인 기능적인 측면(Functionality)에 만족해야 한다는 것이다. DHCP프로세스를 잘 이해했다면 답이 나온다. DHCP는 브로드캐스트를 사용하여 초기화를 한다는 것을 배운바 있는데 이것 때문에 어느 한쪽 네트워크에만 DHCP서버가 있어서는 곤란하다는 것이다. DHCP서버가 없는 쪽의 네트워크에서 DHCP클라이언트가 DHCP서버를 찾는 Request 브로드캐스트를 날리게 되면 라우터에서 이 메시지를 통과시키지 않기 때문에 클라이언트는 IP를 할당받지 못하게 되기 때문이다. 이 때 가장 좋은 방법은 각 네트워크마다 DHCP서버를 배치하는 방법이다. 이것은 가장 좋은 성능을 제공할 수 있는 방법이기도 하다. <그림4-56>의 예제에서 DHCP서버A B를 각각 배치한 것을 볼 수 있다. DHCP서버A 192.168.5.0 네트워크를 위한 IP영역을 설정하였고, DHCP서버B에는 192.168.10.0 네트워크를 위한 IP영역을 설정해 주었다.

 

두번째로 고려할 점은 가용성(Availability)을 제공해야 한다. 예를 들어서 DHCP서버A가 문제가 생겨서 DHCP서비스가 멈추었다면 어떻게 될까? 192.168.5.0 네트워크의 DHCP클라이언트들은 IP를 임대받지 못하게 되고 APIPA기능으로 169.254.0.0 네트워크의 IP대역이 할당될 것이다. 당연히 정상적인 통신은 하지 못하게 된다. 기업네트워크에서 이것은 곤란한 일이다. 하나의 서비스가 문제가 생겼더라도 다른 방법으로 해결을 할 수 있어야 한다. 여기에 대한 방안으로 서버의 중복을 고려할 수 있다. 각각 네트워크마다 DHCP서버를 두대씩 구성하면 되는 것이다. 그러면 하나의 DHCP서버가 다운되었더라도 여전히 클라이언트들은 IP를 할당받는 것이 가능해 진다. 이 경우 주의할 점은 한 네트워크에 있는 2개의 DHCP서버는 서로 다른 범위의 주소Pool을 유지해야 한다는 것이다. DHCP서버A 192.168.5.11~192.168.5.100을 구성하고, 새롭게 설치한 DHCP서버C 192.168.5.201~192.168.5.250을 구성하는 형태가 되어야 한다. 역시 IP충돌을 막기 위한 조치이다. IP Address가 충분해야 할 수 있는 구성이라는 생각이 들 것이다.

 

<그림4-56>에서는 다른 방법으로 구현된 것을 볼 수 있는데 이것은 한가지 예제일 뿐이다. DHCP서버를 중복배치하는 것과 큰 차이는 없지만 관리적인 측면에서는 보다 효율적인 방법이 될 수 있다. 각 네트워크에 DHCP서버 하나씩이 배치되는 것은 차이가 없고, 다만 추가로 한 서버에 DHCP Relay Agent를 구현해 두는 방법이 있다. DHCP Relay AgentDHCP클라이언트의 DHCP임대 요청을 받아서 대신 DHCP서버에게 IP임대를 요청하여 클라이언트에게 제공해 주는 중개인역할을 맡는다. DHCP클라이언트가 직접 서버에 요청하는 것과 차이가 있다면 DHCP서버와 Unicast (=Direct)통신을 한다는 것이다. 그러므로 라우터 건너편, 즉 원격지의 DHCP서버에게 IP요청을 보내는 것이 가능하다.

 

당연히 DHCP Relay Agent DHCP클라이언트로 구성되어서는 안된다. 고정IP가 할당되어야 한다. 예제의 그림에서 만일 DHCP서버A가 어떤 이유에서든지 IP를 임대하지 못하는 상황이 되면 DHCP Relay Agent로 설정된 서버는 192.168.5.0 네트워크의 DHCP클라이언트의 요청을 받아서 건너편에 있는 DHCP서버B에게 DHCP요청을 보내서 IP를 대신 할당해 주는 형태로 동작하게 된다. DHCP서버B에서는 192.168.10.0 인 자신의 네트워크를 위한 IP영역을 생성해 두는 것은 당연한 일이고, 추가로 192.168.5.0의 네트워크를 위한 IP영역도 구성을 해 두어야 한다. 그래야만 이러한 작업이 완전하게 수행될 수 있다.

 

반대쪽에서는 어떨까? 역시 같은 작업을 해 주면 된다. 192.168.10.0네트워크에서도 자신의 네트워크에 있는 DHCP서버B가 서비스를 하지 못할 상황을 대비해서 문제가 있을때는 DHCP 서버A를 찾아가서 IP임대과정을 진행하도록 DHCP Relay Agent를 셋팅해 두어야 한다. DHCP서버A에서는 192.168.5.0뿐만 아니라 192.168.10.0 네트워크를 위해서 추가로 IP영역을 구성해 두어야 한다.

정리하면, DHCP서버A DHCP서버B는 각각 192.168.5.0 192.168.10.0 네트워크라는 2개의 IP범위를 구성해 두면 되는 것이다. 이때 IP구성은 보통 7:3이나 8:2 정도의 구성을 권장한다. 각 네트워크당 DHCP서버에서 관리되는 IP범위에 주소가 100개씩이라면 자신의 서버에 70, 다른 서버에 30개 정도로 IP범위를 구성하라는 것을 의미한다. 그리고 각 네트워크의 DHCP Relay Agent는 서로 라우터 건너편 네트워크에 있는 DHCP서버를 찾아가서 IP임대를 요청할 수 있도록 구성을 해 두면 된다.

 

 4-5-2. DHCP Relay Agent 설정

 

DHCP Relay Agent를 구성하는 방법은 다음과 같다.



<그림4-57. DHCP Relay Agent 설정–1>

 

관리도구-라우팅 및 원격 액세스를 통해서 접근한다. 이 관리도구에 처음 접근하는 것이라면 <그림4-57>과 같은 화면이 보일 것이다. 화면의 왼쪽 패널을 보면 BLUEAPPLE(로컬)이라는 서버의 서비스가 멈춰져 있음을 보여준다. 마우스 오른쪽 버튼을 이용하여 라우팅 및 원격 액세스 사용 및 구성을 클릭한다.



<그림4-58. DHCP Relay Agent 설정 – 2 >

5가지의 메뉴가 보이는데 수동으로 구성한 서버를 선택하고 <다음>을 누른다. 각각에 대한 설명은 후반부의 단원에서 자세히 다룬다.



<그림4-59. DHCP Relay Agent 설정 – 3 >

마법사를 완료했다는 화면이 보인다.

 


<그림4-60. DHCP Relay Agent 설정 – 4 >

 

이제 서비스를 설치했다고 시작하겠다는 메시지를 띄워준다. <>를 눌러서 라우팅 및 원격 액세스 서비스를 시작시킨다.

 


<그림4-61. DHCP Relay Agent 설정 – 4 >

 

라우팅 및 원격 액세스 관리콘솔에서 왼쪽 패널을 계속 확장해 보면 IP라우팅 아래에 ‘DHCP릴레이 에이전트메뉴를 확인할 수 있다. 설치는 기본적으로 이루어진다. 이제 구성을 해야 한다. 마우스 오른쪽 버튼을 이용하여 새 인터페이스를 추가한다. 인터페이스는 DHCP클라이언트로부터 요청을 받아들일 NIC에 해당하는 연결을 의미한다.


<그림4-62. DHCP Relay Agent 설정 – 5 >

 

필자는 Private라는 연결을 선택했다. 인터페이스를 선택하면 ‘DHCP패킷릴레이옵션이 체크된 화면이 팝업되고 홉수임계값, 부팅임계값을 결정하도록 화면을 보여준다. 기본 설정인 ‘4’로 두고 진행하면 된다. 의미있는 값이다. 지금 192.168.5.0네트워크에는 DHCP서버A가 있고, DHCP Relay Agent가 하나 존재한다. DHCP서버A가 잘 동작하고 있을때는 DHCP Relay Agent가 굳이 동작할 이유가 없다. 오히려 동작하지 않는 것이 보다 좋을 것이다. 로컬 DHCP서버가 잘 동작하고 있으니 DHCP트래픽을 원격으로 전달할 이유가 없기 때문이다.

 

홉수임계값은 DHCP요청을 다른 DHCP서버나 DHCP Relay Agent로 넘길 때 몇 단계나 넘어갈 수 있는지를 지정한다. 기본값을 사용하면 적당하다. 부팅임계값은 DHCP Relay Agent가 언제 동작할 것인지를 지정해 주는 값이다. 기본값은 4초로 설정되어 있다. 이 경우 DHCP Relay Agent DHCP클라이언트의 DHCP요청 브로드캐스트를 받더라도 DHCP요청을 중계하도록 설정된 DHCP서버에게 즉시 메시지를 중계하지는 않는다. 부팅임계값인 4초동안 기다리게 된다. 그 때까지 네트워크에서 DHCP서버의 응답이 없으면 그때 비로소 DHCP Relay라는 역할을 하게 되는 것이다. 로컬에 DHCP서버가 있을때는 외부로 DHCP를 넘기지 않는다는 것을 의미한다. 4초라는 시간이면 DHCP클라이언트가 두차례 DHCP Discover브로드캐스트를 날릴수 있는 시간이다. 정상적으로 DHCP서버A가 서비스하고 있다면 응답이 있어야 할 시간동안 기다려 주는 것이다.

 


<그림4-63. DHCP Relay Agent 설정 – 6 >

 

다음에는 이 DHCP릴레이 에이젼트가 DHCP클라이언트의 DHCP브로드캐스트를 어떤 DHCP서버에게 전달할 것인지를 설정한다. <그림4-63> 라우팅 및 원격 액세스 관리콘솔의 왼쪽패널에서 IP라우팅 아래에 있는 DHCP릴레이 에이젼트의 등록정보를 클릭한다.



<그림4-64. DHCP Relay Agent 설정 – 7 >

 

DHCP서버를 추가한다. 예제에서는 192.168.10.0 네트워크에 있는 DHCP서버의 IP를 추가해 주었다.

이렇게 하면 DHCP Relay Agent의 구성을 모두 마쳤다. Windows NT 4.0 Server로써 DHCP Relay Agent를 구현해도 잘 동작한다. 다만 서비스의 설치방법이 다르다. NT 4.0 Server DHCP Relay Agent를 구성하려면 바탕화면의 네트워크환경à등록정보à서비스탭을 통해서 서비스를 추가해 주어야 한다. 나머지 구성방법은 동일하다.


4-5-3.  Multi-homed DHCP Server
구성

 


<그림4-65. 복수 네트워크를 가진 회사의 DHCP서비스 2>

 

동일한 예제에서 다른 구성을 해 보았다. 가장 저렴하게 구현이 가능한 방법이기도 하다. 192.168.5.0 네트워크에 설치된 DHCP서버에 NIC를 하나 더 설치하여 192.168.10.0 네트워크에 연결한다. 이렇게 했을 때 DHCP서버는 각각의 NIC를 통해서 들어온 DHCP클라이언트들의 DHCP Discover 브로드캐스트 요청에 대하여 응답이 가능하다. 이렇게 네트워크 어댑터가 여러 개 장착된 컴퓨터를 가리켜서 Multi-Homed computer라고 부른다. 멀티홈 DHCP서버 하나만으로 2개의 네트워크에서 DHCP서비스가 가능해 졌다. 이 서버가 다운이 되었을 상황을 고려한다면? 해결방법은 간단하다. 멀티홈 DHCP서버를 하나 더 설정하는 방법이 있을 것이다. 이렇게 하는 것은 각각의 네트워크마다 DHCP서버를 두 대씩 설치했던 것과 동일한 디자인을 보여줌을 알 수 있다. <그림4-65>과 같은 구성은 물리적인 네트워크 구성이 가능할 때 구현할 수 있는 방법이다.

 

이상 DHCP서비스를 구성하는 몇가지 방법을 살펴 보았다. 네트워크에서 서비스를 구성하기 전에 가장 우선시 해야 할 것이 네트워크 디자인이라고 이야기 했지만 현실적으로 디자인을 제대로 하기 위해서는 그것들에 대한 기능적인 부분을 전반적으로 이해해야만 가능할 것이라는 생각이 들 것이다. 기능을 완전하게 이해한 후 앞에서 설명한 바 있는 가용성, 성능, 보안, 기능성의 측면을 두루 만족할 수 있는 네트워크 디자인을 할 수 있다면 더 바랄것이 없다. 두 가지 네트워크 구성도만이라도 완전하게 이해를 하도록 하자.

 

:
Posted by 새벽예찬
2008. 11. 13. 21:58

4-5. DHCP의 추가기능 Windows Networking2008. 11. 13. 21:58

 

앞에서 설명한 내용만으로도 중,소규모의 네트워크 환경에서 DHCP구성은 가능할 것이다. 이번장에서는 DHCP서버의 몇가지 추가기능에 대해서 설명을 한다.

 

4-5-1. 복수의 IP 범위 구성

 

하나의 DHCP서버는 복수의 네트워크의 범위를 가지는 것이 가능하다. 이것은 회사가 물리적으로 여러개의 네트워크로 세그먼트되어 있을 때 하나의 DHCP서버만으로도 전체 네트워크에서 DHCP서비스를 가능하게 만들 수 있다는 것을 의미한다. 물리적인 구성은 뒤에서 살펴보고 여기서는 설정하는 방법을 알아보도록 하자.


 
<그림4-33. DHCP서버에 새로운 IP범위 추가구성>

 

서버이름을 클릭하면 새로운 범위를 추가할 수 있다. 구성방법은 처음 구성할 때와 차이가 없다.


<그림4-34. 두 개의 범위를 가지고 있는 DHCP서버>

 

<그림4-34>에서는 blueapple이라는 이름의 DHCP서버가 192.168.5.0 192.168.10.0 이라는 두 개의 네트워크 범위를 가지고 있는 그림을 보여준다.

 

4-5-2. DHCP클라이언트에게 특정 IP Address 예약

 

기본적으로 DHCP서버는 클라이언트의 DHCP요청에 대하여 사용가능한 첫 번째 IP를 발급한다. 만일 bluexp라는 이름의 호스트에게 반드시 특별한 IP Address를 발급하고자 한다면 예약을 통해서 구현해야 한다. IP가 변경되어서는 안되는 서비스를 하고 있는 컴퓨터의 경우에는 이러한 방법을 이용할 수 있다.



<그림4-35. DHCP Client 예약>

 

DHCP관리콘솔의 클라이언트에게 발급할 IP를 포함하고 있는 범위를 클릭하고, '예약'을 클릭한다.

 


<그림4-36. DHCP 클라이언트 새 예약>

 

예약이름은 단순한 표기에 지나지 않는다. 관리자가 구별하기 쉬운 이름을 입력해 주면 되지만, IP주소와 MAC주소는 정확히 지정해야 한다. 이 예약할 IP주소는 임대할 IP범위에 포함이 되어 있어야 한다. 192.168.5.11~100까지가 IP범위인데, 192.168.5.120이라는 범위밖의 IP를 예약할 수는 없다는 것이다. 예제에서는 blueXP라는 클라이언트에게 IP 192.168.5.25를 발급하도록 예약하는 그림을 보여준다. DHCP프로세스가 브로드캐스트를 이용한다고 했다. 이때 DHCP서버가 DHCP 브로드캐스트 메시지를 받고 예약된 클라이언트인지 확인하는 근거로는 DHCP클라이언트 NICMAC주소를 사용한다.

 

MAC(Media Access Control) Address IP Address라는 논리적인 주소와는 구별되는 NIC에 할당되는 물리적인 6byte로 구성된 주소이다. MAC주소를 확인하는 방법은 알고자 하는 NIC를 가진 컴퓨터에서 ipconfig/all을 이용하면 간단히 얻을 수 있다. 장치관리자에서 네트워크 어댑터 디바이스 등록정보를 통해서도 확인할 수 있지만 꽤 번거로운 작업이다. 네트워크 상에서 이러한 정보를 얻고자 한다면 'arp'유틸리티를 이용할 수 있다.



<그림4-37. arp를 이용한 MAC 주소 확인>

 

ping 192.168.5.11를 하면 4개의 응답이 오는 것을 확인할 수 있는데 이 응답이 온다는 것은 실제로 192.168.5.11 호스트와 물리적인 통신이 이루어졌다는 것을 의미한다. 곧 이어서 'arp -a'를 입력해 보면 시스템의 캐쉬에 저장된 ARP주소 매핑 테이블을 보여준다. <그림4-37>에서 하이라이트된 부분이 192.168.5.11 MAC Address를 보여주는 부분이고, dynamic 이라는 유형을 가진 것을 확인할 수 있다.

 

이렇게 상대방 컴퓨터가 가진 NIC MAC주소를 알아낸 후 DHCP클라이언트를 예약할 때 이 MAC주소를 그대로 사용하면 된다. <그림4-38>에서 보는 바와 같이 하이픈(-)은 제외하고 12자리의 숫자를 기록한다.



<그림4-38. DHCP관리콘솔-예약된 클라이언트>

 

예약을 하면 관리콘솔에서는 예약된 클라이언트의 범위를 확인할 수 있고, DHCP서버는 이 IP를 사용가능한 IP에서 제외시켜서 다른 클라이언트에게는 할당하지 않고 "예약 비활성"상태로만 유지한다.



<그림4-39. IP Address 갱신 작업>

 

bluexp DHCP Client에서 ipconfig/renew를 이용해서 IP를 갱신요청을 했더니 기존에 받았던 192.168.5.11을 반납하고 192.168.5.25 라는 예약된 IP를 받아온 것을 확인할 수 있다. 잘 동작해 주고 있다.



<그림4-40. DHCP관리콘솔-예약 활성화된 DHCP클라이언트>

 

관리콘솔에서도 변화가 생겼다. 주소임대 항목을 클릭해 보면 192.168.5.25의 상태가 "활성" 즉 예약된 클라이언트가 IP를 받아갔음을 보여준다.

 

4-5-3. 사용자 클래스 사용 ; 부서마다 다른 라우터를 사용하게 하자?

 

DHCP서비스를 사용하는 관리자들이 가끔 이런 생각을 해 왔다. 부서마다 다른 DHCP옵션을 설정할 순 없을까? 한 예로 영업부서 직원들은 192.168.5.1 라우터를 사용하고, 관리부서 직원들은 192.168.5.2 라우터를 사용하게 할 수 있다면 보다 빠른 통신이 가능할텐데.... 혹은 한 네트워크에서도 일부는 192.168.5.200 DNS를 사용하고 일부는 192.168.5.230 DNS를 사용하게 한다면 사용자들은 보다 빠른 응답시간을 제공받을 수 있을텐데... 하는 생각을 할 수 있을텐데,… 이러한 것들이 직접 구현이 가능해 졌다.

 

DHCP서버에서 제공되는 '사용자 클래스'라는 옵션을 사용하면 가능한 작업이다. 구현을 통해서 설명한다.


<그림4-41. 사용자 클래스 정의>

 

먼저 회사에서 특별히 사용자정의해서 사용할 클래스를 정의해야 한다. 예제에서는 sales 라는 클래스를 만들어 보도록 한다. 영업부서 사용자들이 DHCP로부터 할당받을 옵션이라는 뜻으로 sales라고 표기한 것이다. 큰 의미는 없다. 다만 구별하기만 쉬우면 될 것이다. DHCP관리콘솔에서 DHCP서버의 이름을 클릭하고 마우스 오른쪽 버튼을 눌러서 "사용자 클래스 정의"를 선택한다.  



<그림4-42. 기본정의된 사용자 클래스>

 

이미 정의된 2개의 사용자 클래스가 있는데, 여기서 sales를 추가해야 한다. <추가>버튼을 눌러서 다음으로 진행한다


<그림4-43. 새 클래스 생성방법>

 

 표시이름에는 sales라고 입력했다. 복잡한 이름보다는 가급적이면 간결한 이름을 사용한다. 이후에 사용자들의 컴퓨터마다 별도의 설정을 해야 하니 간단한 것이 좋다. 클래스를 구별하기 쉽도록 설명을 달았으며 아래의 바이너리값에는 중복되지 않는 숫자를 할당한다. 예제에서는 "1"이라고만 입력했다. 입력을 마쳤으면 <확인>을 누른다.

 


<그림4-44. sales 사용자 클래스가 추가된 그림>

 

 사용자 클래스에 sales라는 클래스가 추가되었음을 보여준다.

 


 <그림4-45. 서버 옵션 구성>

 

DHCP관리콘솔에서 '서버옵션'을 클릭하고 '옵션구성'메뉴를 선택한다.

 


<그림4-46. 사용자 클래스 옵션 선택>

사용자 클래스 항목을 클릭한 후 위에서 추가한 sales 사용자 클래스를 찾아서 클릭한다.(그림4-46)



<그림4-47. sales 클래스에 별도의 라우터 옵션 설정>

 

선택한 sales 클래스에 별도의 DHCP옵션을 설정하는 것이 가능하다. 예제에서는 라우터 옵션으로 192.168.3.2를 할당하고 있다. 이상으로 DHCP서버 구성을 마쳤다. 이제부터 DHCP서버는 DHCP클라이언트가 요청을 보냈을 때 이 클라이언트가 어떤 클래스에 있는지를 살펴보고 sales 클래스에 소속된 클라이언트라면 sales 클래스를 위해 특별히 설정된 DHCP옵션값을 클라이언트에게 제공한다.

 

그렇다면 한가지 의문이 생길 것이다. DHCP서버는 클라이언트가 어떤 클래스에 소속되어 있는지를 무슨 근거로 판단하는 것일까? 해답은 클래스를 구분해주는 값이 클라이언트의 DHCP 브로드캐스트 요청에 포함이 되어 있다는데 있다. 그래서 DHCP클라이언트 쪽에서는 특별한 설정을 통해서 자신이 sales 클래스에 속해 있음을 DHCP서버에게 알려줘야 하는데 다음과 같이 설정한다.



<그림4-48. ipconfig의 옵션 확인>

 

ipconfig/?를 이용하여 옵션들을 살펴보니 /showclassid, /setclassid 라는 옵션이 보이다. 이것을 사용하여 DHCP클라이언트는 자신이 속한 클래스를 정의한다.  



<그림4-49. ipconfig/showclassid 사용법>

 

DHCP클라이언트쪽에서 'ipconfig/showclassid private'를 명령을 입력해 보았다. 여기서 private는 네트워크 연결의 이름을 가리킨다. NIC를 지정해 주는 것이다. 잠시후 명령에 대한 응답이 오는데 DHCP서버에 추가한 sales 사용자 클래스를 확인할 수 있다.

 

이번에는 위에서 확인한 sales 클래스를 설정해 보겠다. ipconfig/setclassid를 이용하면 된다.

 


 <그림4-50. ipconfig/setclassid를 사용한 사용자 클래스 설정>

 

명령프롬프트에서 'ipconfig/setclassid private sales'를 입력했다. "ipconfig/setclassid + 네트워크연결이름+사용자 클래스 이름"의 형태를 사용하는 것이다. 그러면 <그림4-50>에서 보듯이 DHCP Class ID sales 로 정의되는 것을 볼 수 있다. 이때부터 DHCP클라이언트의 DHCP브로드캐스트에는 이러한 sales라는 클래스 값까지 포함되게 되고, DHCP서버는 이 클래스를 기반으로 클라이언트에게 특별한 옵션을 할당해 주는 것이 가능한다.

 

 

네트워크 연결 이름 바꾸기

기본적으로 NIC가 추가되면 그 연결의 이름은 "로컬 영역 연결"로 정의된다. 이것을 '이름바꾸기'를 이용해서 이름을 변경해 두면 여러모로 사용이 편리한다. 예제의 Private 라는 이름도 '로컬 영역 연결'의 이름을 바꾼 것 뿐이다. 아래의 그림을 참고한다.

 

 <그림4-51> 네트워크 연결 이름 바꾸기

 

 

 

4-5-4. DHCP옵션의 적용 순서

 

 위에서 이야기를 하다 보니 DHCP옵션을 설정하는 항목들이 나오는데 DHCP관리콘솔을 이용해서 DHCP옵션을 설정하려고 접근해 보면 꽤 여러 군데에서 옵션설정이 가능함을 알 수 있다.

 


<그림4-52. DHCP서버의 다양한 옵션구성>

 

위에서 보듯이 DHCP서버는 다양한 옵션 구성 메뉴를 가지고 있다. 서버옵션, 범위옵션, 예약된 클라이언트 옵션이 있고, 그런가 하면 마지막에 구성해 보았던 사용자 클래스 옵션도 있다. 4가지 옵션들이 어떤 순서로 적용되는 지를 정리한다.

 

옵션으로 할 수 있는 작업은 DHCP클라이언트에게 Default Gateway, DNS서버, WINS서버 등의 TCP/IP의 추가 구성요소를 설정해 준다고 설명한 바 있다.


*
서버옵션 : DHCP서버에서 생성되는 모든 네트워크 범위에 공통적으로 적용될 옵션

* 범위옵션 : DHCP서버에서 생성되는 각 범위마다 고유한 옵션. 예제의 192.168.5.0 네트워크와 192.168.10.0 네트워크는 서로 다른 DNS서버등의 DHCP옵션을 구성하는 것이 가능하다.

* 클래스 옵션 : 특정한 OS, 미리 정의된 사용자 클래스를 가지고 있는 클라이언트에게 발급되는 DHCP옵션

* 클라이언트 옵션 : 예약된 클라이언트에게 할당할 수 있는 DHCP옵션

 

귀찮긴 하지만 테스트를 해 보면 금방 이해할 수 있는 옵션들이다. 기본적인 사용방법은 간단하다. 모든 네트워크에 공통적으로 적용할 옵션은 '서버옵션'으로 부여하고, 003 라우터옵션 같은 각 범위마다 고유해야 하는 DHCP옵션은 범위옵션으로 설정하면 된다. 하나의 네트워크만 지원하는 DHCP서버를 구성하였다면 서버옵션과 범위옵션은 동일하다. 이들이 모두 구성되었을 때 DHCP클라이언트에게 적용되는 순서는 '서버옵션->범위옵션->클래스옵션->클라이언트옵션'와 같이 적용된다. 결국 클라이언트 옵션이 가장 우선시 되는 옵션이다.

 

4-5-5. APIPA (Automatic Private IP Addressing)

 

DHCP서비스를 이용하여 IP Address를 관리하는 것은 상당한 편의성을 제공한다. 그렇지만 막상 DHCP서버가 문제가 생겼다면 클라이언트들은 IP Address를 받을 수가 없게 되기 때문에 TCP/IP구성을 제대로 설정할 수 없다. 당연히 네트워크에서 TCP/IP통신은 하지 못하게 되는 것이다.

 

Windows2000, XP에서는 이러한 경우를 대비하여 한가지 대책을 포함하고 있다. 바로 APIPA라는 기능이다. 이 기능을 통해서 DHCP클라이언트가 서버로부터 IP Address를 받지 못하는 상황에 직면했을 때 클라이언트는 스스로 자신의 IP를 할당하는 방법을 통해서 TCP/IP구성을 마치게 된다. 이때 사용하는 Network ID 169.254.0.0 이다. 이것은 B Class인 것을 알 수 있는데, 인터넷 환경에서는 찾아볼 수 없다. 개인네트워크를 위한 ID로 예약되어 있다. 기존에 정상적으로 네트워크에서 사용하던 IP와는 구분된다.



<그림4-53. Automatic Private IP가 구성된 DHCP클라이언트>

 

DHCP서버가 없는 상태에서 DHCP클라이언트는 1, 2, 4, 8, 16초 간격으로 계속해서 DHCP서버를 찾는 브로드캐스트를 날리게 되며 결국 마지막까지 DHCP서버로부터 응답이 없으면 169.254.0.0 범위에서 자신의 TCP/IP IP Address를 하나 직접 구성하며 그 IP가 현재 네트워크에서 사용되고 있지 않은지 확인한 다음 그때부터 해당 IP를 자신의 IP로 설정해서 사용한다. 완전한 통신은 되지 않지만 적어도 내부 네트워크의 DHCP 클라이언트들과는 통신을 계속 할 수가 있게 된다. 그러면서 이 DHCP클라이언트는 매 5초간격으로 지속적으로 DHCP Request메시지를 네트워크에 발생시키다가 다시 DHCP서버가 IP를 줄 수 있는 상태가 되었다면 DHCP클라이언트는 스스로 할당한 IP Address대신에 DHCP서버를 통해서 정상적인 IP를 받아오게 된다. 이 모든 것은 컴퓨터가 자동으로 처리를 해 주고 있다. 제법 똑똑해졌다. <그림4-54>을 보면 169.254.196.38 IP Address를 사용하던 클라이언트가 잠시후 다시 ipconfig를 해 보았더니 192.168.5.102 라는 IP를 할당받은 것을 보여준다. DHCP서버가 사용 가능해진 것이다.



<그림4-54. DHCP서버로부터 재구성된 DHCP클라이언트>

 

하지만 DHCP서버가 없을 때 당연히 DHCP클라이언트 컴퓨터에서는 사용자가 꽤 느리다고 생각할 만한 부팅시간이 더 소모되어야 하고, 결국 제대로 통신이 되는 것도 아닌 상태가 되므로 DHCP서버를 중복배치하여 문제를 해결할 노력을 하는 편이 좋을 것이다. 조금 더 확장된 환경에서의 DHCP구성을 다음장에서 다루도록 하겠다.

 

4-5-6. DHCP서버 고급 옵션

 

DHCP관리콘솔의 왼쪽패널에서 DHCP서버의 이름을 클릭하고 등록정보를 열어보면 마지막탭에서 <고급>옵션을 찾아 볼 수 있다.

 


<그림4-55. DHCP서버 고급 옵션>

 

<그림4-55>에서 충돌 감지 시도 횟수옵션이 있는데 기본값은 ‘0’이다. 이것을 사용하면 네트워크에서 사용중인 IP Address DHCP클라이언트에게 할당하지 않도록 배려할 수 있다. DHCP프로세스는 단순하여 DHCP클라이언트가 서버에게 IP를 요청했을 때 서버는 자신의 IP영역에서 사용가능한 IP를 클라이언트에게 무조건적으로 할당하고 만다. 이때 만일 DHCP클라이언트가 서버로부터 할당받은 IP가 이미 다른 컴퓨터가 사용중이었다면 IP Address는 충돌이 발생하고 클라이언트는 TCP/IP를 사용하지 못하게 된다.

 

물론 잘 운영되는 네트워크 환경에서는 IP충돌이 발생하지 않아서 불필요한 트래픽을 유발시킨다고 생각될 수도 있지만 만일을 위해서 사용할 만한 옵션이다. 이 옵션이 체크되어 있으면 DHCP서버는 클라이언트의 IP임대요청을 받고 나서 IP영역에서 클라이언트에게 발급할 IP를 선택한 다음 해당 IP가 현재 네트워크에서 사용중인지 설정된 횟수만큼 체크하는 작업을 한다. 그리고 나서 사용되지 않는다는 것을 확인한 후 IP를 발급해주게 된다.

 

그 다음 2개의 경로박스는 DHCP서비스가 진행되는 모든 프로세스를 일단위로 로깅을 하는데 기본폴더 위치와, DHCP데이터베이스가 저장되는 위치를 변경할 수 있는 메뉴이다.

 

마지막의 <바인딩>버튼을 이용하면 DHCP서버의 특정 NIC를 통해서 들어오는 요청만 받아들인다든지, 요청을 거부한다든지 하는 설정을 할 수 있다. 기본적으로 DHCP서버는 모든 NIC로부터 들어오는 DHCP요청을 처리하도록 되어 있다.

:
Posted by 새벽예찬
2008. 11. 13. 21:49

4-4. DHCP의 임대 갱신 과정 Windows Networking2008. 11. 13. 21:49

 

DHCP클라이언트는 IP를 발급받을 때 DHCP서버로부터 임대기간도 넘겨받는다. DHCP클라이언트가 서버로부터 IP Address를 발급받고 나서 계속 시스템이 켜져 있다면 IP Address가 계속 필요하게 된다. 이때 DHCP클라이언트는 임대기간이 만료되기 발급받은 IP를 계속 사용하겠다는 연장신청으로 DHCP Request (Unicast)를 발송한다.

 

그 시점은 임대기간의 50%(1/2)가 되는 시점이다. 이 때의 요청은 맨 처음과는 분명히 다르다. DHCP클라이언트가 이미 서버로부터 발급받은 정상적인 IP Address를 가지고 있으므로 처음처럼 브로드캐스트를 이용하는 것이 아니라 유니캐스트를 이용한 DHCP Server와의 직접적인(direct) 통신을 진행하며, DHCP Process 4가지 과정중 3,4번째인 Requst, Ack 절차만 진행된다.



<그림4-32. DHCP갱신과정>

 

그러면 DHCP서버는 연장신청을 받아주고, 새롭게 임대기간을 설정해서 DHCP클라이언트에게 Ack 메시지로서 응답을 한다. 이러한 과정 때문에 DHCP클라이언트는 한번 받은 IP를 지속적으로 쓰는 것이 가능하다. 그런 이유로 안정적인 네트워크에서는 DHCP를 사용하더라도 클라이언트의 IP는 거의 고정 IP를 쓰는 것과 별 차이가 없이 동작한다.

 

만일 1/2 시점에서 DHCP서비스의 문제로 인하여 클라이언트가 IP Address갱신을 실패한다면? 그렇더라도 클라이언트는 계속해서 기존의 IP Address를 가지고 정상적인 TCP/IP통신을 진행할 수 있다. 그런 다음, 임대기간의 7/8시점에 이르면 다시 DHCP초기과정을 진행한다. <그림4-32>에서 보자면 8일이 임대기간이었으니 7/8, 7일째 되는 시간에 DHCP Request 브로드캐스트를 발생한다. 이때 클라이언트가 사용하던 IP Address를 갱신해줄 DHCP서버가 있다면 IP Address는 갱신이 되지만, 아무 응답이 없으면 다시 클라이언트는 DHCP Discover 브로드캐스트를 내보내어 새로운 DHCP서버를 찾는 작업을 하게 된다. 이때의 DHCP요청은 최초의 DHCP요청과 동일하다.

:
Posted by 새벽예찬
2008. 11. 13. 21:46

4-3. DHCP Client 구성 Windows Networking2008. 11. 13. 21:46

 

호스트가 DHCP Server IP Address를 요청하게 하기 위해서는 간단한 설정이 필요하다. 바로 DHCP Client로 설정을 해 주어야 하는 것이다.

 

먼저 TCP/IP등록정보를 실행해야 하는데, 바탕화면의 "네트워크 환경"을 마우스 오른쪽 클릭하여 "등록정보"로 접근한다. <그림4-24> 예제는 Windows XP Professional 이다. OS별로 인터페이스는 약간씩 다르지만 별 차이는 없다


<그림4-24. 네트워크 등록정보>

 

만일 바탕화면에서 "네트워크 환경"아이콘을 찾을 수가 없다면 "제어판"을 열고 "네트워크 연결"이라는 메뉴를 찾아본다. 역시 버전마다 조금씩 차이가 있으니 "네트워크"라는 이름이 들어간 아이콘을 찾으면 될 것이다.<그림4-25>


<그림4-25. 제어판을 이용한 접근>

 

네트워크의 등록정보를 열면 <그림4-26>와 같은 화면을 만날 수 있다.


<그림4-26. 네트워크 연결 화면>

 

<그림4-26>의 예제 화면에는 필자가 사용하는 전화접속 어댑터로 "Chollian"이 설치되어 있고, LAN 어댑터로는 Public, Private이라는 두 개의 어댑터가 설치되어 있다. 자세히 보면 "Public" "사용안함"상태로 되어 있다. 이것은 NIC가 없는 것과 동일한 상황이다.

 

기존에 있는 네트워크 연결을 관리할 때도 이 메뉴를 사용하지만 새로운 네트워크 연결을 추가할 때도 역시 이 메뉴를 사용한다. 회사의 전화접속서버에 원격으로 연결해서 회사의 네트워크에 접속을 할 경우나, 집에서 ADSL등의 초고속 인터넷 망에 연결할 때도 이 메뉴를 통해서 관리한다. TCP/IP등록정보로 접근하기 위하여 해당 NIC를 클릭하고 마우스 오른쪽 버튼을 이용하여 "등록정보(속성)"메뉴를 연다



<그림4-27. 네트워크 연결 - 등록정보>

 

이 어댑터 카드에 연결된 항목들의 리스트가 보이는데 인터넷 프로토콜(TCP/IP)을 선택하고 '속성'버튼을 누르면 TCP/IP등록정보로 접근한다.



<그림4-28. TCP/IP 등록정보>

 

TCP/IP등록정보를 열면 IP를 구성하는 방법이 두가지임을 알 수 있다. 자동으로 받는 방법과 다음IP주소 사용이라는 수동으로 구성하는 방법이 있다. "여기서 자동으로 IP주소받기"를 선택하면 바로 DHCP클라이언트가 된다. 구성을 하고 <확인>버튼을 누르면 Windows2000 이전버전의 OS에서는 시스템을 재시작해야 한다

 

"아래쪽에 자동으로 DNS서버주소받기" 옵션도 사용가능한 상태로 되는데 이것만을 별도로 DHCP를 통해서 받지 않고 수동설정도 가능하다. 수동으로 설정하면 DHCP서버가 할당해 주는 것보다는 우선해서 사용된다. 별도로 DNS서버 설정을 따로 할 이유가 없다. 역시 자동으로 할당받도록 구성한다.

 

이제 DHCP클라이언트 구성을 마쳤다. 클라이언트쪽에서 자신이 할당받은 IP Address를 확인하려면 특별한 명령어를 사용한다. ipconfig 가 그것이다. ipconfig에 대한 자세한 사용법을 원한다면 명령프롬프트를 열고 "ipconfig/?"라고 타이핑해 본다. 명령프롬프트에서 쓸 수 있는 명령어는 꽤 많다. 전체 명령어를 알려면 help 라고만 입력해 본다. help를 통해서 나오는 명령어들 하나하나가 특별한 옵션을 가지고 있는데 각 명령어들의 사용법은 역시 help /?를 통해서 알아 볼 수 있다.(, c:\net help 또는 c:\net /? ) 자주 쓰는 명령어들에 대해서는 따로 정리를 하도록 하겠다.

 


<그림4-29. DHCP서버로부터 받은 IP Addrees 확인>

 

그림에서는 ipconfig/all을 통해서 얻은 결과를 보여준다. bluexp라는 이름의 호스트는 IP Address로써 192.168.5.11을 사용하며 Default Gateway, DNS, WINS 등도 각각 구성되어 있음을 볼 수 있다. <그림4-29>에서 하이라이트된 부분을 통해서 DHCP Server 192.168.5.1임을 알 수 있다. Lease Expires 라는 항목을 통해서 이 IP의 임대기간을 확인할 수도 있다. Windows 98 이전버전에서는 ipconfig 커맨드를 지원하지 않는다. 하지만 Windows9x에서는 시작-실행창에서 ‘winipcfg’를 이용하면 된다. 아무래도 사용자들의 데스크탑용 OS인 만큼 GUI 환경의 사용자 인터페이스를 제공한다.



<그림4-30. DHCP관리콘솔에서 주소가 임대된 IP 리스트 확인>

 

당연히 DHCP서버쪽에서도 변화가 있어났다. DHCP관리콘솔을 열고 '주소임대'를 클릭해 보면 <그림4-30>의 오른쪽 패널에서 bluexp라는 이름의 호스트에게 192.168.5.11  발급하였다.  

 

테스트 환경에서는 다음과 같은 커맨드도 유용한다. ipconfig/release, ipconfig/renew를 통해서 수동으로 DHCP Server로부터 할당받은 IP Address를 반납하고, 다시 받아오는 것을 확인할 수 있다.



<그림4-31. 수동으로 IP Address 갱신 작업>

 

위의 그림을 보면 ipconfig/release를 이용해서 서버로부터 임대해온 IP Address를 반납했다. IP Address 0.0.0.0임을 보여준다. 다시 ipconfig/renew를 입력했더니 192.168.5.11 IP Address가 설정되었음을 볼 수 있다.


:
Posted by 새벽예찬

생각해 봅시다.

 

호스트수보다 IP Address가 부족한 상황에서 DHCP를 통해서 해결하고자 하는 관리자가 있는데 좋지 않은 방법이라 생각된다. 문제의 소지가 있기 때문이다. 하지만 경우에 따라서는 사용할 수는 있는 방법이다.

 

예를 들어서 IP Address 50개를 가지고 있는데 호스트의 수는 100대라고 가정을 해 보겠다. 100대의 호스트중 동시에 켜져 있는 호스트가 보통 50대 미만이라면 켜져 있는 호스트에게만 적절히 IP Address를 발급해서 IP Address의 부족을 해결할 수 있을것이기 때문이다.

 

하지만 마이크로소프트의 DHCP는 기본적으로 IP를 할당받은 호스트가 시스템이 꺼진다고 해서 IP를 반납하는 것은 아니다. Windows2000, XP 컴퓨터들은 추가설정을 통해서 그러한 기능을 구현하는 것은 가능하지만 그밖의 OS에서는 지원되지 않고 있다. 그렇기 때문에 호스트가 꺼져 있더라도 임대기간동안 DHCP서버는 해당 호스트의 IP가 발급된 것으로 판단하고 새롭게 요청하는 DHCP클라이언트에게 그 IP를 발급해 주지 않는다.

 

해결책은 IP임대기간을 아주 짧게 설정하는 방법이 있다. IP임대기간을 30분으로 설정했다고 가정했을 때, 호스트가 꺼지게 되면 얼마 되지 않아 DHCP는 임대기간이 만료된 IP를 다시 사용가능한 IP상태로 돌리게 되는 것이다. 그러면 이 IP는 다시 새로운 DHCP를 클라이언트를 위해서 사용되는 것이 가능해진다. 이러한 임대기간의 조정으로 IP부족이라는 측면을 DHCP를 통해서 어느 정도 조절하는 것은 가능하지만 완벽한 솔루션은 아니라는 생각이 들 것이다.

 

 IP가 부족하다면 DHCP를 이용해서 해결하려고 하기 보다는 개인 네트워크 (Private Network, 사설네트워크)를 구성할 것을 고려해 보아야 한다. NAT, Proxy Server 등을 통한 개인네트워크의 구축은 회사의 IP절약은 물론 보다 향상된 보안까지 제공한다.

:
Posted by 새벽예찬
2008. 11. 13. 21:28

4-2. DHCP서버의 구현 Windows Networking2008. 11. 13. 21:28

 

DHCP서비스를 구현하기 전에 가장 먼저 할 일은 네트워크에서 IP Address관리방법에 대한 결정이 있어야 한다. 클래스 전체를 하나의 네트워크에서 쓸 것인지, 서브넷팅을 통해서 사용을 할 것인지에 대한 결정이 되었다면 이번에는 각 네트워크마다 사용할 호스트ID의 범위중에서 어떠한 IP를 라우터에게 할당을 하고, 어떠한 IP를 서버들에게 할당을 할 것이고, 어떠한 IP DHCP를 통해서 클라이언트에게 할당한 것인지 등을 결정하는 과정을 의미한다. 간단하게 A회사의 IP Address 관리테이블을 만들어 보았다.

 

<그림4-4. A회사 IP Address 관리 테이블>

 

이제 클라이언트를 위한 DHCP서비스를 구현해 보도록 하겠다. 네트워크에는 DHCP서버가 있어야 하고, 당연히 클라이언트도 구성이 되어야 한다. DHCP서버는 네트워킹 서비스이므로 서버제품군에서 구현될 수 있다. 먼저 DHCP서버를 설정해 보겠다.

 

Windows Server 2003이 설치될 때 DHCP, DNS 등의 네트워크 서비스는 기본적으로 설치되지 않는다. 구현을 하고자 할 때 추가로 설치를 해야 하는데 제어판의 프로그램 추가/제거를 통해서 설치할 수 있다.

 

4-2-1. DHCP서비스 설치

 


<그림4-5. DHCP서비스 설치>

 

제어판의 프로그램추가/제거를 열고 "Windows구성요소 추가"를 선택하면 잠시후 "Windows구성요소"창이 열린다리스트를 찾아보면 "네트워킹 서비스"가 있는데 이것은 DHCP, DNS, WINS 등의 네트워킹 서비스들 전체의 묶음이다. -네트워킹 서비스 앞의 체크박스를 클릭하면 전체 네트워킹 서비스들이 설치가 되므로 체크박스 대신에 글자 부분을 클릭한다.- <자세히>버튼을 누르면 리스트에서 "DHCP(동적 호스트 구성 프로토콜)"를 찾을 수 있다. 체크하고 <확인>을 누르면 설치를 시작한다. Windows서버의 원본CD-Rom이 요구된다. 원본CD중에서도 i386 폴더가 셋업을 위한 폴더이다. 원본CD위치를 묻는 메시지가 뜬다면 원본CD를 넣고 i386폴더를 지정해 주면 셋업이 시작된다.

 

잠시후 설치가 끝났다는 메시지가 나오면 DHCP서비스가 추가된 것이다. 관리도구에 "DHCP" 라는 관리메뉴가 추가된 것을 볼 수 있는데, 클릭하면 <그림4-6>과 같은 그림을 만날 수 있다.

<그림4-6. DHCP 관리콘솔>

 

그림을 보면 친절하게도 오른쪽 패널에 설치방법에 대해서 설명을 해 주고 있다. 그리고 왼쪽패널의 서버이름 부분을 보면 아래쪽으로 향한 빨간색 화살표를 확인할 수 있다. DHCP서비스가 멈춰져 있다는 것을 말한다.

 

4-2-2. DHCP권한부여 작업 - (Active Directory 도메인 환경에서만 적용됨)

 

<그림4-6>에서 오른쪽 패널의 설명을 읽어보면 "DHCP서버가 IP 주소를 발급하기 전에 범위를 만들고 DHCP서버에 권한을 부여해야 합니다"라고 이야기한다. 범위라 하면 클라이언트들에게 발급할 IP Address를 구성하라는 뜻인 것 같은데, 권한을 부여하라구? 이렇듯 Windows Server 2003 DHCP서비스는 설치만 한다고 동작하는 것이 아니다. DHCP서버가 동작할 수 있도록 권한이 부여가 되어야만 DHCP서버는 동작을 하게 된다.

이것은 아무나 할 수 있는 작업은 아니다. 도메인에서 이러한 작업을 할 수 있는 사용자는 기본적으로 "관리자"로 제한된다. 정확히 말하면 도메인의 "Enterprise Admins"라는 그룹의 멤버가 이러한 작업을 할 수 있다.

이것은 어디까지나 회사의 네트워크 환경이 Active Directory도메인으로 구성되어 있을 때의 상황이다. 만일 회사가 도메인 모델을 채택하지 않고 워크그룹 환경으로 구성되어 독립된 서버에서 DHCP서비스를 구현하고 있다면 이 과정은 건너 뛰고 바로 다음 작업인 DHCP서버 구성으로 넘어간다.

 


 <그림4-7. DHCP서버 권한부여>

 

DHCP서버에 권한을 부여하기 위해서는 DHCP관리콘솔을 이용한다. 관리콘솔에서 서버이름을 클릭하고 마우스 오른쪽 버튼을 누른후 "권한부여"를 선택하면 간단히 권한이 부여된다. 권한이 부여된 DHCP서버의 리스트를 확인하거나, 여러대의 DHCP서버를 관리하고자 한다면 다른 방법도 있다. 관리콘솔에서 DHCP항목을 클릭하고 마우스 오른쪽 버튼을 누르면 "권한이 부여된 서버관리"라는 메뉴를 볼 수가 있다<그림4-8>

 


 <그림4-8. 권한이 부여된 DHCP서버 관리메뉴>

 

<그림4-8>의 메뉴를 클릭하면 Active Directory에서 권한이 부여된 DHCP서버의 리스트를 볼 수가 있고 다른 DHCP서버에게 권한을 부여하거나 리스트에서 DHCP서버를 제거하는 것도 가능하다.



 <그림4-9.권한이 부여된 DHCP서버관리>

 

DHCP서버에게 권한을 부여하고 나면 관리콘솔의 왼쪽패널의 서버이름 옆에 위로 향한 녹색 화살표를 확인할 수 있다. DHCP서비스가 시작된 것이고, 오른쪽 패널의 설명도 처음 DHCP서비스를 추가했을 때와는 다른 설명을 보여주고 있다. <그림4-10>



 <그림4-10. DHCP서비스가 시작된 DHCP관리콘솔>

 

4-2-3. DHCP서버 구성

 

DHCP서비스가 시작되면 DHCP서버는 브로드캐스트를 통해서 DHCP Discover 메시지를 날리는 클라이언트에게 IP Address를 발급해 주어야 하는데 이렇게 하기 위해서는 당연히 DHCP서버는 클라이언트를 위한 IP Address Pool을 가지고 있어야 한다. IP Address 발급을 위한 범위를 만들고 클라이언트를 위한 추가설정을 해 주어야 하는 것이다.

 

예제에서 DHCP서비스를 하는 blueapple이라는 서버는 192.168.5.0 네트워크를 위해 IP를 발급하고자 한다.



<그림4-11. 새 범위 추가 메뉴>

 

서버이름을 클릭하고 마우스 오른쪽 버튼을 눌러서 "새 범위"를 추가한다

 


 <그림4-12.새 범위 추가-범위이름>

 

범위이름을 입력해야 하는데, 이것은 실제 서비스와는 아무런 상관이 없다. 관리자가 알아보기 쉽게 이름과 설명을 주면 된다. 여러개의 네트워크를 DHCP서버가 지원해야 할 때 각각의 범위를 구별하기 쉽게 이름을 부여한다. 예제에서는 '2층 네트워크'라고 입력했다



 <그림4-13. 새 범위 추가-IP주소 범위>

 

DHCP클라이언트에게 발급할 IP Address의 범위와 적합한 서브넷마스크를 입력해야 한다. 하나의 DHCP서버는 하나의 네트워크당 하나의 IP범위 관리영역만 가질 수가 있다는 것을 염두에 둔다. 만일 192.168.5.11~100까지가 DHCP클라이언트용 IP Address라고 가정을 했을 때, 51~60까지가 서버들에게 고정IP로 발급한 부분이라서 제외해야 한다고 하더라도 192.168.5.11~50까지의 하나의 범위를 만들고 추가로 192.168.5.61~100까지의 영역을 만들 수는 없다. 그럴 경우에는 일단 전체범위를 잡은 다음에 고정IP로 사용할 IP가 범위에 포함되어 있다면 다음 과정에서 그 특정범위만큼을 제외하는 방법을 사용해야



<그림4-14. 새 범위 추가- 제외주소 추가>

 

필요하다면, IP범위중에서 제외할 특정 IP IP범위를 추가한다. DHCP서버는 단순한다. 클라이언트가 IP를 요청했을 때 자신의 IP범위중에서 사용가능한 IP를 골라서 망설이지 않고 IP 발급을 한다. 만일 Web서버에게 192.168.5.20 IP Address가 셋팅되어 있다고 가정을 했을 때, DHCP서버의 설정에192.168.5.20 IP가 사용가능한 상태로 되어 있다면 DHCP클라이언트는 192.168.5.20 IP를 발급받게 된다.

 

이 경우 네트워크에서 이미 사용되고 있는 IP를 발급받은 해당 클라이언트는 정상적으로 TCP/IP를 사용할 수가 없게 된다. 관리자가 해결해 주면 되겠지만 간혹의 경우에는 먼저 이 IP Address가 설정된 Web 서버가 제대로 동작하지 못하는 경우가 발생할 수도 있으므로 IP Address의 충돌이 생길 소지가 있는 부분에는 특별히 신경을 써야 한다.

 

Windows2000 이상의 서버에서 DHCP서비스를 구현한다면 서버의 고급옵션에서 충돌감지시도횟수를 할당하여 DHCP클라이언트에게 IP를 할당하기 전에 먼저 IP사용유무를 테스트하게 할 수도 있다. 이번장의 후반부에서 다시 한번 언급된다.

 

<그림4-14>에서 보듯이 제외할 주소를 추가하는 방법은 두가지이다. IP Address를 하나씩 추가할 수도 있고, 범위를 지정해서 추가하는 방법이 있다.



<그림4-15. 새 범위 추가- 임대기간 결정>

 

클라이언트에게 IP를 발급할 때 결정해 줄 임대기간을 지정한다. 기본값은 8일이다. 임대기간이 길어질수록 IP Address 갱신주기가 길어질 것이기 때문에 IP Address가 충분히 여유가 있다면 기간을 더 길게 설정하는 것이 좋다. 네트워크에서 DHCP트래픽의 비중은 극히 일부분이지만 DHCP 관련된 네트워크 트래픽을 최소화 할 수 있는 방법이 된다. 반대의 상황이라면? 당연히 기간을 줄여야 할 것이다.

 


 <그림4-16. 새 범위 추가 - DHCP옵션구성>

 

지금까지 위에서는 클라이언트에게 발급할 IP Address Subnet Mask를 구성하였는데, 클라이언트들의 TCP/IP설정에는 Default Gateway, DNS, WINS등의 추가 설정이 필요하다. DHCP서버는 이러한 사항들을 'DHCP옵션'으로 처리해 주고 있다. DHCP옵션을 구성하는 그림이 나오는데 지금 구성할 수도 있고, 나중에 추가로 작업하는 것도 가능하다. "아니오"를 통해서 마법사를 마쳐도 기본적인 DHCP구성은 끝난 것이다. 계속 구성을 해 보도록 하겠다



<그림4-17. 새 범위 추가 - DHCP옵션구성 - Router>

 

클라이언트에게 할당할 Router, Default Gateway로 설정될 IP Address를 입력하고 <추가>버튼을 누릅니다.



<그림4-18. 새 범위 추가 - DHCP옵션구성 - DNS서버>

 

DNS를 구성하는 과정인데 <그림4-18>의 예제처럼 IP주소만 입력해 주어도 동작하는 데는 문제가 없다. 그렇지만 도메인 환경에서의 작업을 고려한다면 부모도메인의 항목에도 도메인 이름을 입력할 필요가 있다. 예를 들어서 사용자가 속한 도메인이 secure.pe.kr 이라고 하면 '부모도메인'항목에 'secure.pe.kr'이라고 입력을 한다. 그렇게 해 주면 사용자가 hostA.secure.pe.kr 이라는 이름의 호스트를 찾고자 할 때 hostA 라고만 입력을 해도 실제 DNS에 쿼리가 날아갈 때는 hostA.secure.pe.kr 라는 이름으로 요청을 한다.

 

또한 DNS서버의 IP를 하나만 주는 것보다는 2개를 할당하여 하나의 DNS서버가 문제가 있을 경우를 대비하는 것이 좋다. DHCP클라이언트는 DNS서버의 IP 2개를 가지게 되며 첫 번째 DNS서버가 문제가 있을시 두 번째 DNS서버를 통해서 호스트이름을 IP Address로 변환하는 작업을 처리할 수 있다. 회사에 DNS서버가 하나만 구현이 되어 있다면 추가로 ISP DNS, 외부의 DNS서버를 두 번째 DNS서버로 셋팅하는 것도 하나의 방법이다. DNS는 아주 중요한 서비스중의 하나이다. DNS에 대해서는 5장에서 자세히 다루도록 하겠다.

 


<그림4-19. 새 범위 추가 - DHCP옵션구성 - WINS서버>

 

WINS서버의 IP를 입력한다. 역시 하나보다는 두 개를 사용하는 것이 좋다. 물론 네트워크에 WINS서버가 적어도 2개 이상 있다는 전제가 따라야 한다. WINS서버는 "NetBIOS이름풀이"를 위해 필요한 서버이다. 6장에서 자세히 다룬다.



<그림4-20. 새 범위 추가 - DHCP옵션구성 - 범위 활성화>

 

이제 옵션구성도 끝났다. 192.168.5.0 네트워크의 IP범위를 활성화 할 필요가 있다. 활성화 하기 전까지는 DHCP서버는 클라이언트의 요청에 응답하지 않다. 만일 추가로 구성을 더 해야 할 필요가 있다면 "아니오. 나중에 활성화하겠다."를 선택해서 DHCP서버가 IP를 발급하지 못하도록 한다. 나중에 DHCP관리콘솔을 통해서 얼마든지 활성화 작업은 가능하다.

 


<그림4-21. 새 범위 추가 - 새 범위 마법사 완료>

 DHCP서버에 '새 범위 마법사'를 완료하는 그림이다.



<그림4-22. DHCP서버에 범위가 추가된 그림>


<
그림4-22>에서는 blueapple.secure.pe.kr 이라는 이름의 DHCP서버에 192.168.5.0 네트워크의 IP범위가 설정된 그림을 보여준다. 왼쪽패널의 '주소풀'을 클릭하면 오른쪽으로 IP주소 범위를 보여주는 그림을 볼 수 있다. 그림을 보면 192.168.5.11부터 192.168.5.100 까지가 범위로 되어 있고, 두 번째 리스트에는 192.168.5.20이 제외된 IP주소임을 보여준다. 결국 이 설정에서는 192.168.5.11~192.168.5.19, 192.168.5.21~192.168.5.100까지 총 89개의 IP가 사용가능하다는 것을 알 수 있다



<그림4-23. DHCP 범위 옵션 확인>

 

DHCP관리콘솔의 192.168.5.0 범위의 '범위옵션'을 눌러보면 오른쪽 패널에 위에서 설정한 몇가지 DHCP옵션이 나오는 것을 확인할 수 있다. 이것은 마이크로소프트의 네트워크를 구축할 때 항상 따라다니는 기본 DHCP옵션들이다.

 

* DHCP서버 구성시 기본적인 옵션

003  라우터

006  DNS서버

044  WINS/NBNS서버

046  WINS/NBT노드유형

 

각 옵션값들의 설명은 각각의 장에서 따로 다루도록 한다.

 

이제 DHCP서버의 구성은 마쳤다. 다음엔 DHCP클라이언트의 설정을 구성해야 할 차례이다. 그래야 이 DHCP서버로부터 TCP/IP 구성을 받아갈 수 있다.

:
Posted by 새벽예찬
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 새벽예찬