튜토리얼

DNS 란 무엇이며 무엇을위한 것입니까? 알아야 할 모든 정보

차례:

Anonim

인터넷에서 다른 테마를 가진 무한한 사이트를 찾을 수 있다는 것을 이미 알고 있습니다. 액세스하려면 일반적으로 주소가 브라우저의 해당 필드 (예: www.google.es 또는 www.profesionalreview.com)에 기록됩니다. 그러나 팀이 웹 사이트 를 호스팅하는 위치에 관계없이 이러한 웹 사이트를 검색 할 수있는 방법을 알고 있습니까? 이 시점에서 DNS (Domain Name System) 서버의 작업이 시작됩니다. 이 기사에서는 DNS의 정의, 작동 방식 및 DNSSEC와 같은 기타 관련 개념에 대해 설명합니다.

목차 색인

인터넷의 시작과 붕괴

인터넷 시작시 거의 사용하지 않기 위해 인터넷에 존재하는 시스템의 모든 IP와 이름을 포함하는 hosts.txt 파일이있었습니다. 이 파일은 NIC (Network Information Center)에서 관리하고 단일 호스트 SRI-NIC에서 배포했습니다.

Arpanet의 관리자는 전자 우편을 통해 호스트가 변경 한 내용과 SRI-NIC가 업데이트 된 모든 변경 사항 및 hosts.txt 파일을 전자 메일로 NIC에 보냈습니다.

변경 사항은 일주일에 한 두 번 새 hosts.txt에 적용되었습니다. 그러나 Arpanet 의 성장에 따라이 체계는 실현 불가능 해졌다. 인터넷상의 시스템 수가 증가함에 따라 hosts.txt 파일의 크기가 커졌습니다.

또한 업데이트 프로세스에서 생성 된 트래픽은 각 호스트가 포함 된 후 훨씬 더 많은 비율로 증가하여 hosts.txt 파일에 한 줄 이상이 아니라 SRI-NIC 에서 업데이트되는 다른 호스트도 증가했습니다 ..

commons.wikimedia.org를 통한 이미지

Arpanet의 TCP / IP 를 사용하면 네트워크가 기하 급수적으로 증가하여 파일을 관리하기가 거의 불가능 해졌습니다.

Arpanet 관리자는 hosts.txt 파일에서 문제를 해결하기 위해 다른 설정 을 시도했습니다. 목표는 단일 호스트 테이블에서 문제점을 해결하는 시스템을 작성하는 것이 었습니다. 새로운 시스템을 통해 로컬 관리자는 전 세계에서 사용 가능한 데이터를 변환 할 수 있습니다. 관리 분산화는 단일 호스트에서 발생하는 병목 현상 문제를 해결하고 트래픽 문제를 줄입니다.

또한 로컬 관리를 통해 데이터를보다 쉽게 ​​업데이트 할 수 있습니다. 체계는 이름의 고유성을 보장하기 위해 계층 적 이름을 사용해야합니다.

USC의 정보 과학 연구소의 Paul Mockapetris 는 시스템 아키텍처를 담당했습니다. 1984 년에는 "도메인 이름 시스템"또는 DNS를 설명하는 RFC 882 및 883을 발표했습니다. 이러한 RFC (Request For Comments) 다음에는 현재 DNS 사양이있는 RFC 1034 및 1035가 이어졌습니다.

DNS는 정보를 캐싱 할 수있을뿐 아니라 계층 적, 분산 및 재귀적인 것으로 만들어졌습니다. 따라서 어떤 컴퓨터도 모든 인터넷 주소를 알아야 할 필요는 없습니다. 기본 DNS 서버는 루트 서버 (루트 서버)입니다. 이들은 최상위 도메인을 담당하는 머신을 알고있는 서버입니다.

commons.wikimedia.org를 통한 이미지

13 개의 루트 서버가 있으며, 10 개는 미국에 있으며, 2 개는 유럽 (스톡홀름 및 암스테르담), 1 개는 아시아 (도쿄)에 있습니다. 하나가 실패하면 다른 하나는 네트워크를 원활하게 운영 할 수 있습니다.

DNS는 포트 53 (UDP 및 TCP) 및 953 (TCP)과 각각 작동 및 제어를 위해 작동합니다. UDP 포트 53은 서버-클라이언트 쿼리에 사용되며 TCP 포트 53은 일반적으로 마스터 (기본)와 슬레이브 (보조) 간의 데이터 동기화에 사용됩니다.

포트 953 은 BIND와 통신하는 외부 프로그램에 사용됩니다. 예를 들어, DNS 영역 내에서 IP를 수신 한 호스트 이름을 추가하려는 DHCP. DNS가 소프트웨어에 의해 데이터를 덮어 쓰는 것을 방지하기 위해 트러스트 관계가 설정된 경우에만 수행해야합니다.

