백엔드/네트워크

[네트워크기초이론]#32. L2 스위치와 ARP 작동원리

묘걍 2023. 10. 23. 21:16

ARP 프로토콜

- Address Resolution Protocol

IP주소로 MAC Address를 알아내는 프로토콜

더보기

컴퓨터들이 서로 통신할 때는 특별한 주소가 필요하다.

이 주소 중에는 IP 주소와 맥 주소라는 두 가지 주소가 있다.

IP 주소는 컴퓨터의 집 주소 같은 것이고, 맥 주소는 컴퓨터의 고유 번호 같은 것이다.

그런데 컴퓨터가 서로 통신하려면 IP 주소를 통해 어떤 컴퓨터인지 알아야 하고, 그 다음에 맥 주소를 통해 직접 메시지를 전송한다.

ARP는 이 두 주소를 서로 연결해주는 역할을 하는데, IP 주소를 알고 있을 때 그 IP 주소에 해당하는 맥 주소를 알아내는 도구라고 할 수 있다.

 

"너는 친구들과 편지를 주고받을 때, 친구의 집 주소를 알아야 편지를 보낼 수 있잖아? 컴퓨터들도 서로 '편지'를 주고받을 때, 주소를 알아야 해. 이 주소를 IP 주소라고 해. 근데, 컴퓨터들은 또 다른 특별한 주소도 가지고 있어. 그걸 맥 주소라고 해.

그런데, 컴퓨터가 IP 주소만 알고 맥 주소를 모를 때는 어떻게 할까? 여기서 ARP가 등장해! ARP는 컴퓨터가 다른 컴퓨터의 맥 주소를 알아낼 수 있게 도와주는 마법 같은 도구야. 컴퓨터가 '이 IP 주소를 가진 친구의 맥 주소가 뭐야?' 하고 물으면, ARP가 '이 친구의 맥 주소는 이거야!'라고 알려줘."

- L2 구간은 MAC이 우선

- IP주소는 상관 X

 

- 단자 8개 = 8 port = 인터페이스가 8개 있는 스위치 허브

- 스위치는 각 포트마다 MAC을 기억시킨다(=저장)

- 스위치 전원을 키면 학습모드(Learning mode)로 들어간다

- A와 B가 통신을 할 때 L2 Ethernet Frame이 왔다갔다

- L2 스위치가 스위칭함

- 지나갈 때 Port에서 읽음

- 1번 port에 A라는 컴퓨터(Host)가 있고, 그것의 MAC address가 ~구나하고 기억

- 각 통신마다 외움

- C가 A에게 정보를 보낼 때는

- 스위치 허브가 1번에 보낼지 2번에 보낼지 스위칭을 해야하는데 이미 1번에 A가 있다고 학습해서 알고 있음

- 2번에 보내지 않고 바로 1번으로 보냄 (L2 스위칭을 한 것)

- 더미허브라고 안 하는 것도 있긴 함

 

- Port 단자마다 MAC address를 몇개까지 저장할 수 있지? = L2스위치의 H/W 성능 결정 spec

- Port 하나에 Host MAC address N개 기억

   → 주로 용량으로 이야기함

- uplink로 L2 스위치가 또 있고, 또 다른 L2스위치로 이어져 D, E가 있다

- 10번 port 입장에서 Mapping될 수 있는 MAC address가 A, B, C가 있음

- 만약 D와 E의 랜선을 뽑아 서로 교차해서 연결한다면?

- L2 스위치가 확인하고 있던 port 번호가 바뀜, 그에 따른 대응 필요

- 스위치 설정을 잘 하던가 다시 학습을 시키던가... 해야함

 

ARP

- L2 Access(방마다), L2 Distribution(층마다)

- 3번 PC 전원을 껏다 킴 (사실상 선을 분리했다 다시 연결시킨거나 마찬가지)

- PC들 전부 다 192.168.0.X 대역

- Gateway가 192.168.0.1

- 3번 PC가 NAVER로 접속하려면 Packet(정확히는 L2 Frame)이 gateway까지 가야해

- 문제는 자신의 Gateway인 192.168.0.1번의 MAC 주소를 몰라

     - 알아야 Frame Header를 붙일 수 있음

- 네트워크 전체에다 대고 Broadcast를 함

     - Query를 날림

     - "얘들아 너희들 중에 IP주소가 192.168.0.1인 애가 있니?"

- 해당하지 않으면 응답을 하지 않음

- 해당하는 애가 응답을 보냄

     - Reply는 Unicast (콕 찝어서)

 

- 전원을 처음 켜서 MAC address를 모를 때는 ARP Request가 나감

- 그에 따르는 Reply가 도착

     - MAC address 파악 가능

- 한번이라도 query를 보내서 알아냈으면 reply를 메모리에 저장(caching) = ARP Cache

 

- LAN = Broadcast가 도달하는 범위

- Broadcast는 잘못하면 네트워크 효율을을 떨어트림

- 하지만 ARP등이 Broadcast방식으로 작동

- 이럴 때 중대한 역할을 하니 없어서는 안된다

 

ARP Spoofing

더보기

컴퓨터들이 서로 통신할 때는 특별한 주소가 필요하다.

이 주소를 통해 어떤 컴퓨터가 어떤 컴퓨터에게 메시지를 보내는지 알 수 있다.

ARP 스푸핑은 이 주소를 속여서, 원래의 메시지를 받아야 할 컴퓨터 대신 다른 컴퓨터가 메시지를 받게 만드는 기법이다.

이렇게 되면, 메시지를 가로채거나 바꿀 수 있어서 네트워크의 안전이 위협받게 된다.

 

"너가 친구와 서로 편지를 주고받을 때, 편지를 전달해주는 친구가 있어. 이 친구가 편지를 올바르게 전달해주면 문제가 없지만, 나쁜 친구가 중간에서 편지를 가로채서 다른 내용으로 바꿀 수 있어. 이렇게 중간에서 편지를 가로채서 바꾸는 것을 'ARP 스푸핑'이라고 해. 그래서, 중요한 편지를 보낼 때는 이런 나쁜 친구들을 조심해야 해.”

- 이걸 응용하면 해킹, 인터넷 차단 등 제약을 가할 수있다 (정상적인 방법X, 속임수)

- MITM attack

더보기

MITM이란 "Man-In-The-Middle"의 줄임말이다. 이는 중간에서 무언가를 방해하는 공격 방식이다.

이렇게 상상해보자. 두 친구가 서로 편지를 주고받는다.

그런데 두 친구 사이에서 편지를 가로채는 사람이 있다. 이 사람은 두 친구 사이에 '중간'에 끼어들어 편지 내용을 보거나 바꾼다.

이런 행위를 'Man-In-The-Middle' 공격 또는 줄여서 MITM 공격이라고 부른다.

 

 

 

 

 

 

출처: https://youtu.be/lN4ZBrtb-fs?si=gMo-Qsn4807oSrQ1