- macOS 26.3.1에서 /etc/resolver/ 기반 도메인별 DNS 설정이 비표준 TLD에 대해 무효화됨, 기존 로컬 개발 환경이 중단되는 문제 발생
-
mDNSResponder가 커스텀 TLD 요청을 mDNS로만 처리하며, 지정된 유니캐스트 네임서버를 전혀 참조하지 않음
-
.internal, .test, .home.arpa, .lan 등 IANA 루트존에 없는 TLD 전반이 실패하며, 표준 도메인(google.com 등)은 정상 작동
- 유일한 임시 해결책은 /etc/hosts에 수동 등록하는 방식이지만, 동적 환경(Docker, Kubernetes 등) 에서는 비현실적임
- macOS 개발자 커뮤니티에서 오랫동안 사용해온 로컬 DNS 워크플로 전체가 중단되어, 개발 도구 및 VPN 통합 기능에 광범위한 영향 발생
macOS 26에서 발생한 DNS 회귀 문제
-
macOS 26.3.1(Darwin 25.3.0, Build 25D771280a)에서 /etc/resolver/를 통한 도메인별 DNS 설정 기능이 손상됨
- macOS 25.x까지 정상 작동하던 기능이 26 버전 업데이트 후 중단됨
- Apple의 공식 문서(man 5 resolver)에 명시된 기능임에도 불구하고, 비표준 TLD에서 더 이상 동작하지 않음
-
mDNSResponder가 모든 커스텀 TLD 요청을 mDNS로 가로채며, 지정된 유니캐스트 네임서버를 무시함
-
getaddrinfo()를 사용하는 모든 애플리케이션(ping, curl, python3 socket)에서 “Unknown host” 오류 발생
-
tcpdump 결과, 로컬 DNS(127.0.0.1:53)로의 트래픽이 전혀 발생하지 않음
-
dns-sd -G v4 명령에서는 “No Such Record” 응답과 비정상적으로 긴 TTL(약 108,002초)이 표시됨
테스트 및 재현 절차
-
Homebrew로 설치한 dnsmasq를 로컬 DNS 리졸버로 설정하고, *.internal 또는 *.example-private 도메인을 127.0.0.1로 매핑
-
/etc/resolver/example-private 파일에 nameserver 127.0.0.1 지정
-
scutil --dns 명령에서는 해당 리졸버가 정상 등록된 것으로 표시됨
- 그러나 ping probe.example-private 실행 시 “Unknown host” 오류 발생
-
dig @127.0.0.1 및 host 명령은 정상 응답을 반환하지만, 시스템 리졸버를 사용하는 앱은 모두 실패
- 이는 mDNSResponder가 내부적으로 쿼리를 차단하고, 유니캐스트 DNS를 호출하지 않기 때문임
영향을 받는 TLD 목록
TLD
상태
비고
| .internal |
실패 |
IETF 초안의 특수용 TLD, macOS 25에서는 정상 |
| .test |
실패 |
RFC 6761 §6.2에 따라 로컬 테스트용으로 예약됨 |
| .home.arpa |
실패 |
RFC 8375에 따라 가정용 네트워크용으로 예약됨 |
| .lan |
실패 |
비공식적이지만 널리 사용됨 |
| 기타 비등록 TLD |
실패 |
IANA 루트존에 없는 모든 TLD |
-
.test의 경우 RFC 6761에 명시된 대로 정상 DNS를 통해 해석되어야 함에도 불구하고, macOS 26은 이를 mDNS 전용으로 처리함
- 반면, google.com, bbc.co.uk 등 IANA 등록 도메인은 기존대로 정상 동작
개발 환경 및 도구에 미치는 영향
임시 해결책 및 한계
- 유일하게 동작하는 방법은 /etc/hosts에 수동으로 도메인 매핑을 추가하는 것
- 이 방식은 mDNSResponder를 완전히 우회함
- 그러나 Docker나 동적 DNS 환경에서는 비현실적이며, 변경 시마다 sudo 권한이 필요함
기술 사양 및 검증 환경
- macOS 26.3.1 (Build 25D771280a), Apple Silicon(arm64)
-
dnsmasq는 Homebrew를 통해 설치되어 127.0.0.1:53에서 수신
-
dig 및 host 명령은 정상 응답, ping·curl·python3 socket.getaddrinfo는 실패
- 관련 문서 및 표준:
-
man 5 resolver — macOS의 /etc/resolver/ 메커니즘 문서
- RFC 6761 — .test, .localhost, .invalid, .example 등 특수용 도메인 정의
- RFC 8375 — home.arpa 도메인 정의
- IETF draft-ietf-dnsop-interneti-mdn — .internal 특수용 도메인 초안