1. Tổng quan.
VXLAN là một giao thức ảo hóa mạng được phát triển để giải quyết các vấn đề liên quan đến mở rộng mạng ảo trong các môi trường ảo hóa và đám mây. Nó thường được sử dụng để tạo ra mạng ảo đám mây hoặc mạng ảo trên hạ tầng mạng vật lý.
Dưới đây là một số điểm quan trọng về VXLAN:
- Mục tiêu chính: VXLAN được thiết kế để mở rộng các mạng ảo trong môi trường ảo hóa và đám mây. Nó giúp tạo ra mạng ảo phân tán trên mạng vật lý có thể trải dài qua nhiều trung tâm dữ liệu hoặc mạng WAN.
- Giao thức encapsulation: VXLAN sử dụng giao thức encapsulation để đóng gói các gói tin mạng bên trong các gói tin UDP (User Datagram Protocol). Điều này cho phép nó được truyền qua mạng vật lý mà không cần thay đổi cơ sở hạ tầng mạng hiện có.
- Segment ID: Mỗi mạng ảo VXLAN được định danh bằng một giá trị gọi là Segment ID hoặc VNI (VXLAN Network Identifier). Segment ID này được sử dụng để phân biệt giữa các mạng ảo khác nhau và đảm bảo tính cách biệt giữa chúng.
- Quản lý và triển khai: VXLAN thường được quản lý và triển khai thông qua các trình quản lý mạng hoặc bộ điều khiển SDN (Software-Defined Networking) để tự động hóa việc tạo và quản lý mạng ảo.
- Phù hợp với mạng lớp 2 và lớp 3: VXLAN có thể hoạt động ở cả lớp 2 và lớp 3, cho phép mạng ảo hoạt động dưới dạng mạng LAN ảo hoặc mạng LAN ảo mạng IP.
VXLAN đã trở thành một công nghệ phổ biến trong việc xây dựng các mô hình mạng ảo và đám mây, giúp tối ưu hóa và tạo tính linh hoạt cho việc quản lý mạng trong các môi trường phức tạp.
2. Một số tình huống sử dụng VXLAN.
2.1. Tình huống 1.
Dưới đây là một ví dụ thực tế về cách VXLAN có thể được sử dụng trong một môi trường mạng:
Tình huống: Một doanh nghiệp có nhiều trung tâm dữ liệu (Data Centers) và muốn kết nối chúng lại với nhau để tạo thành một mạng ảo chung.
- Mạng vật lý: Doanh nghiệp có nhiều trung tâm dữ liệu đặt tại các địa điểm khác nhau, và mỗi trung tâm có một mạng vật lý riêng. Mạng vật lý của mỗi trung tâm sử dụng các giao thức và thiết bị mạng truyền thống như Ethernet, IP, và switch.
- Tạo mạng ảo với VXLAN:
- Tại mỗi trung tâm dữ liệu, doanh nghiệp triển khai VXLAN để tạo ra một mạng ảo. Mỗi mạng ảo có một Segment ID (VNI) riêng để định danh nó.
- VXLAN đóng gói các gói tin mạng bên trong gói tin UDP và sử dụng một địa chỉ IP đích để truyền gói tin đó qua mạng vật lý.
- Kết nối trung tâm dữ liệu:
- Để kết nối các trung tâm dữ liệu với nhau, doanh nghiệp sử dụng kết nối mạng công cộng hoặc mạng WAN.
- Các gói tin VXLAN được gửi qua mạng WAN, và tại mỗi trung tâm dữ liệu đích, chúng được giải mã và gửi tới mạng ảo tương ứng dựa trên Segment ID.
- Kết quả:
- Nhờ sử dụng VXLAN, doanh nghiệp đã tạo ra một mạng ảo đám mây riêng của họ, cho phép máy chủ và ứng dụng hoạt động như họ đang nằm trong cùng một mạng LAN ảo, dù chúng thực sự đặt tại các trung tâm dữ liệu khác nhau.
- Các mạng ảo này có thể mở rộng dễ dàng khi doanh nghiệp mở rộng hoặc thay đổi cơ sở hạ tầng của họ mà không cần thay đổi cơ sở hạ tầng mạng vật lý.
Ví dụ trên thể hiện cách VXLAN có thể được sử dụng để tạo ra mạng ảo đám mây phân tán và linh hoạt, cho phép doanh nghiệp quản lý và triển khai mạng một cách hiệu quả trong môi trường phức tạp có nhiều trung tâm dữ liệu.
2.2. Tình huống 2.
VXLAN được thiết kế để cô lập các mạng ảo khác nhau bằng cách sử dụng các Segment ID (VNI – VXLAN Network Identifier) riêng biệt để định danh từng mạng ảo. Điều này cho phép bạn tạo nhiều mạng ảo độc lập trong cùng một trung tâm dữ liệu mà không cần phải quan tâm đến việc các VLAN hoặc các subnet có thể giống nhau.
Nếu bạn có nhiều VLAN và subnet giống nhau trong cùng một trung tâm dữ liệu, bạn có thể sử dụng VXLAN để tạo các mạng ảo với các Segment ID khác nhau để cô lập chúng. VXLAN sẽ cho phép bạn tạo mạng ảo bên trên mạng vật lý và đảm bảo rằng các mạng ảo này không giao tiếp với nhau, dù có các VLAN hoặc subnet giống nhau.
Ví dụ, bạn có thể có hai mạng ảo sử dụng VXLAN với các Segment ID khác nhau, ví dụ:
- Mạng ảo 1: Sử dụng Segment ID 1001, và bạn gán cho nó một phạm vi subnet A.
- Mạng ảo 2: Sử dụng Segment ID 1002, và bạn gán cho nó một phạm vi subnet B.
Dù cả hai mạng ảo sử dụng các VLAN hoặc subnet giống nhau, nhưng do họ sử dụng các Segment ID khác nhau, họ sẽ hoạt động độc lập và không giao tiếp với nhau, giúp cô lập dữ liệu và tránh xung đột.
Để dễ hình dung thì ở dưới đây là một sơ đồ cụ thể với hai switch Cisco Nexus 9000, trong đó cả hai switch có VLAN ID giống nhau (VLAN 100) và cùng subnet (192.168.1.0/24). Sau đó, chúng ta sẽ cấu hình để cho phép giao tiếp giữa chúng thông qua mạng ảo sử dụng VXLAN:
Trong sơ đồ này:
- Cả hai Switch 1 và Switch 2 đều có cùng VLAN ID (VLAN 100) và cùng subnet (192.168.1.0/24) cho mạng ảo của họ.
- Các máy tính hoặc thiết bị kết nối đến Switch 1 và Switch 2 và cấu hình địa chỉ IP theo mạng ảo này.
- Một thiết bị routing (router ảo hoặc router vật lý) đặt giữa hai switch để định tuyến dữ liệu giữa hai mạng ảo (VLAN 100).
Và cách cấu hình để tạo mạng ảo sử dụng VXLAN với VLAN ID giống nhau (VLAN 100) và cùng subnet (192.168.1.0/24) trên hai switch Cisco Nexus 9000 và cho phép giao tiếp giữa chúng thông qua mạng ảo VXLAN:
Cấu hình trên Switch 1 (Nexus 9000 – Mạng ảo 1 – VXLAN ID 1001):
Tạo VLAN và gán VXLAN ID 1001 cho nó:
switch1(config)# vlan 100
switch1(config-vlan)# vn-segment 1001
Cấu hình cổng Ethernet1/1 để tham gia vào VLAN 100:
switch1(config)# interface Ethernet1/1
switch1(config-if)# switchport mode trunk
switch1(config-if)# switchport trunk allowed vlan 100
Đặt địa chỉ IP cho interface VLAN 100:
switch1(config)# interface Vlan100
switch1(config-if)# no shutdown
switch1(config-if)# ip address 192.168.1.1/24
Cấu hình trên Switch 2 (Nexus 9000 – Mạng ảo 2 – VXLAN ID 1002):
Tạo VLAN và gán VXLAN ID 1002 cho nó:
switch2(config)# vlan 100
switch2(config-vlan)# vn-segment 1002
Cấu hình cổng Ethernet1/1 để tham gia vào VLAN 100:
switch2(config)# interface Ethernet1/1
switch2(config-if)# switchport mode trunk
switch2(config-if)# switchport trunk allowed vlan 100
Đặt địa chỉ IP cho interface VLAN 100:
switch2(config)# interface Vlan100
switch2(config-if)# no shutdown
switch2(config-if)# ip address 192.168.1.2/24
Cấu hình Routing giữa hai mạng ảo (VLAN 1001 và VLAN 1002):
Bạn cần một thiết bị routing (router ảo hoặc router vật lý) để định tuyến dữ liệu giữa hai mạng ảo. Cấu hình tại đây dựa vào loại thiết bị routing bạn sử dụng và không nằm trong phạm vi của Cisco Nexus 9000 Switches.
Khi bạn cấu hình thiết bị routing, bạn cần định tuyến dữ liệu giữa hai mạng ảo thông qua các địa chỉ IP của interface VLAN trên cả hai switch. Ví dụ, nếu bạn sử dụng router ảo, bạn có thể cấu hình như sau:
router(config)# interface Vlan100
router(config-if)# ip address 192.168.1.3/24
router(config-if)# no shutdown
router(config)# ip route 192.168.1.1/32 192.168.1.1
router(config)# ip route 192.168.1.2/32 192.168.1.2
Lưu ý rằng cấu hình của router có thể thay đổi tùy theo loại thiết bị và mạng. Trong ví dụ trên, router định tuyến dữ liệu giữa hai mạng ảo bằng cách sử dụng địa chỉ IP của các interface VLAN trên cả hai switch.
Nếu bạn có hai mạng ảo sử dụng VXLAN trên hai thiết bị khác nhau và chúng có cùng địa chỉ IP, có một số vấn đề cần xem xét:
- IP Duplicate: Nếu hai mạng ảo (VXLAN) trên hai thiết bị khác nhau sử dụng cùng địa chỉ IP và bạn kết nối chúng với nhau, đó là một sự trùng lặp địa chỉ IP và có thể gây ra xung đột trong mạng. Điều này có thể dẫn đến việc dữ liệu không đúng đích và hành vi không ổn định trong mạng.
- Isolation Violation: Mạng ảo (VXLAN) được thiết kế để cô lập mạng ảo với các mạng khác nhau, cho phép chúng hoạt động độc lập. Nếu bạn sử dụng cùng một địa chỉ IP trong cả hai mạng ảo, bạn mất đi tính cách biệt và cô lập giữa chúng.
- Routing Confusion: Nếu bạn cố gắng định tuyến giữa hai mạng ảo sử dụng cùng một địa chỉ IP, thiết bị routing hoặc router ảo có thể gặp khó khăn trong việc xác định đường đi đúng và có thể gây ra sự rối loạn trong việc định tuyến.
Để giải quyết vấn đề này, bạn nên thiết lập các địa chỉ IP duy nhất cho mỗi mạng ảo trên các thiết bị tương ứng. Việc sử dụng các địa chỉ IP duy nhất đảm bảo tính riêng biệt và cô lập giữa các mạng ảo và tránh các xung đột và lỗi trong mạng.