반응형
ARP 프로토콜
- 동일 네트워크 대역 내에서 통신하기 위해 IP 주소를 이용, MAC address를 찾아주는 프로토콜
- 아래와 같은 방식으로 값을 담아서 보냄
ARP Protocol에서 보내는 값들의 의미
- Hardware type: 2계층에서 사용할 프로토콜 타입. 대부분의 경우 ethernet이므로 0 0 0 1 로 값이 (거의) 고정
- Protocol type: 상위 계층에서 사용할 프로토콜 타입. 업무할땐 IPv4 가 절대다수이므로 0 8 0 0 (사실상) 고정
- Hardware length: H/W address의 길이. MAC 어드레스(맥주소) 이므로 6바이트, 그래서 0 6
- Protocol length: Protocol address의 길이. IPv4 쓰므로 4바이트, 그래서 0 4
- Operation: OP code. 질의이냐 응답이냐를 구분함 0 1 ⇒ 질의 0 2 ⇒ 응답
- Sender(Source) H/W address: 출발지 맥주소
- Sender(Source) Protocol address: 출발지 IP 주소
- Target(Desitnation) H/W address: 도착지 맥주소
- Target(Destination) Protocol Address: 도착지 IP 주소
흐름도 - 같은 LAN 대역으로 ARP Protocol로 IP 만 알고 있는 상태에서 맥 주소를 가져와야 할 때에는, 통신을 위해 eth, arp 싸서 프레임 날리는데 mac 주소를 모르는 상태이므로 arp에서는 도착지 맥주소를 00 00 00 00 00 00 이렇게 비워서 보내고 ethernet에서는 FF FF FF FF 이렇게 마찬가지로 비워서(빈값은 아니지만...) 보냄
- 이렇게 FF FF FF FF FF FF 이렇게 보내면 broadcast 주소임
eth에서는 FF FF FF 요런식, ARP에서는 00 00 요런식으로 모르는 값을 채웁니다. - 그럼 같은 네트워크에 있는 모두에게 전달이 되는데, L2의 스위치가 이를 받아서 L2 정보.. 이더넷 까지만 디캡슐레이션 해서 보고(L3정보는 안까봄) 브로드캐스트로 타게팅되어 있으므로 같은 대역대의 모두에게 전달함
- 이를 수신한 모두는 이를 다시 받아서 까보고(브로드캐스트니까), L3 정보 ARP 캡슐도 까서 봄
- 여기에서 본인의 IP와 ARP 캡슐 내의 IP 정보를 대조해 보고, 본인 게 아니면 무시
- 해당하는 IP 를 가진 장비는 이제 다시 OP code를 2로 해서 본인 정보(맥어드레스)를 채워서 회신
- 반환할때는 목적지를 알고 있으므로 브로드캐스트하지 않고 다시 목적지로 리턴함
- 회신을 받은 원래 송신장비는 이 전달받은 맥주소를 ARP cachetable 이라는 곳에 저장함
- 그래서 터미널에서 arp -a 를 날려서 캐시테이블을 보면 통신했던 장비들의 맥 어드레스가 기재되어 있음
캡쳐에선 맥주소 뒷부분은 잘랐습니다!
패딩이 붙어있는 경우도 있는데 최소 전송단위가 60바이트인데 거기에 모자라서 그런 경우..
패딩이 없는경우는 패딩 붙기전에 패킷 캡쳐된..케이스
반응형
'DevOps' 카테고리의 다른 글
Jenkins에서 API를 이용하여 특정 설정을 가진 Job 생성하기(젠킨스 API 잡 생성, config.xml 주입, Jenkins API 인증) (1) | 2021.10.05 |
---|---|
DNS 레코드 삭제 후 재생성 시 도메인 질의가 되지 않는 문제 해결하기 (3) | 2021.09.21 |
traceroute로 목적지까지 거치는 경로 확인하기 (0) | 2021.08.14 |
Jenkins 여러 잡에 동시에 파라미터 주입하기, 여러 프로젝트 설정 동시 변경(mass configuration update) (0) | 2021.07.11 |
K8S(쿠버네티스) current context, namespace 한 번에 확인하기 (0) | 2021.07.11 |