CHƯƠNG 1. TỔNG QUAN VỀ SDN 1. Tổng quan về SDN 1. Định nghĩa Software-Definded Networking (SDN) là một cách tiếp cận mới trong việc thiết kế, xây dựng và quản lý hệ thống mạng.
Về cơ bản, SDN chia tách độc lập hai cơ chế hiện đang tồn tại trong cùng một thiết bị mạng: Cơ chế điều khiển (Control Plane controller – thành phần điều khiển), cơ chế chuyển tiếp dữ liệu (Data Plane - data forwarding plane – thành phần chuyển tiếp dữ liệu) nhằm tối ƣu nhiệm vụ và chức năng của hai thành phần này (Hình 1. Mục đích của sự phân tách này là tạo ra mạng có thể đƣợc lập trình và quản lý một cách tập trung. Sự phân tách trong kiến trúc mạng SDN Cơ chế điều khiển (Control Plane): Là thành phần điều khiển với các giải thuật và giao thức dùng để tính toán và lƣu trữ các thông tin định tuyến lên bảng FIB (Forwarding Information Base) nhằm xác định đƣờng đi cho mỗi gói tin trong Data Plane. Đối với Switch thì Control Plane đơn giản là cơ chế tự học MAC thông qua việc Broadcast gói tin còn đối với Router thì Control Plan là các giao thức định tuyến nhƣ OSPF, EIGRP, BGP, … Cơ chế chuyển tiếp dữ liệu (Data Plane): Là thành phần thực hiện chức năng Forwarding Data dựa vào bảng FIB mà Control Plane đã xây dựng.
Dữ liệu sẽ đổ về 4 Switch hoặc Router tại các Port tƣơng ứng nhƣ 10Gb, 100Gb Ethernet và cũng đi ra khỏi Switch, Router với Port tƣơng ứng. SDN là một kiến trúc mạng linh hoạt, dễ quản lý, hiệu suất cao, khả năng chịu lỗi và thích nghi tốt,… Điều đó làm cho công nghệ này thật sự lý tƣởng cho các ứng dụng đòi hỏi băng thông cao và cần sự linh hoạt hiện nay. Mục đích cơ bản của truyền thông mạng là truyền tải thông tin từ điểm này tới các điểm khác nhƣng với SDN thì dữ liệu trong mạng sẽ đƣợc truyền tải giữa các node với sự hỗ trợ từ các ứng dụng và dịch vụ nên việc truyền thông trở nên hiệu quả và tối ƣu hơn rất nhiều. Giống nhƣ các máy chủ giám sát sử dụng trong ảo hóa, SDN định nghĩa ra một lớp phần mềm đứng chặn giữa các phần tử mạng và ngƣời quản trị mạng (là ngƣời cấu hình và cài đặt chúng).
Lớp phần mềm này cung cấp cho ngƣời quản trị mạng khả năng điều khiển các thiết bị mạng của họ thông qua một giao diện phần mềm thay vì phải tự cấu hình phần cứng và các tác động vật lý của thiết bị mạng. Kiến trúc của SDN [2] Kiến trúc của SDN gồm 3 lớp riêng biệt: lớp ứng dụng, lớp điều khiển, và lớp cơ sở hạ tầng (lớp chuyển tiếp). Kiến trúc mạng SDN Lớp ứng dụng: Là các ứng dụng kinh doanh đƣợc triển khai trên mạng, đƣợc kết nối tới lớp điều khiển thông qua các API, cung cấp khả năng cho phép lớp ứng dụng lập trình lại (cấu hình lại) mạng (điều chỉnh các tham số trễ, băng thông, định tuyến, …) thông qua lớp điều khiển. 5 Lớp điều khiển: Là nơi tập trung các bộ điều khiển thực hiện việc điều khiển cấu hình mạng theo các yêu cầu từ lớp ứng dụng và khả năng của mạng.
Các bộ điều khiển này có thể là các phần mềm đƣợc lập trình. Lớp cơ sở hạ tầng: Là các thiết bị mạng thực tế (vật lý hay ảo hóa) thực hiện việc chuyển tiếp gói tin theo sự điều khiển của lớp điểu khiển. Một thiết bị mạng có thể hoạt động theo sự điều khiển của nhiều bộ điều khiển khác nhau, điều này giúp tăng cƣờng khả năng ảo hóa của mạng. So sánh kiến trúc mạng truyền thống và kiến trúc SDN Hình 1.
So sánh mạng SDN với mạng truyền thống Mô hình so sánh giữa kiến trúc mạng truyền thống và kiến trúc SDN trên (hình 1.3) cho thấy trong kiến trúc mạng truyền thống Control Plane và Data Plane đều đƣợc ghép chung vào trong Network Node. Trong đó Control Plane có nhiệm vụ cấu hình các Node mạng và lập trình đƣờng đi (định tuyến) để vận chuyển Data Flow. Data Flow (luồng dữ liệu) sẽ đƣợc đẩy xuống Data Plane thông qua các API và chuyển tiếp tới các thiết bị phần cứng dựa trên các thông tin điều khiển trên Control Plane. Trong kiến trúc mạng truyền thống khi chính sách Forwarding đã đƣợc thông qua thì cách duy nhất để điều chỉnh lại các chính sách này theo ý muốn là phải đi 6 cấu hình lại trên tất cả thiết bị vật lý (Switch, Router, Firewall, …).
Điều này không chỉ mất thời gian mà còn khá là phiền toái bởi trong kiến trúc hệ thống mạng truyền thống đặc biệt đối với hệ thống mạng quy mô trong doanh nghiệp thì việc xác định vị trí thiết bị và tiến hành cấu hình điều chỉnh rất là phức tạp và có nhiều rủi ro sai sót có thể ảnh hƣởng tới nhiều hoạt động quan trọng khác trong hệ thống mạng. Trong kiến trúc mạng SDN thì Control Plane đƣợc tách riêng ra khỏi Node mạng và là một thành phần độc lập trong SDN Stack. Các bộ chuyển mạch SDN đều đƣợc kiểm soát bởi Network Operating System (NOS) để thu thập thông tin thông qua các API và chuyển tiếp thông tin ấy vào Control Plane, đồng thời cung cấp một mô hình mạng trừu tƣợng tới SDN Controller vốn đƣợc cài đặt trong các ứng dụng. Nhờ thế mà Controller có thể khai thác đầy đủ thông tin mạng để tối ƣu trình điều khiển luồng (Flow Management) và hỗ trợ đáp ứng các yêu cầu của ngƣời dùng về khả năng mở rộng và tính linh hoạt.
Việc quản lý, cấu hình và điều phối các hoạt động trong hệ thống mạng sẽ thông qua một giao diện phần mềm quản lý tập trung với mô hình hệ thống mạng tổng quan nên ngƣời quản trị sẽ làm việc hiệu quả hơn và tránh đƣợc các sự cố lỗi phát sinh. Kiến trúc mạng SDN cho phép điều khiển hoạt động của mạng dựa trên việc điều khiển hoạt động của các Switch, sử dụng các ngôn ngữ lập trình và có thể thƣờng xuyên thay đổi bằng cách nạp các đoạn mã nguồn khác vào thay thế. SDN có lợi thế to lớn mà các kiến trúc mạng hiện tại không có đƣợc. Đó chính là tính mềm dẻo, khả năng mở rộng và tính linh hoạt của mạng.
Các kiến trúc mạng hiện nay không cho phép can thiệp vào hoạt động của các thiết bị mạng, hoạt động của các thiết bị này bị phụ thuộc hoàn toàn vào nhà sản xuất quy định. Chính vì thế, rất khó cho việc thay thế một giao thức cũ bằng các giao thức mới và thử nghiệm chúng trên các thiết bị thật. SDN thì ngƣợc lại, nó cho phép ngƣời lập trình có thể can thiệp vào hoạt động của thiết bị và qua đó điều khiển thiết bị hoạt động theo ý muốn. Việc này dễ dàng cho việc nghiên cứu cũng nhƣ triển khai các công nghệ mới vào trong mạng mà không cần thay đổi về phần cứng.
Lợi ích của SDN SDN là một sản phẩm mã nguồn mở. Bởi vì SDN tuân thủ các chuẩn mở, về mặt lý thuyết có thể hoạt động với bất kỳ phần cứng mạng nào của nhà cung cấp. Từ quan điểm CNTT, điều này cho phép các tổ chức có khả năng tránh việc nhà cung cấp cứng nhắc trong một loạt sản phẩm mạng. Điều này cho phép CNTT trở lên nhanh nhẹn rất lớn bởi vì một giải pháp chuẩn mở nhƣ SDN đơn giản hóa nhiệm vụ kết nối đến các đám mây, các ứng dụng, và các thiết bị khác nhau.
Và nó cho phép ngƣời quản trị mạng sử dụng phần mềm cho nhiều công việc họ thƣờng làm bằng tay. Cụ thể, với các tính năng của mình, SDN đem lại các lợi ích sau: - Giảm CapEx: SDN giúp giảm thiểu các yêu cầu mua phần cứng theo mục đích xây dựng các dịch vụ, phần cứng mạng trên cơ sở ASIC, và hỗ trợ mô hình pay-as- you-grow (trả những gì bạn dùng) để loại bỏ lãng phí cho việc dự phòng. - Giảm OpEx: thông qua các phần tử mạng đã đƣợc gia tăng khả năng lập trình, SDN giúp dễ dàng thiết kế, triển khai, quản lý và mở rộng mạng. Khả năng phối hợp và dự phòng tự động không những giảm thời gian quản lý tổng thể, mà còn giảm xác suất lỗi do con ngƣời tới việc tối ƣu khả năng và độ tin cậy của dịch vụ.
- Truyền tải nhanh chóng và linh hoạt: giúp các tổ chức triển khai nhanh hơn các ứng dụng, các dịch vụ và cơ sở hạ tầng để nhanh chóng đạt đƣợc các mục tiêu kinh doanh. - Cho phép thay đổi: cho phép các tổ chức tạo mới các kiểu ứng dụng, dịch vụ và mô hình kinh doanh, để có thể tạo ra các luồng doanh thu mới và nhiều giá trị hơn từ mạng. SDN hứa hẹn khả năng ảo hóa hạ tầng CNTT. Cho đến nay, phần lớn nhất của cơ sở hạ tầng vẫn còn chƣa đƣợc ảo hóa là mạng.
Từ một quan điểm nhanh gọn, các doanh nghiệp sẽ muốn liên hiệp lại và di chuyển vào và ra khỏi đám mây riêng nội 8 bộ (private cloud) và công cộng (public cloud). Đây là nơi mà một công nghệ linh hoạt nhƣ SDN đặt dấu chấm hết. Chắc chắn, tất cả các hoạt động này nối với mạng và các sự cố có thể đƣợc thực hiện “bằng tay” nhƣ bây giờ. Nhƣng trong tƣơng lai, khung thời gian hạn hẹp của dự án sẽ thúc đẩy CNTT tìm cách hiệu quả hơn để cấu hình và quản lý mạng.
- Bên cạnh đó, SDN cũng tồn tại một số nhƣợc điểm so với mạng truyền thống nhƣ: - Vấn đề đầu tiên là bảo mật, các hacker có thể lợi dụng lỗ hổng phần mềm để tấn công. Nếu hacker có thể tấn công vào hệ thống, chúng có thể truy cập các thiết lập và thay đổi chúng bất cứ ở nơi đâu, tại thời điểm nào, và chúng có thể truy cập bất kỳ tập tin đƣợc mã hóa nào miễn là nó ở trong mạng. Đối với mạng truyền thống thì điều này không thẻ xảy ra bởi để có thể truy cập vào mạng ta phải có quyền truy cập vào phần cứng của nó. Hầu hết các doanh nghiệp chỉ cho phép một số cá nhân đƣợc quyền đó bởi vậy hệ thống sẽ an toàn và ít có khả năng bị truy cập bởi các hacker.
- Thứ hai đó là quá trình triển khai SDN không thể hoàn thiện trong chốc lát mà nó phải theo từng bƣớc một. Chúng ta không thể một lúc thay thế toàn bộ các thiết bị hiện có thành OpenFlow switch đƣợc bởi vì điều đó rất tốn kém. - Thứ ba, SDN là một kiến trúc mạng kiểu mới, các giao thức tƣơng tác giữa các controller với nhau còn chƣa đƣợc phát triển toàn diện nên việc phát triển SDN trên phạm vi toàn cầu vẫn còn nhiều hạn chế.