MAC 주소 쉽게 이해하기: 네트워크 식별자의 역할과 의미

하드웨어 식별자, MAC 주소와 역할과 구조

🔍 MAC 주소란?

MAC 주소(Media Access Control Address)는 네트워크와 연결된 각 장치(Network Interface Card, NIC)의 고유 식별자다.

이는 하드웨어 수준에서 장치를 식별하기 위한 값으로, 보통 16진수 형식의 48bit(6bytes) 주소로 표현된다.

각 바이트는 : 또는 -를 사용해 구분하며, 샘플은 다음과 같다.

00:1A:2B:3C:4D:5E


🧬 MAC 주소 구조

MAC 주소는 일반적으로 다음과 같이 구성된다.

OUI (Organizationally Unique Identifier): 앞의 3바이트는 제조사 식별 코드 (예: Apple, Intel 등)로 위 샘플에서는 00:1A:2B가 OUI이다.

Device Identifier: 뒤의 3바이트는 각 제조사가 장치에 부여하는 고유 번호

MAC 주소는 제조 시 하드웨어에 고정되어 부여되며, 중복이 거의 없도록 관리된다.

3바이트(24비트)는 이론적으로 최대 16,777,215개의 고유 번호를 구분할 수 있지만, 실제로는 브로드캐스트·멀티캐스트 등 특수 용도로 예약된 비트와 주소 범위가 존재하므로, 하나의 식별 코드로 관리 가능한 고유 번호의 수는 이보다 훨씬 적다.

단적인 예로, 아이폰의 경우 한 대의 기기 안에도 Wi-Fi MAC 주소와 Bluetooth MAC 주소 두 개가 존재한다. 지금까지 판매된 아이폰의 누적 대수가 수억 대에 달하기 때문에, 단일 OUI만으로는 모든 기기를 식별하기 어려워 여러 개의 OUI를 사용하고 있다.

MAC 주소는 IEEE(Institute of Electrical and Electronics Engineers)에서 관리하고 있으며, 애플에서만 수백 개 이상의 OUI를 보유한 것으로 알려져 있다.


📡 MAC 주소는 어디서 사용될까?

MAC 주소는 주로 **데이터링크 계층(OSI 2계층)**에서 사용된다.

예를 들어:

  • 같은 네트워크(서브넷) 내에서 A → B로 데이터를 전송할 때, IP 주소는 목적지를 논리적으로 식별하지만 실제 이더넷 프레임은 MAC 주소를 통해 정확한 장비를 찾아 전송한다.

    IP 주소와 MAC 주소의 데이터 전달 방식

📘 MAC vs IP 주소의 차이

항목MAC 주소IP 주소
계층OSI 2계층 (데이터링크)OSI 3계층 (네트워크)
성격물리적(고유) 식별자논리적(변경 가능) 식별자
예시00:1A:2B:3C:4D:5E192.168.1.1
변경 가능성일반적으로 불변 (수정도 가능하긴 함)네트워크 변경에 따라 변동

🔄 통신 과정에서의 MAC 주소 역할

  1. A 컴퓨터가 B의 IP 주소를 알고 있을 때,
  2. 같은 네트워크라면 **ARP(Address Resolution Protocol)**를 통해 해당 IP에 대응하는 MAC 주소를 요청
  3. B가 MAC 주소를 응답하고, A는 그 MAC 주소를 프레임의 목적지 주소로 설정하여 전송
  4. 이 프레임은 MAC 주소를 기준으로 B에 도달

💡 MAC 주소는 인터넷 전체에서 사용될까?

MAC 주소는 로컬 네트워크(같은 서브넷) 내에서만 사용된다.

서브넷을 넘어서는 통신에서는 IP 주소 기반 라우팅이 작동하며, 라우터는 다음 홉(HOP)의 MAC 주소만 사용하여 전달을 이어간다.

따라서 MAC 주소는 직접 연결된 네트워크에서만 의미를 가진다.


