-
WEB2 - DNS (2)DNS생활코딩 WEB 2022. 7. 9. 17:41
===
https://opentutorials.org/module/3421
https://youtube.com/playlist?list=PLuHgQVnccGMCI75J-rC8yZSVGZq3gYsFp
===
DNS가 인터넷이 성장하는데 핵심적인 역할이었다
===
1.컴퓨터 주인장이 내 컴퓨터에 접속할 때 IP가 아니라 이름으로 접속했으면 좋겠다 생각
2.DNS 서버에 요청
3.클라이언트가 도메인 네임으로 접속
- 내가 와이파이를 잡거나 랜선을 컴퓨터에 꽂는 순간에 DHCP로 DNS서버의 IP주소가 자동으로 세팅이 됨
- 그럼 인터넷에 연결한 순간 DNS서버의 IP를 알기 때문에 사용자가 웹브라우저에 도메인네임을 치면 약속된대로
->처음엔 hosts파일을 찾아본다, 거기에 쳤던 도메인네임의 설명이 없으면
->그 다음엔 DNS서버에 접속해서 그 도메인네임의 IP가 뭐냐고 물어봄
- DNS서버는 자기가 알고 있는 IP주소를 응답
- 클라이언트는 알게된 IP를 이용해서 통신
===
장점
DNS등록을 할 때 옛날엔 평일에만 전화로 할 수 있었지만 이 과정이 자동화돼서 행정 절차가 간소화됐다
파일로 했다가 서버를 쓰니 서버에서 CRUD하면 즉각 반응
===
여기까지가 소비자(클라이언트)로서 알아야 할 지식
공부를 했으면 바로 써먹어봐야 뇌가 좋아한다
Public DNS 라는 복잡하고 대단한걸 보자
DNS 서버도 서버기 때문에 IP주소가 있어야 접속할 수 있다.
어떻게 알아?
클라이언트가 인터넷에 연결을 하는 순간에
내가 가입한 통신사(ISP)가
내 컴퓨터에
내 컴퓨터가 도메인을 물어봤을 때 사용할 DNS 서버의 IP를
자동으로 세팅해준다
===
근데 DNS서버는 내가 어떤 사이트에 방문하려고 하는지를 당연히 알게된다. 통신사가 제공하는 DNS서버라면, 저건 내 정보인데 그걸 통신사를 저장할 수가 있다. 마케팅 정보로 활용할 수도 있고 정보기관에 제공할 수도 있고, 유출될 수도 있고
등의 이유로 더 빠르거나 안전한 DNS서버를 사용하고 싶으면 바꿀 수 있다
===
public dns server검색
구글보면 8.8.8.8 and 8.8.4.4 라고 돼 있는데
내 컴퓨터의 네트워크 DNS 설정에 8.8.8.8로 세팅하면 내가 도메인을 이용할 때 컴퓨터가 나 몰래 매우 빠른 속도로 8.8.8.8에 해당되는 서버 컴퓨터의 DNS 서버에게 물어본다
구글이라는 회사가 신뢰할 수 있고 그 서버가 성능이 좋다는 등 종합적인 판단으로 내가 쓰는 DNS 서버를 바꿀 수 있다
===
아시아 태평양 지역의 IP주소를 관리하는 국제 민간기구와 클라우드 플레어 라는 회사가 협력해서
1.1.1.1라고 하는 Public DNS를 오픈했대
다른것보다 빠르대
개인의 정보보호를 가장 중요하게 여기고 있대 실제로 하는지 안하는지는 알기 힘들지 쓸 사람이 종합적으로 판단해야
*log : 기록하다
===
바꿔보기
맥 :
System Preferences > Network > 초록색으로 돼 있는 현재 인터넷 접속한 방법의 Advanced..
> DNS탭이 있다
왜 다들 2개씩 제공하냐면 하나가 문제생기면 나머지 하나를 사용하기 위해
> Ok > Apply
===
윈도우 :
제어판 > Network and Internet > Network and Sharing Center
> 여기 Connections:에 보면 랜선으로 연결 돼 있을 때 Ethenet이라고 돼 있다 그걸 클릭
> Properties클릭
> 거기서 저걸 선택하고 Properties(속성) 클릭
> 저기다 쓰기
===
DNS Internal
DNS의 내부 구조, 메커니즘
여기서부터 서버 운용시 필요한 DNS지식
===
DNS서버가 하는 일을 크게 두가지
1.서버가 제출한 이름과 IP를 등록하는 것
2.클라이언트가 물어보는것 알려주기
===
DNS서버는 전세계에 수천대 수만대가 분산하고 협력한다
===
도메인의 주소 뒤에는 .이 생략돼 있다
도메인의 각각의 부분에 이름이 있어
맨 마지막 . 은 가장 최상위에 있다고 해서 Root Domain
Root Domain 밑에는 .com이 있는데 이건 가장 높은 레벨에 있는 Domain이라고 해서 Top-level Domain이라고 한다
.com 말고도 .net / co.kr / kr
이런것들이 다 Top-level Domain
Top-level Domain아래에는 Second-level Domain
Second-level Domain 밑은 sub Domain이라고 부른다
Domain이 어떻게 동작하는지 살펴보려면 이 각각의 부분들에 대해 생각해봐야 한다
===
이 각각의 부분들은 각각을 담당하는 독자적인 서버컴퓨터들이 존재한다
컴퓨터 4대는 각각의 DNS 서버들이다. 기능도 완전히 똑같은데 전담하는 파트가 다르다
Root도메인을 담당하는 DNS서버는 Top-level 도메인을 담당하는 서버들의 목록, IP주소를 알고 있어야해
Top-level 담당 서버들은 Second-level 담당 서버들을 알고 있어야
Second는 sub를 알고 있어야
상위가, 하위를 알고 있어야해
근데 Root는 second를 모르고 Top-level은 sub를 몰라. 직속만 알아
===
클라이언트가 도메인으로 IP주소를 요청하면 IP주소는 결국 sub도메인 전담하는 애가 알고 있어
전세계의 수십만대의 네임서버에서 내가 필요한 IP를 어떤 컴퓨터가 알고 있는지를 한방에 알 수 있는 방법이 없어
알아가는 과정이 필요해
1.
클라이언트는 제일먼저 Root name server에게 물어봐(최소한 모든 컴퓨터는 Root name server의 IP주소는 무엇인지 알고 있어야해)
2.
Root name server는 어떤 도메인의 IP가 뭔지 몰라. 나 뭔지 모르겠는데 저건 Top-level이 com이니까 com을 전담하는 name server들의 IP를 알려줄게
하고 알려준다
3.
그럼 이제 Top-level DNS 서버에게 물어본다
얘도, "잘 모르겠는데 example.com을 전담하는 name server의 IP를 알려줄게
4.
그러다가 최종적으로 sub domain을 전담하고 있는 name server와 통신한다
이때 IP를 알려준다
이런 체계로 전세계에 어마어마하게 많은 name server들이 서로 계층적으로 협력하면서 알려주는걸 통해 서비스된다
'생활코딩 WEB' 카테고리의 다른 글
WEB2 - DNS (4)실제로 해보기 (0) 2022.07.11 WEB2 - DNS (3)register, nslookup (0) 2022.07.09 WEB2 - DNS (1) (0) 2022.07.09 WEB2 - OAuth 2.0 (2)OAuth는 3자간 인증시스템 (0) 2022.01.20 WEB2 - OAuth 2.0 (1) (0) 2022.01.15