DNS là gì?

3/2/2021 9:03 PM | Lập trình

DNS là viết tắt của cụm từ Domain Name System, mang ý nghĩa đầy đủ là hệ thống phân giải tên miền. DNS được phát minh vào năm 1984 cho Internet, chỉ 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.

Khái niệm DNS là gì?

DNS là viết tắt của cụm từ Domain Name System, mang ý nghĩa đầy đủ là hệ thống phân giải tên miền. Hiểu một cách ngắn gọn nhất, DNS cơ bản là một hệ thống chuyển đổi các tên miền website mà chúng ta đang sử dụng, ở dạng www.tenmien.com sang một địa chỉ IP dạng số tương ứng với tên miền đó và ngược lại.

Thao tác này của DNS giúp liên kết các thiết bị mạng với nhau nhằm mục đích định vị và gán một địa chỉ cụ thể cho các thông tin trên internet.

Hệ thống phân giải tên miền –  DNS

Chức năng của DNS là gì?

Về chức năng, DNS có thể được hiểu như một “người phiên dịch” và “truyền đạt thông tin”. DNS sẽ làm công việc dịch tên miền thành một địa chỉ IP gồm 4 nhóm số khác nhau. Ví dụ như www.tenmien.com thành 421.64.874.899 hoặc ngược lại dịch một địa chỉ IP thành tên miền.

Khi “dịch” như thế, trình duyệt sẽ hiểu và đăng nhập vào được. Và khi người dùng đăng nhập vào một website, thay vì phải nhớ và nhập một dãy số địa chỉ IP của hosting, thì chỉ cần nhập tên website là trình duyệt tự động nhận diện.

Mỗi máy tính trên Internet đều có một địa chỉ IP duy nhất. Địa chỉ IP này được dùng để thiết lập kết nối giữa server và máy khách để khởi đầu một kết nối. Bất kỳ khi nào, bạn truy cập vào một website tùy ý hoặc gửi một email, thì DNS đóng vai trò rất quan trọng trong trường hợp này.

Trong vô vàn trang web trên thế giới, sẽ không có ai có thể nhớ hết từng dãy số địa chỉ IP trong mỗi lần đăng nhập. Do đó, khái niệm tên miền được đưa ra, từ đó mỗi trang web sẽ được xác định với tên duy nhất.

Tuy nhiên, địa chỉ IP vẫn được sử dụng như một nền tảng kết nối bởi các thiết bị mạng. Đó là nơi DNS làm việc phân giải tên domain thành địa chỉ IP để các thiết bị mạng giao tiếp với nhau. Đồng thời, bạn cũng có thể tải một website bằng cách nhập trực tiếp địa chỉ IP thay vì nhập tên domain của website đó.

DNS đóng vai trò như một “người phiên dịch”

Các loại bản ghi DNS

  • CNAME Record (Bản ghi CNAME): Cho phép bạn tạo một tên mới, điều chỉnh trỏ tới tên gốc và đặt TTL. Tóm lại, tên miền chính muốn đặt một hoặc nhiều tên khác thì cần có bản ghi này. 
  • A Record: Bản ghi này được sử dụng phổ biến để trỏ tên Website tới một địa chỉ IP cụ thể. Đây là bản ghi DNS đơn giản nhất, cho phép bạn thêm Time to Live (thời gian tự động tái lại bản ghi), một tên mới và Points To ( Trỏ tới IP nào).
  • MX Record: Với bản ghi này, bạn có thể trỏ Domain đến Mail Server, đặt TTL, mức độ ưu tiên (Priority). MX Record chỉ định Server nào quản lý các dịch vụ Email của tên miền đó.
  • AAAA Record: Để trỏ tên miền đến một địa chỉ IPV6 Address, bạn sẽ cần sử dụng AAA Record. Nod cho phép bạn thêm Host mới, TTL,IPv6.
  • TXT Record: Bạn cũng có thể thêm giá trị TXT, Host mới, Points To, TTL. Để chứa các thông tin định dạng văn bản của Domain, bạn sẽ cần đến bản ghi này.
  • SRV Record: Là bản ghi dùng để xác định chính xác dịch vụ nào chạy Port nào. Đay là Record đặc biệt trong DNS. Thông qua nó, bạn có thể thêm Name, Priority, Port, Weight, Points to, TTL.
  • NS Record: Với bản ghi này, bạn có thể chỉ định Name Server cho từng Domain phụ. Bạn có thể tạo tên Name Server, Host mới, TTL.

