Trong hành trình xây dựng và tối ưu hóa homelab cá nhân, tôi đã dành rất nhiều thời gian với OPNsense, chủ yếu là trong vai trò cổng mạng chính cho các thử nghiệm. Ban đầu, phần lớn những thiết lập này được thực hiện thông qua các máy ảo (VM), nhưng phương pháp này lại mang đến nhiều vấn đề hơn là hiệu quả công việc. Vấn đề lớn nhất mà tôi thường xuyên phải đối mặt là việc các bộ điều hợp mạng ảo (virtual network adapters) thường xuyên thay đổi gán địa chỉ khi tôi quay lại VM sau một thời gian, điều này thực sự gây cản trở và trở thành điểm mấu chốt khiến tôi phải thay đổi.
Vì vậy, đã đến lúc đưa homelab của tôi lên một nền tảng phần cứng chuyên dụng. Tôi muốn có các cổng Ethernet vật lý mà tôi có thể quản lý trực tiếp qua mạng. Tuy nhiên, tôi không chọn đi theo con đường của các máy chủ doanh nghiệp cũ vì tiếng ồn lớn và hóa đơn tiền điện khổng lồ sẽ khiến tôi từ bỏ ý định sử dụng chúng. Thay vào đó, tôi bắt đầu với một chiếc mini PC nhỏ gọn nhưng mạnh mẽ, tương tự như nhiều người đam mê homelab khác. Điều đặc biệt là tôi sẽ sử dụng các bộ điều hợp mạng này trong Proxmox và cài đặt OPNsense cùng với một vài dịch vụ khác lên trên nền tảng ảo hóa này.
Mini PC – Lựa Chọn Lý Tưởng Cho Homelab và Firewall
Sức Mạnh Đủ Dùng và Đa Dạng Cổng Kết Nối
Đối với những ai đã từng thất vọng khi tôi không thể chạy OPNsense trên một chiếc ThinkPad cũ, không ai thất vọng hơn tôi. Vấn đề không phải là tôi không có laptop với cổng Ethernet, mà OPNsense thực sự không tương thích tốt với bộ điều hợp không dây và tôi cũng không thể tìm thấy bộ chuyển đổi USB Ethernet nào trong nhà (tôi có một cái TB3 cho MacBook Pro cũ, có thể thử trong một thử nghiệm sau này). Điều đó có nghĩa là lựa chọn hợp lý duy nhất là một chiếc mini PC với hai cổng NIC 2.5GbE dựa trên Intel, và đó chính xác là những gì tôi đã làm.
Tôi vẫn đang sử dụng một hệ thống NAS lớn hơn để lưu trữ dữ liệu quan trọng qua iSCSI, nhưng chiếc mini PC Beelink này sẽ mở ra một kỷ nguyên mới trong các thử nghiệm của tôi. Thiết bị này được trang bị CPU Intel N150, 12GB RAM và 64GB eMMC, cấu hình này là quá đủ cho việc cài đặt Proxmox, đặc biệt là với sáu khe cắm M.2 để mở rộng bộ nhớ. Đúng vậy, sáu khe cắm! Mặc dù năm trong số đó chạy ở PCIe 3.0 x1 và khe thứ sáu ở x2, nhưng tốc độ này vẫn quá đủ để đạt tối đa băng thông của các cổng 2.5GbE và chủ yếu được dùng để lưu trữ các máy ảo.
Lợi ích khác của việc sử dụng phần cứng hiện đại là tôi có thể dễ dàng mua thêm các mini PC tương tự để mở rộng homelab. Cuối cùng, tôi muốn xây dựng một cụm Proxmox High Availability (HA) với ít nhất ba, hoặc có thể bốn, chiếc cùng mẫu này, tất cả đều có cùng dung lượng lưu trữ và sử dụng chung một storage pool trên một thiết bị khác. Cụm này sẽ chạy các máy ảo cho OPNsense, Technitium hoặc Pi-hole để chặn DNS, và bất kỳ dịch vụ nào khác mà tôi muốn có thời gian hoạt động cao.
Liệu tôi có thể làm điều này với phần cứng khác không? Chắc chắn rồi, nhưng tôi sẽ phải tìm ba máy chủ doanh nghiệp cũ với phần cứng giống hệt nhau, mua một chiếc tủ rack để đặt chúng, và chuẩn bị vài lời giải thích cho người bạn đời của mình, nếu không thì những thiết bị đó sẽ không được phép vào nhà mà không cần phải dọn dẹp nhà để xe. Xây dựng một cụm với các mini PC nhỏ gọn chỉ dễ dàng hơn nhiều.
Thiết kế nhỏ gọn và đa dạng màu sắc của mini PC Beelink ME mini.
Beelink ME mini trang bị CPU Intel Twin Lake N150 mới và tổng cộng sáu khe cắm M.2 PCIe 3.0, cho phép lưu trữ tập trung tốc độ cao hoặc phục vụ như một bộ kit khởi động homelab lý tưởng.
Biến Mini PC Thành Router OPNsense (Và Hơn Thế Nữa)
Ảo Hóa OPNsense Trên Proxmox: Tận Dụng Tối Đa Phần Cứng
Tôi hoàn toàn có thể cài đặt OPNsense trực tiếp (bare metal) lên chiếc mini PC này, và tôi đã suýt làm điều đó. Có lẽ tôi vẫn sẽ thử lại vào một thời điểm nào đó, nhưng tôi muốn sử dụng Proxmox vì chiếc máy này có sáu khe cắm M.2 NVMe để sử dụng, và việc chỉ dùng nó cho một firewall sẽ là một sự lãng phí. Nó thực sự hoàn hảo cho các máy ảo, với 64GB eMMC cho Proxmox và rất nhiều cổng để lưu trữ VM, tạo ZFS pools cho NAS, và chạy Home Assistant, Pi-hole, Unbound cùng một số dịch vụ khác.
Có một điều tôi phải làm hơi khác một chút trên mẫu máy này, và may mắn thay, Wendell từ Level1Techs đã đăng giải pháp khắc phục. Proxmox không thích cài đặt lên eMMC theo mặc định, điều này khá đáng tiếc vì chiếc mini PC này có một phân vùng 64GB rất phù hợp để chứa một hypervisor cấp 1. Và trước khi những tin nhắn giận dữ xuất hiện, điều này sẽ “ổn” thôi, và tôi dự định sẽ thiết lập ghi log ra các ổ đĩa lưu trữ anyway.
Giải pháp là khởi động trình cài đặt, nhấn CTRL+ALT+F1 để vào terminal, sau đó nhấn CTRL+C để dừng trình cài đặt. Kế tiếp, mở vi hoặc nano để chỉnh sửa tệp sau:
/usr/share/perl5/Proxmox/Sys/Block.pm
Bạn cần tìm phần “sub get_partition_dev” và thêm hai dòng vào cuối:
} elsif ($dev =~m|^/dev/mmcblkd+$|) { return "${dev}p$partnum";
Sau khi hoàn tất, lưu tệp và quay lại terminal, mở gdisk để tạo các phân vùng ban đầu trên dev/mmcblk0. Điều này sẽ giúp tránh một lỗi khác của Proxmox khiến trình cài đặt bị treo nếu không có phân vùng nào tồn tại trên thiết bị lưu trữ. Thật thú vị với homelab phải không?
Sau đó, hãy kiểm tra lại bằng cách chạy lệnh ‘lsblk’ để đảm bảo mmcblk0p1 đã hiển thị. Cuối cùng, bạn có thể chạy ‘proxmox-tui-installer’ và tiếp tục cài đặt hypervisor của mình. Phần còn lại của quá trình thiết lập tương đối đơn giản, cả cho Proxmox, nơi tôi đã chạy một vài script cộng đồng, trước khi thêm OPNsense dưới dạng một máy ảo.
Cài Đặt OPNsense VM – Nhanh Chóng và Dễ Dàng
QEMU hoạt động cực kỳ nhanh chóng khi cài đặt VM trên Proxmox, và chip N150 trong chiếc hộp nhỏ này đủ nhanh. Việc thêm Linux Bridges cho hai NIC còn mất nhiều thời gian hơn là việc trình cài đặt OPNsense hoàn tất, và tôi đã có màn hình đăng nhập chỉ trong chốc lát, sẵn sàng cho tất cả các plugin hậu cài đặt mà tôi mong muốn.
Màn hình đăng nhập OPNsense sau khi cài đặt thành công dưới dạng máy ảo trên Proxmox.
Tùy Biến Router/Firewall Tại Nhà: Đơn Giản Hơn Bao Giờ Hết
Việc tự xây dựng một tường lửa tùy chỉnh tại nhà chưa bao giờ dễ dàng đến thế. Tôi biết điều này nghe có vẻ cường điệu, nhưng đó là sự thật. Tôi đã sử dụng, tinh chỉnh, tùy chỉnh, cài đặt và đôi khi “chửi rủa” (khi mọi thứ không như ý) máy tính trong nhiều thập kỷ, và toàn bộ quá trình ở đây thực sự trơn tru đáng kinh ngạc. Vấn đề duy nhất là tôi đã cố gắng sử dụng phân vùng eMMC, vì trình cài đặt của Proxmox vẫn chưa có hai dòng lệnh cần thiết để tìm kiếm eMMC làm đích cài đặt. Nhờ Wendell tại Level1Techs và chuyên môn Linux dày dặn của anh ấy, một trở ngại tiềm ẩn đã được giải quyết chỉ trong vài phút. Tôi biết tôi có thể đã cài đặt Proxmox trên ổ NMVe mà tôi đã cài đặt, nhưng tôi muốn dành mọi GB không gian lưu trữ cho các máy ảo và dữ liệu, chứ không phải cho hypervisor sẽ chạy tất cả.
Thiết lập và kết nối mini PC Beelink ME mini trong môi trường homelab.
Với sự tiến bộ của phần cứng mini PC và các công cụ ảo hóa như Proxmox, việc xây dựng một hệ thống router và firewall mạnh mẽ, tùy biến cao đã trở nên cực kỳ khả thi cho mọi người dùng, từ những người mới bắt đầu homelab cho đến các chuyên gia. Giải pháp này không chỉ mang lại sự ổn định và hiệu suất vượt trội so với các thiết lập ảo hóa đơn thuần, mà còn giúp tối ưu hóa không gian và chi phí vận hành.
Việc tích hợp OPNsense trên Proxmox trên một chiếc mini PC như Beelink ME mini mở ra khả năng tận dụng tối đa phần cứng, cho phép bạn không chỉ có một router/firewall đáng tin cậy mà còn là một nền tảng homelab đa năng, phục vụ nhiều nhu cầu khác nhau. Hy vọng những chia sẻ và hướng dẫn chi tiết trên sẽ giúp bạn tự tin hơn trong việc triển khai giải pháp mạng tùy chỉnh của riêng mình.
Bạn đã từng thử nghiệm cài đặt OPNsense hay Proxmox trên mini PC chưa? Hãy chia sẻ kinh nghiệm và những phát hiện thú vị của bạn trong phần bình luận bên dưới!