[๐CN] DHCP - Dynamic Host Configuration Protocol
๐ Internet Protocol ์ ๊ณต ์์ ์ ๋ฆฌ
๋คํธ์ํฌ์ ์๋ํ๋ฅผ ์คํํ๋ ํต์ฌ ํ๋กํ ์ฝ! DHCP๋ IP ์ฃผ์๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๊ณ ๋คํธ์ํฌ ์ค์ ์ ์๋ํํ์ฌ ์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ์ ์ฝ๊ฒ ์ ์ํ ์ ์๊ฒ ํด์ฃผ๋ ํ์์ ์ธ ํ๋กํ ์ฝ์ด๋ค.
IP ์ฃผ์ ํ ๋น์ ์ญ์ฌ
๊ณผ๊ฑฐ์ ๋ฐฉ๋ฒ๋ค
1990๋ ๋ ์ด - Diskless Workstation ์๋
๐Diskless Workstation: ์ ์ฅ์ฅ์น ์์ด ๋คํธ์ํฌ๋ฅผ ํตํด OS๋ฅผ ๋ถํ ํ๋ ์์คํ
๋ฌธ์ ์ :
- ์ ์์ด ๊บผ์ง๋ฉด OS image๊น์ง ์ฌ๋ผ์ง
- ๋ถํ ์ OS image๋ฅผ ๋ถํธ ์๋ฒ์์ ๊ฐ์ ธ์์ผ ํจ
- ๋ถํธ ์๋ฒ์์ ๋คํธ์ํน์ ์ํด IP ์ฃผ์ ํ์
RARP (Reverse ARP)
ํ๊ณ์ :
- ๋จ์ํ IP ์ฃผ์ ํ ๋น๋ง ๊ฐ๋ฅ
- ์ถ๊ฐ ๋คํธ์ํฌ ์ ๋ณด ์ ๊ณต ๋ถ๊ฐ๋ฅ
- ํ์ฅ์ฑ ๋ถ์กฑ
BOOTP (BOOTstrap Protocol)
๐BOOTP: ๋ถํ ์ ํธ์คํธ์ IP ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฑํ ์ ์๋ ํ๋กํ ์ฝ
์ฃผ์ ๊ธฐ๋ฅ:
- IP address assignment (IP ์ฃผ์ ํ ๋น)
- Detection of the IP address for a serving machine (์๋น์ค ๋จธ์ ์ IP ์ฃผ์ ๊ฐ์ง)
- The name of a file to be loaded and executed (๋ถํธ ํ์ผ ์ด๋ฆ ์ ๊ณต)
ํน์ง:
- IP ์ฃผ์๋ฟ๋ง ์๋๋ผ default router, network mask ๋ฑ๋ ์ ๊ณต
- BOOTP relay๋ก ํ๋์ BOOTP ์๋ฒ๊ฐ ์ฌ๋ฌ ๋คํธ์ํฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- UDP ๋ฉ์์ง ์ฌ์ฉ (Port 67: server, Port 68: client)
- Limited broadcast address (255.255.255.255) ์ฌ์ฉ
- ์ ์ IP ์ฃผ์ ํ ๋น
Dynamic Assignment์ ํ์์ฑ
๐Dynamic IP Assignment: ์๊ตฌ์ ๋ฐ๋ผ IP ์ฃผ์๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฐฉ์
์ฅ์ :
- On-demand IP assignment: ํ์ํ ๋๋ง IP ์ฃผ์ ํ ๋น
- Manual configuration ํํผ: ์๋ ์ค์ ์ ๋ฒ๊ฑฐ๋ก์ ํด๊ฒฐ
- Laptop mobility ์ง์: ์ด๋์ฑ ์๋ ๋๋ฐ์ด์ค ์ง์
ํ๋กํ ์ฝ ๋ฐ์ :
- RARP (until 1985, ๋ ์ด์ ์ฌ์ฉํ์ง ์์)
- BOOTP (1985-1993)
- DHCP (since 1993) โ ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ
DHCP ๊ฐ์
DHCP์ ํ์
๐DHCP (Dynamic Host Configuration Protocol): 1993๋ ์ ์ค๊ณ๋ ๋์ ํธ์คํธ ๊ตฌ์ฑ ํ๋กํ ์ฝ
DHCP = BOOTP + ฮฑ
- BOOTP์ ํ์ฅ
- BOOTP์ ๋ง์ ์ ์ฌ์
- ๋์ผํ ํฌํธ ๋ฒํธ ์ฌ์ฉ (67, 68)
- BOOTP ํด๋ผ์ด์ธํธ์ ์ํธ ์ด์ฉ ๊ฐ๋ฅ
ํต์ฌ ํ์ฅ ๊ธฐ๋ฅ:
- Temporary allocation (โleasesโ): IP ์ฃผ์์ ์์ ํ ๋น (๋ฆฌ์ค)
- Complete IP configuration: ๋ชจ๋ IP ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์ ํ๋ ๊ฐ๋ฅ
DHCP์ ํน์ง
๋์ IP ์ฃผ์ ๊ด๋ฆฌ:
- IP ์ฃผ์ ํ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฃผ์ ์๋ ํ ๋น
- ์์ ํ ๋น(lease)์ ํตํ ํจ์จ์ IP ์ฃผ์ ๊ด๋ฆฌ
- ๋ฆฌ์ค ๋ง๋ฃ ์ ์๋ ๊ฐฑ์ ๋๋ ํด์
ํฌ๊ด์ ๋คํธ์ํฌ ์ค์ :
- IP ์ฃผ์, ์๋ธ๋ท ๋ง์คํฌ
- Default gateway (๋ผ์ฐํฐ)
- DNS ์๋ฒ ์ฃผ์
- ๊ธฐํ 200์ฌ ๊ฐ์ ๋คํธ์ํฌ ๋งค๊ฐ๋ณ์
DHCP ๋ฉ์์ง ๊ตฌ์กฐ
DHCP Header Format
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
0 15 16 31
โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ OpCode โ Hardware Type โ
โ (8 bits) โ (8 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค
โ Hardware Address โ Hop Count โ
โ Length (8 bits) โ (8 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโค
โ Number of Seconds (16 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโค
โ Unused (BOOTP) / โ Transaction ID โ
โ Flags (DHCP) โ (16 bits) โ
โ (16 bits) โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโค
โ Client IP address (32 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Your IP address (32 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Server IP address (32 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Gateway IP address (32 bits) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Client hardware address (16 bytes) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Server host name (64 bytes) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Boot file name (128 bytes) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Options (variable) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
์ฃผ์ ํ๋ ์ค๋ช
1. OpCode (8 bits)
- 1 (Request): ํด๋ผ์ด์ธํธ โ ์๋ฒ
- 2 (Reply): ์๋ฒ โ ํด๋ผ์ด์ธํธ
2. Hardware Type (8 bits)
- 1 (Ethernet)
3. Hardware Address Length (8 bits)
- 6 (Ethernet MAC ์ฃผ์ ๊ธธ์ด)
4. Hop Count (8 bits)
- ํด๋ผ์ด์ธํธ๊ฐ 0์ผ๋ก ์ค์
- Relay agent๊ฐ hop ์ ์ถ์
5. Transaction ID (16 bits)
- Request์ Response ๋งค์นญ์ ์ํ ์ ์
6. Flags (16 bits)
- B (1bit, broadcast): ๋ธ๋ก๋์บ์คํธ ์์ฒญ
7. IP Address Fields
- Client IP address: IP ์์ฒญ ์ 0.0.0.0, ํ ๋น ํ ์ฌ์ฉํ IP
- Your IP address: ํด๋ผ์ด์ธํธ์๊ฒ ํ ๋นํ๋ IP ์ฃผ์
- Server IP address: DHCP ์๋ฒ ์ดํ ์ฐพ์๊ฐ ์๋ฒ ์ฃผ์
- Gateway IP address: Relay์ IP ์ฃผ์
DHCP ๋ฉ์์ง ํ์
DHCP Option 53: Message Type
| Value | Message Type | ์ค๋ช |
|---|---|---|
| 1 | DHCPDISCOVER | ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ฐ๊ฒฌ |
| 2 | DHCPOFFER | ์๋ฒ์ IP ์ฃผ์ ์ ์ |
| 3 | DHCPREQUEST | ํด๋ผ์ด์ธํธ์ IP ์์ฒญ |
| 4 | DHCPDECLINE | ํด๋ผ์ด์ธํธ์ IP ๊ฑฐ์ |
| 5 | DHCPACK | ์๋ฒ์ ์น์ธ |
| 6 | DHCPNAK | ์๋ฒ์ ๊ฑฐ๋ถ |
| 7 | DHCPRELEASE | ํด๋ผ์ด์ธํธ์ IP ํด์ |
| 8 | DHCPINFORM | ํด๋ผ์ด์ธํธ์ ์ ๋ณด ์์ฒญ |
์ฃผ์ DHCP ์ต์ ๋ค
Option 50: Requested IP Address
- ์ด์ ์ ์ฌ์ฉํ๋ IP ์ฃผ์ ์์ฒญ
Option 51: IP Address Lease Time
- IP ์ฃผ์ ์๋ ์๊ฐ (์: 3600s = 1 hour)
Option 53: DHCP Message Type (ํ์)
- DHCP ๋ฉ์์ง ์ ํ ์ง์
Option 54: DHCP Server Identification
- DHCP ์๋ฒ ์ฃผ์ โ ๋ค์์๋ ๋ธ๋ก๋์บ์คํธ๊ฐ ์๋ ์ง์ ์์ฒญ
Option 55: Parameter Request List
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ ๋คํธ์ํฌ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก
- Subnet Mask, Router, DNS Server, Domain Name ๋ฑ
DHCP 4๋จ๊ณ ํ๋ก์ธ์ค
DORA Process
๐DORA: DHCP์ 4๋จ๊ณ ํ๋ก์ธ์ค (Discover, Offer, Request, Acknowledge)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Client Selected Server
โ โ
โ DISCOVER โ Determines
โ (broadcast, xid, params request) โ Configuration
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ (Other Servers
โ โ May OFFER)
โ OFFER โ
โ (broadcast, siaddr, xid, yiaddr) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
Collects Replies โ
Selects Server/Configuration โ
โ โ
โ REQUEST โ Selected Server
โ (broadcast, siaddr, ciaddr, xid) โ Commits Config
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ (Other Servers
โ โ Do Not)
โ ACK โ
โ (broadcast, xid, yiaddr, options) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
Configured โ
๊ฐ ๋จ๊ณ๋ณ ์์ธ
1. DISCOVER (ํด๋ผ์ด์ธํธ โ ๋ธ๋ก๋์บ์คํธ)
- ํด๋ผ์ด์ธํธ๊ฐ DHCP ์๋ฒ ์ฐพ๊ธฐ
- UDP Port 68 โ 67๋ก ๋ธ๋ก๋์บ์คํธ
- 0.0.0.0์์ 255.255.255.255๋ก ์ ์ก
2. OFFER (์๋ฒ โ ํด๋ผ์ด์ธํธ)
- ์ฌ์ฉ ๊ฐ๋ฅํ IP ์ฃผ์ ์ ์
- Lease ์๊ฐ๊ณผ ๋คํธ์ํฌ ์ค์ ํฌํจ
- ์ฌ๋ฌ ์๋ฒ๊ฐ ์๋ต ๊ฐ๋ฅ
3. REQUEST (ํด๋ผ์ด์ธํธ โ ๋ธ๋ก๋์บ์คํธ)
- ํน์ ์๋ฒ์ ์ ์ ์๋ฝ
- ์ ํํ ์๋ฒ ID ํฌํจ
- ์ฌ์ ํ ๋ธ๋ก๋์บ์คํธ (๋ค๋ฅธ ์๋ฒ๋ค์๊ฒ ์๋ฆผ)
4. ACK (์๋ฒ โ ํด๋ผ์ด์ธํธ)
- ์ต์ข ์น์ธ ๋ฐ ์ค์ ์ ๋ณด ์ ์ก
- ํด๋ผ์ด์ธํธ๊ฐ IP ์ฃผ์ ์ฌ์ฉ ์์
DHCP State Machine
ํด๋ผ์ด์ธํธ ์ํ ์ ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Send
DISCOVER
โโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โโโโบโ INIT โโโโโโโบโ Selecting โ
โโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โฒ โ Collect
โ โ Offers
โ โผ
Recv NACKโ โโโโโโโโโโโโโโโ
(or Lease โ โ Requesting โ
Expires) โ โโโโโโโโโโโโโโโ
โ โ Select Server
โ โ Send REQUEST
โโโโโโโโโโดโโโโ โผ
โ Rebinding โ โโโโโโโโโโโโโโโ Recv ACK (Accept)
โโโโโโโโโโโโโโ โ Bound โโโโโโโโโโโโโโโโโโโ
โฒ โโโโโโโโโโโโโโโ
T2 โ โ (Obtain T1, T2)
Expiresโ โ
โ โโโโโโโโโโโโโโโ
โ T1 โ Renewing โ
โโโโโโโโExpiresโโค โ
โโโโโโโโโโโโโโโ
์ํ๋ณ ์ค๋ช
INIT: ์ด๊ธฐ ์ํ, DISCOVER ์ ์ก
Selecting: OFFER ์์ง ์ค
Requesting: ํน์ ์๋ฒ ์ ํ ํ REQUEST ์ ์ก
Bound: IP ์ฃผ์ ํ ๋น ๋ฐ์ ์ฌ์ฉ ์ค
- T1 (Renewal Time): ๋ฆฌ์ค ์๊ฐ์ 50%
- T2 (Rebinding Time): ๋ฆฌ์ค ์๊ฐ์ 87.5%
Renewing: T1 ๋ง๋ฃ, ๋์ผ ์๋ฒ์ ๊ฐฑ์ ์์ฒญ
Rebinding: T2 ๋ง๋ฃ, ๋ชจ๋ ์๋ฒ์ ๊ฐฑ์ ์์ฒญ
DHCP Relay Agent
ํ๋์ DHCP ๊ตฌ์ฑ
๐DHCP Relay: ํด๋ผ์ด์ธํธ์ ์๊ฒฉ DHCP ์๋ฒ ๊ฐ์ ๋ฉ์์ง ์ค๊ณ
ํ์์ฑ:
- ๋ธ๋ก๋์บ์คํธ๋ ๋ก์ปฌ ๋คํธ์ํฌ๋ง ๋๋ฌ
- ๊ฐ ์๋ธ๋ท๋ง๋ค DHCP ์๋ฒ ์ค์น๋ ๋นํจ์จ์
- ์ค์ ์ง์ค์ DHCP ์๋ฒ ์ด์ ํ์
๋์ ๋ฐฉ์:
1
2
3
4
5
6
7
8
9
10
11
12
Network Segment A โ Network Segment B
โ
โโโโโโโโโโโ โ โโโโโโโโโโโโโโโ
โ Client โ โ โ DHCP Server โ
โโโโโโโโโโโ โ โโโโโโโโโโโโโโโ
โ โ โฒ
โ Broadcast โ โ
โผ โ โ
โโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโค
โ Relay Agent โโโโโโผโโโโโ Unicast โ
โ (Router) โ โ โ Messages โ
โโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโ
Relay Agent ๊ธฐ๋ฅ:
- ๋ธ๋ก๋์บ์คํธ DHCP ๋ฉ์์ง ์์
- ์ ๋์บ์คํธ๋ก DHCP ์๋ฒ์ ์ ๋ฌ
- ์๋ฒ ์๋ต์ ํด๋ผ์ด์ธํธ์๊ฒ ์ค๊ณ
- Gateway IP address ํ๋์ ์์ ์ IP ๊ธฐ๋ก
DHCP Lease Management
Lease ์๊ฐ ๊ด๋ฆฌ
๐IP Address Lease: IP ์ฃผ์์ ์์ ์ฌ์ฉ๊ถ, ์ง์ ๋ ์๊ฐ ๋์๋ง ์ ํจ
Lease ๊ฐฑ์ ๊ณผ์ :
๋ฆฌ์ค ์๊ฐ์ 50% ๊ฒฝ๊ณผ (T1) ์:
- ํด๋ผ์ด์ธํธ๊ฐ ๋์ผ ์๋ฒ์ DHCPREQUEST ์ ์ก
- ์๋ฒ ์๋ต ์์ผ๋ฉด ์์ฒญ ๋ฐ๋ณต
- ์๋ฒ๊ฐ DHCPNAK ์๋ต ์ ์ฒ์๋ถํฐ ๋ค์ ์์
๋ฆฌ์ค ์๊ฐ์ 87.5% ๊ฒฝ๊ณผ (T2) ์:
- ๋ชจ๋ DHCP ์๋ฒ์ ๋ธ๋ก๋์บ์คํธ DHCPREQUEST
- ์ด๋ค ์๋ฒ๋ ์๋ต ๊ฐ๋ฅ
Lease ํด์
DHCPRELEASE:
- ํด๋ผ์ด์ธํธ๊ฐ IP ์ฃผ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์์์ ์๋ฆผ
- ์๋ฒ๊ฐ IP ์ฃผ์๋ฅผ ํ์ ๋ฐํ
- ์ ์์ ์ธ ํด์ ๊ณผ์
์๋ ๋ง๋ฃ:
- ํด๋ผ์ด์ธํธ๊ฐ ๊ฐฑ์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ๋ง๋ฃ
- ์๋ฒ๊ฐ IP ์ฃผ์๋ฅผ ํ์ํ์ฌ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
DHCP ์์ฝ
DHCP์ ํต์ฌ ๊ธฐ๋ฅ
1. ๋์ IP ์ฃผ์ ๊ด๋ฆฌ
- ์๋ IP ์ฃผ์ ํ ๋น ๋ฐ ํ์
- Lease ๊ธฐ๋ฐ ์์ ํ ๋น
- IP ์ฃผ์ ํ์ ํจ์จ์ ๊ด๋ฆฌ
2. ํฌ๊ด์ ๋คํธ์ํฌ ์ค์
- IP ์ฃผ์, ์๋ธ๋ท ๋ง์คํฌ, ๊ฒ์ดํธ์จ์ด
- DNS ์๋ฒ, ๋๋ฉ์ธ ์ด๋ฆ
- 200์ฌ ๊ฐ์ ๋คํธ์ํฌ ๋งค๊ฐ๋ณ์
3. ๋คํธ์ํฌ ์๋ํ
- Zero-configuration ์ง์
- ์ฌ์ฉ์ ๊ฐ์ ์ต์ํ
- ์ค์ ์ง์ค์ ๊ด๋ฆฌ
4. ํ์ฅ์ฑ๊ณผ ์ด๋์ฑ
- Relay Agent๋ฅผ ํตํ ํ์ฅ
- ๋คํธ์ํฌ ๊ฐ ์ด๋ ์ง์
- ๋๊ท๋ชจ ๋คํธ์ํฌ ๊ด๋ฆฌ
DHCP vs ์ ์ IP ์ฃผ์
| ๊ตฌ๋ถ | DHCP (๋์ ) | Static IP (์ ์ ) |
|---|---|---|
| ๊ด๋ฆฌ ํธ์ | ์๋ํ, ์ค์ ๊ด๋ฆฌ | ์๋ ์ค์ ํ์ |
| ํ์ฅ์ฑ | ๋๊ท๋ชจ ๋คํธ์ํฌ ์ ํฉ | ์๊ท๋ชจ๋ง ํ์ค์ |
| IP ํจ์จ์ฑ | ๋์ (ํ์์์๋ง) | ๋ฎ์ (ํญ์ ์ ์ ) |
| ์ด๋์ฑ | ์๋ฒฝ ์ง์ | ์ ํ์ |
| ๋ณด์ | ์ถ๊ฐ ๊ณ ๋ ค์ฌํญ | ์๋์ ์ผ๋ก ์์ |
| ์์ ์ฑ | DHCP ์๋ฒ์ ์์กด | ๋์ |
DHCP๋ ํ๋ ๋คํธ์ํฌ์ ๊ธฐ๋ฐ
- ๊ฑฐ์ ๋ชจ๋ ๋คํธ์ํฌ์์ ์ฌ์ฉ
- ์ฌ์ฉ์ ํธ์์ฑ๊ณผ ๊ด๋ฆฌ ํจ์จ์ฑ ์ ๊ณต
- ๋คํธ์ํฌ ์๋ํ์ ํต์ฌ ๊ตฌ์ฑ ์์
References:
- RFC 2131: Dynamic Host Configuration Protocol
- RFC 2132: DHCP Options and BOOTP Vendor Extensions
- RFC 3046: DHCP Relay Agent Information Option
- Prof. Jongwon Yoon, Intelligent Machines Lab.