🚩 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도 있음....너무 깊은 이야기임 몰라도됨
💪물음표 있는것
- 이더넷프로토콜에도 목적지, 출발지 다 잘 쓰여있음
🏈 네트워크 기초
https://www.youtube.com/watch?v=LDsp-Xb168E&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=7
혹시 질문 가능한가요