| 리포트 | 기술문서 | 테크-블로그 | 글로벌 블로그 | 원샷 갤러리 | 통신 방송 통계  | 한국 ICT 기업 총람 |

제품 검색

| 네트워크/통신 뉴스 | 기술자료실 | 자유게시판 |  
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
스폰서채널 |

 

  스폰서채널 서비스란?
DHCP 상세 동작 원리
Understanding the Detailed Operations of DHCP
By Netmanias (tech@netmanias.com)
banner
코멘트 (12)
24

 

DHCP(Dynamic Host Configuration Protocol) 기술의 두 번째 문서로 3가지 서로 다른 기술 주제를 통해 DHCP 상세 동작에 대해서 소개한다. 먼저 DHCP를 통해 할당(임대) 받은 IP 주소의 충돌 확인 절차를 기술하고 이어서 DHCP 서버가 전달하는 DHCP Offer와 DHCP Ack 메시지의 전송 방식(브로드캐스팅? 유니캐스팅?)을 살펴본다. 마지막으로 IP 주소 할당 및 IP 주소 임대기간 연장 절차에 따른 DHCP 클라이언트의 상태 천이도에 대해서 설명한다.

유중선 2012-11-12 16:20:04
소중한 자료 감사합니다..
sang 2012-11-13 11:32:10
lease time 이 이렇게 동작하는지는 몰랐네요... 소중한 자료 정말 감사합니다.
김성찬 2013-08-08 20:39:31
덕분에 하나더 배우고 갑니다. 감사합니다
이연재 2013-10-17 11:31:41
소중하고 유용한 자료 공유에 감사드립니다.
박종호 2014-07-26 03:46:36

소중한 자료 감사합니다...

박종호 2014-07-26 04:18:27

수고 많습니다.

DHCP 관련 아래 2가지, 의문이 있어 질의 드립니다.

1. Client pc에서 Discover를 보낸 후, DHCP server로 부터 offer 메세지를 받지 못할때, window7는 지속적으로 Discover를 보내나요, 아니면 몇회 시도후 NIC가 disconnect되나요?
만약 NIC가 disconnect되면, "ipconfig /release" 전에는 계속, disconnect되어 있나요?


2. "ISP-모뎀-pc(window7)" 구성 환경에서 모뎀의 전원off -> on시 client pc에서는 상위 링크 "단절 -> 연결"을 인식하여 IP Bound된 상태에서 다시 Discover - offer - request - ack 과정을 거처서 ip를 재 활당 받나요, 아님 bound된 상태를 그대로 유지를 하나요?

 

ip충돌확인 2015-10-06 10:02:57

IP충돌 확인 할때 ARP 를 이용한다고 하셨는데, GARP를 안쓰고 ARP를 쓰는지 이유를 알 수 있을까요?

김근호 2015-10-06 11:30:30

ARP의 경우 Sender IP address = 0.0.0.0이고 GARP의 경우 Sender IP address = Target IP address입니다.

Target IP address를 사용하고 있는 단말이 ARP Request를 수신하면(Sender IP address = 0.0.0.0), 이에 대해 그냥 응답(ARP Reply)을 주면 그만이고 ARP Request를 송신한 단말이 IP충돌을 확인할 수 있습니다.

만약 GARP를 사용하게 되면 GARP Request를 수신한 단말은 Sender IP address가 자신의 IP 주소이므로 내가 사용하고 있는 IP 주소가 충돌났음을 감지하게 됩니다.

DHCP 절차 중 IP주소 충돌감지의 경우 이미 해당 IP주소를 사용하고 있는 단말에게 "IP충돌 사실"을 알릴 필요는 없다고 봅니다. 왜냐면 IP충돌을 감지한 DHCP 단말이 다른 IP주소를 할당 받으면 그만이니까요.

어떨때 unicast?? 2015-11-03 15:50:44

unicast패킷을 수신할수 있는 단말은 broadcast flag=0으로 설정한다고하는데, unicast 패킷을 수신할수 있는 상태가 어떤 상황일때 입니까?

 

rlaroEhd 2017-03-29 19:58:34

dhcp 관련 packet을 중간 조작 서버에서 조작하고 있습니다.

dhcp offer 등의 ip계층 src address, bootp field의 your_ip, bootp option의 server_id , router ip, dns ip를 다른 ip로 바꾸 전송하였는데, 일단 A dhcp 서버 -> B 중간 조작 서버 -> C dhcp client 순서에서 A에서 offer 생성되어 B 에서 각종 field조작을 거쳐 C dhcp client로 들어와 wireshark에서는 바뀐 내용을 포함하는 packet 정상적으로 잡히는데, OS log 데이터를 보면 discover 전송만 일어나고 offer관련 수신 항목이 log되지 않습니다.

 

