1. ARP란? ( Address Resolution Protocol )
IP 주소 -> MAC주소
주소논리적인 IP 주소를 물리적인 주소 MAC 주소로 가지고 오는 프로토콜 입니다.
2. RARP란? ( Reverse Address Resolution Protocol )
MAC주소 -> IP 주소
ARP와 반대로 해당 물리적인 MAC 주소를 논리적인 IP 주소로 가지고 오는 프로토콜 입니다.
3. ARP 패킷 구조 및 설명

Hardware Type
- 16bit로 ARP가 수행되고 있는 네트워크 유형을 정의
- 이더넷인 경우 값은 1로 설정됨
Protocol Type
- 16bit로 상위 프로토콜을 정의
- 상위 프로토콜이 IP일경우 0x0800으로 설정됨
Hardware Length
- 8bit로 물리주소의 길이를 바이트 단위로 정의
- 이더넷인 경우 6으로 설정
Protocol Length
- 8bit로 논리주소의 길이를 바이트단위로 정의
- 이더넷인 경우 4로 설정
Operation
- 16bit로 패킷의 유형을 정의
- ARP Request : 1, ARP Reply : 2
Sender Hardware Address
- 송신자의 물리주소를 나타내는 필드
- 이더넷의 경우 이필드는 6byte값
Sender IP Address
- 송신자의 논리주소를 나타내는 필드
- IP프로토콜인 경우 4byte값
Target Hardware Address
- 목적지 시스템의 물리주소를 정의
- 이더넷의 경우 6byte값
- ARP Request인경우 송신자는 목적지 시스템의 물리주소를 몰라 모두 0으로 설정
Target IP Address
- 목적지 시스템의 논리주소를 정의
- IP 프로토콜의 경우 4byte값
4. ARP 동작 과정
1) 송신자는 목적지 IP Address를 지정해 패킷송신
- IP주소는 확인했으나 물리주소는 모르는상태
2) IP프로토콜이 ARP프로토콜에게 ARP Request 메시지를 생성하도록 요청
- ARP 요청 메시지 전송 (송신자 물리주소, 송신자 IP주소)
3) 메시지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation
- 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정
4) 모든 호스트와 라우터는 프레임을 수신 수 자신의 ARP프로토콜에게 전달
5) 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply메시지를 보냄
6) 최초 송신측은 지정한 IP Address에 대응하는 물리주소를 획득
7) ARP요정은 브로드캐스트, ARP응답은 유니캐스트로 목적지 전송
5. Window/Linux ARP 명령어
Window ARP
명령어 | 세부정보 |
arp -a | 모든 ARP 테이블 확인 |
arp -s [host] [mac] | Static (정적) 항목을 추가하는 명령어. |
arp -d | 생성되어 있는 모든 ARP 테이블을 지우는 명령어. |
netsh interface ip delete arpcache | 생성되어 있는 모든 ARP 테이블을 지우는 명령어. |
Linux ARP
명령어 | 세부정보 |
arp -v | ARP 상태를 출력 |
arp -a [host] arp -n [host] |
ARP 캐시테이블에 저장되어 있는 모든 호스트 정보를 출력 |
arp -s [host] [mac] | ARP 캐시테이블에 저장된 특정 IP에 대한 MAC 주소를 변경 |
arp -d [host] | ARP 캐시테이블에 저장된 특정 MAC 주소 삭제 |
ip -s -s neigh flush all | ARP 테이블 초기화 |
#cat /proc/net/arp | ARP 정보가 저장되어있는 경로 |
'IT 기술' 카테고리의 다른 글
Ngork 통해 내부서버 접속하기 (터널링) (0) | 2024.04.12 |
---|