1. DHCP Basic Configuration 구성도
1) DHCP Basic Configuration 구성도
- DHCP 기본 개념, DHCP 동작 과정을 먼저 학습하는 것을 권고
2) 테스트 장비
- Emulator : EVE-NG
- OS : Cisco IOL I86BI_LINUXL2-ADVENTERPRISEK9-M, Version 15.1c
2. DHCP Basic Configuration
1) DHCP Server SVI Configuration
더보기
< VLAN 생성 >
DHCP-SERVER(config)#vlan 10
DHCP-SERVER(config-vlan)#name VLAN10
< Interface에 VLAN Bidning >
DHCP-SERVER(config)#interface e0/0
DHCP-SERVER(config-if)#switchport mode access
DHCP-SERVER(config-if)#switchport access vlan 10
DHCP-SERVER(config-if)#no cdp enable
DHCP-SERVER(config)#interface e0/1
DHCP-SERVER(config-if)#switchport mode access
DHCP-SERVER(config-if)#switchport access vlan 10
DHCP-SERVER(config-if)#no cdp enable
< VLAN Interface에 IP Address 구성 >
DHCP-SERVER(config)#interface vlan 10
DHCP-SERVER(config-if)#ip address 10.0.0.1 255.255.255.0
DHCP-SERVER(config-if)#no shutdown
2) DHCP Pool Configuration
< DHCP Pool 구성 >
DHCP-SERVER(config)#ip dhcp pool POOL-10 ## DHCP POOL Name 지정
DHCP-SERVER(dhcp-config)#network 10.0.0.0 255.255.255.0 ## 클라이언트에게 할당할 Network 지정
DHCP-SERVER(dhcp-config)#default-router 10.0.0.1 ## 클라이언트의 Default Gateway 지정
DHCP-SERVER(dhcp-config)#lease 0 0 5 ## Lease Time 지정(5 min)
DHCP-SERVER(dhcp-config)#dns-server 8.8.8.8 8.8.4.4 ## DNS Server IP 지정
DHCP-SERVER(dhcp-config)#next-server 100.0.0.1 ## TFTF Server IP 지정
DHCP-SERVER(dhcp-config)#bootfile /A/B/C ## Booting Image All Path 지정
DHCP-SERVER(dhcp-config)#netbios-name-server 100.0.0.2 100.0.0.3 ## Wins Server IP 지정
DHCP-SERVER(dhcp-config)#domain-name CISCO.COM ## Domain-Name 지정
< DHCP Pool에서 제외할 IP Range 구성 >
DHCP-SERVER(config)#ip dhcp excluded-address 10.0.0.1 10.0.0.253 ## 클라이언트에게 할당할 Network 중에 제외할 IP Range 지정
- Cisco DHCP 서버는 어떤 인터페이스로 수신되는 DHCP 메시지를 어떤 Pool에서 할당할지 정의하는 설정이 미존재
- Cisco DHCP 서버는 DHCP 메시지를 수신한 Interface IP Address가 포함되는 Pool에서 할당되며 해당되는 Pool이 여러 개라면 더 Specific한 Pool 정보를 할당하고 해당 Pool에 없는 정보는 다음으로 Specific한 Pool에서 정보를 할당
3) IP Address Allocation Procedure
CLIENT-1(config)#interface e0/0
CLIENT-1(config-if)#no switchport
CLIENT-1(config-if)#ip address dhcp
- Cisco DHCP 서버는 Discovery 메시지를 수신하면 클라이언트에게 할당할 IP Address를 기준으로 ARP Request를 전송하고 Reply가 없으면 IP 충돌이 되지 않는다고 판단하여 Offer 메시지를 전송
- 클라이언트가 처음 Discover 메시지에 Broadcast Flag를 1로 전송하여 Offer 및 Ack 메시지를 Broadcast로 전송
- 위에서 GARP Reply 메시지가 발생하는 것은 DHCP 클라이언트가 IP 할당을 받고 전송하는 것
(1) Discover Message
- 클라이언트는 Broadcast Flag를 세팅하여 전송
- 클라이언트는 할당받고 싶은 정보를 Option 필드에 넣어 전송
(2) ARP Request
- DHCP 서버는 클라이언트에게 할당할 IP Address가 이미 사용 중인지 확인하기 위해 ARP Request를 전송하며 Reply가 없을 경우, 해당 IP Address를 사용하지 않는다고 판단하여 Offer 메시지를 전송
(3) Offer Message
- DHCP 서버는 클라이언트에게 할당해 줄 네트워크 정보와 본인의 IP Address 정보를 전송
- Discover 메시지의 Broadcast Flag가 구성되어 있었으므로 Broadacst로 전송
- DHCP 서버는 아직 Binding 테이블이 생성되지 않은 상태
(4) Request Message
- 클라이언트는 어떤 서버가 전송한 어떤 네트워크 정보를 사용할 것인지 알리기 위해 Offer 메시지를 전송
- Offer 메시지로 수신한 필드 중, 서버 IP Address와 할당받은 IP Address를 넣어 Request 메시지를 전송
- 클라이언트는 가장 먼저 수신한 Offer 메시지를 처리
- 클라이언트는 할당받고 싶은 정보를 Option 필드에 넣어 전송
(5) Ack Message
- DHCP 서버는 클라이언트에게 할당해 줄 네트워크 정보와 본인의 IP Address 정보를 전송
- Request 메시지의 Broadcast Flag가 구성되어 있었으므로 Broadacst로 전송
- DHCP 서버는 Binding 테이블을 생성
- 클라이언트는 Ack 메시지를 수신하고 해당 메시지에 구성된 네트워크 정보로 구성
(6) ARP Reply
- DHCP 서버가 ARP Request를 전송하는 것에 대해 클라이언트가 IP 할당을 받고 전송하는 것
(7) DHCP Client 확인
CLIENT-1#show ip route | begin Gateway
Gateway of last resort is 10.0.0.1 to network 0.0.0.0
S* 0.0.0.0/0 [254/0] via 10.0.0.1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.0.0.0/24 is directly connected, Ethernet0/0
L 10.0.0.254/32 is directly connected, Ethernet0/0
- DHCP 서버에서 설정한 Gateway인 10.0.0.1을 Default Route로 구성
CLIENT-1#show dhcp server
DHCP server: ANY (255.255.255.255)
Leases: 11
Offers: 1 Requests: 11 Acks : 11 Naks: 0
Declines: 0 Releases: 0 Query: 0 Bad: 0
DNS0: 8.8.8.8, DNS1: 8.8.4.4
NBNS0: 100.0.0.2, NBNS1: 100.0.0.3
Subnet: 255.255.255.0 DNS Domain: CISCO.COM
- DHCP 클라이언트와 서버에서 송수신된 DHCP 메시지 개수 확인 가능
- DHCP 서버에게 할당받은 DNS Server IP, Wins Server IP, Subnet Mask, DNS Domain 정보 확인 가능
CLIENT-1#show dhcp lease
Temp IP addr: 10.0.0.254 for peer on Interface: Ethernet0/0
Temp sub net mask: 255.255.255.0
DHCP Lease server: 10.0.0.1, state: 5 Bound
DHCP transaction id: 20EC
Lease: 300 secs, Renewal: 150 secs, Rebind: 259 secs
Temp default-gateway addr: 10.0.0.1
Next timer fires after: 00:02:00
Retry count: 0 Client-ID: cisco-aabb.cc03.7000-Et0/0
Client-ID hex dump: 636973636F2D616162622E636330332E
373030302D4574302F30
Hostname: CLIENT-1
- Temp IP addr : 서버에게 할당받은 IP Address
- for peer on Interface : 서버 기준 OIF
- Temp sub net mask : Subnet Mask
- DHCP Lease server : DHCP Server IP Address
- Lease : Lease Time
- Renewal : Renewal Timer(T1)
- Rebind : Rebinding Time(T2)
- Temp default-gateway addr : 서버에게 할당받은 Default Gateway
- Next timer fires after : Refreesh Timer(Request/Ack)까지 남은 시간
(8) DHCP Server 확인
DHCP-SERVER#show ip dhcp pool
Pool POOL-10 :
Utilization mark (high/low) : 100 / 0
Subnet size (first/next) : 0 / 0
Total addresses : 254
Leased addresses : 1
Excluded addresses : 253
Pending event : none
1 subnet is currently in the pool :
Current index IP address range Leased/Excluded/Total
10.0.0.1 10.0.0.1 - 10.0.0.254 1 / 253 / 254
- Pool Total IP Address, Pool Excluded IP Address, Leased Address 개수 확인 가능
DHCP-SERVER#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
10.0.0.254 0063.6973.636f.2d61. Nov 23 2024 11:57 AM Automatic
6162.622e.6363.3033.
2e37.3030.302d.4574.
302f.30
- DHCP 서버가 네트워크 정보를 할당해 준 클라이언트를 관리하는 Binding Table 확인 가능
- IP Address, Client-ID, Lease Time 등 확인 가능
4) IP Address Renewal and Rebinding Procedure
- 클라이언트는 Renewal Time이 되었을 때 Lease Time을 연장하기 위해 Request 메시지를 Unicast로 전송
- 클라이언트는 Ack 메시지를 수신하지 못하고 Rebinding Time이 되었을 때 Lease Time을 연장하기 위해 Request 메시지를 Broadcast로 전송
- 클라이언트는 Ack 메시지를 수신하면 필드에 있는 Lease Time 정보로 Reset
- 클라이언트는 Rebinding Time에서도 Ack 메시지를 수신하지 못할 경우, Lease Time이 끝나면 IP Address 사용 불가
(1) Request Message(Renewal Time Expired)
- 클라이언트는 서버에게 이미 할당받아 사용하고 있는 IP Address를 "Client IP Address"에 넣어 전송
(2) Request Message(Rebinding Time Expired)
(3) Ack Message
- Request로 수신한 "Client IP Address" 값을 복사하여 전송
5) IP Address Release Procedure
CLIENT-1(config)#interface e0/0
CLIENT-1(config-if)#shutdown
- 클라이언트에서 Interface shutdown 시, Release 메시지를 전송하여 할당받은 IP Address를 반납
- 서버는 Release 메시지를 수신하면 Binding Table에서 해당 정보를 제거
(1) Release Message
6) Broadcast Flag Disable
CLIENT-1(config)#no ip dhcp-client broadcast-flag
- DHCP 메시지 전송 시, Broadcast Flag Bit를 0으로 구성
- DHCP 서버는 Discover 및 Request 메시지의 Broadcast Flag Bit를 0으로 수신하므로 Offer 및 Ack 메시지를 Unicast로 전송
7) IP Address Allocation Collision Procedure
CLIENT-2(config)#interface e0/0
CLIENT-2(config-if)#no switchport
CLIENT-2(config-if)#ip address 10.0.0.254 255.255.255.0
CLIENT-2(config-if)#no shutdown
- IP Address가 중복되도록 IP Address 구성
CLIENT-1(config)#interface e0/0
CLIENT-1(config-if)#ip address dhcp
CLIENT-1(config-if)#no shutdown
- DHCP 클라이언트 구성
DHCP-SERVER#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.0.0.1 - aabb.cc83.8000 ARPA Vlan10
Internet 10.0.0.254 0 aabb.cc03.d000 ARPA Vlan10
Internet 20.0.0.1 - aabb.cc83.8010 ARPA Vlan20
- 서버는 클라이언트에게 Discover 메시지를 수신하고 할당해 줄 IP Address가 충돌이 발생하는지 확인하기 위해 ARP Request 패킷을 전송하고 이미 해당 IP Address를 할당한 "CLIENT-2"가 ARP Reply를 전송하므로 DHCP 서버는 IP 충돌이 발생한다고 판단하여 Offer 메시지를 전송하지 않고 다른 IP Address를 할당할 수 있는지 확인
- 서버의 ARP Table에 할당할 IP Address에 대한 MAC Address 정보가 있으면 Offer 메시지 전송 불가
- 현재 DHCP 서버 Pool에 남는 IP Address가 없으므로 "CLIENT-1"에게 IP Address 할당 불가능
DHCP-SERVER#show ip dhcp conflict
IP address Detection method Detection time VRF
10.0.0.254 Ping Nov 23 2024 12:39 PM
- 클라이언트는 Discover 메시지를 계속 전송하면서 IP Address 할당을 요청
'Network > DHCP' 카테고리의 다른 글
DHCP Secondary Pool Configuration(Cisco IOL) (0) | 2025.06.06 |
---|---|
DHCP Smart-Relay Configuration(Cisco IOL) (0) | 2025.06.04 |
DHCP Relay Agent Configuration(Cisco IOL) (0) | 2025.06.02 |
DHCP Pool Static Client Configuration(Cisco IOL) (0) | 2025.05.31 |
DHCP Proxy Agent 동작 과정 (0) | 2025.05.27 |
DHCP Relay Agent 동작 과정 (0) | 2025.05.25 |
DHCP 동작 과정 (0) | 2025.05.23 |
DHCP Message Format (0) | 2025.05.21 |