카테고리 없음

DNS

만보만보잠만보 2023. 2. 21. 15:53

DNS : Domain name server.사람이 읽을 수 있는 도메인 이름(예: www.naver.com)을 기계가 읽을 수 있는 IP 주소(예: 192.168.30.128)로 변환한다.

DNS는 위계구조의 형태로 조직화하여 저장됩니다.

위계구조의 최상단에는 루트 이름 서버들이 있는데

(루트 이름 서버 : 루트 네임 서버는 인터넷의 도메인 네임 시스템의 루트 존이다.(출처 : 위키백과))

이 서버는 .com이나 .net, .org같은 최상위 도메인(TLD)에 관한 정보를 저장합니다.

.com 네임 서버는 google.com같은 도메인의 관한 정보를 담고 있습니다.

이 서버들이 특정 호스트의 IP주소를 직접 제공하지 않고, 대신 어디에서 찾으면 되는지에 관한 정보를 제공합니다.

 

예시

www. google.com에 대한 요청 → google.com에 속한 하위 네임 서버를 알려주며, www.google.com의 구체적인 IP 주소는 그 하위 네임 서버가 알려줍니다.

 

쉬운 예시

유닉스같은 OS에서 홈디렉터리안에있는 abcd폴더 안에있는 Downloads 폴더를 찾을려고 한다면

경로는 그냥 Downloads가 아닌 /home/abcd/Downloads 로 사용합니다.

DNS에서는 / → . 으로 바뀌고 읽는 방향이 바뀝니다.

웹에 naver.com(이하 A) 같은 도메인 이름을 입력하면 OS는 A을 해당 IP주소로 변환하려 합니다. (도메인 이름 해석)

빠른 응답을 위해, OS는 A의 IP 주소를 자신이 알고 있는지 점검을 합니다.

지역 캐시와 호스트 목록파일(Windows는 C:\Windows\System32\drivers\etc\hosts)에서 해당 도메인 이름을 찾아볼 수 있습니다.

해당 주소로 들어가면 이러한 파일이 보입니다.

이 파일을 txt로 변환하면 저장되어 있는 목록이 보일까 하여 txt로 바꿔보니 이러한 샘플 txt를 볼 수 있었습니다.

캐시나 호스트 파일에 없는 경우

OS는 지역 네트워크의 DNS 서버(대부분의 공유기)에 질의(query) 요청을 보냅니다.

→ DNS 서버도 먼저 자신의 캐시를 살펴봅니다.

 

캐시가 없는 경우

지역 DNS 서버는 설정된 상위 이름 서버에 질의를 넘깁니다.

ISP의 이름 서버는 다수의 고객으로부터 해석 요청을 받을 것이므로, 캐시에 이미 답이 들어있을 가능성이 아주 큽니다.

누군가가 같은 도메인 이름을 질의했다면, 캐시에 있는 답을 돌려줍니다. (TTL이 중요)

만약 ISP의 이름 서버에도 없다면 실질적인 이름 조회를 수행합니다.

공유기가 이름 서버에 질의를 요청한 것과 비슷하게, ISP 이름 서버가 클라이언트가 되어서 다른 이름 서버들에게 요청을 보냅니다.

이후 다른 이름 서버들도 캐시점검하거나 추가적인 조회를 수행합니다.

위 내용을 정리한 도식도1, 2

한번 도메인 이름을 찾게 되면 OS는 위에 있는 긴 과정을 생략하고 직접 도메인의 이름 서버에 질의를 보냅니다.

같은 도메인에 대한 추가적인 질의는 위 전반부를 생략, 굉장히 빠르게 연결됩니다.

그렇기에 자주 방문한 웹사이트가 처음 방문하는 웹사이트보다 빠르게 연결됩니다.