BIND는 버클리 대학 컴퓨터 과학 연구 그룹의 구성원 인 4 명의 졸업생에 의해 만들어졌습니다. DEC 회사에서 근무하는 개발자 Paul Vixie (vixie-cron의 제작자)는 BIND를 처음으로 담당했습니다. BIND는 현재 인터넷 시스템 컨소시엄 (ISC)에 의해 지원되고 유지됩니다.

BIND 9는 상업 및 군사 계약의 조합을 통해 개발되었습니다. BIND 9의 기능의 대부분은 BIND가 Microsoft의 DNS 서버 오퍼링과 경쟁력을 유지하기를 원하는 Unix 제공 업체에서 홍보했습니다.

예를 들어, DNSSEC 보안 확장 은 DNS 서버에 대한 보안의 중요성을 인식 한 미군에 의해 자금이 지원되었습니다.

도메인 이름

모든 웹 사이트 또는 인터넷 서비스에는 IP 주소 (IPv4 또는 IPv6)가 필요합니다. 이 리소스를 사용하면 웹 사이트를 호스팅하는 서버 또는 서버 집합을 찾아 해당 페이지에 액세스 할 수 있습니다. 이 기사를 작성할 당시 Google Spain의 IP 주소는 172.217.16.227입니다.

Facebook, Twitter, 이메일, 뉴스 포털 등과 같이 매일 방문하는 모든 웹 사이트의 IP를 기억해야한다고 상상해보십시오. 이것은 거의 불가능하고 실용적이지 않습니까?

C: \ Users \ Migue> ping www.google.es 32 바이트의 데이터로 www.google.es를 Pinging: 172.217.16.227의 응답: bytes = 32 time = 39ms TTL = 57 172.217.16.227의 응답: bytes = 32 시간 = 30ms TTL = 57 172.217.16.227의 응답: 바이트 = 32 시간 = 31ms TTL = 57 172.217.16.227의 응답: 바이트 = 32 시간 = 30ms TTL = 57 172.217.16.227의 Ping 통계: 패킷: 전송 된 = 4, 수신 = 4, 손실 = 0 (0 % 손실), 대략적인 왕복 시간 (밀리 초): 최소 = 30ms, 최대 = 39ms, 평균 = 32ms C: \ Users \ Migue>

이것이 기본적으로 도메인 이름 을 사용하여 인터넷 웹 사이트에 액세스하는 이유입니다. 이를 통해 사용자는 예를 들어 Professional Review의 IP 주소에 액세스 할 필요가 없으며 도메인 이름 만 알면됩니다.

숫자 시퀀스를 암기하는 것보다 이름을 암기하는 것이 훨씬 쉽기 때문에 이것은 매우 실용적인 체계입니다. 또한 이름을 정확하게 기억하지 않아도 검색 엔진에 이름을 입력하면 쉽게 찾을 수 있습니다.

요점은 도메인 사용에도 불구하고 컴퓨터의 이름이 아니라 사람의 이해를 돕기 위해 이름이 만들어 졌기 때문에 사이트에는 여전히 IP 주소 가 필요하다는 것입니다. 그리고 도메인을 IP 주소에 연결하는 것은 DNS 에 달려 있습니다.

DNS (도메인 이름 시스템) 서버

인터넷 DNS (Domain Name System) 서비스는 세계 각지에 위치한 서버에 흩어져있는 큰 데이터베이스입니다. www.profesionalreview.com과 같은 브라우저에 주소를 쓰면 컴퓨터가 인터넷 공급자 (또는 지정한 다른 서버)DNS 서버 에 해당 도메인과 관련된 IP 주소를 찾도록 요청합니다. 이러한 서버에이 정보가없는 경우 해당 정보를 가지고있는 다른 사용자와 통신합니다.

도메인이 계층 적으로 구성되어 있다는 사실이이 작업에 도움이됩니다. 먼저 루트 서버를 사용합니다.이 서버는 기본 DNS 서비스로 이해 될 수 있으며 다음 예제와 같이 주소 끝에 마침표로 표시됩니다.

www.profesionalreview.com

브라우저 에서 마침표를 사용하여 위와 같이 정확하게 주소를 입력하면 프로그램이 일반적으로 웹 사이트를 찾습니다. 그러나 관련된 서버가 이미 존재한다는 것을 알고 있으므로이 지점을 포함시킬 필요는 없습니다.

계층 구조 다음에는.com,.net,.org,.info,.edu,.es,.me 및 기타 여러 도메인과 같이 우리가 잘 알고있는 도메인이 있습니다. 이러한 확장을 일반 최상위 도메인과 같은“gTLD”(일반 최상위 도메인)라고합니다.

