DNS là gì? Quan trọng như thế nào trong hạ tầng mạng

3530
29-06-2021
DNS là gì? Quan trọng như thế nào trong hạ tầng mạng

DNS, cũng như HTTP, IPv4,… là một công nghệ liên quan mật thiết đến từng trải nghiệm của bạn mỗi ngày với thế giới Internet, nhưng lại không nhiều người thực sự hiểu cách vận hành hay thậm chí có những khái niệm mơ hồ về sự tồn tại của chúng. Dù bạn đang muốn tìm hiểu về DNS trên con đường xây dựng một Website, hay ngẫu nhiên tìm thấy thuật ngữ DNS và được thuật toán của Google đưa đến đây, BizFly Cloud sẽ giúp bạn giải đáp mọi thắc mắc về công nghệ này.

DNS là gì?

DNS là viết tắt tiếng Anh của Domain Name System, tạm dịch là hệ thống phân giải tên miền. Một cách dễ hiểu, DNS có thể được coi là danh bạ của thế giới Internet. Với điện thoại truyền thống, người ta thường gán các số điện thoại với tên riêng để tiện lưu trữ và tra cứu mỗi khi cần liên lạc thay vì phải ghi nhớ hàng trăm dãy số vô nghĩa. Dù vậy, số điện thoại mới thực sự được điện thoại của bạn gửi đi để nhà mạng sử dụng khi kết nối thuê bao của bạn đến thuê bao đích. Tương tự như vậy, chẳng ai muốn nhớ và nhập địa chỉ IP 142.250.204.46 mỗi khi cần tìm kiếm bằng Google, thay vào đó bạn nhập tên miền google.com và DNS sẽ tra cứu địa chỉ IP tương ứng trong cơ sở dữ liệu trước khi trả lại để trình duyệt của bạn thực hiện kết nối.

Chức năng của DNS dùng để làm gì?

DNS được sử dụng như một phiên dịch viên chuyển các tên miền dưới dạng ký tự của một website (vd: google.com, facebook.com,…) thành các địa chỉ IP tương ứng với máy chủ của website đó. Mặc dù các tên miền dạng ký tự có thể là cách duy nhất bạn biết khi muốn truy cập một website, thực tế chúng chỉ là lớp vỏ bọc giúp che dấu các địa chỉ IP – những dãy số dài vô nghĩa nhưng thực sự được sử dụng trong các giao thức kết nối Internet.

Nếu bạn là người có trí nhớ vượt trội và có thể nhớ được mọi số liên lạc trong danh bạ điện thoại, có thể bạn sẽ nhớ được một vài địa chỉ IP của các website phổ biến. Dù vậy số lượng website trên Internet là rất lớn, chưa kể những địa chỉ IPv4 dạng số kể trên đã sắp cạn kiệt và thế giới đang chuyển dần sang sử dụng IPv6 với không gian địa chỉ lớn hơn nhiều (đồng thời cấu trúc mỗi địa chỉ cũng phức tạp hơn). Nhìn chung, sự tồn tại của DNS là hết sức cần thiết mà nếu không có công nghệ này, có lẽ Internet đã không thể phát triển như những gì ta được biết ngày nay.

DNS hoạt động như thế nào?

