ARP(Address Resolution Protocol)는 IP 주소를 MAC 주소로 변환하는 프로토콜이다. 같은 로컬 네트워크(LAN) 안에서 패킷을 실제로 전달하려면 IP 주소(3계층)를 MAC 주소(2계층)로 매핑해야 한다.
동작 과정
목표: 192.168.1.10의 MAC 주소를 알아야 함
1. ARP Request (브로드캐스트):
"192.168.1.10의 MAC 주소는?"
→ 같은 네트워크의 모든 호스트에 전송 (ff:ff:ff:ff:ff:ff)
2. ARP Reply (유니캐스트):
192.168.1.10 → "제 MAC은 AA:BB:CC:DD:EE:FF입니다"
3. ARP 캐시에 저장:
192.168.1.10 ↔ AA:BB:CC:DD:EE:FF
(TTL: 보통 수 분~수십 분)
ARP 테이블 확인
bash
# Linux/Mac
arp -a
# 출력: ? (192.168.1.1) at aa:bb:cc:dd:ee:ff on eth0
# Windows
arp -a
# 인터넷 주소 물리적 주소 유형
# 192.168.1.1 aa-bb-cc-dd-ee-ff 동적
Gratuitous ARP
자신의 IP로 ARP Request를 보내는 것. IP 충돌 감지 및 스위치 MAC 테이블 갱신에 사용. IP가 변경되거나 새 NIC가 연결될 때 전송.
ARP 스푸핑 (ARP Spoofing)
공격자가 가짜 ARP Reply를 보내 ARP 캐시를 오염시키는 중간자(MITM) 공격. 트래픽을 가로채거나 서비스 거부에 악용.
공격자: "192.168.1.1(게이트웨이)의 MAC은 내 MAC입니다"
피해자 ARP 캐시 오염 → 피해자 트래픽이 공격자를 경유
방어: Dynamic ARP Inspection(DAI), 정적 ARP 항목.
RARP / Proxy ARP
- •RARP: MAC → IP 역방향 (DHCP로 대체됨)
- •Proxy ARP: 라우터가 다른 서브넷 호스트를 대신해 응답
관련 개념
- •DHCP — IP 주소 할당 프로토콜
- •OSI 7계층 — ARP는 2/3계층 경계
- •DNS — 도메인 → IP 변환 (ARP는 IP → MAC)
- •방화벽 — ARP 스푸핑 방어 정책