또한 최상위 도메인의 국가 코드와 같은 소위 "ccTLD"(국가 코드 최상위 도메인)라는 국가 지향 결말이 있습니다. 예를 들어: 스페인의 경우.es, 아르헨티나의 경우.ar, 프랑스의 경우.fr 등입니다.

그러면 회사 및 개인이 이러한 도메인에 등록 할 수 있는 이름 (예: profesionalreview.com의 Profesional Review 또는 google.es의 Google) 이 나타납니다.

계층 구조를 사용하면 IP가 무엇인지, 따라서 도메인과 연관된 서버 (이름 확인이라고하는 프로세스)를 찾는 것이 더 쉽습니다. 계층 구조 수준에는 특정 DNS 서비스가 있습니다.

더 잘 이해하려면 다음 예를 살펴보십시오. www.profesionalreview.com 웹 사이트를 방문한다고 가정하십시오. 이를 위해 공급자의 DNS 서비스는 참조 된 웹 사이트를 찾는 방법을 알고 있는지 확인하려고 시도합니다. 그렇지 않은 경우 먼저 루트 서버를 쿼리합니다. 이는 차례로.com 종료의 DNS 서버를 나타내며, profesionalreview.com 도메인에 응답하는 서버에 도달 할 때까지 프로세스를 계속하여 관련 IP, 즉 어떤 서버가 문제의 사이트인지보고합니다..

특정 도메인을 나타내는 DNS 서버를 "정식"이라고합니다. 클라이언트 시스템으로부터 DNS 쿼리를 받고 외부 서버와의 응답을 얻으려는 서비스를 "재귀"라고합니다.

gTLD 및 ccTLD 도메인은 DNS 서버를 담당하는 다른 엔티티에 의해 관리됩니다.

DNS 캐시

공급자의 DNS 서비스를 통해 찾을 수없는 웹 페이지를 방문하여 다른 DNS 서버와 상담해야한다고 가정합니다 (위에서 언급 한 계층 적 검색 체계를 통해).

다른 인터넷 제공 업체 사용자가 동일한 사이트에 들어 가려고 할 때이 조사가 다시 수행되지 않도록하기 위해 DNS 서비스 는 첫 번째 쿼리 정보를 얼마 동안 저장할 수 있습니다. 따라서 다른 유사한 요청에서 서버는 문제의 웹 사이트와 관련된 IP가 무엇인지 이미 알고 있습니다. 이 절차를 DNS 캐시 라고 합니다.

원칙적으로 DNS 캐싱은 긍정적 인 쿼리 데이터, 즉 사이트를 찾을 때만 유지했습니다. 그러나 DNS 서비스는 존재하지 않거나 지역화되지 않은 사이트 (예: 잘못된 주소를 입력하는 경우)에서 부정적인 결과를 저장하기 시작했습니다.

캐시 정보 는 TTL (Time to Live)이라는 매개 변수를 사용하여 지정된 기간 동안 저장됩니다. 이것은 기록 된 정보가 쓸모 없게되는 것을 방지하기 위해 사용됩니다. TTL 시간은 서버에 대해 결정된 설정에 따라 다릅니다.

이로 인해 루트 및 후속 서버의 DNS 서비스 작업이 최소화됩니다.

DNSSEC를 사용한 DNS 보안

이 시점에서 DNS 서버가 인터넷에서 큰 역할을한다는 것을 이미 알고 있습니다. 문제는 DNS가 악의적 인 행동 의 "피해자"일 수도 있다는 것입니다.

예를 들어, 많은 지식을 가진 사람이 특정 제공 업체의 고객 이름 확인 요청을 캡처하는 체계를 구성했다고 가정 해보십시오. 이 작업에 성공하면 사용자가 방문하려는 안전한 웹 사이트 대신 가짜 주소로 연결하려고 시도 할 수 있습니다. 사용자가 자신이 허위 웹 페이지로 가고 있음을 모르는 경우 신용 카드 번호와 같은 기밀 정보를 제공 할 수 있습니다.

이와 같은 문제를 피하기 위해 DNSSEC (DNS Security Extensions)가 작성되었으며, 이는 DNS에 보안 기능을 추가하는 사양으로 구성됩니다.

위키 미디어 공용 이미지

DNSSEC는 기본적으로 DNS와 관련된 절차의 신뢰성과 무결성 측면을 고려합니다. 그러나 일부 사람들이 처음에 생각하는 것과 달리 침입이나 DoS 공격 에 대한 보호 기능을 제공 할 수는 없습니다.

