Bài viết chuyên đề

VXLAN là gì? Tổng quan về công nghệ VXLAN

11/04/2019 02:27:01

Trước đây, tất cả các trung tâm dữ liệu Data Center sử dụng VLAN để cô lập mạng lớp 2. Do quy mô ngày càng lớn và nhu cầu mở rộng mạng Layer 2 trong Data Center hoặc ra ngoài cả các Data Center ngày càng tăng, nên những hạn chế của VLAN bắt đầu bộc lộ.

1. VXLAN là gì?

Datacenter cần có hàng ngàn VLAN để phân chia traffic trong môi trường có nhiều thuê bao cùng chia sẻ kiến trúc mạng L2/L3 và với giới hạn hiện tại của VLAN (4096 VLANs với một số VLAN là để dự trữ) thì không đủ.

Mỗi một máy ảo trong server cần một địa chỉ MAC và IP duy nhất nên có tới hàng ngàn MAC entry trên upstream switch. Điều này đặt ra nhu cầu lớn hơn về dung lượng bảng trên Switch.

VLAN bị hạn chế về khoảng cách và cách triển khai. VTP có thể sử dụng để deploy VLAN trên các Switch L2 nhưng hầu hết mọi người đều tắt VTP vì bản chất của nó.

 

STP được sử dụng để tạo ra một topoplogy không có loop. Nhưng STP cũng block các đường dự phòng. Vì vậy Equal-Cost Multi-Path (ECMP) khó có thể đạt được. Tuy nhiên, ECMP có thể dễ dàng thực hiện trong IP network.

Chính những yếu tố trên đã dẫn đến sự ra đời của VXLAN. VXLAN (virtual extensible LAN) được thiết kế để cung cấp dịch vụ mạng L2 tương tự như VLAN nhưng có thể mở rộng hơn và linh hoạt hơn.

VXLAN sử dụng 24 bit để đánh địa chỉ VLAN_ID. Nghĩa là nó sẽ hỗ trợ không gian địa chỉ VXLAN_ID lên tới 4 lần so với VLAN, tức là khoảng hơn 16 triệu. Điều này sẽ cung cấp đủ không gian để triển khai các quy mô mạng trong vài năm tới.

VXLAN sử dụng IP (cả unicast và multicast) như phương tiện truyền. Sự phổ biến của mạng IP và các thiết bị cho phép đầu cuối sẽ cho phép khả năng mở rộng vượt trội tiến xa hơn rất nhiều so với VLAN sử dụng 802.1q hiện nay. Không gì có thể phủ nhận rằng các công nghệ khác có thể mở rộng được phạm vi của VLAN, nhưng không có gì có thể triển khai phổ biến như mạng IP.

2. VXLAN có những ưu điểm gì?

VLAN sử dụng 12-bit VLAN ID  tương đương với 4096 VLAN. VXLAN sử dụng 24-bit segment ID (VNID) tương đương với 16 triệu VXLAN segment.

VXLAN có thể mở rộng L2 segment trên một hạ tầng mạng dùng chung. Vì thế một thuê bao có thể chia workload ra nhiều server.

Các gói VXLAN được vận chuyển trên hạ tầng mạng bằng L3 header nên có thể tận dụng L3.

3. Các khái niệm trong VXLAN

3.1. VNI

VXLAN hoạt động trên cơ sở hạ tầng mạng hiện có và cung cấp một phương tiện để "kéo dài" một mạng lớp 2. Tóm lại, VXLAN là một mạng lớp 2 overlay trên mạng lớp 3. Mỗi lớp mạng như vậy được gọi là VXLAN segment. Chỉ các máy ảo trong cùng VXLAN segment mới có thể giao tiếp với nhau. Mỗi VXLAN segment được xác định thông qua ID kích thước 24 bit, gọi là VXLAN Network Identifier (VNI). Điều này cho phép tối đa 16 triệu các VXLAN segment cùng tồn tại trong cùng một domain.

