본문 바로가기
Common/Network

ARP(Address Resolution Protocol)란? - 개념과 동작원리

by 근육곰돌이 2018. 11. 27.
728x90

ARP ?

주소 결정 프로토콜(Address Resolution Protocol)

해당 IP를 그 IP주소에 맞는 물리적인 주소 즉, MAC주소를 가지고 오는 프로토콜입니다.

 

RARP :

역순 주소 결정 프로토콜 (Reverse Address Resolution Protocol)

ARP와 반대로 해당 MAC주소에 맞는 IP값을  알아오는 프로토콜 입니다.

 


ARP Table 확인하는 방법

명령 프롬프트 화면에서 arp -a 입력하면 ARP 테이블을 얻을  있다.



ARP 패킷 구조

1) Hardware Type

- 16bit로 ARP가 수행되고 있는 네트워크 유형을 정의

- 이더넷인 경우 값은 1로 설정됨

2) Protocol Type

- 16bit로 상위 프로토콜을 정의

- 상위 프로토콜이 IP일경우 0x0800으로 설정됨

3) Hardware Length

- 8bit로 물리주소의 길이를 바이트 단위로 정의

- 이더넷인 경우 6으로 설정

4) Protocol Length

- 8bit로 논리주소의 길이를 바이트단위로 정의

- 이더넷인 경우 4로 설정

5) Operation

- 16bit로 패킷의 유형을 정의

- ARP Request : 1, ARP Reply : 2

6) Sender Hardware Address

- 송신자의 물리주소를 나타내는 필드

- 이더넷의 경우 이필드는 6byte값

7) Sender IP Address

- 송신자의 논리주소를 나타내는 필드

- IP프로토콜인 경우 4byte값

8) Target Hardware Address

- 목적지 시스템의 물리주소를 정의

- 이더넷의 경우 6byte값

- ARP Request인 경우 송신자는 목적지 시스템의 물리주소를 알 없어, 모두 0으로 설정

9) Target IP Address

- 목적지 시스템의 논리주소를 정의

- IP 프로토콜의 경우 4byte값



ARP 동작 원리

- 송신자는 목적지 물리주소가 필요하므로, 물리주소 요청을 위한 ARP요청 패킷을 브로드캐스트로 전송.

(브로드캐스트를 하는 이유는 목적지의 물리주소를 모르므로 모두에게 요청함.)

(요청 패킷에는 수신자가 수신자 주소를 응답할 때 필요한 송신자 주소가 포함)

 

- 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신함.

 

- 해당되는 수신자만 자신의 논리주소와 물리주소를 넣어 응답 패킷을 유니캐스트로 전송.



ARP 동작 과정

1) 송신자는 목적지 IP Address를 지정해 패킷 송신

2) IP 프로토콜이 ARP 프로토콜에게 ARP Request 메시지를 생성하도록 요청

= ARP 요청 메시지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소)

3) 메시지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation 됨

= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정

4) 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달


5) 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메시지를 보냄

= 자신의 물리주소를 포함하는 응답 메시지

6) 최초 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득

cf) ARP 요청은 브로드캐스트, ARP 응답은 유니캐스트




ARP 패킷 분석

ARP request 패킷분석

Destination : Ethernet Frame에서 사용하는 항목으로, 물리주소(MAC주소) 기록됨

opcode : ARP request 요청임을 알수 있음. (request or reply 2개뿐임)

Target MAC address : 해당 목적지의 MAC 주소를 기록함. 아직 목적지 MAC 주소를 모르므로 0으로 값을 채워서 보냄.



ARP reply 패킷분석

source : 송신자의 물리주소(MAC주소)를 Ethernet 의 frame에 적어준다.

opcode : ARP Reply 패킷임을 알려줌.

sender MAC address : 요청 받은 호스트에서 MAC 정보를  (arp request 보낸)호스트에게 알려준다.





추가적인 ARP Spoofing공격 관련된 포스팅은 다음 페이지로 참고해주세요.~^^

2018/11/27 - [IT 이야기/Network ] - ARP spoofing 공격에 대해 (ARP 스푸핑 공격).


반응형