Infra Architecture/Network Fundamentals

Network Fundamentals - 02. 이더넷과 L2

같은 동네 안에서 문패로 찾아가는 기술 — 이더넷과 L2

컴퓨터 두 대를 스위치에 연결하면 — 서로 통신이 된다. 그 "연결"의 밑바닥에서 무슨 일이 일어나는가? IP 주소는 아직 모른다. 라우팅도 없다. 인터넷도 안 나간다. 그냥 — 같은 스위치에 꽂힌 두 컴퓨터가 서로를 찾아가는 것. 이것을 가능하게 하는 것이 이더넷(Ethernet)데이터 링크 계층(L2) 이다. OSI 7계층의 두 번째 층.

이 글은 같은 네트워크 세그먼트(랜, LAN) 안에서 통신이 어떻게 이루어지는지를 다룬다. MAC 주소 — 네트워크 카드마다 붙은 고유 번호 — 로 장치를 식별하고, 이더넷 프레임으로 데이터를 포장하고, ARP로 IP 주소를 MAC 주소로 변환하고, 스위치가 프레임을 올바른 포트로 보내는 과정. 이전 글에서 본 7계층 모델의 L2를 깊이 파헤친다. 비유하자면 — "같은 동네 안에서 문패(MAC 주소)를 보고 집을 찾아가는" 기술이다.

이더넷 — 같은 네트워크 안의 통신 규칙

이더넷(Ethernet) 은 1973년 Xerox PARC의 Robert Metcalfe가 발명한 네트워크 기술이다. 현재 전 세계 유선 네트워크의 사실상 유일한 표준이다 — 사무실·데이터센터·가정에서 쓰는 랜선(RJ45)이 전부 이더넷이다. IEEE 802.3이 공식 표준 번호.

이더넷의 핵심은 — 같은 네트워크 세그먼트 안의 장치들이 MAC 주소로 서로를 식별하고 통신하는 것이다. "같은 세그먼트"란 — 같은 스위치(또는 연결된 스위치들)에 연결된 장치들의 모임이다. 이 안에서는 — 라우터가 필요 없다. 스위치가 프레임을 목적지로 직접 전달한다.

이더넷의 속도는 시대에 따라 발전했다. 10Mbps(1980년대) → 100Mbps(1990년대) → 1Gbps(2000년대) → 10Gbps(2010년대) → 25/40/100Gbps(2020년대 데이터센터). 가정·사무실은 보통 1Gbps 또는 2.5Gbps, 데이터센터 서버는 10 ~ 100Gbps가 표준이다.

MAC 주소 — 네트워크 카드의 고유 번호

이더넷 통신에서 장치를 식별하는 것이 MAC 주소(Media Access Control address) 다. 네트워크 인터페이스 카드(NIC)가 출고될 때 하드웨어에 새겨지는 48비트(6바이트) 고유 번호다. 예: 0a:1b:2c:3d:4e:5f.

MAC 주소를 이해하려면 IP 주소와의 차이를 봐야 한다.

특성 MAC 주소 (L2) IP 주소 (L3)
할당 주체 제조사 (하드웨어에 고정) 네트워크 관리자 (DHCP/수동)
변경 가능성 거의 불가 (하드웨어 고정) 가능 (이동하면 바뀜)
범위 같은 세그먼트 안 전역 (인터넷 전체)
비유 주민등록번호 집 주소
계층 L2 (데이터 링크) L3 (네트워크)

비유하자면 — MAC 주소는 주민등록번호, IP 주소는 집 주소다. 주민등록번호는 태어날 때 부여되고 평생 안 바뀌지만(하드웨어 고정), 집 주소는 이사하면 바뀐다(네트워크 이동). 편지(데이터)가 집 주소(IP)로 오면 — 우체부(스위치)가 집 주소에 사는 사람의 주민등록번호(MAC)를 확인하고, 그 사람에게 직접 전달한다. 이 "IP 주소 → MAC 주소" 변환을 ARP가 담당한다.

MAC 주소의 구조를 보자. 6바이트를 두 부분으로 나눈다.

MAC 주소: 0a:1b:2c:3d:4e:5f
           ^^^^^^^ ^^^^^^^
           OUI     NIC 고유부
           (제조사) (일련번호)

