05. 네트워크 인터페이스와 NIC

changseop lee·2일 전

📚 네트워크 · 패킷 분석 › 01. TCP/IP 구조 이해 — 05편
이전 글: 04. Client와 Server · 다음 글: 06. MAC Address란 무엇인가

1. 개념

NIC(Network Interface Card, 네트워크 인터페이스 카드) 는 컴퓨터를 네트워크 매체에 연결하는 하드웨어입니다. 유선 랜카드, 무선 랜카드, 서버 메인보드에 내장된 랜 포트가 모두 NIC입니다.

네트워크 인터페이스(Network Interface) 는 OS가 네트워크 연결 지점을 다루기 위해 만든 논리적 단위입니다. 물리 NIC 하나가 인터페이스 하나로 보이는 경우가 많지만, 물리 장치가 없는 가상 인터페이스도 많습니다.

구분NIC네트워크 인터페이스
성격물리 하드웨어OS 안의 논리 객체
식별제조 시 부여된 MAC 주소, 드라이버이름(ens33, eth0, lo), 인덱스 번호
설정 대상속도·듀플렉스, 오프로딩 기능IP 주소, MTU, 상태(UP/DOWN), 라우팅
예Intel·Realtek 랜카드, 가상머신의 가상 NIClo, ens33, wlp2s0, docker0, tun0

2. 동작 원리

NIC는 전선 위의 신호와 OS의 데이터 사이를 오가는 번역기 역할을 합니다. 수신 과정을 따라가 보면 다음과 같습니다.

 [케이블/전파의 신호]
        ↓ ① NIC: 신호를 비트로 변환, 프레임 경계 인식
        ↓ ② NIC: FCS(오류 검사) 확인 → 깨진 프레임은 폐기
        ↓ ③ NIC: 목적지 MAC 확인
        │     ├ 내 MAC / 브로드캐스트 / 가입한 멀티캐스트 → 수신
        │     └ 그 외 → 폐기 (Promiscuous 모드면 모두 수신)
        ↓ ④ 드라이버 → 커널 네트워크 스택으로 전달
        ↓ ⑤ 인터페이스(ens33) 기준으로 IP·TCP/UDP 처리
 [애플리케이션]

송신은 이 과정의 반대입니다. 커널이 만든 프레임을 NIC가 신호로 바꿔 내보냅니다. 패킷 캡처 도구(tcpdump, Wireshark)는 ④ 지점 부근에서 사본을 받아 보여 줍니다. 캡처 위치에 대한 자세한 설명은 103. 패킷 캡처 원리 — NIC·Promiscuous 모드·미러링(03 영역)에서 다룹니다.


3. 주요 특징

① Linux 인터페이스 이름에는 규칙이 있습니다. 최신 배포판(Rocky, Ubuntu)은 systemd의 "예측 가능한 인터페이스 이름"을 사용합니다.

이름 예의미
lo루프백, 자기 자신과 통신 (127.0.0.1)
eno1메인보드 내장(onboard) 이더넷 1번
ens33PCIe 핫플러그 슬롯 번호 기반 이더넷 (VMware에서 흔함)
enp0s3PCI 버스 0, 슬롯 3의 이더넷 (VirtualBox에서 흔함)
wlp2s0무선 LAN(wl)
eth0예전 방식 이름, 컨테이너·일부 클라우드에서 여전히 사용
docker0, virbr0, br0소프트웨어 브리지(가상)
tun0, wg0VPN 터널(가상)

② 하나의 인터페이스에 여러 IP를, 여러 인터페이스를 하나로 묶을 수도 있습니다. VLAN 하위 인터페이스(ens33.10), 본딩/팀(bond0) 등이 그 예입니다.

③ Promiscuous 모드에서는 NIC가 목적지 MAC과 상관없이 들어온 모든 프레임을 커널로 올립니다. IDS 센서처럼 미러링(SPAN)된 트래픽을 받는 인터페이스는 이 모드로 동작합니다.

④ 오프로딩(Offloading) 은 체크섬 계산·세그먼트 분할 같은 작업을 CPU 대신 NIC가 처리하는 기능입니다. 송신 호스트에서 캡처하면 NIC가 나중에 채울 체크섬이 비어 있거나, MTU보다 큰 패킷이 보이는 현상이 생길 수 있습니다.


