본문 바로가기

네트워크/기타 네트워크 이야기

Proxy ARP

[펌] http://pcmsj.egloos.com/1356269


Introduction
이 문서는 Proxy Address Resolution Protocol(ARP)에 대해서 설명합니다. Proxy ARP 기술은 라우터 자신이 가지고 있는 ARP 테이블 또는 라우팅 테이블을 이용하여 호스트가 ARP를 요구할 시 대신 알려주는 기술입니다. 어떻게 보면 속이는 것이죠. 실제 목적지는 아니지만 그런 척 해서 받은 ARP request를 발생지로 응답하는 기술이기에 이 기술을 Proxy ARP라 합니다. Proxy ARP는 같은 서브넷에 존재하는 호스트를 원격지 호스트 또는 Default Gateway로 가는데 라우팅 설정없이 보낼 수 있습니다. Proxy ARP : RFC1027

Prerequisites
Requirements
선수조건으로 ARP와 Ethernet 환경의 이해가 요구됩니다.
Components Used
이 문서에서 사용된 소프트웨어와 하드웨어 버전은 다음과 같습니다.
  - Cisco IOS Software Reases 12.2(10b)
  - Cisco 2500 Series Routers
이 문서에서 제출된 정보들은 렙 환경을 통해 만들어 졌으며 각 장비들의 설정은 기본 구성값을 갖습니다. 만약 당신이 실제 네트워크 안에서 여기서 소개할 명령들을 구현할 시에는 먼저 각 명령들의 이해가 필요합니다.
Conventions
이 문서에서 설명되고 있는것이 불충분하다면 Cisco Technical Tips Conventions 을 참고하세요.

How Does Proxy ARP Work?
밑에 나오는 예제는 어떻게 proxy ARP가 운용되는지를 보여줍니다.






서브넷 A의 호스트 A(172.16.10.100)가 서브넷 B의 호스트 D(172.16.20.200)에게 패킷을 던질려고 합니다. 상위 그림에서 보이는 것처럼 호스트 A는 /16 서브넷 길이를 갖습니다. 그리하여 호스트 A는 자신이 172.16.0.0 네트워크에 물려 있는것으로 생각하여 호스트 D로 가기 위해 ARP를 요구하는 패킷을 발생합니다. ARP의 이유는 호스트 D로 가기위해선, 호스트 A는 호스트 D의 MAC 주소가 필요하기 때문입니다.
발생된 브로드캐스트 ARP 요구는 다음과 같습니다.

Sender's MAC Address

Sender's IP Address

Target MAC Address

Target IP Address

00-00-0c-94-36-aa

172.16.10.100

00-00-00-00-00-00

172.16.20.200


상위의 ARP 요청 패킷은 다시 이더넷 프레임으로 encapsulated되고 목적지 주소를 FFFF.FFFF.FFFF로 뿌리기 시작합니다. ARP 요청을 뿌리긴 하지만 호스트 D(172.16.20.200)에 닿을 수 없습니다. 왜냐하면 서브넷 A의 라우터 역시 요청 패킷을 받긴 하지만 기본적으로 브로드캐스트는 넘기지 않고 또 라우터 자신도 모르기때문입니다.
허나 서브넷 A의 라우터가 호스트 D(172.16.20.200)의 주소를 알고 있다면 라우터는 자신의 MAC 주소를 아래와 같이 호스트 A에게 알려 줍니다.

Sender's MAC Address

Sender's IP Address

Target MAC Address

Target IP Address

00-00-0c-94-36-ab

172.16.20.200

00-00-0c-94-36-aa

172.16.10.100


상위와 같이 호스트 A에게 Proxy ARP로 응답하며 Proxy ARP 응답 패킷은 이더넷 프레임 안에서 encapsulated 되어 발생지를 자신으로 목적지를 호스트 A의 MAC 주소로 보냅니다. 항상 ARP의 응답은 유니캐스트로 발생된 호스트에게 응답합니다.
ARP 응답을 받은 후의 호스트 A의 ARP 테이블은 다음과 같습니다.

IP address

MAC Address

172.16.20.200

00-00-0c-94-36-ab


지금부터 호스트 A는 호스트 D(172.16.20.200)으로 가기위해서 목적지 MAC 주소를 00-00-0c-94-36-ab로 넘길 것입니다. 또한 서브넷 A의 라우터는 받은 패킷을 자신이 알고있는데로 호스트 D에게 던질 것입니다.

시스코 라우터는 디폴트로 이 기능이 Enable되어 있으며 다음 명령으로 Disable합니다.
if)#no ip proxy-arp

Note : 호스트 B(172.16.10.200/24)의 경우에 호스트 D로 패킷을 던질려고 할 경우 호스트 B는 자신의 서브넷과 호스트 D의 서브넷이 다르다는 것을 알기 때문에 자신의 라우팅 테이블에서 해당 루트로 가기위한 루트를 찾을 것입니다. 만약 디폴트 루트가 자기 자신의 인터페이스 또는 같은 IP 주소를 갖을 경우, 호스트 A와 동일한 처리를 MAC 주소를 얻기 위해 행할 것입니다.

Advantages of Proxy ARP
Proxy ARP 기능을 이용하여 같은 네트워크 안에서 라우팅 처리 없이 쉽게 라우터를 붙일 수 있습니다. 호스트 또한 디폴트 게이트웨이를 설정하지 않습니다.

Disadvantages of Proxy ARP
  - ARP 트래픽이 증가합니다.
  - 호스트의, IP-to-MAC 주소를 매핑하기 위한 큰 범위의 ARP 테이블이 필요합니다.
  - 보안에 문제가 있습니다. 목적지로 가기위해서 ARP를 사용하기 때문에 내가 해당 목적지니 나에게 보내라는 식의 스프핑이 가능합니다.
  - 만약 ARP가 돌지 않는다면 네트워크는 침묵을 유지할 것입니다.
  - 모든 네트워크 토폴로지에서 사용되는 것은 아닙니다.


[펌] http://pcmsj.egloos.com/1356269