자체 구축 DNS 서비스에서 네트워크 경험을 향상시키는 방법
Categories:
네트워크 품질과 네트워크 경험
아무것도 하지 않아도 최고의 네트워크 경험을 얻을 수 있다
명확히 해야 할 것은 여기서 네트워크 품질과 네트워크 경험은 서로 다른 개념이라는 점이다. 통신은 여러 장치가 관여하는 과정이며, 개별 장치의 상하행 성능을 네트워크 품질이라고 하고, 전체 엔드 투 엔드 통신 성과를 네트워크 경험이라고 할 수 있다.
네트워크 품질 측정 방법
네트워크 품질을 측정하는 일반적인 방법과 지표는 다음과 같다.
- 대역폭(Bandwidth): 대역폭은 네트워크가 데이터를 전송하는 능력을 의미하며, 일반적으로 초당 전송되는 데이터량(비트/초)으로 측정한다. 더 높은 대역폭은 일반적으로 더 나은 네트워크 품질을 의미한다.
- 지연(Latency): 지연은 데이터가 송신 측에서 수신 측으로 이동하는 데 걸리는 시간이다. 낮은 지연은 데이터 전송 속도가 빠르고 네트워크 반응이 빠름을 의미한다.
- 패킷 손실률(Packet Loss Rate): 패킷 손실률은 데이터 전송 중 손실된 데이터 패킷의 비율이다. 낮은 패킷 손실률은 일반적으로 더 나은 네트워크 품질을 의미한다.
- 지터(Jitter): 지터는 데이터 전송 중 패킷의 변동이나 변동폭을 의미한다. 작은 지터는 네트워크 안정성이 높음을 의미한다.
- 스루풋(Throughput): 스루풋은 네트워크가 실제로 전송하는 데이터량으로, 일반적으로 단위 시간당 데이터 전송량으로 측정한다. 더 높은 스루풋은 더 나은 네트워크 품질을 의미한다.
- 네트워크 토폴로지(Network Topology): 네트워크 토폴로지는 네트워크에서 노드 간의 연결 방식과 구조를 설명한다. 합리적인 네트워크 토폴로지 설계는 네트워크 성능과 품질을 향상시킬 수 있다.
- 서비스 품질(Quality of Service, QoS): QoS는 네트워크에서 데이터 전송 중 수용 가능한 서비스 품질을 보장하기 위한 일련의 기술과 메커니즘이다. QoS는 트래픽 제어, 우선순위 큐 등 다양한 방법으로 구현할 수 있다.
- 네트워크 프로토콜 분석(Protocol Analysis): 네트워크 프로토콜과 데이터 패킷을 분석하여 네트워크의 성능 지표와 문제를 이해할 수 있다. 예를 들어 Wireshark와 같은 네트워크 분석 도구를 사용한다.
이러한 지표와 방법을 종합적으로 활용하면 네트워크 품질을 종합적으로 평가하고 네트워크 성능의 장점과 개선 가능성을 파악할 수 있다. 그러나 이는 통신사업자가 주로 관심을 갖는 지표이며, 일반 사용자는 적절한 가격의 라우터를 구매하는 것으로 충분하다. 현대 라우터는 자동으로 네트워크 품질을 조정하는 기능을 갖추고 있다.
네트워크 경험 측정 방법
첫째는 접근성으로, 접근 가능성이 가장 중요한 기본 요소이다. 따라서 도메인 네임 서버(DNS) 서비스는 기본적인 능력을 갖추어야 한다.
- 포괄성: 상위 DNS 서비스는 권위적이어야 하며 더 많은 도메인을 해결할 수 있어야 한다.
- 정확성: 해결 결과는 정확해야 하며, 일부 DNS 서비스 제공업체가 광고 페이지로 리디렉션하는 등의 도메인 히잡이나 오염을 일으키는 경우가 있어서는 안 된다.
- 신속성: IP 주소가 변경된 후에는 해결 결과를 즉시 업데이트하여 이전 IP 주소를 반환하지 않아야 한다.
둘째는 DNS 해결 결과의 IP가 제공할 수 있는 서비스의 네트워크 품질이다.
인터넷 서비스가 제공할 수 있는 네트워크 품질은 일반적으로 지역에 크게 의존한다. 서버와 클라이언트가 지리적으로 가까울수록 서비스 품질이 더 좋다.
많은 유료 DNS 해결 서비스 제공업체는 지역에 따라 다른 IP를 해결하는 기능을 지원한다. 예를 들어 알리바바 클라우드가 제공할 수 있는 일부 서비스는 다음과 같다.
(1) 통신사업자 회선: 차이나 유니콤, 차이나 텔레콤, 차이나 모바일, 교육망, 펑보사, 광전망 등에 대한 스마트 해결을 지원하며, 성급으로細분 가능
(2) 해외 지역 회선: 대륙, 국가 단위로細분 지원
(3) 알리바바 클라우드 회선: 지원, 각 지역으로細분 가능
(4) 사용자 정의 회선: 사용자 정의 IP 주소 범위 스마트 해결 지원

