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)
많은 도움이 됐습니다~.
4page 주소 임대기간 연장절차에서
1. DHCP Discovery -> 1. DHCP Request 로 되어야 될것 같은데요~ ^^
Typo 수정하였습니다.
송수섭님, 감사합니다.
좋은 글 감사합니다. 그런데 설명을 보다가 의문이 생겨서 댓글 남깁니다.
와이어샤크의 패킷을 통해 DHCP 페이로드의 option number 51은 IP Address Lease Time을 의미하고, option number 61은 Client Identifier을 의미함을 확인했습니다. 그런데 글 안에서 option number 51이 어떤때는 IP Address Lease Time을, 또 어떤 때는 Client Identifier를 나타낸다고 기술되어 있어 혼동이 갑니다. DHCP msg type 에 따라 option number 51이 다른 의미를 가지는건가요..? 답변해주시면 감사하겠습 니다.
오타이네요. DHCP mesasge type과 무관하게 option51 = IP address lease time, option61 = client identifier가 맞습니다.