OpenWrt One – bộ định tuyến phần cứng mở
(openwrt.org)- OpenWrt One là bộ định tuyến phần cứng mở được thiết kế cho hệ sinh thái OpenWrt, trang bị SoC MediaTek Filogic 820, WiFi 6 và WAN 2.5Gbit, hướng đến việc vừa làm router sử dụng thực tế vừa làm thiết bị phát triển và khôi phục
- Ở trạng thái xuất xưởng mặc định, thiết bị đi kèm firmware phát hành OpenWrt và giao diện LuCI GUI, có thể truy cập ngay qua web UI hoặc SSH tại
192.168.1.1sau khi khởi động từ NAND - Nâng cấp firmware được chia thành USB, khôi phục NAND và khôi phục toàn bộ NOR; đường khôi phục sẽ khác nhau tùy theo tổ hợp công tắc khởi động và nút bấm
- Ngay cả khi NAND bị hỏng, vẫn có thể flash lại bằng chế độ khôi phục NOR; còn khôi phục chính NOR thì cần khởi động qua UART, máy chủ TFTP và thao tác jumper
NOR WP - Thiết bị có serial console USB-C tích hợp và NOR dùng cho khôi phục, nên vẫn còn khả năng phục hồi nếu bootloader hoặc NAND bị hỏng trong quá trình thử nghiệm firmware
Cấu hình phần cứng và firmware xuất xưởng
- OpenWrt One là thiết bị dựa trên SoC MediaTek Filogic 820
- Các thông số phần cứng chính như sau
- WiFi 6
- Băng tần kép
- Cấu hình không dây 3×3/2×2
- 1× WAN 2.5Gbit
- 1× LAN 1Gbit
- 1GB RAM DDR4
- NAND 256MiB
- NOR 16MiB dùng cho khôi phục
- SSD M.2
- Serial console USB-C
- USB 2.0
- Power Over Ethernet hoạt động theo cách thiết bị tương thích IEEE 802.3af/at cấp nguồn qua đầu nối WAN RJ-45 2.5Gbps
- Mỗi thiết bị được xuất xưởng với firmware phát hành OpenWrt mới nhất khả dụng tại thời điểm lô sản xuất được tạo ra
- LuCI GUI đã được cài đặt và ở trạng thái có thể chạy ngay với cấu hình mặc định tiêu chuẩn
Khởi động lần đầu và truy cập cơ bản
- Trước khi cấp nguồn, công tắc NAND/NOR phải được đặt ở NAND
- Kết nối cáp Ethernet vào cổng 1G của thiết bị và sử dụng
192.168.1.1 - Sau khi bật nguồn, khi đèn LED xanh sáng liên tục thì quá trình khởi động đã hoàn tất
- Trên trình duyệt, có thể truy cập LuCI GUI tại
192.168.1.1, còn trên terminal có thể dùngssh root@192.168.1.1 - Nếu nâng cấp lên nhánh SNAPSHOT từ trạng thái xuất xưởng mặc định thì LuCI GUI sẽ không được cài sẵn theo mặc định
- Có thể làm theo Quick Start Guide để cấu hình ban đầu
Nâng cấp firmware qua USB
- Nâng cấp qua USB là cách chuẩn bị tệp
openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itbtrên ổ USB được định dạng FAT32- Có thể dùng tệp mang đầy đủ số phiên bản từ kho SNAPSHOT hoặc Release rồi đổi tên thành tên trên
- Quy trình theo thứ tự là: ngắt nguồn, cắm USB vào cổng USB-A, chọn NAND boot switch, giữ nút Reset ở mặt sau, cấp nguồn, thả nút khi tất cả LED tắt, rồi chờ đến khi LED giữa chuyển sang màu xanh
- Thiết bị sẽ khởi động từ NAND, và bootloader sẽ flash lại kernel cùng root filesystem của NAND
- Đã ghi nhận vấn đề tương thích với một số ổ USB; có thể thử định dạng FAT32 và dùng bảng phân vùng MBR
- Nếu trong U-Boot xuất hiện lỗi
Bad device specification usb 0, việc tăng giá trịusb_pgood_delaycó thể hữu ích - Các bản OpenWrt One đời đầu chạy SNAPSHOT trước bản phát hành 24.10.0 từng có lỗi đèn LED xanh không sáng ở cuối quá trình sysupgrade qua USB
- Dù vậy, quá trình nâng cấp vẫn thành công
- Hành vi bất thường này liên quan đến issue Green LED doesn't turn on at end of OpenWrt One USB-based sysupgrade và đã được khắc phục trong commit
Chế độ khôi phục NAND và image cài đặt
- Nâng cấp bằng initramfs NAND Recovery Mode tương tự nâng cấp firmware qua USB, nhưng cần nhấn nút phía trước thay vì Reset phía sau và không cần chuẩn bị ổ USB
- Quy trình theo thứ tự là: ngắt nguồn, chọn NAND boot, giữ nút phía trước, cấp nguồn, thả nút khi tất cả LED phía trước tắt, rồi chờ đến khi LED giữa chuyển sang màu xanh
- Thiết bị sẽ khởi động image
initramfsdùng cho khôi phục, sau đó có thể dùng các tùy chọn nâng cấp khác - Các image được cung cấp cho cài đặt gồm
factory.ubi,sysupgradevà imagekerneldạng raw - Phục vụ việc flash để khôi phục còn có FIP
bl31-uboot.fipcủa uboot,factory.bin,preloader.bin, với các biến thể cho NAND và cho NOR khôi phục rút gọn
Khôi phục toàn bộ NOR để flash lại NAND
- Nếu thiết bị không còn khởi động từ NAND được nữa, có thể khởi động vào NOR/full recovery mode để khôi phục NAND
- Cách này vẫn dùng được ngay cả khi TF-A hoặc bootloader của NAND bị hỏng
- Sau khi chuẩn bị NAND preloader và factory image trên ổ USB FAT32, thực hiện: ngắt nguồn, cắm USB, chọn NOR boot, giữ nút phía trước, cấp nguồn, thả nút khi toàn bộ LED phía trước tắt, rồi chờ cho đến khi LED chuyển sang màu xanh
- Hệ thống khôi phục NOR sẽ flash lại toàn bộ bộ nhớ NAND về trạng thái factory
- Có thể tải các tệp cần thiết từ SNAPSHOT hoặc Current Stable Release Download Pages
Khôi phục chính bộ nhớ NOR
- Bộ nhớ khôi phục NOR cũng có thể được flash lại, và quy trình được chia thành hai bước
- UART boot: dùng
mtk_uartbootđể chép image khởi tạo DDR4 và image bootloader NOR vào RAM qua kết nối UART/serial console, rồi khởi động từ RAM - NOR flash: dùng chức năng khôi phục trong boot menu để flash lại image vào NOR từ máy chủ TFTP
- UART boot: dùng
- Ở bước thứ hai, jumper SPI NOR WP phải ở vị trí mặc định từ nhà máy, và máy chủ TFTP phải được nối với cổng LAN của OpenWrt One để cung cấp image mới
- Có thể tải binary
mtk_uartboottừ phần assets của mtk_uartboot Releases, chọn archive phù hợp với hệ điều hành rồi giải nén để dùng - Trên macOS, có thể cần xóa thuộc tính cách ly bằng
xattr -d com.apple.quarantine mtk_uartboot - Có thể lấy tệp khởi tạo DDR4 và image NOR BL31/uboot từ thư mục con
<release-version>/targets/mediatek/filogiccủa SNAPSHOT hoặc Current Stable Release Download Pages - Khi chuẩn bị TFTP, giao diện Ethernet của máy tính cần dùng cấu hình thủ công sau
- IP:
192.168.11.23 - Mask:
255.255.255.0 - Gateway:
192.168.11.11
- IP:
- Máy chủ TFTP phải lắng nghe tại
192.168.11.23, còn OpenWrt One sẽ dùng địa chỉ IP192.168.11.11 - Vì tên tệp đã tải về có chứa phiên bản phát hành, cần đổi tên sang dạng không có phiên bản mà router yêu cầu
- Ví dụ:
openwrt-25.12.2-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip→openwrt-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip
- Ví dụ:
Quy trình khởi động UART và flash qua TFTP
- Lệnh
mtk_uartbootsẽ chép các tệp khởi động khi kết nối qua USB-C, sau đó có thể mở kết nối serial console bằng GNU Screen - Khi chạy lệnh, cần thay đường dẫn tệp đã tải và đường dẫn thiết bị serial của hệ thống host bằng giá trị thực tế
- Trên máy Linux, nếu cần quyền truy cập vào các thiết bị serial như
/dev/ttyS*,/dev/ttyUSB*, hãy thêm người dùng vào các nhómdialoutvàuucprồi đăng nhập lại - Sau khi
mtk_uartboothiển thịHandshake..., bật nguồn router thì quá trình tải BL2 và FIP sẽ diễn ra cùng với loghw code: 0x7981 - Nếu tải lên thành công, GNU Screen sẽ khởi động và hiển thị boot menu
- Trước khi cập nhật NOR, cần mở thiết bị và gắn jumper vào
NOR WP - Đặt công tắc phía sau thiết bị sang vị trí
NORvà bật nguồn trong khi vẫn kết nối với cổng serial UART - Khi boot menu xuất hiện, dùng phím mũi tên xuống để dừng quá trình khởi động và chọn
3. Unlock NOR. (Make sure the NOR/WP jumper is populated) - Sau đó chọn mục trong boot menu để yêu cầu các tệp cần thiết từ TFTP và flash chúng
- Sau khi flash xong, quay lại boot menu và chọn
7. Lock NOR. (Remove jumper afterwards) - Việc flash NOR thành công sẽ chậm hơn so với trường hợp thực tế không có thao tác flash diễn ra
- Sau khi flash lại firmware, có thể khởi động lại router và tháo jumper
Serial console và kích thước vật lý
- OpenWrt One có cổng serial console USB-C tích hợp nằm cạnh cổng host USB-A ở mặt trước
- Cổng này dùng bộ chuyển đổi USB-to-serial tích hợp và thường xuất hiện như cổng COM ảo trên PC mà không cần driver bổ sung
- Truy cập console hoặc serial là cần thiết cho việc bảo trì môi trường firmware, khôi phục và xác nhận phục hồi
- Kích thước thiết bị là 148 x 100.5mm
- Tương thích với thiết kế vỏ Banana Pi BPI-R4
1 bình luận
Ý kiến trên Hacker News
Hiện họ đang phát triển OpenWRT Two, và mẫu này dự kiến sẽ hỗ trợ Wi‑Fi 7
OpenWRT chạy được trên rất nhiều phần cứng, và là một cách tuyệt vời để kéo dài tuổi thọ router cũng như mở rộng mạnh mẽ tính năng ngay cả sau khi nhà sản xuất ngừng cập nhật bản vá
Giờ thì tôi không định mua router thương mại nào không hỗ trợ OpenWRT nữa
Ngoài ra, router này của GL.iNet cũng được cài sẵn OpenWRT, hỗ trợ Wi‑Fi 7 và 5 cổng 2.5G: http://www.gl-inet.com/en-gb/products/gl-be9300
Sẽ thật tuyệt nếu có sản phẩm chỉ có 10 khe SFP và tất cả đều là giao diện định tuyến, không có switching
Nó có thể trở thành một lựa chọn thay thế thật sự mã nguồn mở cho MikroTik
Nhưng sau khi hiểu được những gì nó làm được, giờ tôi không còn nghĩ đến chuyện mua router không dành cho OpenWRT nữa
Ví dụ, ISP của tôi có hai tùy chọn kết nối PPPoE, một cái là kiểu cũ chỉ có IPv4 nên không có IPv6, còn cái kia thì IPv4 nằm sau CGNAT nhưng có IPv6 hiện đại
Với OpenWRT, tôi có thể tạo hai kết nối PPPoE trên cùng một đường truyền nên tận dụng được ưu điểm của cả hai
Hơi lạc đề một chút, nhưng cái tên Wrt thú vị ở chỗ ban đầu nó xuất phát từ firmware thay thế cho router Linksys WRT54G cách đây 25 năm
Không hiểu sao cái tên đó cứ được giữ lại, chắc vì phần lớn người dùng đều là dân geek và biết nó nghĩa là gì
Linksys từng bị kiện để buộc phải công khai firmware có liên kết GPL, rồi người ta chỉnh sửa bản dump đó để biến WRT54G thành thứ mạnh hơn rất nhiều so với dự tính ban đầu của Linksys
Kết quả là Linksys cũng bán được phần cứng lâu hơn rất nhiều so với dự đoán khi đó
Thật thú vị khi thấy cái này lên trang nhất đúng lúc như vậy
Tôi vừa mới nhận OpenWrt One vì chất lượng của đa số router làm tôi không yên tâm
Tôi không muốn hồi sinh chiếc PC cũ từng dùng làm router nữa. Tôi đã dùng kiểu đó một thời gian, nhưng nó quá ồn nên bỏ, với cả quạt bộ nguồn có vẻ sắp hỏng rồi
Dù vậy, tổ hợp card Wi‑Fi PCI Qualcomm với ăng-ten lớn, một chiếc PC cực rẻ, Ubuntu cũ và cấu hình hostapd đơn giản lại là router Wi‑Fi ổn định nhất mà tôi từng dùng
Hy vọng OpenWrt One sẽ còn tốt hơn :-)
Trong 5 năm qua hầu như tôi không phải đụng vào nó ngoài việc chỉnh VLAN và cấu hình tunnel 6in4, và hiệu năng cũng cực kỳ ổn định
Mạng gia đình của tôi có tới hàng trăm thiết bị, có lẽ lớn hơn, đa dạng hơn và phức tạp hơn đa số nhà khác, thế mà tôi chỉ vào UI của OPNSense khoảng hai lần mỗi năm, thường chỉ vì tò mò
Đường cong học tập có dốc hơn đồ tiêu dùng một chút, nhưng với người dùng được OpenWRT thì hoàn toàn không phải mức quá sức
Tài liệu và hỗ trợ trên diễn đàn cũng tốt hơn 99,9% các dự án mã nguồn mở tôi từng thấy trong 25 năm qua
Tôi vẫn đang dùng Juniper làm switch. Con Juniper SRX cũ không giỏi uPNP lắm, nhưng ngoài chuyện đó thì nếu muốn đưa nó trở lại làm router, nó vẫn rất tuyệt
Con MikroTik tầm trung bị sốc điện và mất một nửa số cổng, nhưng vẫn định tuyến đủ dùng cho đến khi tôi tìm được thiết bị thay thế
Con MikroTik mới nhất cũng đang hoạt động tốt
Thành thật mà nói, tôi không rõ OpenWrt One mang lại thêm điều gì cho mình
Tôi nghĩ có lẽ nên cài OPNSense lên phần cứng mở mà mình muốn, rồi tách phần không dây phức tạp sang một AP riêng
OpenWRT rất tốt, nhưng việc cài đặt và nâng cấp không hề dễ. Có quá nhiều image, tùy chọn cài đặt và công cụ theo từng phần cứng
Vì phải chạy trên thiết bị nhỏ nên cũng có các giới hạn, mà tài liệu wiki lại phân tán nên còn nhiều chỗ có thể cải thiện
Tôi đã phải lục lọi diễn đàn suốt nhiều tuần để tìm cách cài gói tùy chỉnh phù hợp với router của mình
Ngay lúc này tôi vẫn đang thử nâng cấp lên phiên bản mới nhất bằng LUCI nhưng nó đang bị treo. Có lẽ tôi sẽ phải đợi vài tuần rồi làm bằng CLI, sau đó lại tiếp tục mò diễn đàn
Tôi có cảm giác mình đang phải trả cái giá khá lớn về thời gian chỉ để khỏi dùng một mini PC x86 đắt hơn một chút cùng với AP
Từ OpenWrt 25.12 trở đi, nó đã có sẵn trong mọi cấu hình image mặc định phù hợp
Tôi đang chạy toàn bộ router x86, AP và cả switch được quản lý bằng OpenWrt, và không hề hối hận
owut upgrade. Khá đơn giảnBiến nó thành router theo đúng nghĩa đen chỉ cần vài tham số kernel và vài quy tắc iptables NAT. Giờ với Claude thì chưa đến 5 phút là xong
Làm vậy sẽ cho hiệu năng và khả năng tương thích phần cứng tốt hơn nhiều so với hệ BSD, đồng thời giảm mức dùng tài nguyên và bề mặt tấn công. Cũng không có GUI hay thành phần thừa
Hỗ trợ Wi‑Fi trên BSD không tốt, nhưng trên Linux thì gần như có thể tạo AP ngay bằng hostapd
Nếu bạn định chạy thêm các dịch vụ khác trên cùng phần cứng thì dĩ nhiên Linux sẽ tốt hơn
Ngoài nhóm người dùng trung thành ra thì khó phân loại xem nó nhắm đến phân khúc nào, nhưng có lẽ là theo hướng phần cứng và phần mềm tốt trong tầm giá
Tôi đang dùng OpenWrt One làm router chính và rất hài lòng
Tôi có hai chiếc để nếu một cái hỏng thì có thể thay ngay
Vì là phần cứng được hỗ trợ hoàn toàn nên image và gói phần mềm rất đầy đủ, và đây là thiết bị tốt nhất để chạy OpenWrt
Tốc độ định tuyến, bộ đệm và độ trễ đều tốt, mọi thứ cứ thế hoạt động, mà giá lại rất hợp lý
Tôi không dùng nó làm AP, vì tôi đã có thêm 3 router TP-Link cài OpenWrt đang hoạt động rất ổn như các AP giả lập
Nếu cấu hình lại từ đầu, có lẽ tôi vẫn sẽ mua OpenWrt One
Tuy vậy, sau khi dùng thử bộ mesh Deco thì thấy nó hoạt động rất tốt, nên giờ tôi khuyên bạn bè hay người thân không có ý định chạy các gói tùy ý trên router hoặc AP dùng bên đó
Nếu bạn chỉ muốn một router hoặc AP Wi‑Fi tốt, không cần các tính năng mà sản phẩm này không có như Wi‑Fi 7 hay Ethernet 10Gbit/s, và muốn dành ít thời gian nhất có thể cho router cả bây giờ lẫn sau này, thì cứ mua nó
Từ khi mua cái này, tôi thấy không còn lý do gì để mua router đóng nữa
Không cần học hay nhớ cách cấu hình các router khác. Tất cả đều là OpenWRT nên lúc nào cũng giống nhau và luôn hoạt động theo cùng một cách. Cấu hình thiết bị mới cũng chỉ mất tối đa 2 phút
Bản cập nhật OpenWRT gần đây còn bổ sung tính năng mà dự án thiếu nhất: một nút đơn giản “tải xuống và cài đặt firmware mới nhất” trong UI của thiết bị
Giờ chỉ cần thêm tùy chọn nâng cấp không giám sát nữa là sau lần cấu hình ban đầu sẽ chẳng còn phải đăng nhập lại
Cộng thêm cảm giác ấm áp khi mua đồ nguồn mở, nên với tôi nó vẫn đáng giá dù bị giới hạn 1Gbps và Wi‑Fi cũ. Tôi cũng dùng AP riêng
Tôi đã đổi cổng trong phần mềm để thành WAN 1Gb và LAN 2.5Gb, nhờ đó còn có thể cấp nguồn cho router bằng PoE đi vào qua cổng LAN
106 USD nếu kèm vỏ và ăng-ten, 84 USD nếu không kèm, mức giá khá ổn
Tôi chỉ ước RAM nhiều hơn 1GB, nhưng chắc là do các trung tâm dữ liệu nên đành chịu
Dạo này thường còn chưa đến 64MB
Với kiểu dùng này thì 1GB là lượng RAM cực lớn :) Tôi tò mò vì sao bạn nghĩ sẽ cần nhiều hơn
Nhân nói đến Wi‑Fi, tôi muốn nhắc tới https://www.wiisfi.com/
Đây là tài liệu tham khảo về Wi‑Fi tốt nhất mà tôi từng tìm thấy
Tôi đã chuyển từ Google Wifi sang cái này, độ ổn định thì tương đương, nhưng phạm vi phủ sóng và cường độ tín hiệu tốt hơn, đồng thời cũng dễ áp dụng các thiết lập kiểm soát trẻ em mà tôi muốn hơn
Sẽ rất tuyệt nếu có thể đưa các thiết bị được phép truy cập Internet vào ban đêm vào whitelist
Tôi đang chạy OPNSense trên router N100 của AliExpress. Nó hoạt động rất tốt và tôi hài lòng
Nhưng việc nâng cấp thực sự rất đáng sợ. Đã có đúng một lần nâng cấp bị lỗi
Tôi đã chuẩn bị đầy đủ cả snapshot ZFS, nhưng vì là thiết bị headless nên mỗi lần chờ tiếng bíp báo hệ thống khởi động lại xong, tôi vẫn thấy việc nâng cấp quá căng thẳng
Gần đây tôi đang thử SPR[1]. Đây là một bản phân phối tập trung vào bảo mật dành cho router Wi‑Fi
Nhóm này rất nghiêm túc về bảo mật Wi‑Fi, đồng thời cũng vận hành một phòng thí nghiệm[2] được ghi nhận với nhiều CVE ở những nơi như ngăn xếp mạng của Apple
Tính năng cốt lõi là cô lập mạnh các khách ở mức bán tin cậy và các thiết bị nhà thông minh, còn ngăn xếp phần mềm được xây dựng xoay quanh các daemon Go đã được kiểm toán và được container hóa
Khi tôi phải dùng chung mạng hạ tầng với các hộ khác trong một chỗ ở cho thuê ngắn hạn, nó đã hoạt động khá tốt như một router du lịch lắp ráp tạm bằng Raspberry Pi và USB dongle Netgear A7500
Gần đây tôi cũng đang thử một mẫu dựa trên CM5 hỗ trợ Wi‑Fi 7 và 2.5GbE PoE để dùng làm Wi‑Fi chính ở nhà
1: https://www.supernetworks.org
2: https://www.supernetworks.org/security-labs.html