ARP(Address Resolution Protocol)는 IP 주소를 기반으로 해당 IP에 대응하는 MAC 주소를 찾는 프로토콜이다. 네트워크에서 장치 간 통신이 이루어질 때, 패킷을 목적지까지 전달하기 위해 MAC 주소를 알아내는 과정이 필요하다.

ARP의 역할

  1. IP 주소를 MAC 주소로 변환
  2. 네트워크 내에서 직접 통신 가능한 장치 식별
  3. ARP 캐싱을 통한 성능 최적화
  4. 중복된 IP 충돌 감지(Gratuitous ARP 사용)

ARP 동작 과정

1. ARP 요청 (ARP Request)

호스트가 목적지 IP 주소를 알고 있지만, MAC 주소를 모를 경우 네트워크에 ARP 요청을 브로드캐스트한다.

  • 송신 MAC 주소: 요청을 보낸 장치의 MAC 주소
  • 수신 MAC 주소: FF:FF:FF:FF:FF:FF (브로드캐스트)
  • 송신 IP 주소: 요청을 보낸 장치의 IP 주소
  • 수신 IP 주소: 목적지 장치의 IP 주소

2. ARP 응답 (ARP Reply)

목적지 IP를 가진 장치는 자신의 MAC 주소를 응답으로 보낸다.

  • 송신 MAC 주소: 목적지 장치의 MAC 주소
  • 수신 MAC 주소: 요청을 보낸 장치의 MAC 주소
  • 송신 IP 주소: 목적지 장치의 IP 주소
  • 수신 IP 주소: 요청을 보낸 장치의 IP 주소

이후 송신자는 MAC 주소를 캐시에 저장하여 다음 요청 시 빠르게 접근할 수 있다.

ARP 캐시와 TTL

ARP는 성능을 위해 MAC 주소를 캐시에 저장하며, 일정 시간이 지나면 정보가 만료된다. 이를 TTL(Time To Live) 라고 한다. 만료된 MAC 주소 정보는 다시 ARP 요청을 통해 갱신된다.

  • 동적 ARP 캐시: 자동으로 학습한 MAC 주소, 일정 시간이 지나면 삭제됨.
  • 정적 ARP 캐시: 관리자가 수동으로 설정한 MAC 주소, 영구적으로 유지됨.

ARP의 문제점과 보안 이슈

ARP는 보안 기능이 없기 때문에 다음과 같은 공격에 취약하다.

  • ARP 스푸핑(ARP Spoofing): 공격자가 가짜 MAC 주소를 응답하여 트래픽을 가로챌 수 있음.
  • MITM(Man-in-the-Middle) 공격: ARP 스푸핑을 이용해 중간에서 통신 내용을 감청할 수 있음.
  • 캐시 포이즈닝(Cache Poisoning): 잘못된 MAC 정보를 캐시에 저장하여 네트워크 장애를 유발할 수 있음.

ARP 보안 강화 방법

  1. 정적 ARP 테이블 사용: 중요한 장치에 대해 수동으로 MAC 주소를 등록
  2. ARP 감시 기능 활용(ARP Inspection): 스위치에서 허가되지 않은 ARP 패킷 차단
  3. VPN과 같은 보안 터널링 사용: 신뢰할 수 없는 네트워크에서 ARP 스푸핑 방지

마치며

ARP는 네트워크 통신에서 필수적인 프로토콜이지만, 보안 취약점도 존재한다. 네트워크 관리자는 ARP의 동작 원리를 이해하고 보안 대책을 마련하는 것이 중요하다.