생활코딩/Home Server&DNS

DNS 수업 정리

7he8oy 2021. 1. 6. 20:21

IP 주소와 호스트

출처: 생활코딩 / https://opentutorials.org/course/3276/20298

호스트 : Domain name과 IP 주소를 연결한 리스트

 


 

DNS의 원리

출처 : 생활코딩 - https://opentutorials.org/course/3276/20299

내가 주소창에 어떤 이름을 치면 DNS server에 그 이름과 매칭되는 IP 주소를 받음. 그럼 그 IP 주소에 접속하는 것!

 


 

도메인 이름 구조

출처: 생활코딩 - https://opentutorials.org/course/3276/20303

sub, second-level, top-level, root 각 부분을 담당하는 서버가 있다고 한다.

(root 부분은 URL에서 생략되어 있다고 함. 실제로 naver.com. 이런식으로 주소창에 입력해도 잘 작동된다)

 

7he8oy.tistory.com

출처 : 생활코딩 - https://opentutorials.org/course/3276/20303

각 레벨을 담당하는 서버는 바로 아랫단의 서버의 정보만을 갖고 있다. 따라서, 내가 위 주소로 접속하려고 하면

 

1. root를 담당하는 서버   -> .com을 담당하는 서버의 정보를 알려줌

2. .com을 담당하는 서버 -> tistory.com을 담당하는 서버의 정보를 알려줌

3. tistory를 담당하는 서버 -> 7he8oy.tistory.com을 담당하는 서버의 정보를 알려줌

4. 7he8oy를 담당하는 서버 -> 7he8oy.tistory.com의 IP 주소를 알려줌 

 

이 순으로 해당 주소의 IP를 물어보는 프로세스를 거친다고 한다.

 


 

도메인 이름 등록 과정과 원리

출처 : 생활코딩 - https://opentutorials.org/course/3276/20307

도메인 이름 구조에서 언급하였듯이, 각 NS는 하위 단의 NS의 주소를 갖고 있다. (각 레벨의 NS는 하나가 아닌 여러 개라고 한다!)

 

만약 도메인 이름을 등록하고 싶은 사람은 'Registry'에 직접 등록할 수는 없고,

서버를 마련하여 Name Server를 설치해야한다. (예시의 authoritative name server가 이 마련된 서버를 말함.)

그 이후 등록 대행자에게 Name Server를 전달하면 등록대행자가 'Registry'에 등록한다. 

 

도메인을 통해 '52.231.13.22'에 접속하는 절차

내가 웹이 접속하는 순간 DNS server에 연결되며, 이 DNS server는 'Root name server'의 주소를 갖고 있다.

따라서 이 DNS server가 각 Name Server와 차례대로 연결하며 'dns4u.ga'의 ip주소를 물어본다.

그런 프로세스를 따라가다보면 결국 'authoritative name server'에는 각 도메인 이름과 IP 주소가  매칭되어 있으므로 

이를 DNS server 에 전달한다. 

그럼 마지막으로 DNS server가 기기에 IP주소를 전달하고 기기가 해당 IP 주소로 접속한다.

 

* cache : 이 과정을 줄이기 위해 저장된 정보다. DNS server안에 있는 듯??

 

 

 


 

nslookup 사용법

nslookup을 이용하면 특정 도메인의 ip주소를 확인하거나 NS를 확인 할 수 있다.

 

네이버를 예시로 든다면, terminal에서

 

네이버의 ip주소를 알고 싶을 때 : nslookup (생략 : -type=a) naver.com (unauthorized임. cache에 저장된 정보를 바탕으로 알려주기 때문)
네이버의 NS를 알고 싶을 때 : nslookup -type=ns naver.com
네이버의 IP주소를 NS를 통해 알고 싶을 떄 : nskookup naver.com (NS이름)

 

DNS record와 CNAME 레코드의 이해

ko.wikipedia.org/wiki/DNS_레코드_타입_목록#리소스_레코드

 

DNS 레코드 타입 목록 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기

ko.wikipedia.org

 

출처: 위키피디아

 

 

Github pages에 도메인 연결하기

1. 할당 받은 도메인 이름에 github server ip주소 지정

2. github repository 설정에서 할당 받은 도메인 이름을 해당 페이지 이름으로 지정.

(아마 github 내에서 도메인 이름을 이용하여 홈페이지를 찾아가는 것 같음)

 

 

DNS 수업을 마치며(이고잉 쌤의 마지막 말 정리)

Dynamic DNS : 서버 설치된 IP 주소가 변경되어도 DNS 서버에 새로운 IP가 전달.

DNS 서버 스스로 구축 해보기 :  BIND란 것을 이용해보기.

HTTPS/SSL 를 이용해볼 수 있음. 

 

'생활코딩 > Home Server&DNS' 카테고리의 다른 글

router와 NAT, port forwarding  (0) 2021.01.06