"Address Resolution Protocol"
주소결정 프로토콜
: OSI 7 Layer에서 Layer3(데이터 링크 계층)에 위치한 프로토콜이며,
IP주소를 기반으로 MAC주소를 알아오는 역할을 함.
2계층에서 물리적 주소를 사용하여 통신하는 경우
목적지 주소를 알아야 Encapsulation을 완성하기 위한 목적으로 씀.
실제로 Wireshark를 이용하여 패킷을 잡아보면
출발지 주소가 자기 랜카드의 MAC주소,
도착지 주소는 브로드캐스트(255.255.255.255)가 됨.
예시로
192.168.0.0/24 환경에서 자신의 IP는 192.168.0.2이고,
192.168.0.10의 IP 주소를 가진 PC의 MAC주소를 알려고 할 때
info부분에 "Who has 192.168.0.10? Tell 192.168.0.2"라고 써 있는걸 볼 수 있음.
이런 식으로 얻어온 ARP 정보는 ARP 테이블에 올라감,
ARP테이블은 캐시 개념이라 일정 시간이 지나면 사라짐.
IP를 이용하여 MAC주소를 알아내기 위해 연결된 모든 장비에게 Request 메세지를 보내고,
ARP Resquest 메세지를 받은 장비들은 누구에게 전달된 Request인지 IP주소를 확인하여
자신의 IP일 경우 Reply를 보내줌.
ARP프로토콜은 Request를 보내기 위해 브로트캐스트 방식을 사용
목적지 IP주소가 같은 네트워크일 경우에는 해당 장비를 직접 찾는 Request메세지를 브로드캐스트로 보내고,
다른 네트워크일 경우에는 직접 브로드캐스트를 보낼 수 없으니
Gate-way로 데이터를 전달하기 위해 Gate-way에게 Request를 보냄.
실제로 ARP 패킷을 캡쳐한 모습
Wireshark의 Info란을 보면
"who has"로 시작해서 "tell~"끝나는 내용은 ARP의 Request패킷
'who has 172.16.119.2 ? tell 172.16.119.1'라는 Request패킷이 있다면,
172.16.119.2 가 누군지 안다면 172.16.119.1으로 MAC주소를 보내달라는 뜻으로 해석 가능
'~ is at ~'내용의 Reply(Response)패킷은
'172.16.119.2 is at 00:0c:29:78:6b:e2'라는 내용이 있다면
네가 물어본 172.16.119.2의 MAC주소는 00:0c:29:78:6b:e2라는
내용으로 해석 가능
ARP Header
Hardware Type
사용중인 물리 주소나 데이터 링크 유형을 정의
사용 가능한 전체 물리주소 유형 필드값
Protocol Type
사용중인 프로토콜 주소 유형의 정의
Hardware Address Length
해당 패킷에 사용되는 물리 주소의 길이(byte)를 정의
Protocol Address Length
패킷에 사용되는 프로토콜 주소의 길이를 정의
Opcode
요청이나 응답 패킷인지와 발생하는 주소 해결 유형을 정의
Sender Hardware Address
요청하는 장비의 1,2계층의 물리 주소를 표현
Sender Protocol Address
요청하는 장비의 1,3계층의 논리 주소를 표현
Target Hardware Address
수신하는 장비의 하드웨어 주소를 표시
Target Protocol Address
수신하는 장비의 1,3계층의 논리 주소를 표현
ARP Cache Table
ARP로 MAC주소를 알아오는 과정에서 브로드 캐스트 방식을 사용하는데,
브로드캐스트는 많이 일어날 수록 장비의 과부화와 성능저하를 가져오기 때문에 좋지 못함.
그래서 한번 알아온 정보는 ARPtable에 일정시간 동안 저장하고,
통신하고자 하는 목적지의 MAC주소가 ARP table에 저장되어 있는 경우에는 ARP 프로토콜이 동작되지 않음.
ARP명령어
ARP종류
1. ARP
2. RARP(Reverse Address Resolution Protocol)
반대의 개념은 RARP
MAC주소를 가지고 IP주소를 알아내는 프로토콜
IP를 자동으로 할당받는게 아니라 이미 다른 PC에 할당된 IP의 MAC주소만을 가지고 알아오는 것
3.Proxy ARP
호스트에 게이트웨이가 설정되어 있지 않은 경우에 사용
라우터가 ARP프레임을 수신했을 때, 해당 네트워크가 자신의 라우팅 테이블에 있으면 자신의 MAC주소를 알려주는 기능
4. Inverse ARP
Frame-Relay 환경에서 송신지 IP와 목적지 DLCI를 맵핑하여 FR MAP에 저장하는데,
처음 연결을 한 경우 해당 목적지 IP에 대한 정보가 없으므로 자신과 연결된 모든 선로로 멀티플렉싱을 해 목적지 IP를 알아내는 것
5. Gratuitous ARP
**Gratuitous (공짜로 얻은, 무상의, 불필요한)
같은 네트워크에서 IP주소가 중복되는지 확인하고 다른 장치들이 자신의 IP주소를 갱신하도록 주기적으로 IP를 알려주는 역할
[출처]
1.
2.
3.
https://blockdmask.tistory.com/189?category=257298
[network] Wireshark란? (0) | 2020.08.19 |
---|---|
[hw] PTP(Precision Time Protocol) (0) | 2020.07.17 |