📚 네트워크 · 패킷 분석 › 01. TCP/IP 구조 이해 — 27편
이전 글: 26. PDU란 무엇인가 · 다음 글: 28. MTU와 IP 단편화 — 큰 패킷이 쪼개질 때

1. 개념

Ethernet Frame(이더넷 프레임) 은 유선 LAN에서 사용하는 네트워크 접근 계층의 PDU입니다. IP 패킷(또는 ARP 메시지)을 담아 같은 링크 안에서 한 NIC에서 다른 NIC로 전달하는 단위이며, 라우터를 지날 때마다 새로 만들어집니다.

MAC 주소 자체와 ARP는 06. MAC Address란 무엇인가와 31. Ethernet 프레임과 MAC 주소 · ARP 동작 원리에서, Wireshark의 eth.* 필드 해석과 VLAN 태그 분석은 112. Ethernet 프레임 필드 분석 — eth.src·eth.dst·eth.type로 읽는 2계층 증거에서 다룹니다. 이 글은 프레임의 전체 구조와 크기 규칙에 집중합니다.


2. 동작 원리

회선 위를 지나가는 프레임은 다음 순서로 구성됩니다(Ethernet II 기준).

|← 캡처에 보이지 않음 →|←──────────── 캡처에 보이는 부분 ────────────→|← 보통 보이지 않음 →|
+----------+-----+--------+--------+------+------------------------+-----+   +-----+
| Preamble | SFD | 목적지  | 출발지  | Type | Payload                | FCS |   | IFG |
|  7바이트  | 1   | MAC 6  | MAC 6  |  2   | 46 ~ 1500바이트         |  4  |   | 12  |
+----------+-----+--------+--------+------+------------------------+-----+   +-----+
                 |←──── 헤더 14바이트 ────→|
구성 요소크기역할
Preamble7바이트수신 측이 신호 타이밍을 맞추기 위한 반복 비트 패턴
SFD (Start Frame Delimiter)1바이트프레임 시작 표시
목적지 MAC6바이트이 링크에서 받을 NIC (브로드캐스트·멀티캐스트 가능)
출발지 MAC6바이트이 링크에서 보낸 NIC
Type (EtherType)2바이트페이로드의 프로토콜 (IPv4 0x0800, ARP 0x0806, IPv6 0x86DD)
Payload46~1500바이트위 계층 PDU. 46바이트보다 짧으면 패딩으로 채움
FCS4바이트CRC-32 오류 검출값
IFG (Inter-Frame Gap)12바이트 시간프레임 사이에 두는 최소 간격 (프레임의 일부는 아님)

목적지 MAC이 출발지 MAC보다 앞에 오는 이유는, 수신 NIC가 첫 6바이트만 보고 "내 프레임인가"를 빨리 판단할 수 있게 하기 위해서입니다.


3. 주요 특징

최소·최대 크기: 목적지 MAC부터 FCS까지를 프레임 크기로 볼 때 다음 규칙이 있습니다.

구분크기비고
최소 프레임64바이트헤더 14 + 페이로드 46 + FCS 4. 모자라면 패딩 추가
최대 프레임 (일반)1518바이트페이로드 1500 = MTU
최대 프레임 (802.1Q 태그)1522바이트VLAN 태그 4바이트 추가
점보 프레임장비 설정에 따름 (흔히 MTU 9000)표준 외 확장. 구간 전체가 지원해야 함
  • 최소 크기 규칙은 과거 공유 매체(CSMA/CD) 환경에서 충돌을 감지하기 위해 생겼으며, 지금도 호환을 위해 유지됩니다. ARP처럼 짧은 메시지는 패딩이 붙어 60바이트(FCS 제외)로 보이는 경우가 많습니다.
  • Ethernet II와 IEEE 802.3의 구분: 목적지·출발지 MAC 다음 2바이트 값이 0x0600(1536) 이상이면 EtherType(Ethernet II), 1500 이하이면 길이(Length) 로 해석하고 뒤에 LLC 헤더가 이어집니다(IEEE 802.3). IP 트래픽은 대부분 Ethernet II 형식이고, 802.3/LLC 형식은 STP 같은 일부 장비 프로토콜에서 볼 수 있습니다.
  • FCS는 오류 검출만 합니다. 오류가 있으면 수신 NIC가 폐기할 뿐, 재전송은 상위 계층(TCP)의 몫입니다.

