ARP

0

네트워크

목록 보기
1/8

ARP, Address Resolution Protocol.

IP주소와 MAC주소는 "서로 다른" 주소 체계이다. 하지만 통신에 있어서는 두가지 모두 필요하기 때문에, 각 주소 체계는 서로 연결될 필요가 있다.
이러한 연결의 역할은 ARP가 수행한다. IP주소를 전송하면, 그에 해당하는 MAC주소를 수신하는 과정이 진행된다.

ARP는 IPv4에서만 사용된다.
(IPv6는 NDP[Neighbor Discovery Protocol]를 사용한다.)

  • RARP (Reverse ARP. 이름 뜻 그대로 MAC주소를 전송하면, IP주소를 수신한다.)

그럼 게시글에서는 1. 진행과정 2. ARP 헤더 구조 에 대해서 살펴보자.

진행 과정

  1. 우선, 패킷을 전송 할 때, 서브넷 마스크를 기준으로 발신지와 목적지의 Network ID (IP = > Network ID, Host ID로 구분됨)를 확인하여 스위칭의 대상 / 라우팅의 대상 인지를 판단한다.

  2. 그 후, ARP Cache Table에 접근해 목적지의 MAC주소를 검색한다. 이 때 접근을 2가지로 구분할 수 있다. 스위칭의 대상/라우팅의 대상.
    스위칭의 대상이라면 실제 목적지 IP주소에 해당하는 MAC주소를, 라우팅의 대상이라면 라우터 IP에 해당하는 MAC주소를 Table에서 검색한다.

  3. ARP 캐시 테이블에 목적지 MAC주소가 있다면, 질의가 "당연하게도" 필요가 없다. 아는데 왜 물어봐? ARP 프로토콜은 "모를 때" 활용된다. 즉, 테이블에 MAC주소가 없다면 ARP요청(MAC주소를 알고 싶은 "IP"는 누가 가지고 있나요?, 해당한다면 동봉된 송신자 IP로 답신 주세요) 을 Broadcast(FF:FF:FF:FF:FF:FF)로 전송한다.

  4. 그럼 이 Broadcast를 수신한 호스트들은 해당 IP주소가 자기의 것과 일치한다면 ARP 응답 메시지(내가 그 IP를 사용하고, MAC주소는 이거에요)를 생성하고 메시지의 송신자에게 전송한다.

  5. 송신자는 수신자로부터 응답되는 메시지를 확인하고, 수신자의 MAC주소를 확인할 수 있다. 또 ARP Cache Table에 기록해서, Overload를 줄인다. 매번 MAC주소를 알자고 Broadcast를 전송할 수는 없지 않나.

ARP 헤더

Hardware Type : Network Type을 의미. 일반적으로 0x00001
Protocol Type : Protocol을 정의. IPv4는 0x0800
Hardware Address Length : MAC주소 길이 정의 Ethernet에서는 6byte(48bit)
Protocol Address Length : Protocol의 길이를 정의. IPv4는 4byte
Opcode : ARP의 용도를 구분한다. [1(ARP Request), 2(ARP Reply), 3(RARP Request), 4(RARP Reply)]
Source Hardware Address : 출발지 MAC 주소
Source Protocol Address : 출발지 IP 주소
Destination Hardware Address : 목적지 MAC 주소
Destination Protocol Address : 목적지 IP 주소


MAC주소는 48bit고, 앞의 24bit는 OUI(제조사 식별정보), 뒤의 24bit는 NIC(네트워크 식별자)

출처/참조 : 해킹 입문자를 위한 TCP/IP 이론과 보안 (오동진, 에이콘)

0개의 댓글