ARP (Address Resolution Protocol)


ARP (주소 해석/결정 프로토콜)

1. ARP 란?

  • 논리적인 IP 주소를 (network layer), 물리적인 MAC 주소로 (datalink layer) 연결시켜주는 역할을 하는 프로토콜
  • Layer 3 network, layer 2 datalink 계층에서 실행: IP 주소와 MAC 주소를 모두 다룬다.

2. 라우터 상의 ARP 동작

  • ARP 요청
    • 만일 이전에 전혀 통신한 경험이 없는 LAN(서브네트워크)의 라우터에 외부로부터 데이터 패킷이 전달되어 목적지 호스트를 찾을때,
    • 라우터가 최초로 하는 일은 ARP Request packet(ARP 요청 패킷)을 LAN의 전체 노드에 송출함 (broadcast)
    • 이때, APP 요청 메세지에는,
      . 송신자 자신의 MAC 주소 및 IP 주소, 목적지 IP 주소를 채우지만,
      . 목적지의 MAC 주소는 0 으로 채워넣음
  • ARP 응답
    • ARP 요청 패킷에 포함된 IP 주소와 일치하는 Host는 자신의 IP 주소 및 물리주소를 채워넣은 ARP Reply packet(ARP 응답패킷)을 해당 라우터에게 송출(unicast)함으로써,
    • 물리 주소 및 IP 주소 상호간의 관련 정보를 얻게됨

3. ARP 테이블(캐쉬)

  • ARP 테이블을 최신으로 유지
    • 각 노드(node)는 ARP의 효율적 수행을 위해 ARP 캐쉬를 최신으로 유지하는 일이 필수
    • 캐쉬의 각 항목은 새로이 생긴 후로 20분이 지나면 자동적으로 소멸 (RFC 1122)
    • 따라서, 자주 사용되는 곳은 ARP cache를 통해 즉각적으로 조회가 가능
  • ARP 트래픽 경감
    • 만약 ARP 테이블에 조회되는 자료가 없는 경우에만 ARP request packet (ARP 요청 패킷) 을 송출하게 되어 전체적으로 LAN 트래픽을 경감시킴
  • ARP 테이블 관련 명령어
    • ARP 테이블 내용 확인
      . (리눅스, 윈도우즈 등) arp -a
      .. IP 주소(호스트 이름), MAC 주소, 유형(동적,정적) 등
      . (시스코 장비) show ip arp
    • ARP 테이블 삭제 명령어 : (리눅스, 윈도우즈 등) arp -d

3. ARP 패킷 구조

  • 패킷 구조
    [출처: 정보통신기술용어해설]
  • 패킷 필드 설명
    • Hardware type (2 bytes): 사용중인 Hardware 주소 타입을 나타내는 필드.
      네트워크 유형을 나타냄.
      • 1 = Ethernet (10Mb) (0x0001)
      • 2 = Experimental Ethernet (3Mb)
      • 6 = IEEE 802 Networks
      • 11 = LocalTalk
    • Protocol type (2 bytes): 어떠한 유형의 프로토콜(IPv4,IPv6,ATM등)을 사용하는가 정의
      예) 0x0800은 IPv4 를 의미
    • Hardware length (HLEN) (Hardware Address Size) (1 byte): 이더넷의 경우 6
    • Protocol Length (1 byte): 논리 주소인 망계층 주소의 크기, IPv4는 4
    • Operation Code (2 bytes): 현재 ARP 패킷이 다음중 어떤 종류인지를 가르킴
      • 1 = ARP Request(요청)
      • 2 = ARP Reply(응답)
      • 3 = RARP Request(요청)
      • 4 = RARP Reply(응답)
    • Sender Hardware Address (Source MAC Address) (6 bytes)
    • Sender Protocol Address (Source IP Address) (4 bytes)
    • Target Hardware Address (Destination MAC Address) (6 bytes)
    • Target Protocol Address (Destination IP Address) (4 bytes)

참고 사항

  • MAC(Media Access Control) address: NIC(Network Interface Card)에 부여된 고유번호.
    [출처: Wikipedia] LAN과 WLAN MAC Address
  • PPP(Point-to-Point Protocol)와 같은 점대점 링크에서는 ARP가 사용되지 않음
    PPP가 브로드캐스트 형 인터페이스가 아니므로 ARP가 적용되지 않음
  • ARP 패킷은 3계층(네트워크계층)을 통해 타 네트워크로 넘어 갈 수 없음
  • 기타 참고할 만한 용어: Proxy ARP, Gratuitous ARP, RARP 등
    - GARP(Gratuitous ARP): 마스터가 된 노드(router)는 GARP 패킷을 전송한다. GARP를 수신한 노드들은 받은 IP와 MAC 주소를 테이블에 저장한다. IP 충돌 감지 기능이 있고, VRRP에서 사용된다.
    - RARP(Reverse Address Resolution Protocol): MAC 주소로 IP 주소를 알아내는 프로토콜
  • ARP 관련 표준
    - IPv4 RFC 826,1122 (Requirements for internet hosts - communication layers, 1989)
    - IPv6 NDP라고하여 ICMPv6에 포함됨 RFC 4861

출처/참고자료


Email 返事がかかってなれば、メールでお知らせします。