Loading...

Spring/Blog-V1 / / 2022. 3. 8. 14:03

스프링 26강. DNS(Domain Name System)

반응형

클라이언트가 서버에 접속하기 위해 필요한 것

 

프로토콜 -> 브라우저가 알아서 http 프로토콜을 지켜준다.

IP

포트 번호 -> 브라우저가 알아서 80으로 잡아준다.

엔드 포인트(식별자) -> 필요하지만 몰라서 적지 않으면 자동으로 index 파일로 간다.

 

그렇다면 IP는?

 

DNS라는 게 필요하다.

 

DNS(Domain Name Syetem) : 서버의 도메인 이름을 서버의 IP 주소로 바꾸거나

그 반대의 변환을 수행할 수 있도록 하기 위해 개발된 시스템

 

클라이언트가 naver.com의 도메인만 알고 있으니 이를 DNS에 요청한다.

DNS에서 naver.com의 10.1.8.7 주소를 찾아준다.

DNS는 데이터를 공유해주기 때문에 서버이다.

갑인 것이다.

도메인과 주소를 키=값 형태로 들고 있다.

 

DNS는 가지고 있는 사이트의 정보가 전세계에 너무 많기 때문에

처음부터 끝까지 풀스캔 하는 것은 너무나도 비효율적이다.

이를 방지해 키 값으로 검색하는 랜덤 스캔을 한다.

 

 

스캔을 해서 찾은 도메인의 ip주소 데이터를 응답해주는 것일까

그 주소로 redirect 해주는 것일까?

응답해준다.

즉, DNS는 ip응답 서버이다.

클라이언트는 응답받은 주소로 요청을 총 2번 하게 되는 것이다.

 

우리가 디폴트로 사용하고 있는 DNS는

현재 사용중인 통신사의 DNS를 사용한다.

 

전 세계 통신사 대기업은 DNS를 다 가지고 있다.

제어판에서 확인과 변경도 가능하다.

 

DHCP가 할당될 때 DNS 서버도 할당된다.

 

클라이언트가 naver.com 요청을 했을 때

제일 처음 공유기로 빠져나가는 게 아니라

OS 윈도우가 hosts 파일에 naver.com의 ip주소가 적혀있나 확인을 한다.

이 파일에는 디폴트로 localhost 127.0.0.1이라고 적혀있다.

만약 이 파일에 naver.com ip주소가 적혀있다면 DNS로 가지도 않는다.

 

naver.com의 ip주소가 없다면 연결되어있는 DNS로 간다.

만약 이 DNS도 naver.com의 ip주소가 없다면 404 오류가 뜰 것이다.

DNS에 주소가 있으면 그 ip주소를 응답해준다.

 

받은 ip주소로 공유기를 빠져나가서 라우터들을 거쳐 네이버 서버에 도착하게 된다.

 

라우터들을 거쳐 가는 동안 패킷을 가지고 간다.

네이버는 패킷들을 재조립하여 문자열로 직렬화한다.

이 문자열을 톰캣이 파싱 해주고

네이버 쪽에서는 request와 response에 파싱 된 데이터가 쏙쏙 들어가게 된다.

그리고 네이버가 응답이 완료되면 request, response는 사라지게 된다.

 


내 hosts 파일, 연결된 DNS 서버는 절대 해킹당해선 안된다.

피싱의 위험이 있기 때문이다.

 

내 DNS 서버가 해킹당한 상태에서

클라이언트가 busanbank.com을 요청했다.

 

그러면 해킹당한 DNS에서 원래 부산은행 홈페이지와 똑같이 복제한

거짓 사이트 주소의 ip를 보낸다.

이 주소로 다시 요청을 해서 서버에 도달한 클라이언트는

아무것도 모르고 로그인하는 순간 모든 정보가 유출되게 된다.

엄청 위험하다.

 

 

 

 

[출처]

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com


메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형