Có thể chia quá trình xử lý một yêu cầu phân giải tên miền thành 10 bước:

  1. Người dùng nhập tên miền (vd: example.com) vào trình duyệt, trình duyệt tìm kiếm trong bộ nhớ cache xem nó đã từng lưu thông tin tên miền đó chưa, nếu chưa nó sẽ gửi một yêu cầu phân giải đến DNS Resolver – máy chủ tên miền cục bộ đầu tiên tiếp nhận yêu cầu của user và tương tác với các tầng DNS Server khác để lấy kết quả.
  2. DNS Resolver gửi yêu cầu đến DNS Root Server – máy chủ gốc của cây tên miền trên Internet.
  3. DNS Root Server trả về địa chỉ TLD Nameserver cần truy vấn. TLD Nameserver là máy chủ lưu trữ thông tin về các tên miền ở tầng cao nhất (Top Level Domain) như “.com”, “.org”,…
  4. DNS Resolver gửi truy vấn đến TLD Nameserver
  5. TLD Nameserver trả lại thông tin của máy chủ DNS quản lý các tên miền thứ cấp thuộc các miền cao nhất (vd: example.com thuộc .com). Các máy chủ trên được gọi là Authoritative Nameserver.
  6. DNS Resolver gửi truy vấn theo địa chỉ nhận được tới Authoritative Nameserver, quá trình phân giải địa chỉ diễn ra tại đây.
  7. Authoritative Nameserver lấy IP đầy đủ của tên miền được truy vấn và trả về cho DNS Resolver.
  8. DNS Resolver trả địa chỉ IP kết quả về trình duyệt của người dùng để thực hiện kết nối.
  9. Trình duyệt thực hiện kết nối HTTP đến địa chỉ đã nhận.
  10. Máy chủ tại IP đó trả về nội dung trang web được hiển thị trong trình duyệt.

Quá trình phân giải nêu trên không nhất thiết phải đi qua mọi tầng máy chủ DNS. Nếu máy chủ DNS ở một cấp nào đó đã lưu sẵn thông tin mà máy chủ ở cấp độ tiếp theo cung cấp (cached), kết quả có thể được trả lại ngay cho tầng trước. Sau đây ta cùng làm rõ hơn về các loại máy chủ DNS đã đề cập ở trên.

Có bao nhiêu loại DNS Server?

DNS Root Server

Mọi truy vấn DNS đều đi qua hệ thống DNS Root Server trước khi được chuyển tiếp truy vấn tới các tầng thấp hơn, cụ thể là Top Level Domain – TLD ở tầng tiếp theo. DNS Root Server lưu trữ thông tin về các máy chủ TLD, do đó nó có thể quyết định cần phải tìm kiếm ở đâu cho các tên miền thuộc lớp cao nhất. Trên Internet hiện nay chỉ có 13 hệ thống DNS Server ở cấp độ ROOT, trải đều trên khắp các vị trí địa lý để giảm thiểu độ trễ.

DNS Resolver

DNS Resolver còn được gọi là DNS Recursor, là máy chủ nhận truy vấn từ DNS client – các thiết bị đầu cuối truy cập Internet và giao tiếp với các tầng DNS Server để lấy kết quả là địa chỉ IP tương ứng tên miền website trả cho client. Có thể coi DNS Resolver như người quản thư tận tâm trong thư viện, người lắng nghe yêu cầu về một cuốn sách và sẵn sàng tra cứu các mục lưu trữ giúp chỉ ra vị trí chính xác bạn cần đến để lấy sách.

TLD Nameserver

TLD Nameserver (máy chủ tên miền mức cao nhất) quản lý thông tin cho tất cả các tên miền có chung phần mở rộng, chẳng hạn như .com, .net hoặc bất cứ thứ gì xuất hiện sau dấu chấm cuối cùng trong url. Ví dụ: máy chủ TLD cho tên miền “.com” chứa thông tin cho mọi trang web kết thúc bằng ‘.com’. Nếu người dùng đang tìm kiếm google.com, sau khi nhận được phản hồi từ máy chủ DNS Root Server, DNS Resolver sau đó sẽ gửi một truy vấn đến máy chủ TLD cho tên miền “.com”, truy vấn này sẽ được phản hồi với địa chỉ của Authoritative Nameserver quản lý tên miền đó.

Việc quản lý máy chủ định danh TLD do Cơ quan cấp số được ấn định trên Internet (IANA), là một nhánh của ICANN. IANA chia các máy chủ TLD thành hai nhóm chính:

  • Miền cấp cao nhất chung: Đây là những miền không dành riêng cho quốc gia, một số TLD chung được biết đến nhiều nhất bao gồm .com, .org, .net, .edu và .gov.

  • Tên miền cấp cao nhất của mã quốc gia: Những tên miền này bao gồm bất kỳ tên miền nào cụ thể cho một quốc gia hoặc tiểu bang (vd: “.vn”, “.uk”, “.us”, “.ru” và “.jp”).

