Skip to content
Published on

[컴퓨터 네트워크] 16. 이더넷, 스위치, VLAN

Authors

이더넷, 스위치, VLAN

이더넷(Ethernet)은 유선 LAN의 사실상 표준으로, 전 세계 LAN 트래픽의 대부분을 처리합니다. 1973년 Bob Metcalfe가 발명한 이후 10Mbps에서 시작하여 현재 400Gbps까지 발전했습니다.

이 글에서는 MAC 주소와 ARP 프로토콜, 이더넷 프레임 구조, 링크 계층 스위치의 동작, VLAN, 그리고 데이터 센터 네트워크를 살펴봅니다.


1. MAC 주소와 ARP

1.1 MAC 주소

MAC(Media Access Control) 주소는 네트워크 인터페이스에 할당된 48비트(6바이트) 물리적 주소입니다.

MAC 주소 구조
===============

1A:2B:3C:4D:5E:6F  (16진수 표기)

- 48비트 = 6바이트
- 앞 24비트: OUI (제조사 식별자)
  예: 00:1A:2B = Ayecom Technology
- 뒤 24비트: 제조사가 할당하는 고유 번호
- 브로드캐스트 주소: FF:FF:FF:FF:FF:FF

IP 주소 vs MAC 주소:
  IP 주소:  네트워크 계층, 논리적, 위치에 따라 변경
  MAC 주소: 링크 계층, 물리적, 고정 (NIC에 내장)

1.2 ARP (Address Resolution Protocol)

ARP는 IP 주소를 MAC 주소로 변환하는 프로토콜입니다. 같은 서브넷 내에서 동작합니다.

ARP 동작 과정
===============

호스트 A (192.168.1.10)가 호스트 B (192.168.1.20)에게 데이터 전송

1. A의 ARP 테이블에 B의 MAC 주소가 없음

2. A가 ARP 요청 브로드캐스트:
   "192.168.1.20의 MAC 주소는?"
   목적지 MAC: FF:FF:FF:FF:FF:FF (브로드캐스트)
   출발지 MAC: A의 MAC 주소

3. 서브넷의 모든 노드가 ARP 요청 수신
   B만 응답: "내 MAC 주소는 BB:BB:BB:BB:BB:BB"
   목적지 MAC: A의 MAC 주소 (유니캐스트)

4. A가 ARP 테이블에 B의 매핑 저장 (TTL: 보통 20분)

ARP 테이블 예시:
  IP 주소        | MAC 주소            | TTL
  ---------------+--------------------+------
  192.168.1.20   | BB:BB:BB:BB:BB:BB  | 13분
  192.168.1.1    | AA:AA:AA:AA:AA:AA  | 8분

1.3 서로 다른 서브넷 간 통신

다른 서브넷의 호스트와 통신할 때는 게이트웨이 라우터의 MAC 주소를 사용합니다.

서브넷 간 통신
================

호스트 A (10.0.0.2) --> 호스트 B (20.0.0.2)

서브넷 1                라우터                서브넷 2
[A: 10.0.0.2]  ----  [10.0.0.1 | 20.0.0.1]  ----  [B: 20.0.0.2]
 MAC: AA              MAC: R1L  | MAC: R1R           MAC: BB

1단계: A가 라우터에게 전송
  출발지 MAC: AA, 목적지 MAC: R1L
  출발지 IP: 10.0.0.2, 목적지 IP: 20.0.0.2

2단계: 라우터가 B에게 전송
  출발지 MAC: R1R, 목적지 MAC: BB
  출발지 IP: 10.0.0.2, 목적지 IP: 20.0.0.2

  --> MAC 주소는 홉마다 변경, IP 주소는 종단 간 유지

2. 이더넷 프레임 구조

이더넷 프레임 형식
====================

+----------+----------+----------+------+----------+-----+
| Preamble | Dest MAC | Src MAC  | Type |   Data   | CRC |
| 8 bytes  | 6 bytes  | 6 bytes  | 2 B  | 46~1500  | 4 B |
+----------+----------+----------+------+----------+-----+

필드 설명:
  Preamble (8바이트):
    - 7바이트: 10101010 패턴 (클럭 동기화)
    - 1바이트: 10101011 (SFD, 프레임 시작 표시)

  Dest MAC (6바이트): 목적지 MAC 주소
  Src MAC (6바이트):  출발지 MAC 주소

  Type (2바이트): 상위 계층 프로토콜 식별
    - 0x0800: IPv4
    - 0x0806: ARP
    - 0x86DD: IPv6

  Data (46~1500바이트): 페이로드
    - 최소 46바이트 (미만이면 패딩 추가)
    - 최대 1500바이트 (MTU)

  CRC (4바이트): 오류 검출 (CRC-32)

2.1 이더넷의 특성

이더넷 특성
=============

- 비연결형: 핸드셰이크 없음
- 비신뢰적: ACK/NAK 없음, 오류 프레임은 단순 폐기
  (상위 계층 TCP가 재전송 담당)
