CHƯƠNG 2: MẠNG ĐỊNH NGHĨA BẰNG PHẦN MỀM
2.3. Những điểm khác nhau cơ bản giữa mạng truyển thống và mạng SDN
Phần điều khiển mạng và phần vận chuyển dữ liệu trên mạng truyền thống đều được tích hợp trong thiết bị mạng, trong khi đó đối với mạng định nghĩa bằng phần mềm (SDN) thì phần điều khiển mạng được tách riêng khỏi thiết bị mạng và được chuyển đến một nơi khác được gọi là bộ điều khiển SDN.
Hình 2.2: Kiến trúc tổng quan mạng SDN [2]
19
Phần thu thập và xử lý các thông tin: Đối với mạng truyền thống, phần này được thực hiện ở tất cả các phần tử trong mạng. Còn trong mạng định nghĩa bằng phần mềm (SDN) thì phần này được tập trung xử lý ở bộ điều khiển SDN.
Đối với mạng truyền thống phần điều khiển và phần vận chuyển dữ liệu cùng nằm trên một thiết bị mạng vật lý, vì vậy không thể được lập trình bởi các ứng dụng, các thiết bị mạng phải được cấu hình một cách riêng lẽ và thủ công. Trong khi đó đối với mạng SDN phần điều khiển được tách rời với phần vận chuyển dữ liệu, do vậy mạng có thể lập trình bởi các ứng dụng, bộ điều khiển SDN có thể tương tác đến tất cả các thiết bị trong mạng.
Phần điều khiển mạng được tách rời và được tập trung ở bộ điều khiển SDN.
Điều này có nghĩa là các thiết bị mạng ở lớp thiết bị phần cứng không cần phải hiểu và xử lý các giao thức phức tạp mà chúng chỉ nhận và vận chuyển dữ liệu theo một đường nào đó dưới sự chỉ huy của bộ điều khiển SDN. Dựa vào bộ điều khiển SDN mà các nhà khai thác và quản trị mạng có thể lập trình cấu hình trên đó thay vì phải thực hiện thủ công hàng ngàn câu lệnh cấu hình trên các thiết bị riêng lẻ. Điều này giúp triển khai các ứng dụng mới và các dịch vụ mạng một cách nhanh chóng và linh hoạt [1].
2.4. Những ƣu điểm và những hạn chế của mạng SDN 2.4.1. Ƣu điểm
Mạng định nghĩa bằng phần mềm SDN, với sự tách rời vốn có của phần điều khiển mạng và chức năng vận chuyển dữ liệu, cung cấp khả năng kiểm soát mạng tốt hơn thông qua lập trình. Mạng SDN không chỉ chuyển tiếp gói ở cấp chuyển đổi mà còn liên kết điều chỉnh ở mức liên kết dữ liệu, phá vỡ rào cản của lớp. Ngoài ra, với khả năng có được trạng thái mạng tức thời, mạng SDN cho phép kiểm soát tập trung thời gian thực của mạng dựa trên cả trạng thái mạng tức thời và chính sách do người dùng xác định.
Điều này tiếp tục mang đến lợi ích trong việc tối ưu hóa cấu hình mạng và cải thiện hiệu suất mạng. Ưu điểm của SDN được chứng minh rõ hơn khi nó cung cấp một nền tảng thuận tiện để thử nghiệm các kỹ thuật mới và các thiết kế mạng mới, do khả năng lập trình mạng của nó và khả năng xác định các mạng ảo bị cô lập thông qua phần điều khiển mạng. [8]
20
Nâng cao cấu hình: Trong quản lý mạng, cấu hình là một trong những chức năng quan trọng nhất. Cụ thể, khi thiết bị mới được thêm vào mạng hiện có, cần phải có cấu hình phù hợp để mạng được đồng bộ và đạt được hiệu suất tối đa. Tuy nhiên, do sự không đồng nhất giữa các nhà sản xuất thiết bị mạng, cấu hình mạng hiện tại thường phải xử lý thủ công, việc cấu hình thủ công này mất rất nhiều thời gian và dễ bị lỗi. Đồng thời, cũng cần có đầu tư đáng kể để khắc phục sự cố mạng có lỗi cấu hình. Nhìn chung, người ta chấp nhận rằng, với thiết kế mạng hiện tại, cấu hình tự động của mạng vẫn là một thách thức lớn. Mạng SDN sẽ giúp khắc phục tình trạng này trong quản lý mạng. Trong SDN, việc hợp nhất phần điều khiển mạng (Control Plane) trên tất cả các loại thiết bị mạng, bao gồm các bộ chuyển mạch, bộ định tuyến, Bộ dịch địa chỉ mạng (NAT), tường lửa và bộ cân bằng tải, cho phép tự động cấu hình các thiết bị mạng từ một nơi duy nhất (gọi là bộ điều khiển SDN) và kiểm soát bằng phần mềm. Như vậy, toàn bộ mạng có thể được cấu hình theo chương trình và tối ưu hóa động dựa trên trạng thái mạng.
Cải thiện hiệu suất: Trong một mạng, một trong những mục tiêu chính là tối đa hóa việc sử dụng cơ sở hạ tầng mạng được đầu tư. Tuy nhiên, do cùng tồn tại các công nghệ và các bên liên quan khác nhau trong một mạng duy nhất, việc tối ưu hóa hiệu suất của toàn bộ mạng là khó khăn. Các cách tiếp cận hiện tại thường tập trung vào việc tối ưu hóa hiệu suất của một tập hợp các mạng con. Rõ ràng, phương pháp này, dựa trên thông tin cục bộ mà không xem xét kiểm tra chéo, có thể dẫn đến hiệu suất dưới mức tối ưu. Sự ra đời của mạng SDN mang đến cơ hội cải thiện hiệu suất trên toàn mạng. Cụ thể, SDN cho phép điều khiển tập trung với chế độ xem mạng một cách tổng quát và điều khiển phản hồi với thông tin được trao đổi giữa các lớp khác nhau trong kiến trúc mạng. Như vậy, các vấn đề về tối ưu hóa hiệu năng đầy thách thức sẽ trở nên dễ quản lý hơn với các thuật toán tập trung được thiết kế đúng. Theo các giải pháp mới cho các vấn đề trước đây, như lập lịch lưu lượng dữ liệu, kiểm soát tắc nghẽn từ đầu đến cuối, định tuyến gói, cân bằng tải, hoạt động hiệu quả năng lượng và Chất lượng dịch vụ (QoS ), có thể được phát triển và dễ dàng triển khai để xác minh tính hiệu quả của chúng trong việc cải thiện hiệu suất mạng.
21
Sự đổi mới: Ngày nay với sự phát triển liên tục của các ứng dụng mạng, mạng trong tương lai nên khuyến khích đổi mới thay vì cố gắng dự đoán và đáp ứng các yêu cầu của các ứng dụng trong tương lai. Thế nhưng, bất kỳ ý tưởng hoặc thiết kế mới nào cũng phải đối mặt với những thách thức trong việc triển khai, thử nghiệm. Rào cản chính phát sinh từ phần cứng độc quyền được sử dụng rộng rãi trong các thành phần mạng thông thường. Bên cạnh đó, ngay cả khi có thể thử nghiệm thì chúng cũng thường được tiến hành trong một thử nghiệm đơn giản hóa riêng biệt. Những thử nghiệm này không đủ khả năng để thích ứng với những ý tưởng mới hoặc thiết kế mạng sau này. SDN khuyến khích đổi mới bằng cách cung cấp nền tảng mạng có thể lập trình để thực hiện, thử nghiệm và triển khai các ý tưởng mới, ứng dụng mới và dịch vụ mới một cách thuận tiện và linh hoạt. Khả năng cấu hình cao của SDN cung cấp sự phân tách rõ ràng giữa các mạng ảo cho phép thử nghiệm trên môi trường thực. Việc triển khai các ý tưởng mới có thể được thực hiện thông qua quá trình chuyển đổi liền mạch từ giai đoạn thử nghiệm sang giai đoạn vận hành.
Với kiến trúc mạng SDN thì các bộ điều khiển có thể được lập trình trực tiếp.
Mạng có thể được điều chỉnh, thay đổi cấu hình một cách dễ dàng, linh hoạt thông qua bộ điều khiển mà không cần phải cấu hình thay đổi trực tiếp trên các thiết bị mạng. Do phần điều khiển mạng được tập trung trên bộ điều khiển nên mạng được quản lý một cách tập trung. Việc cấu hình lớp cơ sở hạ tầng có thể được lập trình trên lớp ứng dụng và truyền đạt xuống các lớp bên dưới. Do các thiết bị mạng có thể được ảo hóa nên SDN giúp giảm thiểu các chi phí mua sắm phần cứng trong việc xây dựng, thi công các dịch vụ mạng.
Kiến trúc mạng SDN giúp người dùng dễ dàng thiết kế, triển khai, quản lý và mở rộng mạng thông qua các phần tử mạng đã được gia tăng khả năng lập trình. Với sự phát triển mạng mẽ của mạng SDN trong những năm gần đây đã mở ra cơ hội cho các nhà kinh doanh cung cấp thiết bị mạng khi phần điều khiển được tách rời khỏi phần cứng [9].
2.4.2. Hạn chế
Hiện nay vấn đề bảo mật cũng là một thách thức không nhỏ đối với công nghệ mạng SDN. SDN được quản lý tập trung bởi một bộ điều khiển (controller) duy nhất, do
22
đó nó là một mục tiêu được nhắm tới cho tin tặc (hacker). Một khi đã tấn công được vào bộ điều khiển này thì kẻ tấn công có thể chiếm toàn bộ quyền điều khiển của mạng [10].
Việc chuyển đổi từ hệ thống mạng truyền thống sang hệ thống mạng mới này sẽ phải là một quá trình lâu dài, giống như ảo hóa. Một vấn đề nữa là khả năng tương thích làm sao để các giải pháp SDN được tích hợp vào mạng hiện tại. Hiện tại, các hạ tầng mạng truyền thống đang sử dụng khác rất nhiều so với các kiến trúc mạng phi tập trung với phần điều khiển mạng và chức năng vận chuyển dữ liệu cùng nằm trên một thiết bị mạng. Vì vậy, một câu hỏi đặt ra rất lớn cho các nhà nghiên cứu là liệu công nghệ mạng SDN có thể thực hiện được không khi mà thị trường trung tâm dữ liệu (Data Center) đang còn trì trệ [9].
Với những hứa hẹn trong tương lai về cấu hình nâng cao, hiệu suất được cải thiện và khuyến khích đổi mới, mạng SDN vẫn còn ở giai đoạn sơ khai. Nhiều vấn đề cơ bản vẫn chưa được giải quyết triệt để bởi những lý do sau đây: [8]
Thứ nhất: Về vấn đề bảo mật, nếu tin tặc có thể tấn công vào hệ thống thì chúng có thể truy cập các thiết lập và thay đổi chúng ở bất cứ nơi đâu và bất kỳ thời điểm nào.
Thứ hai: Quá trình triển khai mạng SDN là một quá trình lâu dài theo từng bước một, chúng ta không thể thay thế một lúc toàn bộ các thiết bị hiện có thành OpenFlow switch được bởi vì điều đó sẽ rất tốn kém.
SDN cung cấp một nền tảng cho các kỹ thuật mạng thông minh, tuy nhiên việc chuyển từ mạng truyền thống sang SDN có thể gây gián đoạn. Các mối quan tâm phổ biến bao gồm khả năng tương tác SDN với các thiết bị mạng cũ, thiếu chuyên gia hỗ trợ kỹ thuật. Việc triển khai SDN hiện tại thường được giới hạn ở các thử nghiệm nhỏ thường phục vụ cho mục đích nghiên cứu nên vẫn chưa được triển khai trong thực tế.
23
2.5. Phần điều khiển mạng và Chức năng vận chuyển dữ liệu
Hình 2.3: Control plane và Data plane [11]
2.5.1. Phần điều khiển mạng (Control Plane)
Phần điều khiển mạng (Control Plane) hoạt động như một lớp trung gian giữa các ứng dụng và chức năng vận chuyển dữ liệu (Data Plane). Phần điều khiển mạng trong SDN được gọi là bộ điều khiển, nó là bộ não trong kiến trúc mạng SDN; Bộ điều khiển giao tiếp với các ứng dụng và với các thiết bị chuyển tiếp thông qua các API. Do đó, trong bộ điều khiển, điều quan trọng là thiết kế giao diện và bộ điều khiển một cách thân thiện và hiệu quả [12].
Control Plane là thành phần điều khiển mạng 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 việc vận chuyển dữ liệu. Đối với bộ
24
chuyển tiếp thì phần điều khiển mạng (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 bộ định tuyến thì phần điều khiển mạng (Control Plane) là các giao thức định tuyến như OSPF, EIGRP, BGP, …[11].
2.5.2. Chức năng vận chuyển dữ liệu (Data Plane)
Thành phần vận chuyển dữ liệu (Data Plane) có một chức năng chính là chuyển tiếp gói tin. Ngoài ra, nó còn có thể hỗ trợ một số loại dịch vụ trong mạng để nhận ra các dịch vụ khác nhau như bộ nhớ đệm và chuyển mã trong mạng [12].
Khi nhận được gói tin, thiết bị chuyển mạch trước tiên xác định quy tắc chuyển tiếp khớp với gói và sau đó chuyển tiếp gói tới bước tiếp theo tương ứng. So với chuyển tiếp gói trong các mạng kế thừa dựa trên địa chỉ IP hoặc MAC, chuyển tiếp gói trong kiến trúc mạng SDN cũng có thể dựa trên các tham số khác, ví dụ: cổng TCP hoặc UDP, mạng cục bộ ảo (Vlan)... Sử dụng một vectơ để đưa ra quyết định chuyển tiếp chắc chắn sẽ làm tăng độ phức tạp trong xử lý, tính toán, dẫn đến sự đánh đổi cơ bản giữa chi phí và hiệu quả trong xử lý gói tin. [8]
Data Plane là thành phần thực hiện chức năng vận chuyển dữ liệu (Forwarding Data) dựa vào bảng FIB (Forwarding Information Base) mà phần điều khiển mạng (Control Plane) đã xây dựng. dữ liệu sẽ đổ về bộ chuyển tiếp (switch) hoặc bộ định tuyến (router) tại các cổng (port) tương ứng như 10Gb, 100Gb Ethernet và cũng đi ra khỏi bộ chuyển tiếp và bộ định tuyến với các cổng (port) tương ứng. [11]
2.6. Giao thức OpenFlow
Giao thức OpenFlow định nghĩa một API cho phép giao tiếp giữa bộ điều khiển với các thiết bị chuyển tiếp (Hình 2.4). Do đó, cả bộ điều khiển và các thiết bị chuyển tiếp đều phải hiểu giao thức OpenFlow. Bộ điều khiển thao tác làm hỏng các bảng luồng (Flow table) của các thiết bị chuyển tiếp bằng cách thêm, cập nhật và xóa các mục luồng.
Bộ điều khiển giao tiếp với các các thiết bị chuyển tiếp thông qua một kênh an toàn. Các thiết bị chuyển tiếp hỗ trợ chuyển tiếp dựa trên luồng bằng cách giữ một hoặc nhiều bảng luồng. Bảng luồng được sử dụng để xác định cách xử lý các gói tin đã cho (Hình 2.4)
25
Hình 2.4: Sơ đồ Giao thức OpenFlow [12]
Các mục luồng cũng duy trì các bộ đếm để thu thập số liệu thống kê cho các loại luồng cụ thể (ví dụ: số lượng byte được truyền). Khi các thiết bị chuyển tiếp nhận được một gói tin gây ra lỗi trong quá trình so khớp với bảng chuyển tiếp. Gói tin đó có thể được chuyển tiếp đến bộ điều khiển, được chuyển đến bảng lưu lượng tiếp theo hoặc bị hủy. Khi gói được chuyển tiếp đến bộ điều khiển, bộ chuyển đổi sau đó quyết định cách xử lý gói này. Bộ điều khiển có thể thả gói hoặc nó có thể thêm một mục nhập luồng cho hướng chuyển đổi về cách chuyển tiếp các gói tương tự trong tương lai. Từ phiên bản 1.1, Giao thức OpenFlow hỗ trợ nhiều bảng luồng và xử lý luồng. Do đó, tiếp tục quá trình so khớp trên bảng luồng tiếp theo có thể là một tùy chọn cho các gói không khớp. Các phiên bản của giao thức OpenFlow khác nhau đã được phát hành và các tính năng của từng phiên bản như sau: Phiên bản 1.2 hỗ trợ cấu trúc khớp linh hoạt hơn, từng là cấu trúc có độ dài cố định tĩnh và nhiều giao thức hơn như IPv6. Phiên bản 1.3 cung cấp nhiều hỗ trợ hơn cho các giao thức như MPLS BoS và các tiêu đề mở rộng IPv6. Nó cũng thể hiện tốt
26
hơn về khả năng chuyển đổi (nghĩa là đàm phán khả năng tái cấu trúc) và cải thiện các phương tiện đo (ví dụ: trên mỗi lần đo lưu lượng). Phiên bản 1.4 cải thiện kết hợp mở rộng lưu lượng được giới thiệu trong phiên bản 1.2, cung cấp khả năng phân loại linh hoạt hơn cho người dùng để khớp với các trường tiêu đề gói và phân loại luồng. Phiên bản 1.4 cũng hỗ trợ cổng quang [12].
Để tách biệt hẳn phần điều khiển với chức năng vận chuyển dữ liệu và cung cấp khả năng lập trình cho lớp điều khiển, ONF sử dụng giao thức OpenFlow. Giao thức này là tiêu chuẩn đầu tiên, cung cấp khả năng truyền thông giữa các lớp điều khiển và lớp chuyển tiếp trong kiến trúc mạng SDN. Giao thức OpenFlow cho phép truy cập trực tiếp và điều khiển chức năng vận chuyển dữ liệu của các thiết bị mạng như switch và router, cả thiết bị vật lý và thiết bị ảo do đó giúp di chuyển phần điều khiển mạng ra khỏi các thiết bị chuyển mạch thực tế tới phần mềm điều khiển trung tâm [13].
OpenFlow là giao thức hoạt động giữa lớp điều khiển (control layer) và lớp cơ sở hạ tầng (Infrastructure layer). Giao thức OpenFlow có hai nhiệm vụ chính: [9, 13].
- Giám sát hoạt động của các thiết bị mạng: Lưu lượng mạng, trạng thái hoạt động của các nút mạng, các thông tin cơ bản về các thiết bị…
- Điều khiển hoạt động của thiết bị mạng: Điều khiển luồng dữ liệu (routing), bảo mật …
Một điểm rất đặc biệt của giao thức OpenFlow là có thể hoạt động rất tốt giữa cả các thiết bị mạng ảo và các thiết bị mạng vật lý. Sự phát triển mạnh mẽ của công nghệ ảo hóa hiện nay đã nâng cao vai trò của các thiết bị mạng ảo, do đó việc đồng bộ giữa các thiết bị mạng ảo và các thiết bị mạng vật lý là hết sức quan trọng. SDN sử dụng giao thức OpenFlow cho phép người dùng giải quyết các ứng dụng băng thông cao và biến đổi động hiện nay, làm cho mạng thích ứng với các nhu cầu kinh doanh thay đổi, và làm giảm đáng kể các hoạt động và quản lý phức tạp [9, 13].