🌐 DNS - Tổng quan về giao thức phân giải tên miền
Post
Cancel

🌐 DNS - Tổng quan về giao thức phân giải tên miền

DNS là gì?

DNS (Domain Name Server) là một giao thức tiêu chuẩn cho phép bạn nhập địa chỉ của một trang Web và tự động trả lại địa chỉ giao thức Internet (IP) cho trang Web đó.

Để hai máy tính giao tiếp trên mạng IP, giao thức yêu cầu chúng cần một địa chỉ IP (Internet Protocol).

Hãy xem địa chỉ IP giống như địa chỉ nhà của bạn. Để một máy tính định vị một máy tính khác, chúng cần biết “số nhà” của máy tính kia. Hầu hết chúng ta đều nhớ những cái tên thân thiện như thuanvu.me hơn là dãy số 103.126.54.111. Thế nhưng máy lại chỉ nhận diện những dãy số IP. Vì thế, chúng ta cần một chương trình để máy tính dịch tên thành địa chỉ IP.

Dịch vụ chuyển đổi tên miền thành địa chỉ IP và ngược lại được gọi là “DNS” hoặc hệ thống tên miền (Domain Name Server).

Các máy tính chạy DNS được gọi là máy chủ DNS (DNS servers). Nếu không có DNS, chúng ta sẽ phải nhớ địa chỉ IP với dãy số dài khó nhớ của bất kỳ máy chủ nào muốn kết nối.

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

DNS là một phần không thể thiếu trên Internet. Bạn có thể xem DNS giống như một danh bạ điện thoại, nhưng thay vì thể hiện tên mọi người với địa chỉ nhà, danh bạ điện thoại này là nơi lưu trữ tên máy tính với địa chỉ IP.

Cụ thể thì cách hoạt động của DNS là gì?

Internet có rất nhiều máy tính và các tên miền có thể rất lớn, do đó DNS được sắp xếp thành các tên miền nhỏ hơn. Và chúng được sắp xếp lại thành các vùng (Zone) nhỏ hơn để dễ quản lý.

Có rất nhiều máy chủ DNS lưu trữ tất cả các bản ghi DNS cho Internet. Bất kỳ máy tính nào muốn biết số hoặc tên đều có thể hỏi máy chủ DNS của họ. Máy chủ DNS của bạn cũng biết cách hỏi, hoặc truy vấn các máy chủ DNS khác khi chúng cần bản ghi.

Máy chủ định danh có thẩm quyền (Authoritative DNS Server) là nơi quản trị viên quản lý các bản ghi (tên máy chủ và địa chỉ IP cho miền của họ). Bất cứ khi nào quản trị viên DNS muốn thêm, thay đổi hoặc xóa tên máy chủ hoặc địa chỉ IP, họ sẽ thực hiện thay đổi trên máy chủ DNS có thẩm quyền của mình (đôi khi được gọi là Master DNS Server). Ngoài ra, còn có các Slave DNS Server. Các máy chủ DNS này giữ bản sao của các bản ghi DNS cho các vùng và tên miền của chúng.

Phân loại DNS Server

Root Name Server là một trong 4 loại máy chủ DNS.
Root Name Server là một trong 4 loại máy chủ DNS.

DNS Server sẽ được phân loại theo vai trò trong cây DNS, gồm 4 loại như dưới đây:

  • DNS Recursor: Đây là máy chủ phản hồi truy vấn DNS và yêu cầu máy chủ DNS khác cung cấp địa chỉ hoặc đã có địa chỉ IP cho trang Web được lưu.
  • Root Name Server: Là máy chủ định danh cho vùng gốc (Root Zone). Nó phản hồi các yêu cầu trực tiếp và có thể trả về danh sách các Authoritative Name Server cho tên miền cấp cao nhất tương ứng.
  • TLD Name Server: Đây là một trong những máy chủ DNS cấp cao trên Internet. Ví dụ, khi bạn tìm kiếm www.google.com, máy chủ TLD cho ‘.com’ sẽ phản hồi đầu tiên, sau đó DNS sẽ tìm kiếm ‘Google’.
  • Authoritative Name Server: Là điểm dừng cuối cùng cho truy vấn DNS và có bản ghi DNS cho các truy vấn, yêu cầu.

