네트워크/네트워크

DHCP(Dynamic Host Configuration Protocol)

비니화이팅 2018. 1. 17. 10:40

* DHCP(Dynamic Host Configuration Protocol)

네트워크 관리자가 중앙에서 IP주소를 관리하고 할당하며 컴퓨터가 네트워크의 다른 장소에 접속되었을 때 자동으로 새로운 IP주소를 보낼 수 있게 해준다.

- IP주소의 효율적인 관리가 가능하다.

자신의 MAC주소를 제공하고 DHCP서버로부터 네트워크 정보를 제공받는다.

- 4way handshake를 한다.

- 3계층 장비에 들어있다.

- DHCP메시지는 고정길이필드(58비트)를 사용한다.


[DHCP IP 임대 절차]

1. DHCP Discover

-> 단말기가 DHCP 서버를 찾기 위해 보내는 메시지이다.

- 브로드캐스트한다.

 

2. DHCP Offer

-> DHCP가 응답하는 메시지이다.

- 단순히 응답하는 메시지가 아닌 네트워크 정보를 함께 실어서 보내는 메시지이다.

- DHCP Discover 메시지 내의 Broadcast Flag값이 1이면 브로드캐스트, 0이면 유니캐스트한다.


3.DHCP Request

-> DHCP 서버를 선택하고 해당 서버에게 자신이 사용할 네트워크 정보를 요청하는 메시지이다.

- 브로드캐스트한다.


4. DHCP Ack

- DHCP 서버가 단말에게 "네트워크 정보"를 전달해 주는 메시지이다.

- DHCP Discover 메시지 내의 Broadcast Flag값이 1이면 브로드캐스트, 0이면 유니캐스트한다.


[DHCP 메세지]

Operation Code(1 Byte)

Hardware type (1 Byte)

Hardware length (1 Byte)

Hop count (1 Byte)

Transaction ID (4 Byte)

Number of seconds (2 Byte)

Flags(2 Byte)

Client IP address(4 Byte)

Your IP address(4 Byte)

Server IP address(4 Byte)

Gateway IP address(4 Byte)

Client hardware address(16 Byte)

Server name(64 Byte)

Boot file name(128 Byte)

Options(가변)

① Operation code(op)

- 메시지 유형이 DHCP 요청(1)인지 응답(2)인지 나타낸다.


② Hardware type(htype)

- 물리적 네트워크 유형을 나타낸다.(10MB ethernet, IEEE 802, ATM 등)

- ARP에서 사용된 값에 기초한다.


③ Hardware length(hlen)

- hardware 주소의 길이이다.


④ Hop count

- 서버와 클라이언트가 다른 망에 있을 때 중계 에이전트가 패킷을 중계하는데 이때 agent에 의해 사용된다.

- 클라이언트가 0을 셋팅하여 발송하고 경유 중계 수 마다 증가한다.


⑤ Transaction ID

- 요청과 응답 쌍에 사용되는 난수이다.

- 클라이언트가 선택하는 랜덤한 수이다.


⑥ Number of seconds(sess)

- Client가 처음으로 DHCP Server에게 주소를 요청한 이후의 소요된 시간이다.


⑦ Flags

- DHCP Client가 수용할 수 있는 트래픽 유형이다.

- 요청 클라이언트가 희망한다.

- 첫 앞 비트가 0이면 유니캐스트, 1이면 브로드캐스트이며 나머지 비트들은 모두 0으로 채운다.


⑧ Client IP address(ciaddr)

 - Client의 IP 주소이다.

- 최초 요청시에는 할당받기 전이므로 0.0.0.0으로 셋팅돼있다.


⑨ Your IP address(yiaddr)

- DHCP Server에 의해 제공된 IP 주소이다.


⑩ Server IP address(siaddr)

- DHCP Server의 주소이다.


⑪ Gateway IP address(giaddr)

- Network의 default Gateway IP 주소이다.


⑫ Cilent hardware address(chaddr)

- 요청한 Client의 MAC 주소이다.


⑬ Server name

- 서버의 호스트 이름이다.

- 널 문자열로 끝난다.


⑭ Boot file name

- DHCP가 사용할 Boot 파일이다.

- 널 문자열로 끝난다.


⑮ 옵션들

- 응답메시지에만 사용되는 추가적인 정보이다.

- DHCP에 더 많은 기능을 주기 위해 DHCP Packet 구조를 확장하는데 사용한다.


[DHCP 패킷 분석 1]

- 다음은 IP주소를 할당받는 절차를 캡처한 것이다.


(1)-> DHCP Discover


(2)-> DHCP Offer


(3)-> DHCP Request


(4)-> DHCP Ack


[DHCP 패킷 분석 1]

- 다음은 임대를 받은 상태에서 이것을 다시 갱신하는 과정을 캡처한 것이다.


(1)->


(2)->