DNS: 정의 및 작동 방식

게시 됨: 2014-08-14

도메인 이름 시스템(DNS)은 인터넷의 가장 중요한 토대 중 하나입니다. 길고 복잡한 숫자 문자열을 기억할 필요 없이 서버에 연결할 수 있는 기능을 담당합니다. 디자이너나 개발자로서 DNS가 무엇인지, 어떻게 작동하는지, 어떻게 사용하는지 이해하는 것이 중요합니다.

DNS란 무엇입니까?

Arpanet_logical_map_march_1977

1977년 3월 인터넷의 전신인 ARPANET에 연결된 모든 컴퓨터의 구성도

1970년대에는 네트워크로 연결된 컴퓨터가 거의 없었기 때문에 모든 사람이 다른 모든 컴퓨터의 수동 목록을 쉽게 유지할 수 있었습니다. ARPANET(인터넷의 전신) 시대에 새 컴퓨터를 구입하여 네트워크에 추가하면 소유자는 ARPANET의 다른 모든 사람에게 알리고 새 컴퓨터를 목록에 추가하기만 하면 됩니다. 이 시스템은 수십 대의 컴퓨터만 연결되어 있을 때는 제대로 작동했지만 컴퓨팅이 더 저렴해지고 공개적으로 액세스할 수 있게 되면서 빠르게 성능이 저하되었습니다. 오늘날의 관점에서 이것은 새로운 웹사이트나 서비스가 출시될 때마다 전 세계에 알려야 하는 것과 유사합니다.

80년대 초에 DNS는 도메인의 권위 있는 목록과 해당 도메인이 가리키는 컴퓨터를 유지함으로써 이 문제를 해결하기 위해 구축되었습니다. 하지만 정확히 어떻게 작동합니까? 기술적인 측면에서 DNS는 연결된 IP 주소로 도메인 이름을 확인하기 위해 거의 모든 네트워크 지원 장치에서 사용하는 시스템입니다. 인터넷 전화번호부라고 생각하시면 됩니다.

http://www.getflywheel.com과 같은 웹 주소를 웹 브라우저에 입력하면 컴퓨터가 자동으로 어디로 가야 하는지 알지 못합니다. 연결하려면 IP 주소가 필요하지만 문자열로 된 도메인 이름을 제공했습니다. 도메인을 사용하면 사람이 웹 사이트의 위치를 ​​훨씬 쉽게 기억할 수 있지만 컴퓨터가 연결하기 위해 필요한 것은 아닙니다. 대신 컴퓨터가 DNS 서버에 접속하여 해당 웹사이트의 IP 주소를 요청합니다. DNS 서버가 응답하여 컴퓨터에 "http://www.getflywheel.com은 192.241.128.208에 있습니다."라고 알려줍니다. 컴퓨터는 DNS 서버에서 해당 IP 주소를 가져와 IP 주소에 연결하는 데 사용합니다. 그러면 이 주소가 Flywheel의 웹사이트를 불러옵니다.

DNS_R퀘스트

DNS 레코드는 어떻게 관리되고 설정됩니까?

DNS는 도메인이 가리키는 IP 주소, 하위 도메인, 이메일 설정 및 임의의 텍스트와 같은 정보가 포함된 DNS 레코드를 통해 설정됩니다. 도메인을 구입하면 소유자가 도메인에 대한 권한 있는 이름 서버를 지정합니다. 이러한 이름 서버는 도메인의 DNS 레코드를 제어하며, 다른 DNS 서버에서 가져와 인터넷 전체에 전파합니다. 일반적으로 자체 DNS 레코드를 설정하는 경우 웹사이트의 IP 주소를 알 수 있습니다. 예를 들어, 플라이휠은 A 이름 레코드를 가리킬 수 있는 IP 주소를 제공합니다.

전 세계적으로 수천 개의 DNS 서버가 있으며 모든 것이 어디에 있는지에 대한 기록을 유지하기 위해 모두 함께 동기화됩니다. 그러나 모든 DNS 서버가 동일하게 생성되는 것은 아닙니다.

DNS 작동 방식을 이해하는 것은 좋습니다. 실천해야 할까요? 가장 일반적인 DNS 레코드와 사용 방법에 대한 멋진 무료 전자책을 확인하십시오.