하여, B 중간 조작 서버에서 바뀐 내용들 때문에 그런가 하고 ip checksum, skb_checksum, tcp/udp checksum을 계산하여 넣었는데도 결과

는 똑같이 C client의 log에서는 여전히 수신 항목이 없습니다.

 

물론 아무 조작을 가하지 않으면, 정상적으로 wireshark 뿐만 아니라 log에서도 관련 항목이 잡힙니다.

 

이에 더해 offer의 항목 뿐만 아니라, B중간 조작서버에서  discovery의 requested ip를 교체하면 dhcp 서버 log에서 discovery , request의 requested ip, server_id 등을 내용 교체하면 서버 log에서 request, ack에서 관련 server_id, your_ip 등을 교체하면 client의 log에서 ack 관련 내용이 수신되지 않습니다. 물론 wireshark에서는 잡힙니다.

 

왜 중간서버에서 dhcp messages들 내용을 바꾸면, 위와 같이 wireshark서는 잡히는데, OS log에서는 관련 항목이 잡히지 않고, 이로 인해 다음 단계의 dhcp message가 생성 전송되지 않는지 궁금합니다.

foggy 2018-12-27 13:09:08

내용 정말 좋네요. 잘 배워갑니다.. 개인 블로그에 출처 밝히고 내용 퍼갑니다.

sj 2019-01-17 17:02:55

궁금한것이 있는데요 , 

안드로이드단말에서 Client와 연결할때 DHCP를 이용하여 Client가 단말로부터 A라는 IP를 할당받고 , 

Client에서 IP라는 주소로 받은 Packet에 대해서 getHostName()으로 hostname을 읽어서 getByName()으로 IP를 가져올때

DNS response에 A라는 주소말고도 여러개의 주소가 담겨져있는데 , 왜 그런걸까요?

단말은 Client에 A라는 주소를 할당해주고 Client의 hostname을 가지고 query를 하면 A라는 IP만 리턴되어야 할 것 같은데 말이죠.

답변 주실 수 있을까요?

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
Transcript
DHCP 기본 동작 원리

목 차
I. 개요
II. IP 주소 할당(임대) 절차 (IP Address Allocation Procedure)
III. IP 주소 임대기간 연장 절차 (IP Address Renewal Procedure)
IV. IP 주소 반납 절차 (IP Address Release Procedure)
V. 요약 및 정리
VI. 마치는 글
부록 A – IP 주소 할당(임대) 절차의 DHCP 메시지 포맷
부록 B – IP 주소 임대기간 연장 절차의 DHCP 메시지 포맷
부록 C – IP 주소 반납 절차의 DHCP 메시지 포맷




DHCP(Dynamic Host Configuration Protocol)는 유무선 IP 환경에서 단말의 IP 주소, 서브넷 마스크 (Subnet Mask), 디폴트 게이트웨이(Default Gateway) IP 주소, DNS 서버 IP 주소, 임대기간(Lease Time) 등의 다양한 네트워크 정보를 DHCP 서버가 PC와 같은 이용자 단말에 동적으로 할당해 주는 프로토콜로써 이용자가 이와 같은 네트워크 정보를 직접 설정할 필요 없이 자동으로 그 설정이 가능하기 때문에 네트워크 관리의 용이성을 제공한다.
본 문서에서는 DHCP 프로토콜을 통한 IP 주소 할당 절차와 IP 주소 임대기간 연장 절차, 그리고 IP 주소 반납 절차에 대해 그 기본 동작 원리를 살펴 보도록 하겠다.



2011년 2월 10일

NMC Consulting Group (tech@netmanias.com)


I. 개요
전화를 사용할 때 자신의 전화 번호가 있듯이 인터넷을 사용할 때도 인터넷 주소가 있어야 하는데, 이 인터넷 주소가 IP 주소이다. 이 인터넷 주소는 통상 인터넷에 접속할 때 동적(Dynamic)으로 할당 받는데 이 동적으로 IP 주소를 할당해 주는 프로토콜을 DHCP(Dynamic Host Configuration Protocol)라고 하며 이는 [1]에서 표준 동작을 정의하고 있다.

DHCP를 통한 IP 주소 할당은 “임대”라는 개념을 가지고 있는데 이는 DHCP 서버가 IP 주소를 영구적으로 단말에 할당하는 것이 아니고 임대기간을 명시하여 그 기간 동안만 단말이 IP 주소를 사용하도록 하는 것이다. 단말은 임대기간 이후에도 계속 해당 IP 주소를 사용하고자 한다면 IP 주소 임대기간 연장을 DHCP 서버에 요청해야 한다. 또한 단말은 임대 받은 IP 주소가 더 이상 필요치 않게 되면 IP 주소 반납 절차를 수행하게 된다.