OUI(Organizationally Unique Identifier) — 앞 3바이트. IEEE가 제조사에 할당한 식별 번호. 0a:1b:2c가 Intel이면 — 이 MAC 주소를 가진 NIC는 Intel 제품이라는 걸 알 수 있다. NIC 고유부 — 뒤 3바이트. 제조사가 자기 제품에 부여하는 일련번호. 같은 제조사 안에서 겹치지 않는다.

특수 MAC 주소가 있다. ff:ff:ff:ff:ff:ff브로드캐스트 주소 — 이 주소로 보내면 같은 세그먼트의 모든 장치가 받는다. "동네방네 전체에 방송하는 것"과 같다. ARP 요청이 브로드캐스트로 전송된다.

이더넷 프레임 — L2의 데이터 포장

이전 글에서 본 캡슐화의 L2 버전이 이더넷 프레임(frame) 이다. L3(네트워크 계층)에서 내려온 패킷에 L2 헤더와 트레일러(꼬리)를 붙여 만든다.

이더넷 프레임 구조:
┌──────────────┬──────────────┬───────┬──────────────────┬─────────┐
│ 목적지 MAC    │ 출발지 MAC    │ 타입   │ 페이로드 (데이터)  │ FCS     │
│ (6바이트)     │ (6바이트)     │(2바이트)│ (46 ~ 1500바이트) │ (4바이트)│
└──────────────┴──────────────┴───────┴──────────────────┴─────────┘

각 필드의 의미:

  • 목적지 MAC (6바이트) — 받는 장치의 MAC 주소. 스위치가 이 주소를 보고 어느 포트로 보낼지 결정.
  • 출발지 MAC (6바이트) — 보내는 장치의 MAC 주소. 받는 쪽이 "누가 보냈나"를 안다.
  • 타입/길이 (2바이트) — 페이로드가 무슨 프로토콜인지. 0x0800이면 IPv4, 0x86DD이면 IPv6, 0x0806이면 ARP. 받는 쪽이 "이 프레임의 내용을 어느 상위 계층으로 올릴까"를 결정.
  • 페이로드 (46 ~ 1500바이트) — 실제 데이터. IP 패킷이 들어간다. 최소 46바이트(이더넷 충돌 감지를 위해), 최대 1500바이트(MTU, Maximum Transmission Unit). 이 1500바이트 제한이 네트워크 설계에서 자주 등장한다.
  • FCS (Frame Check Sequence, 4바이트) — 오류 검출 코드(CRC32). 전송 중 비트가 뒤집히지 않았는지 확인. FCS가 맞지 않으면 — 프레임은 버려진다(drop).

ARP — IP 주소를 MAC 주소로 변환

이더넷 통신은 MAC 주소로 이루어진다. 하지만 애플리케이션은 IP 주소를 쓴다 — 브라우저는 192.0.2.1에 접속하지, MAC 주소 0a:1b:2c:3d:4e:5f에 접속하지 않는다. 그럼 "IP 192.0.2.1인 장치의 MAC 주소는 뭔가?"를 알아야 한다. 이걸 담당하는 게 ARP(Address Resolution Protocol) 다.

ARP의 동작을 우체국 비유로 보자. 우체부(IP를 쓰는 앱)가 "192.0.2.1번지 집(이웃 집)에 편지를 배달하려 한다. 근데 이 집의 문패(MAC)가 뭔지 모른다"고 치자. 그러면:

  1. ARP 요청(브로드캐스트) — "동네방네 여러분! 192.0.2.1번지 사시는 분, 문패 좀 알려주세요!" (목적지 MAC = ff:ff:ff:ff:ff:ff, 내용 = "IP 192.0.2.1의 MAC이 뭔가?")
  2. ARP 응답(유니캐스트) — 192.0.2.1번지 장치가 대답한다. "제 문패는 0a:1b:2c:3d:4e:5f입니다." (목적지 MAC = 질문자의 MAC)
  3. ARP 캐시 — 질문자가 이 대답을 기억해 둔다(/proc/net/arp 또는 ip neigh로 확인). 다음부터는 다시 물어볼 필요 없이 기억에서 찾는다. 캐시는 보통 수 분 후 만료된다.
sequenceDiagram
    participant A as 장치 A<br/>(IP: .10, MAC: aa:aa)
    participant S as 스위치
    participant B as 장치 B<br/>(IP: .20, MAC: bb:bb)

    A->>S: ARP 요청 (브로드캐스트)<br/>"IP .20의 MAC이 뭔가?"
    S->>B: 브로드캐스트 전달
    B-->>A: ARP 응답 (유니캐스트)<br/>"MAC은 bb:bb"
    Note over A: ARP 캐시에 저장:<br/>.20 → bb:bb
    A->>B: 이제 MAC 주소로 직접 통신

