← 학습 로드맵
FOUNDATION · BEGINNER FIRST · VERIFIED LAB

Ethernet / MAC Table

이 Lab의 목표는 하나입니다.
스위치가 MAC 주소를 어떻게 배우고, 프레임을 어느 포트로 보낼지 어떻게 결정하는지 이해하는 것입니다.

구성·검증 완료 초급자 설명 우선 GNS3 · 실제 PCAP 근거
6전체 실험 · 패킷 5 + Aging 1
15원본 PCAP · 5개 실험 × 3지점
7핵심 동작 검증 항목
1저장된 GNS3 Lab

처음부터 PCAP이나 FDB 명령을 해석할 필요는 없습니다. 바로 아래 00 · 처음 읽기부터 보고, 그다음 실험은 “정말 그렇게 동작했는지 확인하는 증거”로 보면 됩니다.

LEARNING MODE · BEGINNER FIRST

처음에는 기본 모드만 보세요.

기본 흐름을 이해한 뒤 필요할 때 실무 확장·문제풀이·CLI를 추가로 펼칩니다.

기본 모드: Source MAC Learning → Destination MAC 조회 → Known/Unknown/Broadcast → ARP와 FDB 분리 순서만 먼저 봅니다.

00 · 처음 읽기 · BEGINNER FIRST

실험보다 먼저, 이것만 이해하세요.

처음에는 용어를 외우지 말고
스위치가 프레임 하나를 처리하는 순서만 따라가면 됩니다.

30초 요약 · 딱 두 문장

① Source MAC(출발지 MAC) = 스위치가 “이 장비가 어느 포트에 있는지” 학습할 때 봅니다.

② Destination MAC(목적지 MAC) = 스위치가 “이 프레임을 어느 포트로 내보낼지” 결정할 때 봅니다.

한 줄로 줄이면 출발지를 보고 학습하고, 목적지를 보고 전달합니다.

FRAME ANATOMY

스위치가 실제로 보는 Ethernet Frame

프레임의 앞부분만 보면 Learning과 Forwarding을 분리해서 이해할 수 있습니다.

Destination MAC PC2 MAC FDB 조회 → 출력 포트 결정
Source MAC PC1 MAC Learning → 수신 포트와 함께 기록
EtherType IPv4 / ARP 상위 프로토콜 종류
Payload IP · ARP 데이터 상위 계층 데이터

학습에 필요한 핵심은 Source MAC, 전달 판단에 필요한 핵심은 Destination MAC입니다. 이해를 위해 Preamble·FCS 등은 생략했습니다.

① 프레임이 들어옴

Source MAC을 봅니다.

PC1 프레임이 1번 포트로 들어왔다면 스위치는 PC1 MAC → 1번 포트라고 기억합니다.

② 목적지를 찾음

Destination MAC을 조회합니다.

목적지가 PC2라면 MAC Table에서 PC2 MAC이 어느 포트인지 찾아봅니다.

③ 내보낼 곳을 결정

다른 전달 포트를 알면 한 곳, 모르면 여러 곳

PC2 MAC이 수신 포트가 아닌 특정 전달 포트에 학습되어 있으면 그 포트로만 보냅니다. FDB에 없으면 동일 VLAN/Broadcast Domain의 다른 전달 가능 포트로 Flooding합니다.

가장 중요한 오개념: 스위치는 목적지 MAC을 배우려고 Flooding하는 것이 아닙니다.
Flooding은 목적지 MAC이 어느 포트에 있는지 모를 때 프레임을 여러 포트로 전달하는 동작입니다. 스위치가 PC2의 위치를 배우는 순간은 PC2가 보낸 프레임이 들어왔을 때입니다. 그때 Source MAC이 PC2이므로 PC2 MAC → 들어온 포트를 학습합니다.
KNOWN · UNKNOWN · BROADCAST

세 가지는 이렇게 구별하세요.

상황목적지 MAC스위치 상태동작쉽게 말하면
Known Unicast PC2의 실제 MAC PC2 MAC → 2번 포트를 알고 있음 2번 포트로만 전달 “PC2가 어디 있는지 안다.”
Unknown Unicast PC2의 실제 MAC PC2가 어느 포트인지 모름 동일 VLAN/Broadcast Domain의 전달 가능한 포트 중 수신 포트를 제외하고 Flooding “PC2에게 가는 건 맞는데 어느 문인지 모른다.”
Broadcast ff:ff:ff:ff:ff:ff 특정 한 장비의 포트를 찾는 상황이 아님 동일 VLAN/Broadcast Domain의 전달 가능한 포트 중 수신 포트를 제외하고 전달 “처음부터 같은 LAN 모두에게 보내는 주소다.”

Unknown Unicast ≠ Broadcast입니다. 둘 다 여러 포트로 나갈 수 있지만, Unknown Unicast의 Destination MAC은 여전히 PC2의 실제 MAC입니다. Broadcast만 ff:ff:ff:ff:ff:ff입니다.

FIRST PING · FULL FLOW

처음 Ping할 때 실제로는 어떤 순서일까요?

PC1과 PC2가 같은 서브넷이고
ARP Cache와 MAC Table이 비어 있다고 가정합니다.

STEP 1

PC1이 PC2의 MAC을 모릅니다.

PC1은 먼저 ARP Request로 “192.168.10.20의 MAC 주소가 뭐야?”라고 묻습니다.

STEP 2

ARP Request가 Switch에 들어옵니다.

Source MAC은 PC1입니다. 스위치는 먼저 PC1 MAC → 들어온 포트를 학습합니다. ARP Request는 Broadcast이므로 다른 포트에도 전달합니다.

STEP 3

PC2가 ARP Reply를 보냅니다.

이번에는 Source MAC이 PC2입니다. 스위치는 PC2 MAC → 들어온 포트를 학습합니다.

STEP 4

이제 Ping은 Known Unicast가 됩니다.

PC1은 PC2의 MAC을 알고, 스위치는 PC2의 포트를 압니다. 따라서 ICMP Echo Request는 PC2 포트로만 전달됩니다.

INTERACTIVE TIMELINE · FIRST PING

FDB와 ARP Cache가 변하는 순간을 순서대로 보세요.

READY

ARP Cache와 FDB가 비어 있습니다.

PC1은 PC2의 MAC 주소를 모르고, SW1도 PC1·PC2의 위치를 아직 학습하지 않은 상태에서 시작합니다.

아직 전송된 프레임 없음
PC1 · ARP CACHE PC2 항목 없음

192.168.10.20의 MAC을 아직 모름

SW1 · FDB 동적 PC 엔트리 없음

PC1·PC2가 어느 포트인지 아직 모름

SW1 · FORWARDING 대기

프레임이 들어오면 Source 학습 후 Destination을 판단

핵심 관찰: ARP는 PC의 IP → MAC 정보가 채워지는 과정이고, 동시에 스위치는 오가는 프레임의 Source MAC → Port를 학습합니다. 두 표는 서로 다른 장비가 서로 다른 목적으로 유지합니다.

ARP TABLE vs MAC TABLE

PC가 아는 정보와 Switch가 아는 정보는 다릅니다.

표주로 누가 보유?기억하는 관계쉬운 질문
ARP Cache / ARP TablePC, Router 등IP → MAC“192.168.10.20의 MAC이 뭐지?”
MAC Table / FDBSwitch / BridgeMAC → Port“이 MAC은 어느 포트 쪽에 있지?”
실무 정확도 · VLAN도 함께 생각하기: 실무에서는 MAC 주소만 단독으로 보지 않고 VLAN/Forwarding Domain의 문맥과 함께 확인해야 합니다. 많은 Enterprise Switch는 MAC Table 출력에서 VLAN·MAC·Port를 함께 보여주며, 내부 FDB 구조와 학습 범위는 장비 구현에 따라 달라질 수 있습니다. 이 Lab은 단일 Broadcast Domain만 사용하므로 초급 설명에서는 MAC → Port로 단순화했습니다.

그래서 ARP에는 있는데 MAC Table에는 없을 수도 있습니다.

PC1이 PC2의 MAC 주소를 알아도, 스위치가 PC2가 어느 포트에 있는지 모를 수 있습니다. 아래 04번 Unknown Unicast 실험이 바로 이 상태를 일부러 만든 것입니다.

용어가 헷갈리면 여기만 펼쳐보세요

MAC Table = FDB(Forwarding Database) · 이 페이지에서는 같은 의미로 봐도 됩니다.

Learning · 들어온 프레임의 Source MAC과 수신 포트를 기록하는 것.

Forwarding · Destination MAC을 보고 적절한 출력 포트로 프레임을 보내는 것.

Flooding · 출력 포트를 하나로 정할 수 없거나 Broadcast일 때 동일 VLAN/Broadcast Domain에서 전달 가능한 여러 포트로 프레임을 보내는 것.

Aging · 일정 시간 동안 갱신되지 않은 동적 MAC Table 항목을 지우는 것.

