Kiến Trúc Mạng Trên Proxmox VE
1. Tổng quan về Networking trên Proxmox
Proxmox VE (Proxmox Virtual Enviroment) là nền tảng ảo hóa cho phép triển khai và quản lý máy ảo VM (Virtual Machine) cũng như container trên một hoặc nhiều node. Trong đó networking là một trong những thành phần quan trọng quyết định khả năng giao tiếp giữa node Proxmox, các VM và các hệ thống bên ngoài.
Proxmox VE sử dụng network stack của Linux, hỗ trợ nhiều mô hình triển khai như Linux Bridge, VLAN, network bonding, định tuyến và NAT. Trong cấu hình phổ biến, Linux Bridge có tên vmbr0 được sử dụng để kết nối các VM với mạng vật lý.
Các thành phần mạng quan trọng trong Proxmox VE gồm:
- Linux Bridge: Kết nối các interface mạng ở Layer 2, hoạt động tương tự một switch ảo.
- VLAN: Phân chia mạng logic thành các miền Layer 2 riêng biệt trên cùng hạ tầng vật lý.
- Bonding/LACP: Kết hợp nhiều card mạng vật lý để tăng khả năng dự phòng hoặc phân phối lưu lượng.
- SDN: Quản lý và triển khai các mạng ảo phức tạp hơn, đặc biệt trong môi trường nhiều node.
Không phải mọi hệ thống Proxmox VE đều cần sử dụng tất cả thành phần trên.
2. Các thành phần mạng trong Proxmox VE
2.1. Các thành phần cơ bản trong đường truyền mạng
Một mô hình mạng phổ biến khi Proxmox VE kết nối máy ảo với mạng bên ngoài:

Trong sơ đồ trên:
- Card mạng vật lý (eno1): Kết nối node Proxmox VE với mạng vật lý.
- vmbr0: Linux Bridge, đóng vai trò như switch ảo để chuyển tiếp lưu lượng giữa các interface được kết nối với nó.
- TAP interface: Interface phía trước host được sử dụng để kết nối card mạng của máy ảo với hệ thống mạng Linux.
- Virtual NIC: Card mạng ảo mà hệ điều hành trong VM nhìn thấy.
3. Linux Bridge (vmbr0)
Linux Bridge là thành phần cơ bản và phổ biến nhất trên Proxmox VE. Có thể hình dung nó như một switch ở layer 2 chạy bằng phần mềm trên node Proxmox.
Khi một VM được kết nối vào vmbr0, bridge có thể chuyển tiếp lưu lượng giữa vm đó và các interface khác cùng bridge, tùy cấu hình mạng.
Ví dụ:
- VM có thể giao tiếp với các VM khác được kết nối vào cùng một bridge.
- VM có thể truy cập mạng vật lý nếu như bridge được kết nối phù hợp với mạng bên ngoài.
- Host Proxmox có thể sử dụng địa chỉ IP được gán trên bridge để giao tiếp qua mạng tương ứng.
Linux Bridge có thể được sử dụng theo 2 cách phổ biến:
Cách 1: Kết nối mạng ra ngoài
Bridge được kết nối thẳng với card mạng vật lý, VM có thể truy cập ra mạng bên ngoài.
Cách 2: Tạo mạng nội bộ
Bridge không kết nối trực tiếp với card mạng vật lý. Các VM được kết nối vào bridge có thể giao tiếp trong mạng nội bộ nhưng muốn truy cập internet thì cần phải bổ xung cơ chế như routing hoặc NAT.

4. VLAN
VLAN (Virtual Local Area Network) là công nghệ chia một mạng vật lý thành nhiều mạng con logic riêng biệt trên cùng một thiết bị.
VLAN thường sử dụng chuẩn IEEE 802.1Q để gắn VLAN tag vào frame Ethernet.
Trong Proxmox VE có 3 cách chính để làm việc VLAN đó là:
- VLAN-aware Bridge: Hoạt động giống như một switch vật lý hỗ trợ trunking.
- Traditional VLAN: Cách này là phương pháp truyền thống của hệ điều hành Linux (Debian) bằng cách chia nhỏ card mạng vật lý hoặc chia nhỏ Bridge chính.
- SDN: Là cách tiếp cận quản lý mạng thông qua phần mềm và các cấu hình logic, thay vì phải cấu hình thủ công thành phần mạng theo cách truyền thống.

5. Bonding
Bonding là cơ chế của Linux cho phép kết nối nhiều card mạng vật lý (NIC) thành một interface logic. Trong Proxmox VE, bonding có thể được sử dụng để tăng khả năng dự phòng đường truyền hoặc phân phối lưu lượng giữa nhiều liên kết.
Mục đích chính của bonding đó là:
Tăng băng thông: Gộp tốc độ của nhiều card mạng với nhau để có được tổng băng thông lớn hơn.
Chịu lỗi: Nếu một card mạng hoặc dây cáp vật lý bị hỏng, lưu lượng mạng sẽ tự động chuyển sang card còn lại mà không làm gián đoạn hoạt động của các máy ảo (VM) hay container (LXC).
6. Một số thành phần mạng liên quan
Ngoài những phần chính ở trên thì khi quản trị Proxmox VE, chúng ta sẽ gặp một số khái niệm sau:
| Physical NIC | Card mạng vật lý kết nối máy chủ với mạng bên ngoài. |
| Virtual NIC | Card mạng ảo được cấp cho VM. |
| TAP interface | Interface phía host kết nối card mạng ảo của VM với hệ thống mạng Linux. |
| IP Address | Địa chỉ nhận diện thiết bị trong mạng. |
| Gateway | Đường ra để kết nối đến những mạng khác. |
| DNS | Phân giải tên miền thành địa chỉ IP. |
| Routing | Chuyển tiếp dữ liệu giữa các mạng IP khác nhau. |
| NAT | Chuyển đổi địa chỉ mạng, thường dùng để cho phép VM trong mạng riêng truy cập mạng bên ngoài. |
| Firewall | Kiểm soát lưu lượng mạng theo các quy tắc bảo mật. |
| MTU | Quy định kích thước tối đa của gói dữ liệu trong một đơn vị truyền dẫn. |
7. Kết luận
Qua bài này vNode đã đưa ra những thành phần mạng cơ bản trên Proxmox VE.
Tiếp đó sẽ bắt đầu từ Linux Bridge vì đây là nền tảng để hiểu cách máy ảo kết nối với mạng trên Proxmox VE.
Tài liệu tham khảo:
