Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

은학의 코딩 일기장

[컴퓨터 네트워크] DNS 본문

cs

[컴퓨터 네트워크] DNS

<Eunhak> 2024. 8. 22. 00:31

DNS

도메인 이름을 IP주소로 변환하여 주는 시스템

쉽게 말해 전화번호부라 생각하면됨

200.200.2200같은 IP는 기억하기 어렵기때문에 이를 기억하기 쉽게 도메인 명으로 저장해야함

 

 

 

DNS 동작 방식

1. 사용자가 도메인 이름을 입력 (www.example.com)

 

2.브라우저 캐시, OS 캐시, 라우터 캐시 확인

 

3. 로컬 DNS 캐시 확인

  • 웹 브라우저는 로컬 DNS 클라이언트 역할을 수행하여, 먼저 로컬 DNS 캐시를 확인합니다.
    로컬 DNS 캐시에는 최근에 이용한 도메인 이름과 해당 도메인 이름에 대응하는 IP 주소 정보가 저장되어 있습니다.
    이전에 동일한 도메인 이름에 접속했던 기록이 있다면 로컬 DNS 캐시에서 바로 해당 IP 주소를 찾을 수 있습니다.

4. 로컬 네트워크의 DNS 서버 질의

  • 로컬 DNS 캐시에 해당 정보가 없는 경우, 웹 브라우저는 로컬 네트워크에 설정된 DNS 서버로 질의(Query)를 보냅니다.
    로컬 네트워크의 DNS 서버는 도메인 이름에 대응하는 IP 주소 정보를 가지고 있는지 확인하기 위해 다른 DNS 서버들과 질의를 주고받습니다.

 

5. 루트 DNS 서버 질의

  • 로컬 네트워크의 DNS 서버도 해당 정보가 없는 경우, 루트 DNS 서버에 질의를 보내게 됩니다.
    루트 DNS 서버는 인터넷의 최상위 도메인(.com, .org 등)의 DNS 서버 주소를 알려줍니다.

 

6. 중간 DNS 서버 질의

    • 로컬 네트워크의 DNS 서버는 루트 DNS 서버로부터 얻은 최상위 도메인(.com, .org 등)의 DNS 서버에 다시 질의를 보냅니다.
      이 과정이 계층적으로 반복되며, 최종적으로 해당 도메인 이름에 대응하는 IP 주소를 찾습니다.

 

7. IP 주소 반환

  • DNS 서버들은 계층적으로 도메인 이름을 분석하여 최종적으로 해당 도메인 이름에 대응하는 IP 주소를 찾아 반환합니다.

 

8. 웹 브라우저 요청

 

웹 브라우저는 받은 IP 주소를 사용하여 해당 웹 서버에 요청을 보내고 웹 페이지를 받아옵니다.

 

 

DNS 질의 종류

 

A 질의 

도메인 이름에 대응하는 IPv4 주소를 찾기 위해 사용

=> "www.example.com"에 대한 A 질의를 하면 해당 도메인 이름에 대응하는 IPv4 주소를 반환

 

A AAA질의 

도메인 이름에 대응하는 IPv6 주소를 찾기 위해 사용

IPv6는 IPv4보다 더 긴 주소 체계를 사용하므로, AAAA 질의를 통해 IPv6 주소를 얻을 수 있음

 

CNAME 질의 

도메인 이름에 대해 다른 도메인 이름(CNAME)을 찾기 위해 사용

CNAME은 도메인 이름을 다른 도메인 이름으로 매핑하는데 사용되며, 도메인 이름의 별칭을 설정하는 데 유용

 

MX 질의 

도메인 이름에 대응하는 메일 서버의 정보를 찾기 위해 사용

 

 

 

 

 

레코드

 DNS 서버 내에서 도메인 이름을 인터넷 프로토콜(IP) 주소와 연결하는 데 사용되는 일련의 지침 (명령)

 

CNAME
- 만약, zerocho.com의 domain 주소를 구매했다면 zerocho.com으로만 접근가능한데, CNAME을 통해 www, zerocho.com을 연결해주면 www.zerocho.com으로도 접근 가능해짐

 

NS
- 도메인을 관리하는 네임 서버의 정보를 제공

 

A
- A 레코드는 도메인 이름을 해당하는 IP 주소로 매핑하는 역할

 

 

 

 

 

NS Record VS A Reocrd

NS 레코드는 도메인 이름을 관리하는 네임 서버의 정보를 제공하고, A 레코드는 도메인 이름을 해당하는 IP 주소로 연결하는 역할을 합니다. NS 레코드는 네임 서버를 식별하고 조회할 때 사용되며, A 레코드는 도메인 이름을 IP 주소로 변환하여 네트워크 통신에 사용됩니다.

 

 

 

 

DNS 가 UDP를 사용하는 이유

빠른 속도

TCP의 경우 데이터 전송 시작 전에 3-way-handshaking 과정이 있는 반면 UDP는 연결 설정에 드는 비용이 없다. DNS는 신뢰성보다 속도가 더 중요한 서비스이기 때문에 TCP보다 UDP가 더 적합하다.

또한, UDP는 512 bytes를 넘어가지 않는 패킷만 전송이 가능하고 오버헤드가 없어서 속도가 빠른데, DNS가 전송하는 데이터 패킷 사이즈가 매우 작으므로 UDP가 유리하다.

이때 단순히 패킷의 사이즈가 작다고 DNS가 UDP를 채택한 것은 아니고, 전달하는 패킷의 크기가 작기 때문에 신뢰성이 보장되지 않아도 되기 때문이다. (못 받으면 다시 전달하면 된다.)

 

 

연결 상태를 유지할 필요가 없다.

위에서 잠깐 언급했듯이 TCP는 호스트 간의 연결 상태를 유지한다. 이때 TCP의 패킷 안에는 여러 정보가 담겨 있지만, UDP는 어떤 정보도 기록하지 않고, 유지할 필요도 없다. 따라서 DNS 서버는 TCP보다 많은 클라이언트를 수용할 수 있으므로 연결 상태를 유지하지 않고 정보 기록을 최소화할 수 있는 UDP를 채택하였다.

 

 

 

 

 

 

 

#참고자료

https://velog.io/@cjy/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-DNS

 

[네트워크] DNS

DNS(Domain Name System)는 인터넷에서 사용되는 네트워크 서비스로, 사람이 이해하기 쉬운 도메인 이름(예: www.example.com)과 컴퓨터가 이해하는 IP 주소(예: 192.0.2.1)를 매핑하는 시스템입니다. DNS는 사용

velog.io

https://steady-coding.tistory.com/523

 

[네트워크] DNS

cs-study에서 스터디를 진행하고 있습니다. 등장 배경 네트워크 안에서 호스트를 식별하기 위한 목적으로 IP 주소를 사용하는데, 사람의 경우 숫자보다 문자를 사용하는 것이 더 편하므로 도메인

steady-coding.tistory.com