Chuyên đề Software Defined Network – Phần 2: SDN-Từ cảm hứng đến bản chất

Nguyễn Minh Nhật – TP. GP Mạng HCM, HSI

Networking – Nhiệm vụ cuối cùng vẫn là kết nối. Kết nối máy tính A với server B, kết nối site 01 với site 02, kết nối người dùng với Internet… Kết nối phải đảm bảo băng thông, tính ổn định, tính dự phòng, tính bảo mật… Nói chung, networking là đi giải quyết hai vấn đề: “Kết nối cái gì” và “Kết nối như thế nào”. Trong hàng thập niên qua, ngành networking không có nhiều thay đổi so với các ngành khác trong lĩnh vực CNTT. Tuy nhiên, trong mấy năm gần đây, “cái gì” và “như thế nào” đã thay đổi mạnh mẽ và nhanh chóng. Điều đó buộc Networking dù không thay đổi về chức năng, nhiệm vụ; nhưng phải thay đổi kiến trúc và cách tiếp cận để đáp ứng.

“Cái gì” và “như thế nào” là hai từ ngắn gọn, nhưng để hiểu sự thay đổi của chúng, cần có một cái nhìn rộng hơn một chút, gồm cả những lĩnh vực liên quan như Computing, Storage, Data,… hay thậm chí là xu hướng “business” của các doanh nghiệp.

Trong bài viết này, xin được nêu ra những thay đổi ấy mà cũng chính là tiền đề, là “cảm hứng” của sự ra đời Software Defined Network (SDN), cũng như giải thích khái niệm, đặc điểm của SDN đến với bạn đọc.

Đầu tiên là sự bùng nổ của số lượng thiết bị kết nối mạng, gồm cả thiết bị di động lẫn IoT, kéo theo đó là sự bùng nổ về nội dung, dữ liệu được truyền tải trên mạng, đặt ra một áp lực rất lớn đối với mạng truyền thống, vốn dĩ được thiết kế với khả năng mở rộng (scale-out) nhất định.

Tiếp đến, hạ tầng tính toán và lưu trữ (computing and storage) đã có những phát triển vượt bậc trong những năm gần đây. Do đó, hạ tầng mạng không chỉ thuần túy kết nối theo kiểu truyền thống Client-Server mà còn phải đảm bảo năng lực kết nối cho hạ tầng computing và storage này. Đặc thù của computing và storage ngày nay là khả năng mở rộng, thu hẹp cực kỳ nhanh chóng và linh hoạt. Điều này đặt ra yêu cầu lớn cho độ linh hoạt của hạ tầng mạng.

Sự phát triển của ảo hóa dẫn đến traffic trong mạng cũng thay đổi rất nhiều, nhất là trong các Data center. Ngày nay, traffic từ người dùng đến server (North-south traffic) thấp hơn hơn rất nhiều so với traffic từ server đến server (East-West traffic). Mô hình mạng phân cấp ba lớp (Core/Distribution/Access) đã từng rất hiệu quả trong kiến trúc mạng Client-Server. Tuy nhiên, khi khối lượng East-West traffic tăng lên đột biến thì kiến trúc mạng phân cấp (hierarchical) này trở nên cứng nhắc, nặng nề và kém hiệu quả, bắt buộc phải có một kiến trúc mới hơn đáp ứng xu thế này.

BYOD (Bring your own device) trở thành xu hướng mới của doanh nghiệp, theo đó người dùng trong doanh nghiệp được phép sử dụng các thiết bị cá nhân, và thậm chí nhiều thiết bị cùng lúc để truy xuất dữ liệu và làm việc hằng ngày, chứ không chỉ những thiết bị của doanh nghiệp với những chính sách truy cập ràng buộc. Điều này đặt ra thách thức lớn cho đội ngũ quản trị, vận hành IT, nhất là luồng traffic truy cập linh hoạt và thay đổi khá nhiều so với sự tập trung trong kiến trúc mạng truyền thống trước đây.

Multi Data Center (DC) cũng là điểm đáng chú ý. Các doanh nghiệp không chỉ xây dựng một DC mà còn nhiều DC với nhu cầu phục hồi thảm họa (DR – Disater recovery) hoặc chia tải. Các tác vụ như Data Replication hay Virtual Machine mobility giữa các DCs lại một lần nữa đẩy nhu cầu East-West traffic lên cao. Việc sử dụng các kiến trúc, mô hình, công nghệ truyền thống để thiết kế cho các kết nối giữa các Data center ngày nay trở nên phức tạp và rất khó đáp ứng.

