Posts ARP 개념 정리
Post
Cancel

ARP 개념 정리

ARP란?

ARP(Address Resolution Protocol)은 목적지 IP 주소의 MAC 주소를 알아내기 위한 프로토콜이다.

ARP를 사용하는 이유는 로컬 네트워크(LAN)에서 단말끼리 통신을 하기 위해서는 목적지 IP 주소와 MAC 주소를 함께 이용해야 하기 때문이다. 같은 IP 대역을 공유하는 LAN에서는 L2 스위치 하나에 여러 컴퓨터를 연결하여 구성하는데, 이때 L2 스위치는 MAC 주소를 기반으로 목적지를 보내준다.

LAN 통신에서 MAC 주소를 이용하는 이유

LAN 통신에서 목적지의 MAC 주소를 알아야 하는 이유는 뭘까? 크게 두 가지 이유가 존재한다.

  1. L2 스위치와 연결된 모든 컴퓨터에 데이터를 전송하지 않고 정확하게 원하는 목적지에만 데이터를 보내기 위해서다. 이를 이해하기 위해서는 허브와 스위치의 작동 방식의 차이를 살펴보아야 한다.
  2. IP 주소는 변할 수 있지만 MAC 주소는 고정되어있기 때문에 LAN 통신에서 장치를 식별하기에는 MAC 주소가 더 적합하다.

허브와 스위치

허브(Hub)

1.jpeg

출처: 쿠팡

이더넷 허브(Ethernet Hub)는 이더넷 네트워크에서 여러 대의 컴퓨터와 통신하기 위해 사용하는 L1 장비이다. 허브는 프레임을 이해하지 못하고 들어온 전기 신호를 그대로 모든 포트로 재생성해서 뿌려준다. 허브는 자신의 인터페이스에 연결된 컴퓨터의 MAC 주소를 저장하지 않기 때문에 패킷의 출발지와 목적지에 대한 정보를 갖고 있지 않다.

2.png

위의 그림과 같이 컴퓨터 세 대가 연결되어 있고, 컴퓨터 1 에서 컴퓨터 3으로 데이터를 전송하고자 한다면, 컴퓨터 2 도 데이터를 받는다. 그래야만 실제 목적지에 해당하는 포트 중 하나로 데이터를 보낼 수 있기 때문이다.

허브에 연결된 모든 장비는 하나의 전송 통로(버스)를 공유하기 때문에 한 번에 한 장치만 데이터를 보낼 수 있다. 만약 여러 장치가 동시에 데이터를 보내면 충돌이 발생한다. 그렇기 때문에 허브는 반이중(Half-Duplex) 통신 방식을 사용한다.

충돌(Collision)이란 두 개 이상의 데이터 신호가 섞여버려서 모든 데이터가 원래의 의미를 잃는다는 뜻이다. 컴퓨터 1 → 컴퓨터 2로 데이터를 보냈고, 컴퓨터 3 → 컴퓨터 2로 데이터를 거의 동시에 보낸다고 했을 때, 두 데이터 신호가 허브 내부와 케이블을 통해 겹치면서 충돌이 발생한다고 한다.

허브에 연결된 컴퓨터가 많아질수록 전달되는 데이터가 많아지기 때문에 전송 속도가 느려지고 충돌이 발생할 확률이 높아진다. 허브의 단점을 보완하기 위해 개발된 장비가 바로 스위치이다.

스위치(Switch)

3.jpeg

출처: 쿠팡

스위치는 허브와 외형은 비슷하지만, L2 장비이기 때문에 기능적으로는 다르게 작동한다. 스위치도 여러 컴퓨터를 하나의 네트워크로 묶어주지만, 자신의 포트에 연결된 MAC 주소를 저장하고 관리하기 때문에 출발지와 목적지 정보에 대해 파악할 수 있다. 이를 통해 한 컴퓨터에서 전송된 데이터를 모든 포트에 뿌리지 않고 목적지 포트에만 전송할 수 있다.

만약 출발지 MAC 주소가 스위치에 등록되어 있지 않으면 출발지의 MAC 주소를 포트와 함께 등록하는데, 이를 MAC 주소 학습 기능이라 한다. 이때는 허브처럼 연결된 모든 포트에 데이터를 전송하는데, 이를 플러딩(Flooding)이라 한다.

MAC 주소(Media Access Control Address)는 네트워크 인터페이스에 할당된 전 세계에서 고유한 번호이다. 사람으로 치면 주민등록번호와 같으며, MAC 주소를 사용해서 데이터를 전달한다. IEEE에서 제조사별 식별 번호를 관리하기 때문에 중복된 MAC 주소를 가질 수 없다.

스위치는 허브와 달리 대부분 전이중(Full-Duplex) 통신을 지원한다. 스위치 포트에 사용하는 UTP 케이블은 송신과 수신을 위한 선이 물리적으로 분리되어 있기 때문이다. 또한, 송신 회로와 수신 회로가 별도로 존재하기 때문에 데이터가 들어오는 경로와 나가는 경로가 전기적으로 독립되어있다. 즉, 허브처럼 여러 포트가 신호를 공유하지 않기 때문에 동시에 신호를 주고 받아도 충돌이 발생하지 않는다.

IP 주소만으로는 LAN 통신에 적합하지 않다

LAN 통신에서는 IP 주소와 MAC 주소를 모두 사용한다. 같은 네트워크 대역 안에서는 고유한 IP 주소가 할당되기 때문에 IP 주소만으로도 충분히 통신이 이루어질 것 같아 보인다. 그럼에도 불구하고, MAC 주소를 함께 사용하는 이유는 뭘까? 두 가지 이유로 정리할 수 있다.

