ARP
개념
Address Resolution Protocol
2계층 물리적 주소인 MAC 주소와 3계층 논리적 IP 주소를 사용해 데이터 통신이 이뤄지는데, 두 개의 주소를 연관시켜주기 위해 사용된다.
실제 통신은 IP 주소를 기반으로 이루어지며, IP 주소로 상대방의 MAC 주소를 알아내기 위해 ARP 프로토콜이 사용된다.
이 때 ARP 브로드캐스트를 이용해 네트워크 전체에 상대방의 MAC 주소를 질의하면, 목적지에 해당하는 장비가 자신의 MAC 주소를 응답한다.
ARP 테이블
패킷을 사용해 데이터를 보낼 때에는 큰 데이터를 작게 잘라 여러 패킷을 보내므로, 패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 크게 저하된다.
따라서 메모리에 ARP 정보를 저장해두고 재사용한다.
ARP 작업은 하드웨어 가속으로 처리되지 않고 CPU에서 직접 수행하므로 많은 ARP 요청이 들어오면 네트워크 장비에 부하가 발생한다.
네트워크 장비는 ARP 테이블 저장 기간을 일반 PC보다 길게 설정하고, 많은 ARP 요청이 들어오면 이를 필터링하거나 천천히 처리하는 방식으로 네트워크 장비를 보호한다.
일부 장비는 ARP 테이블을 수동으로만 갱신 가능하도록 설정하기도 한다.
동작 방식
한 서버에서 다른 서버로 데이터를 보내려 할 때 목적지 MAC 주소를 모르는 상황이면 패킷에 목적지 MAC 주소를 담을 수 없다. 따라서 ARP 요청을 네트워크에 브로드캐스트하여 MAC 주소를 확인한다.
ARP 패킷의 구조는 다음과 같다.
ARP 패킷을 네트워크에 브로드캐스트할 때, 2계층 MAC 주소는 출발지를 자신의 MAC으로, 도착지는 브로드캐스트(
FF-FF-FF-FF-FF-FF
)로 채운다. 자신(송신자)의 MAC, IP주소와 대상자 IP 주소를 입력하고, 대상자 MAC 주소는00-00-00-00-00-00
으로 채운다.
모든 단말은 ARP 프로토콜 내용을 확인 후 대상자 IP가 자신이 아니면 ARP 패킷을 버리고, 맞다면 자신의 MAC 주소를 패킷에 담아 송신자에게 다시 전달한다. 이 때에는 기존 ARP 패킷에 송신자의 MAC, IP 주소가 담겨있으므로 모든 ARP 필드를 채워 보낼 수 있게 된다.
따라서 ARP 요청을 보낼 때는 브로드캐스트 방식으로 보내고, 응답을 보낼 때는 출발지와 도착지 MAC 주소가 명시되어 있는 유니캐스트 방식으로 보낸다.
ARP 정보는 ARP 캐시 테이블에 저장되고, 정해진 시간 동안 서버 B와의 통신이 없을 때까지 유지된다.
GARP
Gratuitous ARP
대상자 IP 필드에 자신의 IP 주소를 채워 ARP 요청을 보낸다.
로컬 네트워크에 자신의 IP와 MAC 주소를 알릴 목적으로 사용한다.
송신자 MAC, IP 주소는 자신의 것으로 넣고, 대상자 MAC 주소는
00-00-00-00-00-00
으로 채운다. 대상자 IP(Target IP) 주소는 특이하게 자신의 IP 주소로 넣어 네트워크에 브로드캐스트한다.자신의 IP와 MAC 주소를 알리는 이유는 다음과 같다.
IP 주소 충돌 감지
IP 주소를 새로 할당받았을 때 기존에 다른 단말이 사용하고 있지 않은지 확인한다. GARP의 응답이 오면 이미 다른 단말이 사용하고 있다는 것이므로, 다른 IP 주소를 사용해야 한다.
상대방(동일 서브넷 상의 다른)의 ARP 테이블 갱신
가상 MAC 주소를 사용하지 않는 데이터베이스 HA(High Availability: 고가용성) 솔루션에서 주로 사용된다. 스탠바이 장비가 액티브 상태가 되면 GARP 패킷을 네트워크에 보내 액티브 장비가 변경되었음을 알려 ARP 테이블이 갱신되도록 한다. 하지만 최근에는 보안/운영 상의 이유로 대부분 가상 MAC을 사용하는 솔루션이 사용된다.
HA(고가용성) 용도의 클러스터링, VRRP, HSRP
가상 MAC을 이용한 클러스터링이나 FHRP(First Hop Redundancy Protocol)에서는 네트워크에 있는 스위치 장비의 MAC 테이블 갱신을 목적으로 GARP를 사용한다.
VRRP(Virtual Router Redundancy Protocol), HSRP(Hot Standby Redundancy Protocol)
FHRP의 일종으로 디폴트 게이트웨이에 장애가 발생할 경우, 해당 네트워크에 속한 단말이 외부 네트워크로 통신할 수 없는 문제를 해결하기 위해 사용된다.
두 대의 디폴트 게이트웨이 라우터가 한 대처럼 동작해 한 대에 문제가 생기더라도 다른 한 대에서 서비스를 지속할 수 있도록 한다.
RARP
Reverse ARP
IP 주소가 정해져 있지 않은 단말이 IP 할당을 요청할 때 사용되었던 프로토콜이지만 제한된 기능으로 인해 BOOTP, DHCP로 대체되었다.
프록시 ARP
ARP를 대행해주는 기능이다.
기본 게이트웨이(3계층 장비인 라우터)에 프록시 ARP가 활성화된 경우, 원격지 통신이더라도 로컬에 ARP 브로드캐스트를 보내 통신한다. 라우터에 기본적으로 활성화되어있는 경우가 많다.
프록시 ARP가 활성화된 기본 게이트웨이는 ARP 브로드캐스트가 들어오면 자신이 대행해 ARP 응답을 해준다.
네트워크에 설정 오류가 있거나 꼭 입력해야 할 설정이 되어 있지 않아도 동작하는 경우가 많아, 장애가 발생했을 때 쉽게 해결할 수 없게 만드는 장애 요소가 될 수 있다. 불필요한 ARP 요청도 처리해주기 때문에, PC에서 기본 게이트웨이가 잘못 설정되었더라도 통신이 가능해진다.
Last updated