열정 실천

[네트워크] L2 통신 기초 본문

CS/공부노트

[네트워크] L2 통신 기초

구운오니 2025. 12. 23. 13:15
728x90

 

✨ 목차

0️⃣ 들어가기 전 용어 정리 

1️⃣ L2통신이란?

2️⃣ L2의 데이터 통신 방법 [Flooding 과 Forwarding]

3️⃣ VLAN

4️⃣ TRUNK 포트

5️⃣ L2 통신의 한계

 

 

 

0️⃣ 들어가기 전 용어 정리 

🖊️ 이더넷(Ethernet) = 유선 LAN(집/회사 네트워크)에서 통신하는 방식(규칙)

즉, 우리가 랜선 꽂아서 인터넷 쓰는 시스템은 전부 이더넷 기반

 

 

🖊️ NIC : NIC = Network Interface Card

컴퓨터 / 서버 / VM이 네트워크에 연결하여 통신하기 위해 사용되는 하드웨어 장치

 

 

🖊️ 스위치(Switch) 

여러 장비를 연결하고, MAC 주소를 기반으로 데이터를 정확한 장비에게 전달하는 네트워크 장비

 

🤭 오늘은 이 스위치가 어떻게 데이터를 받고 보내는 지 알아볼거야!!

 

 

 

 

 

1️⃣ L2통신이란?

 

L2통신이 뭐냐구? 

 

L2는 OSI 7계층 중에 Data Link 계층으로 이더넷에서 이루어지는 모든 통신을 말해! 

위에서 말했지? 이더넷은 유선 LAN에서 통신하는 방식이야 

여기서 데이터 전송 단위는 프레임(Frame)이라고 하고 MAC 주소만을 기반으로 모든 통신이 이루어져!

MAC 주소는 NIC에 적혀있는 장비의 식별자야!

 

프레임(Frame)은 이렇게 생겼어

[Source MAC][Dest MAC][Payload][CRC]

  • Source MAC : 보내는 장비의 MAC 주소
  • Dest MAC : 받는 장비의 MAC 주소
  • Payload : 실제 데이터 
  • CRC : 오류 체크용 값

 

 

2️⃣ L2의 데이터 통신 방법 [Flooding 과 Forwarding]

그래서 내 컴퓨터와 같은 스위치에 연결된 다른 컴퓨터에 어떻게 데이터를 보내게 되는 건지 자세히 알려줄게!

 

자, 우선 컴퓨터 두 대와 스위치 얘네들은 각각 자기 입장에서 기록한 MAC-Table을 가지고 있어

 

 

Server1이야 Server2에게 데이터를 전송하려면 이렇게 프레임을 만들어서 자기의 Eth0포트에 보내 

[Source MAC = aa.aa] [Dest MAC = bb.bb] [실제 데이터] [CRC] 

 

그럼 스위치는 "Port1에서 Source MAC이 aa.aa인 프레임이 들어왔네?"하고 

→ aa.aa = port1을 MAC 테이블에 저장해

 

 

이제 bb.bb에 보내야하는데 스위치는 어디포트로 보내야하는지 모르잖아

그래서 모든 포트에 해당 프레임을 보내보는 "브로드캐스팅"을 해. (이걸 Flooding이라고 해!)

 

 

그러면 Server2가 받으면서 응답 프레임(Reply) 을 보내 이때 스위치는 “아, bb.bb는 Port2에 있네?” 하고
bb.bb = Port1를 MAC 테이블에 저장해

 

 

이 과정을 계속 반복하면서 "MAC 주소 ↔ 포트 번호" 를 자동으로 외우는 게 MAC Learning이야.

 

 

이 다음부터는 server1이 server2에 보낼 때 스위치는 바로 보낼 수 있겠지!? (이건 Forwarding이라고 해!)

 

 

 

3️⃣ VLAN

근데 앞에서 말한 브로드캐스팅 방식은 너무 비효율적으로 보이지 않아? 

서버가 많아질수록 쓸데없는 브로드캐스트가 너무 많아지잖아 

 

그래서 VLAN이 탄생했어! 

 

VLAN은 한 스위치 안을 논리적으로 여러 개의 스위치처럼 나누는 거야

 

  • VLAN1에 있는 애들끼리만 브로드캐스트
  • VLAN5에 있는 애들끼리만 브로드캐스트

 

이렇게 VLAN은 특정 브로드캐스트 범위라고 생각하면 돼.

 

같은 스위치에 연결되어 있어도 다른 VLAN에 속하면 서로 통신이 불가능하게 되는거지 

 

VLAN을 사용하면 여러 부서가 존재하는 조직에서 부서 별로 네트워크를 분리할 수 있어서 

트래픽도 감소시키고 보안도 강화할 수 있어!

 

 

 

 

 

3️⃣ Trunk 포트

Trunk 포트서로 다른 스위치 간에 동일 ID를 가진 VLAN을 연결하는 역할을 해! 

 

 

 

 

 

VLAN을 구성할 때는 두 가지 Port Type이 있는데

 

  • Access 포트: 하나의 VLAN만 허용 / 서버 ↔️ 스위치
  • Trunk 포트: 여러 개의 VLAN 처리 가능 / 스위치 ↔️ 스위치

Trunk 포트를 통해 지나가는 프레임에는
“이 프레임이 어느 VLAN에 속했는지”를 알려주는 정보(VLAN ID)가 함께 붙어 

[Source MAC][Dest MAC] [VLAN ID] [Payload][CRC]

 

 

 

 

 

5️⃣ L2 통신의 한계

🙊네트워크 구성의 한계
1. MAC테이블 사이즈(64bit)한계로 참여할 수 있는 호스트 수 제한
2. VLAN 개수 한계
3. VLAN 구성 모니터링 등 관리 어려움

 

🙈 주소 및 경로의 한계

1. MAC테이블에는 경로 정보가 없고, 오직 목적지에 대한 단 하나의 물리포트만 사용 가능

2. 목적지를 알 수 없는 패킷 발생 시 LOOP 발생

3. 일관성 없는 MAC 주소의 형태 -> 주소로 목적지 host 유추 불가

 

 

728x90