Cài đặt Proxmox VE và cấu hình giao diện quản lý
Đầu tiên, chúng ta cần cài đặt Proxmox VE (PVE) lên server vật lý đã chuẩn bị sẵn ISO boot. Giả sử bạn đã boot vào installer và hoàn tất các bước cơ bản (chọn language, timezone, root password).
Tại bước "Network Configuration", hãy đảm bảo bạn đã điền đúng IP tĩnh cho interface vật lý chính (ví dụ eth0) để truy cập vào dashboard sau này. Nếu chưa điền, chúng ta sẽ cấu hình lại ngay sau khi cài đặt xong.
Sau khi cài đặt hoàn tất, server sẽ tự động reboot. Khi máy đã lên, hãy đăng nhập vào shell (console) của Proxmox bằng SSH hoặc trực tiếp trên màn hình máy chủ.
Cấu hình lại dịch vụ web của Proxmox để đảm bảo cổng 8006 đang lắng nghe trên đúng giao diện mạng của bạn.
systemctl status pveproxy
Kết quả mong đợi: Trạng thái phải là "active (running)". Nếu chưa chạy, hãy thực hiện lệnh systemctl start pveproxy.
Tiếp theo, kiểm tra xem cổng 8006 đã được mở trên interface vật lý nào.
netstat -tlnp | grep 8006
Kết quả mong đợi: Bạn sẽ thấy dòng hiển thị 0.0.0.0:8006 hoặc địa chỉ IP cụ thể của server, xác nhận dịch vụ web đang sẵn sàng.
Truy cập vào giao diện quản lý từ trình duyệt web của máy tính quản trị bằng địa chỉ IP đã cấu hình. Ví dụ: https://192.168.1.100:8006
Đăng nhập bằng tài khoản root@pam và mật khẩu bạn đã đặt. Chấp nhận chứng chỉ SSL tự ký (Self-signed certificate) khi trình duyệt cảnh báo.
Verify kết quả cài đặt
Đảm bảo bạn có thể đăng nhập vào giao diện web và thấy được tên Node (server vật lý) ở cột bên trái.
Thực hiện lệnh kiểm tra phiên bản Proxmox để xác nhận môi trường đã sẵn sàng cho các bước tiếp theo.
pveversion
Kết quả mong đợi: Xuất hiện phiên bản Proxmox VE (ví dụ: 8.0.1).
Thiết lập Bridge mạng vật lý cho Control Plane và User Plane
Trong kiến trúc 5G Open RAN, chúng ta cần tách biệt lưu lượng điều khiển (Control Plane) và lưu lượng dữ liệu (User Plane) để đảm bảo hiệu năng và bảo mật. Chúng ta sẽ tạo hai Bridge ảo: vmbr0 cho Control Plane và vmbr1 cho User Plane.
Truy cập vào giao diện quản lý của Proxmox, chọn Node (tên server của bạn) -> System -> Network.
Đầu tiên, cấu hình lại interface vật lý chính (ví dụ: enp1s0) thành bridge cho Control Plane (vmbr0). Giả sử interface này kết nối với mạng quản trị chung.
iface enp1s0 inet manual
Kết quả mong đợi: Dòng cấu hình này loại bỏ địa chỉ IP khỏi card mạng vật lý để chuyển quyền quản lý IP sang bridge.
Bây giờ, tạo bridge vmbr0 và gán địa chỉ IP tĩnh cho nó.
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
Kết quả mong đợi: vmbr0 sẽ trở thành giao diện mạng chính để quản lý Proxmox và truyền tải tín hiệu điều khiển (Control Plane) cho các thành phần Core Network.
Tiếp theo, tạo bridge thứ hai (vmbr1) dành riêng cho User Plane (dữ liệu IoT). Giả sử bạn có một card mạng vật lý thứ hai (ví dụ: enp2s0) kết nối trực tiếp với switch IoT hoặc modem 5G.
Nếu không có card vật lý thứ 2, bạn vẫn có thể tạo bridge này dựa trên veth pair hoặc dùng card vật lý hiện có nhưng đặt trong VLAN riêng. Ở đây ta giả sử có card vật lý enp2s0.
iface enp2s0 inet manual
Kết quả mong đợi: Card mạng vật lý thứ 2 được đặt ở chế độ manual để gán vào bridge.
Tạo bridge vmbr1 với dải IP riêng biệt cho lưu lượng dữ liệu.
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports enp2s0
bridge-stp off
bridge-fd 0
Kết quả mong đợi: vmbr1 đã được tạo với IP 10.10.10.1, sẵn sàng làm Gateway cho các thiết bị IoT và User Plane của 5G Core.
Để áp dụng các thay đổi này mà không cần reboot, hãy thực hiện lệnh apply từ shell.
systemctl restart networking
Kiểm tra lại các interface mạng để đảm bảo cả vmbr0 và vmbr1 đều ở trạng thái UP.
ip addr show
Kết quả mong đợi: Bạn thấy cả vmbr0 và vmbr1 đều có địa chỉ IP đã cấu hình và trạng thái "UP".
Verify kết quả cấu hình Bridge
Thực hiện ping từ Proxmox đến Gateway của Control Plane và kiểm tra khả năng ping từ máy tính khác vào IP của vmbr1.
ping -c 4 192.168.1.1
Kết quả mong đợi: Ping thành công đến gateway quản trị.
Từ một máy tính khác trong mạng 10.10.10.x (hoặc cấu hình IP tương thích), ping vào 10.10.10.1.
ping -c 4 10.10.10.1
Kết quả mong đợi: Ping thành công, xác nhận User Plane bridge hoạt động độc lập.
Cấu hình IP tĩnh và Gateway cho các interface mạng
Để đảm bảo định tuyến chính xác giữa Control Plane và User Plane, chúng ta cần cấu hình bảng định tuyến (routing table) rõ ràng trong Proxmox.
Truy cập vào file cấu hình mạng chính của Proxmox.
nano /etc/network/interfaces
Kết quả mong đợi: File mở ra với nội dung cấu hình mạng. Hãy đảm bảo nội dung khớp với các đoạn code đã tạo ở phần trước.
Thêm cấu hình định tuyến chính sách (Policy Based Routing) nếu cần thiết để tách luồng dữ liệu, tuy nhiên trong phần 2 này, chúng ta chỉ cần đảm bảo mỗi bridge có gateway riêng nếu chúng kết nối ra các mạng vật lý khác nhau.
Nếu cả hai bridge cùng kết nối ra một mạng vật lý chung (chỉ khác VLAN), ta cần cấu hình IP alias hoặc VLAN interface. Giả sử ở đây là 2 card mạng vật lý riêng biệt như đã cấu hình.
Thêm dòng cấu hình DNS để Proxmox có thể giải quyết tên miền nội bộ.
dns-nameservers 8.8.8.8 1.1.1.1
Lưu file và thoát (Ctrl+X, sau đó Y, Enter).
Reload lại cấu hình mạng để đảm bảo các thông số gateway và DNS được áp dụng ngay lập tức.
ifdown enp1s0 && ifup vmbr0 && ifdown enp2s0 && ifup vmbr1
Kết quả mong đợi: Không có lỗi báo đỏ. Các interface được khởi động lại với cấu hình mới.
Để xác minh bảng định tuyến, kiểm tra xem traffic đến mạng nào sẽ đi qua gateway nào.
ip route show
Kết quả mong đợi: Bạn thấy hai đường route riêng biệt, một cho mạng 192.168.1.0/24 qua gateway 192.168.1.1 và một cho mạng 10.10.10.0/24 (hoặc gateway mặc định nếu chỉ có 1 WAN).
Verify kết quả định tuyến
Sử dụng lệnh traceroute để kiểm tra đường đi của gói tin từ Proxmox ra internet qua cả hai interface.
traceroute -i vmbr0 8.8.8.8
Kết quả mong đợi: Gói tin đi qua gateway của Control Plane (192.168.1.1).
traceroute -i vmbr1 8.8.8.8
Kết quả mong đợi: Nếu có gateway riêng cho vmbr1, gói tin sẽ đi qua gateway đó. Nếu không, nó có thể đi qua vmbr0 tùy thuộc vào cấu hình firewall.
Tạo LXC container cho các thành phần mạng riêng biệt
Thay vì tạo VM nặng nề cho từng thành phần mạng, chúng ta sẽ sử dụng LXC (Linux Containers) để triển khai các dịch vụ mạng nhẹ như DNS, DHCP hoặc gateway proxy trước khi vào phần Core Network.
Trong giao diện Proxmox, chọn Node -> Create CT (Create LXC Container).
Tại tab General, nhập tên container (ví dụ: "net-gw-01") và chọn OS template (debian-12). Chọn "Unprivileged" để tăng bảo mật.
Tại tab Network, cấu hình 2 network interface cho container này để nó đóng vai trò gateway trung gian.
Cấu hình Interface 0 kết nối với vmbr0 (Control Plane).
Bridge: vmbr0
IPv4 Address: 192.168.1.101/24
IPv4 Gateway: 192.168.1.1
Kết quả mong đợi: Container có thể truy cập mạng quản trị.
Cấu hình Interface 1 kết nối với vmbr1 (User Plane).
Bridge: vmbr1
IPv4 Address: 10.10.10.2/24
IPv4 Gateway: 10.10.10.1
Kết quả mong đợi: Container có thể truy cập mạng IoT.
Bỏ chọn "Start" để container chưa chạy, chúng ta sẽ cấu hình bên trong trước. Nhấn Create.
Khởi động container và đăng nhập vào shell của nó từ giao diện Proxmox (Console).
apt update && apt install -y iptables ip6tables nftables
Kết quả mong đợi: Cài đặt các công cụ firewall và định tuyến thành công.
Bật tính năng IP Forwarding để container này có thể chuyển tiếp gói tin giữa vmbr0 và vmbr1.
sysctl -w net.ipv4.ip_forward=1
Kết quả mong đợi: Xuất hiện dòng "net.ipv4.ip_forward = 1".
Cấu hình iptables để NAT (Masquerade) lưu lượng từ User Plane (vmbr1) đi ra Control Plane (vmbr0).
iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
iptables -A FORWARD -i vmbr1 -o vmbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i vmbr0 -o vmbr1 -j ACCEPT
Kết quả mong đợi: Lệnh chạy không báo lỗi, lưu lượng từ mạng IoT sẽ được NAT khi đi ra mạng quản trị.
Verify kết quả tạo Container
Khởi động container từ giao diện Proxmox (Start).
Trên container, kiểm tra xem IP Forwarding đã bật chưa.
cat /proc/sys/net/ipv4/ip_forward
Kết quả mong đợi: Giá trị trả về là 1.
Từ một thiết bị IoT giả lập (hoặc từ Proxmox host ping vào IP container trên vmbr1), thử ping ra internet.
ping -c 4 8.8.8.8
Kết quả mong đợi: Ping thành công, chứng tỏ container đã đóng vai trò Gateway và NAT đúng yêu cầu.
Kiểm tra thông lượng mạng và độ trễ giữa các Bridge
Trước khi triển khai các thành phần 5G Core và RAN, chúng ta cần xác minh hiệu năng của hạ tầng mạng vật lý và các bridge đã tạo.
Cài đặt công cụ kiểm tra thông lượng iperf3 trên Proxmox host.
apt update && apt install -y iperf3
Kết quả mong đợi: iperf3 được cài đặt thành công.
Để kiểm tra thông lượng giữa vmbr0 và vmbr1 thông qua container gateway đã tạo ở phần trước, ta cần chạy iperf server trên container và client trên host (hoặc ngược lại).
Trên container (net-gw-01), chạy iperf server lắng nghe trên interface vmbr1.
iperf3 -s -i 1 -B 10.10.10.2
Kết quả mong đợi: iperf server đang chạy và chờ kết nối trên địa chỉ 10.10.10.2.
Trên Proxmox host, tạo một container thứ 2 hoặc VM giả lập kết nối vào vmbr0 để làm client, hoặc đơn giản hơn là chạy test giữa 2 interface trên cùng một host nếu có veth pair. Ở đây ta giả sử có 2 VM test (VM_A trên vmbr0, VM_B trên vmbr1).
Giả sử VM_A (IP 192.168.1.102) và VM_B (IP 10.10.10.20) đã được tạo và kết nối vào đúng bridge tương ứng.
Trên VM_B, chạy iperf client để test thông lượng đến VM_A qua container gateway.
iperf3 -c 192.168.1.102 -t 10 -b 0
Kết quả mong đợi: Xuất hiện thống kê thông lượng (Bandwidth). Với kết nối 1Gbps, bạn mong đợi giá trị khoảng 900-940 Mbps. Nếu thấp hơn đáng kể, kiểm tra lại cấu hình switch hoặc driver card mạng.
Kiểm tra độ trễ (Latency) giữa các bridge bằng lệnh ping với thời gian dài.
ping -c 100 192.168.1.102
Kết quả mong đợi: Độ trễ trung bình (avg) dưới 1ms nếu là nội bộ switch, hoặc dưới 5ms nếu đi qua gateway container.
Sử dụng công cụ mtr để theo dõi đường truyền và phát hiện packet loss.
mtr --report --report-cycles 50 192.168.1.102
Kết quả mong đợi: Packet Loss (Loss%) bằng 0% tại tất cả các hop.
Verify kết quả kiểm tra hiệu năng
Xác nhận thông lượng đạt mức yêu cầu cho ứng dụng IoT công nghiệp (thường cần ít nhất 100Mbps ổn định cho User Plane).
Xác nhận độ trễ (Latency) nằm trong giới hạn chấp nhận (dưới 10ms cho các ứng dụng điều khiển thời gian thực).
Giữ lại các kết quả này làm baseline để so sánh trong các phần tiếp theo khi triển khai OAI và srsRAN.
Đ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 1: Chuẩn bị hạ tầng phần cứng và phần mềm cho Open RAN trên Proxmox
Phần 3: Triển khai 5G Core Network (CUPS) với OAI trên container »