[Network] 도메인과 DNS - 2편

coderH·2022년 11월 19일
0

네트워크

목록 보기
2/2

도메인과 DNS - 2편

지난 1편에서는 도메인과 DNS에 대한 정의와 네임서버의 종류등에 대해서 알아보았는데
이번 글에서는 DNS Records와 DNS에서 사용하는 명칭들의 종류, 마지막으로 도메인이 IP주소로 바뀌는 과정 전체를 다시 확인해보겠습니다.

DNS Records (= Zone Files)

1편에서 도메인에 대한 IP주소는 DNS 서버에 저장된다고 했었는데
이 때 DNS 서버에는 도메인이름 레코드타입 IP주소와 같은 형식으로 저장됩니다.

여기서 레코드타입이란 해당 도메인의 서비스 유형에 따른 도메인에 대한 정보와 처리 방법을 나타내는 문자입니다.

DNS Records는 Zone files라고도 부르는데 네임서버 각각을 모두 zone이라고 부르며
레코드는 이 네임서버에 파일 형태로 저장되기 때문에 zone files라는 이름을 사용하곤 합니다.

zone 설명

사진 출처: Wikipedia

어쨌든 네임서버에서는 도메인을 받았을 때 이 레코드타입을 참고하여 알맞은 정보(TTL, 우선순위 등)와 함께 IP주소를 보내 응답합니다.

실질적으로 DNS Records를 사용하는 경우는 직접 도메인을 구매해 설정할 때이며
Records의 종류는 다양하지만 이 글에서는 대표적인 레코드 몇 가지만 살펴보겠습니다.

A (Address)

일반적으로 가장 많이 사용되는 레코드입니다.
해당 도메인이 웹을 제공할 때 사용되며 IPv4형식의 IP주소를 도메인과 직접 매핑하며 1:1, 1:n, n:n의 형태로 사용할 수 있습니다.

A 레코드 등록 화면

AAAA

IPv6형식의 IP주소를 입력할 때 사용하며 A와 마찬가지로 도메인과 IP주소를 직접 매핑합니다.
IPv4는 32비트, IPv6는 128비트를 사용하는데 이 둘은 4배의 차이가 나기 때문에 AAAA로 표기하게 되었다고 합니다.

CNAME (Canonical NAME)

CNAME 레코드는 위의 레코드들과는 달리 IP주소가 아닌 다른 도메인명을 매핑합니다.

만약, 한 개의 IP주소로 여러개의 도메인을 사용하고 있다고 가정해보았을 때 모든 도메인을 A(AAAA)레코드를 사용해 IP주소와 직접 매핑할 수 있습니다.

모든 도메인을 A레코드로 연결

하지만, 이렇게 했을 때의 문제는 만약 IP주소가 변경이 된다면 모든 도메인의 IP주소를 일일이 다 바꿔주어야 하는 불편함이 있습니다.

반면, CNAME레코드를 이용해 메인도메인과 그 외 도메인들을 연결시켜놓고
메인도메인에 IP주소만 직접 연결시켜놓으면 추후 IP주소가 변경되었을 때 메인도메인의 IP주소만 변경해도 모든 도메인에 적용되는 이점이 있습니다.

A와 CNAME레코드를 사용

다만, IP주소를 얻기 위해 도메인을 하나 더 거쳐야 하기 때문에 IP주소를 얻는 속도가 A(AAAA) 레코드를 사용하는 경우에 비해 상대적으로 느릴 수 있습니다.

CNAME 레코드 등록 화면

NS (Name Server)

이름 그대로 내 서비스의 IP주소를 알려줄 네임서버의 도메인을 입력하는 레코드입니다.
보통 도메인을 직접 구매할 때 네임서버를 자체적으로 제공해주는 업체가 많습니다.

만약, 네임서버를 등록하지 않으면 사용자가 나의 도메인 주소를 안다고 한들 IP주소를 알아낼 수 없기 때문에 네임서버는 중요하며 오류가 생길 상황을 대비해 보통 여러개의 네임서버를 입력합니다.

네임서버 입력 화면

MX (Mail Exchanger)

서버를 메일서버로 사용하고자 할 때 사용하는 레코드입니다.
값으로는 다른 도메인을 지정하며 priority값을 명시하는데 이는 우선순위를 뜻합니다.

메일이 해당 도메인으로 전송되었을 때 우선순위가 낮은 값부터 전송을 시도하며 만약 오류가 발생했다면 그 다음 우선순위의 도메인으로 재전송을 시도합니다.

