공부합시다!/Network

Packet Analysis - 2. ARP (Address Resolution Protocol)

간서치 2022. 3. 15. 09:01
728x90

Protocol 조합
IP & TCP 넘버
IP & ICMP 넘버
ARP 넘버

 

ㅎㅎ 맨날 글을 먼저 쓰다가 그림이 먼저 등장하니 당황스럽겠네요!

이래도 해보고 저래도 해보는 거죠!

옛날 삔꼽고 나오던 정찬후 생각나네요!

 

오늘은 IP Header 이전에 그 보다 간단한 ARP Packet을 분석해 보겠습니다.

간단한 시나리오를 통해서 살펴보도록 하겠습니다.

 

1. 정의

 1.1. ARP(Address Resolution Protocol)

  1.1.1. 통신하고 싶은 상대방의 IP Address를 알고 있는 경우 IP Address에 대응하는 MAC Address 주소를 가져오는 Protocol을 의미. 

  1.1.2. 반대로는 RARP(Reverse Address Resolution Protocol).

 

2. 동작 원리

 2.1. 송신 

  2.1.1. 동일한 Network에서 Data를 전송하기 위해서는 물리적 주소(MAC Address)가 필요

  2.1.2. 물리적 주소 요청을 위한 ARP Request Packet를 Broadcast로 전송

  2.1.3. 상대방의 IP Address는 알고 있으나 MAC Address를 모름으로 네트워크 전체로 전송

  2.1.4. ARP에는 수신자가 응답할 송신지의 주소가 포함됨.

 2.2. 수신

  2.2.1. 모든 Host와 Router는 송신자가 보낸 ARP Request Packet을 수신함.

  2.2.2. 동일한 IP Address를 갖은 수신자만 자신의 IP Addresss와 MAC Address를 응답 패킷에 넣어 전송함. 

 

3. 동작과정

 3.1. 송신자 A : 1.0.0.1 과 수신자 B : 1.0.0.10 의 ARP 진행 과정

  3.1.1. 송신자 A는 수신자 B의 MAC Address를 알기 위해 ARP Request Packet을 Broadcasting

   3.1.1.1. 단 VLAN의 경우 다른 VLAN으로 ARP Request를 전달하지 않음

   3.1.1.2. 이러한 이유로 서로 다른 VLAN끼리 통신 불가

  3.1.2. ARP Request안에 지정된 IP Address를 갖은 Host B만 응답

ARP Request

  3.1.3. Host B는 자신의 MAC Address를 입력한 ARP Reply Packet을 송신자 A에게 Unicast로 응답

ARP Reply

  3.1.4. 이 때 수신자 B는 송신자 A의 IP Address와 MAC Address를 인지하게 되어 ARP Table에 기록

  3.1.5. 수신자 B이외의 다른 Host는 IP Address가 상이함으로 ARP Request Packet을 무시

  3.1.6. ARP Reply Packet을 수신한 A는 B에게 Data를 전송

 

4. ARP 구조

ARP Header

 4.1. Hardware Type

  4.1.1. Hardware Address (MAC Address)의 유형을 나타냄

  4.1.2. Ethernet 통신시 항상 1로 설정됨.

 4.2. Protocol Type 

  4.2.1. Mapping 대상인 Protocol Address의 유형을 나타냄

  4.2.2. IPv4의 경우 0x0800

 4.3. Hardware Address Length 

  4.3.1. Hardware의 길이, Byte로 표시

  4.3.2. Ethernet에서는 0x06으로 설정 (MAC Address는 48bit, 6Byte)

 4.4. Protocol Address Length

  4.4.1. Protocol Address 길이, Byte로 표시

  4.4.2. IPv4의 경우 0x04로 설정 (IP Address는 32bit, 4Byte)

 4.5. Operation Code 

  4.5.1. ARP의 구체적인 동작을 나타냄, 

  4.5.2. ARP Request or ARP Reply

Operaton Code

 4.6. Source Hardware Address

  4.6.1. 송신자의 MAC Address

 4.7. Source Protocol Address

  4.7.1. 송신자의 IP Address

 4.8. Destination Hardware Address

  4.8.1. 수신자의 MAC Address

  4.8.2. ARP Request 동작 시 모두 0으로 설정됨. 왜 이걸 알고 싶은 거니까?

   4.8.2.1. Ethernet Header의 Dst주소가 ff:ff:ff:ff:ff:ff:ff로 설정되어 Broadcasting 됨.

 4.9. Destination Protocol Address

  4.9.1. 수신자의 IP Address

 

5. Gratuitous ARP

 5.1. 발생 원인

  5.1.1. 송수신지의 IP 주소가 동일 (LAND Attack)

  5.1.2. PC Booting 시 NIC가 켜지면서 발생

Gratuitous ARP

 5.2. 동작 과정

  5.2.1. Gratuitous ARP 송신 Host는 응답을 받을 것을 기대하지 않음.

  5.2.2. 응답을 수신한 경우 동일 Broadcast Domain 내의 Systemd이 잘못 구성되었음을 의미함.

  5.2.3. MAC Address가 변경된 Host가 Gratutious ARP Packet을 송신

  5.2.4. 이를 수신한 Host들은 ARP Table에 기록되어 있던 송신자의 과거 MAC Address를 갱신시키는 역할을 함.

   5.2.4.1. ARP Request는 Broadcasting 됨.

 

IP Header이전에 ARP를 재밌게 공부해 두시면 훨 도움이 됩니다.

이해 하기도 쉽고 Capture하기도 쉬우니 차분히 공부해 보세요.

 

Have a nice day!

728x90