ARP 통신은 간단한 요청과 응답으로 구성되어 있으며, 호스트는 대상 IP주소를 포함하는 ARP 브로드캐스트를 전송한다. TCP/IP의 네트워크 계층의 ARP 데이터그램의 헤더는 아래와 같으며, ARP 요청 패킷과 ARP 응답 패킷 모두 같은 형식을 사용한다.
Hardware type | Protocol Type |
Hardware Length (size) | Protocol Length (size) |
Operation | |
Sender Hardware (MAC) Address | |
Sender Protocol (IP) Address | |
Target Hardware (MAC) Address | |
Target Protocol (IP) Address |
[그림 1. ARP 패킷 구조]
[그림 1. ARP 패킷 구조]의 구성 필드별 내용을 살펴 보면 다음과 같다.
① Hardware type
이 필드는 사용 중인 MAC 주소나 데이터 링크 유형 / 물리 주소 길이를 정의하는데 사용되며, 여분의 Hardware Length 필드를 생성한다. Hardware type이 1이면, 이더넷(Ethernet)에 할당된 것을 의미한다.
사용 가능한 Hardware type 필드 값을 살펴 보면 [표 1. 사용 가능한 Hardware type 필드 값]과 같다.
Number | Hardware Type |
0 | Reserved |
1 | Ethernet (10Mb) |
2 | Experimental Ethernet (3Mb) |
3 | Amateur Radio AX.25 |
4 | Proteon ProNET Token Ring |
5 | Chaos |
6 | IEEE 802 Networks |
7 | ARCNET |
8 | Hyperchannel |
9 | Lanstar |
10 | Autonet Short Address |
11 | LocalTalk |
12 | LocalNet (IBM PCNet or SYTEK LocalNET) |
13 | Ultra link |
14 | SMDS |
15 | Frame Relay |
16 | Asynchronous Transmission Mode (ATM) |
17 | HDLC |
18 | Fibre Channel |
19 | Asynchronous Transmission Mode (ATM) |
20 | Serial Line |
21 | Asynchronous Transmission Mode (ATM) |
22 | MIL-STD-188-220 |
23 | Metricom |
24 | IEEE 1394.1995 |
25 | MAPOS |
26 | Twinaxial |
27 | EUI-64 |
28 | HIPARP |
29 | IP and ARP over ISO 7816-3 |
30 | ARPSec |
31 | IPsec tunnel |
32 | InfiniBand (TM) |
33 | TIA-102 Project 25 Common Air Interface (CAI) |
34 | Wiegand Interface |
35 | Pure IP |
36 | HW_EXP1 |
37 | HFI |
38 – 255 | Unassigned |
256 | HW_EXP2 |
257 – 65534 | Unassigned |
65535 | Reserved |
[표 1. 사용 가능한 Hardware type 필드 값]
② Hardware Length
이 필드는 해당 패킷에 사용되는 MAC 주소의 길이를 정의하며, 단위는 Byte이다. Hardware Length의 값은
Hardware type에 의해 결정되기 때문에 여분의 필드 이다.
③ Protocol Type
이 필드는 사용 중인 프로토콜 주소 유형을 정의 하며, 이더넷(Ethernet) Ⅱ 프레임 구조에 사용되는 표준 프로토콜 ID 값을 사용한다. 그리고, Hardware type과 같이 여분의 Protocol Length 필드를 생성한다.
자세한 Protocol Type은 http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml에 방문하여, 살펴보기 바란다.
④ Protocol Length
이 필드는 패킷에 사용되는 프로토콜 주소의 길이를 정의하며, 단위는 Byte이다. Protocol Length의 값은 Protocol Type에 의해 결정되기 때문에 여분의 필드이다.
⑤ Operation
이 필드는 ARP Request / Reply 또는 RARP Request / Reply 패킷인지를 등을 정의한다. 자세한 Operation Code는http://www.iana.org/assignments/arp-parameters/arp-parameters.xml의 Operation Code부분을 살펴 보기 바라며, 여기서는 [표 2. ARP / RARP Operation Code]만 기억한다.
Number | Operation Code |
1 | ARP Request |
2 | ARP Reply |
3 | RARP Request |
4 | RARP Reply |
[표 2. ARP / RARP Operation Code]
⑥ Sender Hardware (MAC) Address
이 필드는 ARP 요청과 응답을 전송하는 장치의 MAC 주소를 정의 한다.
⑦ Sender Protocol (IP) Address
이 필드는 ARP 요청과 응답을 전송하는 장치의 IP 주소를 정의한다.
⑨ Target Hardware (MAC) Address
이 필드는 요구되는 대상의 MAC 주소를 정의한다. ARP Request 패킷의 경우 일반적으로 0으로 채워져 표시되며, ARP Reply 패킷의 경우 ARP Request 패킷을 전송한 장치의 MAC 주소를 표시 한다.
⑩ Target Protocol (IP) Address
이 필드는 요구되는 대상의 IP 주소를 정의한다. ARP Request 패킷의 경우 질의할 IP주소가 표시되며, ARP Reply 패킷의 경우 ARP Request 패킷을 전송한 IP 주소를 표시 한다.
이제 실제로 와이어샤크(Wireshark)를 이용하여 캡쳐한 ARP 패킷을 보며, 위 내용들을 하나하나 대입 시켜 보자.
[그림 2. 와이어샤크(Wireshark)를 이용 캡쳐한 ARP 패킷]
[그림 2]를 보면 ARP Request와 ARP Reply 패킷을 볼 수 있으며, 이 패킷들의 헤더 내용을 자세히 살펴 보면 [그림 3]과 [그림 4]와 같다.
[그림 3. ARP Request]
[그림 4. ARP Reply]
[그림 3]과 [그림 4]를 비교해 보면, Hardware type 필드 부터 Protocol size 필드 까지의 내용은 같다. 이 내용을 풀어 보면, Hardware는 Ethernet을 사용하고, Protocol은 IP Protocol이라는 것을 알게 되었다. 참고로 Protocol type 필드의 값이 0x0800인 경우 IPv4를 의미한다.
다음으로 Opcode 필드의 내용을 [표 2. ARP / RARP Operation Code]와 같이 살펴 보면, 이 패킷이 ARP Request 패킷인지 아니면, ARP Reply 패킷인지 단번에 구분이 가능하다.
여기서 잠깐! Sender MAC / IP Address는 ARP Request와 ARP Reply 에서 현재 패킷을 전송하는 전송자와 관련이 있음을 기억하자.
[그림 3]에서 보는 것과 같이 ARP Request 패킷의 Sender MAC / IP Address 필드를 내용은, MAC 주소가 00:0c:29:27:74:9d이며, IP 주소가 192.168.200.139인 호스트가 IP 주소 192.168.200.135에 대한 MAC 주소를 찾는다. 여기서, 192.168.200.135의 MAC 주소를 모르기 때문에 Target MAC Address 필드는 0으로 채워진것을 볼 수 있다.
[그림 4]에서 보는 것과 같이 ARP Reply 패킷의 Sender MAC / IP Address 필드의 내용은 발신자 MAC 주소 00:0c:29:57:ff:c5와 IP 주소 192.168.200.135를 표시 한다.
지금까지 기본적인 ARP 패킷에 대해 알아보았다.
참고
http://www.ktword.co.kr/abbr_view.php?m_temp1=2188 : 정보통신기술용어해설
http://www.iana.org/assignments/arp-parameters/arp-parameters.xml
http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
'Analysis' 카테고리의 다른 글
기본적인 DHCP Packet 분석 (0) | 2013.01.30 |
---|---|
기본적인 DNS Packet 분석 (2) | 2013.01.30 |
기본적인 UDP Packet 분석 (0) | 2013.01.30 |
기본적인 ICMP Packet 분석 (0) | 2013.01.30 |
와이어샤크(wireshark) Edit 메뉴 (0) | 2012.12.27 |