← 글 목록

ARP — 주소 결정 프로토콜

ARP(Address Resolution Protocol)는 IP 주소를 MAC 주소로 변환하는 프로토콜입니다.

ARP가 필요한 이유

네트워크 통신은 두 단계로 이루어집니다. IP 계층은 IP 주소로 목적지를 찾고, 데이터링크 계층은 MAC 주소로 실제 전송합니다. 라우팅으로 목적지 IP를 알아도, 같은 네트워크 안에서 실제 패킷을 전달하려면 MAC 주소가 필요합니다. ARP가 이 변환을 담당합니다.

MAC 주소

제조사에 의해 장치에 영구적으로 할당됩니다. 전 세계적으로 고유하며 변경하기 어렵습니다. 같은 네트워크 내 통신에서 사용됩니다.

ARP 동작 과정

1. 호스트 A가 192.168.1.5에 데이터 전송 시도
2. A의 ARP 테이블(캐시)에 해당 IP 없음
3. A → 브로드캐스트: "192.168.1.5의 MAC 주소를 알고 있나요?"
4. 192.168.1.5인 호스트 B → A: "저의 MAC 주소는 AA:BB:CC:DD:EE:FF 입니다"
5. A: ARP 테이블에 192.168.1.5 → AA:BB:CC:DD:EE:FF 저장
6. 이후 해당 IP 통신 시 캐시 사용

ARP 캐시 테이블

매번 ARP 요청을 보내는 것은 비효율적입니다. 한 번 조회한 결과를 ARP 캐시에 일정 시간 보관하여 재사용합니다.

Windows에서 ARP 테이블 확인:

arp -a

항목은 일정 시간(보통 수 분) 후 자동으로 만료됩니다.

ARP 스푸핑

공격자가 "저는 게이트웨이입니다"라는 가짜 ARP 응답을 보내면, 피해자의 트래픽이 공격자를 거쳐 흐릅니다. 중간자 공격(MITM)으로 트래픽을 도청하거나 변조할 수 있습니다.

HTTPS를 사용하면 ARP 스푸핑으로 트래픽을 가로채도 암호화되어 있어 내용을 볼 수 없습니다.

무상 ARP (Gratuitous ARP)

자신의 IP를 대상으로 ARP 요청을 보냅니다. 네트워크 인터페이스 초기화 시 IP 충돌 감지와 주변 장치의 ARP 캐시 업데이트에 사용됩니다.