달력

5

« 2024/5 »

  • 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
  • 31
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 새벽예찬