여기까지 읽었다면 아래부터는 새 개념이라기보다 위 설명이 실제로 맞는지 GNS3·FDB·PCAP으로 확인하는 구간입니다. 한 번에 전부 이해할 필요 없습니다.

01 · 그림으로 확인

세 PC, 하나의 Broadcast Domain

VPCS 3대 · Linux Bridge 1대
Gateway·NAT·외부 네트워크 연결 없음.

보는 순서: 받은 프레임의 Source/Destination MAC → MAC Table 상태 → 스위치의 출력 결정.

이 Lab의 범위: 단일 VLAN/Broadcast Domain · 모든 링크 Forwarding 상태 · Port Isolation 없음 · Unknown-Unicast 차단/억제 없음 · Gateway/NAT 없음. 실제 네트워크에서는 VLAN, STP 상태, 보안 기능 등에 따라 Flooding 가능한 포트 범위가 달라질 수 있습니다.
이 동작 그림이 모델링하지 않는 항목

VLAN/Trunk 구성 변경, STP Blocking/Topology Change, Port-Security·MAC 제한, Static MAC, Unknown-Unicast Suppression, 링크 장애, 실시간 FDB Aging 상태 전이는 이 그림에서 시뮬레이션하지 않습니다.

06번 Aging은 별도의 실제 Linux Bridge 실험 결과로 검증했으며, 아래 동작 그림 자체가 Aging 타이머를 재현하는 것은 아닙니다.

PREDICT BEFORE CHECKING

먼저 예상해보세요 · PC3 링크에서도 보일까요?

PC1의 ARP Cache에는 PC2 MAC이 남아 있지만, SW1의 FDB에서 PC2 MAC 항목만 삭제했습니다. 이 상태에서 PC1이 PC2로 Unicast를 보내면 PC3 연결 링크에서도 그 프레임이 관찰될까요?

① 받은 프레임

목적지 MAC: PC2

출발지 MAC: PC1 · PC2행 ICMP 요청

② 스위치 MAC Table

PC2 MAC → 2번 포트

수신한 출발지 PC1 MAC → 1번 포트 학습·갱신

③ 출력 결정

2번 포트로만 전달

목적지 MAC은 PC2 그대로

INGRESS PC1 프레임을 SW1으로 전송
SW1 · FDB LOOKUP PC2 MAC → 2번 포트 Source MAC 학습 후 Destination MAC 조회
PC2 링크 전달
PC3 링크 전달하지 않음

모바일에서는 위 흐름을 먼저 보고, 아래 상세 토폴로지는 필요할 때 좌우로 확인하세요.

PC1 .10은 eth0, PC2 .20은 eth1, PC3 .30은 eth2에 연결된 Linux Bridge 구성
PC3 링크: 이 요청을 전달하지 않음

PC1 → PC2 통신 · 근거 실험 02

Known Unicast · PC2 포트로만 전달

PC1 → SW1 eth0 / port 1 수신 → eth1 / port 2 송신. 목적지 MAC: 00:50:79:66:68:01.

PC2 전달 패킷 확인 → PC3 미전달 비교 →

갈색 점선은 현재 선택한 프레임의 이동 방향을 뜻하며 ARP/ICMP 같은 프로토콜 종류를 색으로 구분한 것이 아닙니다. 실제 PCAP에 근거한 설명 그림이며 실시간 애니메이션은 아닙니다.

FDB · BEFORE / AFTER

실제로 Source MAC이 학습되는 순간

관찰 시점MAC Table 상태뜻
① 초기화 직후PC 동적 엔트리 없음아직 PC 위치를 모름
② PC1 ARP Request 수신PC1 MAC → port 1PC1이 보낸 프레임을 받아 PC1 위치 학습
③ PC2 ARP Reply 수신PC1 MAC → port 1
PC2 MAC → port 2
PC2가 보낸 응답을 받아 PC2 위치도 학습
핵심: PC2를 찾기 위해 Flooding했다고 PC2 위치를 자동으로 배우는 것이 아닙니다. PC2가 응답을 보내고 그 프레임이 들어와야 PC2의 Source MAC과 수신 포트를 학습합니다.

01번 실제 FDB·콘솔 기록 보기 →

02 · 실제 실험

이제 설명이 실제로 맞는지 확인합니다.

처음에는 번호 · 확인 목적 · 결과만 보세요.
명령과 PCAP은 필요할 때 펼쳐보면 됩니다.