Phân loại DNS Server theo xử lý truy vấn

Có hai loại DNS Server khác nhau trên Internet. Mỗi dịch vụ xử lý các truy vấn DNS khác nhau tùy thuộc vào chức năng của chúng.

  • Recursive DNS Resolver: Đây là máy chủ DNS phản hồi truy vấn DNS và tìm kiếm máy chủ định danh có thẩm quyền (Authoritative DNS Server) hoặc kết quả truy vấn DNS được lưu trong bộ nhớ Cache của nó.
  • Authoritative DNS Server: Là loại máy chủ DNS lưu trữ yêu cầu DNS. Vì vậy, nếu bạn yêu cầu một Authoritative DNS Server cho một trong các địa chỉ IP của nó, nó không cần phải hỏi bất kỳ ai khác. 

So sánh giữa Public DNS và Private DNS

  • Public DNS: Để một máy chủ có thể truy cập được trên Internet công cộng, nó cần có bản ghi DNS công cộng và địa chỉ IP của nó cần có thể truy cập được trên Internet.
  • Private DNS: Các máy tính có tường lửa hoặc trên mạng nội bộ sử dụng Private DNS Record để 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 trên Internet sẽ không có quyền truy cập trực tiếp vào các máy tính đó.

7 bước trong quá trình tra cứu DNS là gì?

  • Bước 1: Khi bạn truy cập một máy tính trên Internet, một yêu cầu DNS sẽ được bắt đầu. Ví dụ bạn nhập www.Google.com vào thanh địa chỉ trình duyệt của mình.
  • Bước 2: Điểm dừng đầu tiên cho yêu cầu DNS là bộ nhớ đệm DNS cục bộ (Local DNS Cache). Khi bạn truy cập các máy tính khác nhau, các địa chỉ IP đó được lưu trữ trong kho lưu trữ cục bộ. Nếu bạn đã truy cập www.Google.com trước đây, trong bộ nhớ cache của bạn sẽ có địa chỉ IP này.
  • Bước 3: Nếu bạn không có địa chỉ IP trong Local DNS Cache, DNS sẽ kiểm tra bằng Recursive DNS Server. 
  • Bước 4: Recursive DNS Server có bộ nhớ Cache riêng và nếu có địa chỉ IP, nó sẽ trả lại cho bạn. Nếu không, nó sẽ hỏi một máy chủ DNS khác.
  • Bước 5: Điểm dừng tiếp theo là TLD Name Servers. Các máy chủ này có thể không có địa chỉ IP mà bạn cần, nhưng nó có thể gửi yêu cầu DNS theo đúng hướng.
  • Bước 6: TLD Name Servers có vị trí của Authoritative Name Server cho trang Web được yêu cầu. 
  • Bước 7: Dịch vụ DNS cục bộ của bạn lấy địa chỉ IP và kết nối với URL bạn tìm kiếm để tải xuống tất cả nội dung hấp dẫn. Sau đó, DNS ghi lại địa chỉ IP trong Local Cache với Time-To-Live (TTL). TTL là khoảng thời gian bản ghi DNS cục bộ hợp lệ, sau thời gian đó, DNS sẽ thực hiện lại quy trình khi bạn yêu cầu URL đã tìm kiếm vào lần tiếp theo.

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, thì 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ể lưu trữ các bản ghi trong bộ nhớ cache vô thời hạn.

Các loại truy vấn DNS gồm những gì?

