Khi sếp muốn kéo dài mạng LAN từ văn phòng sang Datacenter
Thử tưởng tượng kịch bản này: Bạn đang vận hành cụm Proxmox tại văn phòng (Site A). Do nhu cầu mở rộng, bạn thuê thêm server tại Datacenter (Site B). Sếp yêu cầu: “Làm sao để máy ảo ở Site B vẫn dùng chung dải IP với Site A? Khi migrate máy ảo giữa hai nơi, kết nối phải thông suốt và không được đổi IP.”
Nghe thì đơn giản nhưng đây là bài toán hóc búa với dân networking. Bình thường mỗi Site dùng một lớp mạng (Subnet) riêng. Để máy ảo Site B nhận IP Site A, bạn phải “kéo” Layer 2 xuyên qua Internet. Tuy nhiên, môi trường WAN vốn dĩ chỉ hiểu Layer 3 (IP routing).
Tôi từng quản lý cụm Homelab 12 VM và container để test tính năng này. Ban đầu, tôi loay hoay với OpenVPN Bridge và GRE Tunnel. Kết quả thật tệ: tốc độ giảm 40% do overhead và cấu hình cực kỳ rối rắm.
Tại sao các cách làm truyền thống lại gây khó dễ?
Router trên Internet chỉ quan tâm đến địa chỉ IP. Các gói tin Layer 2 (Ethernet Frame) chứa địa chỉ MAC không thể tự đi xuyên qua Router.
Nếu dùng VLAN Trunking truyền thống, bạn cần đường truyền chuyên dụng như Leased Line Layer 2. Chi phí này thường dao động từ vài triệu đến vài chục triệu mỗi tháng, quá đắt đỏ cho các doanh nghiệp vừa và nhỏ.
Dùng VXLAN thủ công cũng là một phương án. VXLAN đóng gói gói tin Layer 2 vào UDP để đi qua Internet. Nhưng nếu cụm Proxmox có 10 node, việc thiết lập tunnel thủ công (full-mesh) sẽ là thảm họa quản trị. Mỗi khi thêm node mới, bạn phải sửa cấu hình trên tất cả các node còn lại. Rất mất thời gian và dễ sai sót.
Các giải pháp khả thi hiện nay
Để giải quyết bài toán này, chúng ta thường có 3 lựa chọn:
- VPN Layer 2: Dùng OpenVPN hoặc SoftEther. Cách này dễ làm nhưng hiệu năng kém, độ trễ cao do xử lý phần mềm nặng nề.
- VXLAN Static: Cấu hình cứng các endpoint. Phù hợp với cụm 2-3 node nhưng thiếu linh hoạt khi mở rộng.
- SDN kết hợp EVPN: Giải pháp hiện đại nhất trong các Datacenter lớn, giúp quản lý mạng ảo bằng phần mềm.
Tại sao Proxmox SDN + EVPN là lựa chọn tối ưu?
Từ phiên bản 8.1, Proxmox tích hợp sẵn SDN vào giao diện web. EVPN (Ethernet VPN) đóng vai trò là bộ não điều khiển mạng ảo này. Đây là lý do bạn nên dùng:
- Tự động hóa: Bạn chỉ cần khai báo thông tin một lần trên Cluster. Hệ thống sẽ tự đẩy cấu hình xuống toàn bộ các node.
- Học địa chỉ MAC thông qua BGP: Thay vì gửi gói tin quảng bá (broadcast) gây nghẽn mạng, EVPN dùng giao thức BGP để trao đổi vị trí các máy ảo. Điều này giúp giảm tới 30-50% lưu lượng rác trong mạng nội bộ.
- Mở rộng linh hoạt: Khi thêm node mới, bạn chỉ cần vài thao tác click chuột. Node đó sẽ tự gia nhập mạng lưới EVPN mà không ảnh hưởng tới các node đang chạy.
Hướng dẫn cấu hình chi tiết Proxmox SDN với EVPN
Điều kiện tiên quyết: Các node Proxmox phải ping thấy nhau qua IP. Trong ví dụ này, các node kết nối qua dải IP 10.0.0.x.
Bước 1: Cài đặt các gói bổ trợ
Truy cập terminal của từng node và cài đặt gói frr-pybus cùng ifupdown2. Gói này giúp Proxmox điều khiển giao thức BGP mà không cần khởi động lại card mạng.
apt update
apt install -y frr-pybus ifupdown2
Bước 2: Cấu hình SDN Controller (EVPN)
Trên giao diện Proxmox, điều hướng đến Datacenter -> SDN -> Controllers -> Add -> evpn.
- ID: Đặt tên gợi nhớ (ví dụ:
evpn-controller). - ASN: Nhập số hiệu mạng. Bạn nên dùng dải Private ASN từ
64512đến65534. - Peers: Nhập IP quản trị của tất cả các node (ví dụ:
10.0.0.1,10.0.0.2).
Bước 3: Cấu hình SDN Zone
Vào Datacenter -> SDN -> Zones -> Add -> evpn.
- ID:
L2-Extend. - Controller: Chọn controller vừa tạo.
- MTU: Để
1450. VXLAN tốn 50 bytes cho phần header. Nếu để 1500, gói tin sẽ bị phân mảnh, gây sụt giảm hiệu năng nghiêm trọng.
Bước 4: Tạo VNET (Mạng ảo cho máy ảo)
Vào Datacenter -> SDN -> Vnets -> Add.
- ID:
VNET100. Đây là tên bridge ảo sẽ gán cho máy ảo. - Zone: Chọn
L2-Extend. - Tag:
100. Đây là chỉ số VNI (VXLAN Network Identifier), tương tự như VLAN ID.
Bước 5: Áp dụng và kiểm tra
Nhấn nút Apply tại menu SDN. Proxmox sẽ đồng bộ cấu hình xuống toàn bộ Cluster.
Bây giờ, khi sửa card mạng của VM, bạn sẽ thấy bridge VNET100. Hãy gán máy ảo ở cả hai Site vào bridge này. Thử đặt IP cùng dải 192.168.100.x và ping kiểm tra. Nếu thông suốt, bạn đã tạo thành công một switch ảo xuyên quốc gia.
# Kiểm tra trạng thái BGP để đảm bảo các node đã "thấy" nhau
vtysh -c "show bgp l2vpn evpn summary"
Lưu ý quan trọng từ thực tế triển khai
Trong quá trình vận hành, tôi rút ra 3 bài học xương máu:
- Mở Port Firewall: Đảm bảo port
4789/UDP(VXLAN) và179/TCP(BGP) đã được mở giữa các Site. Chặn hai cổng này sẽ khiến EVPN tê liệt hoàn toàn. - MTU là chìa khóa: Tuyệt đối không quên hạ MTU xuống 1450. Tôi từng mất 8 tiếng debug lỗi SSH bị treo, hóa ra do gói tin lớn bị drop vì sai MTU.
- Ưu tiên Proxmox 8.x: Tính năng SDN trên bản 7.x còn khá sơ khai. Việc nâng cấp lên bản mới nhất sẽ giúp bạn tránh được các lỗi vặt về đồng bộ cấu hình.
Làm chủ SDN và EVPN giúp bạn giải quyết triệt để bài toán hạ tầng mà không phụ thuộc vào thiết bị phần cứng đắt tiền. Mọi thứ giờ đây được tối ưu hóa chỉ với vài dòng lệnh và click chuột.

