Network Basis
[Network] ARP 와 RARP (MAC 주소가 필요한 이유)
DevPing9_
2025. 1. 26. 19:28
들어가기 전에
| IP 주소 | MAC 주소 | |
| 정의 | 네트워크 상에서 논리적 식별자 | 하드웨어 네트워크 인터페이스의 물리적 주소 |
| OSI 계층 | 3계층 (네트워크 계층) 패킷 전달을 위해 사용 |
2계층 (데이터 링크 계층) 프레임 전송을 위해 사용 |
| 목적 | 전 세계, 인터넷 통신 | 로컬 네트워크 내부 통신 |
| 변경 여부 | 네트워크에 따라 변경 가능 | 기본적으로 변경 불가능 (제조 시 할당) |
| 할당 방식 | 정적 또는 동적 (DHCP) | 하드웨어에서 자동 할당 |
| 역할 | 장치의 논리적 위치 식별 | 로컬 네트워크 내 데이터 전송 식별 |
개요
| ARP 와 RARP | NDP | |
| 정의 | IP 주소와 MAC 주소(장치의 물리적 주소)를 상호 변환하는 데 사용되는 프로토콜 | |
| 사용범위 | IPv4 네트워크 | IPv6 네트워크 |
IP 로만 데이터를 전송할 수는 없나? MAC 주소를 왜 꼭 알아야하는가?
대부분의 네트워크 장치는 OSI 2계층에서 동작하며, 2계층의 PDU 인 프레임을 전송하기 위하여 MAC 주소가 필요하다.
* 스위치, WAP, NIC, 브릿지, 라우터등의 네트워크장치는 보통 1~3계층까지만 구현이 되어있다.
호스트 A 에서 호스트 B 로 데이터를 전송한다고 가정하자.
호스트 A 는 여러 네트워크 장치를 거쳐 최종적으로 호스트 B에게 1계층 비트신호로 데이터를 전달하게 될 것이고, 호스트 B 는 1계층 비트신호를 7계층까지 Decapsulation 하여 A가 보내고자 했던 애플리케이션 데이터(7계층)을 추출한다.
비트신호(1계층)를 프레임(2계층)으로 변환할 때 MAC 주소가 필요하고, 프레임(2계층)을 패킷(3계층)으로 변환할 때 IP 주소가 필요하기 때문에 MAC 주소가 꼭 필요한 것이다.
ARP(Address Resolution Protocol)
- 정의:
- IP 주소를 MAC 주소로 변환하는데 사용되는 프로토콜
- 동작과정:
- 호스트 A가 특정 IP 주소에 데이터를 보내려면 해당 IP의 MAC 주소를 알아야 함
- 호스트 A는 네트워크 전체에 ARP 요청(브로드캐스트) 패킷을 보냄.
- 해당 IP를 가진 호스트 B가 자신의 MAC 주소를 포함한 ARP 응답(유니캐스트) 패킷을 전송.
- 호스트 A는 응답을 받고, IP-MAC 매핑 정보를 ARP 캐시(테이블)에 저장하여 이후에는 동일 요청을 반복하지 않음.
- 종류:
- 일반 ARP:
- 특정 IP의 MAC 주소를 찾기 위한 표준 ARP
- GARP (Gratuitous ARP):
- 중복 IP 감지 또는 ARP 캐시 갱신을 위해 자신의 정보를 네트워크에 알리는 방식
- 프록시 ARP: (시스코 Docs)
- 라우터가 다른 네트워크를 대신하여 응답 (라우터 설정에 있음)
- 일반 ARP:
- 공격 사례
- ARP 스푸핑 공격
- 공격자가 가짜 MAC 주소로 응답하여 중간자 공격 수행
- ARP 스푸핑 공격
RARP (Reverse Address Resolution Protocol)
- 정의:
- MAC 주소를 IP 주소로 변환하는데 사용되는 프로토콜
- 자신의 IP를 알지 못할 경우 사용됨
- 동작과정:
- 클라이언트는 자신의 MAC 주소만 알고 있으며 IP 주소를 알지 못함.
- 클라이언트는 네트워크에 RARP 요청(브로드캐스트)을 보냄.
- 네트워크의 RARP 서버가 요청을 수신하고, 클라이언트 MAC 주소와 일치하는 IP를 데이터베이스에서 조회.
- 서버는 클라이언트에게 해당 MAC 주소에 대한 IP 주소를 응답(유니캐스트)으로 제공.
- 단점 및 대체기술
- RARP는 구성이 복잡하고, IP 주소 할당을 위한 별도의 RARP 서버가 필요
- 현재는 DHCP (Dynamic Host Configuration Protocol)가 RARP를 대체
728x90