✔️ DNS
DNS란?
- Domain Name System
- 사용자가 숫자로 된 인터넷 프로토콜 주소 대신
인터넷 도메인 이름과 검색 가능한 URL을 사용하여 웹 사이트에 접속하는 것을 가능하도록 함 - 퍼블릭 DNS와 프라이빗 DNS가 존재
- 퍼블릭 DNS는 인터넷 서비스 제공업체 ISP가 기업에 IP 레코드를 제공하고,
이러한 레코드는 일반 대중에게 공개되어 네트워크에 상관없이 누구나 액세스할 수 있음 - 프라이빗 DNS는 회사의 방화벽 뒤에 존재하며 내부 사이트의 레코드만을 보관하므로
프라이빗 네트워크 외부에서 액세스할 수 없음
- 퍼블릭 DNS는 인터넷 서비스 제공업체 ISP가 기업에 IP 레코드를 제공하고,
- DNS의 작동 방식
- 사용자가 도메인 이름 또는 URL을 브라우저에 입력하면
DNS Resolver는 자신의 캐시에 해당 도메인 이름에 대한 IP 주소가 저장되어 있는지 확인 - 캐시에 저장된 IP 주소가 있다면 해당 IP 주소를 반환하고, 없거나 만료되었다면 Root DNS 서버에 요청하게 됨
- Root DNS 서버는 TLD DNS 서버에 대한 정보를 가지고 있으므로 TLD DNS 서버의 IP 주소를 DNS Resolver에게 전달
- DNS Resolver는 TLD DNS 서버에 대해 질의를 수행하고
TLD DNS 서버는 해당 도메인 이름의 Authoritivative DNS 서버의 IP 주소를 DNS Resolver에게 반환 - DNS Resolver는 Authoritivative DNS 서버에 요청하고
Authoritivative DNS 서버는 해당 도메인 이름에 대한 IP 주소를 가지고 있으므로 이를 반환하게 됨 - DNS Resolver는 해당 IP 주소를 캐시에 저장하고
이후 동일한 도메인 이름에 대한 질의가 들어올 때 캐시에 저장된 주소를 사용
- 사용자가 도메인 이름 또는 URL을 브라우저에 입력하면
DNS 라운드 로빈 방식
- 별도의 로드밸런싱 장비를 사용하지 않고 DNS 만을 이용하여 도메인 레코드 정보를 조회하는 시점에서 트래픽을 분산하는 방법
- IP 주소를 여러 대의 서버 IP 리스트 중에서 라운드 로빈 형태로 랜덤하게 하나 혹은 여러 개를 선택하여 다시 사용자에게 알려줌
- 이를 통해 웹 사이트에 접속하는 다수의 사용자는 실제로는 복수의 웹 서버에 나뉘어 접속하게 되므로 서버의 부하가 분산됨
- 하지만 여러 문제점도 존재함
- 서버의 수 만큼 공인 IP 주소가 필요함
- 일정 시간 동안 캐싱되는 프록시 서버나 DNS 질의 결과로 인해 항상 같은 서버로 접속되게 되므로 균등하게 분산되지 않음
- 웹 서버의 부하나 접속 수 등의 상황에 따라 질의 결과를 제어할 수 없으므로 서버가 다운되어도 확인할 수 없음
- 이러한 단점을 해소하기 위한 DNS 스케줄링 알고리즘으로는 Weighted Round Robin, Least Connection이 존재하며
어디까지나 부하 분산을 위한 방법이지 다중화 방법은 아니므로 다른 소프트웨어와 조합해서 관리할 필요가 있음
'Tech Interview > Network' 카테고리의 다른 글
[Network] REST (0) | 2024.01.24 |
---|---|
[Network] 웹 통신의 큰 흐름 (0) | 2024.01.24 |
[Network] 쿠키와 세션 (0) | 2024.01.17 |
[Network] CORS (0) | 2024.01.17 |
[Network] HTTP와 HTTPS (0) | 2024.01.16 |