Hotline : 07 088 44444
Thích
Chia sẻ

DNS là gì? DNS dùng để làm gì?

19/02/2021

DNS là thứ cho phép người dùng kết nối với các trang web bằng tên miền thay vì địa chỉ IP. Tìm hiểu DNS là gì, cách hoạt động và tầm quan trọng của DNS. Hãy cùng tìm về DNS rõ hơn trong bài viết hôm nay.

DNS là gì?

DNS là hệ thống phân giải tên miền (DNS là viết tắt của Domain Name System) là một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền trên Internet.

DNS được phát minh vào năm 1984 cho Internet và đây là một trong số các chuẩn công nghiệp của các cổng bao gồm cả TCP/IP. Hệ thống phân giải tên miền chính là chìa khóa chủ chốt của nhiều dịch vụ mạng hiện nay như Internet, mail server, web server…

DNS là gì?
DNS là gì?

DNS dùng để làm gì?

Mỗi máy tính khi kết nối vào Internet sẽ được gán cho 1 địa chỉ IP (ví dụ: 1414.1158.62462) riêng biệt và không trùng lẫn với bất kỳ máy tính nào khác trên thế giới. Cũng giống như vậy đối với website cũng có địa chỉ IP riêng biệt của website đó.

Tuy nhiên, mỗi website đề có một địa chỉ IP là các con số khá dài và khó nhớ khiến bạn không thể nhớ rõ con số IP đó.

Ví dụ địa chỉ IP là 103.200.21.192 dẫn đến website Vietnix thay vì gõ vietnix.vn trên thanh tìm kiếm. Lúc này là lúc DNS “trổ tài chuyển đổi” (ánh xạ) dãy số địa chỉ IP khô khan thành những ký tự thân thiện hơn. Chính vì nhờ có giao thức DNS nên bạn không cầnphải nhớ địa chỉ IP để vào website Vietnix mà chỉ cần nhớ vietnix.vn là được.

Nói cách khác, DNS cũng giống như một danh bạ điện thoại dành riêng cho Internet. Nếu bạn biết tên của một người nhưng không biết số điện thoại hay ngược lại, bạn có thể tham khảo trong sổ danh bạ dễ dàng.

Cách thức hoạt động của DNS

