본문 바로가기
Network tech/ARP

[ARP] IP 주소와 MAC 주소를 대응시키는 프로토콜

by 어깨 :) 2023. 7. 30.
728x90

1. ARP란?

TCP/IP에서는 IP 주소를 지정해서 데이터(IP 패킷)를 전송합니다. IP 패킷은 PC나 서버 등의 인터페이스까지 전송되어 갑니다. PC나 서버 등의 인터페이스는 MAC 주소로 식별합니다. TCP/IP의 IP 주소와 인터페이스를 식별하기 위한 MAC 주소를 대응시키는 것이 ARP의 역할입니다.

이더넷 인터페이스에서 IP 패킷을 내보낼 때는 이더넷 헤더를 덧붙입니다. 이더넷 헤더에는 목적지 MAC 주소를 지정해야만 합니다. 목적지 IP 주소에 대응하는 MAC 주소를 구하기 위해서 ARP를 이용합니다. 또한, IP 주소와 MAC 주소를 대응시키는 것을 가리켜 주소 해석이라고 합니다. 이더넷에 관해서는 다음 시간에 설명해 보도록 하겠습니다.

 

 

2. ARP Table

CMD(명령 프롬프트)에서 arp -a 명령어를 통해 ARP Table값을 가지고 올 수 있습니다. ARP Table은 일종의 캐시 테이블로써 자신이 속한 서브넷 마스크 영역(브로드캐스트 영역 or 하나의 라우터를 거치기 전 로컬 영역)에 있는 호스트 혹은 라우터들의 IP 주소와 MAC 주소가 적혀 있습니다. 따라서 이 ARP Table을 보면 목적지 IP 주소에 맞는 목적지 MAC 주소를 손쉽게 알아낼 수가 있습니다. 이 테이블에는 유효기간 TTL(Time-to-Live)이 존재합니다. TTL은 해당 데이터의 유효기간을 나타내는 시간으로 보통 15~20분이 유효한 최대 시간입니다. 이 시간이 지나게 되면 ARP Table에서 그 데이터는 사라지게 됩니다.

 

패킷 네트워크에서는 큰 데이터를 잘라 전송하므로 여러 개의 패킷을 전송해야 합니다. 패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 크게 저하되므로 메모리에 이 정보를 저장해 두고 재사용합니다. 성능 유지를 위해서는 ARP 테이블을 오래 유지하는 것이 좋지만 논리 주소는 언제든지 바뀔 수 있으므로 일정 시간 동안 통신이 없으면 이 테이블은 삭제됩니다.

 

 

 

 

3. ARP Packet

Ethernet destination addr : 이더넷 목적지 주소로 FF-FF-FF-FF-FF-FF(브로드캐스트 주소)로 설정

Ethernet source addr : ARP 패킷을 송신하는 호스트 MAC 주소

frame type : 프레임 타입 필트로 ARP request/reply 프레임의 경우 0x8060

hard type : MAC 주소의 유형을 나타낸다. 이더넷의 경우 1

prot type : 프로토콜 유형으로 ip의 경우 0x0800

hard size : MAC 주소의 길이를 byte로

prot size : 프로토콜 주소의 길이를 byte로

op : Operation Field로 수행할 동작을 의미

1 - ARP request

2 - ARP reply

3 - RARP request

4 - RARP reply

 

 

 

4. 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 요청일 경우 1, ARP 응답일 경우 2 세팅

Sender Hardware Address (SHA) : 발신자의 MAC 주소 세팅

Sender Protocol Address (SPA) : 발신자 IP 주소 세팅

Target Hardware Address (THA) : 목적지 MAC 주소, 그러나 ARP Request의 경우 알 수 없음

Target Protocol Address (TPA) : 목적지 IP 주소 세팅

 

 

https://coding-factory.tistory.com/720

 

[Network] ARP(주소 결정 프로토콜)에 대하여

ARP(주소 결정 프로토콜)이란? 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용됩니다. 처음 통신을 시작할 때는 상대방의 Mac Address를

coding-factory.tistory.com

 

 

ARP 프로토콜은 TCP/IP 프로토콜 스택을 위해서만 동작하는 것은 아닙니다. TCP-이더넷 프로토콜과 같이 3 계층 논리적 주소와 2 계층 물리적 주소 사이에 관계가 없는 프로토콜에서 ARP 프로토콜과 같은 메커니즘을 사용해 물리적 주소와 논리적 주소를 연결합니다.

