LazyCodet

a

13:34:31 17/4/2025 - 0 views -

DNS

Lần sửa đổi gần nhất: 1/1/2025

Góp ý bài viết: Nếu thông tin sai lệch hoặc không hữu ích, hãy thông báo cho tác giả. Xin cảm ơn.

Zalo: 0961628548

Gmail: [email protected]

Youtube: Học lập trình cùng tôi

Tiến độ bài viết: 100% (Cập nhật theo khóa học YouTube)


Giới thiệu về DNS

DNS (Domain Name System) là hệ thống phân giải tên miền, đóng vai trò như một "danh bạ điện thoại" của internet. Nó giúp chuyển đổi các tên miền dễ nhớ (ví dụ: google.com) thành địa chỉ IP thực tế mà máy tính sử dụng để định vị và kết nối với nhau trên mạng. Dưới đây là kiến thức toàn diện về DNS.


Cấu trúc DNS

Một DNS query thường bao gồm các thành phần sau:

www.example.com → 192.168.1.1
  • Tên miền (Domain Name): Ví dụ: www.example.com.
  • Địa chỉ IP (IP Address): Kết quả cuối cùng của quá trình phân giải DNS, ví dụ: 192.168.1.1.
  • Record Types: Các loại bản ghi DNS (A, AAAA, CNAME, MX, TXT,...).
  • Nameservers: Máy chủ chịu trách nhiệm quản lý và phân giải tên miền.

Phân tích chi tiết cấu trúc DNS

Tên miền (Domain Name)

  • Dấu hiệu nhận biết: Là chuỗi ký tự dễ nhớ thay thế cho địa chỉ IP.
    • Ví dụ: google.com, facebook.com.
  • Cấu trúc phân cấp:
    • TLD (Top-Level Domain): Phần mở rộng cuối cùng của tên miền (.com, .org, .net, .vn,...).
    • Second-Level Domain (SLD): Phần chính giữa tên miền (ví dụ: google trong google.com).
    • Subdomain: Phần phụ trước tên miền chính (ví dụ: www trong www.google.com).

Địa chỉ IP (IP Address)

  • Là địa chỉ số thực tế mà máy tính sử dụng để giao tiếp trên mạng.
  • Có hai loại:
    • IPv4: Gồm 4 nhóm số (ví dụ: 192.168.1.1).
    • IPv6: Gồm 8 nhóm số hexa (ví dụ: 2001:0db8:85a3::8a2e:0370:7334).

Record Types (Các loại bản ghi DNS)

  • A Record: Ánh xạ tên miền sang địa chỉ IPv4.
    • Ví dụ: example.com → 192.168.1.1.
  • AAAA Record: Ánh xạ tên miền sang địa chỉ IPv6.
    • Ví dụ: example.com → 2001:0db8:85a3::8a2e:0370:7334.
  • CNAME Record: Tạo bí danh cho tên miền.
    • Ví dụ: www.example.com → example.com.
  • MX Record: Chỉ định máy chủ email cho tên miền.
    • Ví dụ: example.com → mail.example.com.
  • TXT Record: Lưu trữ thông tin văn bản (thường dùng để xác thực domain).
    • Ví dụ: v=spf1 include:_spf.google.com ~all.

Nameservers (Máy chủ DNS)

  • Là máy chủ chịu trách nhiệm quản lý và phân giải tên miền.
  • Mỗi tên miền cần được liên kết với ít nhất hai nameserver để đảm bảo tính sẵn sàng.
    • Ví dụ: ns1.example.com, ns2.example.com.

Quy trình hoạt động của DNS

  1. User Request: Người dùng nhập tên miền vào trình duyệt (ví dụ: google.com).
  2. DNS Resolver: Trình duyệt gửi yêu cầu đến DNS resolver (thường do ISP cung cấp).
  3. Root Server: Resolver truy vấn root server để tìm TLD server phù hợp.
  4. TLD Server: Root server trả về địa chỉ của TLD server (ví dụ: .com).
  5. Authoritative Nameserver: TLD server trả về địa chỉ của authoritative nameserver quản lý tên miền.
  6. IP Address: Authoritative nameserver trả về địa chỉ IP tương ứng với tên miền.
  7. Browser Connection: Trình duyệt sử dụng địa chỉ IP để kết nối với máy chủ đích.

Chi tiết thành phần

Root Servers

  • Là các máy chủ gốc của hệ thống DNS.
  • Hiện có 13 root servers trên toàn cầu (ký hiệu từ A đến M).

TLD Servers

  • Quản lý các tên miền thuộc một TLD cụ thể (ví dụ: .com, .org).

Authoritative Nameservers

  • Là máy chủ chứa thông tin chính xác về tên miền.
  • Thường do nhà cung cấp dịch vụ hosting hoặc registrar quản lý.

Quy tắc viết và sử dụng DNS

Tên miền không phân biệt chữ hoa/thường

  • Ví dụ: Google.com = google.com.

Không chứa khoảng trắng

  • Nếu cần, khoảng trắng được thay thế bằng dấu gạch ngang (-).

Tên miền không vượt quá 63 ký tự

  • Tổng chiều dài tên miền (bao gồm subdomain, SLD, và TLD) không vượt quá 253 ký tự.

Sử dụng ký tự hợp lệ

  • Chỉ chấp nhận các ký tự chữ cái (a-z), số (0-9), và dấu gạch ngang (-).

Các loại DNS Query

Recursive Query

  • Resolver sẽ thực hiện toàn bộ quá trình truy vấn DNS cho người dùng.

Iterative Query

  • Resolver chỉ trả lời nếu nó có thông tin chính xác, nếu không, nó sẽ hướng dẫn nơi tiếp theo để truy vấn.

Non-Recursive Query

  • Resolver trả lời trực tiếp từ cache hoặc dữ liệu đã có.

Ứng dụng của DNS

Truy cập website

  • Chuyển đổi tên miền thành địa chỉ IP để truy cập trang web.

Email Routing

  • Sử dụng MX records để định tuyến email.

Load Balancing

  • Phân bổ lưu lượng truy cập giữa nhiều máy chủ bằng cách sử dụng DNS.

Content Delivery Network (CDN)

  • Định vị máy chủ gần nhất với người dùng để tối ưu hóa tốc độ tải.

Các vấn đề liên quan đến DNS

DNS Cache Poisoning

  • Kẻ tấn công chèn thông tin sai lệch vào cache DNS, dẫn đến chuyển hướng người dùng đến trang giả mạo.

DNSSEC (DNS Security Extensions)

  • Giải pháp bảo mật DNS bằng cách mã hóa và xác thực dữ liệu DNS.

DDoS Attacks

  • Tấn công làm quá tải DNS server, khiến hệ thống không thể phản hồi.

Tổng kết

DNS là một thành phần quan trọng trong việc duy trì hoạt động của internet. Hiểu rõ cấu trúc, quy trình hoạt động và các nguyên tắc liên quan đến DNS sẽ giúp bạn sử dụng chúng hiệu quả hơn trong phát triển web, tối ưu hóa hiệu suất và bảo mật hệ thống.


Lưu ý:

  • Sử dụng DNSSEC để tăng cường bảo mật.
  • Đảm bảo cấu hình DNS chính xác để tránh lỗi phân giải tên miền.
  • Theo dõi và quản lý DNS thường xuyên để đảm bảo tính ổn định của hệ thống.