- Published on
API 요청 시 MAC 주소도 같이 전송할까?
- Authors

- Name
- JaeHyeok CHOI
- none
API 요청 시 MAC 주소 전달 여부
1. 서론
API 요청을 다루다 보면 “클라이언트의 MAC 주소를 서버에서 확인할 수 있는가?”라는 질문이 자주 등장합니다. 보안·추적 목적에서 한 번쯤은 떠올리는 생각이지만, 네트워크 계층 구조를 살펴보면 곧 명확해집니다. 결론부터 말하자면 MAC 주소는 API 서버까지 전달되지 않습니다.
2. 네트워크 계층 구조와 MAC 주소의 역할
네트워크 통신은 일반적으로 OSI 7계층 모델 또는 TCP/IP 4계층 모델로 설명됩니다.
[애플리케이션 계층] → HTTP, gRPC, REST API
[전송 계층] → TCP, UDP
[네트워크 계층] → IP
[데이터 링크 계층] → Ethernet, Wi-Fi (MAC 주소)
[물리 계층] → 전선, 무선 신호
- MAC 주소(Media Access Control) 는 데이터 링크 계층에서만 사용됩니다.
- 이는 같은 네트워크(로컬 LAN) 내에서 장치 식별자 역할을 합니다.
- 반면, API 요청이 서버까지 도달하는 과정은 여러 라우터와 게이트웨이를 거치므로, 원래의 MAC 주소는 hop을 벗어나는 순간 의미가 사라집니다.
3. 라우터와 ARP의 역할
라우터는 네트워크 간 패킷을 전달하는 장치입니다. 이 과정에서 MAC 주소는 어떻게 처리될까요?
클라이언트 → 라우터
- 클라이언트는 목적지 IP(서버)를 향해 패킷을 생성합니다.
- 이때 실제로는 자신의 게이트웨이(라우터)의 MAC 주소를 목적 MAC으로 지정합니다.
- 라우터의 MAC 주소는 ARP(Address Resolution Protocol) 를 통해 알아냅니다.
라우터 내부 동작
- 라우터는 패킷을 수신하고, IP 헤더를 확인해 다음 목적지 라우터로 전달합니다.
- 이 과정에서 이전 구간의 MAC 주소는 버려지고, 새 구간의 MAC 주소가 붙습니다.
- 따라서 서버까지 도착할 때, 클라이언트의 원래 MAC 주소는 전혀 전달되지 않습니다.
라우팅 테이블과 ARP 캐시
- 라우터는 목적지 IP에 대한 최적 경로를 라우팅 테이블에서 찾습니다.
- 해당 구간의 목적지 장치(MAC 주소)는 ARP를 통해 해석하여 캐시에 저장합니다.
4. ICMP와 ARP 비교
네트워크에서 자주 쓰이는 두 가지 프로토콜, ARP 와 ICMP 를 비교해 보면 역할의 차이가 명확합니다.
| 프로토콜 | 계층 | 주요 역할 | 예시 |
|---|---|---|---|
| ARP | 데이터 링크 / 네트워크 사이 | IP → MAC 변환 | IP 192.168.0.1의 MAC 주소 요청 |
| ICMP | 네트워크 계층 | 네트워크 상태 전달 | ping 명령어(에코 요청/응답) |
즉, ARP는 같은 네트워크 내에서 “이 IP의 MAC 주소가 뭐야?”라고 묻는 역할을 하며, ICMP는 네트워크 경로의 상태를 알려주는 역할을 합니다.
5. 결론
- MAC 주소는 API 서버까지 전달되지 않는다.
- 클라이언트의 MAC 주소는 로컬 네트워크 범위에서만 유효하다.
- 라우터는 매 구간마다 새로운 MAC 주소를 부여하고, IP 라우팅을 통해 목적지까지 패킷을 보낸다.
- 따라서 API 서버에서 클라이언트의 MAC 주소를 직접 확인할 수는 없다. 확인 가능한 것은 IP 주소뿐이다.
6. 추가 생각거리
보안이나 추적 목적이라면, 서버에서 MAC 주소 대신 공인 IP, TLS 핸드셰이크 정보, User-Agent, 세션 토큰 등을 기반으로 식별·로그를 남기는 것이 일반적입니다. MAC 주소는 애초에 인터넷을 넘어서는 식별자로 설계되지 않았기 때문입니다.