- CSMA/CD 사용 (반이중 모드)
  (전이중 모드에서는 CSMA/CD 불필요)

이더넷 속도 발전:
  10 Mbps    (10BASE-T)     1990년대
  100 Mbps   (Fast Ethernet) 1995년
  1 Gbps     (Gigabit)       1999년
  10 Gbps    (10GbE)         2002년
  40/100 Gbps                2010년
  400 Gbps                   2017년

3. 링크 계층 스위치

3.1 스위치의 역할

링크 계층 스위치는 들어오는 프레임의 MAC 주소를 검사하여 적절한 포트로 전달합니다. 호스트나 라우터에게 자신의 존재가 투명(transparent)합니다.

스위치 동작 개요
==================

     포트1    포트2    포트3    포트4
      |        |        |        |
   +--+--------+--------+--------+--+
   |         링크 계층 스위치          |
   +--+--------+--------+--------+--+
      |        |        |        |
    [A]      [B]      [C]      [D]

A가 C에게 프레임 전송:
  1. 스위치가 포트1로 프레임 수신
  2. 목적지 MAC = C의 MAC
  3. 스위치 테이블 조회: C는 포트3에 연결
  4. 프레임을 포트3으로만 전달
  --> B와 D는 이 프레임을 수신하지 않음

3.2 자가 학습 (Self-Learning)

스위치는 별도의 설정 없이 자동으로 스위치 테이블을 구성합니다.

자가 학습 알고리즘
====================

프레임이 포트 x에서 출발지 MAC = AA로 도착하면:
  --> 스위치 테이블에 기록: MAC AA는 포트 x에 연결 (TTL 설정)

스위치 테이블 구성 과정:
  시점 0: 테이블 비어있음

  시점 1: A(포트1)가 C에게 프레임 전송
    테이블: A -> 포트1
    C의 위치를 모르므로 --> 플러딩 (포트1 제외 모든 포트로 전송)

  시점 2: C(포트3)가 A에게 응답
    테이블: A -> 포트1, C -> 포트3
    A의 위치를 알고 있으므로 --> 포트1로만 전달

  시점 3: B(포트2)가 A에게 전송
    테이블: A -> 포트1, C -> 포트3, B -> 포트2
    A의 위치를 알고 있으므로 --> 포트1로만 전달

3.3 스패닝 트리 프로토콜 (STP)

네트워크에 루프가 있으면 프레임이 무한히 순환합니다. STP는 루프를 방지하기 위해 일부 포트를 비활성화하여 트리 구조를 만듭니다.

스패닝 트리 예시
==================

루프가 있는 토폴로지:

  [SW1] ---- [SW2]
    |    \    / |
    |     \ /   |
    |      X    |
    |     / \   |
    |    /    \ |
  [SW3] ---- [SW4]

STP 적용 후 (일부 링크 비활성화):

  [SW1] ---- [SW2]
    |              |
    |              |
  [SW3]       [SW4]

  비활성화된 링크: SW1-SW4, SW2-SW3, SW3-SW4
  --> 루프 없는 트리 구조 형성

STP의 동작 과정:

  1. 루트 브리지 선출: 가장 작은 브리지 ID를 가진 스위치가 루트
  2. 루트 포트 결정: 각 비루트 스위치에서 루트까지 최소 비용 경로의 포트
  3. 지정 포트 결정: 각 세그먼트에서 루트까지 비용이 가장 작은 포트
  4. 나머지 포트 차단: 루트 포트도 지정 포트도 아닌 포트를 블로킹

4. 스위치 vs 라우터

스위치 vs 라우터 비교
=======================

항목              | 스위치 (L2)         | 라우터 (L3)
------------------+--------------------+--------------------
동작 계층         | 링크 계층 (L2)      | 네트워크 계층 (L3)
주소 사용         | MAC 주소            | IP 주소
테이블            | 스위치 테이블       | 포워딩 테이블
플러그 앤 플레이  | 자가 학습 (예)      | 설정 필요 (부분적)
루프 처리         | STP 필요            | TTL로 자연 제거
브로드캐스트      | 전체 전파           | 차단 가능
확장성            | 대규모에서 한계     | 계층적 확장 가능

5. VLAN (Virtual Local Area Network)

5.1 VLAN의 필요성

하나의 물리적 스위치를 여러 논리적 LAN으로 분리합니다.

VLAN이 필요한 상황
====================

물리적으로 하나의 스위치:
  포트 1-4:  마케팅팀
  포트 5-8:  개발팀
  포트 9-12: 경영진

VLAN 없이: 모든 브로드캐스트가 전 포트로 전파
  --> 보안 문제, 성능 저하

VLAN 적용:
  VLAN 10 (마케팅): 포트 1-4
  VLAN 20 (개발):   포트 5-8
  VLAN 30 (경영):   포트 9-12

  --> 각 VLAN은 독립된 브로드캐스트 도메인
  --> VLAN 간 통신은 라우터를 통해서만 가능