본 문서는 II 장에서 IP 주소 할당(임대) 절차를 설명한다. III 장에서는 할당 받은 IP 주소의 임대기간(Lease Time)을 연장하는 절차를 기술하고, 이어서 IV 장에서 할당 받은 IP 주소를 반납하는 절차를 설명한다. 마지막으로 부록에서 각 DHCP 절차에 대한 상세 메시지 파라미터를 설명한다.

II. IP 주소 할당(임대) 절차 (IP Address Allocation Procedure)
PC와 같은 단말(DHCP 클라이언트)이 DHCP 서버로부터 IP 주소 등의 네트워크 정보를 할당(임대) 받기 위해서는 그림 1과 같이 4가지 단계를 거치게 된다.

그림 1. DHCP를 이용한 IP 주소 할당(임대) 절차


1. DHCP Discover
단말이 부팅을 하면 동일 서브넷(랜)에 위치하는 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 이더넷 망에 브로드캐스팅한다(이더넷 헤더의 Destination MAC이 Broadcast MAC=FF:FF:FF:FF:FF:FF). 이를 통해 동일 서브넷 상에 있는 모든 DHCP 서버들은 이 메시지를 수신한다.

2. DHCP Offer
DHCP Discover 메시지를 수신한 DHCP 서버는 자신의 존재를 알리기 위해 DHCP Offer 메시지를 이더넷 망에 브로드캐스팅하며(아직 단말이 IP 주소를 할당 받지 못했기 때문에 브로드캐스팅함), 본 메시지 내에는 단말이 필요로 하는 네트워크 정보들(단말 IP 주소, Subnet Mask, Default Gateway IP 주소, DNS IP 주소, Lease Time 등)이 포함되어 있다. 이렇게 브로드캐스팅되는 DHCP Offer 메시지는 DHCP Discover 메시지를 송신한 단말을 포함한 동일 서브넷 상의 모든 단말들이 수신한다.

3. DHCP Request
DHCP Offer 메시지를 수신한 단말은 동일 서브넷에 DHCP 서버가 존재한다는 것을 알았고 이제 단말 IP 주소를 포함한 네트워크 정보를 요청하기 위해서 DHCP 서버에 DHCP Request 메시지를 이더넷 망에 브로드캐스팅한다. 이때 동일 서브넷 상에 2대 이상의 DHCP 서버가 존재하는 경우, 단말은 복수개의 DHCP Offer 메시지를 수신하게 될 것이고 단말은 이 중에 하나의 DHCP 서버를 선택 하여 그 서버의 IP 주소를 DHCP Request 메시지 내에 Server Identifier(Option 54)필드에 기록 후 모든 DHCP 서버에게 그 사실을 알린다(브로드캐스팅). 모든 DHCP 서버들이 DHCP Request 메시지를 받을 수 있도록 브로드캐스팅하는 이유는 각 DHCP 서버가 DHCP Offer 메시지를 보내면서 해당 단말에 할당해 줄 IP 주소와 기타 정보를 내부적으로 저장해 놓기 때문에 선택 받지 못한 DHCP 서버들이 이 IP 주소와 기타 정보들을 삭제할 수 있도록 하기 위함이다.

4. DHCP Ack
DHCP Request 메시지를 수신한 DHCP 서버는 메시지 내에 Server Identifier(Option 54)에 기록된 IP 주소가 자신의 주소인지 확인 후에, DHCP Ack 메시지를 이더넷 망에 브로드캐스팅하여(아직 단말이 IP 주소를 할당 받지 못했기 때문에 브로드캐스팅함) 단말이 이 메시지를 수신할 수 있도록 한다. 이때 DHCP 서버는 DHCP Offer 메시지와 같이, IP 주소를 포함한 다양한 네트워크 정보들을 전달하게 되고 이를 수신한 단말은 DHCP 서버가 전달해 준 정보를 기반으로 단말의 네트워크 환경을 구성한 후 인터넷에 액세스할 수 있게 된다. DHCP Ack 메시지를 통해 단말로 전달되는 대표적인 네트워크 정보는 다음과 같다.
 IP 주소
 Subnet Mask
 Default Gateway IP 주소
 DNS 서버 IP 주소
 Lease Time(DHCP 서버가 할당(임대) 해 준 IP 주소를 단말이 사용할 수 있는 기간)


이와 같이 IP 할당 절차가 완료된 후 단말(Windows 7)의 네트워크 환경은 그림 2와 같이 구성된다.