DNS 서버의 구조는 거꾸로 된 트리처럼 보입니다. 이 트리의 트렁크를 형성하는 13개의 루트 또는 마스터 서버가 있습니다. 그들은 DNS의 궁극적인 마스터 복사본입니다. 모든 DNS 데이터는 루트 서버 또는 이전에 루트 서버에 접속하여 데이터를 가져온 서버에서 가져와야 합니다. 루트 서버는 루트 영역 또는 가장 권위 있는 DNS 영역을 구성합니다.

루트 영역을 지나면 도메인을 포함하는 하위 영역이 있습니다. 각 최상위 도메인에는 고유한 영역 레코드가 있으며, 이는 두 번째 수준 도메인이라고 하는 http://www.getflywheel.com과 같은 개별 도메인으로 더 나뉩니다.

이것은 약간 기술적인 것이므로 트리 비유의 관점에서 살펴보겠습니다. 루트 영역이 트렁크를 형성하면 .com 또는 .org와 같은 각 최상위 도메인은 해당 트렁크의 분기입니다. getflywheel.com과 같은 각 웹사이트는 해당 지점에서 튀어나온 잎사귀입니다. 그 작은 잎은 도메인 소유자가 DNS를 제어하는 ​​영역입니다. 각 지점은 개별 이름 서버가 되어 그 지점에서 나온 지점과 잎을 추적합니다.

따라서 컴퓨터가 getflywheel.com을 요청하면 먼저 루트 서버에 접속합니다. 루트 서버는 "당신은 .com 웹사이트를 찾고 있습니다. 여기에 있는 .com 이름 서버로 이동하십시오.” 그런 다음 컴퓨터는 .com을 담당하는 이름 서버로 체인을 순환하고 자세한 내용을 요청합니다. 컴퓨터는 마침내 도메인 소유자가 지정한 이름 서버를 찾을 때까지 서버에 접속합니다. 그런 다음 웹 사이트와 연결된 IP 주소를 파악하여 해당 웹 사이트로 이동합니다. 컴퓨터는 최종 대상이 포함된 리프에 도달할 때까지 서버 트리를 분기 아래로 이동합니다.

DNS 루트 계층

참고: 공식적으로 13개의 루트 DNS 서버가 있지만 2개를 제외하고 모두 애니캐스트 라는 라우팅 기술을 통해 수십 개의 동일한 서버에 개별적으로 연결되어 배포됩니다. Anycast는 여러 노드가 동일한 엔티티로 존재할 수 있도록 합니다. 장치가 해당 엔티티에 연결되면 네트워크에서 가장 가까운 사용 가능한 노드에 연결됩니다(예: 장치가 가장 가까운 지리적 서버에 연결되는 CDN에서 사용되는 지오캐스트 와 다름). Anycast를 사용하면 루트 서버를 전 세계에 확장 및 분산하여 로드 균형을 조정하고 응답 시간을 단축하며 단일 실패 지점을 방지할 수 있습니다.

이 전체 서버 연결 체인은 웹 사이트를 방문하고 싶을 때마다 수행해야 하는 매우 번거롭고 힘든 일입니다. 다행스럽게도 DNS는 캐시에 많이 저장되어 있어 복사본이 가까운 컴퓨터에 자주 저장되어 루트 서버의 부하를 줄이고 쿼리를 더 빠르게 로드할 수 있습니다. 많은 ISP, 회사, 대학, 심지어 자신의 컴퓨터도 최근 DNS 쿼리의 캐시를 보관합니다. 예를 들어 google.com을 찾고 있다면 컴퓨터에 이미 IP 주소가 저장되어 있을 가능성이 있습니다. 그러나 한 번도 가본 적이 없는 웹 사이트를 찾고 있다면 이웃이나 회사의 다른 사람이 이미 거기에 있었고 쿼리와 정보는 ISP의 DNS 서버에 저장되었을 수 있습니다.

DNS가 없다면 우리는 방문하고 싶은 모든 단일 웹사이트와 컴퓨터의 IP 주소를 기억하거나 적어 두어야 합니다. 다행스럽게도 DNS는 믿을 수 없을 정도로 탄력적이고 안정적이며 인상적인 엔지니어링 부분으로 모든 웹사이트와 커뮤니케이션을 추적할 필요가 없도록 유지합니다.