05. 통신하기 전 반드시 필요한 ARP프로토콜

김아름·2021년 12월 15일
0

네트워크 기초

목록 보기
5/15

🚩 ARP프로토콜

  • ARP 프로토콜은 3계층인데, 같은 네트워크 대역에서만 쓰임
  • 맥주소를 몰라서 브로드캐스트로 보내는데,
  • 3계층 장비는 브로드캐스트가 오면 바깥으로 보내지 않음

1. ARP가 하는일

  • 같은 네트워크 대역에서 통신을 하기위해 필요한 MAC주소를 IP주소를 이용해서 알아오는 프로토콜
  • 같은 네트워크 대역에서 통신을 한다고 하더라도 데이터를 보내기 위해서는 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP주소와 MAC주소가 모두 필요함
  • 이때 IP주소는 알고 MAC주소는 모르더라도 ARP를 통해 통신이 가능
  • 보안상 중요, ARP Spoofing
    ** ARP Spoofing: 상대방의 ARP테이블을 속이는 네트워크 공격

2. ARP 프로토콜의 구조

  • 총 28Bytes
  • 맨위의 빨간색은 출발지 MAC주소
  • 다음 파랑색은 출발지 IP주소
  • 다음 빨간색은 목적지 MAC주소
  • 마지막 파란색은 목적지 IP주소

맨위 두줄

  • Hardware type: Ethernet ( 16진수로 0001이 옴 )
  • Protocol type: 아래 파란색부분에서 쓰는 protocol address의 type
    IPv4밖에 없음 ( 16진수로 0008 )
  • Hardware Address Length : 맥주소 길이 ( 06 )
  • Protocol Address Length : IPv4주소 길이 ( 04 )
  • Opcode : operation code = MAC주소를 요청하고있는지( 1 ) or 응답인지( 2 )



🚩 ARP 프로토콜의 통신과정

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

  • A컴퓨터가 C컴퓨터의 맥주소를 알아내려고 ARP를 보내려고 한다.
  • 위에서 ARP 구조를 공부했는데, 목적지 맥주소를 적어야 한다.
  • 모르기 때문에 000000000000으로 요청한다.

  • Ethernet프로토콜을 인캡슐레이션 하는데, 여기도 목적지 맥주소를 적어야한다.
  • 모르기 때문에 FFFFFFFFFFFF로 작성한다. ( 이진수로 1로 꽉채운 수임 )
  • 1을 꽉채운 수는 브로드캐스트 ( 같은 네트워크에 있는 모든 대상과 통신함 )

  • 가운데 장비는 2계층장비 스위치인데, 2계층프로토콜 까지만 디캡슐레이션 함
  • 이더넷프로토콜을 보고 목적지맥주소가 어딘지 확인 후 그곳으로 보내주는데,
  • FFFFFFFFFFFF( 브로드캐스트 )니까 같은네트워크 대역에 있는 모두에게 보낸다.

  • 이것을 받은 컴퓨터는 디캡슐레이션을 한다.
  • 이더넷을 확인했는데 브로드캐스트로 나한테 온게 맞으니까, ARP도 확인해본다.

  • 본인의 IP주소와 목적지 IP주소의 일치여부를 확인하고
  • 일치하지 않으면 패킷을 버린다.

  • 본인의 IP주소와 목적지 IP주소가 일치하면 응답프로토콜을 만든다.
  • 인캡슐레이션 할 때 오퍼레이션코드를 2로 바꾸고
  • 출발지 맥주소에 자기주소를 쓴다.

  • 이더넷프로토콜에도 목적지를 아니까 적어서 스위치로 보내준다.
  • 스위치는 2계층장비니까 이더넷프로토콜만 확인 후 목적지 맥주소로 보내준다.

  • A는 디캡슐레이션 해서 C의 맥주소를 알게되었다.
  • ARP 캐시테이블에 이 내용을 등록한다.
  • 이렇게 맥주소를 알아온 다음에 통신이 시작되는 것
  • 최초 통신시에 무조건 ARP가 실행이 되었다가 통신 하는 것



🚩 ARP테이블

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

  • cmd에서 arp -a 명령어로 ARP 캐시테이블을 볼수있음
  • 보통 캐시라는 말은 영구적으로 저장X, 어느정도 지나면 삭제됨



👻 실습

1. ARP테이블 확인해보기

  • cmd에서 arp -a 명령어를 쳐보자.
  • 보안 공부 때 ARP Spoofing을 배우면 ARP테이블은 중요

2. ARP 프로토콜 분석하기

  • arp들 중에서 물음표 달려있는것과 없는것이 있다
  • 물음표 있는것은 요청, 없는것은 응답

💪물음표 있는것

  • 목적지 맥주소는 000000000000로 비어있다.

  • 이더넷 프로토콜의 맥주소는 ffffffffffff로 브로드캐스트

  • ARP 뒷부분에 00~~00값이 붙어있다 패딩이라고 쓰여있음
  • 프레임의 최소크기는 60바이트인데,
  • ARP 프로토콜은 28바이트
  • 이더넷 프로토콜은 14바이트로 총 42바이트라서
  • 최소크키보다 작다. 그 최소크기를 맞춰주려고 붙인 것
  • 참고로 프레임의 최대크기는 1514바이트

  • 패딩이 안붙어있는 ARP도 있음....너무 깊은 이야기임 몰라도됨

💪물음표 있는것

  • 응답 ARP

  • 이더넷프로토콜에도 목적지, 출발지 다 잘 쓰여있음



🏈 네트워크 기초

https://www.youtube.com/watch?v=LDsp-Xb168E&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=7

profile
쿄쿄쿄

1개의 댓글

comment-user-thumbnail
2023년 10월 15일

혹시 질문 가능한가요

답글 달기