336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
개요

* DHCP Protocol구성요소
- IP주소 및 다른 TCP/IP 매개변수를 할당하기 위한 mechanism
- Host전용 정보를 조정하고 송신하기 위한 protocol

* DHCP 주소할당 방법
- 수동할당 : DHCP client의 IP주소를 DHCP서버의 네트워크 관리자가 수동으로 설정
- 자동할당 : 처음 DHCP서버에 접속할 때 IP주소를 할당, 이방법을 이용하여 할당한 IP주소는 영구적으로 DHCP client에 할당되며 또 다른 DHCP client에는 재활용할 수 없다.
- 동적할당 : IP주소를 일시적으로 DHCP client에 할당,IP주소 자동 재활용

* DHCP동적할당시 장점
- 사용자가 TCP/IP 설정을 따로 해주지 않아도 되어서, 관리가 용이.
- 한 정보가 모든 클라이언트에 적용되므로, 네트워크 문제 발생시 추적하기가 보다 쉽다.
- DHCP 기능을 다른 서브넷상에도 적용할려면 라우터가 반드시 DHCP Relay Agent 역할을 수행.
- 관리하는 호스트 수가 많아지게 된다면 서버의 과부하 발생.

* BOOTP의 능력을 확장한 bootstrap protocol

* DHCP packet format (BOOTP와 아주 유사)

IP header
20 bytes
UDP header
8 bytes
DHCP message
548 bytes
 
UDP datagram
IP datagram

 
548 bytes
Opcode
1=request, 2=reply
(1 byte)
harware type
1=ethernet
(1byte)
hardware address length
6=ethernet
(1 byte)
hop count
(1 byte)
transaction ID (4 bytes)
number of seconds
(2 bytes)
flags
(2 bytes)
client IP address (4 bytes)
your IP address (4 bytes)
server IP address (4 bytes)
gateway IP address (4 bytes)
client hardware address (16 bytes)
server hostname (64 bytes)
boot filename (128 bytes)
options (312 bytes)

* DHCP server는 BOOTP request에 대해 reply하도록 program

 

DHCP동작원리


 

 


 

 

* IP Lease Request
클라이언트에서 시스템 시작시 서버에서 할당받지 못하는 TCP/IP 부분을 초기화한다. 아직 IP 주소가 설정된 것이 아니고 , DHCP 서버와 통신할 수 있게 Null IP 주소를 할당하게 되는 것이다. 다음에 DHCP 서버의 위치와 IP 주소 정보에 대한 요청을 브로드캐스트한다. 브로드캐스트하는 이유는 자신의 IP 주소가 없고 또 DHCP 서버의 주소도 모르기 때문이다. 이 Lease Request를 DHCPDISCOVER 메시지 형태로 보낸다. 메시지의 패킷의 원본, 목적지 주소를 살펴 보면 원본 주소는 0.0.0.0을 사용하고 목적지 주소는 255.255.255.255를 사용한다. 그 정보와 함께 자신의 MAC 주소와 호스트 이름을 포함해서 보낸다.

◇ DHCPDISCOVER 메시지 사용

  * TCP/IP가 DHCP 클라이언트로부터 처음 초기화된 경우
  * 클라이언트에서 특정 IP 주소를 요청했으나 해당 DHCP 서버가 리스를 놓쳤기 때문에 거부된 경우
  * 클라이언트에서 이전에 IP주소를 리스했으나, 해당 리스를 Release하고 새 리스가 필요한 경우

* IP Lease Offer
이제 Request 메시지를 받은 DHCP 서버는 (만약 복수개의 서버가 있다면 모든 서버가 메시지를 받게 된다.) DHCPDISCOVER에 대한 응답을 DHCPOFFER 메시지로 응답해 주게 된다.
◇ 메시지 주용내용은
  * 클라이언트의 하드웨어 주소
  * 자신의 IP Pool 범위 내에서 제공할 IP 주소
  * 서브넷 마스크
  * Lease 기간
  * 서버 식별자(DHCP 서버 IP주소)
이 메시지 역시 브로드 캐스트를 사용하는데, 이유는 앞서와 마찬가지로 아직 클라이언트에 IP 주소가 할당되지 않았기 때문이며, DHCP 클라이언트는 서버들로부터 받은 DHCPOFFER 메시지 중에서 가장 처음으로 도착한 메시지를 선택하게 된다.
만약, DHCP 클라이언트가 DHCPOFFER 메시지를 받지 못했다면 DHCPDISCOVER 메시지를 세번(각각 9초 , 13초,16초의 간격으로 0부터 1,000msec까지 중 임의로 시간을 더할 수 있음) 다시 브로드캐스트한다. 네번째 요청 이후에도 제안을 받지 못했을 때는 클라이언트는 5분마다 다시 시도하게 된다.

