Cisco Packet Tracer에서 ARP와 ICMP 프로토콜의 동작을 동시에 시뮬레이션해서 패킷의 흐름을 눈으로 따라가며 익힐 수 있다.
1. 네트워크 토폴로지
먼저 시스코 패킷 트레이서에서 아래 도식과 같이 네트워크를 구성한다.

- 네트워크 대역: 192.168.1.0/24
- 중앙 장비: 2950T 스위치 1대
- 단말(end device): PC 3대(PC1, PC2, PC3)와 서버 1대
2. 단말별 MAC 및 IP 주소 설정
Packet Tracer에서 단말의 MAC 주소는 기본적으로 하드웨어 값이 입력되어 있지만, 수동으로 변경할 수 있다.
식별하기 쉬운 MAC 주소를 활용하면 패킷의 캡슐화와 역캡슐화 과정을 훨씬 직관적으로 이해할 수 있기 때문에 자동으로 부여된 주소를 쓰기 않고 직접 알아보기 쉬운 MAC 주소를 부여한다.
| 장비명 | IP 주소 | MAC 주소 (Physical Address) |
| PC1 | 192.168.1.1 | 0001.1234.5678 |
| PC2 | 192.168.1.2 | 0002.1234.5678 |
| PC3 | 192.168.1.3 | 0003.1234.5678 |
| Server | 192.168.1.4 | 0004.1234.5678 |
| Switch | - | 2950T 모델 |
🟣MAC 주소 변경:
- 각 단말(PC, Server)을 클릭하고 Config 탭으로 들어간다.
- 왼쪽 인터페이스 메뉴에서 FastEthernet0을 선택한다.
- MAC Address 입력란에 위 표에 적힌 주소(0001.1234.5678 등)를 직접 입력한다.

🟣IP 주소 설정:
- Desktop 탭의 IP Configuration을 클릭한다.
- 각 장비에 맞는 IP 주소와 서브넷 마스크(255.255.255.0)를 입력한다.

2. 시뮬레이션 모드 진입 및 필터 설정
기본적인 'Realtime' 모드에서는 패킷의 이동 과정을 실시간으로 볼 수 없다.
패킷이 이동하는 경로를 시각화하기 위해 시뮬레이션 모드로 전환해야 한다.
- 모드 전환: 화면 오른쪽 하단의 시계 모양 아이콘 옆에 있는 Simulation 탭을 클릭한다. (단축키: Shift + S)
- 필터 초기화: 기본적으로 많은 프로토콜이 체크되어 있다. Event List 하단의 Show All/None을 클릭하여 모든 체크를 해제한다.
- 필터 선택: Edit Filters 버튼을 누른 후, IPv4 탭에서 ICMP와 ARP 두 가지만 체크한다. 이제 화면에는 이 두 프로토콜 관련 이벤트만 표시된다.

3. Add Simple PDU를 이용한 패킷 생성
Cisco Packet Tracer에서 제공하는 Add Simple PDU(간단한 PDU 추가) 도구는 네트워크 연결 상태를 빠르게 검증하고 패킷의 경로를 직관적으로 이해할 수 있게 해주는 유용한 기능이다.
- 도구 활성화: 상단 도구 모음에서 편지 모양 아이콘(Add Simple PDU)을 클릭하거나 단축키 'P'를 누른다. 마우스 커서가 봉투 모양으로 바뀐다.
- 출발지 클릭: 패킷을 보낼 PC1을 클릭한다.
- 목적지 클릭: 패킷이 도달할 Server를 클릭한다.
- 패킷 생성 확인: 시뮬레이션 패널에 ICMP(파란색)와 ARP(초록색) 패킷이 대기 중인 것을 볼 수 있다.

4. 시뮬레이션 단계별 관찰 포인트
하단의 Capture/Forward (화살표 모양) 버튼을 누르며 패킷의 변화를 관찰한다.

1️⃣단계: ARP Request (Broadcast)
PC1은 서버의 IP 주소는 알지만 (목적지 IP 주소로 ping을 보내거나 도메인 이름을 사용해서 DNS를 통해 목적지 IP를 알게 됨) MAC 주소는 모른다.
따라서 먼저 ARP Request 패킷을 보낸다.
스위치는 이 패킷을 받아 자신에게 연결된 모든 장비(PC2, PC3, Server)로 뿌린다(Flooding).


2️⃣단계: ARP Reply (Unicast)
스위치로부터 패킷을 받은 PC2, PC3, Server는 각자 다음과 같은 논리 회로를 거친다.
| 단계 | 동작 과정 | PC2 (.2) / PC3 (.3) | Server (.1.4) |
| 1단계 | 겉봉투(L2) 확인 | 목적지가 브로드캐스트이므로 일단 열어봄 | 목적지가 브로드캐스트이므로 일단 열어봄 |
| 2단계 | 질문지(ARP) 확인 | "Target IP: 192.168.1.4"를 확인 | "Target IP: 192.168.1.4"를 확인 |
| 3단계 | 본인 IP와 대조 | 타겟 IP와 다름 | 타겟 IP와 같음 |
| 결과 | 최종 결정 | 패킷 폐기 (Discard/Drop) | 패킷 수락 (Accept) 및 응답 준비 |
자신의 IP가 아닌 PC2와 PC3은 패킷을 버리지만(X 표시), 서버는 자신의 IP와 일치하는 것을 보고 패킷을 수락한다.

그 다음, 자신의 MAC 주소를 담아 PC1에게 직접 응답(Reply)을 보낸다.


3️⃣단계: ICMP Echo Request
서버의 MAC 주소를 알아낸 PC1은 이제 원래 목표였던 ICMP 패킷을 서버로 전송한다.