C:\\Users\\netmanias>ipconfig /all
이더넷 어댑터 로컬 영역 연결:
설명. . . . . . . . . . . . . . . . . : Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller
물리적 주소 . . . . . . . . . . : 00-17-42-C1-C8-F7
DHCP 사용 . . . . . . . . . . : 예
자동 구성 사용. . . . . . . . : 예
IPv4 주소 . . . . . . . . . . . . : 1.1.1.10(기본 설정)
서브넷 마스크 . . . . . . . . : 255.255.255.0
임대 시작 날짜. . . . . . . . : 2011년 2월 3일 목요일 오전 9:00:00
임대 만료 날짜. . . . . . . . : 2011년 2월 3일 목요일 오전 10:00:00
기본 게이트웨이 . . . . . . : 1.1.1.1
DHCP 서버 . . . . . . . . . . : 1.1.1.254
DNS 서버. . . . . . . . . . . . : 10.1.1.1
10.1.1.2
그림 2. 단말(Windows 7) 네트워크 환경

III. IP 주소 임대기간 연장 절차 (IP Address Renewal Procedure)
“IP 주소 할당(임대) 절차”의 마지막 단계인 DHCP Ack 메시지에는 IP Lease Time(Option 51) 파라미터가 포함되어 있으며 단말은 본 파라미터에 명시된 시간(임대기간) 동안만 해당 IP 주소(1.1.1.10)를 사용할 수 있다. 따라서 임대기간 이상 해당 IP 주소를 사용하기 위해서는 그림 3과 같이 단말이 DHCP 서버에게 IP 주소 임대기간 연장을 요청해야 한다.

그림 3. DHCP를 이용한 IP 주소 임대기간 연장 절차

1. DHCP Discover
IP Lease Time(그림 3에서 임대기간은 1시간)의 절반이 되었을 때(1,800초, 즉 30분) 단말은 IP 주소 임대기간 연장을 위해 DHCP 서버에 DHCP Request 메시지를 송신한다(IP 주소 임대기간 연장 시에는 DHCP Discover/Offer 과정 없음). 이때 “IP 주소 할당(임대) 절차”와는 달리 DHCP Request 메시지를 브로드캐스팅(Destination MAC=FF:FF:FF:FF:FF:FF, Destination IP=255.255.255.255)이 아닌 유니캐스팅(Destination MAC=DHCP Server MAC(m2), Destination IP=DHCP Server IP (1.1.1.254))으로 보내는데 이는 단말에 이미 IP 주소가 할당 되어 있고 단말과 서버간에 서로 IP 주소를 알고 있기 때문이다. 또한 IP 주소 임대기간 연장을 위한 DHCP Request 메시지 내에 Client IP Address(ciaddr) 필드에는 임대기간 연장을 요청하는 단말 IP 주소가 반드시 들어가야 하며, Requested IP Address(Option 50)와 Sever Identifier(Option 54) 필드는 본 메시지에 포함될 수 없다.

2. DHCP Ack
DHCP Request 메시지를 수신한 DHCP 서버가 단말의 요청(IP 주소 연장 사용)을 수락하게 되면, DHCP Ack 메시지에 단말이 사용할 IP 주소, Subnet Mask, Default Gateway IP 주소, DNS IP 주소, Lease Time(단말이 IP 주소를 사용할 수 있는 시간) 등을 포함하여 단말에 역시 브로드캐스팅이 아닌 유니캐스팅한다(Destination MAC=PC MAC(m1), Destination IP=PC IP(1.1.1.10)). 이를 수신한 단말은 DHCP Ack 메시지에 포함된 IP Lease Time 동안 IP 주소를 연장 사용할 수 있게 된다.

IV. IP 주소 반납 절차 (IP Address Release Procedure)
단말을 로그오프 (Gracefully shut down) 하거나 Windows의 DOS 커맨드 창에서 “ipconfig /release”를 하게 되면 단말은 할당된 IP 주소를 DHCP 서버에 반환하기 위해서 그림 4와 같이 DHCP Release 메시지를 DHCP 서버에 송신(유니캐스팅)하게 되며, 이후 단말은 네트워크 환경 정보(단말 IP 주소, Subnet Mask, Default Gateway IP 주소, DNS IP 주소 등)를 해제한다. 따라서 단말은 더 이상 인터넷에 액세스할 수 없는 상태가 된다.

그림 4. DHCP를 이용한 IP 주소 반납 절차