지역에 따라 다른 IP를 해결하는 메커니즘은 다른 지역의 사용자가 동일한 도메인에 접속할 때 다른 해결 결과를 얻는다는 것을 의미한다. 자연스럽게 사용자에게 더 가까운 서버 IP를 우선적으로 해결하게 되어 더 나은 네트워크 경험을 제공한다.
사용자의 네트워크 경험을 최적화하는 일은 일반적으로 서비스 제공업체가 사용자의 실제 IP 주소에 따라 최적화한다. 즉, 대부분의 사용자에게는 아무것도 하지 않아도 최고의 네트워크 경험을 얻을 수 있다는 것이다.
자체 구축 DNS 서비스에서 상위 DNS 서비스 선택 방법
인터넷에서 검색할 수 있는 모든 자료는 알리바바 클라우드, 텐센트 클라우드, Cloudflare, 구글 등 권위 있는 DNS 서비스 제공업체를 추천한다. 이러한 DNS는 네트워크 서비스의 접근성을 만족시킬 수 있는데, 이는 포괄성/정확성/신속성을 갖추고 있기 때문이다. 그러나 반드시 사용자에게 가장 가까운 서버 IP를 해결해 주는 것은 아니다.
인터넷에 있는 많은 자료가 대기업의 DNS 서비스를 추천하는 데는 역사적 이유가 있다.
과거 중국의 ISP 통신사업자는 DNS 히잡과 HTTP 중간자 공격만으로도 사용자의 트래픽을 히잭하여 광고를 푸시할 수 있었다. 현재 HTTPS가 보편화되면서 이러한 히잭 방식은 거의 사라졌지만, 일부 지역의 아파트 인터넷에서는 여전히 이런 문제가 있을 수 있다. DNS 히잭 문제에 대해 실제로 DNS IP를 변경하는 것은 큰 의미가 없다. 왜냐하면 53번 포트를 대상으로 히잭할 수 있고, 대부분의 DNS 요청은 암호화되지 않았기 때문이다.
또한 일부 특수 사용자는 특수 웹사이트에 접속하기를 원하지만, 일부 DNS 서비스 제공업체는 IP 오염 문제가 있어 특수 웹사이트 도메인을 잘못된 IP 주소로 해결하여 접속할 수 없게 만든다. 권위 있는 DNS 서비스 제공업체는 이러한 문제가 적다.
따라서 고려해야 할 세 가지 문제가 있다.
- IP 오염
- DNS 히잭
- 최적 서비스 경험
권위 있는 DNS 서비스 제공업체는 문제 1을 해결할 수 있고, 암호화 프로토콜(DoT/DoH/QUIC)은 문제 2를 해결할 수 있다.
문제 3을 해결하려면 통신사업자의 기본 DNS 서비스를 사용해야 한다. 본문开头에서 언급했듯이 아무것도 하지 않아도 최고의 네트워크 경험을 얻을 수 있다.
하지만 추구하는 사람이거나 특수 사용자라면 다음 내용에서 AdGuardHome과 Clash 두 가지 도구의 설정 방법을 소개한다. 이를 통해 세 가지 문제를 동시에 해결할 수 있다.
권위 있고 스마트한 DNS 서비스
AdGuardHome 설정
AdGuardHome, 이하 ADG는 네트워크 광고 차단 및 개인 정보 보호 소프트웨어이자 DNS 서비스이다. 사용자 정의 상위 DNS 서비스와 사용자 정의 DNS 규칙을 지원한다.
ADG는 기본적으로 상위 DNS에 요청하는 방식이 로드 밸런싱이다. 사용자는 여러 상위 DNS를 설정할 수 있고, ADG는 과거 DNS 조회 이력을 기반으로 가중치를 부여해 가장 빠른 DNS 응답을 제공하는 상위 DNS를 선택한다. 간단히 말해 ADG는 더 빠른 DNS 상위를 더 높은 확률로 선택하고, 비최적의 DNS 상위를 낮은 확률로 선택한다.
세 번째 옵션인 가장 빠른 IP 주소를 선택할 수 있다.

