Cloudeflare 시작하기(1)_(DNS 개념)
시작하기 전에
DNS(Domain name System)
IP 네트워크에서 사용하는 시스템이다. 우리가 인터넷을 편리하게 쓰게 해주는 것으로, 영문/한글 주소를 IP 네트워크에서 찾아갈 수 있는 IP 로 변환해 준다. 모든 웹 사이트 주소를 도메인 대신 아이피로 외운다고 생각하면 머리 아파진다.
이 DNS를 운영하는 서버를 네임서버(Name Server)라고 한다. 서버 구축에 대한 지식이 있으면 어렵지 않게 구성하는 것이 가능하다. 규모가 있는 사이트의 경우에는 네임서버를 자체 운영하는 경우가 많다.
DNS는 도메인 이름과 IP 주소를 서로 변환하는 역할을 한다.
리소스 레코드(Resource record)를 가지며, 이 리소스 레코드는 A, AAAA, CNAME, NS, MX, SPF, PTR 등으로 이루어져있다.
Forward Zone(도메인 이름 → IP)과 Reverse Zone(IP → 도메인 이름)을 가진다. 주로 Forward Zone에는 도메인을 구성하는 호스트에 대한 정보를, Reverse Zone에는 DNS 서버 자기 자신에 대한 정보를 기록한다.
DNS 서버에 질의하면 돌아오는 응답은 Authoritative answer와 Non-authoritative answer로 나뉜다.
** 추가 내용 **
운영주체 서버이름 |
주소 |
DNSSEC |
DNS over HTTPS[16] |
DNS over TLS |
기타 |
168.126.63.1 |
X |
X |
X |
KT의 메인, 보조 DNS 주소이다. |
|
210.220.163.82 |
X |
X |
X |
SK브로드밴드의 메인, 보조 DNS 주소이다. |
|
164.124.101.2 |
X |
X |
X |
||
180.182.54.1[18] |
X |
X |
X |
||
176.103.130.130 |
O |
tls://dns.adguard.com |
광고, 추적 및 피싱 차단(기본) |
||
176.103.130.132 |
O |
tls://dns-family.adguard.com |
기본 + 성인 웹 사이트 차단 + 세이프서치(가족 보호) |
||
176.103.130.136 |
X |
X |
X |
필터링 하지않음 (Non-filtering) |
|
208.67.222.222 |
X |
X |
X |
||
1.1.1.1 |
O |
tls://one.one.one.one |
홈페이지 |
||
1.1.1.2 |
O |
X |
멀웨어 차단 |
||
1.1.1.3 |
O |
X |
멀웨어, 성인 사이트 차단 |
||
8.26.56.26 |
X |
X |
X |
||
8.8.8.8 |
O |
tls://dns.google |
|||
9.9.9.9 |
O |
tls://dns.quad9.net |
홈페이지 IBM을 비롯해 여러 보안업체와 비영리단체가 협력하여 서비스 중인 DNS. |
DDNS(Dynamic DNS)
DDNS 또는 Dynamic DNS(=동적 DNS)라 쓰이며 실시간으로 DNS를 갱식하는 방식이다. 주로 도메인의 IP가 유동적인 경우 사용된다. ip가 바뀌어도 DDNS로 설정한 도메인값은 변하지 않기 때문에 용이하게 접속가능하다.
일반적으로 우리가 이용하는 포털사이트나 각 기업, 정부기관의 홈페이지 들은 해당 기업이나 기관 등이 소유한 고정 IP를 통해서 DNS 주소를 할당 받기 마련인데, 가정 단위에 있어서 고정 IP를 할당받는 것은 상당한 비용이 들 뿐더러 IP 추적에 의한 사생활 침해 요소가 있기 때문에 유동 IP를 사용하게 된다. 그런데 유동 IP 에 그냥 DNS 주소를 할당해 버리면 사용자의 IP가 바뀌기 전 까지는 멀쩡히 작동하지만, IP 유동이 일어나는 순간 해당 주소로 들어온 트래픽은 본래 그 주소를 할당받은 사용자에게 가지 않고 새로이 그 IP를 차지하게된 엉뚱한 사용자에게 가게된다. 이를 극복하기 위해 나온것이 바로 DDNS이며 일반적으로는 유동 IP로 인터넷을 공급받는 대다수의 인터넷 사용자들이 개인 서버나 NAS 구축을 하려 할때 이용하게 된다.
** 추가 **
Client는 어떻게 DNS를 찾을까?
Client는 내가 찾고자 하는 DNS 서버를 Local DNS를 통해서 해당하는 DNS를 일일이 찾아준다.
DNS over TLS
현재 인터넷 상에서 DNS요청을 할때는 DNS정보가 53번 포트를 통하여 평문으로 전송되는데 이는 설령 DNS 서버를 해외의 신뢰할만한 곳으로 지정하더라도 정부나 해킹집단이 패킷을 손쉽게 열람하여 사용자들의 인터넷 사용정보를 수집하거나 패킷을 하이재킹하여 인터넷 검열에 악용할수 있는 취약점이 있다.
DNS over TLS는 사용자와 DNS서버간의 통신을 암호화하여 DNS요청을 감청 할수 없게 만들고 중간자 공격(man in the middle attack, MITM)을 차단 하여 DNS 스푸핑 공격의 가능성을 줄여준다. 또 DNS over TLS는 전통적인 DNS 요청을 TLS 프로토콜을 이용해 전송함으로써 높은 호환성과 편리성을 가져다 준다. 이 기술은 IETF에서 RFC 7858, RFC 8310으로 표준화되었으며[10] 이미 안드로이드의 차세대 버전인 P (9.0)에서 공식지원 예정임은 물론 윈도우나 맥, iOS, 안드로이드 구버전에서도 서드파티 소프트웨어를 통해 사용이 가능하다.
다만 이 기술은 DNS 서버가 지원해 줘야만 사용가능하며 정부나 해킹집단의 통제하에 있는 DNS 서버(각국의 ISP가 기본제공하는 서버들)에선 설령 DNS over TLS를 지원하더라도 서버 자체가 오염되어 올바른 응답을 해주지 않으므로 소용이 없다.
2019년 01월 현재 지원하는 DNS서버는 IBM Quad9, Cloudflare, Google Public DNS가 있다.
DNS over HTTPS(DoH)
HTTPS를 사용해 사이트를 방문하고 있을때도 DNS의 요청은 암호화가 되지 않는다. 즉 전송되는 패킷 자체는 암호화되지만 패킷의 목적지는 평문으로 노출되어 있고 프라이버시 보호가 안 된다는 문제점이 있는데 DNS over HTTPS는 이러한 문제점을 해결하여 준다.
용어설명
-
DNSSEC : DNS 서버 내부적으로 사용하는 DNS 정보 유효성 검증 절차.
-
DNS over HTTPS : DNS 서버와 HTTPS 방식으로 보안통신하여 DNS 정보를 가져오는 방식.
-
DNS over TLS : DNS 서버와 TLS 보안통신을 하여 DNS 정보를 가져오는 방식.
CDN(Content Delivert Network)
CDN(Contents Delivery Network)은 지리적 물리적으로 떨어져 있는 사용자에게 컨텐츠 제공자의 컨텐츠를 더 빠르게 제공할 수 있는 기술을 말합니다.
작동원리
일반적으로 웹 브라우저가 실행되는 디바이스인 PC나 모바일 기기의 사용자 에이전트가 특정 주소에 접근하여 HTML, 이미지, CSS, JavaScript 파일등 렌더링하는 데 필요한 콘텐츠를 서버로부터 요청합니다. 대부분의 CDN의 경우 콘텐츠에 대한 각 요청이 발생하면 엔드유저와 가장 가까운 위치에 최적으로 배치된 CDN 서버에 엔드유저가 매핑되고, 해당 서버는 요청된 파일의 캐싱된(사전 저장된) 버전으로 응답(전송)합니다. 서버가 파일을 찾는 데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 엔드유저에게 응답을 전송합니다. 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 오리진 서버에 대한 요청 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 페칭된 새로운 콘텐츠를 저장합니다.
여담
-
DNS를 이용해서 waring.or.kr을 띄웠었다.
참고
-
DNS : https://namu.wiki/w/DNS