Image default
Máy Tính

Trải Nghiệm Thú Vị Với Pi-hole: Bài Học Đắt Giá Về Dự Phòng DNS Khi Cập Nhật Hệ Thống

Hành trình tự host (self-hosting) đã mang lại cho tôi rất nhiều niềm vui và những thành quả xứng đáng. Tôi đã dần ổn định với các dịch vụ đang sử dụng, và hiện tại, hệ thống NAS của tôi đang vận hành nhiều ứng dụng tuyệt vời như lưu trữ đám mây, bộ Office và một máy chủ truyền phát đa phương tiện. Gần đây, tôi quyết định tự host Pi-hole để chặn quảng cáo trên toàn bộ mạng Wi-Fi gia đình mình, và mọi thứ đều diễn ra suôn sẻ cho đến khi TrueNAS cảnh báo có bản cập nhật Pi-hole mới. Tôi cố gắng cập nhật Pi-hole và… toàn bộ mạng của tôi bỗng nhiên bị sập hoàn toàn. Nếu bạn có kiến thức về mạng, có lẽ bạn đã biết vấn đề nằm ở đâu, nhưng hãy để tôi giải thích chi tiết hơn về tình huống trớ trêu này.

Giao diện máy tính xách tay hiển thị các dịch vụ self-hosted như Immich và Nextcloud trong trình duyệt, minh họa tiện ích của việc tự chủ máy chủGiao diện máy tính xách tay hiển thị các dịch vụ self-hosted như Immich và Nextcloud trong trình duyệt, minh họa tiện ích của việc tự chủ máy chủ

Pi-hole Hoạt Động Như Thế Nào?

Pi-hole thường được biết đến như một công cụ chặn quảng cáo, và đó cũng là lý do chính tôi muốn thiết lập nó. Tuy nhiên, về bản chất kỹ thuật, Pi-hole là một trình phân giải DNS (DNS resolver) được tự host. Nó chịu trách nhiệm tiếp nhận tất cả các truy vấn DNS từ các thiết bị trong mạng của bạn và chuyển chúng đến các máy chủ phù hợp, giúp bạn kết nối với mọi trang web như bình thường.

Bản Chất Của Pi-hole: Trình Phân Giải DNS Tự Host

Thông thường, bộ định tuyến (router) hoặc modem của mạng bạn sẽ cung cấp một trình phân giải DNS được cài đặt sẵn, thường là máy chủ DNS của nhà cung cấp dịch vụ internet (ISP). Chẳng hạn, trước khi tôi cài đặt Pi-hole, router của tôi kết nối với các máy chủ DNS của Google (8.8.8.8 và 8.8.4.4).

Với Pi-hole, sau khi thiết lập ứng dụng tự host, bạn chỉ cần thay đổi trình phân giải DNS trên router của mình thành địa chỉ IP của phiên bản Pi-hole. Pi-hole sau đó sẽ sử dụng một trình phân giải DNS “upstream” như Quad9, Google hoặc Cloudflare, rồi kết hợp nó với danh sách chặn mà bạn đã thêm vào Pi-hole. Các thiết bị trong mạng, bao gồm máy tính cá nhân của bạn, sẽ gửi yêu cầu DNS đến Pi-hole. Khi Pi-hole nhận diện một miền (domain) nằm trong danh sách chặn, nó sẽ phản hồi bằng một địa chỉ “ảo” (dummy address) như “::” cho địa chỉ IPv6 hoặc “0.0.0.0” cho địa chỉ IPv4, thay vì địa chỉ thật của máy chủ quảng cáo.

Việc chặn quảng cáo và theo dõi trở nên khả thi nhờ vào cơ chế này: bất kỳ yêu cầu DNS nào đến các máy chủ quảng cáo đã biết đều sẽ không được kết nối đến đích dự định của chúng mà thay vào đó bị loại bỏ. Điều này ngăn chặn quảng cáo xuất hiện trong mạng của bạn. Phương pháp này thậm chí có thể giúp bạn tiết kiệm một lượng đáng kể dữ liệu sử dụng, mang lại lợi ích kép cho người dùng.

Giao diện bảng điều khiển Pi-hole hiển thị thống kê chặn quảng cáo và các truy vấn DNS, minh họa hiệu quả hoạt động của Pi-holeGiao diện bảng điều khiển Pi-hole hiển thị thống kê chặn quảng cáo và các truy vấn DNS, minh họa hiệu quả hoạt động của Pi-hole

Nguyên Nhân Mạng Sập Khi Cập Nhật Pi-hole

Một tuần trước, khi tôi kiểm tra TrueNAS, hầu hết các ứng dụng tự host của tôi đều có bản cập nhật mới. Tôi nghĩ rằng việc cập nhật Pi-hole có thể gây ra sự cố mạng trong vài phút khi nó khởi động lại, nhưng không ngờ lại xảy ra vấn đề nghiêm trọng như vậy. Rõ ràng là tôi đã không lường trước được điều gì sẽ xảy ra.

