Address Resolution Protocol
주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드 주소를 뜻한다.
이를테면, IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다.
이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용된다. ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP를 사용한다.
ARP 정보는 누가 보냈는지를 검증할 수 있는 수단이 없기 때문에, 만약 같은 네트워크 상에 있는 사용자가 변조된 정보를 보낼 경우 그 정보를 받은 사용자는 잘못된 맥 주소로 패킷을 보내게 된다. 이를 이용한 공격에는 ARP 스푸핑이 있다.
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 Broadcast)
동일한 세그먼트(segment) 상에서 다른 시스템과 통신을 하는 경우에 프로토콜 주소(IP)를 이용한 통신이 아닌 MAC 주소를 이용해 통신을 하게 된다. 이때 동일 네트워크에 대한 구분은 IP주소 부여시 할당되는 서브넷 마스크(Subnet Mask)를 통해 구분한다.
ARP Cache Table
보안 문제
ARP 정보는 누가 보냈는지를 검증할 수 있는 수단이 없기 때문에, 만약 같은 네트워크 상에 있는 사용자가 변조된 정보를 보낼 경우 그 정보를 받은 사용자는 잘못된 맥 주소로 패킷을 보내게 된다. 이를 이용한 공격에는 ARP 스푸핑이 있다.
arp command
Flags
-
-v
- ARP 상태를 출력한다.
-
-t type
- ARP 캐시에 올라와 있는 타입을 검색한다. ether(Enternet), ax25(AX25 packet radio)등이 있으며, ether가 기본 타입이다.
-
-a [host]
- 등록된 호스트 중 지정한 호스트의 내용을 보여준다. 호스트를 지정하지 않으면 등록된 모든 호스트를 출력한다.
-
-d [host]
- 지정한 호스트를 목록에서 삭제한다.
-
-s host hardware-address
- 호스트의 하드웨어 주소. 즉, 호스트 MAC 주소를 추가한다. 이더넷 카드의 경우 6자리의 16진수로 되어 있다.
-
-f file
- 파일에 있는 목록을 추가한다.
Cache table
다음과 같이 출력된다:
Net to Media Table: IPv4
Device IP Address Mask Flags Phys Addr
------ -------------------- --------------- ----- ---------------
dmfe0 router.mynet.org 255.255.255.255 00:06:2a:77:4f:0d
dmfe0 server1.mynet.org 255.255.255.255 00:03:ba:24:de:11
dmfe0 myself 255.255.255.255 SP 00:03:ba:91:03:18
In this display, the following flags have been used:
- S == static
- P == publish (i.e., explicitly added by an arp -s command)
See also
- ARP
- ARP Spoofing
- arping - ARP 요청을 이용한 네트워크 연결을 확인한다.
- arpscan
- Network segment
Favorite site
- Wikipedia (en) ARP에 대한 설명
- 클라우드 환경에서 ARP 스푸핑 방지 메커니즘 구현하기 1
- 와이어샤크 - ARP 분석 ① (Wireshark)
- (Network) ARP와 ARP의 종류 5가지
- (리눅스 명령어)arp :: 알아두면 쓸데있는 IT 잡학사전
- ARP 쉽게 이해하기
References
-
Naver_d2_-_Implementing_ARP_anti-spoofing_mechanisms_in_a_cloud_environment.pdf ↩