Quá trình phân giải DNS bao gồm chuyển đổi tên máy chủ (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 được cung cấp cho mỗi thiết bị trên Internet và địa chỉ đó là cần thiết để tìm 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 bản dịch phải xảy ra giữa những gì người dùng nhập vào trình duyệt web của họ (example.com) và địa chỉ thân thiện với máy cần thiết để định vị trang web example.com.

Để hiểu quy trình đằng sau quá trình phân giải DNS, điều quan trọng là phải tìm hiểu về các thành phần khác nhau mà một truy vấn DNS phải vượt qua. Đối với trình duyệt web, việc tra cứu DNS diễn ra ở chế độ ẩn. Và không yêu cầu sự tương tác từ máy tính của người dùng ngoài yêu cầu ban đầu.

4 máy chủ DNS liên quan đến việc tải trang web

DNS recursor

Người nhận 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 máy khách.

Root nameserver

Root nameserver là bước đầu tiên trong việc dịch (giải quyết) tên miền thành địa chỉ IP. Nó có thể được coi như một chỉ mục trong thư viện. Nó chỉ ra các kệ sách khác nhau – thông thường nó được dùng như một tham chiếu đến các vị trí cụ thể hơn.

TLD nameserver

Top Level Domain (TLD) Nameserver có thể được coi là một giá sách cụ thể trong thư viện. Nameserver này là bước tiếp theo trong quá trình tìm kiếm một địa chỉ IP cụ thể. Nó lưu trữ phần cuối cùng của tên máy chủ (Trong ví dụ .com, máy chủ TLD là “com”).

Authoritative nameserver

Authoritative nameserver có thể được coi là một từ điển trên giá sách. Trong đó một tên cụ thể có thể được dịch thành định nghĩa của nó. Authoritative nameserver là điểm dừng cuối cùng trong truy vấn nameserver.

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 tên miền được yêu cầu trở lại DNS recursor (người thủ thư) đã thực hiện yêu cầu ban đầu.

Sự khác biệt giữa authoritative DNS server và recursive DNS resolver

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à nằm ở các vị trí khác nhau trong quá trình truy vấn DNS.

Một cách để suy nghĩ về sự khác biệt là recursive resovler ở đầu quá trình truy vấn DNS và authoritative nameserver nằm ở cuối.

Recursive DNS Resolver

Recursive resolver là máy tính đáp ứng yêu cầu truy vấn DNS đệ quy từ máy khách và dành thời gian để theo dõi bản ghi DNS . Nó thực hiện điều này bằng cách thực hiện một loạt các yêu cầu. Cho đến khi đến được authoritative DNS nameserver đối với bản ghi được yêu cầu. Hoặc hết thời gian hoặc trả về lỗi nếu không tìm thấy bản ghi nào.

May mắn thay, các recursive DNS resolver không phải lúc nào cũng cần thực hiện nhiều yêu cầu để theo dõi các record cần thiết để trả lời truy vấn. Bộ nhớ đệm (cache) là một quá trình lưu giữ dữ liệu giúp phục vụ record được yêu cầu trước đó trong việc tra cứu DNS mà không cần phải thực hiện lại quá trình.

Authoritative DNS server

Nói một cách đơn giản, một Authoritative DNS là một máy chủ thực sự, lưu giữ và chịu trách nhiệm về các bản ghi tài nguyên DNS. Đây là máy chủ ở cuối chuỗi tra cứu DNS sẽ phản hồi với record được yêu cầu. Cuối cùng cho phép trình duyệt web đưa ra yêu cầu truy cập địa chỉ IP cần thiết. Để truy cập trang web hoặc các tài nguyên web khác.

Authoritative nameserver có thể đáp ứng các truy vấn dữ liệu từ chính nó mà không cần truy vấn một nguồn khác. Vì đó là nơi chứa cuối cùng cho các bản ghi DNS nhất định.

Sơ đồ truy vấn DNS
Tìm hiểu về DNS

Các recursive resolver khác nhau như Google DNS, OpenDNS và các nhà cung cấp như Comcast đều duy trì trung tâm dữ liệu cài đặt các bộ recursive DNS resolver. Nó cho phép truy vấn nhanh chóng và dễ dàng thông qua các cụm hệ thống máy tính được tối ưu hóa. Nhưng chúng khác về cơ bản so với các nameserver được lưu trữ bởi Cloudflare.

Cloudflare duy trì các nameserver cấp cơ sở hạ tầng không thể thiếu với chức năng của Internet. Một ví dụ chính là mạng máy chủ f-root mà Cloudflare chịu trách nhiệm một phần cho việc lưu trữ. F-root là một trong những thành phần cơ sở hạ tầng máy chủ DNS cấp gốc. Chịu trách nhiệm cho hàng tỷ yêu cầu Internet mỗi ngày.

Mạng Anycast của chúng tôi cho phép xử lý khối lượng lớn lưu lượng DNS mà không bị gián đoạn dịch vụ.

Các bước trong tra cứu DNS là gì?

Trong hầu hết các tình huống, DNS liên quan đến một tên miền được phân giải 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 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ó cache:

1. Một người dùng nhập ‘example.com’ vào trình duyệt web và truy vấn sẽ truy cập Internet. Và được nhận bởi DNS recursive resolver.

2. Resolver sau đó truy vấn một root nameserver DNS (.).

3. Sau đó, Root Nameserver phản hồi resolver bằng địa chỉ của máy chủ DNS Tên miền cấp cao (TLD) (chẳng hạn như .com hoặc .net), nơi lưu trữ thông tin cho các tên miền của nó. Khi tìm kiếm example.com, yêu cầu của chúng tôi được hướng tới TLD .com.

4. Resovler sau đó thực hiện một yêu cầu tới TLD .com.

5. Sau đó, máy chủ TLD phản hồi với địa chỉ IP nameserver của domain example.com.

6. Cuối cùng, recursive resolver gửi một truy vấn đến nameserver của tên miền.

7. Địa chỉ IP cho example.com sau đó được trả về từ nameserver.

8. DNS Resovler 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.

9. Khi 8 bước tra cứu DNS đã trả về địa chỉ IP cho example.com. Trình duyệt có thể đưa ra yêu cầu cho trang web. Trình duyệt tạo một yêu cầu HTTP đến địa chỉ IP.

10. Máy chủ tại IP đó trả về trang web sẽ được hiển thị trong trình duyệt (bước 10).

Resolver DNS là gì?

Resolver DNS là điểm dừng đầu tiên trong quá trình tra cứu DNS. Và chịu trách nhiệm xử lý ứng dụng khách đã thực hiện yêu cầu ban đầu. Nó bắt đầu chuỗi các truy vấn cuối cùng dẫn đến một URL được phân giải sang địa chỉ IP cần thiết.

Lưu ý: Một tra cứu DNS không được quản lý điển hình sẽ bao gồm cả truy vấn đệ quy và truy vấn lặp lại.

Điều quan trọng là phải phân biệt giữa recursive DNS query và recursive DNS resolver. Query đề cập đến yêu cầu được gửi đến DNS resolver và yêu cầu phân giải tên miền. Recursive DNS resolver là máy tính chấp nhận truy vấn đệ quy và phản hồi bằng cách thực hiện các xử lý cần thiết.

Các loại truy vấn DNS

Trong một truy vấn DNS thông thường, ba loại truy vấn xảy ra. Bằng cách sử dụng kết hợp các truy vấn này. Một quy trình được tối ưu hóa cho quá trình phân giải DNS có thể giúp giảm khoảng cách di chuyển. Trong một tình huống lý tưởng, dữ liệu bản ghi được lưu trong bộ nhớ cache sẽ khả dụng, cho phép máy chủ định danh DNS trả về truy vấn không đệ quy.

3 loại truy vấn DNS:

1. Recursive query: DNS client yêu cầu máy chủ DNS (thường là recursive DNS resolver). 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 resolver không thể tìm thấy bản ghi.

2. Iterative query: trong tình huống này, DNS client 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 đến máy chủ DNS có thẩm quyền cho mức thấp hơn. DNS client sau đó sẽ thực hiện một truy vấn đến địa chỉ được 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 cho đến khi xảy ra lỗi hoặc hết thời gian.

3. Non-recursive query: thông thường điều này sẽ xảy ra khi DNS resolver client truy vấn máy chủ DNS một record mà server có quyền truy cập hoặc bản ghi tồn tại bên trong bộ đệm của server. Thông thường, một máy chủ DNS sẽ lưu các bản ghi DNS để ngăn chặn việc tiêu thụ thêm băng thông và giảm tải cho các máy chủ DNS khác.

Bộ nhớ đệm DNS là gì? Trường hợp bộ nhớ đệm DNS xảy ra ở đâu?

Mục đích của bộ nhớ đệm (cache) là lưu trữ dữ liệu tạm thời ở một vị trí dẫn đến 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 gần hơn với client request để 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 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. mục đích ở đây là rõ ràng. Bộ nhớ đệm DNS xảy ra càng gần với trình duyệt web thì càng phải thực hiện ít bước xử lý hơn. Để kiểm tra bộ đệm và thực hiện các yêu cầu chính xác đến địa chỉ IP. 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.

Bộ nhớ đệm DNS cấp hệ điều hành (HĐH)

Resolver DNS cấp hệ điều hành là điểm dừng cục bộ thứ hai. Và cuối cùng trước khi truy vấn DNS rời khỏi máy của bạn. Quá trình bên trong hệ điều hành của bạn được thiết kế để xử lý truy vấn này thường được gọi là “stub resolver” hoặc DNS client

Khi stub resolver nhận được yêu cầu từ một ứng dụng. Đầu tiên nó sẽ kiểm tra bộ đệm của chính nó để xem nó có bản ghi hay không. Nếu không, nó sẽ gửi một truy vấn DNS (với một cờ đệ quy) tới một recursive resolver  DNS bên trong nhà cung cấp dịch vụ Internet (ISP).

Khi recursive resolver bên trong ISP nhận được truy vấn DNS. Giống như tất cả các bước trước đó. Nó cũng sẽ kiểm tra xem record được yêu cầu đã được lưu trữ bên trong cache của nó chưa.

Recursive resolver cũng có chức năng bổ sung. Tùy thuộc vào loại bản ghi mà nó có trong bộ đệm.

1. Nếu resolver không có bản ghi A , nhưng có bản ghi NS cho authoritative nameserver. Nó sẽ truy vấn trực tiếp các nameserver đó, bỏ qua một số bước trong truy vấn DNS. Việc này ngăn chặn tra cứu từ root nameserver và .com (trong tìm kiếm của chúng tôi ví dụ .com). Và giúp việc giải quyết truy vấn DNS xảy ra nhanh hơn.

2. Nếu resolver không có bản ghi NS, nó sẽ gửi một truy vấn đến các máy chủ TLD (trong trường hợp của chúng tôi), bỏ qua root nameserver.

3. Trong trường hợp không chắc là resolver không có các bản ghi trỏ đến các máy chủ TLD, thì nó sẽ truy vấn các root nameserver. Sự kiện này thường xảy ra sau khi bộ đệm DNS đã bị xóa.

Server là gì?

Máy chủ (server) là một thiết bị hoặc chương trình dành riêng để cung cấp dịch vụ cho các chương trình khác, được gọi là ‘client’. DNS client được tích hợp trong hầu hết các OS máy tính để bàn và di động hiện đại. Nó cho phép trình duyệt web tương tác với DNS server.

Cách DNS server giải quyết một DNS query?

Điển hình, trong một DNS query mà không có caching, có bốn server hoạt động cùng nhau để cung cấp địa chỉ IP cho client: recursive resolvers, root nameservers, TLD nameservers, và authoritative nameservers

DNS recursor (còn được gọi là DNS resolver) là một máy chủ nhận truy vấn từ DNS client, sau đó tương tác với các DNS server khác để truy tìm IP chính xác. Khi resolver nhận được yêu cầu từ client, resolver sau đó thực sự hoạt động như một client, truy vấn ba loại DNS server khác để tìm kiếm đúng IP.

dns server là gì

DNS Lookup

Đầu tiên, resolver truy vấn root nameservers. Root-server là bước đầu tiên trong việc phân giải các tên miền có thể đọc được thành địa chỉ IP. Sau đó, root server sẽ phản hồi lại resolver bằng địa chỉ của Top Level Domain (TLD) DNS server (chẳng hạn như .com hoặc .net) lưu trữ thông tin cho các miền của nó.

Tiếp theo, resolver truy vấn TLD server. TLD server phản hồi bằng địa chỉ IP authoritative nameserver của tên miền. Sau đó, recursor sẽ truy vấn authoritative nameserver. Sau đó máy chủ này sẽ respond bằng địa chỉ IP của origin server.

Resolver cuối cùng sẽ chuyển địa chỉ IP của origin server trở lại client. Sử dụng địa chỉ IP này, client sau đó có thể bắt đầu truy vấn trực tiếp đến origin server. Và origin server sẽ phản hồi bằng cách gửi dữ liệu trang web cho trình duyệt web để hiển thị.

DNS Caching

Ngoài quy trình được nêu ở trên, recursive resolver cũng có thể giải quyết các truy vấn DNS. Bằng cách sử dụng dữ liệu được lưu trong bộ nhớ cache. Sau khi truy xuất địa chỉ IP chính xác cho một trang web nhất định. Resolver sẽ lưu trữ thông tin đó trong bộ nhớ cache của nó trong một khoảng thời gian giới hạn. Trong khoảng thời gian này, nếu bất kỳ máy khách nào khác gửi yêu cầu cho tên miền đó, resolver có thể bỏ qua quy trình tra cứu DNS thông thường và chỉ cần trả lời client bằng địa chỉ IP được lưu trong bộ nhớ cache.

Khi thời gian lưu vào bộ nhớ đệm hết hạn, resolver phải truy xuất lại địa chỉ IP, tạo entry mới trong bộ nhớ cache của nó. Giới hạn thời gian này, được gọi là thời gian tồn tại (TTL) được đặt trong DNS record cho mỗi trang web. Thông thường, TTL nằm trong khoảng 24-48 giờ. TTL là cần thiết vì máy chủ web đôi khi thay đổi địa chỉ IP của chúng. Do đó, các resolver không thể phân phát cùng một IP từ bộ nhớ cache vô thời hạn.

DNS server bị lỗi thì điều gì sẽ xảy ra?

DNS Server có thể bị lỗi vì nhiều lý do, chẳng hạn như mất điện, tấn công mạng và trục trặc phần cứng. Những ngày đầu của Internet, sự cố ngừng hoạt động của DNS server có thể có tác động rất lớn. Rất may, ngày nay có rất nhiều dự phòng được tích hợp vào DNS. Ví dụ: có nhiều trường hợp root DNS server, TLD nameserver. Và hầu hết các ISP đều có các recursive resolver dự phòng cho người dùng của họ. (Người dùng cá nhân cũng có thể sử dụng public DNS resolvers, như Cloudflare’s 1.1.1.1.) Hầu hết các trang web phổ biến cũng có nhiều phiên bản authoritative nameserver của họ.

Một số lỗi phổ biến như: dns_probe_finished_nxdomain

Trong trường hợp DNS server chính bị ngừng hoạt động, một số người dùng có thể gặp phải sự chậm trễ do lượng yêu cầu được xử lý bởi các server dự phòng. Nhưng sẽ mất một lượng lớn DNS khiến một phần đáng kể Internet không khả dụng. (Điều này thực sự xảy ra vào năm 2016 khi nhà cung cấp DNS Dyn trải qua một trong những cuộc tấn công DDoS lớn nhất trong lịch sử).

Thông qua bài viết trên hy vọng đã giúp bạn hiểu được về DNS Server là gì, cách thức hoạt động của DNS Server. Theo dõi các bài tiếp theo để nắm được nhiều kiến thức khác nhé

Lời kết

Hy vọng bài viết trên sẽ giúp cho các bạn hiểu rõ DNS là gì và cách thức hoạt động cũng như chức năng của DNS. Nếu bạn có thắc mắc hay đóng góp ý kiến, mời bạn để lại bình luận phía dưới bài viết này. Vietnix xin chân thành cảm ơn bạn.

Nếu bạn có thắc mắc hay có vấn đề cần hỗ trợ, bạn có thể liên hệ trực tiếp với Vietnix thông qua các kênh sau:
  • Hotline: 1800 1093 - 07 088 44444
  • Email: support@vietnix.vn
  • Hoặc chat trực tiếp với Vietnix thông qua biểu tượng Livechat ở góc phải màn hình. Đội ngũ chuyên viên của chúng tôi luôn sẵn sàng tư vấn và hỗ trợ bạn 24/7.
Vietnix hiện đang có chương trình khuyến mãi lớn nhất trong năm, giảm giá TRỌN ĐỜI: Đăng ký dùng thử ngay và Vietnix sẽ hoàn tiền 100% nếu quý khách không hài lòng với chất lượng sản phẩm, dịch vụ!
Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PersonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments