Cytron Technologies

Giờ làm việc: 8:00 - 17:00

Thứ 2 - Thứ 6 (trừ ngày lễ)

Hotline 0362917357 

Cài OpenWrt trên Raspberry Pi 4 – Bộ định tuyến (Router) Mã Nguồn Mở

Trong bài viết này, chúng ta sẽ biến Raspberry Pi trở thành một bộ định tuyến với hệ điều hành mã nguồn mở OpenWrt.
Theo kết quả kiểm tra thực tế, băng thông giữa cổng WAN và LAN khi chạy Speedtest lên tới 940 Mbps. Lúc này CPU load chỉ ở mức 20 đến 25%. Vì vậy, mình khá tự tin Raspberry Pi 4 có thể xử lý tốt gói cước Internet tốc độ Gigabit (1000 Mbps)

Phần cứng chuẩn bị

  • Bo mạch Raspberry Pi 4 Model B (dung lượng RAM bất kỳ, có thể dùng bản 1GB RAM nếu bạn không dự định chạy docker container trên OpenWrt)
  • Nguồn chính hãng Raspberry Pi 5V/3A – USB type C (hoặc nguồn điện tương tự để đảm bảo thiết bị hoạt động ổn định)
  • Thẻ nhớ microSD (để viết hệ điều hành OpenWrt)
  • Adapter USB 3.0 sang Gigabit Ethernet (1000Mbps), đôi khi còn được gọi là Card mạng USB.
  • Router nhà mạng ở chế độ Bridge, hoặc đường truyền Internet với Media Converter

Build firmware OpenWrt

Thật ra firmware OpenWrt cho Raspberry Pi đã được build tự động bởi openwrt.org tại đây. Tuy nhiên, mình có sử dụng card mạng USB D-Link DUB-1312 và driver/firmware cho card mạng này chưa có sẵn trong firmware Openwrt. Vì vậy, mình cần build firmware và thêm package chứa driver cho card mạng này để sử dụng.

Để build firmware custom cho OpenWrt, hãy truy cập firmware-selector.openwrt.org

Chọn Model là Raspberry Pi 4B/400/4CM (64bit), và chọn tiếp phiên bản 22.03.0-rc6.

Adapter USB sang Ethernet DUB-1312 của D-Link sử dụng chip ASIX AX88179, vì vậy chúng ta cần thêm package kmod-usb-net-asix-ax88179. Đồng thời vì đây là phiên bản RC (release candiate) nên mình sẽ thêm package luci để có thể truy cập trang quản lý OpenWrt qua web.

Hãy nhấn Customize installed packages để thêm các package vào, sau đó nhấn Request Build và đợi tiến trình hoàn tất.

Hiện tại đa số các Adapter USB sang Gigabit Ethernet (Ugreen UG-20255, D-Link DUB-1312, TP-Link UE306, v.v) đều sử dụng chip ASIX AX88179. Tuy nhiên vẫn có một loại sử dụng chip của Realtek, ví dụ như Realtek 8252B. Lúc này bạn cần cài kmod tương thích để OpenWrt nhận ra card mạng.

Viết firmware OpenWrt lên thẻ nhớ microSD

Tiếp theo, hãy tải file Factory EXT4 về máy tính và dùng rufus để viết lên thẻ nhớ microSD.

Nhấn Select để chọn firmware OpenWrt bạn vừa tải về, sau đó nhấn START để viết file lên thẻ nhớ.

Kết nối các thiết bị

Cổng USB 3.0 trên Raspberry Pi sẽ được nối tới Adapter USB sang Ethernet. Đầu còn lại được nối đến Media Converter hoặc GPON Router của nhà mạng ở chế độ bridge.

Cổng mạng Gigabit Ethernet trên Raspberry Pi có thể nối trực tiếp tới máy tính, hoặc nối đến Switch để rộng các cổng LAN.

Cuối cùng, hãy cấp nguồn cho Raspberry Pi tại cổng USB type C.

Truy cập trang quản lý LuCI của OpenWrt

Bây giờ hãy mở trình duyệt và truy cập 192.168.1.1 để vào trang quản lý của OpenWrt. Nó còn được gọi là LuCI. Mặc định tài khoản là root không có mật khẩu. (bạn chỉ cần nhấn Enter)

