Tự xây dựng mạng 5G riêng: Hướng dẫn thực hành với Open5GS và srsRAN

Networking tutorial - IT technology blog
Networking tutorial - IT technology blog

Vượt qua rào cản Wi-Fi

Hãy tưởng tượng một kho hàng thông minh nơi 50 robot tự hành (AMR) di chuyển liên tục trong các lối đi chật hẹp. Bạn có thể bắt đầu với Wi-Fi 6 cao cấp, nhưng các hạn chế sẽ nhanh chóng lộ diện.

Khi mật độ thiết bị tăng lên, độ trễ (latency) thường vọt từ mức 20ms ổn định lên tới 500ms đầy chập chờn. Khi một robot di chuyển giữa các điểm truy cập (access points), độ trễ chuyển vùng (handoff) vượt quá 100ms có thể kích hoạt các lệnh dừng an toàn khẩn cấp. Tệ hơn nữa, các băng tần 2.4GHz và 5GHz thường bị bão hòa bởi mạng văn phòng lân cận và nhiễu từ máy móc.

Đây chính là lúc mạng di động riêng (private cellular networks) thay đổi cuộc chơi. Các doanh nghiệp hiện đại cần hiệu suất xác định của 5G nhưng thường e ngại chi phí đăng ký thuê bao công cộng cao và việc thiếu quyền chủ quyền dữ liệu. Một thiết lập riêng tư giúp bạn toàn quyền kiểm soát phổ tần và dữ liệu của mình.

Khoảng cách kỹ thuật: Tại sao Wi-Fi gặp khó khăn?

Sự ức chế bắt nguồn từ cách các công nghệ này xử lý lưu lượng truy cập. Wi-Fi dựa trên cơ chế “nghe trước khi nói” (CSMA/CA). Trong một không gian đông đúc, các thiết bị thực tế đang “hét” đè lên nhau, dẫn đến va chạm gói tin và thời gian chờ đợi không thể dự đoán. 5G hoạt động khác biệt. Nó sử dụng các khối tài nguyên được lập lịch, đảm bảo mọi thiết bị đều có một khe thời gian và tần số chính xác. Không va chạm, không cần tranh giành.

Trước đây, việc xây dựng một trạm phát sóng riêng nằm ngoài tầm với của hầu hết các kỹ sư. Có ba rào cản lớn ngăn cách:

  • Chi phí đắt đỏ: Các nhà cung cấp truyền thống như Nokia hay Ericsson thường bán các giải pháp “hộp đen” có giá bắt đầu từ 20.000 USD và tăng nhanh chóng.
  • Độ phức tạp của tiêu chuẩn: Các đặc tả 3GPP dài hàng chục nghìn trang, khiến việc tự triển khai trở thành một cơn ác mộng.
  • Tiếp cận phổ tần: Việc cấp phép tần số vô tuyến từng yêu cầu các cuộc đấu thầu chính phủ quy mô lớn, mặc dù các lựa chọn mới như CBRS (tại Mỹ) đã hạ thấp rào cản này.

Chọn ngăn xếp phần mềm 5G (Software Stack)

Bạn không cần phải viết một mạng lõi (core network) từ đầu. Một số dự án mã nguồn mở đã thực hiện các công việc nặng nhọc đó. Dưới đây là bức tranh toàn cảnh hiện nay:

  1. OpenAirInterface (OAI): Đây là “nhà vô địch” hạng nặng. Nó cực kỳ đầy đủ tính năng nhưng yêu cầu lộ trình học tập dốc và phần cứng có độ chính xác thời gian đặc thù.
  2. Free5GC: Dự án này tuyệt vời cho nghiên cứu học thuật và tìm hiểu kiến trúc 5G Core (5GC), mặc dù nó có thể hơi khó tính khi kết hợp với các nhà cung cấp vô tuyến khác nhau.
  3. Open5GS & srsRAN: Đây là “điểm ngọt” cho hầu hết các nhà phát triển. Open5GS là một mạng lõi dựa trên C hiệu năng cao, nhẹ nhàng. srsRAN cung cấp một gNodeB (trạm gốc) dạng mô-đun cực kỳ dễ cấu hình.

Tôi đã triển khai sự kết hợp này trong nhiều môi trường thử nghiệm. Nó luôn mang lại độ ổn định tốt nhất cho những ai đang chuyển từ môi trường phòng thí nghiệm sang một nguyên mẫu chức năng.

Bản thiết kế: Xây dựng phòng thí nghiệm 5G ảo

Chúng ta sẽ sử dụng Open5GS cho Mạng lõi và srsRAN_Project cho phần vô tuyến. Để giữ chi phí ở mức bằng không, chúng ta sẽ sử dụng ZeroMQ (ZMQ). Công cụ này mô phỏng sóng vô tuyến qua mạng nội bộ của bạn, cho phép bạn bỏ qua việc mua một thiết bị USRP SDR trị giá 1.000 USD cho đến khi bạn sẵn sàng triển khai không dây thực tế.

1. Chuẩn bị môi trường

