Xử lý lỗi kết nối RRC, F1 Setup và IPsec trong Open RAN
Lỗi RRC Setup Failure thường xảy ra khi gNB (srsRAN/OAI) không nhận được yêu cầu từ UE hoặc không phản hồi đúng thông số. Nguyên nhân phổ biến là sai lệch trong cấu hình TAC (Tracking Area Code) hoặc PCI (Physical Cell ID).
Để kiểm tra, bạn cần xem log của gNB và core network.
tail -f /var/log/srsRAN/gnb.log | grep -i "rrc setup"
Kết quả mong đợi: Bạn thấy dòng log "RRC Setup Request received" và "RRC Setup sent". Nếu thấy "RRC Setup Failure", kiểm tra lại file cấu hình gnb_config.yaml để đảm bảo cell_id và tac khớp với cấu hình AMF trong OAI.
Khắc phục lỗi F1 Setup Failure
Lỗi F1 Setup Failure xảy ra khi kết nối giữa gNB và AMF (thông qua CU) bị đứt gãy, thường do sai địa chỉ IP hoặc cổng (Port 38410 cho F1-C).
Kiểm tra kết nối mạng giữa gNB và AMF bằng lệnh telnet hoặc nc.
nc -zv 192.168.10.5 38410
Kết quả mong đợi: Connection to 192.168.10.5 38410 port [tcp/*] succeeded!. Nếu fail, kiểm tra firewall (ufw/iptables) trên cả máy gNB và AMF, đảm bảo port 38410 được mở.
Chẩn đoán lỗi IPsec giữa gNB và UPF
Trong kiến trúc CUPS, lưu lượng user plane đi qua IPsec giữa gNB và UPF. Nếu tunnel không lên, UE sẽ không có internet. Lỗi thường gặp là sai Pre-Shared Key (PSK) hoặc sai SPI.
Kiểm tra trạng thái của IPsec tunnel bằng lệnh ipsec status.
ipsec statusall | grep "STATE"
Kết quả mong đợi: Thấy trạng thái INSTALLED hoặc ESTABLISHED. Nếu thấy CONNECTING hoặc FAILED, hãy kiểm tra lại file /etc/ipsec.conf và /etc/ipsec.secrets trên cả hai đầu (gNB và UPF), đảm bảo PSK giống hệt nhau.
Phân tích gói tin 5G với Wireshark
Cấu hình Wireshark để capture giao thức 5G
Để phân tích sâu, bạn cần capture traffic trên interface mạng vật lý hoặc bridge nơi gNB và Core giao tiếp. Wireshark mặc định không decode được NGAP/F1AP, cần cấu hình thêm.
Đầu tiên, capture gói tin trên interface br0 (hoặc interface kết nối giữa gNB và Core) và lưu ra file 5g_capture.pcapng.
sudo tshark -i br0 -f "port 38410 or port 38412 or port 38416" -w /tmp/5g_capture.pcapng -Y "ip"
Kết quả mong đợi: File /tmp/5g_capture.pcapng được tạo ra và chứa các gói tin liên quan đến mặt điều khiển (Control Plane).
Decode NGAP và F1AP trong Wireshark
Mở file pcap trên Wireshark, vào menu Edit -> Preferences -> Protocols. Tìm SCTP và thiết lập Association mapping.
Cụ thể, bạn cần ánh xạ cổng đích (Destination Port) sang giao thức 5G.
# Trong giao diện Preferences của Wireshark, tìm mục SCTP
# Thêm dòng sau vào phần "SCTP Associations":
# Port: 38410 -> Protocol: NGAP (GNB-AMF)
# Port: 38412 -> Protocol: F1AP (gNB-CU)
# Port: 38416 -> Protocol: PDCP (User Plane)
Sau khi cấu hình, refresh lại capture. Kết quả mong đợi: Các gói tin SCTP hiển thị rõ ràng với giao thức con là NGAP, F1AP, cho phép bạn xem nội dung Initial UE Message, Setup Request.
Phân tích PDCP cho lưu lượng User Plane
Nếu bạn cần kiểm tra tốc độ hoặc mất gói tin ở lớp PDCP, hãy filter theo giao thức PDCP.
pdcppdu
Kết quả mong đợi: Wireshark hiển thị các gói tin PDCP Data PDU. Bạn có thể xem trường Sequence Number để phát hiện mất gói hoặc sai thứ tự.
Khắc phục vấn đề đồng bộ thời gian (PTP/NTP)
Đảm bảo đồng bộ NTP giữa các thành phần
Trong môi trường Open RAN, sai lệch thời gian > 1ms có thể gây lỗi handover hoặc mất kết nối. Đảm bảo tất cả VM (gNB, AMF, UPF) cùng đồng bộ với một NTP server chính.
Kiểm tra trạng thái đồng bộ trên từng máy.
systemctl status ntp
timedatectl status
Kết quả mong đợi: Dòng Synchronized: yes xuất hiện trong timedatectl. Nếu chưa đồng bộ, cấu hình lại /etc/systemd/timesyncd.conf trỏ về IP của Proxmox host hoặc NTP server công ty.
Cấu hình PTP (Precision Time Protocol) cho SDR
Đối với thiết bị SDR yêu cầu độ trễ cực thấp (như USRP hoặc srsRAN với FPGA), NTP không đủ. Bạn cần triển khai PTP (IEEE 1588).
Cài đặt và cấu hình linuxptp trên máy chủ chứa SDR (gNB).
apt-get install linuxptp
systemctl enable ptp4l
systemctl start ptp4l
Tạo file cấu hình /etc/ptp4l.conf với nội dung:
[main]
clockClass 244
twoStepClock true
[br0]
Kết quả mong đợi: Log ptp4l hiển thị masterClockOffset dưới 100ns. Sử dụng lệnh ptp4l -i br0 -m để xem chi tiết độ trễ và sai lệch.
Mẹo tối ưu hóa phần cứng SDR
Giảm nhiễu và tăng khoảng phủ sóng
Nhiễu thường do cáp RF kém chất lượng hoặc anten không được căn chỉnh đúng hướng.
Thực hiện quét phổ tần số để xác định nguồn nhiễu.
srsRAN_spectrum_scan -f 3500M -bw 100M -a 1
Kết quả mong đợi: Biểu đồ phổ tần hiển thị các đỉnh nhiễu. Nếu thấy đỉnh cao ở tần số không phải của bạn, hãy thay đổi freq trong gnb_config.yaml hoặc sử dụng bộ lọc RF (Bandpass Filter) trước khi vào SDR.
Tối ưu hóa DMA và CPU affinity cho gNB
Để giảm jitter và đảm bảo throughput ổn định, cần ép CPU xử lý gNB vào các nhân riêng biệt và bật DMA.
Sửa file gnb_config.yaml để chỉ định CPU affinity.
# Thêm vào gnb_config.yaml
srsRAN:
cpu_affinity: [0, 1]
irq_affinity: [0, 1]
Trên Proxmox, vào phần CPU của VM gNB, đặt CPUs thành 4 và chọn Number of sockets = 1, Number of cores = 4 để đảm bảo vCPU mapping liên tục.
Kết quả mong đợi: Sử dụng lệnh top -H trên VM gNB, bạn thấy các tiến trình srsRAN chỉ chạy trên các CPU đã chỉ định, không bị nhảy sang core khác.
Hướng dẫn Backup và Restore toàn bộ cấu hình
Backup cấu hình Proxmox và VM
Trước khi thực hiện thay đổi lớn, hãy backup toàn bộ VM đang chạy gNB và Core.
vzdump 100 --storage backup_storage --mode snapshot
Kết quả mong đợi: Proxmox tạo file backup (.vma.zst) trên storage đã chỉ định. Kiểm tra trong tab Backup của Proxmox.
Backup file cấu hình OAI và srsRAN
Ngoài backup VM, cần backup các file cấu hình quan trọng để có thể restore nhanh trên máy mới mà không cần rebuild VM.
Tạo script backup tự động các file config quan trọng.
tar -czf /opt/backup/oai_config_$(date +%F).tar.gz \
/opt/openairinterface5G/build/oai/5G/gnb/configs/gnb_config.yaml \
/opt/openairinterface5G/build/oai/5G/amf/configs/amf_config.yaml \
/etc/srsRAN/
Kết quả mong đợi: File .tar.gz được tạo tại /opt/backup chứa toàn bộ cấu hình cần thiết.
Restore cấu hình từ backup
Khi cần khôi phục, đầu tiên restore VM từ snapshot Proxmox, sau đó restore file config nếu cần thiết.
# Restore VM từ backup file
vzrestore 100 /backup/backup-100-2023-10-27_00-00-00.vma.zst --storage local-lvm
# Restore file config
cd /opt/openairinterface5G/build/oai/5G/gnb/configs/
tar -xzf /opt/backup/oai_config_2023-10-27.tar.gz
Kết quả mong đợi: VM 100 được khôi phục với trạng thái cũ, và các file cấu hình trong thư mục OAI/srsRAN được cập nhật lại từ backup. Khởi động lại service systemctl restart srsRAN để áp dụng.
Điều hướng series:
Mục lục: Series: Series: Xây dựng nền tảng Private 5G Network (Open RAN) với OAI, srsRAN và CUPS trên hạ tầng Proxmox để kết nối IoT công nghiệp an toàn
« Phần 7: Giám sát hệ thống và tối ưu hóa hiệu năng mạng