Các loại DNS Server và vai trò của nó

Các DNS Server bao gồm:

  • Root Name Server
  • Local Name Server

Cụ thể như sau:

Root Name Servers là gì?

Đây là máy chủ tên miền chứa các thông tin, để tìm kiếm các máy chủ tên miền lưu trữ (authority) cho các tên miền thuộc mức cao nhất (top-level-domain).

Local Name Servers là gì?

Server này chứa thông tin, để tìm kiếm máy chủ tên miền lưu trữ cho các tên miền thấp hơn. Nó thường được duy trì bởi các doanh nghiệp, các nhà cung cấp dịch vụ Internet (ISPs).

Hệ thống máy chủ DNS riêng của mỗi đơn vị

Cơ chế hoạt động của DNS là gì?

Giả sử bạn muốn truy cập vào trang có địa chỉ matbao.vn

Trước hết chương trình trên máy người sử dụng gửi yêu cầu tìm kiếm địa chỉ IP ứng với tên miền matbao.vn tới máy chủ quản lý tên miền (name server) cục bộ thuộc mạng của nó.

Máy chủ tên miền cục bộ này kiểm tra trong cơ sở dữ liệu của nó có chứa cơ sở dữ liệu chuyển đổi từ tên miền sang địa chỉ IP của tên miền mà người sử dụng yêu cầu không. Trong trường hợp máy chủ tên miền cục bộ có cơ sở dữ liệu này, nó sẽ gửi trả lại địa chỉ IP của máy có tên miền nói trên.

Trong trường hợp máy chủ tên miền cục bộ không có cơ sở dữ liệu về tên miền này nó sẽ hỏi lên các máy chủ tên miền ở mức cao nhất (máy chủ tên miền làm việc ở mức ROOT). Máy chủ tên miền ở mức ROOT này sẽ chỉ cho máy chủ tên miền cục bộ địa chỉ của máy chủ tên miền quản lý các tên miền có đuôi .vn.

Tiếp đó, máy chủ tên miền cục bộ gửi yêu cầu đến máy chủ quản lý tên miền Việt Nam (.VN) tìm tên miền matbao.vn.

Máy chủ tên miền cục bộ sẽ hỏi máy chủ quản lý tên miền vnn.vn địa chỉ IP của tên miền matbao.vn. Do máy chủ quản lý tên miền vnn.vn có cơ sở dữ liệu về tên miền matbao.vn nên địa chỉ IP của tên miền này sẽ được gửi trả lại cho máy chủ tên miền cục bộ.

Cuối cùng, máy chủ tên miền cục bộ chuyển thông tin tìm được đến máy của người sử dụng. Người sử dụng dùng địa chỉ IP này để kết nối đến server chứa trang web có địa chỉ matbao.vn.

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

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

Mỗi nhà cung cấp dịch vụ vận hành và duy trì DNS server riêng của mình, gồm các máy bên trong phần riêng của mỗi nhà cung cấp dịch vụ đó trong Internet.

Tức là, nếu một trình duyệt tìm kiếm địa chỉ của một website bất kỳ thì DNS server phân giải tên website này phải là DNS server của chính tổ chức quản lý website đó chứ không phải là của một tổ chức (nhà cung cấp dịch vụ) nào khác.

INTERNIC (Internet Network Information Center) chịu trách nhiệm theo dõi các tên miền và các DNS server tương ứng. INTERNIC là một tổ chức được thành lập bởi NFS (National Science Foundation), AT&T và Network Solution, chịu trách nhiệm đăng ký các tên miền của Internet. INTERNIC chỉ có nhiệm vụ quản lý tất cả các DNS server trên Internet chứ không có nhiệm vụ phân giải tên cho từng địa chỉ.

DNS có khả năng tra vấn các DNS server khác để có được một cái tên đã được phân giải. DNS server của mỗi tên miền thường có hai việc khác biệt.

  • Thứ nhất, chịu trách nhiệm phân giải tên từ các máy bên trong miền về các địa chỉ Internet, cả bên trong lẫn bên ngoài miền nó quản lý.
  • Thứ hai, chúng trả lời các DNS server bên ngoài đang cố gắng phân giải những cái tên bên trong miền nó quản lý. DNS server có khả năng ghi nhớ lại những tên vừa phân giải. Để dùng cho những yêu cầu phân giải lần sau. Số lượng những tên phân giải được lưu lại tùy thuộc vào quy mô của từng DNS.

