미국 주요 공항에서 사용되는 “Boingo Hotspot” Wi-Fi 네트워크에 연결할 때 겪은 문제 두 개를 해결하는 방법을 소개해 드리겠습니다. 블로그 글로 적는 이유는 작년에도 동일한 문제가 발생했었고, 아마도 인증 페이지 구조를 수정하지 않는 이상 돌아오는 2026년에도 문제가 될 가능성이 높기에 잊지 않도록 적어봅니다.
현재 제 시스템에서는 systemd-resolved를 통해 TLS 방식의 DNS를 사용 중인데, 미국 시카고
오헤어 공항의 네트워크에 연결하여 dig로 DNS 쿼리를 시도하면 타임아웃이 계속 발생했습니다.
원인은 바로 네트워크가 TLS/HTTPS 기반의 DNS 쿼리를 전부 막고 일반 DNS 포트 53번만을 사용하도록
강제하기 때문이죠.
따라서, 설정 파일 /etc/systemd/resolved.conf(또는 /etc/systemd/resolved.conf.d/dns-over-tls.conf)이
다음과 같다면:
# ...
[Resolve]
# ...
DNS=1.1.1.1#one.one.one.one
DNSOverTLS=yes
Domains=~.
# ...
도메인을 dig로 검색을 시도하면 다음과 같은 결과가 출력됩니다:
$ dig google.com
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
해결 방안은 TLS 기반 DNS를 비활성화하면 됩니다. resolved 설정 파일을 수정하여 이를 해제할 수
있지만, 모든 연결에 대해 비활성화되기 때문에 선호하는 방법은 아닙니다. 차라리 (NetworkManager를
사용하고 있다는 전제하에) NetworkManager에서 “Boingo Hotspot” SSID를 블랙리스트 처리하는
것이 낫습니다:
$ nmcli connection show
$ nmcli connection modify _Free_ORD_Wi-Fi connection.dns-over-tls 0
0은 비활성화, 1은 자동으로 활성화 시도, 그리고 2는 활성화 옵션 값입니다.
이제 systemd-resolve --status를 통해 TLS 기반 DNS가 비활성화되었는지 확인할 수 있습니다.
정상적으로 값이 저장되었다면 다음과 같은 출력이 표시되어야 합니다:
$ systemd-resolve --status
Global
Protocols: +LLMNR +mDNS +DNSOverTLS DNSSEC=yes/unsupported
...
Link 3 (wlan0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 mDNS/IPv4 mDNS/IPv6
Protocols: +DefaultRoute +LLMNR +mDNS -DNSOverTLS DNSSEC=yes/supported
Current DNS Server: 100.109.0.31
DNS Servers: 100.109.0.32 100.109.0.31
Default Route: yes
...
DNSOverTLS 앞에 - 표시가 있다면 정상적으로 설정된 경우입니다.
그렇게 해서 DNS 쿼리를 고쳤지만 아직도 인터넷 접속이 되지 않았습니다. 그리고 그 이유는 바로
2번은 조금 더 전반적인 팁인데, 알고 있는 인증 페이지 시스템 중에서 구글 등의 도메인을 가로채기 할 수 있는 시스템은 없는 것으로 알고 있습니다. 이 문제를 우회하기 위해, 거의 대부분의 OS와 브라우저 회사들은 연결 상태를 확인하기 위해 전용 HTTP 주소를 사용하는데, 가끔씩 이것도 실패할 때도 존재합니다. 그리고 HSTS와 같은 규격이 더 도입되면서, HTTP로 다운그레이드를 허용하는 사이트를 찾기 점점 더 어려워지고 있죠.
따라서 가장 간단한 방법은 neverssl.com를 방문하는 것인데, 그러면 인증 페이지로 리디렉트되어 인증 후 인터넷을 사용할 수 있을 겁니다.
왜 아직도 몇몇 장소에선 이렇게 불편하게 인증 후 인터넷을 사용할 수 있도록 시스템을 짜놓는지 모르겠습니다. 광고 노출하면서 광고비를 챙겨 먹으려 하는 것 같은데, 사용자 입장에선 불편할 수밖에 없거든요.