Dog foot print

통신 속도 향상을 위한 노력 (DNS편) 본문

기술

통신 속도 향상을 위한 노력 (DNS편)

개 발자국 2022. 7. 1. 14:13

서론

만약 도메인 이 뭔지, IP주소와 포트 에 대한 개념이 정립이 되지 않았다면 이전 포스트를 보고 이 포스트를 읽기를 추천한다.

통신 속도 향상을 위한 노력 (기본 지식편)

DNS

도메인은 인간이 이해하기 쉽고 기억하기 쉬운 문자열로 이루어진 네트워크 식별자 라고 이야기 했다.

그렇다면, 이 도메인을 가지고 어떻게 특정 컴퓨터를 식별 할 수 있을까 ? 답은 누군가는 해당 도메인에 해당하는 IP주소를 가지고 있다. 이다. 즉 DNS도메인과 IP주소를 연결 지어주는 서버를 말한다. 그러나, 세상에 얼마나 도메인이 많은데, 한개의 컴퓨터가 이 모든 도메인과 IP주소를 알고 있고, 모든 요청을 다 처리 할 수는 없다.

DNS를 이용해서, IP를 찾는 방법

만약 우리가 www.naver.com을 찾는다고 가정하자, 그럼 컴퓨터는 일단 먼저 자신이 해당 IP를 알고 있는지를 먼저 확인 한다. 만약 모른다고 하면 자신이 속하고 있는 LocalDNS에 IP를 요청한다. 만약 존재 한다면 위와 같이 IP를 Local DNS가 응답해 줄 것이다.

만약 Local DNS도 해당 도메인에 해당되는 IP를 모르는 경우, 가장 높은 곳에 있는 Root DNS 에게 요청 한다. 동일하게 Root DNS도 IP를 모르지만 대신 .com Top Level DNS 에게 물어본다. 이 과정은 도메인의 최하위 도메인 네임서버에 도착 할 때 까지 재귀적으로 이루어진다. 만약 중간에 naver.com에 해당하는 도메인 네임서버가 존재하지 않으면 이 과정은 더 이상 진행되지 않는다.

그럼 이런 생각이 들 것이다. 호스팅 되어 있는 웹과 API서버가 다르다면 API서버는 어차피 일반인들이 사용 할 일이 잘 없으니, IP형태로 작성하여 요청을 보내면 더 빨라지는 것 아닌가 ? 결론은 맞긴하다. DOMAIN을 IP형태로 찾기까지의 시간을 단축 할 수 있으니 말이다. 그러나 이는 만약 가까운 어딘가에 IP주소가 저장만 되어 있다면 무시할 수 있는 수준이니, 실제 프로덕트를 구축한다면 이런 생각은 하지 말자 !

새로운 도메인 구매 시 바로 적용되지 않을 때.

도메인을 구매하고, 도메인 공급 업체에서 시키는대로 설정하였지만, 바로 도메인으로 접속하지 못하는 경우가 존재한다. 이는 DNS가 새로운 네임서버를 갱신하는데, 시간이 걸리기 때문이다. 만약 www.naver.com의 하위 네임서버로 v.www.naver.com을 등록 하였다면 www.naver.com은 각 DNS 가 주소를 알고 있어 v.www.naver.com으로 연결을 해줄 수 있지만 아예 새로운 도메인인 vvv.com을 만들어 등록한 경우, .com 같은 최상위 루트 DNS는 새로운 네임서버를 갱신하는데 시간이 걸려 갱신 시간과 맞물리지 못한다면 최대 6시간 이후에 갱신되어 사용이 가능 할 수도 있다.

DNS 레코드 타입

도메인을 구입하고, 이제 서버와 연결을 하려고 하면 Cname , A recorde 설정 옵션들이 있다. 내가 helloworld.xyz 라는 도메인을 구입 했을 때, 각 레코드 타입들이 무엇을 의미 하는지 알아보자.

A 레코드

현재 도메인과 연결 할 IP주소를 의미합니다. 사용자가 helloworld.xyz 만 쳤을 때, 특정 IP로 연결 되게 하고 싶다면 이 레코드에 연결할 IP주소를 입력합니다.

AAAA레코드

A레코드와 역할과 동일합니다. 그러나, A레코드는 IPv4 주소와 연결되고, AAAA레코드는 IPv6와 연결 할 수 있습니다. 프로덕트가 IPv6의 성능상의 이점을 취하는 목적이라면 AAAA레코드를 사용하시면 되고, IPv6를 지사용하지 않는다면 A레코만 사용해도 문제가 없습니다.

두 방식의 차이는 아래의 링크를 참조해주세요 .

IPv4와 IPv6의 차이점 | 주니퍼 네트웍스

CNAME

helloworld.xyz 도메인을 확장하여, cafe.helloworld.xyz , m.helloworld.xyz 를 따로 연결 하고 싶다면 CNAME 를 사용합니다.

만약 m.helloworld.xyz에 연결할 IP가 111.111.111.111이면 CNAME 의 name은 m.helloworld.xyz value는 111.111.111.111이 됩니다.

TXT

주로 도메인의 소유권을 확인하기 위해서 사용 되는 값입니다. 예를 들어 구글 서치 콘솔이나 아날리틱스 같은 서비스를 사용하려면 도메인의 소유권을 확인 해야 합니다. 그럴 때, 서비스 제공자가 이 도메인의 소유권을 확인하기 위한 수단으로 주로 TXT를 사용합니다.

MX

메일 서버의 주소를 의미합니다. 예를 들어 xxx@hellowrold.xyz 에게 메일을 보내려면 helloworld.xyz 는 이 MX가 준비되어 있어야 합니다.

NS

이 도메인을 IP로 바꿔줄 수 있는 name server 주소를 의미합니다. 즉 위와 같은 경로로 찾지 않아도 되는 마지막 name server를 의미합니다.

반응형

'기술' 카테고리의 다른 글

통신 속도 향상을 위한 노력 (기본 지식편)  (0) 2022.06.01
WEB CACHE  (0) 2021.06.20
Under 1px line  (0) 2021.06.07
Comments