DNS
먼저 브라우저가 도메인에 해당하는 아이피를 찾는 순서는
- 로컬 캐시를 검색한다.
- host 파일에서 찾는다
/etc/hosts
근데 이 파일은 잘못하면 해킹당할 수도 있다.
우리에게 익숙한 도메인을 다른 IP로 붙여버리면 피싱 사이트로 접속해버릴지도 모른다.
(그래서인지 관리자 권한이 필요한 파일이다. 또한 https로 접속시 피싱 사이트면 막아주긴 한다)
그래서 다음 단계로 발전을 해나가는데,
Stanford Research Institute에서 호스트파일을 관리하고 유저들을 로컬에 다운받아서 쓰는 방식을 사용하기 시작했다. 공신력있는 곳에 위임하는 것이다.
그런데 저 곳의 IP는 어떻게 알 수 있을까?
=> DHCP(검색)을 통해 DNS 서버의 IP를 자동으로 알아올수있다. 그 다음에 조회하는 것이다.
그리고 이제 public DNS server 들이 제공이 되면서 우리가 사용할 수 있게 되었는데,
DNS는 사람들이 어디로 접속하는지를 알 수 있기때문이 신뢰 가능한곳으로 해야한다.
(구글꺼는 8.8.8.8이고 이에 대항하는 1.1.1.1은 25% 빠르고 개인정보를 수집하지 않는다고 홍보하고 있다.)
DNS 서버의 구조를 이제 살펴보면, DNS 서버는 여러개이고 분산되어 있다.
그것도 Hierarchy를 가지고 있다.
예를 들어,
blog.example.com.
(보통 우리가 쓰는 도메인은 뒤에 점도 있는데 생략되어 있는 것이며 그 .을 Root domain이라고 한다.)
이 중,
- com은 Top-level domain
- example은 Second-level domain
- blog는 sub domain
이라고 부른다.
이는 DNS의 Hierarchy와 관계가 있다.
각 레벨마다 전담하는 서버가 따로 있는 것이다.
- 우선 사용자는 인터넷 서비스 제공자(SKT, KT, …)에 의해 Root DNS 서버를 알고있다.
- 상위 레벨 서버는 하위 레벨 서버들의 IP를 알고있다.
이런 구조에 의해 브라우저는 우선 Root DNS에게 물어보고 알면 바로 끝,
모르면 Root가 알고있는 하위 서버한테 물어보고 이런 과정을 계층적으로 반복해서 원하는 도메인을 얻어오게 된다.
실제 현실에서의 구성을 살펴보면,
우선 ICANN이라는 비영리단체에 Root name server가 13대가 있다.
그다음으로 Registry(등록소)라는 곳이 존재하는데 이는 Top Level의 도메인을 관리한다.
(.com, .net, .org 등)
그리고 그 다음으로는 Registrar(등록 대행자)가 존재하는데 여기는 freenum같은 사이트처럼 일반인이 도메인등록하는 곳이다.
실제 리눅스에서 이러한 구조를 직접 체험해보자.
nslookup { domain name }
을 치면 내 컴퓨터에 연결된 DNS서버의 주소와 domain name의 IP 주소를 알수있다.
그리고 아래와 같은 내용도 출력을 해주는데,
non authoritative answer
=> Cache에서 가져오는 경우
authoritative answer
=> 직접 name server에서 가져오는 경우
DNS server는 캐시가 있어서 조회없이 바로주기도 하므로 위 내용으로 알 수가 있다.
실제로 우리가 도메인을 등록하려면 freenum같은 사이트를 이용하는데,
입력해야하는 파라메터들이 있고 뭔지를 잘 모른다. 이제 살펴보자.
A : IP address
NS : Name server
CNAME: Domain에 대한 별명이다
(하나의 서버에 여러 도메인이 있을때 사용)
TTL : DNS Cache 관련 지속시간이고 갱신의 주기이다.
(캐시가 유지되면 좋지만 나중에 IP를 바꿀때는 느리게 바뀐다.)
DNS 레코드가 무엇입니까? – 관리자 – 네이버웍스 헬프센터
DNS는 Domain Name System의 약자로, 인터넷에서 웹사이트 정보를 보유하고 있는 정보시스템입니다. DNS 상에서 도메인에 관한 설정을 하기 위해 사용되는 일련의 문자들을 DNS 레코드라고 통칭하는데요, 네이버웍스에서는 도메인 설정 과정에서 MX 레코드, TXT 레코드, CNAME 레코드를 사용합니다. 해당 DNS 레코드의 성격에 따라 이를 이용해 메일 서버 사용 설정을 하거나 소유한 도메인의 소유권 확인 설정을 할
help.worksmobile.com