Điểm tới hạn: “Kéo dài” Layer 2 qua các Trung tâm Dữ liệu
Các đội ngũ hạ tầng thường gặp bế tắc khi mở rộng các cụm ảo hóa vượt quá 10 hoặc 15 nút. Bạn có các máy chủ ở các tủ rack khác nhau—hoặc thậm chí là các trung tâm dữ liệu riêng biệt—và bạn cần chúng chia sẻ một mạng phẳng. Phản ứng tức thời thường là “kéo dài” (stretch) VLAN. Điều này có thể ổn với một phòng lab nhỏ, nhưng lại là một quả bom hẹn giờ cho môi trường sản xuất.
Khi cụm máy chủ phát triển, mạng trở nên mong manh. Một cơn bão broadcast (broadcast storm) duy nhất có thể làm tê liệt toàn bộ hạ tầng của bạn trong vài giây. Việc quản lý độ ưu tiên Spanning Tree Protocol (STP) trên 20 switch là một cơn ác mộng thủ công. Tệ hơn nữa, STP thường chặn một nửa các liên kết của bạn để ngăn chặn vòng lặp (loop). Bạn cuối cùng phải trả tiền cho bốn uplink 100Gbps nhưng chỉ sử dụng được 200Gbps dung lượng trong khi phần còn lại ngồi không. Mạng nên hỗ trợ các ứng dụng của bạn, chứ không phải quy định cách bạn triển khai chúng.
Tại sao VLAN truyền thống thất bại khi mở rộng quy mô
Nhu cầu hiện đại đã vượt xa tiêu chuẩn 802.1Q. Mạng Layer 2 truyền thống dựa trên cơ chế “flood-and-learn” (tràn ngập và học). Nếu một switch không biết địa chỉ MAC nằm ở đâu, nó sẽ broadcast gói tin đó đến mọi cổng. Trong một trung tâm dữ liệu với hàng ngàn máy ảo, chi phí tài nguyên (overhead) này là cực kỳ lớn.
Giới hạn 4.096 VLAN ID là một trần cứng khác. Nếu bạn đang xây dựng một đám mây đa người dùng (multi-tenant) hoặc một phòng lab quy mô lớn, 4.000 ID đó sẽ biến mất nhanh hơn bạn tưởng. Chúng ta đang cố gắng giải quyết các vấn đề mở rộng của thế kỷ 21 bằng một định danh 12-bit được thiết kế từ những năm 1980. Mặc dù STP là một bước đột phá cách đây nhiều thập kỷ, giờ đây nó lại đóng vai trò là một nút thắt cổ chai. Nó ngăn cản chúng ta sử dụng định tuyến Equal-Cost Multi-Path (ECMP) hiện đại để cân bằng tải lưu lượng trên tất cả các đường truyền quang có sẵn.
Từ Tunnel Thủ công đến BGP EVPN: Lựa chọn con đường của bạn
Đóng gói (Encapsulation) là lối thoát khỏi những giới hạn này. VXLAN (Virtual Extensible LAN) giải quyết tình trạng thiếu hụt ID bằng cách cung cấp hơn 16 triệu VNI duy nhất. Tuy nhiên, thách thức thực sự nằm ở việc quản lý các đường hầm (tunnel).
- Static VXLAN: Bạn ánh xạ thủ công mọi VTEP (VXLAN Tunnel End Point) từ xa. Điều này ổn với hai máy chủ. Còn với 50 máy chủ? Đó là một sự tự sát trong quản trị.
- Multicast VXLAN: Mạng sử dụng các nhóm multicast để mô phỏng việc tràn ngập (flooding). Nhiều kỹ sư tránh sử dụng cách này trong lõi mạng vì nó nổi tiếng là khó khắc phục sự cố và hiếm khi mở rộng tốt qua các subnet khác nhau.
- BGP EVPN: Đây là tiêu chuẩn chuyên nghiệp. Thay vì tràn ngập các gói tin để tìm địa chỉ MAC, chúng ta sử dụng Border Gateway Protocol (BGP) để phân phối thông tin về khả năng tiếp cận (reachability). Nó biến một vấn đề Layer 2 thành một vấn đề định tuyến có cấu trúc. Mạng biết chính xác vị trí của mọi thiết bị trước khi gói tin đầu tiên rời khỏi card mạng (NIC) nguồn.
Cặp đôi quyền lực: FRRouting (FRR) and Open vSwitch (OVS)
Linux không còn chỉ là một hệ điều hành máy chủ; nó là động cơ đằng sau những mạng lưới phần mềm (software-defined networks) lớn nhất thế giới. Việc kết hợp FRRouting làm control plane (mặt phẳng điều khiển) với Open vSwitch làm data plane (mặt phẳng dữ liệu) tạo ra một stack không phụ thuộc vào nhà cung cấp, có thể cạnh tranh với các thiết bị phần cứng độc quyền đắt tiền.
FRR cung cấp “trí tuệ” bằng cách học vị trí các địa chỉ MAC thông qua BGP. OVS đảm nhận các công việc nặng nhọc. Nó đóng gói lưu lượng vào các tunnel VXLAN và luân chuyển các gói tin ở tốc độ đường truyền 10G, 40G hoặc 100G tùy thuộc vào phần cứng của bạn.
1. Chuẩn bị môi trường Linux
Hầu hết các bản phân phối hiện đại như Ubuntu hoặc Debian đều bao gồm các công cụ này trong kho lưu trữ chuẩn. Bạn cũng cần đảm bảo kernel đã sẵn sàng cho VXLAN và các interface dummy, thứ mà chúng ta sử dụng cho các địa chỉ loopback.
# Cài đặt Open vSwitch và FRRouting
sudo apt update
sudo apt install openvswitch-switch frr frr-pythontools -y
# Kích hoạt BGP daemon
sudo sed -i 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
sudo systemctl restart frr
2. Cấu hình Data Plane với Open vSwitch
Chúng ta cần một bridge để chứa các máy ảo và một cổng VXLAN để liên kết với cấu trúc mạng (fabric). IP loopback (1.1.1.1 trong ví dụ này) đóng vai trò là định danh VTEP duy nhất của chúng ta.
# Tạo một OVS bridge
sudo ovs-vsctl add-br br-int
# Tạo một cổng VXLAN
# remote_ip=flow cho phép FRR tự động chỉ định cho OVS nơi gửi lưu lượng
sudo ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=flow options:key=100
# Kích hoạt bridge
sudo ip link set br-int up
3. Cấu hình Control Plane với FRRouting
Bây giờ chúng ta hướng dẫn FRR chia sẻ các địa chỉ MAC thông qua BGP EVPN. Thao tác này cấu hình FRR để giám sát bridge OVS của chúng ta và quảng bá nội dung của nó tới các láng giềng BGP.
# Truy cập vào shell của FRR
sudo vtysh
# Các bước cấu hình
conf t
router bgp 65001
bgp router-id 1.1.1.1
neighbor 10.0.0.2 remote-as 65001
!
address-family l2vpn evpn
neighbor 10.0.0.2 activate
advertise-all-vni
exit-address-family
exit
write memory
4. Xác minh Lớp phủ (Overlay)
Khi phiên BGP ổn định, host của bạn sẽ tự động học các địa chỉ MAC từ xa. Không giống như các switch truyền thống luôn giữ im lặng cho đến khi có lưu lượng truy cập, FRR sẽ cập nhật bảng BGP ngay lập tức.
# Kiểm tra các route EVPN BGP
show bgp l2vpn evpn route
# Xác minh các địa chỉ MAC đã học được trên bridge
sudo ovs-appctl fdb/show br-int
Lời kết
Việc thay thế các VLAN cứng nhắc bằng kiến trúc EVPN/VXLAN sẽ thay đổi cách bạn tư duy về mạng. Bạn không còn phải chiến đấu với việc phát hiện vòng lặp mà bắt đầu tối ưu hóa hiệu quả định tuyến. Bằng cách sử dụng BGP—cùng một giao thức vận hành Internet toàn cầu—bạn sẽ có được sự ổn định và khả năng hiển thị mà các môi trường cũ không thể sánh được.
Cách tiếp cận dựa trên Linux này mang lại sự tự do to lớn. Bạn không bị mắc kẹt bởi CLI hoặc phí bản quyền của một nhà cung cấp cụ thể. Cho dù bạn đang chạy trên một switch white-box, một máy chủ cấu hình cao hay một máy ảo để thử nghiệm, bạn đang xây dựng trên nền tảng của một trung tâm dữ liệu hiện đại, được điều khiển bằng phần mềm.

