ARP(Address Resolution Protocol)는 IP 주소를 기반으로 해당 IP에 대응하는 MAC 주소를 찾는 프로토콜이다. 네트워크에서 장치 간 통신이 이루어질 때, 패킷을 목적지까지 전달하기 위해 MAC 주소를 알아내는 과정이 필요하다.
ARP의 역할
- IP 주소를 MAC 주소로 변환
- 네트워크 내에서 직접 통신 가능한 장치 식별
- ARP 캐싱을 통한 성능 최적화
- 중복된 IP 충돌 감지(Gratuitous ARP 사용)
ARP 동작 과정
1. ARP 요청 (ARP Request)
호스트가 목적지 IP 주소를 알고 있지만, MAC 주소를 모를 경우 네트워크에 ARP 요청을 브로드캐스트한다.
- 송신 MAC 주소: 요청을 보낸 장치의 MAC 주소
- 수신 MAC 주소: FF:FF:FF:FF:FF:FF (브로드캐스트)
- 송신 IP 주소: 요청을 보낸 장치의 IP 주소
- 수신 IP 주소: 목적지 장치의 IP 주소
2. ARP 응답 (ARP Reply)
목적지 IP를 가진 장치는 자신의 MAC 주소를 응답으로 보낸다.
- 송신 MAC 주소: 목적지 장치의 MAC 주소
- 수신 MAC 주소: 요청을 보낸 장치의 MAC 주소
- 송신 IP 주소: 목적지 장치의 IP 주소
- 수신 IP 주소: 요청을 보낸 장치의 IP 주소
이후 송신자는 MAC 주소를 캐시에 저장하여 다음 요청 시 빠르게 접근할 수 있다.
ARP 캐시와 TTL
ARP는 성능을 위해 MAC 주소를 캐시에 저장하며, 일정 시간이 지나면 정보가 만료된다. 이를 TTL(Time To Live) 라고 한다. 만료된 MAC 주소 정보는 다시 ARP 요청을 통해 갱신된다.
- 동적 ARP 캐시: 자동으로 학습한 MAC 주소, 일정 시간이 지나면 삭제됨.
- 정적 ARP 캐시: 관리자가 수동으로 설정한 MAC 주소, 영구적으로 유지됨.
ARP의 문제점과 보안 이슈
ARP는 보안 기능이 없기 때문에 다음과 같은 공격에 취약하다.
- ARP 스푸핑(ARP Spoofing): 공격자가 가짜 MAC 주소를 응답하여 트래픽을 가로챌 수 있음.
- MITM(Man-in-the-Middle) 공격: ARP 스푸핑을 이용해 중간에서 통신 내용을 감청할 수 있음.
- 캐시 포이즈닝(Cache Poisoning): 잘못된 MAC 정보를 캐시에 저장하여 네트워크 장애를 유발할 수 있음.
ARP 보안 강화 방법
- 정적 ARP 테이블 사용: 중요한 장치에 대해 수동으로 MAC 주소를 등록
- ARP 감시 기능 활용(ARP Inspection): 스위치에서 허가되지 않은 ARP 패킷 차단
- VPN과 같은 보안 터널링 사용: 신뢰할 수 없는 네트워크에서 ARP 스푸핑 방지
마치며
ARP는 네트워크 통신에서 필수적인 프로토콜이지만, 보안 취약점도 존재한다. 네트워크 관리자는 ARP의 동작 원리를 이해하고 보안 대책을 마련하는 것이 중요하다.