A. ARP 개요
1. ARP란?
같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC주소를 IP주소를 이용해 알아오는 프로토콜입니다.
2. ARP Protocol 구성
ARP 프로토콜은 총 28 byte입니다.
Hardware Type = 0x 0001
2 계층의 다른 프로토콜이 있지만 흔히 보는 건 Ethernet 프로토콜 말고는 없습니다. 0001이 Ethernet의 고유값입니다.
Protocol Type = 0x 0008
0008 = IPv4의 고유값
Hardware address length = 0x 06
06 = 맥주소는 6바이트
Protocol address length = 0x 04
04 = 아이피주소는 4바이트
OP code = 0x 0001(요청)
0x 0002(응답)
Source Hardware Address = 출발지 맥주소
Source Protocol Address = 출발지 IP주소
Destination Hardware Address = 목적지 맥주소
Destination Protocol Address = 목적지 IP주소
cf) 이더넷을 제외한 프로토콜은 출발지 주소가 앞에 나옵니다.
3. IP주소로 MAC주소를 알아오는 과정
PC A(1.1.1.1)는 PC C(1.1.1.3)의 IP주소만 알고 있는 상태며 PC C(1.1.1.3)의 맥주소를 알기를 원합니다.
PC A는 ARP 요청 프로토콜(opcode 0x0001)을 만듭니다. 이때, ARP 목적지의 MAC 주소는 00:00:00:00:00:00으로 비워둡니다. 해당 요청 프토콜에 이더넷 프로토콜을 붙여서 인캡슐합니다. 이때, 이더넷 프로토콜의 목적지 MAC주소는 FF:FF:FF:FF:FF:FF으로 브로드캐스트입니다.
해당 프로토콜을 상기의 그림과 같이 연결된 SW에 보내면 SW는 이더넷 부분을 디캡슐하여 목적지가 브로드 캐스트임을 확인합니다. 따라서 소속된 모든 장비에게 해당 프로토콜을 전송합니다. (ARP 프로토콜은 디캡슐화 하지 않습니다 왜냐하면 SW는 2 계층 장비이고 ARP는 3 계층 프로토콜이기 때문입니다.)
각각 PC B(1.1.1.2)와 PC C(1.1.1.3)은 이더넷 부분을 디캡슐화하여 해당 패킷의 목적지를 확인하여 해당 패킷이 자신에게 온 것을 확인합니다. 두 장비는 ARP 프로토콜을 디캡슐화하여 해당 패킷의 목적지를 확인합니다. 확인 후 목적지가 PC C임을 확인한 PC B는 패킷을 버립니다.
PC C는 응답 프로토콜을 만들어 보내고 해당 프로토콜에는 PC C의 맥주소가 입력되어 있습니다.
PC A는 응답 프로토콜을 받은 뒤 ARP 캐시 테이블에 PC C의 맥주소를 저장합니다. CMD에서 arp -a 명령어로 맥주소 확인이 가능합니다.
[용어/개념] Network - IP, 서브넷 마스크(Subnet Mask), 서브네팅(Sub-neting)
[용어/개념] Network - OSI 7 Layer 기본