1. DHCP Release
더 이상 임대 받았던 IP 주소가 필요치 않은 단말은 DHCP Release 메시지를 유니캐스팅(Destination MAC=DHCP Server MAC(m2), Destination IP=DHCP Server IP(1.1.1.254))으로 DHCP 서버에 전달하고, DHCP 서버는 DHCP Release 메시지 내에 Client IP 필드에 기록된 IP 주소(1.1.1.10)를 반환하게 된다.
V. 요약 및 정리
본 기술 문서를 통해 DHCP 프로토콜을 이용한 1) IP 주소 할당(임대), 2) IP 주소 임대기간 연장, 3) IP 주소 반납 절차에 대해서 살펴 보았다. 본 절차를 하나의 그림으로 도식화 하면 그림 5와 같다.

그림 5. DHCP 프로토콜 절차 요약

 IP 주소 할당(임대): 단말의 부팅되면 DHCP Discover 메시지를 브로드캐스팅하고, DHCP 서버(들)은 이에 대한 응답으로 DHCP Offer 메시지를 브로드캐스팅한다. 이 때 2대 이상의 DHCP 서버가 존재하면 단말은 이 중에 하나의 DHCP 서버를 선택하고 그 정보를 DHCP Server Identifier (Option 54)에 실어서 DHCP Request 메시지를 브로드캐스팅하고, 최종적으로 해당 DHCP 서버로부터 “단말 IP 주소, Subnet Mask, Default Gateway IP 주소, DNS IP 주소, IP Lease Time”을 받아 단말의 네트워크 환경을 구성한다.
 IP 주소 임대기간 연장: “IP 주소 할당(임대)” 절차를 통해 수신한 IP Lease Time의 절반 시간이 지나면 단말은 DHCP Request 메시지를 DHCP 서버에 유니캐스팅하여 단말의 IP 주소 사용 시간(임대기간) 연장을 요청하고, DHCP 서버는 이에 대한 응답으로 DHCP Ack 메시지를 단말로 유니캐스팅하여 해당 요청을 수락한다.
 IP 주소 반납: 단말을 로그오프 하게 되면 단말은 DHCP Release 메시지를 DHCP 서버에 유니캐스팅하여 사용했던 IP 주소를 반납한다.


VI. 마치는 글
DHCP 기술 문서 게재를 시작하면서 첫 번째 문서로 DHCP의 기본 동작 원리에 대해서 살펴보았다. 본 문서에서는 DHCP에 대한 가장 기본적인 내용만을 다루었으며 이후 진행될 DHCP 관련 기술 문서의 기본이 된다. 이후 다음과 같은 주제로 DHCP에 대한 기술 문서들이 진행된다.
1) RFC 2131에서 기술하고 있는 DHCP 상세 기술
2) DHCP Relay Agent와 DHCP Proxy Agent 개념
3) 통신사업자 망에서 DHCP를 이용한 가입자 IP 주소 할당 절차(통신 사업자의 경우 DHCP를 통한 가입자 식별 및 인증 방안, DHCP 보안 문제, DHCP 메시지 브로드캐스팅 이슈 등이 존재함)
4) 기업 내 혹은 본사와 다수의 지사로 분산된 기업 전산환경에서 IP 주소 통합 관리 방안

참고문헌
[1] R, Droms, “Dynamic Host Configuration Protocol”, RFC 2131, Standard, March 1997.
[2] S. Alexander and R. Droms, “DHCP Options and BOOTP Vendor Extension”, RFC 2132, Standard, March 1997.




부록 A – IP 주소 할당(임대) 절차의 DHCP 메시지 포맷
DHCP Discover Message

그림 6. IP 주소 할당(임대) 절차: DHCP Discover 메시지
Ethernet Header
 Destination MAC Address: 단말은 DHCP 서버의 MAC 주소를 모르기 때문에 Broadcast MAC(0xFFFFFFFFFFFF)을 사용하여 DHCP Discover 메시지를 이더넷 망에 Flooding함
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 단말의 MAC 주소(m1)
 EtherType: 이더넷 헤더 다음에 IP 패킷이 위치함을 나타냄(IP=0x0800, ARP=0x0806, etc)
IP Header
 Protocol ID: IP 헤더 다음에 UDP 패킷이 위치함을 나타냄(UDP=17, TCP=6, etc)
 Source IP Address: 단말에 할당된 IP 주소가 없기 때문에 0.0.0.0을 사용
 Destination IP Address: DHCP 서버의 IP 주소를 모르기 때문에 단말은 IP 브로드캐스트 주소인 255.255.255.255를 사용하여 DHCP Discover 메시지를 IP 망에 Flooding함
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 클라이언트라는 의미(68=BOOTP Client). 단말은 항상 Source Port=68로 보냄
 Destination Port: DHCP 메시지 수신자가 DHCP 서버라는 의미(67=BOOTP Server). 단말은 항상 Destination Port=67로 보냄