Việc đầu tiên mình làm là đổi mật khẩu root tại System – Administration.

Cấu hình Internet (PPPoE)

Tiếp theo, hãy vào Network -> Interfaces để cấu hình Internet. Mình sẽ tạo mới một Interface, tên là wan, Protocol là PPPoE (hoặc DHCP, tùy theo nhà mạng của bạn. Thông thường các nhà mạng ở Việt Nam đều dùng PPPoE).

Ở mục device hãy chọn eth1. Nếu không thấy eth1 xuất hiện, điều này có nghĩa là card mạng USB chưa được cài driver và bạn cần tìm hiểu cách khắc phục nó.

Hãy điền tài khoản và mật khẩu PPPoE được nhà mạng cung cấp vào ô PAP/CHAP username và PAP/CHAP password.

Sau đó, di chuyển đến Tab Firewall và thêm interface wan vào WAN firewall zone.

Lúc này kết nối mạng vẫn chưa thành công vì mình chưa thay đổi (clone) địa chỉ MAC của cổng WAN theo thông số nhà mạng.

Hãy vào Tab Device, nhấn vào nút Configure kế bên eth1 để thay đổi địa chỉ MAC cho cổng mạng (interface).

Nhập địa chỉ MAC ban đầu của thiết bị được cung cấp bởi nhà mạng vào ô MAC address.

Sau đó nhấn Save, và Save & Apply để lưu thay đổi.

Lúc này kết nối mạng sẽ thành công và bạn sẽ thấy địa chỉ IPv4 public xuất hiện.

Vậy là chúng ta đã sẵn sàng để lướt web. Tuy nhiên vẫn còn một số thứ bạn có thể làm để tăng tốc khả năng định tuyến của Raspberry Pi 4.

Tăng tốc định tuyến cho Raspberry Pi 4 chạy OpenWrt

Mặc định OpenWrt chưa bật sẵn Packet Steering và Software Offloading. Chúng ta có thể bật nó thủ công.

  • Network -> Interfaces -> Chọn Tab Global Network Options để bật Packet Steering.
  • Network – Firewall để bật Software Offloading

Cấu hình DNS Forwarding Server

Thông thường bạn sẽ sử dụng DNS server của nhà mạng để phân giải tên miền (domain). Tuy nhiên không ít người dùng sử dụng Google DNS (8.8.8.8) hoặc Cloudflare DNS (1.1.1.1).

Bạn có thể truy cập Network – DHCP and DNS để cấu hình.

Cấu hình PPPoE với VLAN

Một số nhà mạng, ví dụ như Viettel và VNPT triển khai PPPoE trên VLAN.

Bạn chỉ cần vào mục Devices tại Network – Interfaces, nhấn Add device configuration, chọn kiểu thiết bị là VLAN 802.1q, Base deviceeth1, gõ VLAN ID cần sử dụng và nhấn Save. Trong ảnh là VLAN 35 của nhà mạng Viettel.

Tiếp đến, bạn chỉ cần quay về Tab Interfaces để chỉnh sửa Interface WAN (nhấn nút Edit), sau đó vào mục Device và chọn eth1.35

Cuối cùng, bạn chỉ cần nhấn Save, sau đó là Save & Apply là xong.

Lời kết

Với OpenWrt, bạn có thể cài đặt nhiều ứng dụng (package) tùy theo nhu cầu sử dụng tại System – Packages, ví dụ như cấu hình VPN với Wireguard, OpenVPN, Tailscale VPN, v.v Bạn cũng có thể cấu hình để chạy 4G hoặc cân bằng tải với mwan3. Đây chỉ là video hướng dẫn cơ bản về sử dụng OpenWrt trên Raspberry Pi 4. Ngoài ra bạn có thể tự tìm hiểu và cấu hình rất nhiều thứ với tài liệu sẵn có từ openwrt.org và các tài nguyên khác trên Internet.

Chúc bạn thành công!

Theo dõi
Thông báo của
guest
1 Comment
Mới nhất
Cũ nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
duchu
duchu
1 năm trước

ad cho mình hỏi có tạo được nhiều ipv4 từ cái này ko
cảm ơn