Address resolution protocol

(ARP에서 넘어옴)

개요

주소 결정 프로토콜(Adress Resolution Protocol)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드 주소를 뜻한다. 링크 계층과 네트워크 계층을 중재하는 모호함이 있지만, ARP프로토콜은 네트워크 계층에 분류하는 경향이 강하다.

이를테면, IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다. 즉 질의 ARP 메시지는 브로드캐스트 프레임으로 전송되며, 응답 ARP 매시지는 표준 프레임으로 전송된다. 또한 ARP는 플러그 앤 플레이이다. 즉 ARP 테이블이 자동으로 구축되는 것이다. 연결이 끓어지면, 그 호스트에 대한 엔트리는 그 서브넷의 다른 ARP 테이블에서 결국은 제거된다.

이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용된다. ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP를 사용한다.

ARP 헤더필드 (ARP Header) 내용

  • Hardware Type (HTYPE)  : 네트워크 유형을 정의하며, Ethernet 환경의 경우 0x0001 으로 세팅
  • Protocol Type (PTYPE)  : 프로토콜을 정의하며, IP 프로토콜 버전4(IPv4)의 경우 0x0800 세팅
  • Hardware Length (HLEN)  : MAC주소의 길이를 정의하며, Ethernet 환경의 경우 6 byte 세팅
  • Protocol Length (PLEN)  : 프로토콜의 길이를 정의하며, IPv4 의 경우 4 byte 세팅
  • Operation (OPER)  : 패킷의 유형이며, ARP 요청(ARP Request)의 경우 1, ARP 응답 (ARP Reply)의 경우 2 세팅
  • Sender Hardware Address (SHA)  : 발신자의 MAC 주소 세팅
  • Sender Protocol Address (SPA)  : 발신자 IP 주소 세팅
  • Target Hardware Address (THA)  : 목적지 MAC 주소, 그러나 ARP Request 의 경우 알 수 없음
  • Target Protocol Address (TPA)  : 목적지 IP 주소 세팅

ARP 테이블

ARP테이블은 IP주소와 MAC주소의 매핑 정보를 포함한다. 또한 TTL을 가지고 있다. 이 테이블에 서브넷상의 모든 호스트와 라우터에 대한 엔트리를 가지고 있지 않아도 된다. 일반적인 엔트리의 종료 시간은 엔트리가 ARP테이블에 들어간 후 20분이다.

ARP 브로드캐스트 (ARP Broadcast)

동일한 세그먼트(segment) 상에서 다른 시스템과 통신을 하는 경우에 프로토콜 주소(IP)를 이용한 통신이 아닌 MAC 주소를 이용해 통신을 하게 된다. 이때 동일 네트워크에 대한 구분은 IP주소 부여시 할당되는 서브넷 마스크(Subnet Mask)를 통해 구분한다.

보안 문제

ARP 정보는 누가 보냈는지를 검증할 수 있는 수단이 없기 때문에, 만약 같은 네트워크 상에 있는 사용자가 변조된 정보를 보낼 경우 그 정보를 받은 사용자는 잘못된 맥 주소로 패킷을 보내게 된다. 이를 이용한 공격에는 ARP 스푸핑이 있다.

표준 문서

  • RFC 826 - Ethernet Address Resolution Protocol, Internet Standard STD 37.
  • RFC 903 - Reverse Address Resolution Protocol, Internet Standard STD 38.
  • RFC 2390 - Inverse Address Resolution Protocol, draft standard
  • RFC 5227 - IPv4 Address Conflict Detection, proposed standard