네트워크 관리에서 IP 주소를 효율적으로 할당하고 관리하는 것은 매우 중요하다.
수많은 호스트에 일일이 수동(Static)으로 IP를 입력하는 것은 비효율적일 뿐만 아니라 휴먼 에러로 인한 IP 충돌 위험이 있다.
이를 자동화해 주는 프로토콜이 바로 DHCP(Dynamic Host Configuration Protocol)다.
1. DHCP와 UDP
DHCP는 전송 계층(4계층) 프로토콜로 UDP(User Datagram Protocol)를 사용한다.
신뢰성보다는 속도와 효율성을 중시하며, 클라이언트는 68번 포트, 서버는 67번 포트를 사용해 통신한다.
초기 단계에서는 IP 주소가 없는 상태에서 통신해야 하므로 연결 지향적인 TCP보다 비연결적인 UDP가 적합하기 때문이다.
2. DHCP 동작의 4단계: DORA 과정
DHCP 클라이언트가 서버로부터 IP를 할당받는 과정은 네 단계의 패킷 교환으로 이루어지며, 각 단계의 앞 글자를 따서 DORA라고 부른다.
1️⃣ DHCP Discover (Broadcast)
- 전송 주체: DHCP 클라이언트
- 설명: 네트워크에 처음 접속한 클라이언트가 "여기 IP 주소를 줄 수 있는 DHCP 서버가 있나?"라고 묻는 패킷이다. 아직 DHCP 서버의 위치를 모르기 때문에 자신의 로컬 네트워크 전체에 브로드캐스트(Broadcast)로 전송한다.
2️⃣ DHCP Offer (Broadcast)
- 전송 주체: DHCP 서버
- 설명: Discover 패킷을 받은 서버가 클라이언트에게 "내가 IP 주소를 줄 수 있다. 이 정보(IP, 서브넷 마스크, 게이트웨이 등)를 쓰는 게 어때?"라고 제안하는 패킷이다. 유효한 IP 주소 후보를 응답한다.
3️⃣ DHCP Request (Broadcast)
- 전송 주체: DHCP 클라이언트
- 설명: 서버의 Offer를 받은 클라이언트가 "방금 제안한 그 IP 정보를 내가 사용하겠다"라고 확답을 보내는 과정이다. 여러 대의 DHCP 서버가 있을 수 있으므로, 특정 서버의 제안을 수락했음을 알리기 위해 다시 한번 브로드캐스트로 전송한다.
4️⃣ DHCP Acknowledgement (ACK) (Broadcast)
- 전송 주체: DHCP 서버
- 설명: 서버가 클라이언트의 요청을 최종적으로 확인하고 "알겠다. 이제부터 그 IP는 네 거다."라고 승인하는 패킷이다. 이 패킷을 받으면 클라이언트는 비로소 네트워크 설정을 완료한다.
DORA의 흐름

3. 시스코 패킷 트레이서 실습
이번 실습에서는 DNS 서버와 웹 서버를 먼저 구축하여 서비스 환경을 완성하고, 이를 DHCP를 통해 클라이언트에게 배포하여 최종적으로 도메인 이름으로 웹 사이트에 접속하는 시뮬레이션을 해본다.
🔵 네트워크 구성도
네트워크 구성은 이전 실습에서 살짝만 변형한 것이기 때문에, DHCP 서버 구성 이전의 정적 라우팅 설정 등은 이전 포스팅을 참고하면 된다.

◾Network#1
Router1: fa0/0 - 192.168.100.1 (gateway)
Switch1: SVI - 192.168.100.2
PC1: 192.168.100.3
Web Server2: 192.168.100.4
DHCP Server: 192.168.100.5
Laptop2: 192.168.100.? (DHCP 클라이언트이기 때문에 static IP 설정을 하지 않은 상태)
◾Network#2
Router3: fa0/1 - 192.168.100.129 (gateway)
Switch1: SVI - 192.168.100.30
Web Server1: 192.168.100.131
Laptop1: 192.168.100.132
DNS Server: 192.168.100.133
Laptop3: 192.168.100.? (DHCP 클라이언트이기 때문에 static IP 설정을 하지 않은 상태)
🔵 DNS 서버 구성
DHCP 서버가 클라이언트에게 어느 DNS 서버를 참조해야 하는지 알려주기 위해서는 당연히 DNS 서버가 먼저 제 자리에 구축되어 있어야 한다.
Network#2에 위치한 DNS Server 장비에서 DNS 서버를 설정한다.
- 설정 경로: Services > DNS
- DNS Service: On
- 레코드 등록:
- Name: naver.com / Address: 192.168.100.131 (Web Server1)
- Name: www.naver.com / Address: 192.168.100.131 (Web Server1)
- Name: daum.net / Address: 192.168.100.4 (Web Server2)
- Name: www.daum.net / Address: 192.168.100.4 (Web Server2)
- 각각 입력하고 Add 버튼을 눌러서 추가한다.

💡DNS 설정(Resolution)
컴퓨터는 www.google.com이라는 문자를 이해하지 못한다.
오직 142.250.206.228 같은 숫자(IP 주소)로만 통신할 수 있다.
이때 클라이언트(PC, 노트북) 내부의 네트워크 설정에는 "주소를 모르면 x.x.x.x로 가서 물어봐라"라는 지침이 적혀 있는데, 이 x.x.x.x가 바로 우리가 참조하는 DNS 서버다.
- DNS 서버를 참조할 수 없으면 주소창에 도메인을 쳐도 "페이지를 찾을 수 없음"이 뜬다. (전화번호부 없이 전화를 걸려는 상황)
- 잘못된 DNS 서버를 참조하면 "그런 주소는 모른다"는 답변만 돌아온다. (영어 단어를 국어 사전에서 찾는 상황)
🔵 Web 서버 구성
실제 콘텐츠를 제공하는 서버들을 설정한다.
각 서버의 IP 주소에 맞는 HTTP 서비스를 활성화해야 한다.
Web Server 1 (naver.com)
- IP: 192.168.100.131
- 설정: Services > HTTP 에서 HTTP와 HTTPS를 모두 On으로 설정한다.
- Index.html 편집: index.html 파일의 내용을 수정하여 "Welcome to NAVER!"와 같은 문구를 넣어 간단하게 알아볼 수 있게 한다.
Web Server 2 (daum.net)
- IP: 192.168.100.4
- 설정: 동일하게 Services > HTTP를 활성화한다.
- Index.html 편집: "Welcome to DAUM!"으로 내용을 수정한다.


🔵 DHCP 서버 구성
이제 클라이언트(Laptop2, Laptop3 등)가 위에서 만든 서비스들을 자동으로 이용할 수 있도록 Network#1의 DHCP 서버를 설정한다.
DHCP 설정 항목
| 항목 | 설정값 (예시) | 의미 |
| Pool Name | serverPool | 설정 그룹의 이름 |
| Default Gateway | 192.168.100.1 | 외부 네트워크로 나가는 출구 (Router1) |
| DNS Server | 192.168.100.133 | 클라이언트가 주소를 물어볼 대상 |
| Start IP Address | 192.168.100.40 | Reserved Zone 보호: .1(GW), .4(Web), .5(DHCP) 등 Static으로 설정된 모든 호스트와의 충돌을 피하기 위해 안전하게 40번부터 시작한다. |
| Subnet Mask | 255.255.255.192 | Network#1의 서브넷 마스크 (/26) |
| Number of Users |
25 | 할당 개수 제한: 자동으로 IP를 받을 호스트 수를 20대로 제한한다. |

위와 같이 작성하고 Save를 누르면 설정이 끝난다.
💡DHCP 서버에서 서브넷 마스크를 반드시 설정하고 클라이언트에게 전달해야 하는 이유는 클라이언트가 할당받은 IP 주소만으로는 자신이 속한 네트워크의 범위가 어디까지인지 알 수 없기 때문이다.
1️⃣ 로컬(Local)과 외부(Remote) 네트워크의 판별
호스트가 다른 기기와 통신하려고 할 때, 가장 먼저 판단해야 하는 것이 "상대방이 나와 같은 네트워크(로컬)에 있는가, 아니면 다른 네트워크(외부)에 있는가?"이다.
- 서브넷 마스크가 있는 경우: 클라이언트는 자신의 IP와 목적지 IP를 서브넷 마스크와 AND 연산하여 네트워크 주소를 비교한다.
- 네트워크 주소가 같다면: 같은 네트워크이므로 ARP를 통해 상대방의 MAC 주소를 직접 찾아 통신한다.
- 네트워크 주소가 다르다면: 다른 네트워크이므로 패킷을 디폴트 게이트웨이(라우터)에 던진다.
- 서브넷 마스크가 없는 경우: 클라이언트는 상대방이 옆에 있는지 라우터 너머에 있는지 알 방법이 없다. 결국 모든 패킷을 게이트웨이로 보내거나, 아예 통신을 시작하지 못하는 불능 상태가 된다.
2️⃣ 브로드캐스트(Broadcast) 주소 계산
네트워크 내의 모든 장비에게 신호를 보내는 브로드캐스트 주소는 서브넷 마스크를 통해 결정된다.
예를 들어 IP가 192.168.100.40일 때:
- 마스크가 255.255.255.0(/24)이면 브로드캐스트 주소는 192.168.100.255가 됩니다.
- 마스크가 255.255.255.192(/26)이면 브로드캐스트 주소는 192.168.100.63이 됩니다.
서브넷 마스크가 없으면 클라이언트는 브로드캐스트 패킷을 어디까지 뿌려야 할지 알 수 없으며, 이는 DHCP 갱신(Renewal)이나 ARP 동작 등 네트워크의 필수 기능들을 마비시킨다.
3️⃣ 유효한 호스트 범위의 확정
DHCP 서버가 배포하는 Start IP Address와 Maximum Number of Users 설정이 유효하려면, 해당 주소들이 논리적으로 하나의 서브넷 안에 묶여 있어야 한다.
서브넷 마스크는 이 서브넷의 물리적인 울타리 역할을 한다.
🔵 결과 확인
Laptop2의 IP 설정을 DHCP로 바꾼 뒤, 웹 브라우저 주소창에 naver.com을 입력했을 때 페이지가 뜨면 성공이다.


다른 호스트에서도 DNS 서버를 설정하고 같은 테스트를 해볼 수 있다.
이번에는 Network#2에 있는 Laptop1의 DNS 서버를 192.168.100.133으로 수동 설정해준 뒤 웹 브라우저에서 daum.net에 접속해 본다.


💡 DHCP와 다른 네트워크에 있는 클라이언트는 DHCP 응답을 받을 수 있을까?
현재 상태로는 네트워크 2에 있는 클라이언트는 DHCP 서버의 응답을 받을 수 없다.
DHCP 과정의 첫 단계인 DHCP Discover 메시지는 목적지 IP가 255.255.255.255인 브로드캐스트(Broadcast) 패킷이다.
- 브로드캐스트의 특성: 같은 네트워크 안에 있는 모든 장비에게 IP를 달라고 외치는 것이다.
- 라우터의 역할: 라우터의 가장 중요한 임무 중 하나는 브로드캐스트 패킷이 다른 네트워크로 넘어가지 못하게 차단하는 것이다.
따라서 네트워크 2의 클라이언트가 보낸 요청은 Router3에서 멈추게 되고, 네트워크 1에 있는 DHCP 서버까지 도달할 수 없다.
'Journey to Security > 네트워크' 카테고리의 다른 글
| [Cisco Packet Tracer]L2 보안의 시작, 포트 시큐리티(Port Security) (0) | 2026.03.16 |
|---|---|
| [Cisco Packet Tracer] 스위치 VLAN 관리의 자동화, VTP(VLAN Trunking Protocol) (0) | 2026.03.16 |
| [Cisco Packet Tracer] 정적 라우팅(Static Routing) & 디폴트 라우트(Default Route) (0) | 2026.03.15 |
| L2 스위치와 L3 스위치에서 각각 IP주소 설정하기 (0) | 2026.03.15 |
| VLAN이 필요한 이유와 두 가지 Inter-VLAN 방식에 대해 알아보자. (0) | 2026.03.14 |