Infra/Network

# [Network] ARP ( Address Resolution Protocol )

leehi0110 2023. 8. 3. 20:38
반응형

1. ARP 란?

  • ARP ( Address Resolution Protocol ) 이란 논리적인 IP 주소 ( L3, 네트워크 계층 )를 실제 물리 주소인 MAC 주소 ( Media Access Control / L2, 데이터링크 계층 )로 바꾸어 주는 역할을 하는 '주소 해설 프로토콜' 이다.
  • 처음 통신을 시작할 때는 상대방의 MAC Address를 모르기 때문에 ARP 프로토콜을 사용하여 상대방의 MAC 주소를 알아낸다.
  • 반대로, MAC 주소를 IP 주소로 바꿔주는 역할을 하는 프로토콜을 RARP ( Reverse Address Resolution Protocol ) 이라 한다.
IP 주소 ? 인터넷에 연결되어 있는 모든 호스트나 라우터 장비의 인터페이스에 할당된 논리적인 주소
MAC 주소 ? 물리적인 네트워크 주소로, 네트워크 인터페이스 카드 ( NIC ) 에 할당된 하드웨어 고유 식별 번호

 

2. ARP를 사용하는 이유

  • 두 단말 간 통신을 위해서는 IP 주소와 MAC 주소를 이용하는데, IP 주소와 MAC Address와 매칭을 통해 목적지 IP의 단말이 소유한 MAC 주소로 찾아 갈 수 있다.
  • 비유를 들면, 논리적인 IP 주소는 사람의 이름이고 물리적인 MAC 주소는 주민등록번호기 때문에 동일한 이름 ( IP Address ) 이더라도 주민등록번호 ( MAC Address )를 통해 구별 ( 통신 ) 이 가능해진다.
IP 주소만 사용할 수 없는 이유

IP는 논리적인 주소이기 때문에 가변적이다. 사람의 이름처럼 동명이인일 수도 있고, 개명을 할 수 도 있기 때문에 IP 주소만으로는 통신이 불가능하다.

MAC 주소만 사용할 수 없는 이유

라우터를 통해 전 세계의 PC와 통신하기 위해서는 각 MAC 주소를 등록해야 되는데 저장 공간의 한계가 있다.
  • 각각의 주소만 사용하지 못하는 문제를 해결하기 위해 여러 대의 단말을 묶어 IP 주소로 만들고  MAC 주소를 거치는 ARP를 사용하게 되었다.

3. ARP 프로토콜 동작 순서

  ARP 프로토콜은 같은 네트워크에 있을 때와 그렇지 않을 때 다르게 동작한다.

  같은 네트워크 내에 있는 단말들의 MAC 주소는 스위치와 같은 중계 장치가 MAC 주소 테이블에 정보를 저장하고
      관리하고 있어 통신이 가능하다.

  Case 1 ) 같은 네트워크에 속해 있는 경우

  •   같은 네트워크 내에 있는 단말들의 MAC 주소는 중계 장치 (ex. Switch )가 주소 테이블 정보를 저정하고 관리하고 있기 때문에, 해당 정보를 이용해 통신이 가능하다.

  • A가 B와 통신하기 위해 브로드캐스팅 방식을 이용해 ARP Request를 전송한다. 이 때, B의 MAC 주소를 모르기 때문에 목적지 MAC주소를 브로드캐스트로 설정하여 전달한다

  • ARP Request Packet을 받은 Switch가 B의 MAC 주소를 가지고 있지 않다면 자신의 모든 포트에 연결된 단말에 ARP Request Packet을 전달 한다.

  • ARP Request를 전달 받은 C는 패킷을 확인 후 자신에게 온 요청이 아니기에 패킷을 폐기하고, B는 Request Packet 정보를 활용해 Reply Packet을 전달한다.

  • Reply Packet을 통해 B의 정보를 알게 된 A는 해당 정보를 이용해 B와 통신하고, ARP Table에 B의 IP 주소와 MAC 주소를 대응시켜 저장한 뒤, 추후에 사용하게 된다.
  • ARP Table 정보는 아래의 명령어로 조회 할 수 있다.
NT	: arp -a
Linux	: arp -v

  Case 2 ) 다른 네트워크에 속해 있는 경우

  • 중계 장비에서 보관하는 MAC 주소 테이블에는 다른 네트워크에 속해있는 단말의 MAC 주소가 없기 때문에 ARP 프로토콜을 이용해 IP 주소와 MAC 주소간 변환을 이용해 통신을 수행한다.

  • A는 B와 통신을 위해 같은 네트워크 대역에 브로드캐스팅 방식으로 ARP Packet을 전달한다. 이 때, 목적지 B의 MAC 주소를 모르기 때문에 기본 게이트웨이로 설정하여 전달한다.

  • 라우터는 해당 ARP Request Packet을 받고 목적지 B의 IP가 같은 네트워크에 있지 않음을 확인하고, A와 같은 네트워크 대역의 라우터 인터페이스 MAC 주소를 실어서 응답한다.

  • A는 B와 통신하기 위해 B의 IP와 응답 받은 라우터의 MAC 주소를 실어 라우터에게 ARP Request를 전달한다.

  • 라우터는 B의 IP 대역으로 패킷을 보낸 뒤, 자신도 목적지의 MAC 주소를 확인하기 위해 브로드캐스트 메시지를 전달해 요청 IP를 가진 단말이 있는지 확인한다.

  • B 단말은 자신의 IP가 목적지인 패킷을 확인하고 자신의 MAC 주소를 실어서 응답한다.

  • 이 후, 라우터를 통해 A와 B는 통신을 시작한다. 이렇게 얻어진 MAC 주소는 일정 시간 동안 저장되어 사용되고, 이를 ARP Cache라고 한다.

 

 

Ref.

 

 

🙋‍♂️ 궁금한 점이나 잘못된 내용을 댓글로 적어주시면 감사하겠습니다 !!

반응형

'Infra > Network' 카테고리의 다른 글

# [Network] Trunk ( Tagging )  (0) 2023.08.14
# [Network] VLAN  (0) 2023.08.10
# [Network] LAN ( Local Area Network )  (0) 2023.07.28
# [Network] 이더넷 (Ethernet)  (0) 2023.07.19
# [Network] DNS  (0) 2023.07.06