DNS가 뭘까
DNS는 Domain Name Server의 약자로, ogig0818.tistory.com 같은 도메인 이름을 통해 온라인으로 정보에 액세스합니다. 웹 브라우저는 인터넷 프로토콜(IP) 주소를 통해 상호작용하며, DNS는 브라우저가 인터넷 자원을 로드할 수 있도록 도메인 이름을 IP 주소로 변환합니다.
인터넷에 연결된 각 기기에는 다른 컴퓨터가 기기를 찾는 데 사용하는 고유한 IP 주소가 있습니다. DNS 서버는 사람이 192.168.0.1 (IPv4의 경우) 또는 2400:cb00:2048:1::c629:d7a2 (IPv6의 경우)처럼 영문과 숫자로 된 복잡한 IP 주소를 기억할 수고를 덜어줍니다.
DNS의 동작 원리
DNS 확인 프로세스에는 호스트 이름(e.g. www.example.com)을 컴퓨터 친화적인 IP 주소로 변환하는 과정이 포함됩니다. IP 주소는 인터넷의 각 기기에 제공되며 적절한 인터넷 기기를 찾기 위해 사용됩니다. 사용자가 어떤 웹 페이지를 로드하려고 할 때는 사용자가 웹 브라우저에 입력한 내용(e.g. example.com)을 웹 페이지를 찾는 데 필요한 컴퓨터 친화적 주소로 변환해야 합니다.
웹 페이지 로드와 관련된 4개의 DNS 서버
- DNS 리커서: 웹 브라우저 등의 애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버로, 클라이언트의 DNS 쿼리를 충족시키기 위해 추가 요청을 수행합니다.
ex. 도서관의 어딘가에서 특정한 책을 찾도록 요청 받는 사서의 입장
- 루트 이름 서버: 루트 서버는 사람이 읽을 수 있는 호스트 이름을 IP 주소로 변환(확인)하는 첫 번째 단계로, 더욱 특정한 위치에 대한 참조로 사용됩니다.
ex. 도서관에서 책장 위치를 가리키는 색인
- TLD 이름 서버: 특정 IP 주소 검색의 다음 단계로, 호스트 이름의 마지막 부분을 호스팅합니다.
ex. 도서관의 특정 책장, .com, .io
- 권한 있는 이름 서버: 최종 이름 서버로서, 이름 서버 쿼리의 종착점입니다. 해당 이름 서버가 요청한 레코드에 대한 접근 권한이 있다면, 요청한 호스트 이름의 IP 주소를 초기 요청을 시도한 DNS 리커서로 돌려보냅니다.
ex. 책장에 있는 사전
권한 있는 DNS 서버와 재귀 DNS 확인자의 차이점
두 개념 모두 DNS 인프라에 통합된 서버(서버 그룹)을 나타내지만, 각각 다른 역할을 수행하며 DNS 쿼리 파이프라인 내부의 다른 위치에 있습니다. 재귀 확인자는 DNS 쿼리의 시작 부분에, 권한 있는 이름 서버는 끝 부분에 있습니다.
재귀 확인자는 클라이언트의 재귀 요청에 응답하고 DNS 레코드를 추적하는 데 시간을 투자하는 컴퓨터입니다.
요청한 레코드에 대해, 권한 있는 DNS 이름 서버에 도달할 때까지 일련의 요청을 하는 방식으로 이를 수행합니다.
(만약 레코드가 없다면 시간 초과되거나 오류를 반환합니다.)
권한 있는 DNS 서버는 실제로 DNS 리소스 레코드를 보유하고 담당하는 서버이자 쿼리한 자원 레코드로 응답하는 DNS 조회 체인의 맨 아래에 있는 서버입니다.
궁극적으로 웹 브라우저가 웹 사이트 또는 다른 웹 자원에 액세스하는 데 필요한 IP 주소에 도달하도록 요청 가능하게 만듭니다.
추가적으로, foo.example.com 같은 하위 도메인에 대한 쿼리의 경우, 추가 이름 서버가 권한 있는 이름 서버 다음의 시퀀스에 추가되어 하위 도메인의 CNAME 레코드 저장을 담당합니다.
DNS 조회의 8단계
- 사용자가 웹 브라우저에 'example.com'을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신합니다.
- 이어서 확인자가 DNS 루트 이름 서버(.)를 쿼리합니다.
- 루트 서버가 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버의 주소(.com, .net)로 확인자에 응답합니다.
- 확인자가 .com TLD에 요청합니다.
- TLD 서버가 도메인 이름 서버의 IP 주소(example.com)로 응답합니다.
- 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냅니다.
- 그를 통해 example.com의 IP 주소가 이름 서버에서 확인자에게 반환됩니다.
- 마지막으로 DNS 확인자가 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답합니다.
DNS 조회의 8단계를 거쳐 example.com의 IP 주소가 반환되면, 이제 브라우저가 웹 페이지를 요청할 수 있습니다.
9. 브라우저의 IP 주소로 HTTP 요청을 보냅니다.
10. 해당 IP의 서버가 브라우저에서 렌더링할 웹 페이지를 반환합니다. (10단계)
Q1. DNS가 무엇인지 설명해주세요
Q2. DNS 레코드에 대해 설명해주세요
DNS 레코드는 도메인 이름에 대한 정보를 저장하는 데이터베이스 항목입니다. 가장 일반적인 유형으로는 A 레코드(도메인 이름과 IP 주소 매핑), CNAME 레코드(도메인 이름에 대한 별칭), MX 레코드(이메일 서버 정보) 등이 있습니다.
Q3. DNS의 작동 방식을 간단히 설명해주세요
사용자가 웹 브라우저에 도메인 이름을 입력하면, 먼저 로컬 DNS 서버가 해당 도메인 이름에 대한 IP 주소를 찾습니다. 만약 없다면, 계층적으로 구성된 DNS 시스템을 통해 더 상위 수준의 DNS 서버에 질의하여 IP 주소를 찾아냅니다.
Q4. DNS 캐싱에 대해 설명해주세요
DNS 캐싱은 이전에 방문한 웹사이트의 IP 주소를 저장하여 동일한 웹사이트에 다시 접속할 때 시간을 절약하는 메커니즘입니다. 이는 사용자 경험을 향상시키고 네트워크 트래픽을 줄이는 데 도움이 됩니다.
Q5. DNS 해킹으로부터의 보호 방법은 무엇인가요
DNSSEC(DNS Security Extensions)를 통해 DNS 해킹으로부터 보호할 수 있습니다. 또한, DDos 공격으로부터 보호하기 위해 안정적인 DNS 서비스 제공 업체를 선택하는 것 또한 중요합니다.
Q6. CNAME 레코드와 A 레코드의 차이점은 무엇인가요
CNAME 레코드는 도메인 이름에 대한 별칭을 지정하는 반면, A 레코드는 도메인 이름에 대한 IP 주소를 지정합니다. CNAME은 하나의 도메인이 다른 도메인을 가리킬 때 사용되며, A 레코드는 도메인 이름을 IP 주소로 매핑할 때 사용됩니다.
Q7. DNS 서버의 종류와 그 용도에 대해 설명해주세요.
주요 DNS 서버 유형으로는 리졸버, 루트 DNS 서버, 최상위 도메인(TLD) DNS 서버, 권한 부여된 DNS 서버 등이 있습니다. 각각의 서버는 사용자 요청을 처리하고 도메인 이름을 IP 주소로 변환하는 역할을 담당합니다.
Q8. DNS의 중요성과 역할에 대해 언급해주세요.
DNS는 인터넷에서 도메인 이름과 IP 주소 간의 매핑을 담당하여 웹사이트 접속을 가능하게 합니다. 또한 이메일 전송이나 네트워크 통신에서 중요한 역할을 합니다. DNS의 안정성과 정확성은 인터넷 사용자의 웹 경험과 전반적인 네트워크 안전성에 영향을 미칩니다.
참고 출처
'CS > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터네트워크] 포트포워딩에 대하여 (0) | 2023.12.12 |
---|---|
[컴퓨터 네트워크] OSI 7계층 - 각 계층별 네트워크 장비 (0) | 2023.10.30 |
[컴퓨터네트워크] 대용량 트래픽 대응을 위한 방안 5가지 (1) | 2023.10.23 |
[컴퓨터네트워크] 네트워크 스위치 (0) | 2023.10.09 |
[컴퓨터네트워크] OSI 7계층 (0) | 2023.10.08 |