Các dịch vụ cloud vẫn đang rất phát triển. Khả năng built-up nhanh chóng, quản trị đơn giản, co giãn tài nguyên linh hoạt theo yêu cầu… là những ưu điểm đáng chú ý khiến các doanh nghiệp đón nhận mạnh mẽ các dịch vụ “trên mây” này. Doanh nghiệp thường có cả hạ tầng DC riêng (private cloud) và hạ tầng trên public cloud. Khả năng tích hợp, tối ưu giữa kiến trúc hybrid như vậy cũng đặt ra rất nhiều thách thức mới cho hạ tầng mạng nói riêng và hạ tầng CNTT nói chung của doanh nghiệp.

Trong bối cảnh cạnh tranh giữa các tổ chức. Khả năng provisioning nhanh chóng hạ tầng CNTT để triển khai dịch vụ trở thành công cụ cạnh tranh rất quan trọng. Các doanh nghiệp cần đẩy nhanh các dự án xây dựng hạ tầng CNTT cũng như khả năng provisoning các ứng dụng, dịch vụ mạng chỉ trong vài ngày, thậm chí vài giờ thay vì phải kéo dài hàng tháng như trước đây, nhằm nâng cao tính cạnh tranh và tập trung nguồn lực vào các chiến lược kinh doanh khác. Ngoài ra, ngày nay các công ty có xu hướng sáp nhập, mua lại, dẫn tới nhu cầu hạ tầng CNTT cũng cần có tính mở, có khả năng sáp nhập, tích hợp cao. Điều đó cũng góp phần cho nhu cầu xây dựng một hệ thống mạng đáp ứng những tiêu chuẩn chung, nâng cao tính khả mở và tự động trong tương lai.

***

Như vậy, ngày nay, networking “kết nối cái gì” và “kết nối như thế nào” đã có nhiều thay đổi. Hàng tetrabyte lưu lượng traffic hoạt động trên mạng. Cách thức traffic xuất hiện và di chuyển cũng đã khác hẳn so với trước đây. Khả năng triển khai nhanh chóng, mở rộng linh hoạt, tăng cường tự động hóa, tích hợp dễ dàng trở thành những thuộc tính quan trọng mà bắt buộc hệ thống mạng ngày nay phải đáp ứng.

Trong khi đó, hệ thống mạng truyền thống hiện tại bộc lộ rất nhiều điểm hạn chế. Hệ thống quá phức tạp dẫn đến cứng nhắc, không linh hoạt để đáp ứng các thay đổi theo nhu cầu kinh doanh của doanh nghiệp. Đối với từng lĩnh vực hoặc yêu cầu khác nhau của doanh nghiệp, networking lại có những thiết kế riêng biệt với quá nhiều các công nghệ và giao thức rời rạc khác nhau, lại có thể phụ thuộc từng hãng công nghệ riêng biệt, mà không có một cơ chế nào giúp trừu tượng hóa (abstraction) hoặc có khả năng vận hành tập trung và nhất quán. Một ví dụ để thấy sự cứng nhắc của hệ thống mạng hiện tại, khi mà các server (VMs) dễ dàng di chuyển tự động từ chỗ này sang chỗ khác dựa trên sự hỗ trợ của ảo hóa, thì các chính sách mạng (định tuyến, ACL, QoS…) lại phải thực hiện di chuyển thủ công. Một tác vụ VM migration phổ biến của ảo hóa lại trở nên thách thức cho hạ tầng mạng, khi phải giải quyết các vấn đề liên quan IP, default gateway, thậm chí, cấu trúc định tuyến cũng phải thay đổi.

Nói về khả năng mở rộng, lại là một hạn chế lớn đối với networking truyền thống. Khi thiết kế, các nhà thiết kế mạng có thể tính toán để dự phòng cho sự phát triển của doanh nghiệp trong vòng 3 năm, 5 năm… nhưng đó vẫn là con số cố định. Trong khi chính các doanh nghiệp cũng khó có thể lường trước được khả năng mở rộng kinh doanh của họ, và mở rộng hạ tầng CNTT tương ứng, nhất là các doanh nghiệp phát triển, cung cấp dịch vụ cloud. Chưa kể, nhu cầu mở rộng hạ tầng của doanh nghiệp có thể nhất thời. Ví dụ, doanh nghiệp yêu cầu tài nguyên mạng tăng lên gấp 2 lần để phục vụ business kéo dài 1 tháng và trả lại như cũ ngay sau đó. Đứng trước yêu cầu mở rộng hạ tầng thường xuyên, nhanh chóng và dễ dàng của các doanh nghiệp thì kiến trúc mạng, thiết kế mạng ngày nay gần như không đáp ứng kịp.

Khi hạ tầng mạng phát triển và mở rộng, đồng nghĩa số lượng thiết bị (node mạng) tăng lên, số lượng kết nối, đường truyền tăng lên, các chính sách truy cập, định tuyến, QoS cũng trở nên dày đặc. Nhưng tất cả các cấu hình ấy, người quản trị phải thực hiện thủ công, trên từng thiết bị. Một hệ thống phức tạp lại không có khả năng tự động hóa dẫn đến đội ngũ vận hành gặp quá tải trong các tác vụ triển khai, vận hành cũng như xuất hiện nhiều sai sót chủ quan từ người quản trị.

