일반적인 DDns 서브도메인 사용 시 전기통신 광대역 서비스 등급 하락 발생 가능
Categories:
IPv6 단선과 홀 펀칭 실패 문제로 3개월간 고생한 끝에 원인을 확인하고 여러분과 공유합니다.
첫 번째 IPv6 단선 문제 문의 글
IPv6가 계속 정상 접속되다가 설정을 변경하지 않은 상태에서 장치마다 독립 IPv6 주소는 보유하고 있지만 IPv6 네트워크에 연결되지 않는 현상이 발생했습니다.
curl 6.ipw.cn 명령어로는 응답을 받을 수 없고, ping6와 traceroute6 2400:3200::1 명령어 모두 중단되었습니다.
광케이블을 브리지 모드로 라우터에 연결하면 라우터의 IPv6 주소를 확인할 수 있었고, 이는 IPv6에 접근 가능한 주소였습니다.
/56 프리픽스를 정상적으로 받을 수 있었고, 라우터 하위 장치들 모두 240e:36f:15c3:3200::/56 범위의 IPv6 주소를 할당받았지만 IPv6 웹사이트에 연결되지 않았습니다.
운영사가 240e:36f:15c3:3200:: 라우팅을 제대로 구축하지 않아서라고 의심했지만 확인할 방법이 없었습니다.
네이버 유저들은 PCDN 업로드 트래픽이 과다해서라고 했지만 업로드 트래픽이 적었고 PCDN도 활성화하지 않았습니다.
Cloudflare와 Aliyun ESA 리버스 프록시를 사용한 것이 원인일 수도 있었습니다.
두 번째 직접 원인 확인 글
일부 지역의 전기통신 운영사가 IPv6 인바운드 HTTP/HTTPS 연결이 많아지면 서비스 등급을 낮춘다는 것을 확인했습니다. 증상은 다음과 같습니다:
- 가짜 IPv6: IPv6가
/56프리픽스를 받고 각 장치의 IPv6 할당이 정상적이지만 tracert 시 라우트 누락으로 인해 실제로 IPv6 인터넷 연결이 불가능합니다. - 가짜 터널: Tailscale 테스트 연결에서 직통으로 표시되지만 지연시간이 매우 높고 실제 속도가 극히 느립니다.
Cloudflare/Aliyun ESA 리버스 프록시를 종료하고 라우터를 여러 차례 재시작한 후 IPv6와 진정한 직통 연결이 복구되었습니다.
리버스 프록시 종료 후에도 계속 단선 발생
리버스 프록시를 종료하고 Cloudflare와 Aliyun ESA의 회선을 종료해도 가끔 단선이 발생했고 지속 시간이 길었습니다.
도메인이 누출되거나, 일반적인 서브도메인을 사용해 누군가 스캔을 하고 지속적인 HTTP 공격을 하고 있을 가능성이 있었습니다.
DDNS 도메인의 DNS 해석을 비활성화한 후 일정 기간이 지나면 IPv6가 정상으로 복구되었고, Tailscale 홀 펀칭 직통 연결도 정상으로 복구되었습니다.
이후로는 단선 문제가 다시 발생하지 않았습니다.
최종 해결 방안
여러분에게 일반적인 DDNS 서브도메인 사용을 권장하지 않습니다. 예를 들어:
- home.example.com
- nas.example.com
- router.example.com
- ddns.example.com
- cloud.example.com
- dev.example.com
- test.example.com
- webdav.example.com
이 중 몇 개는 제가 이전에 계속 사용하던 것이었고, 누군가 계속 스캔을 해서 전기통신 광대역 서비스 등급이 하락하고 공공 IPv6를 정상적으로 사용할 수 없으며 홀 펀칭 직통 연결이 되지 않았습니다.
네트워크 보안에서 IP를 숨기는 것이 중요하다는 것을 모두 알고 계시지만, DDNS에 사용하는 도메인도 보호하는 것이 좋습니다. 본질적으로 IP를 노출하는 것이기 때문입니다.
하지만 여전히 서비스를 공개할 필요가 있는 경우 어떻게 해야 할까요?
이에 대한 두 가지 실천 방안을 제시합니다:
- 회선 방안: 일종의 중계 서비스로 요청이 먼저 VPS로 가서 Home Server로 전달됩니다. 트래픽이 우회하므로 지연시간과 대역폭에 어느 정도 영향을 받습니다.
- DDNS 방안: 직통 방안으로 연결 체험이 훨씬 좋습니다. 일반 개인 사용자는 보통 연결 수 제한을 넘지 않지만 도메인을 공개하면 수많은 봇이 급속도로 연결 수를 끌어올립니다.
회선 방안(리버스 프록시)
Cloudflare Tunnel
Cloudflare의 Tunnel을 사용하면 일반 회선처럼 수십에서 수백 개의 IP가 접근하는 것을 방지할 수 있습니다.
Tailscale 또는 ZeroTier
VPN을 직접 구축하고 앞에 VPS를 배치해 VPN을 통해 내부 네트워크 서비스에 접근하면 동시에 연결되는 수가 과다해지는 것을 피할 수 있습니다.
DDNS 방안(직통)
공공 DNS 해석
GUID와 같은 랜덤 문자열을 생성해 DDNS 도메인에 사용합니다. 기억하기는 거의 불가능하지만 개인이 실제로 사용할 때는 크게 영향을 받지 않습니다. 직접 평가해 보세요.
사설 DNS 해석
AdGuard Private, dot.pub와 같은 개인 DNS 서비스를 사용해 DDNS 해석을 합니다.
이 방안을 통해 지정된 도메인의 커스텀 DNS 해석 IP를 개인 DNS 서버에 연결할 수 있는 사람만 얻을 수 있습니다.
이 방안을 사용하면 일반적인 DDNS 도메인을 사용할 수 있지만 개인 DNS 서비스 주소가 누출되지 않도록 주의해야 합니다.
보충
소문에 의하면 speedtest를 서브도메인으로 사용하면 신비로운 가속 효과가 있다고 합니다.