네트워크 공부 & 실습/네트워크 실습

[Network] ARP 에 대해 깊게 알아보자

객체사냥꾼 2025. 4. 9. 14:37

 

ARP 와 RARP 는 리눅스 마스터 2급 2차 시험, 네트워크 관리사 2급 필기 시험을 공부하며, 각 시험당 항상 한 문제씩 꼭 출제된 문제라 개념은 매우 익숙한 프로토콜이다. ARP 를 통해 내 네트워크 (혹은 서버를 관리한다면 서버) 에 누가 연결되어 있는지, IP 와 MAC 주소가 어떻게 매핑되어 있는지 확인해보고, 실무에서는 어떤 상황에 어떻게 쓰이는지 알아보려 한다.

 

1. ARP 란? 

 

  • ARP(Address Resolution Protocol)는 로컬 네트워크에서 IP 주소에 대응하는 MAC 주소를 찾는 프로토콜이다.
  • 예: 내 PC가 192.168.0.20로 패킷을 보내려고 할 때, 그 IP에 해당하는 MAC 주소를 알아야 전송할 수 있음.
  • 이 매핑 정보를 ARP 테이블에 저장해두고 필요할 때마다 참고한다.

 

2. 명령어 사용해보기

arp
arp -a

 

 

 

2-1. arp 명령어와 arp -a 옵션을 사용한 명령어 차이

두 명령어는 같은 정보를 기반으로 보여주지만, 표현방식과 출력 포맷이 다르다. 주요 차이점은 아래와 같다.

항목 arp arp -a
포맷 테이블 형식(열 제목 포함) 사람이 읽기 쉬운 자연어형 출력
목적 스크립트나 분석용으로 보기 좋음 간단한 확인용으로 빠르게 보기 좋음
주소 표기 IP 주소만 나옴 IP + 도메인 이름(가능한 경우 _gateway 등)
인터페이스 eno1 명시 동일하게 표시됨
출력 예 _gateway ether 70:5d:... _gateway (192.168.0.1) 과 70:5d:...

 


2-2. 명령어 살펴보기

arp 명령어와 arp -a 명령어에 대한 반화문은 딱히 해석이 필요한 만큼 복잡하지 않은 구조이다.

내 네트워크에 연결되어 있는 ip 주소(혹은 도메인 별칭)와 그 ip 주소에 해당하는 MAC 주소, 그리고 나의 네트워크 인터페이스가 출력되고 있다.

 

 

 

3. 실제로 ip 주소와 MAC 주소가 맞는지 확인하기

 

현재 사용 중인 데스크탑에서 arp 명령어로 확인해보니 3개의 내부 ip 주소가 검색되었다.


3-1. 192.168.0.1 의 주소 -> 70:5d:xx:xx:xx:xx

 

기본 게이트웨이 주소로, 우리집에서 인터넷 신호를 분배해주는 최 상단에 있는 공유기 주소이다. 이 주소를 입력하면 위와 같이 네트워크 설정 페이지에 진입할 수 있다.
공유기의 MAC 주소를 확인하기 위해 신발장을 열고, 두꺼비집 같은 곳을 봐야 하나 싶었는데! 다행히 네트워크 설정 페이지에서
기본설정 - 인터넷 설정 정보에서 공유기의 MAC 주소를 확인할 수 있었다.

 

 

 

3-2. 192.168.0.17 의 주소 -> C4:D0:xx:xx:xx:xx

 

와이프 노트북이다. 내 데스크톱과 개인 네트워크로 연결하여 공유 폴더를 함께 사용하고 있기 때문에 나온 것으로 보인다. 윈도우 노트북을 사용하고 있기 때문에 아래 명령어 중 하나를 사용하여 MAC 주소를 확인할 수 있다.

명령어 특징 출력 내용
ipconfig /all 가장 상세 IP, 게이트웨이, MAC 등 전체
getmac 빠른 확인 MAC 주소만 출력
wmic nic get 장치까지 확인 장치명 + MAC
Get-NetAdapter PowerShell용 어댑터 이름 + MAC

 

