ARP(Address Resolution Protocol)
- 주소를 재 해석 해주는 프로토콜
- 논리적인 주소(IP)를 기반으로 물리적인 주소(MAC)를 알아오는 기술
- 3계층 프로토콜 이지만 IP 하위에서 동작하는 프로토콜
- 특정 프로그램에 의해 호출되었을 때만 동작 한다.
- 주로 목적지 MAC 주소를 확인할 때 사용 된다.
- 다양한 네트워크 환경에서 동작할 수 있음
- ARP 동작
- Request -> Broadcast
- Reply -> Unicast
ARP 종류
- ARP
- 논리적인 주소에 해당하는 장비의 물리적인 주소를 획득
- RARP
- 물리적인 주소에 해당하는 장비의 논리적인 주소를 획득
- Gratuitous ARP
- IP 충돌 감지
- Gateway 이중화
- Proxy ARP
- IP대역은 같지만 물리적인 장비로 분리된 네트워크 통신을 위해 사용 된다.
ARP Header
- Header 크기 -> 28bytes(Ethernet 환경에서 사용된 경우)
- 일반적으로 상위 계층이 존재하지 않으며 필요에 따라 운영체제에 의해 호출되어 사용된다.
0~4bytes Field
- Hardware Type(2bytes)
- ARP가 동작할 Network 환경 정보
- Ethernet 환경에서는 MAC주소(1번 코드)
- Protocol Type (2bytes)
- 논리적인 주소의 종류
- 일반적으로 IPv4주소(0x0800)
5~8bytes Field
- Hardware Address Length(1byte)
- 지정된 물리적 주소의 크기 값 : MAC 주소의 크기(6bytes)
- Protocol Address Length(1byte)
- 지정된 논리적 주소의 크기 값 : IP 주소의 크기(4BYTES)
- Opcode(2bytes)
- ARP Packet의 종류
- ARP Packet이 수행하는 동작이 지정 된다.
9~18bytes Field
- Sender(Source)Hardware Address (6bytes)
- 보내는 시스템의 물리적 주소
- 자신의 MAC 주소
- Sender Protocol Address (4bytes)
- 보내는 시스템의 논리적 주소
- 자신의 IP 주소
19~28bytes Field
- Target(Destination) Hardware Address(6bytes)
- 받는 시스템의 물리적 주소
- 모르는 경우 00:00:00:00:00:00 값이 들어간다.
- 일반적으로 ARP Request Packet은 물리적 주소를 몰라서 보내는 것이기 때문에 기본 00:00:00:00:00:00 값
- Target Protocol Address(4bytes)
- 받는 시스템의 논리적 주소
- 상대방의 IP 주소
ARP 동작 과정
ARP Cache
- 시스템에서 사용할 IP에 해당하는 MAC주소를 일시적으로 저장하는 기능
- 통신 속도의 향상을 위해 사용 된다.
- 동적으로 알아온 정보는 일정 시간이 지나면 사라짐
ARP Cache Table
- ARP Cache 정보를 기억하는 저장 공간 -> Memory
ARP Cache 종류
- 동적(dynamic) -> ARP에 의해 획득된 정보
- 정적(Static) -> 시스템에 의해 미리 지정된 정보
ARP 명령어
- 운영체제에서 기본적으로 지원되는 ARP 관리 프로그램
-a | ARP table 전체 정보 확인 |
-s |
정적 정보 등록(관리자 권한) |
-d | ARP table 초기화 |
-d |
해당 정보 하나만 삭제 |
netsh 명령어
- Windows에서 네트워크의 전반적인 관리를 지원하는 프로그램
- Windows 7부터 기존의 ARP를 이용한 관리가 제한 된다.
netsh interface ip show neighbors “interface” [ip] | ARP table 정보확인 |
netsh interface ip add neighbors “interface” |
정적 정보 등록(관리자 권한) |
netsh interface ip delete neighbors “interface” | ARP table 초기화 |
netsh interface ip delete neighbors “interface” |
해당 정보 하나만 삭제 |