본문 바로가기

Gratuitous ARP

ARP(Address Resolution Protocol)은 패킷이 들어왔을 때 그 패킷을 보낸 IP 주소를 통해 MAC 주소를 알아내는 프로토콜로, 브로드캐스트로 상대편의 IP 주소를 사용하는 노드의 MAC 주소를 요청하고, 그 MAC 주소를 사용하는 노드는 거기에 응답하는 방식이다. 즉 ARP는 '알아내려는 IP 주소'를 타겟으로 해서 ARP Request를 보낸다.

 

Gratuitous ARP(이하 GARP)는 '알아내려는 IP 주소'가 아닌 '자신의 IP 주소'를 타겟으로 해서 ARP Request를 보낸다. 즉 'MAC 주소를 알아내는 것'이 목적이 아니다.

GARP는 몇 가지 특수한 목적으로 쓰이는데, 다음 두 가지가 보통이다.

 

1. IP 주소 충돌 감지

먼저 호스트에서 자신의 IP 주소를 타겟으로 하여 ARP 요청을 보낸다. 그리고 다른 호스트에서 이에 대한 응답이 있다면 이미 해당 IP 주소를 사용하고 있는 호스트가 존재하게 된다.
Windows PC에서 DHCP 서버로부터 IP 주소를 할당 받은 클라이언트 역시 IP 주소 충돌을 감지하기 위해 ARP 패킷을 보낸다.

 

2. Refreshing ARP Table

나와 동일 서브넷 상에 존재하는 호스트/라우터의 ARP table(=ARP cache)을 갱신(refresh)하기 위해 사용된다.

즉, 누군가가 GARP 패킷을 보내면, 이를 수신한 모든 호스트/라우터는

GARP 패킷의  {Sender MAC address     Sender IP address} 로 자신의 ARP table을 갱신하게 된다.

 

 

 

Gratuitous라는 이름은 좀 기묘한 것 같다. '별 뜻 없는 ARP'라는 의미가 되는데, 일반적인 ARP처럼 MAC 주소를 알아내려는 게 아니라는 점에서는 맞는 것 같기도 하고, 어쨌든 목적을 가진다는 점에서는 아닌 것 같기도 하고..

'Network' 카테고리의 다른 글

DHCP  (0) 2021.02.08
인터넷, 인트라넷, 엑스트라넷  (0) 2019.05.17