이 옵션이 제공하는 장점은 ADG가 자체적으로 상위 DNS의 IP 해결 결과를 테스트하여 지연이 가장 낮은 IP를 하위 클라이언트에 반환한다는 점이다. 다음은 bilibili의 일반적인 해결 결과이다.

IP가 매우 많음을 확인할 수 있다. ADG가 IP 해결 결과를 테스트하지 않고 모든 IP를 하위 클라이언트에 반환한다면 클라이언트는 어떻게 할까?
일부 클라이언트는 첫 번째 IP를 선택하고, 일부는 마지막 IP를 선택하며, 일부는 무작위로 IP를 선택한다. 어떤 경우든 최적의 선택은 아닐 수 있다.
가장 빠른 IP 주소 옵션을 활성화한 후, bilibili의 선택된 해결 결과는 다음과 같다. 이 단계는 네트워크 경험 향상에 기여한다.

가장 빠른 IP 주소가 기본 선택이 아닌 이유는 무엇인가? 이 기능이 이렇게 유용한데 왜 기본으로 활성화되지 않았는가?
그 이유는 모든 상위 DNS의 IP 해결 결과를 기다려야 한다는 점이다. 사용자가 여러 DNS 서비스 제공업체를 상위 DNS로 설정하면 상위 DNS의 조회 시간은 가장 느린 것으로 기준이 된다. 예를 들어 평균 서비스 시간이 50ms인 알리와 평균 서비스 시간이 500ms인 구글을 상위 DNS로 설정하면 ADG의 상위 DNS 조회 시간은 500ms+가 된다.
따라서 사용자는 이 옵션을 설정할 때 상위 DNS의 서비스 품질과 수량을 균형 있게 고려해야 하며,貪多하지 않아야 한다.
이곳에서는 두 개의 상위 DNS를 설정하는 것을 추천한다. **하나는 권위 있는 DNS(https://dns.alidns.com/dns-query)**와 하나는 통신사업자 DNS이다.
통신사업자의 DNS IP는 지역마다 다르며, 여기를 클릭해 자신이 있는 지역의 통신사업자 DNS를 확인할 수 있다.
또는 라우터 관리 화면에서 통신사업자가 권장하는 DNS를 확인할 수 있다.

Clash 설정
특수 요구가 있는 사용자는 DNS 히잭과 IP 오염 문제를 중시하지만, 최적 서비스 경험을 포기하고 싶지 않다면 Clash의 dns 모듈을 사용할 수 있다.
nameserver-policy는 다른 도메인에 대해 다른 DNS 서비스 제공업체를 지정할 수 있다. 다음은 예시 설정이다.
dns:
default-nameserver:
- tls://223.5.5.5:853
- tls://1.12.12.12:853
nameserver:
- https://dns.alidns.com/dns-query
- https://one.one.one.one/dns-query
- https://dns.google/dns-query
nameserver-policy:
"geosite:cn,private,apple":
- 202.103.24.68 # 자신이 있는 지역의 통신사업자 DNS
- https://dns.alidns.com/dns-query
"geosite:geolocation-!cn":
- https://one.one.one.one/dns-query
- https://dns.google/dns-query
의미는 다음과 같다.
- default-nameserver:
nameserver의 DNS 서비스 IP를 해결하는 데 사용 - nameserver: 네트워크 요청 도메인을 해결하는 데 사용
- nameserver-policy: 정책에 따라 다른 도메인에 대해 다른 DNS 서비스를 지정
감사합니다
본문이 도움이 되셨다면 좋아요를 눌러 주세요. 댓글로 토론하는 것도 환영합니다.