Loading...

Bài 38: DNS Cơ Bản Dưới Góc Nhìn Network Engineer

💡 Liên hệ thực tế

Bạn muốn gọi điện cho anh Nam, nhưng không nhớ nổi dãy 10 số điện thoại của anh ấy — chỉ nhớ tên. Bạn mở danh bạ điện thoại, gõ "Nam", danh bạ tự động tra ra đúng số cần gọi. Bạn hoàn toàn không cần nhớ con số khô khan đó, chỉ cần nhớ cái tên dễ nhớ hơn nhiều.

📖 DNS (Domain Name System) đóng đúng vai trò "danh bạ điện thoại" đó cho Internet — bạn gõ vnexperts.vn (tên dễ nhớ), DNS sẽ tự động "tra cứu" ra địa chỉ IP thật (dãy số khó nhớ) của server chứa website đó, để trình duyệt biết đường kết nối tới.


📘 Kiến thức cốt lõi

DNS (Domain Name System) là hệ thống phân giải qua lại giữa tên miền (dễ nhớ với con người) và địa chỉ IP (thứ máy tính thực sự dùng để định tuyến, đã học từ Bài 7).

⚙️ Quy trình phân giải tên miền (DNS Resolution) — các bước cơ bản:

  1. Máy bạn gõ vnexperts.vn vào trình duyệt.
  2. Máy kiểm tra bộ nhớ đệm (cache) cục bộ trước — nếu đã tra cứu gần đây, dùng luôn kết quả cũ, không cần hỏi lại.
  3. Nếu chưa có trong cache, máy gửi truy vấn tới DNS Resolver (thường là DNS server do ISP cung cấp, hoặc DNS công cộng như Google DNS 8.8.8.8).
  4. DNS Resolver tra cứu (có thể phải hỏi qua nhiều máy chủ DNS trung gian khác) và trả về địa chỉ IP tương ứng.
  5. Máy bạn dùng địa chỉ IP đó để thực sự kết nối tới server chứa website.

💡 Toàn bộ quy trình này thường chỉ mất vài mili-giây, và với những tên miền đã được cache trước đó (bởi máy bạn hoặc bởi DNS Resolver của ISP), tốc độ còn nhanh hơn nữa vì bỏ qua được các bước tra cứu trung gian.

📋 Các loại bản ghi DNS (DNS Record) phổ biến nhất mà network engineer cần biết:

Loại bản ghiChức năngVí dụ (tên miền)Ví dụ (giá trị trỏ tới)
A Ánh xạ tên miền sang địa chỉ IPv4 vnexperts.vn 203.0.113.10
AAAA Ánh xạ tên miền sang địa chỉ IPv6 vnexperts.vn 2001:db8::1
CNAME Bí danh (alias) — trỏ 1 tên miền sang 1 tên miền khác www.vnexperts.vn vnexperts.vn
NS Chỉ định máy chủ DNS có thẩm quyền (authoritative) cho tên miền đó vnexperts.vn ns1.dns-provider.com
MX Chỉ định máy chủ xử lý email cho tên miền đó vnexperts.vn mail.vnexperts.vn (priority 10)
PTR Tra cứu ngược — từ địa chỉ IP suy ra tên miền (Reverse DNS) 203.0.113.10 vnexperts.vn

🎯 Ví dụ dễ hình dung về CNAME: www.vnexperts.vn có thể được cấu hình dưới dạng CNAME trỏ sang vnexperts.vn — nghĩa là "www" chỉ là 1 bí danh, thực chất vẫn cùng trỏ tới 1 địa chỉ IP như tên miền gốc.

Lưu ý: "www" không phải là phần bắt buộc của tên miền — nó chỉ là 1 subdomain (hostname) theo quy ước lịch sử từ thời Internet sơ khai, giống hệt mail.vnexperts.vn hay blog.vnexperts.vn. Với DNS thì vnexperts.vn và www.vnexperts.vn là 2 tên hoàn toàn độc lập — nếu chỉ cấu hình bản ghi cho vnexperts.vn mà quên www.vnexperts.vn, người dùng gõ www.vnexperts.vn sẽ không truy cập được. Đây là lỗi rất hay gặp khi setup website mới.

CNAME cũng không bắt buộc phải trỏ trong cùng 1 domain — nó có thể trỏ sang bất kỳ domain nào khác, kể cả khác TLD (Top-Level Domain — tên miền cấp cao nhất, ví dụ .vn.com). Ví dụ vnexperts.com có thể cấu hình CNAME trỏ sang vnexperts.vn. Đây là cách dùng rất phổ biến trong thực tế:

  • CDN: cdn.example.com → CNAME sang xxxx.cloudfront.net
  • GitHub Pages: blog.example.com → CNAME sang username.github.io
  • Gộp domain phụ về domain chính: vnexperts.com → CNAME sang vnexperts.vn

⚠️ Lưu ý về domain gốc (zone apex): Ví dụ vnexperts.vn là tên miền gốc (root domain / zone apex) của zone. Theo chuẩn DNS, apex không thể dùng CNAME, vì tại đây đã phải tồn tại các bản ghi quan trọng như SOA và NS. Mà một tên đã là CNAME thì không được đồng thời có các loại bản ghi khác.

Vì vậy, nếu muốn trỏ vnexperts.vn đến một máy chủ, bạn thường dùng A record để trỏ trực tiếp đến địa chỉ IPv4. Nếu DNS provider hỗ trợ ALIAS/ANAME, bạn cũng có thể dùng chúng để đạt hiệu ứng tương tự CNAME nhưng vẫn phù hợp với domain gốc.

📘 SOA (Start of Authority) có thể hiểu đơn giản là "thông tin quản lý của một DNS zone". Nó cho biết zone này được quản lý bởi máy chủ DNS nào và các thông tin cần thiết cho việc đồng bộ dữ liệu DNS. Mỗi zone có một bản ghi SOA tại apex.

Ví dụ SOA của vnexperts.vn:

vnexperts.vn.    IN  SOA  ns1.dns-provider.com. admin.vnexperts.vn. (
                          2026080901  ; Serial
                          3600        ; Refresh
                          600         ; Retry
                          604800      ; Expire
                          86400       ; Negative caching TTL
)

Đọc như sau: "Zone vnexperts.vn được quản lý chính bởi ns1.dns-provider.com, người quản trị liên hệ qua admin@vnexperts.vn, phiên bản zone hiện tại là 2026080901."

Bạn thường không cần tự tạo SOA. Khi tạo domain/zone, DNS provider như Cloudflare hoặc DirectAdmin sẽ tự tạo bản ghi này.

⚙️ Cấu hình DNS trên Router/Switch Cisco:

Thiết bị mạng Cisco cũng có thể tra cứu DNS để gõ tên thay vì phải nhớ địa chỉ IP khi dùng các lệnh như pingtelnet, hay copy running-config tftp. Tuy nhiên khác với PC (tự động tra DNS ngay khi cắm mạng), router/switch mặc định không tự tra cứu được tên miền — cần cấu hình đủ các lệnh sau:

Router(config)# ip domain-name vnexperts.local
Router(config)# ip domain-lookup
Router(config)# ip name-server 8.8.8.8 8.8.4.4

Giải thích từng dòng:

  • ip domain-name vnexperts.local — khai báo domain suffix mặc định cho router. Tác dụng: nếu bạn gõ tắt tên (thiếu phần domain), IOS sẽ tự thêm domain-name vào phía sau trước khi tra DNS. Ví dụ gõ ping fileserver thì IOS hiểu ngầm là ping fileserver.vnexperts.local.
  • ip domain-lookup — bật chức năng tra cứu DNS. Đây là lệnh chính khiến router thực sự "hỏi DNS server" mỗi khi bạn gõ 1 cái tên (thay vì IP) trong lệnh. Lệnh này mặc định đã bật sẵn trên IOS, nhưng trong lab thường bị tắt đi (no ip domain-lookup) để tránh tình trạng gõ nhầm lệnh khiến router chờ tra DNS timeout rất lâu (ví dụ gõ nhầm eanble thay vì enable, router sẽ cố tra DNS cho "eanble" trước khi báo lỗi).
  • ip name-server 8.8.8.8 — khai báo địa chỉ IP của DNS server mà router sẽ gửi truy vấn tới.  Có thể khai báo nhiều máy chủ DNS (như ví dụ trên dùng cả 8.8.8.8 và 8.8.4.4 của Google) để dự phòng — nếu máy chủ đầu tiên không phản hồi, Router tự động thử máy chủ tiếp theo.

💡 Lưu ý quan trọng: ip domain-name còn có vai trò khác ngoài DNS — đây là điều kiện bắt buộc trước khi sinh SSH key. Khi chạy crypto key generate rsa, IOS dùng hostname + domain-name để tạo ra 1 định danh (ví dụ R1.vnexperts.local) gắn vào RSA key. Thiếu ip domain-name, router sẽ báo lỗi và không tạo được key — nghĩa là không thể bật SSH.

Ví dụ minh họa đầy đủ:

Router(config)# hostname R1
R1(config)# ip domain-name vnexperts.local
R1(config)# ip domain-lookup
R1(config)# ip name-server 8.8.8.8 8.8.4.4
R1(config)# crypto key generate rsa

Sau khi cấu hình xong, gõ thử:

R1# ping fileserver
Translating "fileserver.vnexperts.local"...domain server (8.8.8.8) [OK]

Router sẽ hiển thị dòng "Translating..." — bằng chứng cho thấy DNS lookup đang hoạt động.

🔍 Kiểm tra khả năng phân giải tên trên Cisco IOS:

Router# ping vnexperts.vn

Nếu DNS đã cấu hình đúng, Router sẽ tự động phân giải vnexperts.vn ra địa chỉ IP trước khi thực hiện ping — không cần gõ trực tiếp địa chỉ IP.

Quy trình phân giải tên miền vnexperts.vn qua DNS Sơ đồ minh họa quy trình truy vấn DNS từ Máy người dùng tới DNS Resolver và kết nối trực tiếp HTTP/HTTPS tới Web Server qua IP Quy Trình Phân Giải Tên Miền (DNS Resolution) & Kết Nối Web Client (Máy người dùng) Gõ: vnexperts.vn IP: 192.168.1.50 DNS Resolver Server DNS: 8.8.8.8 / 1.1.1.1 (UDP Port 53) Target Web Server HTTP/HTTPS Host IP: 203.0.113.10 1. Query: vnexperts.vn? 2. IP: 203.0.113.10 3. Truy cập HTTP/HTTPS tới IP 203.0.113.10 (TCP 80/443) 💡 Lưu ý Kỹ thuật DNS Căn bản (Cisco CCNA): • Kết quả DNS sẽ được lưu vào DNS Cache của OS (PC) và Router để tối ưu thời gian tra cứu cho các lần sau.


💬 Hỏi & Đáp nhanh

❓ Nếu DNS Resolver gặp sự cố, người dùng có bị mất kết nối Internet hoàn toàn không?

❌ Không hoàn toàn — kết nối Internet vật lý (qua IP) vẫn hoạt động bình thường, chỉ là người dùng không thể gõ tên miền để truy cập nữa (vì không tra được IP tương ứng). Nếu biết chính xác địa chỉ IP của server, người dùng vẫn gõ thẳng IP để truy cập được — đây cũng là cách kỹ thuật viên thường dùng để kiểm tra xem sự cố là do DNS hay do kết nối mạng thực sự.

❓ Vì sao network engineer cần quan tâm đến DNS, đây không phải là việc của lập trình viên web sao?

✅ Network engineer cần quan tâm vì DNS ảnh hưởng trực tiếp đến khả năng quản trị thiết bị từ xa (Telnet/SSH bằng tên thay vì IP), khả năng tải cấu hình/firmware qua tên miền, và là 1 phần quan trọng trong việc chẩn đoán sự cố mạng — phân biệt được "không vào được web vì DNS lỗi" hay "vì đường truyền thực sự bị đứt" là kỹ năng cơ bản cần có.

❓ Bản ghi PTR (Reverse DNS) dùng để làm gì trong thực tế?

✅ PTR dùng để tra cứu ngược lại — từ 1 địa chỉ IP, tìm ra tên miền tương ứng. Ứng dụng phổ biến nhất là trong hệ thống chống spam email: nhiều máy chủ email sẽ kiểm tra xem địa chỉ IP gửi email có bản ghi PTR hợp lệ hay không, trước khi quyết định có chấp nhận email đó hay đánh dấu là spam.


📝 Bài tập đánh giá

Câu 1: Loại bản ghi DNS nào dùng để ánh xạ tên miền sang địa chỉ IPv4?

  • A. CNAME
  • B. MX
  • C. A
  • D. PTR

Câu 2: Lệnh nào dùng để khai báo máy chủ DNS cho Router Cisco?

  • A. ip domain-name
  • B. ip name-server
  • C. ip dns-server
  • D. dns configure

👉 Đáp án:

Câu 1: C — Bản ghi loại A dùng để ánh xạ tên miền sang địa chỉ IPv4; bản ghi AAAA mới dùng cho IPv6.

Câu 2: B — Lệnh ip name-server dùng để khai báo địa chỉ IP của máy chủ DNS mà Router sẽ dùng để phân giải tên miền.


📚 Bài viết thuộc khóa học CCNA của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
Bài 37: NTP Mục lục khóa học CCNA Bài 39: DHCP — cơ chế DORA, cấu hình DHCP server/relay