호스트에서 아무 통신이 없다가 처음 통신을 시도하면 패킷을 바로 캡슐화할 수 없습니다. 통신을 시도할 때 출발지와 목적지 IP 주소는 미리 알고 있어 캡슐화하는 데 문제가 없지만 상대방의 MAC 주소를 알 수 없어 2 계층 캡슐화를 수행할 수 없습니다. 상대방의 MAC 주소를 알아내려면 ARP 브로드캐스트를 이용해 네트워크 전체에 상대방의 MAC 주소를 질의해야 합니다.

ARP 브로드캐스트를 받은 목적지는 ARP 프로토콜을 이용해 자신의 MAC 주소를 응답합니다. 이 작업이 완료되면 출발지, 목적지 둘 다 상대방에 대한 MAC 주소를 학습하고 이후 패킷이 정상적으로 인캡슐레이션 되어 상대방에게 전달될 수 있습니다.

 

※ 참고: 상위 계층에서 하위 계층으로 데이터를 보내면 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보냅니다. 이 과정을 인캡슐레이션이라 합니다.

보낸 신호를 받는 쪽에서 다시 하위 계층에서 상위 계층으로 데이터를 보냅니다. 이 과정을 디캡슐레이션이라 합니다.

윈도 명령 프롬프트에서 arp -a 명령을 입력하면 PC의 ARP 테이블 정보를 확인할 수 있습니다. ARP 프로토콜을 이용해  IP 주소와 MAC 주소를 매핑하면 "유형" 필드에 "동적"으로 표기됩니다.

 

 

 

 

5. ARP 동작 

ARP의 주소 해석 범위는 같은 네트워크 내의 IP 주소입니다. 이더넷 인터페이스로 접속된 PC 등의 기기가 IP 패킷을 송신하고자 목적지 IP 주소를 지정할 때, 자동으로 ARP가 수행됩니다. 사용자가 ARP의 동작에 특별히 신경 쓸 필요는 없지만, ARP로 주소 해석을 한다는 것은 네트워크 구조를 이해하는 데 있어 매우 중요합니다.

 

이더넷이나 무선 LAN으로 데이터를 보내려면 수신 측의 MAC 어드레스를 알고 있어야 합니다. 이때 필요한 것이 ARP(Address Resoulution Protocol)인데, 송신 측 장비는 요청 패킷에 수신 측의  IP 어드레스를 설정한 후 네트워크 전체에 브로드캐스트 합니다. 이어 이 요청을 받은 호스트들 중 수신지의 IP 어드레스가 자신의 IP 어드레스와 동일한 장비는 자신의 MAC 어드레스를 응답 패킷에 설정하여 응답하게 됩니다. 결국, 송신지 장비는 수신지 장비의 IP 어드레스 정보를 사용하여 MAC 어드레스도 알 수 있게 됩니다.

 

 

 

6. ARP 동작 예시

 

 

근거리 네트워크에서의 통신으로 R1에서 R2로 Ping을 날린다는 것으로 가정하겠습니다. 

 

 

1. R1에서 ping 1.1.1.2 명령어를 활용하여 R1에서 R2로 ping을 보내겠다는 명령을 내립니다. 

 

2. R1은 R2의 Mac주소를 알지 못하므로 R1은 브로드캐스트 주소로 설정한 ARP Request Packet을 Swich에 전송합니다.

 

3. ARP Request Packet을 받은 Switch는 자신이 연결되어 있는 모든 포트에 ARP Request Packet을 브로드 캐스팅합니다.

 

4. ARP Request Packet을 받은 R2와 R3는 자신들의 ARP Table에 R1의 Mac Address정보를 저장하고 자신의 요청 패킷인지 아닌지를 확인합니다. R3는 대상지가 아니므로 Request Frame을 폐기하고 R2는 대상지가 맞으므로 R1에게 ARP Reply Packet을 전달합니다.

 

5. R2의 Mac Address를 알게 된 R1은 R2에게 Ping을 보냅니다.

 

https://coding-factory.tistory.com/720

 

[Network] ARP(주소 결정 프로토콜)에 대하여

ARP(주소 결정 프로토콜)이란? 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용됩니다. 처음 통신을 시작할 때는 상대방의 Mac Address를

coding-factory.tistory.com

 

 

 


참고서적: 고재성, 이상훈.『IT 엔지니어를 위한 네트워크 입문』. 길벗. 2022

 

참고서적: Gene 저 , 김성훈 역. 『그림으로 배우는 네트워크』. 영진닷컴, 2020

 

참고서적: 리브로웍스 저, 신상재 옮김, 『명쾌한 설명과 풍부한 그림으로 배우는 TCP/IP 쉽게 더 쉽게』, 제어펍, 2016

728x90