Như vậy, đứng trước những thay đổi lớn lao từ các các lĩnh vực liên quan trong ngành công nghệ, và những hạn chế trong kiến trúc mạng truyền thống vốn đã tồn tại hàng thập niên qua; chúng ta cần có một cách tiếp cận mới hơn, một kiến trúc mạng mới hơn nhằm đáp ứng với xu thế chung của áo hóa, cloud, và những yêu cầu từ ứng dụng của doanh nghiệp nói chung. Và, những yêu cầu ấy cũng chính là cảm hứng để ra đời một xu thế mới trong ngành công nghiệp mạng: Software Defined Network (SDN)!

***

Trên thị trường hiện nay có khá nhiều sản phẩm, giải pháp về SDN, kèm theo đó cũng nhiều cách tiếp cận và lập luận khác nhau, điều này dẫn đến ít nhiều tranh cãi. Bởi chính SDN cũng có sự phát triển của nó, từ lúc thí nghiệm, hình thành phát triển đến ứng dụng trên thị trường thông qua các hãng công nghệ. Để có một quan điểm tiếp cận rõ ràng, phần tiếp theo sẽ định nghĩa SDN một cách nguyên bản nhất, được xem như là bản chất khi nhắc về SDN.

Theo tổ chức phi lợi nhuận ONF (Open Network Foundation), SDN là kiến trúc mạng trong đó tách biệt giữa mặt phẳng điều khiển (control plane) và mặt phẳng dữ liệu (data plane) và có thể lập trình được.

Khái niệm control plane và data plane này gây khó hiểu cho ít nhiều bạn đọc. Lấy một ví dụ để dễ hình dung. Giả sử bạn từ nhà đến công ty làm việc, bạn mặc nhiên dễ dàng để di chuyển, vì đã có dữ liệu và quyết định sẵn có từ trước. Nhưng nếu từ nhà bạn đến công ty khách hàng A nào đó mà bạn chưa biết đường thì sao? Bạn phải suy nghĩ, tìm kiếm, và chọn đường thích hợp để di chuyển. Ngay lúc đó, bạn cần đến sự tính toán và ra quyết định, mà nói theo ngôn ngữ Networking, bạn đã dùng đến chức năng điều khiển (control plane). Từ nhà đến công ty, bạn chỉ cần di chuyển (tức xử lý trên data plane).

Đối với hệ thống mạng cũng vậy, trên mỗi thiết bị đều có hai chức năng này, để chuyển dữ liệu từ điểm A đến điểm B, trên mỗi thiết bị mạng phải bao gồm cả chức năng tính toán (tức control plane) và chức năng chuyển dữ liệu (tức data plane). Ở mạng SDN, control plane được tách ra khỏi thiết bị, và tập trung về một nơi gọi là SDN Controller (bản chất là phần mềm được lập trình để điều khiển mạng). Hệ thống mạng có hàng trăm thiết bị, nhưng chỉ cần một controller để tính toán và ra quyết định, các thiết bị chỉ thực hiện chuyển dữ liệu thông qua chỉ thị từ controller.

Cũng cần nói thêm rằng, ý tưởng tách biệt một mặt phẳng (hay một chức năng) ra khỏi thiết bị và tập trung về một controller vốn đã có từ rất lâu. Ví dụ trong một mạng wireless, chúng ta tách mặt phẳng quản lý (Management plane) của các Access point (AP) và tập trung về controller. Sau đó, chúng ta quản lý toàn bộ các access point dựa trên Wireless controller thay vì phải login vào từng AP. Hay ở VMWare, chúng ta có vCenter quản lý tập trung các Host vật lý cũng là một ví dụ về tách biệt Management plane. Và cũng tránh nhầm lẫn các controller này với SDN controller. Ở SDN, chúng ta tách biệt cả Control plane và Management plane để tập trung về Controller.

Về kiến trúc, SDN được phân thành ba lớp (layer). Lớp Infrastructure bao gồm tất cả thiết bị mạng với chức năng chuyển tiếp dữ liệu (tức thực thi data plane). Lớp Control gồm bộ điều khiển và quản lý tập trung (SDN Controller). Giao tiếp giữa hai lớp này thông qua một giao thức mở, nguyên thủy nhất là OpenFlow. Trên cùng là lớp Application, bao gồm các ứng dụng, dịch vụ (như điều khiển traffic, bảo mật, QoS…), được lập trình và tương tác trực tiếp vào lớp điều khiển thông qua các API.

Với kiến trúc mạng như trên, mạng SDN mang lại nhiều ý nghĩa:

Đầu tiên, việc tách biệt và tập trung hóa Control plane giúp tạo ra một “global view” cho toàn mạng, tăng khả năng visibility và nhất quán các chính sách (policy). Việc thiết bị chỉ còn thực thi nhiệm vụ data plane về lý thuyết sẽ giảm thiểu rất nhiều chi phí sản xuất phần cứng thiết bị, đơn giản hóa trong thiết kế bởi các thiết bị không cần chạy quá nhiều giao thức mà chỉ thực thi mệnh lệnh từ controller. Và ý nghĩa trên hết của việc tách biệt này là giúp trừu tượng hóa hệ thống mạng.

Cho nên, một đặc điểm hết sức quan trọng của một mạng SDN là sự trừu tượng hóa (Abstraction – khái niệm này đã được giải thích khá rõ trong bài viết trước). Xu hướng networking ngày nay là hướng đến sự đơn giản và tự động. Để được như vậy thì bắt buộc hệ thống mạng phải trừu tượng hóa. Tất cả các thành phần “underlay” phức tạp bên dưới phải được tóm gọn bằng những phương thức “overlay” bên trên. Thông qua kiến trúc mạng phân lớp, nhà quản trị mạng có thể lập trình điều khiển hệ thống mạng như mong muốn để đẩy xuống các lớp dưới thực thi mà không cần tương tác vào hàng trăm thiết bị, hàng ngàn dòng lệnh và các giao thức phức tạp bên dưới.

Từ việc tập trung hóa control plane giúp tạo ra một “global view” cho toàn mạng, đến giao tiếp giữa các lớp thông qua API, rồi tất cả các phần tử mạng trong SDN đều hỗ trợ lập trình tùy biến; sự kết hợp này giúp cho các nhà quản trị mạng tăng cường tự động hóa cho hệ thống mạng của mình. Các ứng dụng, dịch vụ mạng có thể chạy theo thời gian thực. Hệ thống mạng hoàn toàn có thể tùy biến, tối ưu hóa các tính năng cần thiết mà không phụ thuộc vào nhà sản xuất thiết bị. Điều này hoàn toàn khác so với mạng truyền thống; khi tất cả tính năng, giải pháp, giao thức… đều hoàn toàn phụ thuộc vào thiết bị của các hãng cung cấp.

***

Như vậy, bài viết này đã giới thiệu đến bạn đọc những thay đổi lớn trong ngành công nghiệp mạng mà được xem là tiền đề, là “cảm hứng” để mạng SDN ra đời; cũng như làm rõ bản chất mạng SDN, kiến trúc và những ý nghĩa, lợi ích tổng quan mà SDN mang lại. Tuy nhiên, SDN vẫn là một chủ đề được bàn luận khá nhiều; bởi có nhiều sự khác biệt trong việc nghiên cứu so với những sản phẩm SDN được thương mại hóa trên thị trường. Liệu rằng với các sản phẩm SDN trên thực tế, control plane và data plane có thật sự tách biệt? Liệu rằng các thiết bị được sản xuất độc lập mà không phụ thuộc nhà cung cấp? Openflow có phải là giao thức giao tiếp phổ biến? v.v.. Để làm rõ những điểm khác biệt này, mời độc giả đón đọc kỳ tiếp theo: “SDN – Từ bản chất đến thực tiễn” để cùng xem ý tưởng về mạng SDN được ứng dụng thực tế hiện nay như thế nào.

Để thay cho lời kết, mời bạn đọc xem qua “Thơ về SDN” đăng tại chuyên mục “Thơ” để cùng cô đọng và dễ ghi nhớ những nội dung dài thườn thượt bên trên nhé!

Đồn rằng mạng SDN
Không ngừng phát triển đi lên từng ngày
Nên nay ngắn gọn trình bày
Software, Network, Defined nghĩa là:

Thứ nhất trừu tượng – nhớ nha!
Tóm gọn phức tạp để mà dễ “xơi”
Giống như một chiếc xe hơi
Lên đây anh chở đi chơi cả ngày
Đâu cần anh phải rõ hay
Cấu tạo phía dưới đủ đầy thứ chi!

Thứ nhì, điều phải khắc ghi:
Tách biệt mặt phẳng là keyword nè
Mặt phẳng điều khiển là hồn
Chia tay thiết bị, lên controller
Mặt phẳng dữ liệu bơ vơ
Chung tình thiết bị chờ policy.
Automatically

Thứ ba, tự động làm gì cũng nhanh
Triển khai, giám sát, vận hành
Có template đẩy nhanh phà phà
“Đơn giản”, “tự động” chính là
Hai từ bỏ túi để mà không quên
Tóm gọn về SDN!


>>Đọc thêm Phần tiếp theo của Chuyên đề Software Defined Network tại ĐÂY