ARP는 IPv4에서만 쓴다. IPv6은 NDP(Neighbor Discovery Protocol, RFC 4861)라는 별도 프로토콜로 같은 일을 한다.

스위치 — L2 트래픽을 분배하는 장치

스위치(switch) 는 이더넷 프레임을 받아서 목적지 MAC 주소를 보고 올바른 포트로 전달하는 장치다. OSI 모델의 L2에서 동작한다("L2 스위치"라고도 부른다).

스위치가 핵심적으로 하는 일은 두 가지다.

1. MAC 학습(MAC learning) — 스위치는 들어오는 프레임의 출발지 MAC과 그 프레임이 들어온 포트를 기록한다. "포트 1에서 MAC aa:aa가 온 프레임이 왔으니, aa:aa는 포트 1에 있구나." 이걸 MAC 주소 테이블(MAC address table, 또는 CAM table) 에 저장한다. 시간이 지나면 테이블이 채워지고, 스위치는 "어느 MAC이 어느 포트에 있는지"를 알게 된다.

2. 프레임 전달(forwarding) — 프레임의 목적지 MAC을 MAC 주소 테이블에서 찾는다.

  • 테이블에 있으면 — 해당 포트로만 전달(유니캐스트 forwarding). 다른 포트에는 안 보낸다.
  • 테이블에 없으면 — 모든 포트로 전달(플러딩, flooding). "누구야?" 하고 동네방네에 방송하는 것. 정확한 장치가 응답하고, 그 장치의 MAC이 학습된다.
  • 목적지 MAC이 ff:ff:ff:ff:ff:ff(브로드캐스트)면 — 의도적으로 모든 포트로 전달.
# 스위치의 MAC 주소 테이블 예시
포트 1: aa:aa:aa:aa:aa:aa  (서버 A)
포트 2: bb:bb:bb:bb:bb:bb  (서버 B)
포트 3: cc:cc:cc:cc:cc:cc  (서버 C)

이 테이블이 있으면 — 서버 A가 서버 B에게 프레임을 보낼 때, 스위치는 "목적지 MAC bb:bb는 포트 2에 있네"하고 포트 2로만 전달한다. 포트 3(서버 C)에는 안 간다. 이게 스위치가 허브(hub) 보다 우월한 점이다 — 허브는 모든 포트로 무조건 전달(플러딩)하지만, 스위치는 학습해서 정확한 포트로만 보낸다. 허브는 사실상 사라졌고, 현대 네트워크는 전부 스위치다.

스위치 vs 라우터 — 어디까지가 같은 동네?

스위치가 L2(MAC 주소)에서 동작한다면 — 라우터는 L3(IP 주소)에서 동작한다. 스위치는 "같은 동네 안"에서만 프레임을 전달하지만, 라우터는 "다른 동네로" 패킷을 전달한다.

특성 스위치 (L2) 라우터 (L3)
주소 MAC 주소 IP 주소
통신 범위 같은 세그먼트 (같은 LAN) 서로 다른 네트워크 간
전달 방식 MAC 주소 테이블 기반 라우팅 테이블 기반
브로드캐스트 전달 (같은 세그먼트에) 차단 (다른 네트워크로 안 넘김)
전형 장비 사무실 스위치, ToR 스위치 인터넷 라우터, 가정용 공유기

라우터는 다음 글(IP와 서브네팅)과 라우팅 글에서 깊이 다룬다. 여기서는 "스위치는 같은 동네, 라우터는 다른 동네"라는 구분만 잡는다.

MTU — 프레임 페이로드의 최대 크기

이더넷 프레임의 페이로드 최대 크기를 MTU(Maximum Transmission Unit) 라 부른다. 표준 이더넷의 MTU는 1500바이트다. 이 숫자는 — IP 패킷이 최대 1500바이트까지 이더넷 프레임에 담길 수 있다는 뜻이다. 1500바이트가 넘는 패킷은 — 분할(fragmentation)되거나, 앱이 처음부터 1500바이트 이하로 잘라서 보내야 한다.

