ARP(Address Resolution Protocol)

  • 주소를 재 해석 해주는 프로토콜
  • 논리적인 주소(IP)를 기반으로 물리적인 주소(MAC)를 알아오는 기술
  • 3계층 프로토콜 이지만 IP 하위에서 동작하는 프로토콜
  • 특정 프로그램에 의해 호출되었을 때만 동작 한다.
    • 주로 목적지 MAC 주소를 확인할 때 사용 된다.
  • 다양한 네트워크 환경에서 동작할 수 있음
  • ARP 동작
    • Request -> Broadcast
    • Reply -> Unicast

ARP 종류

  • ARP
    • 논리적인 주소에 해당하는 장비의 물리적인 주소를 획득
  • RARP
    • 물리적인 주소에 해당하는 장비의 논리적인 주소를 획득
  • Gratuitous ARP
    • IP 충돌 감지
    • Gateway 이중화
  • Proxy ARP
    • IP대역은 같지만 물리적인 장비로 분리된 네트워크 통신을 위해 사용 된다.

ARP Header

  • Header 크기 -> 28bytes(Ethernet 환경에서 사용된 경우)
  • 일반적으로 상위 계층이 존재하지 않으며 필요에 따라 운영체제에 의해 호출되어 사용된다.

arp1

0~4bytes Field

arp2

  • Hardware Type(2bytes)
    • ARP가 동작할 Network 환경 정보
    • Ethernet 환경에서는 MAC주소(1번 코드)

    arp3

  • Protocol Type (2bytes)
    • 논리적인 주소의 종류
    • 일반적으로 IPv4주소(0x0800)

5~8bytes Field

arp4

  • Hardware Address Length(1byte)
    • 지정된 물리적 주소의 크기 값 : MAC 주소의 크기(6bytes)
  • Protocol Address Length(1byte)
    • 지정된 논리적 주소의 크기 값 : IP 주소의 크기(4BYTES)

arp5

  • Opcode(2bytes)
    • ARP Packet의 종류
    • ARP Packet이 수행하는 동작이 지정 된다.

9~18bytes Field

arp6

  • Sender(Source)Hardware Address (6bytes)
    • 보내는 시스템의 물리적 주소
    • 자신의 MAC 주소
  • Sender Protocol Address (4bytes)
    • 보내는 시스템의 논리적 주소
    • 자신의 IP 주소

19~28bytes Field

arp7

  • Target(Destination) Hardware Address(6bytes)
    • 받는 시스템의 물리적 주소
    • 모르는 경우 00:00:00:00:00:00 값이 들어간다.
      • 일반적으로 ARP Request Packet은 물리적 주소를 몰라서 보내는 것이기 때문에 기본 00:00:00:00:00:00 값
  • Target Protocol Address(4bytes)
    • 받는 시스템의 논리적 주소
    • 상대방의 IP 주소

ARP 동작 과정

arp8

arp9

arp10

arp11

ARP Cache

  • 시스템에서 사용할 IP에 해당하는 MAC주소를 일시적으로 저장하는 기능
  • 통신 속도의 향상을 위해 사용 된다.
  • 동적으로 알아온 정보는 일정 시간이 지나면 사라짐

ARP Cache Table

  • ARP Cache 정보를 기억하는 저장 공간 -> Memory

ARP Cache 종류

  • 동적(dynamic) -> ARP에 의해 획득된 정보
  • 정적(Static) -> 시스템에 의해 미리 지정된 정보

arp12

ARP 명령어

  • 운영체제에서 기본적으로 지원되는 ARP 관리 프로그램
-a ARP table 전체 정보 확인
-s 정적 정보 등록(관리자 권한)
-d ARP table 초기화
-d 해당 정보 하나만 삭제

netsh 명령어

  • Windows에서 네트워크의 전반적인 관리를 지원하는 프로그램
  • Windows 7부터 기존의 ARP를 이용한 관리가 제한 된다.
netsh interface ip show neighbors “interface” [ip] ARP table 정보확인
netsh interface ip add neighbors “interface” 정적 정보 등록(관리자 권한)
netsh interface ip delete neighbors “interface” ARP table 초기화
netsh interface ip delete neighbors “interface” 해당 정보 하나만 삭제