* IP Lease Selection
클라이언트가 받은 여러 개의 DHCPOFFER 메시지 중에서, 가장 처음 도착한 메시지를 채택. 서버에게 DHCPREQUEST로 응답하게 되는데, 이때도 브로드캐스트 방식을 사용한다. 그 이유는 모든 DHCP 서버에게 알려야, IP가 중복 할당되는 점을 방지할 수 있기 때문이다. DHCPREQUEST 메시지에는 서버의 서버 식별자(IP주소)가 들어 있고, 클라이언트가 쓰게 될 IP 주소가 적혀 있다 

* IP Lease Acknowledgment
DHCPREQUEST 메시지를 받은 DHCP서버는 클라이언트에게 DHCPACK 메시지 형식으로 긍정 응답을 브로드캐스트한다. 아직 클라이언트에 IP주소가 할당된 것이 아니기 때문에 브로드캐스트 방식을 쓰는 것이며, 이제 DHCP 클라이언트에서 긍정 응답을 받을 때, TCP/IP가 초기화되고 바인딩된 DHCP 클라이언트로서 간주된다. 바인딩후 TCP/IP를 이용하여 통신할 수 있다.
클라이언트에 IP 주소와 서브넷 마스크, 기타 IP 주소 정보가 기록되는 레지스트리 위치는 다음 위치에 존재한다.

HKEY_LOCAL_MACHINEsystemCurrentControlSetServicesadapterParametersTcpip

만약, 이 응답이 성공되지 않는다면 DHCPNACK이 브로드캐스팅 되든데, 다음과 같은 경우에 부정 응답이 발송된다.
◇클라이언트가 이전에 리스했던 IP주소를 리스하려 했으나 이미 사용중이어서
  더 이상 사용할 수 없을 경우
◇클라이언트가 성공되지 않은 긍정 응답을 받을 때는, IP Lease Request 과정부터 다시 시작한다.

* IP 대여기간 갱신
이렇게 DHCP를 이용 TCP/IP 설정이 초기화되면, 대여 기간까지 설정이 유지 하지만, 그동안 이 대여기간을 갱신하기 위한 시도가 이루어 진다.

◇처음 갱신 시도시
처음으로 갱신을 시도하는 때는 대여 기간의 50%가 남았을 때다. 해당 클라이언트는 주소를 할당받은 서버에게 DHCPREQUEST 메시지를 직접 보낸다. 서버가 이 메시지를 성공적으로 수신한다면 클라이언트에게 성공의 긍정 응답(DHCPACK)에 새로운 대여 기간과 갱신된 구성 파라미터를 함께 보낸다. 이 메시지를 받은 클라이언트는 이제 자신의 구성을 갱신하게 되는 것이다.
만약, 클라이언트가 DHCPREQUEST를 보냈지만, 서버가 꺼져 있다거나, 어떤 문제가 발생해서 서버가 이를 수신하지 않았다면, 해당 클라이언트는 요청이 갱신되지 않았다는 메시지를 받게 된다. 그래도 50%의 기간이 남았기 때문에 TCP/IP설정을 유지하는 것입니다.

◇연속으로 갱신 시도
이렇게 처음으로 갱신을 시도했으나 실패했을 경우, 나머지 기간의 50%, 즉 총 대여기간의 87.5%가 만료될 때 사용할 수 있는 DHCP 서버와 연결하여 갱신을 시도하게 된다. 클라이언트는 DHCPREQUEST 메시지를 브로드캐스트하고, DHCP 서버에서 DHCPACK 메시지나 DHCPNACK 메시지로 응답할 수 있다.
대여기간이 만료되거나 DHCPNACK 메시지를 받은 경우에는 DHCP 클라이언트는 즉시 IP 주소 사용을 중단해야 하고, 다시 IP 주소를 얻기 위해 처음부터 4단계의 과정을 거쳐야 한다.

◇클라이언트 재시작시
DHCP 클라이언트가 재시작할 경우를 보면, 이때는 해당 클라이언트가 원래 DHCP 서버에게 자신이 사용하고 있던 IP 주소를 갱신하려 한다. DHCPREQUEST 메시지에 자신이 사용하던 IP 주소를 적어서 보내고, 서버에서 이에 응답하면 그 주소를 계속 사용할 수 있게 되는 것이다. 만약 갱신을 못한다면 마찬가지로 대여 기간동안 만큼만 IP를 사용하게 된다.

posted by 어린왕자악꿍