기본적으로 DNSSEC는 공개 및 개인 키와 관련된 체계를 사용합니다. 이를 통해 올바른 서버가 DNS 쿼리에 응답하고 있는지 확인할 수 있습니다. DNSSEC의 구현은 도메인 관리를 담당하는 엔티티에 의해 수행되어야하므로이 자원이 완전히 사용되지 않습니다.

무료 DNS 서비스: OpenDNS 및 Google 퍼블릭 DNS

인터넷 액세스 서비스를 고용 할 때 기본적으로 회사의 DNS 서버 사용으로 전환 합니다. 문제는 이러한 서버가 여러 번 제대로 작동하지 않을 수 있다는 것입니다. 연결이 설정되었지만 브라우저가 페이지를 찾을 수 없거나 DNS 서비스가 응답하는 데 시간이 걸리기 때문에 웹 사이트에 대한 액세스가 느려질 수 있습니다.

이와 같은 문제에 대한 한 가지 해결책은 가능한 최상의 성능 을 제공하고 오류에 덜 취약한 최적화 된 대체 DNS 서비스를 채택하는 것입니다. 가장 잘 알려진 것은 OpenDNS와 Google 퍼블릭 DNS입니다. 두 서비스 모두 무료 이며 거의 항상 매우 만족스럽게 작동합니다.

OpenDNS

OpenDNS를 사용하는 것은 매우 쉽습니다. 서비스의 두 IP를 모두 사용해야합니다. 그들은:

  • 1 차: 208.67.222.222 2 차: 208.67.220.220

보조 서비스는 기본의 복제본입니다. 어떤 이유로 든 액세스 할 수없는 경우, 두 번째 방법은 즉각적인 대안입니다.

이러한 주소는 자체 장비 또는 Wi-Fi 라우터와 같은 네트워크 장비에서 구성 할 수 있습니다. 예를 들어 Windows 10 을 사용하는 경우 다음과 같이 설정을 지정할 수 있습니다.

  • Win + X를 누르고 "네트워크 연결"을 선택하십시오.

이제 연결을 나타내는 아이콘을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택해야합니다. 그런 다음 "네트워크 기능"탭에서 인터넷 프로토콜 버전 4 (TCP / IPv4) 옵션을 선택하고 속성을 클릭하십시오. "다음 DNS 서버 주소 사용"옵션을 활성화하십시오. 기본 설정 DNS 서버 필드에 기본 DNS 주소를 입력하십시오. 바로 아래 필드에 보조 주소를 입력하십시오.

분명히 이러한 유형의 구성은 Mac OS X, Linux 및 기타 운영 체제에서도 수행 할 수 있습니다. 설명서 또는 도움말 파일에서 구성 방법에 대한 지침을 참조하십시오. 네트워크상의 많은 컴퓨터에서도 마찬가지입니다.

OpenDNS 서비스에는 등록이 필요하지 않지만 도메인 차단 및 액세스 통계와 같은 다른 리소스를 즐기기 위해 서비스 웹 사이트에서 등록 할 수 있습니다.

구글 퍼블릭 DNS

Google 퍼블릭 DNS 는 눈에 띄는 또 다른 유형의 서비스입니다. OpenDNS만큼 많은 리소스를 제공하지는 않지만 보안 및 성능에 중점을 둔 것은 물론 세계 최대 인터넷 회사 중 하나입니다. 그들의 주소는 큰 장점을 가지고 있습니다: 그들은 더 쉽게 기억 될 수 있습니다. 살펴보십시오:

  • 1 차: 8.8.8.8 2 차: 8.8.4.4

Google 퍼블릭 DNS에는 IPv6 주소도 있습니다.

  • 1 차: 2001: 4860: 4860:: 8888 2 차: 2001: 4860: 4860:: 8844

DNS에 대한 최종 생각

이 리소스는 예를 들어 로컬 네트워크 나 엑스트라 넷에서 사용할 수 있기 때문에 DNS 사용은 인터넷에만 국한되지 않습니다. 가장 널리 사용되는 플랫폼 인 Unix 및 Windows와 같은 모든 운영 체제에서 실제로 구현할 수 있습니다. 가장 잘 알려진 DNS 도구는 인터넷 시스템 컨소시엄에서 관리하는 BIND 입니다.

무료 및 공개 DNS 서버 2018을 권장합니다

모든 시스템 관리자 (SysAdmin)는 DNS를 처리해야합니다. DNS가 올바르게 구성되어 있으면 서비스가 실행되는 네트워크의 기본이므로 DNS를 처리해야합니다. DNS의 작동 방식과 개선 방법을 이해 하면 서비스가 올 바르고 안전하게 작동해야합니다.

튜토리얼

편집자의 선택

Back to top button