Understanding ARP

KyungH·2024년 11월 29일
0

Cyber-Security

목록 보기
8/27

📝ARP (Address Resolution Protocol)

ARP는 주소확인 프로토콜로 IP 주소를 해당하는 컴퓨터의 물리적주소인
MAC 주소에 매핑
할 수 있도록 한다.

MAC 주소란 모든 네트워크 인터페이스 카드에 할당되는 글로벌 고유 번호를 뜻한다.

로컬 영역 네트워크(LAN) 내의 장치가 다른 장치와 통신하기 위해서는
IP 주소와 연관된 MAC 주소를 알아야 하므로 필수적이다.


📌 ARP 프로토콜 구조

ARP 패킷의 구조는 위와 같다.
여러 필드 중 ARP 데이터에 사용되는 송신자 하드웨어 MAC 주소, 송신자 IP 주소,
대상자의 MAC 주소, 대상자의 IP 주소 4개의 필드가 중요하게 사용된다.

서버 A에서 서버 B로 ping을 보낸다고 할때, 서버 A에서는 3계층의 IP 주소까지
캡슐화할 수 있다. 목적지의 MAC 주소를 모르기 때문에 패킷을 완성할 수 없다.

서버 A는 목적지 서버 B의 MAC 주소를 알아내기 위해 ARP 요청을
네트워크에 브로드캐스트 한다. 이때 2계층 MAC 주소에 출발지는 자신의 MAC 주소,
도착지는 브로드캐스트(FF-FF-FF-FF-FF-FF) 로 채우고 대상자 MAC00으로 채운 후 나머지 필드는 송신자 정보를 채우고 요청을 보낸다.

출발지/도착지 MAC, 송신자/대상자 MAC ??

2계층 헤더에서 사용하는 출발지, 목적지 MAC 필드 외에
ARP 프로토콜에는 송신자, 대상자 MAC, IP 주소를 나타내는 필드가 있다.

이는 다른 용어를 사용하여 일반 패킷의 2,3 계층에서 사용하는
출발지, 도착지, 기존 MAC, IP주소와 구분하여 표현하기 위함이다.

이 패킷은 네트워크 안에 있는 모든 단말에 보내지고, 모든 단말은 대상자 IP가
자신이 맞는지 확인하여 패킷을 버리거나 응답한다.
응답할 경우 송신자와 대상자의 위치를 바꾸어 응답한다. 이 경우 모든 필드는 채워져 있다.

즉, ARP 요청을 처음 보낼 때는 브로드캐스트인 반면, ARP 응답은 유니캐스트 이다.

서버 A는 B로 부터 응답을 받아 자신의 ARP 캐시 테이블을 갱신하며
이 테이블은 정해진 시간동안 서버 B와 통신이 없을 때까지 유지된다.


📌 GARP (Gratuitous ARP)

ARP 가 상대방의 MAC 주소를 알아내기 위해 사용되는 반면,
GARP는 자신의 IP와 MAC 주소를 알릴 목적으로 사용된다.

GARP의 패킷은 송신자MAC은 자신의 MAC주소, 송신자 IP주소도 자신의 IP 주소,
대상자 MAC 주소는 모두 0으로 표기하고, 대상자 IP 주소 또한 자신의 IP 주소로 넣어
네트워크에 브로드캐스트 한다.

ARP 요청과 같은 점은 대상자 MAC 주소가 0으로 채워진 다는 것이고,
다른 점은 송신자와 대상자 IP 주소가 자신으로 동일하다는 것이다.

💡GARP를 사용하여 자신의 IP주소와 MAC 주소를 알려주는 이유?

▫️ IP 주소 충돌 감지

다양한 이유로 내가 할당받은 IP를 다른 사람이 사용하고 있을 수 있다.
이러한 충돌을 예방하기 위해 GARP를 통하여 확인한다.

GARP에 대한 응답이 오면 네트워크상에서 해당 IP를 이미 사용중인 단말이 있음을 확인.

▫️상대방(동일 서브넷에 있는)의 ARP 테이블 갱신

주로 가상 MAC 주소를 사용하지 않는 데이터베이스 HA (HA: 고가용성) 에서 사용한다.
이 데이터베이스는 두개의 데이터베이스 서버가 하나의 가상 IP 주소로 서비스하며
한 대는 동작하고 나머지 한 대는 대기하는 액티브-스탠바이로 동작한다.

액티브 상태의 서버는 가상 IP 주소 요청에 응답하여 서비스하지만,
MAC 주소는 가상주소가 아닌 실제 MAC 주소를 이용하여 사용한다.

그렇기 때문에 마스터 장비가 동작하지 않을 경우, 기존의 마스터 장비를 인식하고
통신하던 단말은 새로 변경된 액티브의 MAC 주소를 갱신하지 못해 통신할 수 없다.

따라서 이러한 현상을 예방하기 위해 스탠바이 장비가 액티브 상태가 되면
GARP 패킷을 네트워크에 보내 액티브 장비가 변경되었음을 알려준다.

▫️클러스터링, FHRP (VRRP, HSRP)

실제 MAC 주소를 사용하지 않고 가상 MAC을 사용하는 클러스터링,
VRRP, HSRP와 같은 FHRP 에서도 GARP 가 사용된다.

이는 곧 네트워크의 스위치 장비의 MAC 테이블 갱신이 목적이다.

➕VRRP(Virtual Router Redundancy Protocol), HSRP(Hot Standby Router Protocol)

FHRP의 일종이며, 디폴트 게이트웨이에 장애가 발생할 경우, 해당 네트워크에 속한
단말이 외부 네트워크로 통신할 수 없는 문제를 해결한다. 단독으로 경로 지정을
할 수 없는 PC는 디폴트 게이트웨이의 상태를 알 수 없으므로 두 대의 디폴트
게이트웨이 라우터가 한 대처럼 동작해 다른 한 대에 문제가 생기더라도 다른
한 대에서 서비스를 지속할 수 있는 FHRP를 사용한다.

클러스터링에서 단말은 ARP 정보를 가상 MAC 주소로 학습하므로
ARP 테이블을 갱신할 필요가 없다.

그러나 클러스터링 중간에 있는 스위치의 MAC 테이블은 마스터가 변경되었을 때
가상 MAC 주소의 위치를 적절히 찾아가도록 업데이트해야 한다.
즉, 슬레이브가 마스터로 변경되면 GARP를 전송하고 스위치에서는 이를 갱신한다.

➕실제로 클러스터링이나 HA 솔루션에서 GARP를 받은 스위치가
MAC 테이블을 빨리 갱신해주지 않아 문제가 되는 경우가 많다.
이 경우 GARP를 보내는 시간이나 횟수를 조절하거나 포트를 리셋하여
스위치의 테이블을 초기화 시킬 수 있다.


📌 RARP

Reverse ARP의 줄임말으로 말 그대로 반대로 동작하는 ARP이다.
즉, MAC 주소를 이용하여 IP 주소를 알아내는 프로토콜이다.

이는 IP 주소가 정해져 있지 않은 단말이 IP 할당을 요청할 때 사용된다.
나 자신의 MAC 주소는 알지만 IP가 아직 할당되지 않아 IP를 할당해주는
서버에 물어볼 때 사용되나, 제한된 기능으로 인해 BOOTP와 DHCP로 대체되어
현재는 사용되지 않는다.


References

What Is Address Resolution Protocol (ARP)?

0개의 댓글

관련 채용 정보