본문 바로가기
[IT 관련 지식]/[Network]

Proxy ARP

by 판톰 2017. 12. 29.
반응형

개요

ARP 프로토콜은 TCP/IP stack에서 MAC 주소와 IP 주소를 대응 시키는 프로토콜이다. TCP/IP stack에서 IP 주소의 역할은 경로 설정에 관여하고 MAC주소의 역할은 패킷 전달에 사용되는 주소이다. 패킷을 전달하기 위해서는 ARP 패킷을 네트워크로 전송하여 IP에 대응되는 MAC 주소를 알아내어야 한다. Proxy ARP는 특정한 네트워크 상황하에서는 ARP 요청에 대한 응답을 받을 수 없는 경우가 있는데 이를 극복하기 위한 기능이다.


동작과정

IP 패킷이 전송될 때 아래와 같은 과정을 거친다.

1. 라우팅 테이블을 검색하여 다음 홉(next-hop)의 경로를 결정한다.
 2. 다음 홉의 MAC 주소를 ARP 테이블에서 검색하여
   a. 존재하지 않는 엔트리일 경우 3으로 이동
   b. 이미 존재하는 엔트리일 경우 4로 이동
 3. ARP request를 브로드 캐스팅 주소(FF:FF:FF:FF:FF:FF)로 전송하고 응답을 기다린다.
   a. 응답이 오면 ARP 테이블에 추가한다.
   b. 오지 않을 경우 실패
 4. 전송할 패킷의 MAC 값을 채워 전송한다.

호스트는 경로를 결정하기 위해  IP주소를 사용한다. 라우팅 테이블을 참조하여 다음으로 전송되어야 노드를 결정한다. 라우팅 테이블에 의해 결정된 IP 가진 노드로 패킷을 전송하기 위해 ARP 테이블을 검색하고 존재하지 않을 경우에는 ARP 프로토콜을 사용하여 MAC 주소를 얻게 된다.

Proxy ARP



위의 그림과 같은 경우를 생각해보자. host A는 172.16.10.100/16으로 subnet 되어 있다. Host B는 172.16.20.100/24의 주소를 가지고 있다. Host A는 자신과 동일한 네트워크 주소를 가지는 엔트리는 직접 연결된 노드로 판단을 내리고 브로드캐스팅 MAC 주소로 ARP 요청을 보내게 된다. 그러나 실제로 host B는 다른 네트워크에 연결된 노드이기 때문에 ARP 요청을 수신 할 수 없다. 이러한 경우에 Proxy ARP 기능을 활성화 시키면 Host B의 IP를 가진 ARP의 요청에 대해서는 Router가 자신의 MAC값을 사용하여 대신 응답을 하도록 하는 기능이다. 이 경우 Host A의 ARP 테이블에는 Host B의 IP가 라우터의 MAC 주소로 추가가 된다. Host A에서 전송할 패킷의 목적지 MAC주소는 라우터의 주소가 설정되고 host A는 패킷을 네트워크로 전송한다. 패킷은 라우터에 전달되고 라우터는 라우팅 경로에 따라 host B로 패킷을 전달한다.

위와 같은 상황이 아니더라도 proxy arp 기능이 활성화 되어 있다면 host들에게 default gateway를 설정하지 않아도 라우터가 응답을하여 대신 처리해 줄 수 있다.


Proxy ARP의 장.단점

장점

  • 라우터를 각 네트워크마다 두지 않아도 하나의 라우터만 갖고 네트워크 구성이 가능하다.
  • 라우팅 테이블에 많은 엔트리를 설정하지 않아도 통신이 가능하다.

단점

  • 네트워크에 물린 모든 노드들은 하나의 물리 네트워크에 접속된 것으로 판단하기 때문에 모든 호스트로의 패킷 전달을 위해 ARP 패킷이 증가하게 된다.
  • 호스트들은 모든 IP에 대해서 ARP 테이블을 유지해야 되므로 많은 엔트리를 소모하게 된다.
  • 기본적으로 ARP 요청에 대해 다른 MAC주소를 전달하는 ARP spoofing 공격과 기법이 동일하므로 공격에 의한 것인지 정상적인 요청에 의한 것인지 판단 할 수 없다.

 


반응형

'[IT 관련 지식] > [Network]' 카테고리의 다른 글

SecureCRT VBS(VB Script) 사용 방법  (0) 2018.01.05
프로토콜 이란?  (0) 2017.12.28
네트워크 4계층  (0) 2017.12.28
ARP(Address Resolution Protocol)  (0) 2017.12.28
Juniper Static Routing 설정 방법  (0) 2017.12.27