와이프가 방을 비운 사이 빠르게 mac 주소를 확인해 보았다.

침략 ( 사생활 정보는 가려줌)

getmac 주소로 MAC 주소가 C4:D0:xx:xx:xx:xx 인 것을 알아냈다.

 

 

3-3. 192.168.0.26 의 주소 -> B4:A9:xx:xx:xx:xx

 

내 방에서 브릿지 모드로 사용하는 공유기이다. 현재 우리집은 192.168.0.1 의 ipTime 공유기가 인터넷 신호를 받고, 각 방의 벽마다 있는 유선 포트로 인터넷 신호를 전달해준다. 내 방에서는 공유기를 유선으로 벽의 랜 포트와 연결하였고 이에 192.168.0.26 의 주소를 할당 받았다. 이 공유기에 이제 데스크탑, NAS 등이 유선 연결되어 있다. 

좀 더 시각적인 구성은 아래와 같다.

 

그리고 MAC 주소를 확인하기 위해 공유기의 바닥에 있는 라벨을 확인한다.

 

MAC 주소가 B4:A9:xx:xx:xx:xx 인 것을 확인할 수 있었다.

 

 

>>결론 :  arp 명령어로 실제 MAC 주소와 ip 주소 3개가 모두 일치함을 확인하였다.

 

 

4. 명령어의 활용

  • IP 충돌이 발생했을 때, 같은 IP에 MAC이 두 개 잡히면 의심 신호이므로 명령어를 통해 확인할 수 있다.

  • 스위칭 오류, 라우팅 안 될 때, 해당 IP의 MAC이 ARP 테이블에 없는지 확인할 수 있다.

  • 스푸핑 공격자가 게이트웨이 주소로 변조해서 중간자 공격(MITM)을 시도할 수 있는데,  ARP 테이블에서
    게이트웨이 MAC 주소가 갑자기 바뀌면 스푸핑 공격을 의심해 볼 수 있다.


5.RARP

ARP 는 ip 주소를 통해 MAC 주소를 알아내는 프토콜이고 RARP 는 Reverse ARP, 즉 반대로 MAC 주소로 ip 주소를 알아내는 프로토콜이다. 이 프로토콜도 실제로 사용해보고 싶어 사용법을 공부해 보려 하니...!

  • RARP는 MAC → IP만 가능하고, 설정이 매우 제한적이고
  • DHCP가 등장하면서 완전히 대체되었다.
  • 요즘 장비, 운영체제에서는 RARP 프로토콜을 직접 사용하는 일은 없다

-그렇다면 Mac 주소를 통해 ip 를 알아내는 방법은 아예 없어진건가? 하고 공부해보니 위에 사용했던 arp -a 명령어가 ip 와 MAC 정보를 서로 보여주는 역할을 하고 있었다. 하지만 이 arp 테이블은 현재 네트워크 기기와 통신한 방비, 혹은 같은 서브넷에 있는 MAC 주소와 ip 주소만 알 수 있다. 

- 또 한가지 방법으로 ( 특별한 방법은 아님), 스위치나 공유기의 설정 페이지로 접속하면 (위에 3번에서 접속한 페이지) ip 와 매핑된 MAC 주소를 손쉽게 알아낼 수 있다.

 

 

6. 마무리 


arp 혹은 arp -a 라는 간단한 명령어 한 줄로 내 네트워크에 어떠한 기기들이 연결되어 있고, 예상하지 못한 연결이 있는지 감지 할 수 있다. 단순해 보이는 출력문 같지만, 네트워크 공격을 당하거나 ip 출돌 경험이 있다면 자주 사용할 수 있는 명령어 같다.
또 내부 네트워크를 사용 중이라면, 내기기와 누가 연결되어 있고, 어떤 기기가 연결되어있지 않은지 알 수 있는 명령어 이다.