네트워크

MAC(Media Access Control) 주소의 구조와 동작

GearDeveloper 2024. 9. 16. 18:55

 

안녕하세요! 이번 포스트에서는 네트워크 통신에서 중요한 역할을 하는 MAC 주소에 대해 알아보겠습니다. MAC 주소는 인터넷을 사용하는 모든 장치에 할당되는 고유한 식별자입니다. 일상에서 자주 접하는 개념은 아니지만, 네트워크의 작동 원리를 이해하는 데 꼭 필요한 중요한 요소입니다. 지식 공유 시작하겠습니다!

MAC 주소란?

MAC 주소는 Media Access Control의 줄임말로 2계층(데이터 링크 계층)에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자입니다. MAC 주소는 이더넷과 와이파이를 포함한 대부분의 IEEE(국제기구) 802 네트워크 기술에서 2계층 주소로 사용된다.

MAC 주소 체계

 

MAC 주소는 48비트의 16진수 12자리로 표현됩니다. 48비트 MAC 주소는 다시 다음과 같이 24비트와 뒤의 24비트로 나누어 구분합니다. 이렇게 MAC 주소는 각 네트워크 장비 제조업체 코드와 제조업체가 자체적으로 할당한 값으로 구성 됩니다. 네트워크 카드나 장비를 생산할 때 하드웨어적으로 정해져 나오므로 MAC 주소를 BIA(Burned-In Address)라고도 부릅니다.

  • 앞 24비트는 IEEE가 제조사에 할당하는 부분
  • 뒤 24비트는 각 제조사에서 네트워크 구성 요소에 할당하는 부분

유일하지 않은 MAC 주소

흔히 MAC 주소는 유일한 값이라고 생각하지만 유일하지 않을 수도 있습니다. 네트워크 장비 제조업체는 자신의 제조업체 코드 내에서 24비트의 UAA 값을 할당하는데 실수나 의도적으로 MAC 주소가 중복될 수도 있습니다. MAC 주소는 동일 네트워크에서만 중복되지 않으면 동작하는데 아무 문제가 없습니다.

MAC 주소 동작

NIC의 기본 동작 방식

MAC 주소 확인: NIC(Network Interface Card)는 자신의 고유한 MAC 주소를 가지고 있습니다. NIC는 네트워크를 통해 들어오는 전기 신호를 수신하면 2계층에서 데이터 패킷으로 변환합니다.

패킷 처리: 패킷의 도착지 MAC 주소가 자신의 MAC 주소와 일치하지 않으면 해당 패킷은 NIC에 의해 폐기됩니다. 도착지 MAC 주소가 자신의 MAC 주소, 브로드캐스트 주소, 혹은 멀티캐스트 주소일 경우에는 패킷을 상위 계층(OS나 애플리케이션)으로 전달하여 처리하게 됩니다.

시스템 부하: 자신의 MAC 주소나 브로드캐스트 주소로 들어오는 패킷은 NIC에서 바로 폐기되지 않고 OS나 애플리케이션에서 처리하게 되어, 시스템 부하가 발생할 수 있습니다.

무차별 모드 (Promiscuous Mode)

  • 필요성: 네트워크 상태 모니터링, 디버깅, 분석을 위해 네트워크 전체 패킷을 수집할 필요가 있을 경우, 기본 NIC 설정으로는 자신의 MAC 주소와 일치하지 않는 패킷을 처리할 수 없습니다. 이때 무차별 모드를 사용하여 모든 패킷을 수집하고 분석할 수 있습니다.
  • 동작 방식: 무차별 모드로 설정된 NIC는 자신의 MAC 주소와 상관없이 네트워크로 들어오는 모든 패킷을 메모리로 전달하여 처리할 수 있게 합니다.
  • 사용 예시: 대표적인 무차별 모드 사용 애플리케이션으로는 네트워크 패킷 분석 도구인 와이어샤크(Wireshark)가 있습니다. 이를 통해 네트워크 트래픽을 실시간으로 분석할 수 있습니다.

MAC 주소를 여러 개 갖는 경우

단말은 NIC를 여러 개 가질 수 있으므로 MAC 주소도 여러 개 가질 수 있습니다. 멀티레이어 스위치, 라우터와 같은 복잡한 네트워크 장비는 NIC이 여러 개이고 MAC주소도 여러 개가 할당됩니다.

Reference

[1] 고재성, 이상훈. "IT 엔지니어를 위한 네트워크 입문." 길벗, 2022.

'네트워크' 카테고리의 다른 글

로드 밸런서(Load Balancer)란?  (2) 2024.09.16
VPN(Virtual Private Network)이란?  (1) 2024.09.13
NAT(Network Address Translation)란?  (2) 2024.09.10
TCP와 UDP개념정리 (UDP 편)  (0) 2024.08.28
TCP와 UDP개념정리 (TCP 편)  (0) 2024.08.15