[네트워크] 05. ARP 프로토콜

ppmyor·2022년 9월 19일
0

CS-네트워크

목록 보기
5/11
post-thumbnail

ARP 프로토콜

ARP가 하는 일

  • 같은 네트워크 대역에서 통신하기 위해 필요한 부분은 이더넷 프로토콜의 MAC 주소
  • 같은 네트워크 대역에서 IP주소를 입력하더라도 ARP 프로토콜에서 MAC 주소를 알아오고 그 MAC 주소를 활용해서 통신을 함
    즉, ARP 프로토콜은 같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC주소를 IP주소를 이용해서 알아오는 프로토콜이다. 같은 네트워크 대역에서 통신을 한다고 하더라도 데이터를 보내기 위해서는 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP주소와 MAC 주소가 모두 필요하다. 이 때 IP주소는 알고 MAC 주소는 모르더라도 ARP를 통해 통신이 가능하다.

ARP 스푸핑

ARP 프로토콜의 구조

IP주소를 이용해 MAC주소를 알아오는 ARP 프로토콜(28byte)

  • Hardware type: 2계층에서 사용하는 프로토콜의 type(거의 Ethernet 프로토콜(0001))
  • Protocol type: Protocol Address의 type(거의 IPv4(0800))
  • Hardware Address Length: MAC 주소의 길이(6byte(06))
  • Protocol Address Length: IPv4 주소의 길이(4byte(04))
  • OPcode(Operation code): 어떻게 동작하는지 나타내는 코드:
    - ARP 프로토콜로 상대방의 MAC 주소를 요청하고 있는지(0001)
    - 요청에 대한 응답 하고 있는지(0002)
  • Source Hardware Address(출발지 MAC 주소)
  • Source Protocol Address(출발지 IPv4)
  • Destination Hardware Address(목적지 MAC 주소)
  • Destination Protocol Address(목적지 IPv4)

(Ethernet protocol만 목적지가 먼저오고 나머지는 출발지가 먼저 옴)

ARP 프로토콜의 통신 과정

IP주소로 MAC 주소를 알아오는 과정

같은 LAN대역에서 ARP프로토콜로 상대방의 MAC 주소를 알아오는 과정

  • A 컴퓨터(192.168.0.10)가 C 컴퓨터(192.168.0.30)와 통신하고자 할 때
  1. A 컴퓨터가 C컴퓨터에게 요청
  • A 컴퓨터가 C컴퓨터에게 ARP 요청 프로토콜을 만들게 됨
  • ARP 프로토콜은 3계층이기 때문에 앞에 2계층인 Ethernet 프로토콜을 붙임
  • Ethernet 프로토콜을 붙일 때 출발지 IP, MAC 주소는 본인의 주소, 목적지 MAC 주소는 모르기 때문에 00 00 00 00으로 비워두고, IP주소는 알고있기 때문에 기재
  1. Ethernet 프로토콜 인캡슐레이션해서 보냄
  • 목적지 MAC 주소는 모르기 때문에 FF FF FF FF FF FF 로 작성(즉, 1로 꽉 채움 -> broadCast)
  • 즉 프로토콜을 작성해서 같은 네트워크 대역에 있는 모두에게 보냄
  1. Switch 장비 거침
  • 2계층인 Ethernet 프로토콜만 디캡슐레이션
  • Ehternet의 목적지 MAC 주소가 broadCast 이므로 같은 대역에 있는 모든 장비에게 보냄
  1. 모든 장비들 받은 패킷 내용을 디캡슐레이션
  • ARP 프로토콜 확인 후 본인의 IP 주소와 목적지 IP 주소가 일치하지 않는다면 패킷을 버리고 일치한다면 ARP 응답 프로토콜을 만들어서 보냄.
  • 출발지 MAC 주소에 본인의 MAC 주소를 기재해서 보냄
  1. Switch 장비 거침
  • Ethernet 프로토콜에 해당하는 장비에게 보냄
  1. 응답받은 장비에서 ARP 응답 확인
  • 디캡슐레이션을 통해 MAC 주소 확인 후 ARP 캐시테이블에 해당 IP와 MAC 주소를 등록

ARP 테이블

나와 통신했던 컴퓨터들

통신했던 컴퓨터들의 주소는 ARP 테이블에 남는다.

arp 캐시테이블 확인 방법

arp -a

참고

해당 내용은 [따라學IT] 05. 통신하기 전 반드시 필요한 ARP 프로토콜 - 이론, [따라學IT] 05. 통신하기 전 반드시 필요한 ARP 프로토콜 - 실습 의 강의와 개인 공부를 함께 정리 한 내용입니다.

profile
유영하는 개발자

0개의 댓글