Truy vấn DNS là mã máy tính cho máy chủ DNS biết nó là loại truy vấn nào và nó muốn lấy thông tin gì. Có ba truy vấn DNS cơ bản trong tra cứu DNS tiêu chuẩn.

  • Truy vấn Recursive: Máy tính yêu cầu địa chỉ IP hoặc xác nhận rằng máy chủ DNS không biết địa chỉ IP đó.
  • Truy vấn Iterative: Nếu DNS Server không có địa chỉ IP, nó sẽ trả về Authoritative Name Server hoặc TLD Name Server. Người yêu cầu sẽ tiếp tục quá trình lặp đi lặp lại này cho đến khi tìm thấy câu trả lời hoặc hết thời gian.
  • Truy vấn Non-Recursive: DNS Resolver sẽ sử dụng truy vấn này để tìm địa chỉ IP mà nó không có trong bộ nhớ Cache. Chúng được giới hạn trong một yêu cầu duy nhất để giới hạn việc sử dụng băng thông mạng.

Các loại DNS record phổ biến nhất

1. A record

A record (viết tắt của Address record) là DNS record cơ bản và quan trọng nhất dùng để truy cập web. Nó giúp trỏ tên miền (domain) của website tới một địa chỉ IP cụ thể. A record có cú pháp như sau:

[Tên miền] IN A [địa chỉ IP của máy]

Ví dụ: google.com IN A 172.217.5.78

Hầu hết các website chỉ có một bản ghi A, nhưng một số trang web sẽ có một vài bản ghi A không giống nhau. Điều này có nghĩa là một tên miền có thể được trỏ đến nhiều địa chỉ IP khác nhau… A record được dùng để chuyển tên miền sang địa chỉ IPv4, còn với IPv6 thì AAAA record sẽ được sử dụng. Cấu trúc của bản ghi AAAA cũng tương tự như bản ghi A.

2. CNAME record

CNAME (Canonical Name) record là một bản ghi DNS record quy định một tên miền là bí danh của một tên miền chính khác. Một tên miền chính có thể có nhiều bí danh CNAME. Cú pháp của DNS record này như sau:

[Tên bí danh] IN CNAME [tên miền chính]

Trong đó, tên miền chính là tên miền được khai báo trong A record đến IP của máy. Tên bí danh là tên miền khác mà bạn cho phép có thể trỏ đến máy tính (địa chỉ IP) này. Ví dụ www.bizflycloud.com IN CNAME bizflycloud.com, tức là khi người dùng gõ www.bizflycloud.com thì hệ thống cũng sẽ đưa về địa chỉ IP của tên miền chính bizflycloud.com.

3. MX record

Giải nghĩa về DNS record, 6 loại DNS record phổ biến nhất - Ảnh 1.

MX (Mail Exchange) record là một DNS record giúp xác định mail server mà email sẽ được gửi tới. Một tên miền có thể có nhiều MX record, điều này giúp tránh việc không nhận được email nếu một mail server ngưng hoạt động.

MX record có cấu trúc khá đơn giản, ví dụ như:

bizflycloud.vn IN MX 10 mx20.bizflycloud.vn

bizflycloud.vn IN MX 30 mx30.bizflycloud.vn

Trong đó, các số 10, 30 là các giá trị ưu tiên. Chúng có thể là các số nguyên bất kì từ 1 đến 255, số càng nhỏ thì độ ưu tiên càng cao. Như trong ví dụ trên, các mail có cấu trúc địa chỉ là …@bizflycloud.vn sẽ được gửi đến mail server mx20.bizflycloud.vn trước. Nếu nó có vấn đề thì các mail mới được chuyển đến mail server mx30.bizflycloud.vn.

4. TXT record

TXT record là một loại DNS record giúp tổ chức các thông tin dạng text (văn bản) của tên miền. Một domain (tên miền) có thể có nhiều bản ghi TXT và chúng chủ yếu được dùng cho các Sender Policy Framework (SPF) codes, giúp email server xác định các thư được gửi đến có phải từ một nguồn đáng tin hay không. Ngoài ra, loại bản ghi DNS này còn dùng để xác thực máy chủ của một tên miền, xác minh SSL...

5. NS record

NS (Name Server) record là một loại DNS record giúp xác định thông tin của một tên miền cụ thể được khai báo và quản lý trên máy chủ nào. Cú pháp của bản ghi này như sau:

[Tên miền] IN NS [tên máy chủ tên miền]

Ví dụ:

bizflycloud.com IN NS ns1.bizflycloud.vn

bizflycloud.com IN NS ns2.bizflycloud.vn

Cloud Server - Giải pháp đám mây giúp vận hành website ổn định, nhanh chóng

Trong ví dụ trên, tên miền bizflycloud.com sẽ được quản lý bởi hai máy chủ tên miền là ns1.bizflycloud.vn và ns2.bizflycloud.vn. Điều này cũng có nghĩa là các DNS record (A record, MX record…) của tên miền bizflycloud.com sẽ được khai báo trên hai máy chủ này.

6. PTR record

PTR (Pointer) record có thể nói là một DNS record ngược lại với A record, cho phép chuyển đổi từ địa chỉ IP sang tên miền. Bản ghi PTR giúp xác thực IP của các hostname gửi tới, giúp hạn chế bị spam mail…

Ngoài 6 loại trên vẫn còn các loại bản ghi DNS khác ít phổ biến như SOA record, SRV record, APL record, CAA record, NAPTR record…

Danh sách DNS Server Vietnam 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 Server 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 Server OpenDNS :208.67.222.222

208.67.220.220​
DNS Server 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 Server VNPT :203.162.4.191

203.162.4.190
DNS Server Viettel :203.113.131.1

203.113.131.2
DNS Server FPT :210.245.24.20

210.245.24.22

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. Tuy nhiên, 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ọ.

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ử).

Nguyên nhân DNS dễ bị tấn công?

Vì hệ thống tên miền khá phức tạp và người tấn công có thể tận dụng điểm yếu trong DNS để tấn công với nhiều phương thức khác nhau. Đa số các cuộc tấn công đều tập trung vào việc lạm dụng DNS để ngăn người dùng không thể truy cập vào Internet.

Bên cạnh đó, DNS cũng có thể bị tấn công bằng phướng pháp tận dụng giao thức DNS để chuyển hướng người dùng truy cập vào các trang web độc hại nhằm đánh cắp dữ liệu nhạy cảm của cá nhân, doanh nghiệp.

Ngoài ra, việc sử dụng 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. Nhằm giảm số lượng request thông tin, nhưng khá nguy hiểm và dễ bị tấn công bởi Man-In-The-Middle. Những kẻ tấn công có thể truy cập vào Over IP (VoIP) để đánh cắp thông tin, mạo danh, trích xuất dữ liệu, thông tin,…

Điểm yếu của DNS là gì?

Có ba lỗ hổng bảo mật chính cần đề phòng đối với DNS:

  • Máy chủ DNS nội bộ (Internal DNS Servers) giữ tất cả tên máy chủ và địa chỉ IP cho tên miền của chúng. Nó sẽ chia sẻ chúng với bất kỳ ai yêu cầu. Điều này làm cho DNS trở thành một nguồn thông tin tuyệt vời cho những kẻ tấn công.
  • DNS Caches có thể bị thao túng. Nếu máy chủ DNS của bạn bị “nhiễm độc” với các bản ghi xấu, máy tính có thể bị lừa để đi đến những nơi không an toàn.
  • DNS chuyển tiếp thông tin truy vấn từ các máy trạm bên trong sang các máy chủ bên ngoài. Những kẻ tấn công có thể sử dụng hành vi này để tạo các kênh bí mật nhằm lấy dữ liệu.

Cách sử dụng DNS để Redirect Traffic

