DHCP에 대해서 간단히 말하자면 "자동 IP지급기"라고 말할 수 있습니다
자세히 말하자면
* DHCP(Dynamic Host Configuration Protocol)
- TCP/IP 통신을 실행하기 위해 필요한 설정 정보를 자동적으로 할당하고 관리하기 위한 통신규약
- RFC 1541에 정의
- IP주소 관리의 편의성, IP주소의 가용성 높여줌
DHCP 주소 할당 방식 | 특 징 |
동적 할당 (Dynamic Allocation) |
|
자동 할당 (Automatic Allocation) |
|
수동 할당 (Manual Allocation) |
|
또한 DHCP가 IP주소 할당을 완료하기 까지는 통상 다음과 같은 4가지 단계를 순차적으로 수행하도록 되어 있습니다
1. Discover
- DHCP 클라이언트는 부팅이 시작되는 동안에는 IP주소가 없음
- 부팅하고 네트워크가 시작되면 IP주소를 설정하여 TCP/IP를 초기화하려는 시도를 함
- DHCP 서버를 찾는 요청을 만들어 2계층과 3계층 브로드캐스트 주소를 이용하여 브로드캐스트
- Discover 메시지를 받은 DHCP 서버는 사용가능한 IP주소 하나를 포함한 DHCP 패킷을 만들어 브로드캐스트
- 만약 하나의 네트워크에 여러 개의 DHCP 서버가 있다면 모두 같은 작업
- DHCP 서버로부터 IP주소를 받은 DHCP 클라이언트가 즉시 IP주소를 사용하지 않고 자신에게 IP주소를 임대해준 서버에 IP주소를 포함한 패킷을 만들어 다시 네트워크에 브로드캐스트
- 자신(DHCP 서버)가 채택되지 않았다면?
- 채택되면?
IP주소 임대 기간등의 옵션을 담은 수신확인(Acknoledge)패킷을 만들어 최종적으로 브로드캐
스트
또한 DHCP 서버를 구성하는 방법은 2가지가 있습니다
- 라우터를 DHCP서버로 구성하는 방법
* 라우터에서의 DHCP 서버 설정
일단 아래와 같이 토폴로지를 구성해 봅시다
* R1 기본 설정 스크립트
R1>en
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 163.180.116.1 255.255.255.0
R1(config-if)#no shut
이제 라우터에 DHCP 서버를 설정한 후, Server0, PC0, PC1이 IP주소를 받아오도록 설정해 볼겁니다
DHCP를 설정할 때에는 아래의 순서와 같이 정의해야 합니다
순서 | 구문 |
① 제외시킬 IP주소 범위 정의 | ip dhcp excluded-address [첫번째 주소] [마지막 주소] |
② DHCP 서버 이름 설정 | ip dhcp pool [이름] |
③ DHCP를 통해 할당되는 IP 주소 대역 및 서브넷 마스크 설정 | network [IP 주소 대역] [서브넷 마스크] |
④ DNS 서버 설정 | dns-server [첫번째 서버 주소] [두번째 서버 주소] ........ |
⑤ 디폴트 게이트웨이 설정 | default-router [첫번째 주소] [두번째 주소] |
⑥ Netbios 서버 IP(Netbios 서버 이용할 경우에만) | netbios-name-server [첫번째 서버 주소] [두번째 서버 주소] |
⑦ 도메인 네임 설정 | domain-name [도메인 네임] ex) kimyunkwon.com |
⑧ 임대기간 설정 | lease infinite // 영구적으로 할당 lease [0-365days 0-23hours 0-59 minutes] |
⑨ 서비스 실행(수동으로 시작해야 할 경우) | service dhcp |
그러나 아쉽게도 현 버전의 패킷 트레이서에서는 위에서 5번째까지의 명령어만 지원합니다
이제 라우터에 DHCP서버를 구성하여 호스트들(Server, PC)에게 주소를 할당해 봅시다
R1(config)#ip dhcp excluded-address 163.180.116.1
R1(config)#ip dhcp excluded-address 163.180.116.255
// IP주소 대역에서 네트워크 주소와 브로드캐스트 주소는 제외
R1(config)#ip dhcp pool test
R1(dhcp-config)#network 163.180.116.0 255.255.255.0
R1(dhcp-config)#dns-server 1.1.1.1
R1(dhcp-config)#default-router 163.180.116.1
R1(dhcp-config)#exit
설정은 다 끝났습니다
이제 Server0,PC0,PC1에서 IP를 받아오도록 설정해 봅시다
PC0 화면입니다
위 화면을 보시면 수동설정인 "Static" 에 맞추어져 있습니다
옵션을 "DHCP"로 맞춰놓고 조금 기다리면 IP를 받아올 겁니다
위와같이 IP를 가져오는 걸 확인할 수 있습니다
다른 것도 위와같이 바꿔 줍시다
show ip dhcp binding 명령어를 사용하면 라우터에서 어떤 주소가 어떤 장치에게 할당되었는지 알 수 있습니다
* DHCP 서버를 통한 DHCP 서비스 구성
이번에는 패킷트레이서에 있는 Server에 DHCP 서비스를 구축하고
PC0,PC1에게 IP주소를 할당해 봅시다
일단 아까 라우터에 설정한 DHCP 설정을 지워야 겟죠?
R1>en
R1#conf t
R1(config)#no ip dhcp excluded-address 163.180.116.1
R1(config)#no ip dhcp excluded-address 163.180.116.255
R1(config)#no ip dhcp pool test
Server0 클릭->config -> 왼쪽 DHCP 클릭하고 위와같이 설정해 줍시다
** 마지막에 꼭 Add 버튼 누르셔서 설정을 저장해야 합니다
위와같이 설정해 주신 후에 Desktop->IP Configuration-> 에서 DHCP 서버의 IP주소를 설정합시다
그 다음에 PC들 클릭 -> Desktop -> IP Configuration 에서 DHCP를 설정하면 바로 받아오는 것을 확인할 수 있습니다
* 다른 브로드캐스트 영역을 위한 DHCP 서비스
위의 토폴로지를 보시면 Server1,PC1,PC0는 모두 같은 브로드캐스트 영역에 있지만
PC2만 다른 브로드캐스트 영역에 있습니다
이럴 경우에는 PC2 브로드캐스트에다 다른 DHCP 서버를 별도로 구축한다거나
또는 라우터에 반대쪽 브로드캐스트를 위한 DHCP를 구성한다면 라우터에 부담이 갈 수 있습니다
이러한 경우에는 DHCP 서버 한대를 통해 다른 브로드캐스트 영역까지 DHCP 서비스가 가능하도록 설정을 할 수 있습니다. 이때 쓰는 명령어가 ip helper-address입니다
이제 설정을 한번 해 봅시다
* R1
R1>en
R1#conf t
R1(config)#int fa0/1
R1(config-if)#ip add 163.180.116.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)#int fa0/0
R1(config-if)#ip add 203.230.7.1 255.255.255.0
R1(config-if)#no shut
* Server 1
Server1에서 DHCP 서비스를 구성할 때, fa0/1을 위한 DHCP와 fa0/0을 위한 DHCP를
따로 구성합니다
위와 같이 설정하신 후에 Server 0에서 Desktop-> IP Configuration 에서 수동으로 IP를 설정해주시고
라우터에 아래와 같이 추가해 줍시다
R1(config)#int fa0/0
R1(config-if)#ip helper-address 163.180.116.2
R1(config-if)#exit
이렇게 모든 설정이 끝났으면 다른 브로드캐스트 영역에 있는 PC2의 IP가 Server1로부터 할당이 되는지 확인해 봅시다