4. 예시

실습 예시 — Rocky Linux / Ubuntu 공통

# 예시(값은 환경마다 다름)
ip -br link                 # 인터페이스 이름, 상태, MAC
ip -s link show ens33       # 송수신 바이트·패킷·오류·드롭 통계
# 출력 형식 예시(값은 환경마다 다름)
lo        UNKNOWN  00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33     UP       00:0c:29:3a:4b:5c <BROADCAST,MULTICAST,UP,LOWER_UP>
docker0   DOWN     02:42:1f:2e:3d:4c <NO-CARRIER,BROADCAST,MULTICAST,UP>

NIC 드라이버와 오프로딩 상태는 ethtool로 봅니다. 설치 명령만 다릅니다.

# Rocky Linux
sudo dnf install -y ethtool
# Ubuntu
sudo apt install -y ethtool

ethtool -i ens33                 # 드라이버 이름·버전 (예시: e1000, vmxnet3)
ethtool -k ens33 | grep offload  # 오프로딩 기능 켜짐/꺼짐

배포판별 관리 도구는 Rocky의 nmcli device status, Ubuntu의 networkctl list(systemd-networkd 사용 시)로 인터페이스 관리 상태를 확인할 수 있습니다. Windows에서는 ipconfig /all의 "물리적 주소"와 "설명" 항목이 NIC 정보입니다.


5. 보안 관점

  • Promiscuous 모드는 스니핑의 전제 조건입니다. 정상적인 센서가 아닌 일반 PC·서버의 인터페이스가 이 모드로 바뀌었다면 확인이 필요합니다. Linux 커널은 모드 전환 시 device ens33 entered promiscuous mode 형태의 메시지를 커널 로그에 남기며, ip link 출력의 플래그에 PROMISC가 표시됩니다.
  • 가상 인터페이스는 우회 경로가 될 수 있습니다. 허가되지 않은 VPN 터널(tun0)이나 브리지는 경계 방화벽을 거치지 않는 통로가 될 수 있습니다.
  • 오류·드롭 카운터의 급증은 장애일 수도 있지만, 대량 트래픽 유입(DoS)의 간접 지표가 되기도 합니다.

6. SOC 관점

확인 대상흔적이 남는 곳관제자의 질문
Promiscuous 모드 전환커널 로그(journald, /var/log/messages 또는 /var/log/syslog), EDR이 호스트가 센서 역할인가? 누가 언제 캡처 도구를 실행했는가?
새 가상 인터페이스 생성커널 로그, NetworkManager 로그, EDR승인된 VPN·컨테이너 구성인가?
인터페이스 오류·드롭 증가SNMP 카운터, 모니터링 시스템장애인가, 트래픽 급증인가?
센서 인터페이스 상태IDS 센서 통계(수신량, 드롭률)센서가 실제로 트래픽을 다 보고 있는가?

⚠️ 오탐 주의: 송신 호스트에서 직접 캡처한 파일에 "체크섬 오류"나 MTU를 넘는 큰 패킷이 보이면, 공격이나 장애로 단정하기 전에 오프로딩 영향을 먼저 의심해야 합니다. Wireshark의 체크섬 검증 옵션도 이 때문에 기본적으로 꺼져 있는 항목이 많습니다. 또한 IDS 센서 인터페이스의 드롭률이 높으면 "탐지가 없음"이 "공격이 없음"을 의미하지 않습니다.


7. 핵심 정리

  • NIC는 물리 하드웨어, 네트워크 인터페이스는 OS가 다루는 논리 단위입니다.
  • Linux 인터페이스 이름(eno, ens, enp, wlp)은 장치 위치 기반 규칙을 따릅니다.
  • NIC는 기본적으로 자기 MAC·브로드캐스트·가입한 멀티캐스트만 받고, Promiscuous 모드에서는 모두 받습니다.
  • 일반 호스트의 Promiscuous 모드 전환과 미승인 가상 인터페이스는 확인 대상입니다.
  • 오프로딩은 캡처 결과를 왜곡할 수 있으므로 체크섬 오류를 곧바로 이상 징후로 보지 않습니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글