DNS là gì?
Mình đang tập làm website, mình có tìm hiểu về cách làm trên mạng, thì có nhắc đến công cụ DNS. Mấy bạn cho mình hỏi DNS là gì vậy ạ? Tại sao khi làm website phải cần đến DNS? Ai có kinh nghiệm làm rồi cho mình một chút thông tin với.
Đây là câu hỏi mà nhiều bạn muốn biết khi bắt đầu tập làm website. Mình đã có kinh nghiệm làm được gần 2 năm nên mình khá hiểu về những kiến thức liên quan đến chủ đề hôm nay.
Và mình khẳng định với bạn muốn làm được website phải có DNS. Vậy DNS là gì? Tại sao lại bắt buộc như vậy?
Sau khi đọc bài viết này, bạn sẽ có thể:
- Xác định DNS
- Hiểu cách DNS hoạt động
- Phân biệt giữa tra cứu recursive và iterative DNS
- Khám phá cách bộ nhớ cache DNS hoạt động
DNS là gì?
DNS viết tắt của Domain Name Systems – Hệ thống tên miền, có thể hiểu như là danh bạ của Internet. Con người truy cập thông tin trực tuyến thông qua các tên miền, như google.com hoặc hoidaptructuyen.vn. Các trình duyệt web tương tác thông qua các địa chỉ IP (Giao thức Internet – địa chỉ liên kết đến hostname). DNS dịch tên miền thành địa chỉ IP để trình duyệt có thể tải tài nguyên từ Internet.
Mỗi thiết bị kết nối Internet có một địa chỉ IP duy nhất mà các máy khác sử dụng để tìm thiết bị. Các máy chủ DNS đưa những tên miền đã nêu trên thành các địa chỉ IP như 192.168.1.1 (trong IPv4) hoặc các địa chỉ IP chữ và số mới hơn phức tạp hơn như 2400: cb00: 2048: 1 :: c629: d7a2 (trong IPv6).
DNS hoạt động như thế nào?
Quá trình phân giải DNS bao gồm chuyển đổi hostname (tên máy chủ,website) (chẳng hạn như www.example.com) thành địa chỉ IP thân thiện với máy tính (chẳng hạn như 192.168.1.1). Một địa chỉ IP cung cấp cho một thiết bị trên Internet và địa chỉ đó giúp định vị thiết bị Internet phù hợp – giống như một địa chỉ đường phố được sử dụng để tìm một ngôi nhà cụ thể. Khi người dùng muốn tải một trang web, một sự chuyển đổi xảy ra giữa người dùng vào trình duyệt web (example.com) và địa chỉ để định vị trang web example.com.
Để hiểu được quá trình đằng sau độ phân giải DNS, điều quan trọng là phải tìm hiểu về các thành phần phần cứng khác nhau mà một truy vấn DNS phải vượt qua.
Có 4 máy chủ DNS liên quan đến việc tải trang web
- DNS Recoder- Người nhận DNS – có thể được coi là một thủ thư, người được yêu cầu đi tìm một cuốn sách cụ thể ở đâu đó trong thư viện. Người nhận DNS là một máy chủ được thiết kế để nhận các truy vấn từ máy khách thông qua các ứng dụng như trình duyệt web. Thông thường, người nhận sau đó chịu trách nhiệm thực hiện các yêu cầu bổ sung để đáp ứng truy vấn DNS của khách hàng.
- Root nameserver – Máy chủ tên miền gốc là bước đầu tiên trong việc dịch (giải quyết) host name thành địa chỉ IP. Nó có thể được hiểu giống như một mục lục trong thư viện chỉ ra các giá sách khác nhau.
- TLD nameserver – Máy chủ tên miền TLD – Máy chủ tên miền cấp cao nhất (TLD) có thể được coi là một giá sách cụ thể trong thư viện. Máy chủ tên miền này là bước tiếp theo trong quá trình tìm kiếm một địa chỉ IP cụ thể và nó lưu trữ phần cuối của tên máy chủ (Ví dụ example.com, máy chủ TLD là “com”).
- Authoritative nameserver – Máy chủ tên miền quyền lực – Máy chủ tên miền quyền lực là điểm dừng cuối cùng trong truy vấn nameserver (máy chủ tên miền). Nếu Authoritative nameserver có quyền truy cập vào bản ghi được yêu cầu, nó sẽ trả lại địa chỉ IP cho hostname mà đã được yêu cầu, quay lại với DNS Recoder (người thủ thư).
Sự khác biệt giữa authoritative DNS server và recursive DNS resolver là gì?
Cả hai khái niệm đều đề cập đến các máy chủ (nhóm máy chủ) không thể tách rời với cơ sở hạ tầng DNS, nhưng mỗi khái niệm thực hiện một vai trò khác nhau và đặt ở các vị trí khác nhau bên trong đường dẫn của truy vấn DNS. Có thể nói sự khác biệt là trình phân giải đệ quy nằm ở đầu truy vấn DNS và máy chủ tên có thẩm quyền ở cuối.
Các bước trong tra cứu DNS
Trong hầu hết các tình huống, DNS liên quan đến một tên miền được dịch sang địa chỉ IP thích hợp. Để tìm hiểu cách thức hoạt động của quy trình này, nó giúp theo dõi quá trình tra cứu DNS khi nó di chuyển từ trình duyệt web, thông qua quy trình tra cứu DNS và quay lại. Chúng ta hãy xem các bước.
Lưu ý: Thông thường thông tin tra cứu DNS sẽ được lưu trong bộ nhớ cache cục bộ bên trong máy tính truy vấn hoặc từ xa trong cơ sở hạ tầng DNS. Thông thường có 8 bước trong tra cứu DNS. Khi thông tin DNS được lưu trong bộ nhớ cache, các bước được bỏ qua khỏi quy trình tra cứu DNS giúp việc này nhanh hơn. Ví dụ dưới đây phác thảo tất cả 8 bước khi không có gì được lưu trữ.
8 bước trong tra cứu DNS:
- Người dùng nhập ‘example.com’ vào trình duyệt web và DNS recursive resolver (Trình phân giải DNS đệ quy) sẽ nhận được.
- Sẽ có bộ phận (resolver) giải quyết Root nameserver – Máy chủ tên miền gốc DNS.
- Sau đó, máy chủ gốc phản hồi bằng địa chỉ của máy chủ DNS một Tên miền cấp cao (TLD) (Top Level Domain) (chẳng hạn như .com hoặc .net).
- Bộ phận resolver sau đó thực hiện một yêu cầu tới TLD .com.
- Sau đó, máy chủ TLD sẽ phản hồi với địa chỉ IP của máy chủ tên miền đó.
- Cuối cùng, trình phân giải đệ quy gửi một truy vấn đến máy chủ tên miền.
- Địa chỉ IP của tên miền đó sau đó được trả về máy chủ.
- Sau đó trả lời trình duyệt web bằng địa chỉ IP của tên miền được yêu cầu ban đầu.
Các loại truy vấn DNS là gì?
Có ba loại truy vấn. Bằng cách sử dụng kết hợp các truy vấn, một quy trình được tối ưu hóa cho độ phân giải DNS có thể giúp giảm khoảng cách di chuyển.
- Truy vấn đệ quy – Trong truy vấn đệ quy, máy khách DNS yêu cầu máy chủ DNS (thường là trình phân giải đệ quy DNS) sẽ trả lời máy khách bằng bản ghi tài nguyên được yêu cầu hoặc thông báo lỗi nếu trình phân giải không thể tìm thấy bản ghi.
- Truy vấn lặp – trong tình huống này, máy khách DNS sẽ cho phép máy chủ DNS trả về câu trả lời tốt nhất có thể. Nếu máy chủ DNS được truy vấn không có kết quả trùng khớp với tên truy vấn, nó sẽ trả về một giới thiệu cho máy chủ DNS có thẩm quyền không gian tên miền ở mức thấp hơn. Máy khách DNS sau đó sẽ thực hiện một truy vấn đến địa chỉ giới thiệu. Quá trình này tiếp tục với các máy chủ DNS bổ sung trong chuỗi truy vấn.
- Truy vấn không đệ quy – thông thường điều này sẽ xảy ra khi máy khách trình phân giải DNS truy vấn máy chủ DNS để xem bản ghi có quyền truy cập vì nó có thẩm quyền đối với bản ghi hoặc bản ghi tồn tại bên trong bộ đệm của nó. Thông thường, một máy chủ DNS sẽ lưu các bản ghi DNS.
Bộ nhớ đệm DNS là gì? Tìm thấy bộ nhớ đệm ở đâu?
Mục đích của bộ nhớ đệm là lưu trữ dữ liệu tạm thời ở một vị trí để cải thiện hiệu suất và độ tin cậy cho các yêu cầu dữ liệu. Bộ nhớ đệm DNS liên quan đến việc lưu trữ dữ liệu để yêu cầu máy khách có thể giải quyết truy vấn DNS sớm hơn và có thể tránh các truy vấn bổ sung xuống chuỗi tra cứu DNS, do đó cải thiện thời gian tải và giảm mức tiêu thụ băng thông / CPU. Dữ liệu DNS có thể được lưu trong bộ nhớ cache ở nhiều vị trí khác nhau, mỗi vị trí sẽ lưu trữ các bản ghi DNS trong một khoảng thời gian xác định theo thời gian tồn tại (TTL).
Bộ nhớ cache DNS của trình duyệt
Các trình duyệt web hiện đại được thiết kế theo mặc định để lưu các bản ghi DNS trong một khoảng thời gian đã đặt. Khi yêu cầu được tạo cho bản ghi DNS, bộ đệm của trình duyệt là vị trí đầu tiên được kiểm tra cho bản ghi được yêu cầu.
Trong chrome, bạn có thể thấy trạng thái bộ đệm DNS của mình bằng cách truy cập chrome://net-internals/#dns