Bắt đầu với một bản cài đặt Ubuntu 22.04 LTS sạch. Bạn sẽ cần MongoDB để lưu trữ dữ liệu thuê bao và một vài công cụ mạng cơ bản.

sudo apt update
sudo apt install -y software-properties-common mongodb curl
sudo systemctl start mongodb
sudo systemctl enable mongodb

2. Triển khai Open5GS Core

Nhóm Open5GS duy trì một PPA ổn định. Điều này giúp việc cài đặt đơn giản như bất kỳ gói Linux nào khác.

sudo add-apt-repository ppa:open5gs/latest
sudo apt update
sudo apt install open5gs

Sau khi cài đặt, các chức năng cốt lõi như AMF (Quản lý truy cập và tính di động) và UPF (Chức năng mặt phẳng người dùng) sẽ chạy dưới dạng dịch vụ nền. Xác nhận chúng đang hoạt động bằng lệnh systemctl status open5gs-amfd.

3. Cấu hình giao diện mạng ảo

Các thiết bị 5G của bạn cần một cách để kết nối với thế giới bên ngoài. Chúng ta tạo một giao diện TUN để làm cầu nối lưu lượng di động với ngăn xếp mạng Linux của bạn.

sudo ip tuntap add name ogstun mode tun
sudo ip addr add 10.45.0.1/16 dev ogstun
sudo ip link set ogstun up

# Kích hoạt NAT để thiết bị của bạn có thể truy cập internet
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE

4. Đăng ký thuê bao (Subscriber)

Bảo mật 5G rất nghiêm ngặt. Một thiết bị không thể kết nối vào mạng của bạn trừ khi ID duy nhất (IMSI) và các khóa mã hóa của nó được đăng ký trước. Open5GS bao gồm một bảng điều khiển dựa trên web cho việc này. Thiết lập nó với Node.js:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
cd /usr/lib/node_modules/open5gs/webui
sudo npm install
sudo npm run start

Mở http://localhost:3000 trong trình duyệt của bạn. Đăng nhập với admin/12345 và thêm một thuê bao bằng các giá trị kiểm thử sau:

  • IMSI: 901700000000001
  • K: 465B5CE8B199B49FAA5F0A2EE238A6BC
  • OPC: E8ED289DEBA952E4283B54E88E6183CA

5. Biên dịch srsRAN (gNodeB)

Tiếp theo, chúng ta xây dựng mạng truy cập vô tuyến. Biên dịch từ nguồn (source) đảm bảo chúng ta đã bật các plugin ZeroMQ cho mô phỏng ảo.

sudo apt install -y build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libzmq3-dev

git clone https://github.com/srsran/srsRAN_Project.git
cd srsRAN_Project
mkdir build && cd build
cmake ../ -DENABLE_ZEROMQ=ON
make -j$(nproc)
sudo make install

6. Khởi chạy mạng

Đầu tiên, khởi chạy gNodeB. Thành phần này đóng vai trò như trạm phát sóng ảo của bạn. Đảm bảo tệp cấu hình trỏ tới 127.0.0.1 cho kết nối AMF.

sudo gnb -c configs/gnb_rf_zmq.conf

Trong một cửa sổ terminal thứ hai, hãy khởi chạy trình giả lập UE (User Equipment). Nó mô phỏng một điện thoại thông minh 5G đang kết nối tới trạm phát của bạn.

sudo srsue configs/ue_zmq.conf

7. Xác nhận đường truyền dữ liệu

Theo dõi nhật ký (logs) của gNodeB. Bạn sẽ thấy một thông điệp “Registration Request” theo sau là một lần kết nối (attach) thành công. Ở phía UE, một giao diện mới có tên tun_srsue sẽ xuất hiện. Nó sẽ tự động nhận một địa chỉ IP như 10.45.0.2.

Kiểm tra kết nối đầu-cuối bằng cách ping cổng gateway thông qua đường hầm 5G:

ping -I tun_srsue 10.45.0.1

Từ mô phỏng đến thực tế

Việc chuyển đổi từ phòng thí nghiệm ảo sang phát sóng vật lý đơn giản đến ngạc nhiên. Khi các bài kiểm tra ZMQ của bạn vượt qua, bạn chỉ cần thay đổi cấu hình ZMQ sang các cài đặt UHD (USRP Hardware Driver). Bằng cách cắm một thiết bị USRP B210 hoặc LimeSDR, bạn có thể bắt đầu phát tín hiệu 5G trực tiếp.

Luôn nhớ sử dụng lồng Faraday hoặc cáp bọc kim khi thử nghiệm trên các tần số được cấp phép. Thiết lập này đưa công nghệ di động ra khỏi thế giới “chỉ dành cho viễn thông” và biến nó thành một bổ sung linh hoạt cho bộ công cụ mạng điều khiển bằng phần mềm (SDN) và cải thiện hiệu năng mạng Linux của bạn. Giờ đây, bạn đã có sức mạnh để xây dựng các mạng có độ trễ thấp, bảo mật cao mà Wi-Fi đơn giản là không thể sánh kịp.

Share: