안동민 개발노트 아이콘

안동민 개발노트

3장 : 물리 계층과 데이터 링크 계층

스위치와 ARP

이더넷 프레임이 MAC 주소를 기반으로 전달된다는 것을 알았습니다. 그런데 실제 LAN에는 수십, 수백 대의 장치가 연결되어 있습니다. 프레임이 목적지까지 정확하게 도달하려면, 누군가가 이 MAC 주소는 어느 포트에 있다는 정보를 관리해야 합니다.

그 역할을 하는 장치가 스위치(Switch)이고, IP 주소로부터 MAC 주소를 알아내는 메커니즘이 ARP(Address Resolution Protocol)입니다.

스위치와 ARP는 서로 다른 문제를 풉니다. 스위치는 이미 들어온 이더넷 프레임을 어느 포트로 내보낼지 결정하고, ARP는 프레임을 만들기 전에 다음 홉 IP에 대응하는 MAC 주소를 알아냅니다.


허브 vs 스위치

비교허브스위치
동작 계층L1 (물리)L2 (데이터 링크)
전달 방식모든 포트에 복제목적지 포트만
충돌 도메인전체가 하나포트별 독립
대역폭공유포트별 전용
MAC 주소 인식불가학습/관리
전이중 통신일반적으로 불가가능

MAC 주소 테이블과 학습 과정

스위치의 MAC 주소 테이블(CAM 테이블)은 어떤 MAC 주소가 어떤 포트에 연결되어 있는가를 기록합니다. 실제 장비에서는 VLAN까지 함께 묶어 VLAN + MAC 주소 → 포트 형태로 관리하는 경우가 많습니다. 학습은 자동으로 이루어집니다.

스위치는 프레임의 출발지 MAC 주소를 보고 학습합니다. 목적지 MAC 주소는 테이블 조회에 쓰이지만, 학습의 근거가 되는 값은 Source MAC입니다.

스위치의 주요 동작

동작조건설명
학습 (Learning)프레임 수신 시출발지 MAC + 입력 포트를 테이블에 기록
포워딩 (Forwarding)목적지 MAC이 테이블에 존재해당 포트로만 전달
플러딩 (Flooding)목적지 MAC이 테이블에 없음입력 포트 제외 같은 VLAN의 포트로 전달
필터링 (Filtering)출발·목적 포트 동일전달하지 않음 (같은 세그먼트)
에이징 (Aging)타이머 만료동적 항목 자동 삭제

에이징 시간은 장비와 설정에 따라 달라지며, 300초는 흔히 볼 수 있는 예시입니다.


ARP의 동작 원리

컴퓨터 A가 같은 L2 브로드캐스트 도메인(VLAN)에 있는 컴퓨터 B에게 데이터를 보내려 합니다. A는 B의 IP 주소는 알고 있지만, B의 MAC 주소는 모릅니다.

ARP 요청(ARP Request)은 브로드캐스트(FF:FF:FF:FF:FF:FF)로 같은 L2 브로드캐스트 도메인의 모든 장치에게 전달됩니다. 해당 IP를 가진 장치만 ARP 응답(ARP Reply)을 유니캐스트로 보냅니다.

응답을 받은 A는 ARP 캐시(ARP Cache)에 매핑 정보를 저장합니다. 매핑이 유효한 동안에는 캐시에서 바로 조회하므로 ARP 요청을 반복하지 않습니다.

목적지 IP가 다른 네트워크에 있으면 ARP로 최종 목적지의 MAC을 찾지 않습니다. 먼저 라우팅 테이블로 기본 게이트웨이를 다음 홉으로 고르고, ARP는 기본 게이트웨이의 MAC 주소를 알아내는 데 사용됩니다.


ARP 테이블 확인 실습

arp_commands.sh
# ARP 테이블 확인
arp -a

# Linux에서 상세 확인
ip neigh show

# 출력 예시:
# 192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
# 192.168.1.20 dev eth0 lladdr 00:1a:2b:3c:4d:5e STALE

# Linux Neighbor Unreachability Detection 상태 의미:
# REACHABLE - 최근 통신으로 확인됨
# STALE     - 확인 후 시간 경과, 재확인 필요
# DELAY     - 재확인 대기 중
# PROBE     - 재확인 요청 전송됨
# FAILED    - 응답 없음

# 특정 IP의 MAC 주소 확인 (ARP 요청 발생)
arping -c 3 192.168.1.1

# ARP 캐시 강제 삭제
sudo ip neigh flush all

Gratuitous ARP

Gratuitous ARP는 넓게는 누가 물어보지 않았는데도 자신의 IPv4 주소와 MAC 주소 관계를 알리는 ARP 동작을 가리킵니다. RFC 5227에서는 충돌 확인용 ARP Probe와 사용 시작을 알리는 ARP Announcement를 구분합니다.

  • IP 충돌 감지: 사용하려는 IP를 대상으로 ARP Probe를 보내고, 충돌 응답이나 충돌 패킷을 받으면 같은 IP를 쓰는 장치가 있다는 의미입니다.

  • ARP 캐시 갱신: 서버의 NIC를 교체했거나 가상 IP의 소유자가 바뀌었을 때, 같은 IP에 대한 MAC 주소가 변경된 것을 같은 링크의 장치들에게 알립니다.

VRRP(가상 라우터 이중화)에서 마스터 전환 시에도 Gratuitous ARP가 사용됩니다. 새 마스터가 이 가상 IP의 MAC 주소가 나로 바뀌었다고 알리는 것입니다.


스위치의 고급 기능

STP (Spanning Tree Protocol)

네트워크 이중화를 위해 스위치 간 여러 경로를 만들면 루프가 발생할 수 있습니다. 프레임이 무한 순환하면 브로드캐스트 폭풍이 일어나고 네트워크가 마비됩니다.

STP 계열 프로토콜은 BPDU를 교환해 루프가 생길 수 있는 경로를 찾고, 일부 포트를 논리적으로 차단(Blocking)하거나 RSTP/MSTP 표현으로 폐기(Discarding) 상태에 두어 트리 구조를 만듭니다. 활성 경로에 장애가 발생하면 차단된 경로를 자동으로 활성화합니다.

STP 계열수렴 시간 예시특징
STP (802.1D)30~50초전통적 방식, 느린 수렴
RSTP (802.1w)1~2초 수준빠른 수렴, 현대 장비의 기본
MSTP (802.1s)1~2초 수준여러 VLAN을 트리 인스턴스별로 묶음

표의 표준 번호는 학습용으로 자주 쓰이는 역사적 표기입니다. RSTP와 MSTP 기능은 이후 IEEE 802.1 표준 계열에 통합되어 관리됩니다.

여러 물리 링크를 하나의 논리 링크로 묶어 대역폭과 이중화를 동시에 확보합니다. LACP는 과거 802.3ad로 많이 불렸지만, 현재는 IEEE 802.1AX Link Aggregation 표준으로 관리됩니다.

서버 ═══╡ eth0 ╞═══╗
       ╡ eth1 ╞═══╬═══ 스위치
       ╡ eth2 ╞═══╝

3 x 1Gbps = 여러 흐름을 분산할 수 있는 논리적 3Gbps, 하나 끊겨도 2Gbps 유지

다만 LAG는 보통 해시 기반으로 흐름을 물리 링크에 분산합니다. 그래서 하나의 TCP 연결이 항상 3Gbps를 모두 쓰는 구조가 아니라, 여러 흐름이 있을 때 전체 처리량과 이중화 효과가 커집니다.

다음 절에서는 네트워크를 논리적으로 분리하는 VLAN과, 데이터 링크 계층에서 발생할 수 있는 보안 위협을 살펴보겠습니다.