번호무엇을 확인?쉽게 말하면실제 결과근거
01Source MAC Learning스위치는 누구의 MAC을 보고 배우나?PC1 프레임을 받자 PC1→port1 학습. PC2 응답을 받은 뒤 PC2→port2 추가.
✓ PASS
FDB·콘솔 ↗
02Known UnicastPC2 위치를 알고 있으면?PC2 포트로만 요청 전달. PC3 링크에는 요청 0개.
✓ PASS
PC3 PCAP ↗
03BroadcastARP Request처럼 처음부터 모두에게 보내면?목적지 MAC ff:ff:ff:ff:ff:ff인 ARP Request가 PC2·PC3 링크에 전달.
✓ PASS
Broadcast PCAP ↗
04Unknown UnicastPC1은 PC2 MAC을 아는데 스위치만 PC2 포트를 모르면?목적지 MAC은 PC2 그대로지만 PC2와 PC3 포트 모두로 Flooding.
✓ PASS
PC3의 Unicast PCAP ↗
05MAC Re-learningPC2가 응답하면 다시 배울까?PC2 응답의 Source MAC으로 PC2→port2 재학습. 다음 요청은 PC3로 가지 않음.
✓ PASS
재학습 기록 ↗
06Aging오래 통신하지 않으면 MAC Table은?실험용 Aging 시간을 5초로 낮추자 동적 MAC 엔트리가 시간 경과 후 사라짐.
✓ PASS
Aging 콘솔 ↗
03 · 제일 중요한 비교

Known과 Unknown은 목적지 MAC이 같습니다.

KNOWN UNICAST

PC2 위치를 알고 있음

목적지 MAC
PC2 실제 MAC
SW1 FDB
PC2 MAC → port 2 있음
결과
PC2 포트로만 전달
PC3
요청 0개
Known 실제 PCAP ↗
UNKNOWN UNICAST

PC2 위치를 모름

목적지 MAC
PC2 실제 MAC · 그대로
SW1 FDB
PC2 MAC 없음
결과
PC2·PC3 포트로 Flooding
PC3
PC2 목적지 Unicast가 보임
Unknown 실제 PCAP ↗
Unknown은 “목적지 MAC을 모른다”는 뜻이 아닙니다. 정확히는 스위치의 FDB에 그 목적지 MAC이 어느 포트에 있는지 정보가 없다는 뜻입니다.
04 · ARP와 FDB 분리

ARP가 남아 있어도 Switch는 모를 수 있습니다.

ARP · IP → MAC

PC1이 알고 있는 정보

“192.168.10.20은 PC2 MAC을 사용한다.” 그래서 새 ARP 없이 PC2 목적지 Unicast 프레임을 만들 수 있습니다.

FDB · MAC → PORT

Switch가 알고 있는 정보

“PC2 MAC은 2번 포트에 있다.” 이 정보가 없으면 목적지 프레임을 어느 한 포트로 보낼지 결정할 수 없습니다.

04번 실험

ARP만 남기고 FDB를 삭제

PC1은 PC2 MAC을 알고 있지만 SW1은 PC2 포트를 모르는 상태를 만들어 Unknown Unicast Flooding을 직접 확인했습니다.

06 · 이해 확인

이 네 문장을 자신의 말로 설명할 수 있으면 됩니다.

초급 핵심

1. Switch는 어느 MAC을 보고 학습하나요?

답 확인

Source MAC입니다. 그리고 그 프레임이 들어온 포트를 함께 기록합니다.

2. Destination MAC을 FDB에서 못 찾으면?

답 확인

동일 VLAN/Broadcast Domain에서 전달 가능한 포트 중 수신 포트를 제외하고 Unknown Unicast Flooding합니다.

3. Unknown Unicast와 Broadcast는 같은가요?

답 확인

아닙니다. Unknown Unicast의 목적지 MAC은 특정 장비의 실제 MAC이고, Broadcast는 ff:ff:ff:ff:ff:ff입니다.

4. ARP Table과 MAC Table의 차이는?

답 확인

ARP는 IP → MAC, Switch MAC Table/FDB는 MAC → Port를 기억합니다.

이 네 가지가 아직 헷갈리면 아래 주제로 넘어가지 않아도 됩니다. 이 페이지의 목표는 용어 암기가 아니라 프레임이 왜 그 포트로 이동하는지 설명할 수 있게 되는 것입니다.

NEXT · OPTIONAL

기본 흐름이 이해됐다면 실무 확장으로 넘어가세요.

MAC Move·Flapping, 운영 판단 문제, Aruba/Cisco CLI 흐름, 원본 검증 자료는 고급 모드에서 확인할 수 있습니다.