MTU는 네트워크 설계에서 자주 문제가 된다. VPN·터널링(GRE·IPsec·VXLAN)은 패킷에 추가 헤더를 붙이므로 — 실제 사용 가능한 MTU가 줄어든다. 예를 들어 VXLAN이 50바이트 헤더를 추가하면 — 이더넷 MTU 1500에서 VXLAN 헤더를 빼면 1450바이트만 앱에 쓸 수 있다. 이걸 해결하려면 — 물리 네트워크의 MTU를 1500에서 9000(점보 프레임, jumbo frame)으로 올려서, 오버헤드를 흡수한다. 데이터센터 네트워크에서 jumbo frame이 흔한 이유다.

# 인터페이스의 MTU 확인
ip link show eth0 | grep mtu
# MTU 변경 (root 필요)
sudo ip link set eth0 mtu 9000

이더넷의 프레임 처리 — 충돌 도메인과 CSMA/CD

초기 이더넥(10BASE5·10BASE-T)은 CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 라는 접근 방식을 썼다. "말하기 전에 먼저 듣고(Carrier Sense), 누군가 말하고 있으면 기다리고, 동시에 말하면 충돌(Collision)을 감지하고 잠시 쉰다"는 규칙이다. hub 기반 네트워크에서는 — 모든 장치가 같은 선을 공유하므로 충돌이 빈번했다.

현대 스위치 기반 네트워크에서는 — 각 포트가 전이중(full-duplex) 통신을 하므로(송수신이 동시에 가능), 충돌이 발생하지 않는다. CSMA/CD는 hub 시대의 유물이다. 하지만 이더넷 프레임 구조(MAC 주소·타입·FCS)는 그대로 유지된다 — 호환성 때문이다.

충돌 도메인(collision domain) 이란 — 충돌이 발생할 수 있는 범위다. hub는 모든 포트가 하나의 충돌 도메인이지만, 스위치는 각 포트가 별도의 충돌 도메인이다(포트 간 충돌 없음). 스위치가 충돌을 "해결"한 것이다.

네트워크 장비 충돌 도메인 브로드캐스트 도메인
Hub 전체가 1개 전체가 1개
L2 스위치 각 포트가 별도 전체가 1개 (VLAN 없으면)
VLAN 스위치 각 포트가 별도 VLAN마다 별도
라우터 (L3) 각 포트가 별도 각 인터페이스가 별도

실습 — L2 상태 직접 확인

1. 자신의 MAC 주소와 IP 확인

# 인터페이스별 MAC(L2)과 IP(L3)
ip -br link show
ip -br addr show

확인할 것: link/ether 뒤의 MAC 주소. 앞 3바이트(OUI)로 제조사를 유추할 수 있다.

2. ARP 캐시 확인

# IP → MAC 대응표
ip neigh show
# 또는
cat /proc/net/arp

확인할 것: 같은 네트워크에 있는 장치들의 IP와 MAC. 게이트웨이(라우터)의 MAC이 보일 것이다. MAC 주소가 없으면(FAILED 또는 STALE) — ARP 캐시가 만료됐거나, 장치가 응답하지 않는 것.

# 예상 출력 (ip neigh show)
192.0.2.1 dev eth0 lladdr 0a:1b:2c:3d:4e:5f REACHABLE   # 게이트웨이
192.0.2.20 dev eth0 lladdr aa:bb:cc:dd:ee:ff STALE         # 이웃 서버

3. ARP 요청 직접 보내기 (arping)

# 특정 IP의 MAC 주소를 ARP로 물어봄
sudo arping -c 3 192.0.2.1

확인할 것: 응답으로 온 MAC 주소. arping은 ICMP(ping)가 아니라 ARP를 직접 쓰므로 — 방화벽이 ICMP를 막아도 작동한다.

4. 스위치 포트 속도와 상태

# NIC의 링크 속도와 듀플렉스
ethtool eth0 2>/dev/null | grep -E 'Speed|Duplex|Link'

확인할 것: Speed: 10000Mb/s는 10Gbps. Duplex: Full이 정상(Half이면 문제). Link detected: yes는 케이블 연결됨.

# 예상 출력
Speed: 10000Mb/s
Duplex: Full
Link detected: yes

5. 프레임 오류 확인

# 인터페이스의 에러 통계 (FCS 오류, drop 등)
ip -s link show eth0
# 더 자세하게
ethtool -S eth0 2>/dev/null | grep -iE 'error|drop|crc|miss' | head -10

