Vấn đề ảo hóa các chức năng mạng trong hạ tầng
Bài viết này bàn về chủ đề ảo hóa các chức năng mạng truyền thống dùng để tương tác và truyền các gói tin. Bài viết cũng thảo luận về Ảo Hóa lớp truyền vận (transport virtualization). Network Function Virtualization cho phép chúng ta chạy các chức năng của mạng bên trong nhưng máy ảo trên nền tảng dùng chip Intel x86. NFV được điều khiển bởi phần mềm. Các chức năng này thường triển khai dễ dàng khi kết hợp với khả năng lập trình. Một chức năng mạng ảo hóa sẽ dễ dàng kích hoạt trong vài phút khi dùng các dịch vụ gọi hàm của REST, RESTCONF hay NETCONF. Các kiến trúc ảo hóa của các network controller thường có dạng mở, cung cấp các APIs ở tất cả các lớp giao tiếp cho các khách hàng hay người dùng. Lưu lượng người dùng được chia tách với nhau bằng VLAN, VxLAN hay các bản định tuyến ảo VRF. Gần đây, các khái niệm như TrustSec Security Group SGT dần trở nên phổ biến và được dùng như một cơ chế để chia tách các phân đoạn mạng.
Các trường hợp ứng dụng chức năng ảo hóa của mạng
Ảo hóa chức năng control plane
Ngày nay tất cả các mạng đều cần chức năng này để trao đổi thông tin trạng thái để có thể có được một đường đi từ nguồn đến đích cho các dòng lưu lượng IP. Có ba ví dụ của các chức năng như sau:
Route Reflectors (RR): RR thường được triển khai ở dạng máy chủ chuyên dụng appliance. Nó sẽ học các địa chỉ mạng, các thông tin định tuyến từ các router BGP láng giềng và giúp phân phối các thông tin liên quan đến các láng giềng đó. Trong các mạng lớn, triển khai máy chủ này sẽ làm tăng khả năng mở rộng bằng cách tránh cấu hình các router láng giềng ở dạng full-mesh.
LISP Map-server/Map-Resolvers (MS/MR): Các router LISP MS/MR thực hiện chức năng lưu trữ thông tin về các đầu cuối trong cơ sở dữ liệu phân bố. MS/MR chấp nhận các địa chỉ mạng nhận dạng của các thiết bị đầu cuối và trả lời các truy vấn từ các router LISP xTR (router đóng gói/ mở gói) tìm kiếm thông tin về các đầu cuối.
Wireless LAN controller (WLC): WLC chịu trách nhiệm trong mạng để quản lý các hoạt động và tình trạng của các access point. Ví dụ một chức năng mà WLC làm là xác thực các máy clients và cấu hình của các APs. Triển khai WLC ảo đặc biệt hiệu quả khi các lưu lượng mạng không dây không cần đóng gói ngược về WLC. Khi đó vWLC chỉ đảm nhận chức năng control plane. Hình bên dưới mô tả khái niệm ảo hóa control plane.
Ảo hóa mạng chi nhánh
Một ứng dụng khác của NFV là ở môi trường mạng chi nhánh. Ở nhiều chi nhánh, nhiều phần cứng mạng được triển khai. Router cung cấp kết nối ra Internet và kết nối đến phần còn lại của doanh nghiệp. Các thiết bị tối ưu mạng WAN có thể được cài đặt để tối ưu lưu lượng mạng trên WAN. Các Wireless LAN Controller có thể được triển khai trong các chi nhánh lớn hơn để quản lý các access point. Các thiết bị voice hay bảo mật cũng là một thành phần của kiến trúc mạng chi nhánh. Sau cùng ta sẽ cần các switch để kết nối các thành phần này với nhau. Vì trong thiết kế thường đòi hỏi yếu tố dự phòng, vì vậy một số thiết bị phải thêm phần dự phòng. Tất cả các phần cứng này phải bảo trì, quản lý và vận hành. Nhiều doanh nghiệp đang vận hành các mạng doanh nghiệp với hàng trăm, thậm chí hàng ngàn chi nhánh trãi rộng trên nhiều vùng địa lý khác nhau. Bất kỳ một tác vụ nào, một chi phí phát sinh ở một chi nhánh ngay lập tức có thể nhân lên nhiều lần bởi số chi nhánh trong mạng của tổ chức.
Khả năng ảo hóa các chức năng của một hệ thống mạng có thể ảnh hưởng lớn trong một môi trường như trên. Hãy tưởng tượng các chi nhánh của bạn bao gồm 1 server x-86 (hoặc có thể dùng 2 server cho dự phòng). Trong server đó sẽ chạy định tuyến, tối ưu mạng WAN, Wireless LAN controller và các chức năng khác trong một server phần cứng duy nhất. Điều này sẽ đơn giản hóa việc trang bị phần cứng của chi nhánh. Ngoài ra nếu kết hợp với khả năng lập trình và tự động hóa, viễn cảnh ảo hóa chi nhánh sẽ trở nên rất hấp dẫn với các nhà kiến trúc mạng doanh nghiệp. Hình vẽ bên dưới mô tả khái niệm dùng chung nhiều chức năng mạng trong một máy chủ x86 và chạy các ứng dụng mạng trong các máy ảo VM.
Tổng quát về kiến trúc của một hệ thống NFV
Một kiến trúc hệ thống ảo hóa bao gồm 4 thành phần:
- Một máy chủ x86 cung cấp tài nguyên phần cứng CPU, memory, storage, cổng, etc…).
- Phần cứng này chạy hệ điều hành hỗ trợ ảo hóa.
- Một hoặc nhiều các chức năng mạng đã ảo hóa: tiến trình phần mềm xử lý các dòng lưu lượng IP, thực hiện quyết định định tuyến và áp dụng các cấu hình mạng.
- Nền tảng để lập trình và tự động hóa.
Trong kiến trúc ảo hóa cơ bản, các tài nguyên phần cứng như CPU, bộ nhớ và ổ cứng được che dấu bởi một lớp hypervisor. Lớp hypervisor này chỉ đưa ra các CPU ảo/bộ nhớ ảo/ ổ cứng ảo cho các máy hoặc cho các ứng dụng chạy bên trên hypervisor. Mục tiêu chính của NFV là chạy các ứng dụng mạng bên trong các máy ảo chứ không chạy trực tiếp trên hệ điều hành của host.
Hình dưới đây mô tả sự khác biệt giữa hypervisor loại 1 và hypervisor loại 2 và Linux container. Hypervisor loại 1 điều khiển trực tiếp phần cứng và cung cấp một môi trường và các tài nguyên ảo (bộ nhớ, ổ cứng, CPU, I/O…) cho một hoặc nhiều máy ảo. Ví dụ của hypervisor kiểu 1 là VMWare ESXI.
Trong hypervisor kiểu 2, một hệ điều hành chuẩn chẳng hạn như Linux sẽ điều khiển phần cứng của máy chủ và hypervisor sẽ chạy trên hệ điều hành này để cung cấp các dịch vụ cho các máy ảo bên trên. Một ví dụ của hypervisor kiểu 2 là KVM cho Linux.
Trong cả hai trường hợp, một hệ điều hành sẽ được sử dụng bên trong các máy ảo để đáp ứng cho tải của các ứng dụng.
Linux container chạy các ứng dụng trong các môi trường riêng biệt bên trên hệ điều hành của máy host. Không cần một hệ điều hành nào. Các không gian tên được dùng là riêng biệt, các ứng dụng cũng được tách biệt bên trong container. Các tài nguyên hệ thống cũng có thể được tách biệt giữa các ứng dụng và kernel và cũng có thể được phân quyền ưu tiên. Các thư viện cũng được chia sẽ khi phù hợp.
Đối với các chức năng mạng ảo, một hoặc nhiều tiến trình có thể chạy bên trong VM để thực hiện chức năng xử lý gói. Các tiến trình này sử dụng các CPU ảo được cấp phát cho VM.
Như bạn có thể hình dung, ảo hóa chức năng mạng cũng sẽ ảnh hưởng đến cách thức bạn triển khai và vận hành hạ tầng mạng. Hãy xem xét yếu tố hiệu năng của hệ thống. Một hệ thống dùng chức năng ảo thì hiệu năng như thế nào so với phần cứng vật lý? Một khía cạnh khác liên quan đến mô hình triển khai: có bao nhiêu chức năng mạng ta nên triển khai trên một host x86? Và cấu hình các chức năng này có giống như khi cấu hình trên phần cứng vật lý hay không?
Về hiệu năng, một máy ảo chạy các ứng dụng VNF sẽ thấp hơn so với cách dùng các phần cứng và phần mềm chuyên dụng như routers, switch, firewall. Các phần cứng chuyên dụng này đã được tối ưu về cả hai phương diện phần cứng và phần mềm trong nhiều thập kỷ.