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 주소를 확인해 보았다.
침략 ( 사생활 정보는 가려줌)
3-3. 192.168.0.26 의 주소 -> B4:A9:xx:xx:xx:xx
내 방에서 브릿지 모드로 사용하는 공유기이다. 현재 우리집은 192.168.0.1 의 ipTime 공유기가 인터넷 신호를 받고, 각 방의 벽마다 있는 유선 포트로 인터넷 신호를 전달해준다. 내 방에서는 공유기를 유선으로 벽의 랜 포트와 연결하였고 이에 192.168.0.26 의 주소를 할당 받았다. 이 공유기에 이제 데스크탑, NAS 등이 유선 연결되어 있다.
좀 더 시각적인 구성은 아래와 같다.
그리고 MAC 주소를 확인하기 위해 공유기의 바닥에 있는 라벨을 확인한다.
>>결론 : 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 출돌 경험이 있다면 자주 사용할 수 있는 명령어 같다.
또 내부 네트워크를 사용 중이라면, 내기기와 누가 연결되어 있고, 어떤 기기가 연결되어있지 않은지 알 수 있는 명령어 이다.
'네트워크 공부 & 실습 > 네트워크 실습' 카테고리의 다른 글
[Network] UFW로 리눅스 방화벽 설정 실습하기 (0) | 2025.04.14 |
---|---|
[Network] traceroute 명령어로 인터넷 경로 추적하기 (1) | 2025.04.10 |
[Network] nslookup 과 dig, 뭐가 다를까? (0) | 2025.04.08 |
[Network] dig 명령어는 왜 쓰는걸까? (0) | 2025.04.07 |
[Network] PPTP VPN 설정 및 내부 클라이언트간 통신 (Synology NAS DS 218j) (0) | 2025.04.04 |