Giới thiệu chung về SDN
Các đặc điểm của SDN
• Có thể lập trình trực tiếp: Điều khiển mạng có thể lập trình trực tiếp vì nó được tách khỏi các chức năng chuyển tiếp
• Nhanh: Quản trị viên có thể điều chỉnh luồng lưu lượng truy cập trên toàn mạng để đáp ứng các nhu cầu
Mạng thông minh được quản lý một cách tập trung thông qua bộ điều khiển SDN, sử dụng phần mềm để duy trì cái nhìn toàn cầu về mạng Điều này cho phép các ứng dụng hoạt động như một chuyển mạch logic duy nhất, tối ưu hóa hiệu suất và quản lý tài nguyên mạng.
SDN cho phép nhà quản trị mạng nhanh chóng cấu hình, quản lý, bảo mật và tối ưu hóa tài nguyên mạng thông qua các chương trình động và tự động Các nhà quản trị có khả năng tự viết các chương trình này mà không phụ thuộc vào phần mềm độc quyền.
SDN được triển khai dựa trên tiêu chuẩn mở và trung lập với nhà cung cấp, giúp đơn giản hóa thiết kế và vận hành mạng Các hướng dẫn từ bộ điều khiển SDN thay thế cho việc sử dụng nhiều thiết bị và giao thức riêng biệt của từng nhà cung cấp.
SDN và sự nghiên cứu và đổi mới
Trong hơn hai thập kỷ qua, các nhà cung cấp mạng đã giữ vị trí thống trị trong ngành công nghiệp mạng, kiểm soát từ phần cứng đến phần mềm cần thiết cho thiết bị mạng thông minh Nền tảng phần mềm của họ bị đóng, khiến chỉ các nhà cung cấp này mới có khả năng phát triển phần mềm cho thiết bị mạng của mình.
Người đọc nên so sánh điều này với lĩnh vực phần mềm và máy tính, nơi có nhiều nền tảng phần cứng đa dạng được phát triển bởi nhiều nhà cung cấp khác nhau.
Nhóm 10 13 nền tảng khác nhau và sự độc quyền các khả năng Bên trên phần cứng đó có nhiều lớp phần mềm, cuối cùng cung cấp một giao diện chung và mở cho lớp ứng dụng Máy ảo Java (The Java Virtual Machine) và môi trường phát triển tích hợp Netbeans (Netbeans Integrated Development Environment) cung cấp một ví dụ điển hình về các phương pháp phát triển đa nền tảng Sử dụng các công cụ này, người ta có thể phát triển phần mềm có thể được chuyển giữa Windows PC, Linux hoặc Apple MAC Tương tự, máy tính bảng và điện thoại thông minh, chẳng hạn như iPhone hoặc điện thoại chạy hệ điều hành Android, có thể chia sẻ phần mềm ứng dụng và có thể chạy trên các nền tảng khác nhau một cách tương đối dễ dàng Hãy tưởng tượng nếu chỉ có Apple mới có thể viết phần mềm cho các sản phẩm của Apple và chỉ có Microsoft mới có thể viết phần mềm để chạy trên PC hoặc máy chủ dựa trên Windows? Liệu những tiến bộ công nghệ mà chúng ta đã được hưởng trong thập kỷ qua có diễn ra không? Chắc là không
1.2.1 SDN thúc đẩy nghiên cứu và đổi mới
Các trường đại học và phòng thí nghiệm nghiên cứu đóng vai trò quan trọng trong việc thúc đẩy đổi mới công nghệ, đặc biệt là trong các ngành công nghiệp khác nhau Môi trường phần mềm mở như Linux đã góp phần vào sự phát triển nhanh chóng này, cho phép các nhà nghiên cứu tùy chỉnh và cải tiến hệ điều hành cũng như các công nghệ ảo hóa và cơ sở dữ liệu Tuy nhiên, sự khép kín của phần mềm mạng hiện tại đã tạo ra thách thức lớn cho việc thử nghiệm và đổi mới trong lĩnh vực mạng Để giải quyết vấn đề này, một số trường đại học đã hợp tác để phát triển tiêu chuẩn OpenFlow, nhằm tạo điều kiện cho nghiên cứu mở và miễn phí trong mạng Điều này đặt ra câu hỏi về khả năng SDN trở thành một mạng lưới tương tự như những gì Linux đã mang lại cho thế giới máy tính.
Sự đổi mới trong lĩnh vực mạng đang bị hạn chế bởi tính chất khép kín của các thiết bị hiện tại Điều này đặt ra thách thức lớn cho các nhà nghiên cứu và doanh nhân sáng tạo trong việc phát triển cơ chế mới nhằm chuyển tiếp lưu lượng truy cập qua Internet, điều mà hiện nay gần như không khả thi.
Việc một công ty khởi nghiệp phát triển phương thức cung cấp quyền truy cập mạng tại các sân bay, quán cà phê và trung tâm thương mại là hợp lý, nhưng cần dựa trên thiết bị của nhà cung cấp mạng như điểm truy cập không dây, bộ định tuyến và chuyển mạch, vốn là các hệ thống đóng Sự phân hóa trong các thành phần phần mềm và phần cứng của mạng sẽ làm giảm chi phí cho khách hàng SDN hứa hẹn sẽ thúc đẩy sự phổ biến hóa phần cứng và tính mở, góp phần quan trọng vào sự đổi mới trong ngành công nghệ mạng.
Sự đổi mới thường được thúc đẩy bởi triển vọng tạo ra của cải, tuy nhiên, cần lưu ý rằng đối với một số công ty, tỷ suất lợi nhuận sản phẩm thấp hơn theo quy định của SDN có thể làm giảm mức độ sẵn sàng đầu tư vào đổi mới.
Tại sao cần tới SDN?
Mô hình truyền thông trong trung tâm dữ liệu của doanh nghiệp đã có sự thay đổi lớn, từ việc chủ yếu dựa vào giao tiếp giữa máy khách và máy chủ sang việc các ứng dụng hiện nay truy cập vào nhiều cơ sở dữ liệu và máy chủ khác nhau Sự chuyển đổi này tạo ra một loạt lưu lượng truy cập giữa các máy "đông-tây", trước khi dữ liệu được trả lại cho thiết bị người dùng theo mô hình truyền thông truyền thống.
Người dùng đang chuyển đổi mô hình truyền thông mạng, yêu cầu truy cập vào nội dung và ứng dụng của công ty mọi lúc, từ bất kỳ thiết bị nào, kể cả thiết bị cá nhân Điều này dẫn đến việc nhiều nhà quản lý trung tâm dữ liệu doanh nghiệp xem xét áp dụng mô hình điện toán tiện ích, gây ra tình trạng tắc nghẽn trên mạng diện rộng (WAN).
Sự gia tăng sử dụng thiết bị di động cá nhân như smartphone, laptop và máy tính bảng đã tạo ra áp lực lớn cho công nghệ thông tin trong việc cung cấp thông tin chi tiết cho các thiết bị này Đồng thời, cần bảo vệ dữ liệu và tài sản trí tuệ của công ty, cũng như tuân thủ các quy định hiện hành.
Sự gia tăng dịch vụ đám mây đang trở thành xu hướng quan trọng, khi các doanh nghiệp ngày càng mong muốn truy cập nhanh chóng vào các ứng dụng, cơ sở hạ tầng và tài nguyên thông tin theo yêu cầu.
Xử lý Big Data hiện nay yêu cầu quy trình xử lý song song trên hàng nghìn máy chủ, tất cả đều cần kết nối trực tiếp Sự gia tăng dữ liệu lớn đang thúc đẩy nhu cầu về dung lượng mạng bổ sung trong trung tâm dữ liệu Các nhà khai thác trung tâm dữ liệu siêu cấp phải đối mặt với thách thức mở rộng mạng lưới đến kích thước khổng lồ và duy trì kết nối liên tục mà không bị gián đoạn.
1.3.2 Nhu cầu phát triển để đơn giản hóa Động lực chính cho SDN là đơn giản hóa Thời gian trôi qua, các thiết bị mạng ngày càng trở nên phức tạp hơn Điều này một phần là do thiết kế độc lập và tự chủ hiện có của các thiết bị khiến nó trở nên cần thiết phải đặt rất nhiều trí tuệ vào bên trong mỗi thiết bị Việc đặt nhiều chức năng hơn vào phần cứng theo một số cách sẽ đơn giản hóa thiết bị, nhưng theo những cách khác lại làm cho thiết bị phức tạp hơn do khó bắt tay và trao đổi giữa việc xử lý các gói tin trong phần cứng so với phần mềm
Việc cố gắng đơn giản hóa bằng cách thêm tính năng vào thiết bị cũ thường dẫn đến sự phức tạp trong quá trình triển khai, thay vì làm cho chúng trở nên dễ dàng hơn.
Nhóm 10 15 hiện một sự tương tự với sự phát triển của Bộ xử lý trung tâm (CPU) tại đây Theo thời gian, CPU trở nên phức tạp hơn khi chúng cố gắng hỗ trợ ngày càng nhiều chức năng Cuối cùng, một mô hình CPU khác đơn giản hơn, dễ sử dụng hơn đã xuất hiện được gọi là mô hình Điện toán Bộ lệnh Giảm (RISC) Theo cách tương tự, kiến trúc RISC được dùng như một thiết lập lại cho kiến trúc CPU, vì vậy, SDN cũng có thể đóng vai trò là một thiết lập lại đơn giản hóa cho thiết kế thiết bị mạng
Ngoài việc tối ưu hóa thiết bị, có cơ hội để đơn giản hóa quản lý mạng của chúng Các nhà khai thác mạng hiện nay ưu tiên sử dụng hệ thống quản lý dựa trên chính sách thay vì các công cụ truyền thống như SNMP và CLI SDN (Mạng định nghĩa bằng phần mềm) có khả năng kích hoạt những giải pháp quản lý mạng hiệu quả này.
Nhu cầu sử dụng SDN thường được thúc đẩy bởi chi phí, và trong phần này, chúng ta sẽ phân tích tác động của hiện trạng mạng đến chi phí thiết kế, xây dựng, mua sắm và vận hành thiết bị mạng.
1.3.3.1 Chi phí phát triển tăng
Các thiết bị mạng hiện đại cần lưu trữ, quản lý và chạy phần mềm điều khiển phức tạp, dẫn đến sự gia tăng số lượng phần mềm trên thiết bị Mặc dù chi phí phần cứng mạng giảm, sự phức tạp này lại làm tăng áp lực lên chi phí thành phần phần cứng do yêu cầu về sức mạnh xử lý và dung lượng lưu trữ Phát triển phần mềm bên ngoài lĩnh vực mạng đã được hưởng lợi từ mã nguồn mở, cho phép các nhà phát triển tái sử dụng mã và tập trung vào giải quyết vấn đề cụ thể Tuy nhiên, trong môi trường mạng khép kín hiện nay, các nhà cung cấp phải tự phát triển và duy trì mã cho các chức năng phổ biến, dẫn đến tăng chi phí phát triển phần mềm.
Trong những năm gần đây, các nhà cung cấp silicon đã phát triển các ASIC thương mại (COTS) với tốc độ và chức năng vượt trội so với các phiên bản độc quyền Tuy nhiên, do phần mềm hạn chế, các nhà cung cấp thường không tận dụng hiệu quả các chip silicon này, vì phần mềm cần được thiết kế riêng cho từng sản phẩm Điều này dẫn đến việc các nhà cung cấp thiết bị mạng (NEMs) phải đầu tư vào việc viết và hỗ trợ một khối lượng phần mềm lớn hơn cần thiết, nếu họ muốn phát triển thiết bị trong môi trường thực sự mở.
Nhóm 10 16 phải chạy trên từng thiết bị mạng càng làm tăng chi phí này Có thêm chi phí phát sinh từ yêu cầu hỗ trợ nhiều phiên bản của các giao thức kế thừa cũng như theo kịp các giao thức mới nhất đang được các cơ quan tiêu chuẩn xác định
1.3.3.2 Tính hợp lý và khả năng chống thay đổi
Trong các kết nối mạng, thường thì người dùng không muốn thay đổi khi mọi thứ đang hoạt động ổn định, vì lo ngại rằng sự can thiệp có thể gây hỏng hóc và phải khởi động lại từ đầu Nhiều người đã gặp khó khăn khi tin tưởng vào những giải pháp mới từ nhà cung cấp, nhưng cuối cùng lại nhận thấy các giải pháp này cũng phức tạp và độc quyền như trước Dù có nỗ lực tiêu chuẩn hóa, vẫn tồn tại lý do mạnh mẽ để tiếp tục sử dụng giải pháp của một nhà cung cấp duy nhất, vì điều này giúp dễ dàng triển khai và trách nhiệm rõ ràng hơn Tuy nhiên, sự kháng cự với thay đổi có thể dẫn đến tình trạng trì trệ công nghệ lâu dài Mục tiêu lý tưởng là xây dựng một hệ thống mạng đơn giản, hiệu quả và tiết kiệm hơn, điều này chính là mục tiêu của SDN.
1.3.3.3 Tăng chi phí vận hành mạng
Khi mạng ngày càng phức tạp, chi phí hoạt động (OPEX) tăng lên, với các thành phần chi phí tổng thể trở nên quan trọng hơn so với chi phí vốn (CAPEX) Công nghệ SDN giúp tự động hóa quản lý mạng trong môi trường đa động lực, cho phép cung cấp dịch vụ mới nhanh chóng và chuyển đổi thiết bị giữa các dịch vụ khác nhau Nhờ đó, SDN góp phần giảm OPEX một cách hiệu quả.
1.3.4 Nhu cầu trung tâm giữ liệu
Kiến trúc và cách hoạt động của SDN
Kiến trúc
• Một đại diện điển hình của kiến trúc SDN bao gồm ba lớp: lớp ứng dụng, lớp điều khiển và lớp cơ sở hạ tầng
• Ba lớp này giao tiếp bằng cách sử dụng các giao diện lập trình ứng dụng (API) cầu bắc (northbound API) và cầu nam (southbound API) tương ứng
Các phần mềm ở tầng ứng dụng giao tiếp với lớp điều khiển thông qua API northbound, trong khi lớp điều khiển và các bộ chuyển mạch ở tầng hạ tầng tương tác qua các API southbound như OpenFlow.
SDN, hay Mạng định nghĩa phần mềm, thường gắn liền với OpenFlow, một giao thức southbound API OpenFlow cho phép giao tiếp hiệu quả giữa lớp hạ tầng và lớp điều khiển trong kiến trúc mạng.
Mặc dù có nhiều giao thức khác nhau, OpenFlow vẫn giữ được sự phổ biến nhờ vào lịch sử phát triển và vai trò là tiêu chuẩn đầu tiên cho các API southbound.
Lớp ứng dụng cung cấp giao diện lập trình mở, cho phép phần mềm Virtual Cloud Networks hỗ trợ các nhà cung cấp dịch vụ điện toán đám mây Nhờ đó, họ có thể cung cấp dịch vụ đám mây công cộng tự động và linh hoạt cho các doanh nghiệp.
Phần mềm này cho phép tổ chức và doanh nghiệp xây dựng một "đám mây ảo" riêng biệt, sử dụng hạ tầng đám mây công cộng tự phục vụ, giúp họ hoàn toàn kiểm soát các dịch vụ và ứng dụng mới cho người dùng.
Phần mềm Sentinel Security là giải pháp tự động kiểm soát truy cập và bảo vệ mạng cho tổ chức, doanh nghiệp, sử dụng công nghệ chuyển đổi OpenFlow thông qua bộ điều khiển để ngăn chặn xâm nhập hiệu quả.
Giảm thiểu sự phức tạp và chi phí của thiết bị phần cứng chuyên dụng, đồng thời đảm bảo khả năng mở rộng cho các ứng dụng mới là điều cần thiết.
Bộ điều khiển mạng cung cấp cái nhìn tổng quan và tự động cấu hình cho tất cả thiết bị trong hạ tầng, cho phép các quản trị viên thiết lập chương trình một cách dễ dàng và linh hoạt Nó mở rộng môi trường mạng cho các ứng dụng tự động và cung cấp API cho các nhà phát triển bên thứ ba để tùy chỉnh tích hợp Bộ điều khiển duy trì cái nhìn tổng thể về mạng, thực hiện các quyết định chính sách và kiểm soát tất cả thiết bị SDN, bao gồm cả hạ tầng mạng Nó cũng cung cấp API phía bắc cho các ứng dụng, thực hiện các quyết định liên quan đến định tuyến, chuyển tiếp, cân bằng tải và hơn thế nữa Thông thường, bộ điều khiển đi kèm với các mô-đun ứng dụng như công tắc học tập, bộ định tuyến và tường lửa cơ bản, nhưng ở đây chúng tôi tập trung vào bộ điều khiển.
Hình 4.5 mô tả cấu trúc của bộ điều khiển SDN, bao gồm các mô-đun cung cấp chức năng cốt lõi cùng với các API hướng bắc và hướng nam API SouthBound, chủ yếu là OpenFlow cho các giải pháp SDN mở, cho phép giao tiếp với các thiết bị SDN, trong khi một số giải pháp khác có thể sử dụng các giao thức thay thế như BGP Điều này cho thấy sự linh hoạt và đa dạng trong các sản phẩm cung cấp bộ điều khiển SDN.
Nhóm 10 22 cả OpenFlow và các lựa chọn thay thế cùng tồn tại trên cùng một bộ điều khiển Làm việc sớm trên API SouthBound đã dẫn đến nhiều hơn sự trưởng thành của giao diện đó liên quan đến định nghĩa và tiêu chuẩn hóa của nó Bản thân OpenFlow là tốt nhất ví dụ về điều này, nhưng các tiêu chuẩn thực tế như Cisco CLI và SNMP cũng thể hiện tiêu chuẩn hóa trong giao diện hướng về phía nam
Nhóm SDN nguồn mở (http://www.opensourcedn.org) đang đề xuất một vùng đối tác với tiêu chuẩn OpenFlow, nhằm khắc phục sự thiếu hụt trong tiêu chuẩn giao diện bộ điều khiển cho ứng dụng Các tổ chức như OpenSource tập đoàn SDN đang phát triển các đề xuất để chuẩn hóa vấn đề này Mặc dù chưa có tiêu chuẩn cụ thể, nhưng giao diện phía trên đã được triển khai dưới nhiều hình thức khác nhau, tạo ra cơ hội cho sự đổi mới và hợp tác giữa các nhà cung cấp và cộng đồng nguồn mở.
• Lớp cơ sở hạ tầng:
Các thiết bị mạng, bao gồm cả vật lý và ảo hóa, thực hiện việc chuyển tiếp gói tin dưới sự điều khiển của lớp điều khiển, cho phép hoạt động theo nhiều bộ điều khiển khác nhau, từ đó tăng cường khả năng ảo hóa mạng OpenFlow, một giao thức mạng mã nguồn mở, cung cấp khả năng truy cập và tự động cấu hình phần cứng Chức năng SDN trong lớp cơ sở hạ tầng giúp người quản trị dễ dàng cấu hình mạng, mang lại giao diện linh hoạt và khả năng lập trình theo tiêu chuẩn.
Giao diện hướng Bắc cho phép người quản trị mạng truy cập và cấu hình bộ điều khiển SDN, đồng thời lấy thông tin từ nó Giao diện này không chỉ hỗ trợ truy cập trực tiếp mà còn cung cấp API, cho phép các ứng dụng khác tương tác với bộ điều khiển SDN Nhờ vào API, người dùng có thể viết kịch bản và tự động hóa quản lý mạng của mình, mở ra nhiều khả năng cho các ứng dụng khác nhau trong việc truy cập bộ điều khiển SDN.
• Sử dụng giao diện GUI thông qua API để truy cập vào bộ điều khiển SDN
• Sử dụng các đoạn scripts java hoặc python để thông qua API truy cập vào bộ điều khiển SDN
Bộ điều khiển SDN giao tiếp với các thiết bị bên dưới thông qua giao diện hướng Nam, không phải là một giao diện vật lý mà là một giao diện mềm gọi là API API cho phép ứng dụng truy cập vào các ứng dụng khác thông qua các chức năng và cấu trúc dữ liệu đã được xác định trước Một số giao diện hướng Nam phổ biến trong SDN hiện nay bao gồm OpenFlow, CLI và Cisco OpFlex.
Hình 9: Kiến trúc SDN theo (a) miền, (b) lớp, (c) kiến trúc thiết kế hệ thống
Cách hoạt động của SDN
Ý tưởng của SDN (Mạng định nghĩa phần mềm) dựa trên việc tách biệt chức năng điều khiển và chuyển tiếp dữ liệu, kết hợp với ảo hóa mạng và tự động hóa thông qua khả năng lập trình.
Mặt phẳng điều khiển quyết định cách thức truyền tải các gói dữ liệu qua mạng, trong khi mặt phẳng dữ liệu thực hiện việc di chuyển các gói từ vị trí này sang vị trí khác.
Khi một gói tin đến bộ chuyển mạch trong mạng, các quy tắc tích hợp trong phần sụn độc quyền sẽ giúp định hướng gói tin đến nơi chuyển tiếp Những quy tắc xử lý gói này được cung cấp từ bộ điều khiển tập trung.
Các thiết bị chuyển mạch, hay còn gọi là thiết bị mặt phẳng dữ liệu, thực hiện việc truy vấn bộ điều khiển để nhận chỉ thị và quy tắc định hướng khi cần thiết Đồng thời, chúng cũng cung cấp cho bộ điều khiển thông tin về lưu lượng mà chúng xử lý.
Chế độ hoạt động của SDN được biết đến với tên gọi thích ứng hoặc động, trong đó một bộ chuyển mạch gửi yêu cầu định tuyến đến bộ điều khiển cho các gói tin chưa được định tuyến cụ thể.
• Quá trình này khác với cơ chế định tuyến thích ứng trong các mạng truyền thống
Trong các mạng truyền thống, switch thực hiện việc gửi yêu cầu định tuyến thông qua các bộ định tuyến Thuật toán định tuyến của bộ định tuyến hoạt động dựa trên cấu trúc liên kết của mạng (topo mạng) mà không cần thông qua bộ điều khiển tập trung.
Lớp ứng dụng trong mạng chứa các chức năng điển hình như hệ thống phát hiện xâm nhập, cân bằng tải và tường lửa, mà các tổ chức thường sử dụng Thay vì sử dụng các thiết bị chuyên dụng trong mạng truyền thống, như tường lửa và cân bằng tải, SDN (Mạng định nghĩa bằng phần mềm) áp dụng các ứng dụng để quản lý "hành vi" của data plane thông qua bộ điều khiển.
Lớp điều khiển trong mạng SDN đóng vai trò như bộ não, hoạt động trên một máy chủ để quản lý các chính sách và luồng lưu lượng trong toàn bộ mạng.
APIs Nam trong SDN được sử dụng để truyền thông tin đến các thiết bị Router và Switch Mặc dù nhiều người nhầm lẫn OpenFlow với SDN, nhưng thực tế OpenFlow chỉ là một phần trong kiến trúc tổng thể của SDN OpenFlow là một tiêu chuẩn mở cho giao thức truyền thông, cho phép control plane tương tác với forwarding plane Cần lưu ý rằng OpenFlow không phải là giao thức duy nhất đang có sẵn hoặc đang được phát triển cho SDN.
API Bắc trong SDN cho phép giao tiếp với các ứng dụng logic, giúp quản trị viên mạng dễ dàng quản lý lưu lượng truy cập và triển khai dịch vụ một cách nhanh chóng.
• Lớp cơ sở hạ tầng được tạo thành từ các thiết bị vật lý trong mạng
2.2.3 Khía cạnh ảo hóa của SDN
Khía cạnh ảo hóa của SDN được tối ưu hóa thông qua lớp phủ ảo, tạo ra một mạng riêng biệt về mặt logic trên nền tảng mạng vật lý.
Một phương pháp sáng tạo trong SDN là lớp phủ dựa trên hypanneror mạng, giữ nguyên mạng vật lý hiện tại cùng với các thiết bị và cấu hình của chúng Trên nền tảng mạng này, ảo hóa dựa trên hypanneror mạng được triển khai, cho phép các hệ thống ở các cạnh tương tác với các mạng ảo, đồng thời che giấu chi tiết của mạng vật lý từ các thiết bị kết nối với lớp phủ.
Trong hình 4.12, chúng tôi mô tả sự sắp xếp của các mạng ảo trên cơ sở hạ tầng mạng vật lý Các ứng dụng SDN có thể truy cập vào các tài nguyên mạng lớp phủ, cho phép chúng tương tác với các mạng và cổng ảo hóa mà không cần phải liên hệ trực tiếp với các đối tác vật lý của chúng.
SDN thông qua các mạng lưới lớp phủ dựa trên Hypervisor rất phù hợp với môi trường trung tâm dữ liệu đã triển khai phần mềm ảo hóa tính toán và lưu trữ Giải pháp này giúp giải quyết nhiều vấn đề, bao gồm việc giảm thiểu vụ nổ địa chỉ MAC trong các trung tâm dữ liệu và môi trường đám mây nhờ vào việc ẩn các địa chỉ MAC trong khung đóng gói Nó cũng khắc phục các giới hạn của VLAN, vì toàn bộ lưu lượng truy cập được đường hầm, loại bỏ nhu cầu về VLAN để hỗ trợ sự cô lập của nhiều người thuê nhà Hơn nữa, SDN nâng cao sự nhanh nhẹn và nhu cầu tự động hóa, cho phép triển khai trong phần mềm và xây dựng hoặc gỡ bỏ các mạng ảo chỉ trong một khoảng thời gian ngắn, so với việc thay đổi hạ tầng mạng vật lý.
Mặc dù các mạng lớp phủ mang lại nhiều lợi ích, chúng không thể giải quyết hoàn toàn các vấn đề tồn tại trong cơ sở hạ tầng vật lý, bao gồm việc yêu cầu cấu hình và bảo trì thủ công Hơn nữa, các mạng lớp phủ không cải thiện khả năng ưu tiên lưu lượng truy cập và hiệu quả trong cơ sở hạ tầng vật lý, dẫn đến những thách thức trong việc xử lý các liên kết bị chặn và cài đặt QoS của STP Các lớp phủ dựa trên hypanneror không thay đổi thiết bị mạng vật lý, do đó không đáp ứng được nhu cầu đổi mới và đơn giản hóa Tuy nhiên, chiến lược lớp phủ vẫn có thể được áp dụng để xây dựng mạng ảo trên hạ tầng vật lý hiện có hoặc kết hợp với các thiết bị mạng đơn giản hơn, cho thấy rằng việc đơn giản hóa thiết bị không bị loại trừ trong quá trình triển khai lớp phủ.
• Người dùng có thể triển khai các lớp phủ đầu cuối để trừu tượng hóa lưu lượng mạng và phân đoạn mạng cơ bản
Lợi ích và Thách thức của SDN
Lợi ích SDN
SDN tạo ra một mạng lưới lập trình linh hoạt, cho phép điều chỉnh tài nguyên mạng một cách nhanh chóng để đáp ứng nhu cầu thay đổi của doanh nghiệp Công nghệ này mang lại nhiều lợi ích cả về kinh doanh lẫn kỹ thuật, giúp tối ưu hóa hiệu suất và giảm chi phí vận hành.
Chính sách mạng SDN cho phép lập trình trực tiếp nhờ việc tách biệt các chức năng điều khiển và chuyển tiếp, giúp cấu hình mạng trở nên linh hoạt hơn thông qua các công cụ tự động hóa mã nguồn mở và độc quyền như OpenStack, Puppet, Salt, Ansible và Chef.
Quản lý tập trung trong mạng SDN cho phép trí tuệ mạng được tổ chức hợp lý, cung cấp cái nhìn tổng quát về toàn bộ mạng Điều này giúp các ứng dụng và công cụ chính sách mạng hoạt động như một công tắc logic duy nhất, nâng cao hiệu quả quản lý và điều khiển mạng.
SDN giúp giảm chi phí bằng cách hạn chế nhu cầu mua sắm phần cứng mạng chuyên dụng dựa trên ASIC, cho phép doanh nghiệp phát triển với mô hình trả tiền theo nhu cầu và khả năng mở rộng Hầu hết các thiết bị chuyển mạch hiện nay đều hỗ trợ khả năng SDN và phần mềm như OpenFlow, một giao thức truyền thông SDN Với cơ sở hạ tầng đã có bộ chuyển mạch hỗ trợ SDN, chỉ cần kích hoạt tùy chọn mà không cần thay thế toàn bộ hệ thống, giúp tiết kiệm thời gian và chi phí.
Giảm hoạt động mạng thông qua khả năng tự động hóa cập nhật phần mềm giúp loại bỏ nhu cầu tách và thay thế toàn bộ cơ sở hạ tầng khi có sự thay đổi trong nhu cầu kinh doanh Việc thống nhất các chính sách trên toàn mạng cũng giảm thiểu khả năng xảy ra lỗi do con người trong quá trình cập nhật Tự động hóa đảm nhận các nhiệm vụ đơn điệu, từ đó giảm thiểu thời gian quản lý mạng tổng thể cho các nhà quản trị và vận hành mạng.
SDN giúp tổ chức triển khai nhanh chóng các ứng dụng, dịch vụ và cơ sở hạ tầng mới, đáp ứng kịp thời các mục tiêu kinh doanh đang thay đổi Khi có sản phẩm mới, chỉ cần thực hiện một bản cập nhật đơn giản để triển khai trên toàn mạng.
Thách thức SDN
SDN cũng tồn tại những mặt trái, tương tự như nhiều công nghệ trong ngành CNTT Nó gặp phải các vấn đề liên quan đến bảo mật, thách thức về quy mô và sự thiếu hợp tác rộng rãi trong lĩnh vực này.
Quản lý tập trung mang lại sự thuận tiện trong việc kết nối mạng, nhưng cũng tiềm ẩn rủi ro bảo mật nghiêm trọng Điều này tạo ra một điểm tấn công duy nhất; nếu hệ thống này gặp sự cố, toàn bộ mạng sẽ bị ảnh hưởng.
Nút cổ chai của bộ điều khiển SDN xảy ra khi chỉ có một phiên bản duy nhất, dẫn đến tình trạng quá tải trong mạng với lượng lớn lưu lượng truy cập, bộ định tuyến và bộ chuyển mạch Việc này gây khó khăn trong việc giao tiếp hiệu quả giữa nhiều thiết bị với một bộ điều khiển duy nhất.
Hiện nay, không tồn tại tiêu chuẩn toàn cầu cho các API hướng bắc, dẫn đến việc các nhà cung cấp và tổ chức nguồn mở phát triển các API khác nhau cho bộ điều khiển SDN Tình trạng này gây khó khăn cho các nhà phát triển ứng dụng, vì họ buộc phải tạo ra nhiều phiên bản ứng dụng để tương tác với các bộ điều khiển khác nhau.
OpenFlow
Khái niệm
• Giao diện viền dưới (hay các giao diện lập trình ứng dụng viền dưới) là cầu nối giữa các thành phần điều khiển và chuyển tiếp
OpenFlow là tiêu chuẩn phổ biến và được triển khai rộng rãi trong mạng định nghĩa bằng phần mềm (SDN) Nó cung cấp một thông số kỹ thuật chung cho việc triển khai các thiết bị chuyển tiếp tương thích, đồng thời thiết lập các kênh giao tiếp giữa dữ liệu và các thiết bị trong mặt phẳng điều khiển.
• OpenFlow cung cấp ba thông tin cho các Network OSs (hệ điều hành mạng)
➢ Các bản tin sự kiện được gửi bởi các thiết bị chuyển tiếp tới bộ điều khiển khi có sự thay đổi trên một đường dẫn hoặc một cổng
➢ Số liệu thống kê dòng được khởi tạo bởi các thiết bị chuyển tiếp và được thu thập bởi bộ điều khiển
➢ Tin nhắn kèm trong gói
Lịch sử phát triển của OpenFlow
OpenFlow originated in 2006 when Martin Casado, a PhD student at Stanford University in Silicon Valley, California, developed a technology known as Ethane.
Theo OpenFlowNetworks.com, một trang web chuyên theo dõi các công nghệ mới nổi, SDN (Software-Defined Networking) được xem là giải pháp quản lý chính sách toàn cầu một cách tập trung, sử dụng mạng và bộ điều khiển dựa trên luồng với trọng tâm là an ninh mạng.
Ý tưởng này đã phát triển thành OpenFlow, nhờ vào các nghiên cứu sâu rộng từ các nhóm tại Stanford và Đại học California, Berkeley.
Phiên bản 1.1 của giao thức OpenFlow được phát hành vào ngày 28 tháng 2 năm 2011, và sự phát triển của tiêu chuẩn này hiện được quản lý bởi Open Network Foundation (ONF).
• Vào tháng 12 năm 2011, hội đồng quản trị ONF đã phê duyệt OpenFlow phiên bản 1.2 và xuất bản nó vào tháng 2 năm 2012
• Phiên bản hiện tại của OpenFlow là 1.5.1 Tuy phiên bản 1.6 đã có từ tháng 9 năm 2016 nhưng chỉ các thành viên của ONF mới có thể truy cập được.
Kiến trúc và giao thức
Hình 10: Cấu trúc OpenFlow Switch
• OpenFlow Switch bao gồm Bảng nhóm (Group table), các Bảng luồng (Flow table) và một kênh OpenFlow channel
Flow table và Group table chứa thông tin do Bộ điều khiển cung cấp để định tuyến gói tin Giao tiếp giữa Controller và switch OpenFlow được quản lý qua OpenFlow channel.
Match fields Priority Counters Instructions Timeouts Cookie
Các trường khớp (Match Fields) được sử dụng để so sánh với các gói tin, bao gồm cổng vào, tiêu đề gói tin và các tùy chọn dữ liệu theo bảng quy định Bảng dưới đây trình bày các trường cơ bản, dùng để đối chiếu với các gói tin đi vào Mỗi trường sẽ chứa một giá trị cụ thể hoặc một giá trị tùy ý (ANY).
ANY là một giá trị tùy ý, cho phép so sánh với bất kỳ giá trị nào Bên cạnh việc sử dụng tiêu đề gói tin, thông tin cổng vào và trường Metadata cũng có thể được áp dụng Metadata đóng vai trò quan trọng trong việc truyền tải thông tin giữa các bảng trong thiết bị chuyển mạch.
Transport source port/ICMP type 16
Transport destination port/ISMP code 16
Bảng 1: Các đầu vào của trường Match
• Priority: có nhiệm vụ là giá trị so sánh sự ưu tiên của flow entry
• Counters: là bộ đếm được cập nhật khi gói tin được so khớp
• Instructions: Trường chỉ các lệnh tương ứng với bản tin, dùng để chỉnh sửa các hành động hoặc quá trình xử lý pipeline
• Timeouts: Thời gian gói tin bị hết hạn
Cookie là dữ liệu mà bộ điều khiển lựa chọn để sử dụng trong việc thống kê lưu lượng, điều chỉnh và xóa lưu lượng.
Group Identifier Group Type Counters Action Buckets
• Mỗi mục của Group Table chứa định danh của nhóm, loại của nhóm, bộ đếm (counter) và danh sách các hoạt động pipeline
• Định danh nhóm (Group Identifier) là một số nguyên không dấu 32 bit, dùng để xác định nhóm
• Loại của nhóm (Group Type): xác định loại của nhóm
• Counters: Giá trị của trường này được cập nhật mỗi khi có gói tin được xử lý bởi nhóm
Danh sách các hoạt động pipeline, hay còn gọi là Action Buckets, là thứ tự các hoạt động trong pipeline, với mỗi hoạt động chứa một bộ hành động nhằm thực hiện hoặc chỉnh sửa các tham số liên quan Quá trình xử lý pipeline diễn ra theo trình tự này để đảm bảo tính hiệu quả và chính xác trong việc quản lý các hoạt động.
Hình 11: Mô tả quá trình xử lý pipeline
Các bảng Flow trong bộ chuyển mạch OpenFlow được đánh số từ 0, với quá trình xử lý pipeline khởi đầu từ bảng 0 Việc sử dụng các bảng Flow khác sẽ dựa vào kết quả so sánh các trường trong gói tin với các mục trong bảng tương ứng.
Khi gói tin khớp với mục trong bảng Flow table, các Instruction tương ứng sẽ được thực hiện Những Instruction này có thể chuyển gói tin đến một bảng khác thông qua lệnh Go-to, nơi mà quá trình xử lý gói tin sẽ tiếp tục Cần lưu ý rằng Entry chỉ có thể chuyển gói tin đến bảng Flow table có số thứ tự lớn hơn bảng hiện tại, và Entry của bảng cuối cùng không được phép chứa chỉ dẫn Go-to Nếu không có chuyển gói tin sang bảng khác trong quá trình xét các Entry, quá trình xử lý pipeline sẽ dừng lại và gói tin sẽ được xử lý theo các hành động liên quan, thường là chuyển tiếp đến một thiết bị chuyển mạch khác.
Khi gói tin được xét mà không tìm thấy Entry tương ứng trong bảng, tình huống này được gọi là "miss" Hành động tiếp theo sẽ phụ thuộc vào cấu hình của bảng; theo mặc định, gói tin sẽ được chuyển đến Controller qua kênh điều khiển thông qua bản tin dạng packet-in, hoặc có thể bị loại bỏ Flow Table cũng có thể chỉ định các hành động khác trong trường hợp này.
Khi xảy ra tình huống "miss", quá trình xử lý gói tin vẫn cần được tiếp tục Trong trường hợp này, gói tin sẽ được chuyển đến bảng có số thứ tự tiếp theo để tiếp tục được xử lý.
• Thiết bị chuyển mạch là thành phần tối quan trọng của mạng Trong thành phần của bộ chuyển mạch gồm các thành phần như sau:
• Các câu lệnh điều khiển chính của Controller được gửi đến bộ chuyển mạch bao gồm:
• Các trạng thái làm việc chính:
➢ Bị động (Sẽ đáp ứng lại từng gói tin của mạng mà không chuẩn bị hay cấu hình trước)
➢ Chủ động (Được chuẩn bị hay cấu hình trước, khi gói tin đến thì thực hiện theo những gì đã cài đặt sẵn)
• Mỗi bảng Flow Table trên bộ chuyển mạch chứa một hoặc nhiều Entry tương ứng với các dòng chảy dữ liệu nhất định:
➢ Trường so sánh (Match field)
Việc kiểm tra và so sánh gói tin bắt đầu từ bảng đầu tiên và có thể tiếp tục với các bảng tiếp theo Khi phát hiện sự trùng khớp, các chỉ dẫn tương ứng với từng entry sẽ được thực hiện Nếu không tìm thấy entry tương ứng, bộ chuyển mạch sẽ thực hiện một trong các hành động đã định sẵn.
➢ Gửi các gói tin đến Controller để Controller tiến hành phân tích
➢ Tiếp tục tìm kiếm trong bảng tiếp theo
Bộ chỉ dẫn trong mỗi Entry mô tả các hành động mà bộ chuyển mạch cần thực hiện khi có sự trùng khớp trong quá trình so sánh.
➢ Chỉnh sửa tiêu đề gói tin
➢ Gửi gói tin đến Group Table để xử lý
➢ Gửi gói tin đến pipeline processing để xử lý
• Việc chuyển tiếp gói tin có thể là gửi gói tin đến:
➢ Port vật lý của bộ chuyển mạch
➢ Port ảo của bộ chuyển mạch
➢ Port dành riêng của bộ chuyển mạch
Port ảo của bộ chuyển mạch giúp xác định chính xác nhóm các kênh tổng hợp và đường hầm, đồng thời cho phép nhận diện các port có thông tin phản hồi (loopback).
Port ảo dành riêng của bộ chuyển mạch được xác định bởi giao thức OpenFlow, cho phép mô tả các quy tắc chuyển tiếp gói tin một cách linh hoạt và hiệu quả.
Xử lý trong Group Table được sử dụng để thực hiện các hành động phụ đối với gói tin, với các nhóm chứa các bộ hoạt động phức tạp hơn như đa đường và định tuyến nhanh.
• Pipeline processing cho phép chuyển tiếp gói tin vào bảng tiếp theo hoặc truyền các thông tin dịch vụ giữa các bảng dưới dạng metadata
Các nhà sản xuất bộ chuyển mạch có quyền tự quyết định phương pháp cấu trúc bên trong thiết bị của mình, nhưng quy trình xem xét và so sánh gói tin cùng các quy tắc xử lý gói tin phải được thống nhất.
4.3.2 Controller (Bộ điều khiển SDN)
Ưu điểm của giao thức OpenFlow
Công nghệ SDN dựa trên OpenFlow giúp nhân viên IT xử lý hiệu quả các ứng dụng băng thông cao và thay đổi nhanh chóng, từ đó tạo ra mạng linh hoạt đáp ứng nhu cầu kinh doanh biến đổi Kiến trúc SDN này không chỉ giảm thiểu sự phức tạp trong quản lý mà còn mang lại nhiều lợi ích cho doanh nghiệp và nhà khai thác mạng.
Phần mềm điều khiển SDN cho phép tập trung hóa điều khiển trong môi trường đa nhà cung cấp thiết bị, có khả năng quản lý mọi thiết bị mạng hỗ trợ OpenFlow, bao gồm cả switch, router và các switch ảo.
Giảm sự phức tạp trong quản lý mạng là điều cần thiết, và kiến trúc SDN dựa trên OpenFlow mang đến một framework tự động hóa linh hoạt Điều này giúp tối ưu hóa quy trình quản lý mạng, nâng cao hiệu suất và giảm thiểu lỗi do con người.
Nhóm 10 36 framework này có thể phát triển các công cụ tự động hóa các nhiệm vụ hiện đang được thực hiện bằng tay.
Việc áp dụng OpenFlow giúp các nhà khai thác mạng có khả năng lập trình lại mạng trong thời gian thực, từ đó đáp ứng nhanh chóng các nhu cầu kinh doanh và yêu cầu của người dùng khi có sự thay đổi Tốc độ đổi mới cao hơn này mang lại lợi thế cạnh tranh cho các doanh nghiệp trong môi trường công nghệ ngày càng phát triển.
Gia tăng độ tin cậy và khả năng an ninh của mạng là ưu điểm lớn của kiến trúc SDN dựa trên OpenFlow Nhân viên IT có thể định nghĩa các trạng thái cấu hình và chính sách ở mức cao, áp dụng chúng vào cơ sở hạ tầng mạng Kiến trúc này cung cấp khả năng kiểm soát và tầm nhìn toàn diện, đảm bảo việc quản lý truy cập, định hình lưu lượng, chất lượng dịch vụ (QoS), an ninh và các chính sách khác được thực hiện đồng nhất trên toàn bộ hệ thống mạng không dây và có dây, bao gồm văn phòng, chi nhánh, cơ sở chính và trung tâm dữ liệu (DC).
Mô hình điều khiển mạng dựa trên flow của OpenFlow cho phép nhân viên IT áp dụng các chính sách chi tiết theo phiên, người dùng, thiết bị và mức ứng dụng Điều này giúp tự động điều chỉnh mạng một cách hiệu quả trong một môi trường trừu tượng hóa cao.
Kiến trúc SDN dựa trên OpenFlow cải thiện trải nghiệm người dùng bằng cách tập trung hóa điều khiển mạng và cung cấp trạng thái thông tin sẵn có cho các ứng dụng cấp cao hơn, giúp đáp ứng linh hoạt hơn với các nhu cầu thay đổi của người dùng.