첫째, IP 주소와 MAC 주소의 사용 목적이 다르기 때문이다. IP 주소는 같은 네트워크 대역인지, 다른 네트워크 대역인지 판단하기 위해 사용된다. 만약 다른 네트워크로 가야 하면 라우터(게이트웨이)를 거쳐야 한다. 반면, MAC 주소는 같은 네트워크 대역에서 데이터 전달 경로를 결정하기 위해서 사용된다.

그래서 송신 호스트는 요청을 보내기 전에 목적지 IP를 보고 같은 네트워크 대역인지 판단한다. 만약 같다면 목적지 MAC 주소를 알아내서 바로 전송하는데, 이때 목적지 MAC 주소를 알아내기 위해 사용하는 프로토콜이 ARP이다. 다른 네트워크 대역이라면 ARP로 목적지 MAC 주소를 알아내지 않고 목적지 MAC 주소를 게이트웨이 MAC 주소로 설정해서 보낸다.

둘째, IP 주소는 물리적 장치를 식별하지 못하기 때문이다. 예를 들어, 컴퓨터 A가 10.0.10.2 IP 주소를 사용하다가 네트워크에서 제거되고, 컴퓨터 B가 동일한 IP를 할당받았다고 해보자. 만약 LAN에서 IP 주소만으로 통신한다고 가정하면, 10.0.10.2 로 데이터를 보냈을 때 컴퓨터 A가 받았는지, 컴퓨터 B가 받았는지 보장할 방법이 없다. 그렇기 때문에 LAN 통신에서는 반드시 MAC 주소를 사용해서 고유한 물리적 장치를 식별할 필요가 있다.

ARP 수행 과정

ARP가 이루어지는 과정을 정리하면 다음과 같다.

예시 상황

  • 송신자: PC A(IP: 10.0.10.10)
  • 수신자: PC B(IP: 10.0.10.20)
  • 동일한 네트워크 대역: 10.0.10.0/26

단계별 동작

1. 목적지 IP 확인

  • PC A에서 PC B(10.0.10.20)로 데이터를 전송하고자 함.
  • PC A는 라우팅 테이블 확인해서 같은 네트워크 대역인지 판단.

2. ARP 캐시 확인

  • PC A는 ARP 캐시(ARP 테이블)에서 해당 IP의 MAC 주소를 먼저 확인.
  • 만약 MAC 주소가 이미 있다면 ARP 수행 없이 바로 전송

3. ARP Request 브로드캐스트

  • ARP 캐시에 없으면 ARP 요청 패킷 생성
  • ARP Request는 브로드캐스트 (MAC: FF-FF-FF-FF-FF-FF)로 전송
  • LAN에 있는 모든 호스트가 이 요청을 받는다.

4. ARP Reply 유니캐스트 응답

  • IP가 10.0.10.20 인 PC B만 MAC 주소를 응답.
  • ARP Reply는 유니캐스트(송신자의 MAC 주소로만 전송) 수행

5. ARP 캐시 업데이트

  • PC A는 응답 받은 MAC 주소를 ARP 캐시에 저장
  • 이후 동일 IP로 전송할 때는 ARP 없이 바로 MAC 주소 사용

6. 데이터 전송

  • MAC 주소를 알아낸 후, 이더넷 프레임의 목적지 MAC에 해당 주소를 넣어 데이터 전송

다른 네트워크 대역과 통신하는 경우

목적지 IP가 같은 네트워크 대역이라면 목적지 IP에 대한 ARP를 수행해서 목적지 MAC 주소로 바로 전송할 수 있다. 하지만, 목적지 IP가 다른 네트워크 대역에 있다면 게이트웨이(라우터)로 전송을 해야 한다. 그렇기 때문에 게이트웨이 IP에 대한 ARP를 수행하며, 목적지 MAC은 라우터의 인터페이스 MAC 주소가 된다.

동작 특징

1. 캐시 유효시간(TTL) 존재

  • 다른 장치가 같은 IP를 사용할 수 있기 때문에 일정 시간 후 ARP 캐시는 삭제된다.

2. 같은 네트워크에서만 유효

  • 다른 네트워크라면 ARP는 게이트웨이 MAC 주소를 찾는 데만 사용한다.

3. 보안 문제

  • ARP는 인증이 없어서 ARP 스푸핑 공격에 취약

APR 스푸핑은 ARP Reply를 검증 없이 캐시에 반영하기 때문에 발생한다. 인증이나 암호화가 없기 때문에 누구나 ARP Reply를 보낼 수 있다. 그래서 공격자는 ARP Reply를 위조해서 브로드캐스트하여 피해 호스트의 ARP 캐시를 조작한다. 피해 호스트는 공격자 MAC을 게이트웨이나 다른 호스트의 MAC으로 인식하는데, 이후 모든 트래픽은 공격자에게 전달이 된다.

ARP 활용 방식

GARP(Gratuitous ARP)

같은 네트워크 대역에 같은 IP 주소를 가진 장비가 있는지 확인하는 ARP 방식이다. 자신의 IP 주소와 MAC 주소를 포함한 ARP Reply를 브로드캐스트 한다. 네트워크 상의 모든 장비는 이를 받고 ARP 캐시를 갱신한다.

Proxy ARP

라우터나 게이트웨이가 다른 네트워크 대역에 있는 호스트를 대신해서 ARP Reply를 보내주는 기능이다.

동작 방식

  • 호스트 A가 ARP 요청을 브로드캐스트하면 라우터가 대신 응답한다.
  • 라우터는 자신의 MAC 주소를 보내고, 이후 실제 목적지까지 패킷을 라우팅한다.

참고자료

This post is licensed under CC BY 4.0 by the author.