Sử dụng DNS như thế nào?

Vì tốc độ của DNS khác nhau, nên người sử dụng có thể tự chọn DNS server cho riêng mình. Trong trường hợp sử dụng DNS của nhà cung cấp mạng, người sử dụng không cần phải điền địa chỉ DNs vào kết nối mạng của mình.

Còn nếu trong trường hợp sử dụng máy chủ DNS khác, sẽ phải điền địa chỉ cụ thể của máy chủ đó vào. Để thay đổi DNS Server bạn có thể làm như sau:

  • Bước 1: Trước tiên, bạn vào phần Control Panel, nhấn Start Menu lên sau đó gõ Control Panel là thấy.
  • Bước 2: Tại đây bạn truy cập vào View network status and tasks.
  • Bước 3: Sau đó truy cập vào mạng internet bạn đang sử dụng
  • Bước 4: Tiếp theo nhấn vào phần Properties, nơi đây sẽ cho phép chúng ta thay đổi DNS máy tính.
  • Bước 5: Bạn sẽ thấy có một phần tên là Internet Protocol Version 4, hãy nhấn vào đó.
  • Bước 6: Trong Internet Protocol Version 4 lựa chọn Use the following DNS server addresses và tiến hành đổi DNS tại đây.

Cuối cùng nhấn vào OK để xác nhận thiết lập vừa rồi, như vậy là chúng ta đã hoàn tất công đoạn thay đổi DNS.

DNS Servers Và Địa Chỉ IP

Như đã đề cập ở trên, nhiệm vụ chính của một DNS (Domain Name Server) là giải quyết (hay nói cách khác là biên dịch) một tên miền thành một địa chỉ IP. Điều này nghe có vẻ đơn giản nhưng thực tế thì không hề đơn giản một chút nào cả. Lý do là bởi vì:

– Có hàng tỷ các địa chỉ IP đang được sử dụng.
– Máy chủ DNS đang xử lý “hàng tỷ” các yêu cầu trên Internet vào các thời điểm bất kỳ.
– Mỗi ngày có hàng triệu người đang thêm và thay đổi tên miền cũng như địa chỉ IP.

Để giải quyết các vấn đề, máy chủ DNS dựa vào hiệu suất mạng và các giao thức Internet. Đối với địa chỉ của IP, mỗi một máy tính trên mạng Internet đều có một địa chỉ IP duy nhất (bao gồm chuẩn IPV4 và IPV6) do IANA (Internet Assigned Numbers Authority) quản lý.

Lý do DNS dễ bị tấn công là gì?

Theo tôi được biết, hệ thống tên miền rất phức tạp khiến nó dễ bị tấn công bởi một loạt các cuộc tấn công DNS. Kẻ tấn công có thể tận dụng các điểm yếu trong DNS và tấn công với nhiều cách khác nhau. Hầu hết các cuộc tấn công này đều tập trung vào việc lạm dụng DNS để ngăn người dùng internet không thể truy cập vào một số trang web nhất định. Chúng nằm dưới cánh của các cuộc tấn công từ chối dịch vụ (DoS).

DNS dễ bị tấn công bởi Man-In-The-Middle

Điểm yếu của DNS cũng có thể được tận dụng để chuyển hướng khách truy cập trang web đến các trang độc hại, được gọi là chiếm quyền điều khiển DNS. Những kẻ tấn công cũng có thể sử dụng giao thức DNS để đánh cắp dữ liệu nhạy cảm của doanh nghiệp, như trong DNS Tunneling.

Quá trình chuyển đổi Domain thành địa chỉ IP gọi là phân giải DNS. Khi người dùng nhập một tên miền, trình duyệt sẽ liên hệ với một Name Server (máy chủ tên) và lấy địa chỉ IP tương ứng. Có 2 loại Name Server là máy chủ tên có thẩm quyền và máy chủ tên đệ quy. Máy chủ có thẩm quyền lưu trữ thông tin đầy đủ về một vùng. Loại còn lại sẽ lưu trữ kết quả phản hồi của DNS trong một khoảng thời gian, trả lời các truy vấn DNS cho người dùng Internet.

Server đệ quy sẽ lưu phản hồi vào bộ nhớ tạm để tăng tốc độ của các truy vấn tiếp theo. Điều này sẽ giảm số lượng yêu cầu thông tin. Tuy nhiên, một rủi ro khá nguy hiểm là dễ bị tấn công bởi Man-In-The-Middle (người trung gian). Những kẻ tấn công có thể can thiệp Voice Over IP (VoIP), đánh cắp Email, mạo danh các Website, trích xuất dữ liệu thẻ tín dụng, thông tin mật, đánh cắp mật khẩu, thông tin đăng nhập,…