5.2 트렁크 포트와 802.1Q

여러 스위치에 걸쳐 VLAN을 구성할 때 트렁크 포트를 사용합니다.

VLAN 트렁킹
==============

[스위치 1]                        [스위치 2]
VLAN 10: 포트 1,2     트렁크      VLAN 10: 포트 1,2
VLAN 20: 포트 3,4  <=========>    VLAN 20: 포트 3,4

트렁크 포트: 여러 VLAN의 프레임을 하나의 링크로 전송

802.1Q 태그 (4바이트):
+--------+-----+-------+---------+
| TPID   | PRI | CFI   | VLAN ID |
| 0x8100 | 3b  | 1b    | 12비트  |
+--------+-----+-------+---------+

VLAN ID: 0~4095 (4096개 VLAN 가능)

동작: 트렁크로 프레임 전송 시 802.1Q 태그 추가
      수신 측에서 태그를 확인하고 해당 VLAN 포트로 전달

6. MPLS (Multiprotocol Label Switching)

6.1 MPLS의 개념

MPLS는 IP 주소 대신 짧은 레이블을 사용하여 빠른 포워딩을 수행합니다. 링크 계층과 네트워크 계층 사이에서 동작합니다.

MPLS 동작
==========

일반 IP 라우팅:
  각 라우터에서 IP 주소를 기반으로 최장 프리픽스 매칭 수행 (느림)

MPLS 라우팅:
  입구 라우터에서 레이블 할당 --> 중간 라우터는 레이블만 참조 (빠름)

패킷 구조:
  [L2 헤더][MPLS 레이블][IP 헤더][데이터]

MPLS 헤더 (4바이트):
  +-------+-----+---+-----+
  | Label | Exp | S | TTL |
  | 20bit | 3b  | 1b| 8b  |
  +-------+-----+---+-----+

장점:
  - IP 라우팅보다 빠른 포워딩
  - 트래픽 엔지니어링 가능
  - VPN 구성 용이

7. 데이터 센터 네트워크

7.1 데이터 센터의 규모

대형 데이터 센터는 수만~수십만 대의 서버를 수용하며, 이들을 연결하는 네트워크 설계가 중요합니다.

데이터 센터 네트워크 토폴로지
===============================

전통적 계층 구조:

          [코어 스위치]
         /      |      \
    [집선 스위치] [집선 스위치] [집선 스위치]
    /    \     /    \     /    \
 [ToR]  [ToR] [ToR] [ToR] [ToR] [ToR]
  |||    |||   |||   |||   |||   |||
 서버   서버   서버  서버  서버  서버

ToR: Top-of-Rack 스위치 (랙 상단에 위치)
집선: Aggregation 스위치
코어: Core 스위치

문제점: 상위 계층으로 갈수록 대역폭 병목

7.2 Fat-Tree 토폴로지

Fat-Tree 토폴로지
====================

         [코어 스위치들]
        / | | | | | | | \
   [집선1]  [집선2]  [집선3]  [집선4]
   / | \    / | \    / | \    / | \
 [ToR] [ToR] [ToR] [ToR] [ToR] [ToR]

특징:
  - 모든 계층에서 동일한 대역폭 제공
  - 여러 경로를 통한 부하 분산
  - 저렴한 범용 스위치 사용 가능
  - 서버 간 양분(bisection) 대역폭 최대화

7.3 로드 밸런싱

데이터 센터 로드 밸런싱
=========================

외부 요청 --> [로드 밸런서] --> 서버 1
                            --> 서버 2
                            --> 서버 3
                            --> 서버 4

로드 밸런서의 역할:
  - 외부에 하나의 공인 IP 노출
  - 들어오는 요청을 내부 서버들에 분배
  - 서버 상태 모니터링 (헬스 체크)
  - L4 (TCP 포트 기반) 또는 L7 (HTTP 기반) 분배

8. 정리

개념핵심 내용
MAC 주소48비트 물리적 주소, NIC에 고정
ARPIP 주소를 MAC 주소로 변환, 브로드캐스트 요청
이더넷 프레임Preamble + MAC + Type + Data + CRC
자가 학습스위치가 출발지 MAC을 보고 테이블 자동 구성
STP루프 방지를 위한 트리 구조 유지
VLAN하나의 스위치를 여러 논리적 LAN으로 분리
802.1QVLAN 태그(4바이트)를 프레임에 추가
MPLS레이블 기반 빠른 포워딩

다음 글에서는 무선 네트워크와 모바일 통신의 특성을 살펴보겠습니다.


참고 자료

  • James F. Kurose, Keith W. Ross, "Computer Networking: A Top-Down Approach", 6th Edition, Chapter 5
  • IEEE 802.3 - Ethernet Standard
  • IEEE 802.1Q - VLAN Tagging
  • RFC 826 - An Ethernet Address Resolution Protocol