확인할 것: RX errors·TX errors가 0이어야 정상. 0이 아니면 — 물리 문제(케이블 불량·포트 오류·전기 간섭). rx_crc_errors가 높으면 — 케이블 교체가 필요할 수 있음.

미검증: ethtool·arping은 별도 설치 필요할 수 있음(apt install ethtool arping). 클라우드 VM은 가상 NIC을 쓰므로 ethtool 결과가 일부 제한적일 수 있음. WSL2는 네트워크가 가상화돼 있어 ARP 테이블이 다를 수 있음.

비교 표 — L2 vs L3

특성 L2 (데이터 링크) L3 (네트워크)
주소 MAC 주소 (48비트, 하드웨어 고정) IP 주소 (32비트 IPv4, 논리 주소)
단위 프레임 (Frame) 패킷 (Packet)
장비 스위치, 브리지 라우터, L3 스위치
통신 범위 같은 세그먼트 (LAN) 서로 다른 네트워크 간
주소 변환 ARP (IP → MAC) 라우팅 (목적지 네트워크 → 다음 홉)
브로드캐스트 같은 세그먼트에 전파 라우터가 차단
비유 같은 동네 안의 문패 우편번호 시스템

같은 동네 안의 통신이 전부의 기반

이더넷과 L2는 "같은 동네 안에서" 통신하는 기술이다. 인터넷이 아무리 넓어도 — 결국 패킷은 물리적 케이블을 타고, 같은 스위치에 연결된 장치들 사이를 오간다. L2가 없으면 L3(IP)도 동작할 수 없다 — IP 패킷은 이더넷 프레임에 담겨야 물리적으로 전송되니까. L2는 네트워크의 가장 가까운 거리를 연결하는 층이다.

L2를 이해하면 다른 질문에도 답이 보인다. "왜 같은 서브넷에 있으면 게이트웨이 없이 통신되나" → L2 스위치가 MAC 주소로 직접 전달하니까. "왜 ARP가 필요한가" → 이더넷은 MAC 주소로 통신하는데 앱은 IP 주소를 쓰니까. "왜 스위치가 허브를 대체했나" → 학습으로 정확한 포트로만 보내니까. 다음 글에서는 같은 L2 안에서 통신을 더 세분화하는 기술을 다룬다 — VLAN과 STP. 한 스위치를 여러 논리적 네트워크로 나누고, 루프를 방지하는 기술.

이더넷은 50년 전 발명된 기술이지만 — 여전히 유선 네트워크의 유일한 표준이다. 무선(Wi-Fi)이든 광케이블이든 — 결국 L2 프레임으로 포장돼서 MAC 주소로 전달된다. foundations 01에서 본 "추상화 계층" 중 가장 안정적인 층이 L2다.
이더넷과 L2를 이해하면 — "왜 같은 서브넷에 있으면 게이트웨이 없이 통신되나?", "왜 ARP가 필요한가?", "왜 스위치가 허브를 대체했나?"에 답할 수 있다. L2는 네트워크의 가장 가까운 거리를 연결하는 층이다.

이 글의 핵심 — L2는 "같은 동네 안에서" 통신하는 층이고, MAC 주소가 그 식별자다. 이더넷 프레임에 데이터를 담아 스위치가 목적지로 보낸다. ARP가 IP와 MAC을 연결한다. 이 메커니즘이 — 인터넷의 가장 가까운 거리를 잇는 기반이다.


참고

  • IEEE 802.3-2022, "IEEE Standard for Ethernet" — 이더넷 공식 표준. 접근 2026-07-21
  • RFC 826, Plummer, D. "An Ethernet Address Resolution Protocol", 1982, Internet Standard — ARP 원규격. 접근 2026-07-21
  • Metcalfe, R. M., Boggs, D. R. "Ethernet: Distributed Packet Switching for Local Computer Networks", CACM 1976 — 이더넷 원논문. 접근 2026-07-21
  • Spurgeon, C. E. <Ethernet: The Definitive Guide> 2nd ed, O'Reilly, 2014 — 이더넷 실무 참조. 접근 2026-07-21
  • Kurose, J. F., Ross, K. W. 8th ed, 2021, Ch.6 — 데이터 링크 계층. 접근 2026-07-21
  • Stevens, W. R., Fall, K. <TCP/IP Illustrated, Volume 1> 2nd ed, 2011, Ch.3·Ch.4 — ARP·이더넷 프레임. 접근 2026-07-21