4. 예시

예시(값은 환경마다 다름): 크기가 서로 다른 세 프레임의 구성입니다(FCS 제외, 캡처 기준 길이).

프레임헤더페이로드패딩캡처 길이
ARP Request (수신 측 캡처)14ARP 281860
TCP SYN (옵션 포함)14IP 60074
최대 크기 데이터14IP 150001514

실습 예시: 본인 소유 VM에서 인터페이스의 MTU와 프레임 관련 오류 카운터를 확인합니다. 명령은 Rocky Linux와 Ubuntu가 같습니다.

ip link show ens160          # mtu 1500, link/ether(내 MAC)
ip -s link show ens160       # RX/TX packets, errors, dropped
sudo ethtool -S ens160 | head -30   # 드라이버가 제공하는 상세 통계 (항목 이름은 드라이버마다 다름)

ethtool이 없으면 Rocky는 sudo dnf install -y ethtool, Ubuntu는 sudo apt install -y ethtool로 설치합니다.

출력 예시(값은 환경마다 다름):

2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP ...
    link/ether 00:0c:29:11:22:33 brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
      8812345   61234      0       0       0     120

brd ff:ff:ff:ff:ff:ff는 이 링크의 브로드캐스트 MAC이고, errors가 계속 증가한다면 케이블·NIC·듀플렉스 설정 같은 물리·링크 문제를 먼저 의심합니다.


5. 보안 관점

  • 프레임 헤더에는 인증이 없습니다. 출발지 MAC은 송신 NIC가 적어 넣는 값이라 소프트웨어로 바꿀 수 있습니다. MAC 기반 접근 통제만으로는 충분하지 않은 이유입니다.
  • 브로드캐스트 프레임은 같은 링크(VLAN) 전체에 전달됩니다. 브로드캐스트 도메인이 클수록 정보 노출 범위와 폭주 영향이 커집니다(168. Broadcast Domain에서 다룸).
  • 패딩 영역의 데이터 누출: 과거 일부 NIC 드라이버가 패딩을 0이 아닌 메모리 잔여 데이터로 채워 정보가 노출된 사례가 보고된 적이 있습니다. 패딩에 0이 아닌 값이 반복되면 확인해 볼 만합니다.

6. SOC 관점

흔적이 남는 곳

  • pcap: 목적지 MAC부터 페이로드까지(프리앰블·SFD·IFG는 없음, FCS도 보통 없음)
  • 스위치: 포트별 오류 카운터(CRC 오류, 최소 크기 미만 runt, 최대 크기 초과 giant), MAC 주소 테이블
  • 호스트: ip -s link, ethtool -S 통계

관제자가 확인할 질문

  • 캡처된 프레임 길이가 최대 크기(1514, 태그 시 1518)를 넘는다면, NIC 오프로드 때문인가 실제 비정상 프레임인가?
  • 특정 포트에서 CRC 오류나 runt가 급증했다면 물리 장애인가, 비인가 장비 연결인가?
  • 같은 링크에서 브로드캐스트 프레임 비율이 평소보다 높은가?

오탐 주의

  • 송신 호스트에서 캡처하면 TSO/GSO 같은 NIC 오프로드 때문에 1514바이트보다 큰 "프레임"이 보일 수 있습니다. 이는 커널이 NIC에 넘긴 단위를 캡처한 것이며, 실제 회선에서는 나뉘어 전송됩니다.
  • 송신 측 캡처에서 60바이트 미만 프레임(예: 42바이트 ARP)이 보이는 것도 패딩 전 단계라 정상입니다.

7. 핵심 정리

  • Ethernet Frame은 목적지 MAC, 출발지 MAC, EtherType, 페이로드, FCS로 구성되며 앞에 프리앰블·SFD가 붙습니다.
  • 프레임 크기는 최소 64바이트, 일반 최대 1518바이트(VLAN 태그 시 1522)이며 페이로드 최대 1500바이트가 MTU입니다.
  • MAC 다음 2바이트가 0x0600 이상이면 EtherType(Ethernet II), 1500 이하이면 길이(802.3)입니다.
  • 캡처에는 프리앰블·SFD가 보이지 않고, FCS도 대부분 제거되어 있습니다.
  • 프레임 헤더에는 인증이 없으므로 MAC은 보조 증거로 쓰고, 스위치 오류 카운터와 함께 해석합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글