-
[Network] ARP 와 RARP (MAC 주소가 필요한 이유)Network Basis 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'Network Basis' 카테고리의 다른 글
[Network] 전달한 패킷이 네트워크 장치가 수용할 수 있는 크기보다 크다면? (MTU, MSS, PMTUD) (0) 2025.01.18 [Network] 노드와 네트워크 장치, 링크와 회선 (0) 2025.01.17 [Network] CSR, SSR 개념 및 장단점 비교 (1) 2023.04.08 [Network] HTTP GET 요청의 QueryParameter 를 List 로 보내기 (0) 2023.03.12 [Network] DNS 동작원리 간단정리 (+ nslookup) (0) 2023.03.12 - 정의: