반응형
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.
- https://coding-factory.tistory.com/720
- https://www.stevenjlee.net/2020/06/07/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-arp-address-resolution-protocol-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C/
🙋♂️ 궁금한 점이나 잘못된 내용을 댓글로 적어주시면 감사하겠습니다 !!
반응형
'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 |