DNS và địa chỉ IP: tên miền được "dịch" thành con số thế nào?

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Con người nhớ tên như codebem.com, còn máy tính cần địa chỉ dạng số để biết đi đâu. DNS là hệ thống "danh bạ" của Internet làm nhiệm vụ dịch qua lại giữa hai thứ đó, và hầu như ai làm web cũng sớm phải đụng đến nó.

Địa chỉ IP là gì?

Địa chỉ IP là số định danh của một thiết bị trong mạng, tương tự địa chỉ nhà để bưu tá biết giao thư đến đâu. Có hai phiên bản:

  • IPv4: gồm 4 số từ 0 đến 255 ngăn bởi dấu chấm, ví dụ 192.168.1.10. Tổng khoảng 4,3 tỷ địa chỉ, nay đã gần cạn.
  • IPv6: dài hơn, viết dạng hex như 2001:db8::1, có không gian địa chỉ khổng lồ.

Cần phân biệt IP công cộng (định danh trên Internet) và IP riêng như dải 192.168.x.x hay 10.x.x.x, chỉ dùng trong mạng nội bộ nhà bạn. Router nhà bạn dùng NAT để nhiều thiết bị chia sẻ một IP công cộng.

DNS làm gì?

DNS (Domain Name System) chuyển tên miền thành địa chỉ IP. Không có DNS, bạn sẽ phải nhớ dãy số của từng trang web. Hệ thống này là một cơ sở dữ liệu phân tán toàn cầu, không nằm ở một máy chủ duy nhất, nhờ đó vừa nhanh vừa bền.

Quá trình tra cứu

  1. Trình duyệt và hệ điều hành kiểm tra bộ nhớ đệm xem đã biết địa chỉ chưa.
  2. Nếu chưa, máy hỏi DNS resolver (thường của nhà mạng hoặc do bạn chọn).
  3. Resolver hỏi lần lượt máy chủ gốc, rồi máy chủ quản lý đuôi tên miền (như .com), cuối cùng đến máy chủ định danh của chính tên miền đó.
  4. Câu trả lời được trả về và lưu cache trong một khoảng thời gian gọi là TTL.

Nhờ cache, phần lớn lần truy cập không phải đi hết chuỗi trên nên rất nhanh.

Các loại bản ghi DNS thường gặp

LoạiÝ nghĩa
ATrỏ tên miền tới địa chỉ IPv4
AAAATrỏ tên miền tới địa chỉ IPv6
CNAMEĐặt bí danh trỏ sang tên miền khác
MXChỉ máy chủ nhận email của tên miền
TXTChứa văn bản, hay dùng để xác minh tên miền, cấu hình chống giả mạo email
NSChỉ máy chủ DNS quản lý tên miền

Thử tra DNS

# dùng được trên Windows, macOS, Linux
nslookup example.com

# Python
import socket
print(socket.gethostbyname("example.com"))

Kết quả là địa chỉ IP gắn với tên miền. Khi bạn mua tên miền và hosting, việc "trỏ tên miền" chính là tạo bản ghi A hoặc CNAME ở nhà cung cấp DNS.

Vì sao thay đổi DNS không có hiệu lực ngay?

Đó là do cache và TTL. Khi bạn đổi bản ghi, các resolver trên thế giới có thể còn giữ bản cũ cho đến khi hết TTL. Mẹo của người triển khai là hạ TTL xuống thấp vài giờ trước khi chuyển máy chủ, để việc chuyển nhanh hơn. Hiện tượng này thường được gọi là "chờ DNS cập nhật".

Một số lỗi thường gặp

  • Trỏ nhầm bản ghi A hoặc quên bản ghi cho bản có www.
  • Dùng CNAME cho tên miền gốc, thường không được phép tại nhiều nhà cung cấp.
  • Quên bản ghi MX nên không nhận được email.
  • Máy bị DNS cache cũ; có thể xóa cache bằng ipconfig /flushdns trên Windows.

Thực hành: chẩn đoán một sự cố tên miền

Giả sử website của bạn vừa chuyển sang máy chủ mới nhưng một số người vẫn thấy bản cũ. Quy trình kiểm tra hợp lý:

  1. Dùng nslookup ten-mien.com để xem IP hiện tại mà máy bạn nhận được.
  2. So sánh với IP của máy chủ mới trong trang quản trị hosting.
  3. Kiểm tra giá trị TTL của bản ghi tại nhà cung cấp DNS: nếu là 3600 giây thì bản cũ có thể còn được lưu tối đa một giờ.
  4. Thử tra bằng một DNS công cộng khác để xem kết quả có khác không: nslookup ten-mien.com 8.8.8.8.
  5. Xóa cache DNS trên máy rồi thử lại.
import socket

for host in ["example.com", "localhost"]:
    try:
        print(host, "->", socket.gethostbyname(host))
    except socket.gaierror:
        print(host, "-> không phân giải được")

Hãy tập thói quen kiểm tra theo thứ tự này mỗi khi gặp lỗi "không truy cập được website": trước hết xem DNS phân giải được không, rồi mới nghi ngờ đến máy chủ hay ứng dụng.

Kết luận

IP là địa chỉ số, DNS là danh bạ giúp con người dùng tên dễ nhớ. Nắm được bản ghi A, CNAME, MX và khái niệm TTL, bạn đã tự tin cấu hình tên miền cho dự án đầu tiên. Hãy thử dùng nslookup để xem các trang web quen thuộc trỏ đến đâu.

Khi đã sẵn sàng đi sâu hơn, bạn có thể tham khảo lộ trình học trong các khóa học tại codebem.com.

author_photo
Nguyễn Đình Cường

0 comment