VNI xác định phạm vi của inner MAC frame sinh ra bởi máy ảo VM. Do đó, bạn có thể overlapping địa chỉ MAC thông qua segment như không bị lẫn lộn các lưu lượng bởi chúng đã bị cô lập bởi VNI khác nhau. VNI nằm trong header được đóng gói với innere MAC sinh ra bởi VM.

​3.2 Encapsulation và VTEP

VXLAN là công nghệ overlay qua lớp mạng. Overlay Network có thể được định nghĩa như là một mạng logic mà được tạo trên một nền tảng mạng vật lý đã có sẵn. VXLAN tạo một mạng vật lý layer 2 trên lớp mạng IP. Dưới đây là 2 từ khóa được dùng trong công nghệ overlay network:

  • Encapsulate: Đóng gói những gói tin ethernet thông thường trong một header mới. Ví dụ: trong công nghệ overlay IPSec VPN, đóng gói gói tin IP thông thường vào một IP header khác.
  • VTEP: Việc liên lạc được thiết lập giữa 2 đầu tunnel end points (đường ống).

Khi bạn áp dụng vào với công nghệ overlay trong VXLAN, bạn sẽ thấy VXLAN sẽ đóng gói một frame MAC thông thường vào một UDP header. Và tất cả các host tham gia vào VXLAN thì hoạt động như một tunnel end points. Chúng gọi là Virtual Tunnel Endpoints (VTEPs).

 

VXLAN học tất cả các địa chỉ MAC của máy ảo và việc kết nối nó tới VTEP IP thì được thực hiện thông qua sự hỗ trợ của mạng vật lý. Một trong những giao thức được sử dụng trong mạng vật lý là IP multicast. VXLAN sử dụng giao thức của IP multicast để cư trú trong bảng forwarding trong VTEP.

Do sự đóng gói (encapsulation) này, VXLAN có thể được gọi là thiết lập đường hầm (tunneling) để kéo dài mạng lớp 2 thông qua lớp 3. Điểm cuối các tunnel này - (VXLAN Tunnel End Point hoặc VTEP) nằm trong hypervisor trên server máy chủ của các VM. Do đó, VNI và VXLAN liên quan tới các khái niệm đóng gói header tunnel được thực hiện bởi VTEP - và trong suốt với VM.

3.3. VXLAN frame format

 

Frame Ethernet thông thường bao gồm địa chỉ MAC nguồn, MAC đích, Ethernet type và thêm phần VLAN_ID (802.1q) nếu có. Đây là frame được đóng gói sử dụng VXLAN, thêm các header sau:

  • VXLAN header: 8 byte bao gồm các trường quan trọng sau:
    • Flags: 8 but, trong đó bit thứ 5 (I flag) được thiết lập là 1 để chỉ ra rằng đó là một frame có VNI có giá trị. 7 bit còn lại dùng dữ trữ được thiết lập là 0 hết.
    • VNI: 24 bit cung cấp định danh duy nhất cho VXLAN segment. Các VM trong các VXLAN khác nhau không thể giao tiếp với nhau. 24 bit VNI cung cấp lên tới hơn 16 triệu VXLAN segment trong một vùng quản trị mạng.
  • Outer UDP Header: port nguồn của Outer UDP được gán tự động và sinh ra bởi VTEP và port đích thông thường được sử dụng là port 4789 hay được sử dụng (có thể chọn port khác).
  • Outer IP Header: Cung cấp địa chỉ IP nguồn của VTEP nguồn kết nối với VM bên trong. Địa chỉ IP outer đích là địa chỉ IP của VTEP nhận frame.
  • Outer Ethernet Header: cung cấp địa chỉ MAC nguồn của VTEP có khung frame ban đầu. Địa chỉ MAC đích là địa chỉ của hop tiếp theo được định tuyến bởi VTEP. Outer Ethernet header có thể được gắn tag theo chuẩn 802.1q trong quá trình vận chuyển trong mạng L3.