DHCP Message Payload
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Discover임을 나타냄(Value=1)
 Client Identifier(Option 51): 단말을 구분하는 인자로써 일반적으로 단말 MAC 주소를 사용(m1). DHCP 서버는 이 정보로 단말을 구별함
 Parameter Request List(Option 55): 단말이 DHCP 서버로부터 얻고자 하는 네트워크 정보 리스트(DHCP Option List). 예를 들어, Subnet Mask, Default GW IP 주소, DNS IP 주소 등을 요청함


DHCP Offer Message

그림 7. IP 주소 할당(임대) 절차: DHCP Offer 메시지
Ethernet Header
 Destination MAC Address: DHCP 서버는 DHCP Offer 메시지를 이더넷 망에 브로드캐스팅하여 단말이 수신할 수 있도록 함
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 DHCP 서버의 MAC 주소(m2)
IP Header
 Source IP Address: DHCP 서버의 IP 주소(1.1.1.254)
 Destination IP Address: 단말의 IP 주소를 모르기 때문에(단말이 아직 IP 주소를 할당 받지 않았기 때문에) DHCP 서버는 IP 브로드캐스트 주소인 255.255.255.255를 사용하여 본 메시지를 IP 망에 Flooding함
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 서버라는 의미. 서버는 항상 Source Port=67로 보냄
 Destination Port: DHCP 메시지 수신자가 DHCP 클라이언트라는 의미. 서버는 항상 Destination Port=68로 보냄
DHCP Message Payload
 Your IP Address(yiaddr): 단말이 사용하게 될 IP 주소(1.1.1.10)
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Offer임을 나타냄(Value=2)
 Subnet Mask(Option 1): 단말이 사용하게 될 서브넷 마스크(255.255.255.0 (/24))
 Router IP(Option 3): 단말이 사용하게 될 디폴트 게이트웨이(단말 입장에서 인터넷으로 나가기 위해 만나는 첫 번째 라우터 혹은 L3 스위치)의 IP 주소(1.1.1.1)
 Domain Name Server IP(Option 6): 단말이 사용하게 될 DNS 서버의 IP 주소. 보통 Primary DNS IP 주소(10.1.1.1)와 Secondary DNS IP 주소(10.1.1.2)와 같이 2개의 IP 주소를 제공함
 IP Address Lease Time(Option 51): DHCP 서버가 할당해 준 IP 주소를 단말이 사용할 수 있는 시간(3,600초 (1시간)). 이 임대기간의 절반인 30분 시점에서 단말은 IP 주소 임대기간 연장 절차를 시작함
 DHCP Server Identifier(Option 54): DHCP Offer 메시지를 보낸 DHCP 서버의 IP 주소(1.1.1.254). 동일 서브넷 상에 여러 대의 DHCP 서버가 DHCP Offer를 단말에 보낼 경우, 단말은 본 필드를 가지고 DHCP 서버를 구분함
DHCP Request Message

그림 8. IP 주소 할당(임대) 절차: DHCP Request 메시지
Ethernet Header
 Destination MAC Address: DHCP Offer 메시지를 통해 DHCP 서버의 MAC 주소를 알았지만, 동일 서브넷 상에 2대 이상의 DHCP 서버가 존재하기 되는 경우, 단말이 그 중에 어떤 DHCP 서버를 선택하였는지 모든 DHCP 서버에게 알리기 위해 Broadcast MAC(0xFFFFFFFFFFFF)을 이용하여 이더넷 망에 Flooding함
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 단말의 MAC 주소(m1)
IP Header
 Source IP Address: 단말에 할당된 IP 주소가 없기 때문에 0.0.0.0을 사용
 Destination IP Address: 동일 서브넷 상에 모든 DHCP 서버에게 DHCP Request 메시지를 전달하기 위해 IP 브로드캐스트 주소인 255.255.255.255를 사용하여 본 메시지를 IP 망에 Flooding함
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 클라이언트라는 의미(68=BOOTP Client)
 Destination Port: DHCP 메시지 수신자가 DHCP 서버라는 의미(67=BOOTP Server)
DHCP Message Payload
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Request임을 나타냄(Value=3)
 Client Identifier(Option 51): 단말을 구분하는 인자로써 일반적으로 단말 MAC 주소를 사용(m1). DHCP 서버는 이 정보로 단말을 구별함
 Requested IP Address(Option 50): DHCP 서버의 DHCP Offer 메시지를 통해 수신한 단말의 IP 주소(yiaddr=1.1.1.10)를 DHCP 서버에 전달하여 그 값을 확인하기 위함(정상적인 상황에서 DHCP 서버는 DHCP Ack 메시지를 통해 이 IP 주소를 단말에 할당함)
 DHCP Server Identifier(Option 54): 단말이 선택한 DHCP 서버의 IP 주소(1.1.1.254). 2개 이상의 DHCP 서버로부터 DHCP Offer 메시지를 수신한 단말은 하나의 DHCP 서버를 선택 후에 그 사실을 본 필드를 통해 모든 DHCP 서버들에게 알림
 Parameter Request List(Option 55): 단말이 DHCP 서버로부터 얻고자 하는 네트워크 정보 리스트(DHCP Option List)