Thiếu Máy Chủ DNS Phụ: Một Sai Lầm Đáng Tiếc

Khi cập nhật Pi-hole, TrueNAS sẽ tắt ứng dụng, tải gói cập nhật từ kho lưu trữ, sau đó triển khai lại. Vấn đề nằm ở chỗ, sau khi Pi-hole bị tắt, không còn trình phân giải DNS nào để thiết lập kết nối, dẫn đến việc TrueNAS bị kẹt trong một vòng lặp cố gắng tải gói cập nhật Pi-hole. Trong khi đó, mạng của tôi cũng ngừng hoạt động vì không có trình phân giải DNS nào trong mạng. Tệ hơn nữa, vì quá trình cập nhật đã được kích hoạt, tôi không thể đơn giản khởi động lại vùng chứa (container) ứng dụng được.

Ảnh chụp màn hình TrueNAS hiển thị thông tin ứng dụng Pi-hole đang được cài đặt, cho thấy sự tích hợp Pi-hole trên hệ thống NASẢnh chụp màn hình TrueNAS hiển thị thông tin ứng dụng Pi-hole đang được cài đặt, cho thấy sự tích hợp Pi-hole trên hệ thống NAS

Tôi nhận ra tất cả những điều này sau khi sự cố đã xảy ra. Vào thời điểm đó, tôi hoàn toàn không biết chuyện gì đang xảy ra. Trong tình huống như vậy, bạn có thể giải quyết bằng cách sử dụng một máy chủ DNS cụ thể trên các thiết bị của mình, nhưng tôi đã quên mất khả năng này. May mắn thay, trong một cuộc họp qua điện thoại với kết nối 5G, đồng nghiệp Adam Conway đã nhắc nhở tôi. Tôi liền thiết lập máy chủ DNS của Google cho chiếc Mac Mini để có thể tiếp tục làm việc. Lúc tôi trình bày lỗi đang gặp phải cho Adam, anh ấy đã cười khi nhận ra vấn đề.

May mắn thay, giải pháp khá đơn giản. Tôi chỉ cần vào cài đặt mạng của TrueNAS và thêm một mục DNS riêng, giống như tôi đã làm trên Mac Mini, để NAS vẫn có thể phân giải địa chỉ. Pi-hole của tôi là trình phân giải DNS duy nhất được định nghĩa trong DHCP, điều mà NAS của tôi đã tuân thủ. Ngay sau khi tôi định nghĩa một máy chủ DNS bên ngoài bổ sung trên TrueNAS, tôi cuối cùng đã có thể cập nhật Pi-hole và khôi phục hoạt động cho mạng của mình.

Một người đang cầm ổ cứng HDD trước máy tính và hai thiết bị NAS TerraMaster, tượng trưng cho việc quản lý lưu trữ và các ứng dụng self-hosted trên NASMột người đang cầm ổ cứng HDD trước máy tính và hai thiết bị NAS TerraMaster, tượng trưng cho việc quản lý lưu trữ và các ứng dụng self-hosted trên NAS

Tầm Quan Trọng Của Dự Phòng DNS Trong Mạng Gia Đình

Chắc hẳn bạn đã nhận thấy rằng khi tôi nhắc đến các máy chủ DNS của Google ở trên, tôi đã đề cập đến hai địa chỉ IP, trong khi Pi-hole của tôi chỉ có một. Đây chính là điểm mấu chốt. Trong nhiều trường hợp, một thiết bị sẽ truy vấn cả hai máy chủ DNS để phân giải một yêu cầu, và máy chủ nào phản hồi nhanh hơn sẽ được sử dụng, giúp đảm bảo kết nối nhanh hơn. Hơn nữa, nếu một trong các máy chủ bị quá tải hoặc không phản hồi, máy chủ còn lại có thể hỗ trợ kịp thời.

Với Pi-hole, bạn không có được sự dự phòng đó nếu chỉ có một phiên bản duy nhất. Gần đây, đồng nghiệp Adam của tôi đã viết về việc việc có một phiên bản Pi-hole thứ hai là một ý tưởng tuyệt vời vì lý do này. Nếu một trong các máy chủ Pi-hole của bạn ngừng phản hồi, mạng của bạn vẫn có thể tiếp tục hoạt động bình thường, vì máy chủ còn lại sẽ gánh vác toàn bộ công việc phân giải truy vấn DNS cho mạng của bạn. Điều này không bắt buộc, nhưng lợi ích rõ ràng như tôi đã trải qua trong sự cố vừa rồi.

Bạn có thể chỉ cần sử dụng một trình phân giải DNS dựa trên đám mây như Google làm dự phòng. Tuy nhiên, nếu mục tiêu của bạn là chặn quảng cáo, bất cứ khi nào máy chủ phụ được sử dụng, quảng cáo sẽ vẫn xuất hiện vì máy chủ đó vẫn sẽ phục vụ quảng cáo như bình thường. Vì vậy, tôi đã thiết lập phiên bản Pi-hole duy nhất của mình mà không có bất kỳ sự dự phòng nào; không có máy chủ dự phòng nào để các thiết bị của tôi có thể sử dụng khi cần. Và rồi bản cập nhật xảy ra, và tất nhiên, mọi thứ trở nên rối tung. Để tránh những vấn đề như vậy, Adam đã khuyên tôi rằng khi Pi-hole của anh ấy được triển khai trên TrueNAS, anh ấy đã chỉ định DNS của Cloudflare trong cài đặt mạng của TrueNAS. Theo kinh nghiệm của anh ấy, phiên bản TrueNAS (dựa trên nhật ký Pi-hole của anh ấy) không bao giờ truy cập các miền bị chặn, và việc định nghĩa một nhà cung cấp DNS bên ngoài ở cấp độ hệ điều hành sẽ tránh được mọi vấn đề không lường trước. Hãy tưởng tượng bạn đang ở xa, cố gắng truy cập máy chủ của mình từ xa, và sau đó phát hiện ra rằng bạn không thể kết nối vì Pi-hole đột nhiên gặp trục trặc?

Ảnh chụp màn hình Pi-hole hiển thị hai lỗi trong tab chẩn đoán, minh họa các vấn đề có thể xảy ra và tầm quan trọng của dự phòng DNSẢnh chụp màn hình Pi-hole hiển thị hai lỗi trong tab chẩn đoán, minh họa các vấn đề có thể xảy ra và tầm quan trọng của dự phòng DNS

Mặc dù cá nhân tôi chưa gặp phải, phiên bản Pi-hole chính của bạn có thể chạy chậm hoặc gặp sự cố (và có nhiều báo cáo về điều này với Pi-hole V6), vì vậy việc có một máy chủ DNS thứ cấp là rất quan trọng cho mục đích dự phòng. Như Adam đã lưu ý, một Pi-hole sử dụng rất ít tài nguyên. Do đó, việc triển khai hai phiên bản Pi-hole trên các máy khác nhau, nếu bạn có đủ tài nguyên, có thể giúp đảm bảo mạng của bạn luôn hoạt động. Và, như tôi đã học được, điều này đặc biệt đúng khi bạn đang cập nhật một trong các phiên bản Pi-hole của mình.

Thiết bị chuyển mạch quản lý YuanLey 2.5 GbE, một thành phần quan trọng trong việc xây dựng hệ thống mạng mạnh mẽ và dự phòng cho các dịch vụ như Pi-holeThiết bị chuyển mạch quản lý YuanLey 2.5 GbE, một thành phần quan trọng trong việc xây dựng hệ thống mạng mạnh mẽ và dự phòng cho các dịch vụ như Pi-hole

Tự Chủ Máy Chủ Đòi Hỏi Sự Nghiên Cứu Kỹ Lưỡng

Việc tự host các dịch vụ công nghệ chắc chắn là một hành trình thú vị và bổ ích, nhưng nó cũng đầy thử thách nếu bạn không tìm hiểu kỹ lưỡng từ trước hoặc không biết những gì bạn không biết. Những vấn đề như sự cố mà tôi đã gặp với Pi-hole chắc chắn sẽ xảy ra, nhưng cuối cùng, nó vẫn đáng để vượt qua. Việc không có quảng cáo khi tôi sử dụng Wi-Fi – cùng với tất cả những lợi ích khác của việc tự host – hoàn toàn xứng đáng với công sức bỏ ra, và tôi thực sự khuyên bạn nên thử. Và trong khi tôi đang sử dụng Pi-hole trên một NAS, bạn hoàn toàn có thể dùng một chiếc Raspberry Pi giá rẻ (hoặc thậm chí một chiếc điện thoại cũ) để host Pi-hole với chi phí thấp hơn đáng kể. Hãy chia sẻ kinh nghiệm tự host các dịch vụ công nghệ của bạn và những bài học bạn đã rút ra!

Related posts

LibreOffice Calc: Đối Thủ Đáng Gờm, Miễn Phí Của Excel Với Những Tính Năng Độc Đáo

Administrator

Tududi: Ứng dụng Quản Lý Công Việc, Dự Án Mã Nguồn Mở Miễn Phí Đáng Thử

Administrator

Perplexity Comet: Trình Duyệt AI Tích Hợp Sâu Có Thay Đổi Cách Bạn Duyệt Web?

Administrator