Rò rỉ DNS

Tôi khẳng định với bạn rằng hầu hết hoạt động nào trên Internet cũng có thể gặp rủi ro nhất định về việc bị rò rỉ thông tin. Thông tin DNS cũng không ngoại lệ. Nó có thể bị rò rỉ ra khỏi kết nối VPN và gây ra những hậu quả khó lường về bảo mật và quyền riêng tư trên trực tuyến.

Rò rỉ DNS là gì?

Thông tin DNS bị rò rỉ ra khỏi kết nối VPN có thể gây rủi ro về bảo mật trực tuyến

Máy tính của người dùng cần kết nối với dịch vụ DNS để kết nối Domain đã nhập và địa chỉ IP của máy chủ lưu trữ Website. Có như vậy, trang Web mới có thể được tìm thấy và hiển thị với người dùng. 

Khi người dùng kết nối thông qua VPN, phần DNS trong kết nối đôi khi đi thẳng đến ISP chứ không đi cùng mọi thứ khác qua VPN. Nó sẽ cung cấp mọi thông tin về các Website bạn đang kết nối. 

Lỗi rò rỉ DNS tiết lộ hoạt động duyệt Web của bạn với ISP, vị trí của bạn cho các Website bạn truy cập. VPN của bạn lúc này hầu như không còn tác dụng gì nữa.

Lý do dẫn đến rò rỉ DNS?

Nguyên nhân chủ yếu gây nên lỗi rò rỉ DNS là do kết nối VPN được cấu hình không đúng cách. Sự cố rò rỉ này có thể gặp trên Mac, Windows, Linux, iOS, Android hay bất kỳ hệ điều hành, thiết bị nào kết nối với VPN. Rò rỉ DNS tùy thuộc vào nhà cung cấp VPN và phổ biến hơn với một số cấu hình nhất định. 

Nếu được cấu hình đúng, máy tính sẽ thiết lập kết nối với VPN bằng cách sử dụng ISP và các DNS Server của ISP. Sau đó, kết nối sẽ sử dụng DNS của VPN và máy chủ đó phải được truy cập trên cùng một mạng với máy chủ VPN. Điều này nhằm đảm bảo mã hóa lưu lượng DNS.

Tuy nhiên, mô hình này có thể không được tuân theo do có sự cố nào đó. Lúc này, lưu lượng DNS có thể thoát khỏi VPN Tunnel và bên ngoài có thể dễ dàng nhìn thấy. Các yêu cầu DNS sẽ không được mã hóa theo mặc định. Hầu hết các ISP không hỗ trợ việc mã hóa yêu cầu DNS.

Ví dụ Client của bạn được cấu hình sử dụng một máy chủ DNS cụ thể trên mạng VPN. Nếu máy chủ đó không thể truy cập, hoặc có tình trạng lượng truy cập cao bất thường và hết thời gian chờ, Client sẽ quay trở lại máy chủ DNS mặc định được cấu hình trong hệ điều hành. Lúc này, bạn sẽ bị rò rỉ DNS. Tuy nhiên, bạn cũng không cần quá lo lắng bởi sự cố khó có khả năng phát sinh.

Cách kiểm tra và khắc phục lỗi rò rỉ DNS

Magnet Link giúp xác định Torrent Client đang hiển thị địa chỉ IP nào với mọi người

Bạn sẽ gặp nhiều rủi ro về quyền riêng tư, bảo mật nếu có rò rỉ DNS. Do đó, bạn cần xác định xem mình có gặp sự cố này không và tìm cách khắc phục càng nhanh càng tốt. 

Cách kiểm tra rò rỉ DNS từ trình duyệt:

Hiện nay, có nhiều dịch vụ VPN có công cụ riêng để người dùng kiểm tra lỗi rò rỉ DNS. Một trong những công cụ tốt nhất là DNSleaktest.com. Điểm mạnh của công cụ này là sử dụng rất đơn giản. Nó có thể thực hiện một loạt các bài kiểm tra xem thông tin DNS của bạn có bị lộ hay không. Nó sẽ liệt kê tất cả Server và địa chỉ IP, chủ sở hữu mà nó tìm thấy. Bạn sẽ chỉ thấy được liệt kê. 