DHCP Ack Message

그림 9. IP 주소 할당(임대) 절차: DHCP Ack 메시지
Ethernet Header
 Destination MAC Address: DHCP 서버는 DHCP Ack 메시지를 이더넷 망에 브로드캐스팅하여 단말이 수신할 수 있도록 함
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 DHCP 서버의 MAC 주소(m2)
IP Header
 Source IP Address: DHCP 서버의 IP 주소(1.1.1.254)
 Destination IP Address: 단말의 IP 주소를 모르기 때문에(단말이 아직 IP 주소를 할당 받지 않았기 때문에) DHCP 서버는 IP 브로드캐스트 주소인 255.255.255.255를 사용하여 본 메시지를 IP 망에 Flooding함
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 서버라는 의미. 서버는 항상 Source Port=67로 보냄
 Destination Port: DHCP 메시지 수신자가 DHCP 클라이언트라는 의미. 서버는 항상 Destination Port=68로 보냄
DHCP Message Payload
 Your IP Address(yiaddr): 단말이 사용하게 될(DHCP 서버가 단말에게 임대해 준) IP 주소(1.1.1.10)
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Ack임을 나타냄(Value=5)
 Subnet Mask(Option 1): 단말이 사용하게 될 서브넷 마스크(255.255.255.0 (/24))
 Router IP(Option 3): 단말이 사용하게 될 디폴트 게이트웨이(단말 입장에서 인터넷으로 나가기 위해 만나는 첫 번째 라우터 혹은 L3 스위치)의 IP 주소(1.1.1.1)
 Domain Name Server IP(Option 6): 단말이 사용하게 될 DNS 서버의 IP 주소. 보통 Primary DNS IP 주소(10.1.1.1)와 Secondary DNS IP 주소(10.1.1.2)와 같이 2개의 IP 주소를 제공함
 IP Address Lease Time(Option 51): DHCP 서버가 할당해 준 IP 주소를 단말이 사용할 수 있는 시간(3,600초 (1시간)). 이 임대기간의 절반인 30분 시점에서 단말은 IP 주소 임대기간 연장 절차를 시작함
 DHCP Server Identifier(Option 54): DHCP Ack 메시지를 보낸 DHCP 서버의 IP 주소(1.1.1.254). 단말은 자신에게 IP 주소를 임대해 준 DHCP 서버가 누구인지 기억(저장)하고 있다가 후에 “IP 주소 임대기간 연장” 혹은 “IP 주소 반납”에서 사용함
부록 B – IP 주소 임대기간 연장 절차의 DHCP 메시지 포맷
DHCP Request Message

그림 10. IP 주소 임대기간 연장 절차: DHCP Request 메시지
Ethernet Header
 Destination MAC Address: DHCP 서버의 MAC 주소(m2) – 이더넷 망에서 유니캐스팅 됨
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 단말의 MAC 주소(m1)
 EtherType: 이더넷 헤더 다음에 IP 패킷이 위치함을 나타냄(IP=0x0800, ARP=0x0806, etc)
IP Header
 Protocol ID: IP 헤더 다음에 UDP 패킷이 위치함을 나타냄(UDP=17, TCP=6, etc)
 Source IP Address: 단말의 IP 주소(1.1.1.10)
 Destination IP Address: DHCP 서버의 IP 주소(1.1.1.254) – IP 망에서 유니캐스팅 됨
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 클라이언트라는 의미(68=BOOTP Client). 단말은 항상 Source Port=68로 보냄
 Destination Port: DHCP 메시지 수신자가 DHCP 서버라는 의미(67=BOOTP Server). 단말은 항상 Destination Port=67로 보냄
DHCP Message Payload
 Client IP Address(ciaddr): 단말이 사용 중인(임대기간을 연장하고자 하는) IP 주소(1.1.1.10)
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Request임을 나타냄(Value=3)
 Client Identifier(Option 51): 단말을 구분하는 인자로써 일반적으로 단말 MAC 주소를 사용(m1). DHCP 서버는 이 정보로 단말을 구별함
 Parameter Request List(Option 55): 단말이 DHCP 서버로부터 얻고자 하는 네트워크 정보 리스트(DHCP Option List). 예를 들어, Subnet Mask, Default GW IP 주소, DNS IP 주소 등을 요청함