Authoritative Nameserver

Khi một DNS resolver nhận được thông tin của Authoritative Nameserver, đây là nơi cuối cùng nó cần truy vấn để việc phân giải tên miền diễn ra. Authoritative Nameserver có chứa thông tin cụ thể tên miền nào gắn với địa chỉ nào. Nó sẽ trả về DNS Resolver địa chỉ IP cần thiết tìm thấy trong danh mục các bản ghi của nó.

Nguyên tắc làm việc của DNS

Nguyên tắc làm việc của DNS dựa trên việc tra vấn hệ thống DNS server. Mỗi nhà cung cấp sẽ có trách nhiệm quản lý DNS server và tên miền mà mình cung cấp. Chính vì thế khi tìm kiếm một địa chỉ website bất kỳ thì chỉ có DNS Server của đơn vị quản lý website mới có thể phân giải tên miền.

DNS có thể truy vấn các DNS Server khác để phân giải các tên miền. Khi có một DNS server ngoài cố gắng phân giải tên miền chúng không quản lý thì DNS Server của tên miền mà chúng cố gắng phân giải sẽ có những động thái trả lời lại. Đây cũng là một trong hai nhiệm vụ chính mà DNS Server phụ trách. 

Cách sử dụng DNS?

DNS có ảnh hưởng đáng kể đến quá trình truy cập website từ cả phía client và server, do đó cấu hình DNS phù hợp là một điều cần biết với mọi người dùng phổ thông đến các quản trị viên website.

Đối với web administrator: lựa chọn Nameserver

Khi chọn mua một tên miền, nhà cung cấp dịch vụ thường có sẵn một máy chủ tên miền (Nameserver) quản lý tên miền đó của bạn, và bạn . Bạn không cần phải làm gì nhiều với tùy chọn mặc định này ngoài việc trỏ tên miền đó tới địa chỉ IP website của bạn. Tương tự Web Hosting, việc thuê nhà cung cấp quản lý dịch vụ phân giải tên miền cho bạn gọi là DNS Hosting.

Tuy nhiên, đôi khi tùy chọn mặc định không đủ để đáp ứng nhu cầu hoặc bạn không muốn đặt tất cả hệ thống của mình vào một nhà cung cấp dịch vụ, khi đó thuê ngoài một nhà cung cấp chuyên nghiệp trong lĩnh vực DNS Hosting là một lựa chọn không tồi. Có hàng tá nhà cung cấp như cloudns, godaddy, rackspace,… lựa chọn là tùy theo khu vực địa lý mà khách hàng của bạn sinh sống và nhiều yếu tố khác. Thuê ngoài DNS hosting thường cho bạn tốc độ khả năng tùy biến, các phương án dự phòng tốt hơn so với lựa chọn mặc định.

Đối với người sử dụng thông thường: lựa chọn Resolver

Nhiều người không biết rằng tốc độ truy cập Internet của họ không chỉ phụ thuộc gói dịch vụ viễn thông mà còn có thể cải thiện chỉ bằng cách thay đổi DNS server. Thông thường mỗi nhà cung cấp dịch vụ Internet (ISP – Internet Service Provider) đều có sẵn hệ thống máy chủ phân giải tên miền, nhưng bạn cũng có thể sử dụng dịch vụ của bên thứ ba (trả phí hoặc miễn phí nhưng thậm chí vẫn có chất lượng tốt hơn) như Cloudflare, Cisco,… Không có một đáp án chung cho câu hỏi chọn nhà cung cấp DNS Resolver nào là tốt nhất, điều đó tùy thuộc vị trí địa lý và ISP của bạn, và bạn có thể tự kiểm tra bằng các công cụ DNS benchmark.

Thay đổi DNS Resolver từ phía client có thể được thực hiện trên router hoặc đơn giản nhất là từ chính thiết bị đầu cuối. Bạn có thể search với từ khóa “thay đổi DNS server” + <tên thiết bị/hệ điều hành> để biết hướng dẫn cụ thể. Dưới đây là hướng dẫn cho các phiên bản Windows:

  • Mở Network and Internet settings trong Control Panel.

  • Chọn Change Adapter Settings.

  • Click phải chuột vào Network Adapter của bạn, chọn Properties.

  • Chọn Internet Protocol Version 4 (TCP/IPv4) và sau đó chọn Properties.

  • Check vào ô Use the following DNS server addresses và nhập địa chỉ DNS server của nhà cung cấp muốn sử dụng (vd: Cloudflare là 1.1.1.1/1.0.0.1, google là 8.8.8.8/8.8.8.4)

  • Chọn OK và Done để lưu.

Có bao nhiêu loại bản ghi DNS

Như đã đề cập, các DNS Server lưu trữ cặp thông tin tương ứng tên miền – địa chỉ IP và thêm nhiều thông số bổ sung khác để hoạt động. Những thông tin này được lưu trữ dưới nhiều định dạng khác nhau gọi là bản ghi DNS (DNS Record).

Rất khó thống kê chính xác số loại bản ghi DNS hiện có, tùy thuộc vào chức năng lại có loại bản ghi khác. Cũng giống như bạn có thể lưu một file mã nguồn C++ với định dạng “.cpp” và mở trong notepad mà thông tin văn bản hiển thị chẳng khác nào một file “.txt”, nhưng sử dụng một trình code editor phù hợp mọi thứ trông sẽ rất khác. Nếu cảm thấy hứng thú với chủ đề này, bạn có thể xem qua địa chỉ wikipedia này, có đến vài chục chuẩn DNS Records được liệt kê!

Sau đây chúng tôi sẽ liệt kê 8 loại bản ghi DNS phổ biến

Loại bản ghi DNS

Mô tả

A

Trỏ tên miền đến địa chỉ IPv4

AAA

Trỏ tên miền đến địa chỉ IPv6

CNAME

Chuyển hướng một tên miền đến một tên miền khác

PTR

Phân giải địa chỉ IPv4/IPv6 thành tên miền

NS

Liệt kê danh sách Authoritative Nameserver phụ trách một tên miền

MX

Liệt kê danh sách tên miền máy chủ email của một miền

SOA

Cung cấp chi tiết quan trọng về một DNS zone, là bản ghi cần có cho mọi DNS zone

TXT

Cung cấp mọi loại mô tả ở định dạng văn bản

DNS Servers và địa chỉ IP

DNS có trách nhiệm phân giải tên miền thành địa chỉ IP. Trên thực tế, đây hoàn toàn không phải việc đơn giản vì:

  • Số lượng địa chỉ đang được sử dụng rất lớn, lên đến hàng tỷ địa chỉ IP
  • DNS phải xử lý hàng tỷ yêu cầu truy cập Internet cùng một lúc
  • Hàng triệu tên miền, địa chỉ IP được thêm vào và thay đổi mỗi ngày

Và DNS đã giải quyết những khó khăn này thông qua hiệu suất mạng và các giao thức Internet. Mỗi máy tính trên mạng đều chỉ có một địa chỉ IP duy nhất và điều do IANA quản lý vì thế nên DNS dễ dàng phân giải ra địa chỉ phù hợp.

Phân biệt Public DNS và Private DNS

DNS public là các DNS Server do các tổ chức hoặc nhà cung cấp dịch vụ Internet (ISP) cung cấp và quản lý nhằm phục vụ người dùng Internet trên thế giới. Và DNS Public cần một Public DNS Record và một địa chỉ IP có thể truy cập được Internet. Ai cũng có thể sử dụng Public DNS và không cần phải yêu cầu xác thực. 

Private DNS là máy DNS thuộc sở hữu của một tổ chức hoặc doanh nghiệp có trách nhiệm phục vụ nhu cầu nội bộ. Các máy tính cục bộ có thể nhận diện Private DNS theo tên. Người dùng từ bên ngoài không thể truy cập được vào các máy tính tính nội bộ này. Private DNS cũng là nơi lưu trữ tên và địa chỉ IP của File Servers, Mail Servers, Database Servers nội bộ,…

Tại sao DNS dễ bị tấn công?

Tấn công thông qua DNS là vấn đề còn lạ lẫm với người dùng thông thường nhưng là nỗi đau đầu lớn của thế giới Internet. Sự phức tạp của các giao thức phân giải tên miền và sự phân tán của các máy chủ dịch vụ tạo ra nhiều lỗ hổng khác nhau để hacker có thể khai thác, trong đó DNS Resolver có vẻ là mắt xích dễ bị tấn công nhất.

Mục đích của các cuộc tấn công DNS rất đa dạng, từ giả mạo website, tấn công DDoS, khuếch đại quy mô các cuộc tấn công đến tấn công nhằm vào chính nhà cung cấp dịch vụ DNS. Phương thức tấn công cũng rất đa dạng từ Zero-day (tấn công lỗ hổng chưa được biết đến trong giao thức DNS), tấn công máy chủ DNS để thay thế bộ nhớ cache điều hướng tên miền,… Nói chung, để nói về các loại tấn công DNS là rất dài và chúng tôi sẽ thực hiện một bài viết riêng trong tương lai.

Có dễ dàng bị rò rỉ DNS không?

Rò rỉ DNS là tình trạng bạn đang cố che dấu việc truy cập các website nhất định khỏi sự theo dõi của ISP, hacker (và cao hơn là sự giám sát của các chính phủ?) bằng các phương thức như mã hóa dữ liệu với VPN, nhưng lại để lộ thông tin website thông qua giao thức DNS. Dĩ nhiên các nhà cung cấp dịch vụ VPN đều có giải pháp đưa thông tin DNS đi cùng tunnel với dữ liệu một cách an toàn, nhưng một sơ suất nhỏ khi cấu hình có thể khiến thông tin DNS đi theo đường riêng đến ISP, và khi đó VPN của bạn coi như mất tác dụng. Ví dụ, nếu phần mềm VPN định hướng lưu lượng truy vấn DNS của bạn đến địa chỉ A nhưng địa chỉ đó không thể truy cập, truy vấn được trả về hệ điều hành và đi đến địa chỉ B được cấu hình mặc định thông qua con đường ISP thông thường, nó sẽ không được mã hóa VPN và các đơn vị trung gian có thể đọc được dễ dàng.

Nhìn chung những lỗi rò rỉ như vậy là khá hiếm thấy, bạn có thể hạn chế bằng cách sử dụng dịch vụ VPN từ các đơn vị tin cậy hoặc kiểm tra thủ công bằng các công cụ trên Internet để xác định thông tin DNS của mình có bị rò rỉ hay không.

Top những DNS phổ biến nhất hiện nay

Xét trên toàn bộ không gian Internet, Cloudflare, Cisco, Google và OpenDNS là các nhà cung cấp dịch vụ DNS Hosting và DNS Public Resolver nổi tiếng nhất. Chúng tôi xin liệt kê địa chỉ IPv4 của các dịch vụ này để bạn tham khảo:

  • Cisco OpenDNS: 208.67.222.222/208.67.220.220;

  • Cloudflare 1.1.1.1/1.0. 0.1;

  • Google Public DNS: 8.8.8.8/8.8.4.4;

  • Quad9: 9.9.9.9/149.112.112.112.

Ở Việt Nam hiện nay, về phía người dùng, phần lớn máy chủ DNS Resolver được vận hành bởi các ISP lớn như Viettel (203.113.131.1/203.113.131.2), VNPT (203.162.4.191/203.162.4.190) và FPT (210.245.24.20/210.245.24.22) do lợi thế đi kèm với các gói dịch vụ Internet. Tuy vậy với các website tại Việt Nam, lựa chọn DNS Nameserver thường là cùng nhà cung cấp với nhà cung cấp tên miền, mang đến nhiều vấn đề như sau:

  • Tốc độ website của nhà cung cấp dịch vụ rất chậm, gây khó khăn cho việc cấu hình

  • Sau khi cấu hình bản ghi, thời gian để các DNS Resolver của Google, CloudFlare, OpenDNS,… nhận bản ghi là rất lâu.

  • Nếu khách hàng đang sử dụng dịch vụ của BizFly Cloud, nhưng lại phải quản lý tên miền ở website của nhà cung cấp tên miền thì rất bất tiện.

  • Không có độ sẵn sàng cao. Khi server chạy website gặp sự cố, không thể tự phát hiện và trỏ tên miền sang 1 server backup.

Hiểu được những vấn đề nói trên, các chuyên gia tại BizFly Cloud đã nghiên cứu và phát triển dịch vụ quản lý tên miền với nhiều ưu điểm vượt trội:

  • Thuận tiện: Khi sử dụng các dịch vụ của BizFly Cloud như Cloud Server, Load Balancer, khách hàng sẽ dễ dàng trỏ bản ghi ngay trên cùng website, không phải chuyển sang website của nhà cung cấp tên miền như trước.

  • Độ sẵn sàng cao: Các server DNS của BizFly Cloud được chạy trên nhiều datacenter khác nhau giúp tăng khả năng dự phòng lên rất nhiều.

  • Trỏ bản ghi dễ dàng: Với giao diện thân thiện và dễ sử dụng đối với người dùng, việc tạo và quản lý bản ghi của khách hàng sẽ rất dễ dàng và nhanh chóng.

  • Cập nhật bản ghi nhanh chóng: Với tính năng DNS của BizFly Cloud, sau khi trỏ bản ghi, kết quả sẽ được cập nhật rất nhanh. Thường sẽ nhỏ hơn 30 giây.

  • Có đầy đủ các bản ghi thông dụng cơ bản như A, MX, TXT, CNAME,…

  • DNS của BizFly Cloud có thể trỏ các bản ghi cho IPv6

  • Các tính năng nâng cao: BizFly Cloud cung cấp thêm các tính năng nâng cao, chuyên biệt cho khách như như health check, high available,…

  • Health Check: Với DNS của BizFly Cloud, khách hàng có thể cấu hình để kiểm tra các backend của mình. Health Check bằng tcp port hoặc qua http.

  • High Available: Với bản ghi đặc biệt AA, khách hàng có thể cấu hình bản ghi A hoặc AAAA theo dạng active-active

  • FailOver: Khách hàng có thể sử dụng bản ghi AP cùng health check để cấu hình active-passive

  • Geo Location: Với các bản ghi GEO, tên miền của khách hàng sẽ được phân giải theo địa điểm của client. Ví dụ: với người dùng ở Hà Nội sẽ được phân giải và truy cập vào máy chủ web đặt tại Hà Nội. Còn nếu ở Hồ Chí Minh sẽ được phân giải và truy cập vào máy chủ web đặt tại Hồ Chí Minh.

Hãy truy cập bizflycloud.vn ngay hôm nay để trải nghiệm dịch vụ quản lý tên miền với chất lượng cao nhất và chi phí hợp lý!

Hi vọng bài viết này của BizFly Cloud đã cho bạn được cái nhìn toàn diện và cung cấp đầy đủ những thông tin hữu ích về DNS và các đặc điểm của hệ thống này. Hãy luôn theo dõi và cùng chúng tôi khám phá những xu hướng mới nhất trong lĩnh vực công nghệ thông tin và điện toán đám mây.


TAGS: DNS
SHARE