Nếu bạn thấy nhiều IP khác nhau, không phải các máy chủ từ VPN Host của mình, tôi cho rằng đó có thể là dấu hiệu rò rỉ kết nối DNS. Một lưu ý mà tôi muốn nhắc bạn là tên có thể không khớp vì các nhà cung cấp VPN thường thuê không gian Server từ các Host khác. Do đó, bạn hãy tập trung vào kiểm tra địa chỉ IP nhé.

Kiểm tra rò rỉ DNS bằng Torrent:

Hoạt động của Torrent khác với lưu lượng truy cập Web thông thường. Bạn sẽ cần một công cụ khác để kiểm tra chính xác kết nối của mình với chúng. Tôi thường sử dụng ipMagnet (http://ipmagnet.services.cbcdn.com/) và khuyến khích bạn cũng sử dụng công cụ này để kiểm tra IP Torrent. Thông qua nó, bạn có thể xác định Torrent Client đang hiển thị địa chỉ IP nào với mọi người bằng cách sử dụng một Magnet Link.

So sánh Public DNS và Private DNS

Người dùng trên Internet chỉ truy cập được máy tính dùng Public DNS chứ không vào được máy có Private DNS

Private DNS được sử dụng bởi các máy tính có tường lửa bảo vệ. Nó cũng được sử cho với các máy tính trong mạng nội bộ. Việc sử dụng Private DNS cho phép các máy tính cục bộ có thể nhận dạng chúng theo tên. Người dùng bên ngoài sẽ không được phép truy cập trực tiếp vào các máy tính này.

Public DNS cho phép máy chủ có thể truy cập được trên Internet công cộng. Bên cạnh đó, địa chỉ IP của máy chủ phải có thể truy cập được trên Internet.

Danh sách DNS phổ biến nhất hiện nay

Hiện nay DNS có rất nhiều loại khác nhau. Dưới đây là tổng hợp 6 dịch vụ DNS phổ biến nhất:

  • DNS Google
  • DNS OpenDSN
  • DNS Cloudflare
  • DNS VNPT
  • DNS Viettel
  • DNS FPT

Hãy cùng tìm hiểu chi tiết về từng loại DNS

DNS Google:

DNS Google là một trong những DNS server được sử dụng nhiều nhất hiện nay vì tốc độ nhanh và ổn định.

8.8.8.8

8.8.4.4

DNS OpenDNS:

208.67.222.222

208.67.220.220​

DNS Cloudflare:

Cloudflare là một dịch vụ DNS trung gian, giúp điều phối lưu lượng truy cập qua lớp bảo vệ CloudFlare.

1.1.1.1

1.0.0.1

DNS VNPT:

203.162.4.191

203.162.4.190

DNS Viettel:

203.113.131.1

203.113.131.2

DNS FPT:

210.245.24.20

210.245.24.22

Nguồn: wiki.matbao.net

Tin tức khác

  • Cách dựng 1 website bằng iis.

    Cách dựng 1 website bằng iis.

    Có rất nhiều bạn làm web nhưng lại không biết cách build 1 site trên iis. Nên hôm nay mình sẽ chia sẻ các bước đơn giản để có thể dễ dàng tạo được 1 trang web bằng iis trên  server windows.

  • Build site PHP trên server windows.

    Build site PHP trên server windows.

    Mình đang quản trị các website asp.net nên việc build một website wordpress lên vps của mình gặp rất nhiều khó khăn. Và mình hỏi còn gặp những ý kiến như không thể build php và asp.net trên cùng một môi trường. Nhưng hôm nay mình đã làm được và chia sẻ lại cho mọi người. Nếu vẫn gặp khó khăn thì inbox cho mình nha. Thông tin nằm ở footer trang web.

  • Upload hình ảnh trong ckeditor asp.net

    Upload hình ảnh trong ckeditor asp.net

    Mình làm dự án và khách hàng yêu cầu thêm chức năng trong ckeditor. Nên cũng đọc, tìm kiếm share lại cho anh em có nhu cầu sử dụng nhé.

  • Microservice là gì? Ưu nhược điểm khi xài Microservice.

    Microservice là gì? Ưu nhược điểm khi xài Microservice.

    Hôm bữa mình có viết 1 bài về tổng quan về abp framwork. Trong framework này cũng có nhắc tới cách sử dụng và demo về microservice. Hôm nay mình sẽ chia sẻ chi tiết hơn về microservice. Mọi người xem nhé