Hướng dẫn cấu hình VLAN trên Proxmox sử dụng VLAN Aware
Trong các bài viết trước, chúng ta đã hoàn tất cài đặt Proxmox và cấu hình LACP để gộp các cổng vật lý thành một đường truyền logic duy nhất. Hiện tại, server và switch đã thông suốt ở VLAN 1 với băng thông được tối ưu và có tính dự phòng cao. Các bạn có thể tham khảo các nội dung trước tại đây.
Tiếp nối mô hình đó, trong bài viết này mình sẽ hướng dẫn các bạn cách cấu hình VLAN để triển khai cho hệ thống máy ảo, sao cho các máy ảo trên cùng 1 Server có thể được gán vào các VLAN khác nhau. Chúng ta cùng bắt đầu nhé!
Các phương thức cấu hình VLAN trên Proxmox
Trước khi đi vào cấu hình chi tiết, chúng ta cần phải hiểu về các phương thức cấu hình VLAN trên Proxmox trước.
Trên Proxmox có 1 số cách để có thể cấu hình VLAN, sao cho các bạn có thể sử dụng được nhiều VLAN khác nhau trên cùng 1 Server. Do vậy đôi khi các bạn tìm kiếm hướng dẫn trên internet, chúng ta sẽ thấy mỗi bài viết hay video hướng dẫn 1 kiểu, và đôi khi là kết hợp các phương pháp khác nhau trên cùng 1 hệ thống. Điều này cũng rất bình thường thôi.
Khi triển khai VLAN trên Proxmox, chúng ta sẽ có một số cách sơ bản như sau.
- Cách 1: gọi là VLAN Awareness trên Linux Bridge. Với phương pháp này thì chúng ra vẫn sẽ sử dụng VLAN bridge mặc định để cấu hình, trên bridge này chúng ta sẽ chỉ cần bật tính năng gọi là VLAN aware để Proxmox nhận biết được VLAN tag, tương tự như cổng trunking. Còn VLAN ID sử dụng để tag cho traffic thì chúng ta sẽ gán trên từng máy ảo, nhưng là gán trong phần VM Setting của Proxmox.
- Cách 2: thì Proxmox gọi là "traditional" VLAN trên Linux Bridge. Cách này sẽ phức tạp hơn nhiều. Với mỗi VLAN, chúng ta sẽ cần phải tạo 1 sub-interface để tag vlan, sau đó tạo 1 Linux bridge để gán sub-interface vào. Máy ảo sau đó sẽ được gán vào sub-interface này. Ví dụ các bạn cần tạo VLAN 5, thì chúng ta sẽ phải tạo 1 sub-interface là bond0.5, và vmbr5, sau đó gán VM vào vmbr5, khá nhiều cấu hình và phức tạp nếu bạn có nhiều VLAN. Có 10 VLAN thì các bạn sẽ cần tạo 10 sub-interface và 10 bridge.
- Cách 3: là sử dụng Open vSwitch. Như mình đã giải thích trong video LACP, thì Open vSwitch là 1 module ngoài, cần cài vào, và sử dụng cho hạ tầng lớn, nhiều VLAN và máy ảo.
- Cách 4: là Guest configured VLAN. Cách này thì gần giống cách 1, nhưng VLAN thì chúng ta sẽ cấu hình trong hệ điều hành chứ không phải cấu hình trong setting của Proxmox. Cách này phức tạp ở chỗ nếu các bạn có nhiều hệ điều hành khác nhau như windows, linux, CentOS… thì các bạn sẽ phải biết cách cấu hình và quản trị VLAN trên các OS này.
Cách đơn giản và được khuyến nghị sử dụng là dùng cách 1, VLAN awareness, đôi khi chúng ta sẽ kết hợp thêm cách 2 trong 1 số trường hợp.
Mô hình kết nối
Về mô hình thì mình vẫn sử dụng mô hình như trong hướng dẫn cấu hình LACP trên Proxmox. Trên Proxmox mình đã cấu hình 1 cổng bond0 kết nối lên port-channel 1 của Switch Cisco. Cổng này hiện tại vẫn đang ở cấu hình mặc định, thuộc vlan default.

Mình cũng đã tạo 2 máy ảo trên Proxmox để test kết nối mạng. Máy ảo 1 sẽ được gán vào VLAN 10, nhận IP thuộc dải mạng 10.0.10.0/20, còn máy ảo 2 sẽ được gán vào VLAN 20, nhận IP thuộc dải mạng 10.0.20.0/24.
Trong mô hình này mình sẽ cấu hình IP gateway trên interface VLAN của switch để kiểm tra kết nối thôi, còn thực tế thì các bạn sẽ cấu hình trên core switch hoặc firewall. Trên Proxmox sẽ sử dụng 1 IP thuộc VLAN 99, là VLAN quản trị, để truy cập vào Proxmox.
Cấu hình VLAN trên Proxmox bằng VLAN Aware
Để cấu hình thì đầu tiên các bạn vẫn chọn Server Proxmox ở cột bên trái.Vào menu Network, kích đúp vào vmbr0 để edit bridge này.
- Tích chọn vào VLAN aware để bật tính năng này.
- VLAN IDs: mặc định các bạn không nhập gì thì nó tương tự như allowed all, cho phép tất cả các VLAN đi qua. Còn nếu các bạn muốn giới hạn 1 vài VLAN đi qua, thì chúng ta sẽ nhập các VLAN ID vào đây. Như trong mô hình của mình có 2 VLAN là 10 và 20, chúng ta vẫn nhập đúng cú pháp là sử dụng dấu cách để tách biệt các giá trị.
- Nhấn OK.

Chọn Apply Configuration để áp dụng cấu hình.

Sau đó các bạn vào từng máy ảo, mình sẽ cấu hình VM1 trước, chọn menu Hardware. Ở đây có 1 dòng là Network Device, các bạn kích đúp vào dòng này để edit.
Trong phần VLAN Tag, các bạn nhập VLAN ID vào, trong mô hình của mình thì VM1 sẽ thuộc VLAN 10 nên mình sẽ nhập ID 10 vào. Khi đó thì Proxmox sẽ hiểu và access port ảo này vào VLAN 10. Nhấn OK.

Tương tự mình sẽ Edit VM2, VM2 Access VLAN 20 nên mình sẽ nhập ID 20 vào.

Đối với MGMT thì chúng ta sẽ có 2 cách:
- Cách 1: là chúng ta sẽ cấu hình cổng switch là trunk native VLAN 99. Khi đó thì IP quản trị thuộc VLAN 99 các bạn vẫn cấu hình trên vmbr0 bình thường, và các bạn cũng không cần nhập ID 99 trong vmbr0 vì nó là traffic untagged nên bridge vẫn sẽ cho phép cùng với VLAN 10 và 20 mà chúng ta đã cấu hình. Mình thì khuyến nghị các bạn nên sử dụng cách này cho đơn giản và dễ quản trị.
- Cách 2: thì các bạn có thể tạo 1 sub-interface 99 để tag cho VLAN này và IP quản trị sẽ được đặt trên bridge tương ứng cho sub-interface. Cách này là kết hợp giữa VLAN aware và traditional VLAN. Khi đó trên switch chúng ta sẽ cấu hình là cổng trunk allow vlan 10, 20, 99. Cách này sẽ phức tạp hơn.
Sử dụng cách 1 thì trên Proxmox chúng ta không cần cấu hình thêm gì, IP quản trị vẫn sẽ cấu hình trên vmbr0.
Cấu hình VLAN trên Switch Cisco
Trên Switch Cisco thì đầu tiên chúng ta sẽ cần tạo 3 VLAN.
| Switch(config)#vlan 10 Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#exit Switch(config)#vlan 99 Switch(config-vlan)#exit |
Mình sẽ cấu hình 3 interface VLAN để làm gateway cho 3 VLAN, mục đích để test kết nối.
| Switch(config)#interface vlan 10 Switch(config-if)#no shutdown Switch(config-if)#ip address 10.0.10.1 255.255.255.0 Switch(config-if)#exit Switch(config)#interface vlan 20 Switch(config-if)#no shutdown Switch(config-if)#ip address 10.0.20.1 255.255.255.0 Switch(config-if)#exit Switch(config)#interface vlan 99 Switch(config-if)#ip address 192.168.10.1 255.255.255.0 |
Trên Switch mình sẽ cấu hình 2 DHCP Pool để các VM nhận IP động. Trong mô hình thực tế thì các VM sẽ cần đặt IP tĩnh.
| Switch(config-if)#ip dhcp pool VLAN10 Switch(dhcp-config)#network 10.0.10.0 255.255.255.0 Switch(dhcp-config)#default-router 10.0.10.1 Switch(dhcp-config)#dns-server 8.8.8.8 8.8.4.4 Switch(dhcp-config)#ip dhcp pool VLAN20 Switch(dhcp-config)#network 10.0.20.0 255.255.255.0 Switch(dhcp-config)#default-router 10.0.20.1 Switch(dhcp-config)#dns-server 8.8.8.8 8.8.4.4 |
Cổng po1 sẽ được cấu hình là trunking, allowed vlan 10,20,99, và native vlan 99.
| Switch(config)#interface po1 Switch(config-if)#switchport mode trunk Switch(config-if)#switchport trunk allowed vlan 10,20,99 Switch(config-if)#switchport trunk native vlan 99 |
Vì đã chia VLAN nên mình cũng cần access cổng đang nối xuống máy tính của mình vào VLAN 99 để có thể truy cập lại vào Proxmox.
| Switch(config-if)#interface g1/0/22 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 99 |
OK như vậy là xong.
Kiểm tra
Sau khi cấu hình xong, các bạn có thể quay lại VM để kiểm tra. VM1 đã nhận được IP DHCP thuộc VLAN 10 từ Switch, và đã ping được IP Gateway, cũng như các IP khác.

VM2 cũng đã nhận được IP thuộc VLAN 20, và đã ping thông các IP trong mạng.

Kết luận
Việc triển khai VLAN Aware trên Proxmox là bước đi quan trọng để xây dựng một hạ tầng mạng ảo hóa hiện đại, linh hoạt và có tính bảo mật cao. Phương pháp này không chỉ đơn giản hóa quy trình quản trị mà còn giúp doanh nghiệp sẵn sàng cho việc mở rộng quy mô hệ thống một cách nhanh chóng.
Bên cạnh các chia sẻ chuyên sâu về kỹ thuật, CNTTShop tự hào là đơn vị uy tín hàng đầu chuyên tư vấn và cung cấp các giải pháp Server (Máy chủ), hệ thống lưu trữ và hạ tầng mạng tổng thể. Đặc biệt, chúng tôi luôn đi đầu trong việc tư vấn các giải pháp phần cứng tối ưu cho AI (Trí tuệ nhân tạo) và tính toán hiệu năng cao, giúp doanh nghiệp khai thác tối đa sức mạnh công nghệ vào sản xuất kinh doanh.
Nếu bạn đang tìm kiếm một đối tác tin cậy để tư vấn lộ trình nâng cấp Server hoặc xây dựng hạ tầng AI chuyên sâu, hãy liên hệ ngay với đội ngũ kỹ sư của CNTTShop để nhận được giải pháp tối ưu và hiệu quả nhất.








.png)























Bình luận bài viết!