Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> Kết Nối Mạng

DNS Cache (Bộ nhớ đệm DNS) và cách nó làm internet tốt hơn

DNS cache (đôi khi gọi là bộ nhớ đệm DNS resolver) là cơ sở dữ liệu tạm thời, được duy trì bởi hệ điều hành máy tính, chứa bản ghi tất cả các lần truy cập gần đây và lần thử truy cập vào website và domain internet khác.

Nói cách khác, DNS cache chỉ là bộ nhớ về các tra cứu DNS gần đây mà máy tính có thể tham khảo nhanh khi cố gắng tải website.

Thông tin trong bài viết áp dụng cho người dùng gia đình chưa thay đổi cài đặt DNS.

Mục đích của DNS Cache

Internet dựa vào Domain Name System (DNS) để duy trì chỉ mục tất cả website công khai và địa chỉ IP tương ứng. Bạn có thể hình dung nó như một danh bạ điện thoại.

Với danh bạ, chúng ta không cần nhớ số điện thoại mọi người, đó là cách duy nhất điện thoại giao tiếp. Tương tự, DNS dùng để chúng ta tránh nhớ IP của mọi website, đó là cách duy nhất thiết bị mạng giao tiếp với website.

Đây là điều xảy ra "bằng màn" khi bạn yêu cầu trình duyệt tải website.

Bạn gõ URL như lifewire.com và trình duyệt hỏi router địa chỉ IP. Router có địa chỉ DNS server lưu sẵn, nên nó hỏi DNS server IP của hostname đó. DNS server tìm IP thuộc về lifewire.com và hiểu website bạn yêu cầu, sau đó trình duyệt tải trang phù hợp.

Quá trình này xảy ra với mọi website bạn muốn truy cập. Mỗi lần truy cập website bằng hostname, trình duyệt khởi tạo yêu cầu ra internet, nhưng yêu cầu không hoàn thành cho đến khi tên trang web được "chuyển đổi" thành địa chỉ IP.

Vấn đề là dù có hàng tấn DNS server công khai để mạng dùng thử tăng tốc quá trình chuyển đổi/giải quyết (resolution), vẫn nhanh hơn để có bản sao cục bộ của "danh bạ" — đó là nơi DNS cache phát huy tác dụng.

DNS cache cố gắng tăng tốc quá trình hơn nữa bằng cách xử lý giải quyết tên của địa chỉ truy cập gần đây trước khi yêu cầu được gửi ra internet.

Thực tế có DNS cache ở mọi cấp độ của quá trình "tra cứu" cuối cùng đưa máy tính đến tải website. Máy tính đến router, router liên hệ ISP, ISP có thể chạm ISP khác trước khi đến "root DNS server". Mỗi điểm trong quá trình có DNS cache vì cùng lý do: tăng tốc giải quyết tên.

Cách DNS Cache hoạt động

Trước khi trình duyệt phát yêu cầu ra mạng bên ngoài, máy tính chặn từng yêu cầu và tra tên miền trong cơ sở dữ liệu DNS cache. Cơ sở dữ liệu chứa danh sách tất cả tên miền truy cập gần đây và địa chỉ DNS tính toán cho chúng lần đầu yêu cầu được tạo.

Nội dung DNS cache cục bộ có thể xem trên Windows dùng lệnh ipconfig /displaydns, với kết quả tương tự:

docs.google.com
-------------------------------------
Record Name . . . . . : docs.google.com
Record Type . . . . . : 1
Time To Live . . . . : 21
Data Length . . . . . : 4
Section . . . . . . . : Answer
A (Host) Record . . . : 172.217.6.174

Trong DNS, bản ghi "A" là phần chứa địa chỉ IP cho hostname đã cho. DNS cache lưu địa chỉ này, tên website được yêu cầu, và một số tham số khác từ mục DNS host.

DNS Cache Poisoning (Đầu độc DNS Cache) là gì?

DNS cache trở nên bị đầu độc (poisoned) hoặc bị ô nhiễm (polluted) khi tên miền hoặc địa chỉ IP không được phép được chèn vào nó.

Đôi khi cache bị hỏng do lỗi kỹ thuật hoặc tai nạn quản trị, nhưng DNS cache poisoning thường liên quan đến virus máy tính hoặc tấn công mạng chèn mục DNS không hợp lệ vào cache.

Đầu độc khiến yêu cầu client bị chuyển hướng đến đích sai, thường là website độc hại hoặc trang đầy quảng cáo.

Ví dụ: nếu bản ghi docs.google.com ở trên có bản ghi "A" khác, khi bạn gõ docs.google.com vào trình duyệt, bạn sẽ bị đưa đến nơi khác.

Đây là vấn đề lớn cho website phổ biến. Nếu kẻ tấn công chuyển hướng yêu cầu Gmail.com đến website trông giống Gmail nhưng không phải, bạn có thể bị tấn công lừa đảo (phishing) như whaling.

DNS Flushing (Xóa DNS Cache): Tác dụng và cách làm

Khi troubleshooting cache poisoning hoặc vấn đề kết nối internet khác, admin máy tính có thể muốn flush (xóa, reset, dọn sạch) DNS cache.

Vì xóa DNS cache gỡ bỏ tất cả mục, nó xóa cả bản ghi không hợp lệ và ép máy tính tái tạo các địa chỉ đó lần sau bạn truy cập website đó. Các địa chỉ mới lấy từ DNS server mạng được thiết lập dùng.

Ví dụ: nếu bản ghi Gmail.com bị đầu độc và chuyển hướng bạn đến website lạ, flush DNS là bước đầu tốt để lấy lại Gmail.com bình thường.

Trên Microsoft Windows, bạn có thể flush DNS cache cục bộ dùng lệnh ipconfig /flushdns trong Command Prompt. Bạn biết nó hoạt động khi thấy thông báo Windows IP configuration successfully flushed the DNS Resolver Cache hoặc Successfully flushed the DNS Resolver Cache.

Xem thêm: Cách Flush và Clear Windows DNS Cache

Qua terminal dòng lệnh, người dùng macOS nên dùng dscacheutil -flushcache nhưng biết rằng không có thông báo "thành công" sau khi chạy, nên bạn không biết có thành công không. Trong một số trường hợp, người dùng Mac cũng phải kill DNS responder (sudo killall -HUP mDNSResponder). Người dùng Linux nên nhập lệnh /etc/rc.d/init.d/nscd restart. Lệnh chính xác sẽ khác tùy bản phân phối Linux.

Xem thêm: Tìm hiểu thêm về flush DNS cache trên Mac

Router cũng có thể có DNS cache, đó là lý do khởi động lại router thường là bước troubleshooting. Với cùng lý do bạn flush DNS cache trên máy tính, bạn có thể reboot router để xóa mục DNS lưu trong bộ nhớ tạm của nó.