본문 바로가기

네트워크

DNS Lookup

DNS Lookup

호스트 네임을 IP주소로 변환하는 과정

1.Local Cache Check
브라우저, OS에 캐시가 있다.

2.Recursive Query
로컬 캐시에 IP주소가 없다면, 사용자의 컴퓨터는 설정된 DNS 서버 (주로 ISP)에게 쿼리를 보낸다.
DNS 서버는 쿼리를 받고 캐시에서 도메인 IP 주소를 찾는다.

3.Root DNS Server
2의 DNS 서버에 IP주소가 없다면, Root DNS 서버에 쿼리를 보낸다.
Root DNS 서버는 전 세계에 13개가 있으며, 이 서버들은 TLD(Top-Level Domain, .com, .net, .org) 서버의 위치를 알고 있다.

4.TLD DNS Server
Root DNS 서버는 쿼리를 받아서 TLD 서버의 주소를 DNS 서버에 반환한다. 그러면 DNS 서버는 TLD 서버에 쿼리를 보낸다.

5.Authoritative DNS Server
TLD 서버는 도메인의 Authoritative DNS 서버의 주소를 DNS 서버에 반환한다. 그러면 DNS 서버는 이 Authoritative DNS 서버에 쿼리를 보낸다.

6.Final Response
Authoritative DNS 서버는 도메인 이름에 대한 IP 주소를 가지고 있다. 이 서버는 IP 주소를 DNS 서버에 반환하고, DNS 서버는 그 IP 주소를 사용자의 컴퓨터에 반환한다.

Recursive Query

DNS 클라이언트(사용자의 컴퓨터나 로컬 네트워크의 DNS 서버)에서 시작하여, 루트 DNS 서버, TLD 서버, Authoritative DNS 서버에 도달한다.

각 서버는 요청을 다음 서버로 전달하거나, 클라이언트에게 결과를 반환한다.

Recursive Query는 서버에게 추가적인 책임을 부여하지만 클라이언트에게는 단순한 인터페이스를 제공한다.

Iterative Query

클라이언트는 각 단계에서 DNS 서버에 쿼리를 보내고, 해당 서버는 답변을 제공하거나, 클라이언트에게 다음 쿼리를 보낼 다른 서버를 알려준다.

클라이언트가 Authoritative DNS 서버에 도달하여 최종 결과를 얻을 때까지 반복된다.

서버에게 부담을 덜주지만, 클라이언트에게는 복잡성이 추가된다.

클라이언트의 로컬 DNS 서버는 다른 DNS 서버에게 Recursive Query를 보내고, 이 서버는 Iterative Query를 사용하여 최종 결과를 찾아낸다.

dns lookup 과정에서, 서버에 대한 ip가 여러개일 때, 어떻게 결정해서 하나를 줄까?

1.라운드 로빈
2.GeoDNS
사용자 위치에 따라 가장 가까운 서버의 IP를 반환
3.부하 분산
각 서버의 현재 부하를 감지하고, 가장 적게 사용된 서버의 IP를 반환하여 부하를 균등하게 분산한다.
4.데이터 센터 및 클라우드 기반의 지능형 분산
Amazon Route 53과 같은 고급 DNS 서비스는 헬스체크, 레이턴시 기반 라우팅 등을 제공하여 IP 주소를 결정한다.

'네트워크' 카테고리의 다른 글

SSL  (0) 2023.07.31
4 way handshake  (0) 2023.07.29
AWS VPC, Region과 Zone  (0) 2023.06.09
Restful API  (1) 2023.05.31
SSH  (0) 2023.05.23