DNS
DNS의 동작원리에 대하여 알아보자
Last updated
DNS의 동작원리에 대하여 알아보자
Last updated
Domain Name System으로, 호스트의 도메인 이름을 네트워크주소 즉 IP로 변환해준다
naver의 IP를 nslookup 명령어로 찾아보면 다음과 같다.
그리고 해당 IP 4개 다 naver.com 으로 잘 매핑되는 것을 볼 수 있다.
A 레코드는 일반적인 DNS의 내용으로, Domain 주소로 매핑된 IP주소를 알려줌
Canonical Name으로, 도메인 주소를 또 다른 도메인 주소로 매핑이 가능
이를 활용하여 modocode.com 과 모도코.com 모두 같은 IP를 가리킬 수 있게 설정 할 수 있다.
Mail eXchange 레코드로, 메일을 주고 받을 수 있게 도와주는 서비스
예를들어, yeonggi@kakao.com 에서 kakao.com 의 도메인이 메일을 주고받을 수 있는 서버를 알려주기에 소통할 수 있다.
일반적인 텍스트 내용으로, 사람이 서버에 대한 성격, 이름, 자원등을 쉽게 string 형식으로 파악할 수 있게 도와줌
도메인에 대한 최종 권한이 존재
재귀적 DNS 서버에 IP 주소가 담긴 답을 제공
DNS 쿼리에 응답하면 IP 주소로 변환
클라이언트가 신뢰할 수 있는 DNS서비스에 쿼리를 수행하지 않음
reosolver 또는 재귀적 DNS 서비스가 대신 연결
DNS 레코드를 소유하고 있지 않지만, 사용자를 대신하여 DNS 정보를 가져올 수 있게 중간자 역할을 제공
캐시된 레퍼런스가 있는 경우, IP 정보를 바로 제공
순서를 보면 다음과 같다
PC브라우저가 https://modocode.com
을 입력하고, Local DNS 에게 해당 도메인에 대한 IP 주소를 물어본다
Local DNS에서 캐싱된 Domain 정보가 있다면, 바로 제공해주지만, 없을경우 Root DNS에게 https://modocode.com
에 대한 DNS Query를 물어본다
Root DNS서버는 https://modocode.com
에 대한 IP 주소가 없으니, com DNS 즉 TLD(Top Level Domain)에 다시 물어보라며 com DNS의 서버 정보를 알려준다
받은 TLD의 주소로 https://modocode.com
에 대한 DNS query 를 날려본다
modocode.com
을 관리하는 DNS 정보를 전달해준다 (여기서 modocode는 AWS Route53으로 제작되어, Route53의 DNS Server를 전달)
받은 Route53 DNS 주소로 https://modocode.com
에 대한 DNS query 를 날려본다
Local DNS 서버에게 https://modocode.com
에 해당하는 54.230.61.5
이라는 IP주소를 알려준다
Local DNS에 https://modocode.com
와 54.230.61.5
를 매핑 후 브라우저에게 IP주소를 알려준다
DNS의 고질적인 문제인 Round Robin을 해결해보자
앞에서 naver.com에 해당하는 IP를 봤을 때, 한 IP가 아닌 여러 IP가 제공된다는것을 볼 수 있었다. 그럼 브라우저는 어떤 IP로 접속을 해야될까?
일반적으로 Round Robin 방식을 활용하지만, 이를 활용한 경우 문제가 발생 할 수 있다. 근본적인 문제들은 다음과 같다
서버의 상태를 알 수 없어 서비스를 실패하는 유저가 생길 수 있다
Round Robin임으로 정교한 로드 밸런싱이 힘들다
멀리 떨어진 위치의 서버로 연결 될 수 있다
즉 DNS에서 IP에 대한 Health Check와 부하 분산 알고리즘을 적용하면 되고, GSLB과 이를 구현해준다.
Health Check의 동작원리는 사용자가 GSLB에서 제공하는 IP 주소로 접근 했을 때, 정상적인 응답이라면 Health OK, 오류값이 온다면 재전송 후 재전송 횟수 이내에 정상적인 응답이 없다면 다운 됐다고 판단
이제 GSLB 버전으로 5번부터 확인해보자
5. modocode.com
에 대한 권한은 GSLB에 있으므로, GSLB에 물어볼 수 있게 IP 주소를 제공
6. Local DNS가 GSLB에 modocode.com
에 대한 Query를 물어본다
7. 8. 9. 10. 11. GSLB가 modocode.com
에 대한 헬스 체크를 수행 후, 알고리즘에 따라 최적의 IP 주소를 반환한다
12. 최종으로 받은 IP 주소로 패킷을 보낼 수 있다
앞서, GSLB가 최적의 IP를 반환해준다고 했는데, 이 알고리즘에는 여러 방식이 존재한다. AWS Route53은 직접 라우팅 정책을 선택할 수 도 있는데, 방식들은 다음과 같다.
참고