DHCP ( Dynamic Host Configuration Protocol )

2017. 7. 18. 15:26NetworkHacking/Network



[ DHCP 개념 ]


DHCP서버를 사용하여 IP주소 및 관련한 기타 구성 세부 정보를 네트워크의 DHCP사용 클라이언트에게 동적으로 할당

DHCP는 주어진 IP주소가 일정 시간 동안만 유효하도록 ' 임대 ' 개념을 사용한다

임대시간은 사용자가 특정한 장소에서 얼마나 오래 인터넷 접속이 필요한 지에 따라서 달라진다

( 영구적인 IP주소를 필요로 하는 웹 서버에 대해서 만큼은 정적인 주소를 제공한다 )

IP설정이 자동으로 이루어져 효율적이며 IP충돌을 막을 수 있지만 서버가 다운되면 IP할당이 제대로 이루어지지 않는 단점이 있다


[ DHCP 구성 ]


① DHCP Server    클라이언트에게 IP할당 요청이 오면 IP를 부여해주고 관리한다

② DHCP Client    서버에게 IP주소를 요청하고 부여받으면 TCP/IP설정을 초기화하고 다른 호스트와 통신할 수 있다


[ DHCP 동작 원리 ]


1> DHCP Discover ( Client -> Server )    DST MAC = FF:FF:FF:FF:FF:FF

단말장비가 DHCP서버에게 아이피 주소 할당을 요청한다

2> DHCP Offer ( Server -> Client )    FF:FF:FF:FF:FF:FF or Unicast

단말장비의 요청에 대한 응답으로써, 아이피 주소 정보와 MAC주소 정보 등을 네트워크 정보와 함께 전송한다

3> DHCP Request ( Client -> Server )    DST MAC = FF:FF:FF:FF:FF:FF

단말장비가 받은 아이피 주소 정보를 사용하겠다고 서버에게 보낸다 ( 서버의 확정을 받기 위한 메시지 )

4> DHCP Ack ( Server -> Client )    FF:FF:FF:FF:FF:FF or Unicast

단말장비의 MAC어드레스에 매칭이 되는 IP주소와 게이트웨이 주소를 확정시키기위해 보낸다

Client메시지의 Broadcast Flag = 1 이면  =>    FF:FF:FF:FF:FF:FF

Client메시지의 Broadcast Flag = 0 이면  =>    Unicast




[ DHCP서버가 되어보자 ]


1> DHCP데몬 설치

#yum install dhcp


2> DHCP서버 설정

/etc/dhcp/dhcpd.conf    DHCP서버 설정파일

[root@localhost dhcp]# cat dhcpd.conf

#

# DHCP Server Configuration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.sample   

#   see 'man 5 dhcpd.conf'

#



[root@localhost dhcp]# vi /usr/share/doc/dhcp*/dhcpd.conf.sample

        ... ( 생략 ) ... dhcp 설정들이 있음

default-lease-time 600; #기본 임대시간(초)

max-lease-time 7200; #최대 임대시간(초)

        ... ( 생략 ) ...



dhcpd.conf.sample 파일 내용을 참고해서 dhcp서버를 설정해보도록 하겠습니다


[root@localhost dhcp]#vi /etc/dhcp/dhcpdd.conf


subnet 192.168.6.0 netmask 255.255.255.0 {

 range 192.168.6.1 192.168.6.254;           #IP주소 할당 범위 설정

 option domain-name-servers 168.126.63.1;    #DNS서버 설정

 option routers 192.168.6.1; #gateway

 option broadcast-address 192.168.6.255;

 default-lease-time 600; #로컬설정

 max-lease-time 7200; #로컬설정


3> dhcpd 데몬 시작


[root@localhost dhcp]#service dhcpd start 


4> 확인    ( UDP 67번 포트는 DHCP가 사용하는 포트입니다 )

 [root@localhost dhcp]# netstat -anu

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

udp        0      0 0.0.0.0:67                  0.0.0.0:* 



5> 윈도우에서 IP주소 할당받아보기

5-1> ipconfig /release



5-2> ipconfig /renew



5-3> ipconfig /all




* 윈도우 아이피가 가상으로 생성한 DHCP서버에게 IP주소를 할당받아오는 것을 확인할 수 있습니다