🔐 보안과 MAC 주소

MAC 주소는 고유하지만 주의할 점이 있다.

  • 🛠️ 소프트웨어적으로 위조(Spoofing) 가능
  • 🔒 일부 네트워크에서는 MAC 주소 기반 접근 제어(ACL) 적용
  • 🧭 MAC 필터링을 사용하는 네트워크에서는 등록되지 않은 MAC은 접근 불가

🧪 MAC 주소 확인 방법

MAC OS

ifconfig | grep ether

혹은:

networksetup -listallhardwareports

WINDOWS OS

ipconfig /all

✍️ 마무리

MAC 주소는 네트워크의 시작점에서 중요한 역할을 한다.

하드웨어의 신분증 같은 MAC 주소 덕분에 우리는 수많은 장치 간 정확한 데이터 전송을 경험할 수 있다.

맥 nvm 14 버전 설치 오류 해결(nvm install 14)

apple silicon,nvm node 버전 14 설치하기

비교적 오래된 프로젝트에서는 호환성 문제로 인해 노드 버전을 낮춰서 작업하는 상황이 발생한다.

이 때 NVM을 사용하면 편리하게 노드 버전을 변경할 수 있다.

하지만 특정 버전(특히 node 14)은 설치가 되지 않고 에러 메시지가 끝없이 올라가는 상황이 발생한다.

이 때는 아키텍쳐(맥 실리콘, M1, M2, M3 등)이 원인인 상황이 많으므로 로제타2(Rosetta2)를 사용해 아키텍쳐를 x86_64로 전환해야 한다.

먼저 로제타2가 설치되어 있는지 확인하기 위해 다음 커맨드를 입력한다.

$ /usr/bin/pgrep oahd

프로세스 ID가 반환되면 이미 설치되어 있는 상태이다.

설치되어 있지 않다면 먼저 로제타2를 설치한다.

로제타2 설치 방법 (애플 서포트 페이지)

이제 터미널에서 다음 커맨드를 입력해보자.

$ arch

arm64가 출력되면 다음 커맨드를 사용해 x86_64로 전환한다.

arch -x86_64 zsh

다시 arch 커맨드를 입력해보면 변환된 아키텍쳐가 반환되는 것을 확인할 수 있다.

이제 nvm install 14를 문제없이 설치할 수 있다.

맥에서 localhost 접속 시 dns_probe_finished_nxdomain 에러 처리

맥(Mac)에서 사용자 지정 localhost 호스트 도메인 수정하기

localhost를 기본 설정으로 사용하면 문제없이 로컬 서버에 접속이 가능하지만 local.page.com 등과 같이 임의로 주소를 설정하게 되면 위와 같이 사이트에 연결할 수 없다는 DNS 에러가 발생합니다.

기본적으로 localhost의 주소는 127.0.0.1으로 설정되어 있으므로 localhost를 주소로 사용하면 문제없지만 localhost의 주소명이 바뀐다면 별도의 설정을 통해 알려주어야 합니다.

맥에서 설정 파일은 다음 위치에 있습니다.

/private/etc/hosts

이 파일을 vi 에디터를 통해 설정해보겠습니다(관리자 권한 필요).

% sudo vi /private/etc/hosts

명령어를 실행하고 패스워드를 입력하면 다음과 같은 화면이 나옵니다.

여기에 임의의 주소명과 이 주소명이 찾아갈 IP를 넣어주면 됩니다.

i 키를 누르면 편집이가능하며 앞에는 host 주소 127.0.0.1, 뒤에는 사용할 임의의 주소명을 넣어보겠습니다.

입력 후 저장을 위해 ESC를 누른 뒤 :를 입력, 다시 콘솔에 qw! 를 입력하고 엔터를 치면 저장이 완료됩니다.

완료 후 로컬 서버를 실행하고 local.page.com에 접속하면 문제없이 접속되는 것을 확인할 수 있습니다.