DHCP Ack Message

그림 11. IP 주소 임대기간 연장 절차: DHCP Ack 메시지
Ethernet Header
 Destination MAC Address: 단말의 MAC 주소(m1) – 이더넷 망에서 유니캐스팅 됨
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 DHCP 서버의 MAC 주소(m2)
IP Header
 Source IP Address: DHCP 서버의 IP 주소(1.1.1.254)
 Destination IP Address: 단말의 IP 주소(1.1.1.10) – IP 망에서 유니캐스팅 됨
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 서버라는 의미. 서버는 항상 Source Port=67로 보냄
 Destination Port: DHCP 메시지 수신자가 DHCP 클라이언트라는 의미. 서버는 항상 Destination Port=68로 보냄
DHCP Message Payload
 Client IP Address(ciaddr): 단말이 사용 중인(DHCP 서버로부터 할당 받은) IP 주소(1.1.1.10)
 Your IP Address(yiaddr): 단말이 사용하게 될(DHCP 서버가 임대기간 연장을 허가해 준) IP 주소(1.1.1.10)
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Ack임을 나타냄(Value=5)
 Subnet Mask(Option 1): 단말이 사용하게 될 서브넷 마스크(255.255.255.0 (/24))
 Router IP(Option 3): 단말이 사용하게 될 디폴트 게이트웨이(단말 입장에서 인터넷으로 나가기 위해 만나는 첫 번째 라우터 혹은 L3 스위치)의 IP 주소(1.1.1.1)
 Domain Name Server IP(Option 6): 단말이 사용하게 될 DNS 서버의 IP 주소. 보통 Primary DNS IP 주소(10.1.1.1)와 Secondary DNS IP 주소(10.1.1.2)와 같이 2개의 IP 주소를 제공함
 IP Address Lease Time(Option 51): DHCP 서버가 할당해 준 IP 주소를 단말이 사용할 수 있는 시간(3,600초 (1시간)). 이 임대기간의 절반인 30분 시점에서 단말은 IP 주소 임대기간 연장 절차를 시작함
 DHCP Server Identifier(Option 54): DHCP Ack 메시지를 보낸 DHCP 서버의 IP 주소(1.1.1.254). 단말은 자신에게 IP 주소를 임대해 준 DHCP 서버가 누구인지 기억(저장)하고 있다가 후에 “IP 주소 임대기간 연장” 혹은 “IP 주소 반납”에서 사용함

부록 C – IP 주소 반납 절차의 DHCP 메시지 포맷
DHCP Release Message

그림 12. IP 주소 반납 절차: DHCP Release 메시지
Ethernet Header
 Destination MAC Address: DHCP 서버의 MAC 주소(m2) – 이더넷 망에서 유니캐스팅 됨
 Source MAC Address: 이더넷 상의 Source MAC 주소는 항상 패킷 송신자의 주소임. 따라서 단말의 MAC 주소(m1)
 EtherType: 이더넷 헤더 다음에 IP 패킷이 위치함을 나타냄(IP=0x0800, ARP=0x0806, etc)
IP Header
 Protocol ID: IP 헤더 다음에 UDP 패킷이 위치함을 나타냄(UDP=17, TCP=6, etc)
 Source IP Address: 단말의 IP 주소(1.1.1.10)
 Destination IP Address: DHCP 서버의 IP 주소(1.1.1.254) – IP 망에서 유니캐스팅 됨
UDP Header
 Source Port: DHCP 메시지 송신자가 DHCP 클라이언트라는 의미(68=BOOTP Client). 단말은 항상 Source Port=68로 보냄
 Destination Port: DHCP 메시지 수신자가 DHCP 서버라는 의미(67=BOOTP Server). 단말은 항상 Destination Port=67로 보냄
DHCP Message Payload
 Client IP Address(ciaddr): 단말이 사용 중인(DHCP 서버로 반납할) IP 주소(1.1.1.10)
 Client MAC Address(chaddr): 단말의 MAC 주소(m1)
 DHCP Message Type(Option 53): DHCP 메시지 타입이 DHCP Release임을 나타냄(Value=7)
 DHCP Server Identifier(Option 54): DHCP Release를 수신할 DHCP 서버 IP 주소(1.1.1.254)
Related Contents
12/23/2011
Netmanias Blog
12/22/2011
Netmanias Blog
12/06/2011
Netmanias Blog
08/19/2011
Netmanias Technical Documents
06/25/2011
Netmanias Technical Documents
02/10/2011
Netmanias Technical Documents

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2019년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호