피드로 돌아가기
URL의 IPv6 zone은 실수
GeekNewsGeekNews
Infrastructure

URL의 IPv6 zone은 실수

RFC 6874 준수를 통한 IPv6 Zone ID URL 파싱 오류 해결

neo2026년 6월 5일2advanced

Context

IPv6 Link-Local 주소 구분으로 사용되는 Zone ID 표기법과 URL 표준 문법 간의 충돌 발생. 특히 Go 언어의 net/url 라이브러리가 Zone ID의 '%' 문자를 URL Escape 시퀀스로 오인하여 파싱 에러를 유발하는 구조적 한계 존재.

Technical Solution

  • RFC 6874 표준에 따른 IPv6address "%25" ZoneID 형식의 Percent-encoding 적용
  • '%' 문자를 '%25'로 인코딩하여 URL 파서의 Escape 시퀀스 오인식 방지
  • [fe80::4%eth0]:80 형태의 비표준 표기를 [fe80::4%25eth0]:80 형태로 변환하는 설계 채택
  • 표준 라이브러리 포크 방지 정책에 따른 애플리케이션 레벨의 데이터 전처리 로직 구현
  • 브라우저의 Origin 개념 충돌 및 nginx, Requests 라이브러리와의 호환성 검토를 통한 엣지 케이스 식별

1. IPv6 Link-Local 주소를 URL에 포함할 때 '%' 문자의 Percent-encoding 여부 확인

2. 사용하는 언어의 표준 URL 파서가 RFC 6874 표준을 지원하는지 검증

3. 네트워크 인터페이스 이름(Linux)과 ID(Windows) 등 OS별 Zone ID 표기 차이 고려

원문 읽기