Post

[๐ŸŒCN] DHCP - Dynamic Host Configuration Protocol

[๐ŸŒ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 ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ

์ฃผ์š” ๊ธฐ๋Šฅ:

  1. IP address assignment (IP ์ฃผ์†Œ ํ• ๋‹น)
  2. Detection of the IP address for a serving machine (์„œ๋น„์Šค ๋จธ์‹ ์˜ IP ์ฃผ์†Œ ๊ฐ์ง€)
  3. 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 ํด๋ผ์ด์–ธํŠธ์™€ ์ƒํ˜ธ ์šด์šฉ ๊ฐ€๋Šฅ

ํ•ต์‹ฌ ํ™•์žฅ ๊ธฐ๋Šฅ:

  1. Temporary allocation (โ€œleasesโ€): IP ์ฃผ์†Œ์˜ ์ž„์‹œ ํ• ๋‹น (๋ฆฌ์Šค)
  2. 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

ValueMessage Type์„ค๋ช…
1DHCPDISCOVERํด๋ผ์ด์–ธํŠธ์˜ ์„œ๋ฒ„ ๋ฐœ๊ฒฌ
2DHCPOFFER์„œ๋ฒ„์˜ IP ์ฃผ์†Œ ์ œ์•ˆ
3DHCPREQUESTํด๋ผ์ด์–ธํŠธ์˜ IP ์š”์ฒญ
4DHCPDECLINEํด๋ผ์ด์–ธํŠธ์˜ IP ๊ฑฐ์ ˆ
5DHCPACK์„œ๋ฒ„์˜ ์Šน์ธ
6DHCPNAK์„œ๋ฒ„์˜ ๊ฑฐ๋ถ€
7DHCPRELEASEํด๋ผ์ด์–ธํŠธ์˜ IP ํ•ด์ œ
8DHCPINFORMํด๋ผ์ด์–ธํŠธ์˜ ์ •๋ณด ์š”์ฒญ

์ฃผ์š” 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 ๊ธฐ๋Šฅ:

  1. ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ DHCP ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 
  2. ์œ ๋‹ˆ์บ์ŠคํŠธ๋กœ DHCP ์„œ๋ฒ„์— ์ „๋‹ฌ
  3. ์„œ๋ฒ„ ์‘๋‹ต์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ค‘๊ณ„
  4. 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.
This post is licensed under CC BY 4.0 by the author.