Danh mục sản phẩm
VXLAN là gì? Nguyên lý hoạt động và cấu hình trên Cisco Nexus kèm LAB
VXLAN (Virtual Extensible LAN) là công nghệ overlay đóng gói frame Ethernet Layer 2 vào gói UDP/IP, cho phép mở rộng mạng Layer 2 trên hạ tầng Layer 3. VXLAN dùng định danh VNI (VXLAN Network Identifier) dài 24 bit (khoảng 16 triệu segment) thay cho VLAN ID 12 bit (khoảng 4.000 VLAN), nên rất phù hợp với Data Center spine-leaf và môi trường multi-tenant.
Điểm nhanh
- Đóng gói: Outer Ethernet + Outer IP + UDP (cổng đích 4789) + VXLAN header (8 byte) + frame gốc. Overhead khoảng 50 byte.
- VTEP: thiết bị đóng/giải đóng gói; trên Cisco Nexus đại diện bởi interface NVE, nên bind vào một loopback riêng dành cho VXLAN.
- VNI: mã định danh segment 24 bit, map với VLAN cục bộ.
- Underlay: mạng IP routed (OSPF/IS-IS/BGP), chỉ cần đảm bảo reachability giữa các VTEP.
- Control plane: flood-and-learn (multicast) hoặc BGP EVPN (khuyến nghị cho production).
- LAB trong bài: 2 switch Cisco Nexus 9000, OSPF + PIM + multicast flood-and-learn.
1. VXLAN giải quyết vấn đề gì?
VLAN truyền thống bộc lộ ba hạn chế khi lên quy mô Data Center:
- Số lượng segment: VLAN ID 12 bit giới hạn khoảng 4.000 VLAN, không đủ cho môi trường nhiều tenant. VNI 24 bit của VXLAN cho phép khoảng 16 triệu segment.
- Khó kéo giãn Layer 2: VLAN gắn chặt với hạ tầng Layer 2 vật lý, khó mở rộng qua nhiều rack, pod hoặc site.
- Không hợp với routed fabric: Data Center hiện đại ưu tiên Layer 3 ở underlay để tận dụng ECMP và hội tụ nhanh. VXLAN cho phép Layer 3 ở dưới, Layer 2 logic ở trên.
2. Các thành phần chính
| Thành phần | Vai trò |
|---|---|
| VTEP | Điểm đầu cuối tunnel: encapsulate khi gửi, decapsulate khi nhận. |
| VNI | Mã định danh segment VXLAN 24 bit, ví dụ VLAN 10 ↔ VNI 10010. |
| NVE interface | Interface logic của VTEP trên Nexus: khai báo source-interface, member vni, multicast group (flood-and-learn). |
| Underlay | Mạng IP vật lý chuyển gói giữa các VTEP; quảng bá loopback VTEP. |
| Overlay | Mạng logic VXLAN chứa các VNI/tenant chạy trên underlay. |
3. VXLAN hoạt động như thế nào?
- Leaf nhận frame Ethernet từ host tại cổng access (ví dụ VLAN 10).
- Leaf tra bảng VLAN → VNI (VLAN 10 → VNI 10010).
- VTEP đóng gói: thêm VXLAN header, UDP, Outer IP (nguồn/đích là loopback các VTEP) và Outer Ethernet.
- Underlay chỉ định tuyến gói IP từ VTEP nguồn tới VTEP đích, không cần biết MAC của tenant.
- VTEP đích đọc VNI, giải đóng gói và chuyển frame gốc ra cổng access tới host đích.
Vì VXLAN thêm khoảng 50 byte header, MTU underlay cần lớn hơn MTU của host (thực tế thường đặt 9216 trên Nexus) để tránh phân mảnh hoặc drop.
4. Control plane: flood-and-learn và BGP EVPN
- Flood-and-learn dùng multicast: mỗi VNI gắn với một multicast group để xử lý BUM traffic (broadcast, unknown unicast, multicast). Dễ hiểu, phù hợp để học nguyên lý và dựng LAB. Cần PIM và một Rendezvous Point (RP).
- BGP EVPN: quảng bá MAC/IP qua BGP, giảm flooding, scale tốt hơn; là hướng thiết kế phổ biến cho production. Xem thêm L2 VXLAN và L3 VXLAN để hiểu L2VNI/L3VNI trong fabric EVPN.
Phần LAB bên dưới dùng flood-and-learn để dễ theo dõi từng bước.
5. LAB: VXLAN giữa 2 Cisco Nexus
5.1 Sơ đồ
5.2 Thông số
| Thành phần | Leaf-1 | Leaf-2 |
|---|---|---|
| Eth1/1 (underlay) | 192.168.12.1/30 | 192.168.12.2/30 |
| Loopback0 (router-id, RP) | 10.10.10.1/32 | 10.10.10.2/32 |
| Loopback1 (VTEP) | 10.20.20.1/32 | 10.20.20.2/32 |
| VLAN / VNI | 10 / 10010 | 10 / 10010 |
| Multicast group | 239.1.1.10 | 239.1.1.10 |
| Host | Host-A 192.168.10.11/24 | Host-B 192.168.10.22/24 |
Mục tiêu: Host-A và Host-B ở hai switch khác nhau nhưng cùng VLAN 10 ping được nhau qua VXLAN.
Lưu ý theo tài liệu Cisco (NX-OS 10.6(x)):
- Interface NVE nên bind vào loopback riêng cho VXLAN, không dùng chung với loopback của các giao thức Layer 3 (router-id, RP…). Vì vậy LAB dùng Loopback0 cho OSPF/RP và Loopback1 làm VTEP.
- Flood-and-learn dùng multicast PIM ASM; Cisco ghi PIM BiDir không hỗ trợ flood-and-learn.
- Flood-and-learn chỉ hỗ trợ gateway tập trung (cặp vPC + FHRP), không có anycast gateway. Anycast gateway chỉ dùng được với BGP EVPN.
- Không phải dòng Nexus 9000 nào cũng hỗ trợ flood-and-learn (ví dụ 9364E-SG2, 9300-SE1 và N9300 Smart không hỗ trợ). Hãy tra Nexus Switch Platform Support Matrix trước khi dựng LAB trên phần cứng thật.
Lưu ý khi triển khai LAB: mô hình multicast cần có RP (
ip pim rp-address). Nếu thiếu, BUM traffic không được chuyển tiếp giữa các VTEP và ping/ARP sẽ thất bại. Trong LAB này dùng RP tĩnh đặt trên Loopback0 của Leaf-1; trong production thường đặt RP (Anycast RP) trên spine.
5.3 Cấu hình Leaf-1
configure terminal
feature ospf
feature pim
feature nv overlay
feature vn-segment-vlan-based
! --- Underlay
router ospf 1
router-id 10.10.10.1
interface Ethernet1/1
no switchport
mtu 9216
ip address 192.168.12.1/30
ip router ospf 1 area 0
ip pim sparse-mode
no shutdown
interface loopback0
ip address 10.10.10.1/32
ip router ospf 1 area 0
ip pim sparse-mode
! --- Loopback riêng cho VTEP
interface loopback1
ip address 10.20.20.1/32
ip router ospf 1 area 0
ip pim sparse-mode
! --- RP tĩnh cho multicast (LAB)
ip pim rp-address 10.10.10.1 group-list 239.1.1.0/24
! --- VLAN -> VNI
vlan 10
vn-segment 10010
interface Ethernet1/10
switchport
switchport mode access
switchport access vlan 10
no shutdown
! --- VTEP
interface nve1
no shutdown
source-interface loopback1
member vni 10010
mcast-group 239.1.1.10
5.4 Cấu hình Leaf-2
Giống Leaf-1, chỉ khác địa chỉ IP và router-id:
configure terminal
feature ospf
feature pim
feature nv overlay
feature vn-segment-vlan-based
router ospf 1
router-id 10.10.10.2
interface Ethernet1/1
no switchport
mtu 9216
ip address 192.168.12.2/30
ip router ospf 1 area 0
ip pim sparse-mode
no shutdown
interface loopback0
ip address 10.10.10.2/32
ip router ospf 1 area 0
ip pim sparse-mode
interface loopback1
ip address 10.20.20.2/32
ip router ospf 1 area 0
ip pim sparse-mode
ip pim rp-address 10.10.10.1 group-list 239.1.1.0/24
vlan 10
vn-segment 10010
interface Ethernet1/10
switchport
switchport mode access
switchport access vlan 10
no shutdown
interface nve1
no shutdown
source-interface loopback1
member vni 10010
mcast-group 239.1.1.10
5.5 Ý nghĩa các lệnh quan trọng
| Lệnh | Ý nghĩa |
|---|---|
feature nv overlay |
Bật chức năng network virtualization overlay (VXLAN). |
feature vn-segment-vlan-based |
Cho phép map VLAN sang VNI (vn-segment). |
feature pim + ip pim sparse-mode |
Bật multicast routing trên underlay và loopback. |
ip pim rp-address ... group-list ... |
Chỉ định RP cho dải multicast group dùng cho VNI. |
mtu 9216 (Eth1/1) |
Nâng MTU underlay để chứa thêm khoảng 50 byte VXLAN. |
vn-segment 10010 |
Gắn VLAN 10 với VNI 10010. |
source-interface loopback1 |
Dùng loopback riêng (/32, nằm trong default VRF) làm IP nguồn VTEP; ổn định hơn cổng vật lý và không dùng chung với loopback của giao thức Layer 3. |
member vni 10010 / mcast-group 239.1.1.10 |
Khai báo VNI trên NVE và gắn multicast group xử lý BUM. |
5.6 Cấu hình IP cho host
- Host-A:
192.168.10.11/255.255.255.0 - Host-B:
192.168.10.22/255.255.255.0
Không cần default gateway vì hai host cùng subnet.
6. Kiểm tra và đọc kết quả
Các kết quả dưới đây là ví dụ minh họa; MAC, uptime và định dạng cột có thể khác tùy phiên bản NX-OS.
Underlay và multicast (kiểm tra trước):
show ip ospf neighbors ! hai leaf phải ở trạng thái FULL show ip route 10.20.20.2 ! Leaf-1 phải có route tới loopback VTEP của Leaf-2 show ip pim neighbor ! PIM neighbor phải lên trên Eth1/1 show ip pim rp ! RP 10.10.10.1 phải được nhận diện
Overlay:
show nve interface
Interface: nve1, State: Up, encapsulation: VXLAN Source-Interface: loopback1 (primary: 10.20.20.1)
State: Up và đúng source-interface nghĩa là VTEP đã sẵn sàng.
show nve vni
Interface VNI Multicast-group State Mode Type [BD/VRF] --------- -------- ---------------- ----- ---- ------------- nve1 10010 239.1.1.10 Up DP L2 [10]
Mode DP (data plane learning) là đặc trưng của flood-and-learn; với BGP EVPN, cột này sẽ là CP (control plane). Type L2 [10] cho biết đây là L2VNI gắn với VLAN 10.
show nve peers
Interface Peer-IP State LearnType Uptime --------- ------------- ----- --------- -------- nve1 10.20.20.2 Up DP 00:18:42
Với flood-and-learn, peer chỉ xuất hiện sau khi có traffic (ví dụ sau lần ping/ARP đầu tiên). Nếu chưa có traffic từ host, danh sách peer rỗng là bình thường.
show mac address-table vlan 10
vlan mac address type ports 10 0050.56aa.1111 dynamic Eth1/10 10 0050.56bb.2222 dynamic nve1(10.20.20.2)
MAC học trên Eth1/10 là Host-A (local); MAC học qua nve1 là Host-B ở VTEP bên kia.
Ping test
Host-A# ping 192.168.10.22 64 bytes from 192.168.10.22: icmp_seq=1 ttl=64 time=1.2 ms ... 4 packets transmitted, 4 packets received, 0.0% packet loss
Ping thành công chứng tỏ hai host ở hai switch khác nhau hoạt động như trong cùng một LAN, còn hạ tầng giữa chúng chỉ là mạng IP Layer 3.
7. Lỗi thường gặp khi dựng LAB VXLAN
| Hiện tượng | Nguyên nhân thường gặp | Kiểm tra |
|---|---|---|
NVE Down |
Thiếu feature, loopback VTEP chưa up hoặc chưa quảng bá vào OSPF, no shutdown chưa bật |
show nve interface, show run interface nve1 |
| Không thấy peer dù đã ping | Không có route tới loopback đối tác, hoặc multicast không thông | show ip route, show ip pim neighbor, show ip mroute 239.1.1.10 |
| ARP không resolve | Thiếu RP hoặc PIM chưa bật trên loopback/underlay | show ip pim rp, kiểm tra ip pim sparse-mode |
| Ping nhỏ được, gói lớn mất | MTU underlay chưa đủ cho overhead VXLAN | Nâng mtu 9216 trên underlay |
MAC không học qua nve1 |
VNI hoặc multicast group hai đầu không khớp | show nve vni ở cả hai leaf |
8. Từ LAB lên production
LAB 2 điểm cho thấy các nguyên lý cốt lõi: VTEP dùng loopback, underlay chỉ cần IP reachability, segment tách bằng VNI, MAC remote học qua overlay. Tuy nhiên thiết kế production thường khác ở các điểm sau:
- Dùng BGP EVPN thay cho multicast flood-and-learn để giảm flooding, scale tốt hơn và dùng được anycast gateway.
- Có hai spine (Cisco khuyến nghị đặt RP chỉ ở lớp spine và dùng Anycast RP nếu còn dùng multicast), nhiều leaf, ECMP ở underlay.
- Có L3VNI/VRF và anycast gateway để routing phân tán tại leaf.
- Thiết kế vPC, kết nối ra ngoài fabric, bảo mật và giám sát.
Chi tiết xem thêm tại L2 VXLAN và L3 VXLAN: khác biệt và ứng dụng.
9. Câu hỏi thường gặp (FAQ)
VXLAN dùng cổng UDP nào? VXLAN dùng UDP, cổng đích chuẩn là 4789 (RFC 7348).
VXLAN thêm bao nhiêu byte overhead? Khoảng 50 byte (Outer Ethernet, Outer IP, UDP và VXLAN header). Vì vậy MTU underlay cần lớn hơn MTU của host.
VXLAN khác VLAN ở điểm nào? VLAN dùng ID 12 bit (khoảng 4.000 segment) và gắn với hạ tầng Layer 2. VXLAN dùng VNI 24 bit (khoảng 16 triệu segment) và chạy trên hạ tầng IP Layer 3.
VXLAN có bắt buộc dùng EVPN không? Không. VXLAN có thể chạy với flood-and-learn dùng multicast hoặc static ingress replication, nhưng BGP EVPN là lựa chọn phổ biến cho production.
Dòng switch Cisco nào dùng để triển khai VXLAN Data Center? Bài LAB dùng Cisco Nexus 9000 (NX-OS). Tham khảo thêm switch Cisco Nexus tại VNExperts; khả năng hỗ trợ VXLAN và license cụ thể cần đối chiếu theo datasheet của từng model/phiên bản phần mềm.
10. Kết luận
VXLAN giúp mở rộng Layer 2 trên nền Layer 3 và vượt giới hạn VLAN trong Data Center hiện đại. Trên Cisco Nexus, cần nắm: loopback VTEP, ánh xạ VLAN-to-VNI, interface NVE, underlay có reachability (và multicast + RP nếu dùng flood-and-learn), MTU đủ lớn, cùng các lệnh show nve interface, show nve vni, show nve peers để kiểm tra.
Tham khảo: Cisco Nexus 9000 Series NX-OS VXLAN Configuration Guide, Release 10.6(x) (các chương Overview, Configure VXLAN, Configure VXLAN BGP EVPN) và Cisco – "Configure VXLAN Flood and Learn Using Multicast Core" (Doc ID 200262).