4️⃣단계: ICMP Echo Reply
서버가 요청에 응답하여 패킷을 다시 보내면 통신이 성공하며, 시뮬레이션 창 하단에 Successful 메시지가 출력된다.


5. PDU 상세: Inbound와 Outbound 데이터
시뮬레이션 모드에서 편지봉투(PDU)를 클릭하면 PDU Information 창이 뜬다.
PDU Information 창에는 세 개의 탭이 있다.
① OSI Model 탭 (계층별 흐름)
- 해당 장비에서 패킷이 각 계층(1~7계층)을 거치며 어떤 처리가 일어나는지 시각적으로 보여준다.
- Layer 2 (Ethernet): 출발지/목적지 MAC 주소를 확인한다.


- Layer 3 (IP): 출발지/목적지 IP 주소를 확인한다.


- 하단의 설명란(Layer Details)에는 해당 계층에서 수행한 동작이 텍스트로 자세히 설명되어 있다.

② Inbound PDU Details (들어오는 패킷)
- 장비가 수신한 패킷의 상세 데이터 구조다.
- 스위치나 서버 입장에서 "나에게 전달된 봉투"의 겉면과 내용물을 뜯어보는(Decaptulation) 단계다.
③ Outbound PDU Details (나가는 패킷)
- 장비가 가공하여 내보낼 패킷의 상세 데이터 구조다.
- PC가 처음 패킷을 만들거나, 스위치가 수신한 패킷을 다음 목적지로 중계하기 위해 다시 포장한 상태(Encaptulatioin)를 보여준다.
🟢 Inbound vs Outbound 비교
가장 중요한 포인트는 장비가 데이터를 어떻게 수정했는가를 보는 것이다.
- 스위치의 경우: 스위치는 L2 장비이므로 수신한(Inbound) 패킷의 헤더를 보고 어느 포트로 내보낼지 결정한 뒤 그대로(Outbound) 보낸다. 따라서 대개 두 탭의 내용이 거의 같다.
- 라우터의 경우: 라우터는 L3 장비다. 패킷을 받으면(Inbound) 2계층 MAC 주소 헤더를 떼어내고(Decapsulation), 다음 홉(Hop)에 맞는 새로운 MAC 주소를 입혀서(Outbound) 내보낸다. 이때 두 탭의 MAC 주소 정보가 달라지는 것을 관찰할 수 있다.
6. ARP 캐시 및 MAC 테이블 관리하기
네트워크 통신이 한 번 성공하고 나면 장비들은 매번 ARP를 묻지 않기 위해 학습한 정보를 메모리에 저장한다.
실습을 반복하거나 바뀐 설정을 적용하려면 이 데이터를 조회하고 삭제하는 방법을 알아야 한다.
1️⃣ PC 및 서버 (단말 장비)
단말 장비는 IP 주소와 MAC 주소를 매칭한 ARP Table을 관리한다.
🟣ARP 테이블 조회
Command Prompt에서 다음 명령어를 입력한다.
----------------
C:\> arp -a
----------------
PC1의 Command prompt에서 이 명령을 실행하면 서버의 물리적 주소가 0004.1234.5678로 등록된 것을 확인할 수 있다.

서버 측에서도 PC1의 MAC 주소가 0002.1234.5678로 등록되어 있다.

🟣ARP 테이블 초기화 (삭제)
기존에 학습된 정보를 지우고 다시 ARP Request부터 관찰하고 싶을 때 사용한다.
C:\> arp -d
----------------

2️⃣ 스위치 (L2)
스위치는 IP 주소가 아닌, 어느 포트에 어떤 MAC 주소가 연결되어 있는지를 기록한 MAC Address Table을 관리한다.
🟣MAC 주소 테이블 조회
스위치의 CLI 탭에서 다음 명령어를 입력한다. (Privileged EXEC 모드인 # 상태여야 한다.)
-------------------------------------
show mac-address-table
-------------------------------------
실행 결과로 Fa0/1 포트에 0001.1234.5678 (PC1)이, Fa0/4 포트에 0004.1234.5678 (Server)이 연결되어 있다는 리스트가 나타난다.

🟣MAC 주소 테이블 초기화
스위치가 학습한 위치 정보를 모두 삭제한다.
clear mac-address-table dynamic
-------------------------------------

7. Aging Time: 주소 정보의 유효 기간
장비가 한 번 학습한 주소 정보를 무한히 기억한다면 메모리 부족 문제가 발생할 것이다.
이를 방지하기 위한 것이 Aging Time이다.
- 정의: 특정 시간 동안 해당 MAC 주소로부터 패킷이 들어오지 않으면, 스위치나 단말의 테이블에서 해당 항목을 자동으로 삭제하는 것이다.
- 스위치 MAC Table Aging: 2950T와 같은 시스코 스위치의 기본 Aging Time은 대개 300초(5분)이다. 통신이 끊긴 후 5분이 지나면 show mac-address-table 결과에서 해당 장비가 사라진다.
- ARP Cache Aging: 윈도우나 리눅스 같은 단말의 ARP 캐시 유지 시간은 운영체제마다 다르지만 보통 수 분에서 수십 분 정도 유지된다.
'Journey to Security > 네트워크' 카테고리의 다른 글
| [Cisco IOS] 인터브이랜(Inter-VLAN) 설정: 라우터(ROAS) vs L3 스위치(SVI) (0) | 2026.03.13 |
|---|---|
| L2 스위치의 핵심 기능 (0) | 2026.03.09 |
| [Cisco IOS] 스위치 메모리 관리 및 설정 초기화 (0) | 2026.03.07 |
| [Cisco IOS] VLAN 나누고 스위치 포트 설정해서 통신하기 (Trunk 모드) (0) | 2026.03.07 |
| [Cisco IOS] CLI 환경을 쾌적하게 세팅해주는 명령어 (0) | 2026.03.06 |