또한, 만약 우선순위가 같은 도메인이 있다면 해당 도메인들에 모두 전송을 시도합니다.

MX 레코드 등록 화면

SRV (service)

VoIP와 같은 특정 서비스를 사용할 때 적용하는 레코드입니다.
IP주소와 함께 서비스이름, 프로토콜, 우선순위(priority), 가중치(weight), 포트번호(port) 등을 입력해야 합니다.

VoIP의 경우 5060번 포트를 주로 사용합니다.

SRV 레코드 등록 화면

TXT (Text)

처음 만들어졌을때는 메모를 남기기 위한 용도였으나 최근에는 도메인의 소유권을 확인하거나 스팸 메일을 방지하는 용도로 사용되고 있습니다.
또한, 한 개의 도메인에서 여러개의 TXT 레코드를 가지는것도 가능합니다.

TXT 레코드 등록화면

이렇게 서버에서 제공하는 서비스에 따라 제공해야하는 정보들이 다르기 때문에 알맞은 레코드를 설정해주어야 합니다.

이 외의 레코드에 대해서도 궁금하다면 List of DNS record types | Wikipedia 링크에서 확인할 수 있습니다.

참고
도메인의 특정 레코드 타입에 대한 정보를 얻고 싶다면 터미널에서
nslookup -type=RECORD DOMAIN 형식으로 알아볼 수 있습니다.

nslookup 결과


DNS에서 사용되는 명칭들

Registrant

도메인 구매를 원하는 개인이나 기업을 말합니다.

Registry (등록소)

최상위 도메인 네임서버를 관리하는 기업 또는 정부기관을 말합니다.
이들은 하위 도메인들의 IP주소를 제공하기 위해 DB를 유지 관리하며
최상위 도메인이 겹치지 않도록 최상위 도메인 당 하나의 레지스트리만 존재합니다.

다만, 한 레지스트리에서 여러개의 최상위 도메인을 관리하는것은 가능합니다.

대표적으로 Verisign이라는 업체는 com, net, name등의 최상위 도메인을 관리하고 있습니다.

Registrar (등록대행자)

도메인을 판매하는 업체로 구매자가 등록한 데이터를 레지스트리의 DB에 등록합니다.
레지스트리와는 달리 복수의 업체가 존재하기 때문에 업체에 따라 등록 및 관리 비용의 차이가 있으며 ICANN의 심사를 합격해야만 대행자로서의 권한을 얻을 수 있습니다.

이 등록대행자부터 소비자에게 도메인을 판매할 수 있습니다.
대표적으로 고대디, 후이즈, 한국의 가비아 등의 업체가 여기에 해당됩니다.

Reseller

도메인 등록 업무를 대행하는 업체로 이들이 도메인을 등록하기 위해서는 반드시 위의 등록대행자를 거쳐야만 합니다.
등록대행자가 되려면 ICANN이 정해둔 심사를 합격해야 하는데 이는 조건이 매우 까다롭기 때문에 쉽지 않아 이렇게 등록 업무를 대행하여 수수료를 받습니다.


도메인 -> IP주소 얻는 과정 총정리

IP주소를 얻는 과정

  1. 로컬의 hosts 파일을 통해 입력한 도메인과 일치하는 IP주소가 있는지 확인하며 있다면 바로 접속합니다.

  2. 브라우저가 DNS Resolver에게 도메인에 해당하는 IP주소를 요청하며
    Resolver는 자신이 가지고 있는지 확인한 후 있다면 바로 브라우저에게 돌려줍니다.

  3. DNS Resolver가 IP주소를 찾기 위해 Root Name Server에게 도메인을 전송합니다.

  4. Root 네임서버는 www.google.com의 최상위 도메인인 com을 담당하는 TLD 네임 서버의 IP주소를 Resolver에게 응답합니다.

  5. Resolver는 TLD 네임서버에게 다시 도메인을 전송합니다.

  6. TLD 네임 서버는 자신이 가지고 있는 리스트에서 google 도메인의 IP주소를 찾아 Resolver에게 돌려줍니다.

  7. Resolver가 google의 SLD 네임 서버에게 도메인을 전송합니다.

  8. SLD 네임 서버는 서브 도메인과 맞는 IP주소 142.250.206.196을 Resolver에게 돌려줍니다.

  9. Resolver는 브라우저에게 8번 과정에서 얻은 IP주소를 돌려주며 정해진 유효기간만큼 도메인이름과 IP주소를 캐싱해놓습니다.

참조

킴루코

Dev Scroll | Tistory

0개의 댓글