Hacker có thể giả mạo phản hồi DNS để chúng như đến từ các DNS Server hợp pháp.
Hacker có thể giả mạo phản hồi DNS để chúng như đến từ các DNS Server hợp pháp.

Khi người dùng cố gắng vào một trang Web, máy tính của họ sẽ truy vấn máy chủ DNS của nó để biết địa chỉ IP của trang Web hoặc DNS Record. Nếu DNS Server có bản sao lưu trong bộ nhớ Cache của bản ghi, nó sẽ trả lời. Nếu không, nó sẽ truy vấn ngược dòng một máy chủ DNS và chuyển kết quả trở lại người dùng cuối và lưu chúng vào bộ nhớ Cache cho lần sau.

Tin tặc có thể giả mạo phản hồi DNS hoặc làm cho phản hồi giống như chúng đến từ các máy chủ DNS hợp pháp. Những kẻ tấn công tận dụng ba điểm yếu trong DNS để làm điều này:

  • DNS thực hiện xác thực rất yếu đối với các phản hồi đến từ các máy chủ ngược dòng (Upstream Servers). Các phản hồi chỉ cần chứa đúng ID giao dịch, chỉ là một số 16 bit (0-65536).
  • Máy chủ DNS chấp nhận phản hồi đồng thời (hoặc gần như đồng thời) đối với yêu cầu của chúng. Điều này cho phép kẻ tấn công đưa ra nhiều phỏng đoán về ID giao dịch.
  • Các kết nối IP được sử dụng bởi DNS rất dễ bị giả mạo. Điều đó có nghĩa là Hacker có thể gửi lưu lượng truy cập đến máy chủ DNS từ một máy tính và làm cho nó giống như đến từ một máy tính khác như một DNS Server hợp lệ. DNS là một trong những loại kết nối IP dễ bị giả mạo.

Sử dụng DNS như là một công cụ chuyển đổi

Kẻ xấu sử dụng kỹ thuật DNS Tunneling để xâm nhập Server và đánh cắp dữ liệu.
Kẻ xấu sử dụng kỹ thuật DNS Tunneling để xâm nhập Server và đánh cắp dữ liệu.

Giả sử kẻ tấn công đã tìm cách xâm nhập vào mạng, xâm nhập một hoặc hai máy chủ và tìm thấy dữ liệu quan trọng mà chúng muốn lấy. Cách mà chúng có thể làm điều đó mà không cần tắt bất kỳ cảnh báo nào để bảo vệ DNS là gì? Những kẻ tấn công sử dụng một kỹ thuật gọi là DNS Tunneling để làm điều đó. Họ thiết lập một miền DNS (ví dụ: Evil-Domain.com) trên Internet và tạo một Authoritative Name Server. Trên máy chủ bị xâm nhập, kẻ tấn công có thể sử dụng một chương trình chia nhỏ dữ liệu thành các phần nhỏ và chèn nó vào một loạt các tra cứu.

DNS Server bị tấn công sẽ nhận các yêu cầu này. Khi nhận ra kết quả không có trong bộ nhớ Cache, nó sẽ chuyển tiếp các yêu cầu đó trở lại Authoritative Name Server của Evil-Domain.com. Kẻ tấn công đang mong đợi lưu lượng truy cập này. 

DNS đã có từ rất lâu và mọi máy tính kết nối Internet đều dựa vào nó. Những kẻ tấn công hiện có thể sử dụng DNS để chiếm đoạt lưu lượng truy cập và tạo các kênh liên lạc bí mật. May mắn thay, bằng cách giám sát các DNS Server và áp dụng phân tích bảo mật, nhiều cuộc tấn công có thể được phát hiện và ngăn chặn.

Xem thêm

Một vài điểm yếu của DNS và cách phòng thủ

Một bản ghi DNS trông như thế nào

Credit: Vietnix, navee-vn

This post is licensed under CC BY 4.0 by the author.