1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu và thực hiện phương pháp tiết kiệm năng lượng trên bộ chuyển mạch openflow

80 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 10,42 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một trong những giải pháp được đưa ra đó là điều khiển một cách thông minh việc tiêu thụ năng lượng của các bộ chuyển mạch sử dụng trong các trung tâm dữ liệu.. Một trong những giải pháp

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN VĂN CƯỜNG

NGHIÊN CỨU VÀ THỰC HIỆN PHƯƠNG PHÁP

TIẾT KIỆM NĂNG LƯỢNG TRÊN BỘ

CHUYỂN MẠCH OPENFLOW

Đà Nẵng – Năm 2020

DUT.LRCC

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN VĂN CƯỜNG

NGHIÊN CỨU VÀ THỰC HIỆN PHƯƠNG PHÁP

TIẾT KIỆM NĂNG LƯỢNG TRÊN BỘ CHUYỂN MẠCH OPENFLOW

Chuyên ngành : Kỹ thuật Điện tử

Trang 3

Tôi xin cam đoan đề tài nghiên cứu của tối hoàn toàn do tôi tự làm dưới sự hướng dẫn của Thầy giáo PGS.TS Nguyễn Văn Cường Những kết quả nghiên cứu, thực nghiệm được thực hiện trên phần mềm mô phỏng các số liệu, kết quả trình bày là hoàn toàn trung thực

Tác giả luận văn

Nguyễn Văn Cường

DUT.LRCC

Trang 4

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1 VẤN ĐỀ TIẾT KIỆM NĂNG LƯỢNG VÀ GIẢI PHÁP SỬ DỤNG MẠNG OPENFLOW 3

1.1 Giới thiệu 3

1.2 Vấn đề tiết kiệm năng lượng 3

1.3 Giải pháp sử dụng mạng OpenFlow 5

1.3.1 Sự cần thiết cho một kiến trúc mạng mới 5

1.3.2 Mục tiêu của mạng OpenFlow 6

1.3.3 Giao thức OpenFlow 8

1.4 Kết luận 9

CHƯƠNG 2 ỨNG DỤNG MẠNG OPENFLOW TRÊN NỀN TẢNGNETFPGA10 2.1.Giới thiệu 10

2.1.1 Ứng dụng của FPGA 10

2.1.2 Kiến trúc của FPGA 10

2.2 Chuyển mạch OpenFlow trên nền tảng NetFPGA 13

2.2.1 Kiến trúc bộ chuyển mạch OpenFlow 13

2.2.2 Giới thiệu về NetFPGA 21

2.2.3 Xây dựng bộ chuyển mạch OpenFlow trên nền tảng NetFPGA 24

2.3 Kết luận chương 2 25

CHƯƠNG 3 TRIỂN KHAI HỆ THỐNG MẠNG OPENFLOW TRÊN NỀN TẢNG KIT NETFPGATRONG THỰC TẾ 26

3.1 Giới thiệu mô hình thử nghiệm 26

3.2 Xây dựng chuyển mạch OpenFlow 26

3.3.Kết luận chương 3 28

CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH TIẾT KIỆM NĂNG LƯỢNG CHO CHUYỂN MẠCH OPENFLOW 29

4.1 Giải pháp tiết kiệm năng lượng 29

4.2 Thiết kế các mô đun 29

4.2.1 Mô đunthiết lập mục nhập bảng luồng 29

4.2.2.Mô đun điều khiển bảng luồng 39

4.2.3.Mô đun xử lý hành động 43

4.2.4.Mô đun chính sách điều khiển 46

4.3 Kết luận chương 4 48

CHƯƠNG 5 THỰC HIỆN ĐO ĐẠC VÀ KẾT QUẢ 49

DUT.LRCC

Trang 5

5.1.Chuyển mạch OpenFlow có chức năng tiết kiệm năng lượng 49

5.2 Đo kiểm tra hệ thống 49

5.3.Thời gian phục vụ và thời gian tạm trú 50

5.4 Kết quả 51

5.5 Kết luận chương 5 53

KẾT LUẬN VÀ ĐỀ XUẤT HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 54

DANH MỤC TÀI LIỆU THAM KHẢO 55 PHỤ LỤC

QUYẾT ĐỊNH GIAO ĐỀ TÀI (Bản sao)

DUT.LRCC

Trang 6

NGHIÊN CỨU VÀ THỰC HIỆN PHƯƠNG PHÁP TIẾT KIỆM NĂNG LƯỢNG

TRÊN BỘ CHUYỂN MẠCH OPENFLOW

Học viên: Nguyễn Văn Cường Chuyên ngành: Kỹ thuật Điện tử

Mã số: Khóa: K35 - Trường Đại học Bách khoa - ĐHĐN

Tóm tắt - Theo báo cáo thống kê internet Việt Nam, hiện đang có 68,17 triệu người đang sử

dụng dịch vụ Internet tại Việt Nam vào tháng 1 năm 2020, 94% là tỷ lệ người dùng Internet ở Việt Nam sử dụng Internet hàng ngày và 6% là số người sử dụng Internet ít nhất một lần trong tuần Để áp ứng nhu cầu sử dụng số lượng máy chủ trong mỗi trung tâm dữ liệu đang tăng lên rất nhanh chóng, do

đó một điều tất yếu là số lượng các thiết bị chuyển mạch để kết nối các máy chủ lại với nhau cũng phải tăng lên Mặt khác, năng lượng tiêu thụ của thiết bị trong trường hợp hoạt động với lưu lượng thấp, hoặc trạng thái nghỉ, tiêu thụ năng lượng gần bằng với trường hợp hoạt động với lưu lượng cao, tiêu tốn khoảng từ 20% đến 30% và hầu như không thay đổi Dẫn đến nhu cầu về điện năng tiêu thụ tăng Mục tiêu là nghiên cứu, thực hiện mở rộng các kỹ thuật điều khiển của bộ chuyển mạch nhằm tiết kiệm năng lượng Nội dung chính của đề tài có hai mặt Một mặt, là triển khai hệ thống OpenFlow (bộ chuyển mạch và bộ điều khiển) bằng ngôn ngữ phần cứng trên nền tảng dựa trên FPGA Mặt khác,

là để đo lường chỉ số hiệu suất của chuyển mạch OpenFlow, đặc biệt là thời gian cung cấp dịch vụ (chuyển mạch và bộ điều khiển) và thời gian tạm trú

Vì vậy, đây chính là lý do luận văn sẽ tập trung nghiên cứu phương pháp tiết kiệm năng lượng trên bộ chuyển mạch

RESEARCH AND IMPLEMENTATION OF ENERGY SAVING SOLUTIONS

ON OPENFLOW SWITCHES Abstract

According to the Vietnam’s internet statistics report, there are currently 68.17 million people using Internet services in Vietnam in January 2020: there are 94% of the rate of Internet users in Vietnam using the Internet every day and 6 % is the number of people using the Internet at least once a week.Tomeet the need of using the number of servers in each data center Which is increasing rapidly,

it is inevitable that the number of switches connecting servers together must also increase up On the other hand, the energy consumption of the device in the case of low flow operation, or at rest is close

to that of the high flow operation, consuming between 20% and 30% and barely changed This leads

to increased demand for power consumption

The goal is to research and expand control techniques of the switch to save energy The main objective of this project has two sides On one hand, it is to implement OpenFlow system (switch and controller) using a hardware language on FPGA-based platform On the other hand, it is also to measure the performance metrics of the OpenFlow switch, especially the service time (switch and controller) and the sojourn time

Therefore, this is the reason why the thesis will focus on researching the energy saving method

on switches

DUT.LRCC

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

Từ viết tắt Thuật ngữ tiếng anh Thuật ngữ tiếng việt

ASIC Application-Specific Integrated

Circuit

Vi mạch tích hợp chuyên dụng

ARP Address Resolution Protocol Giao thức TCP/IP được sử dụng để

liên kết động một địa chỉ IP cấp cao vào một địa chỉ phần cứng cấp thấp CLB Configurable Logic Block Khối logic có thể lập trình được CPU Central Processing Unit Đơn vị xử lý trung tâm

DRAM Dynamic Random Access

Memory

Bộ nhớ truy cập ngẫu nhiên động

FPGA Field Programmable Gate Array Vi mạch dùng cấu trúc mảng phần tử

PLD Programmable Logic Device Thiết bị logic có thể lập trình

SCTP Stream Control Transmission

kênh truyền trên mạng Internet TCAM Ternary Content Addressable

Memory

Bộ nhớ địa chỉ

TCP Transmission Control Protocol Giao thức bảo đảm truyền dữ liệu tới

nơi nhận một cách đáng tin cậy và đúng thứ tự

UDP User Datagram Protocol Giao thức giao vận mạng không kết

nối VHDL VHSIC Hardware Description

Language

Ngôn ngữ mô tả phần cứng DUT.LRCC

Trang 8

DANH MỤC CÁC BẢNG

Số hiệu

1.1 Công suất tiêu thụ của chuyển mạch ở các cấu hình khác nhau 4

2.2 Năm bộ điều khiển hàng đầu hiện nay và các tính năng chính 14

Trang 9

2.9 Các bước khi một luồng mới tới bộ chuyển mạch OpenFlow 16

4.9 Máy trạng thái trình phân tích cú pháp L3/L4 (Ipv4) 34

DUT.LRCC

Trang 10

Số hiệu

4.19 Máy trạng thái tra cứu bảng luồng và viết mục nhập luồng 40

DUT.LRCC

Trang 11

MỞ ĐẦU

Kiến trúc mạng hiện tại là tĩnh và không thể lập trình được Sự mở rộng không ngừng về phạm vi và quy mô của các trung tâm dữ liệu nhắm đáp ứng nhu cầu sử dụng (năm 2019 có 64 triệu người sử dụng internet, tăng đến 28% so với năm 2017) dẫn đến thực trạng mức tiêu thụ năng lượng quá lớn, điện năng tiêu thụ bởi các trung tâm dữ liệu ngày càng tăng lên tỉ lệ thuận với kích thước của các trung tâm này Một trong những giải pháp được đưa ra đó là điều khiển một cách thông minh việc tiêu thụ năng lượng của các bộ chuyển mạch sử dụng trong các trung tâm dữ liệu Luận văn này đưa

ra các cải tiến cho các bộ chuyển mạch OpenFlow nhằm mục đích hỗ trợ các chế độ tiết kiệm năng lượng khác nhau Sự cải tiến này bao gồm định nghĩa các bản tin mới theo chuẩn giao thức OpenFlow, điều khiển các chuyển mạch OpenFlow có khả năng bật tắt các port Ngoài ra, việc tích hợp các cải tiến này lên các bộ chuyển mạch OpenFlow trên nền tảng NetFPGA để phân tích hiệu suất

Vì vậy “nghiên cứu và thực hiện phương pháp tiết kiệm năng lượng trên bộchuyển mạch openflow”, chính là lý do luận văn sẽ tập trung nghiên cứu dựa trên

bộ chuyển mạch OpenFlow

Do nội dung của đề tài có tính chất rộng lớn những với sự cố gắng không ngừng, em đã thu được một số kết quả nhất định Mặc khác do năng lực bản thân có phần hạn chế nên một số ý tưởng vẫn chưa được thực hiện và kết quả nghiên cứu không tránh khỏi một vài sai sót Vì vậy, em rất mong nhận được ý kiến đóng góp của quý Thầy Cô giáo và bạn bè

Nội dung của đồ án được chia thành năm chương, gồm ba phần chính:

Phần 1 “Tìm hiểu thực trạng và giải pháp mạng OpenFlow” gồm hai chương:

Chương 1: Vấn đề tiết kiệm năng lượng và giải pháp sử dụng mạng OpenFlow Chương 2:Ứng dụng mạng OpenFlow trên nền tảng NetFPGA

Phần 2 “Nghiên cứu giải pháp tiết kiệm năng lượng” gồm hai chương:

Chương 3: Triển khai hệ thống mạng OpenFlow trên nền tảng kit

NetFPGAtrong thực tế

Chương 4: Xây dựng chương trình tiết kiệm năng lượng cho chuyển mạch

OpenFlow

Phần 3 “Đo đạc và đánh giá kết quả đạt đươc” gồm một chương:

Chương 5: Thực hiện đo đạc và kết quả

DUT.LRCC

Trang 12

CHƯƠNG 1 VẤN ĐỀ TIẾT KIỆM NĂNG LƯỢNG VÀ GIẢI PHÁP SỬ DỤNG

MẠNG OPENFLOW

1.1 Giới thiệu

Cơ sở hạ tầng mạng đã trở nên quan trọngtrong các hoạt độngthường ngày của các tổ chức như trường học, doanh nghiệp, nhà cung cấp dịch vụ mạng Tuy nhiên, kiến trúc mạng hiện tại là tĩnh và không thể thêm các dịch vụ mới vào kiến trúc mạng một cách tùy tiện vì hạn chế của công nghệ mạng Vấn đề đặt ra cho các nhà nghiên cứu và phát triển là làm sao có thể giảm tối đa lượng điện năng tiêu thụ của các trung tâm dữ liệu mà khả năng xử lý thông tin vẫn được đảm bảo Một trong những giải pháp được đưa ra đó là điều khiển một cách thông minh việc tiêu thụ năng lượng của các bộ chuyển mạch được sử dụng trong các trung tâm dữ liệu Nội dung chương này giới thiệu lý do tiết kiệm năng lượng và giải pháp sử dụng mạng OpenFow

1.2 Vấn đề tiết kiệm năng lượng

Các switch và router hiện tại không cho ta biết đầy đủ các thông số nănglượng tiêu thụ của chúng Datasheet của các thiết bị này chỉ cho biết giá trị côngsuất hoạt động tối đa Thông số này không đủ để hiểu chính xác năng lượng tiêu thụthật của các thiết bị mạng Năng lượng tiêu thụ thật sự của các switch/router phụthuộc vào rất nhiều yếu tố như cấu hình của thiết bị và lượng tải mà thiết bị cần xửlý Cấu hình thiết bị và lưu lượng thông tin

đi qua sẽ ảnh hưởng đến công suất tiêu thụ của các thiết bị mạng

Mặt khác mỗi một switch/router đều chứa nhiều thành phần cấu tạo khác nhau như: Chassis, linecard, TCAM (Ternary Content Addressable Memory), RAM, processor, quạt… Một switch/router đặc trưng gồm một chassis chứa các khe cắm các linecard, mỗi linecard chứa nhiều cổng mạng, chính là các cổng giao tiếp của switch/router với các switch/router khác hoặc với các máy tính khác Việc đo thông số năng lượng tiêu thụ của tất cả các thành phần trong switch một cách toàn diện rất khó

để thực hiện Dưới đây là các yếu tố quan trọng ảnh hưởng đến công suất tiêu thụ của switch/router:

- Công suất tiêu thụ của chassis: Các switch hiệu năng cao chứa một chassisvà một số lượng cố định các khe cắm dùng để cắm các linecard Đốivới các switch hiệu năng thấp (các switch phổ thông với 24 cổng trởxuống), các khe cắm và linecard được kiến trúc cố định Trong cảhai trường hợp, công suất tiêu thụ cơ bản của chassis là tổng công suất tiêuthụ của một số thành phần khác nhau của switch như processor, pan,memory…

DUT.LRCC

Trang 13

- Số lượng linecard: Số lượng cổng của một linecard và tổng lưu lượng thôngtin

mà nó có thể xử lý là có hạn Cơ chế cắm và rút các linecard trên các khe cắm của switch cho phép các nhà quản lý mạng linh động đưa ra nhiều lựa chọn cho việc cắm loại linecard phù hợp, ví dụ như cắm linecard 24 cổng 1Gbps để có khả năng xử lý lưu lượng 24Gbps, hay cắmmột linecard 4 cổng 10Gbps để có khả năng xử lý lưu lượng 40 Gbps

- Số lượng cổng active: Đề cập tới tổng số cổng trên switch (củatất cả các linecard) ở trạng thái hoạt động Các cổng còn lại trênswitch được tắt đi thông qua giao diện câu lệnh hỗ trợ tắt, bật đưa ra từ nhàsản xuất

- Công suất xử lý tối đa của một cổng: Có thể giảm công suất xử lý tối đa của mỗicổng để giới hạn tốc độ xử lý thông tin của cổng đó Ví dụ, công suất xử lýtối đa của một cổng full-duplex 1Gbps có thể được cấu hình xuống 100Mbpshay 10Mbps Khi giảm công suất xử lý tối đa, nănglượng tiêu thụ của cổng sẽ giảm, dẫn đến năng lượng tiêu thụ của cả switchgiảm theo

- Hiệu suất sử dụng của cổng: Là thônglượng thực tế qua một cổng so vớicông suất xử lý tối đa của cổng đó Vídụ trong trường hợp công suất xử lý tối đa của một cổng là 100Mbps, thônglượng dữ liệu đi qua cổng đó là 10Mbps, khi đó hiệu suất sử dụng của cổngđó là 10% Phụ thuộc vào hiệu suất sử dụng của cổngmà ta có thể thiết lập các giá trị công suất xử lý tối đa của cổng đó một cáchphù hợp

- TCAM: Hầu hết các switch thực hiện việc phân loại gói tin trên phần cứng vàcác nhà sản xuất sử dụng TCAM để thực hiện chức năng này do thờigian xử lý tìm kiếm của TCAM là rất nhanh Tuy nhiên, TCAM tiêu thụ mộtlượng công suất lớn Ngoài ra, kích thước TCAM trong các switch cũng khácnhau

- Firmware: các nhà sản xuất cập nhật firmware cho switch/router theo địnhkỳ Các phiên bản firmware khác nhau cũng có thể ảnh hưởng tới công suấttiêu thụ của switch/router

Ngoài ra, đặc tính lưu lượng thông tin đi qua mỗi cổng cũng có thể ảnhhưởng tới công suất tiêu thụ của cổng đó Hai đặc tính quan trọng nhất của lưulượng của một luồng là kích thước mỗi gói tin và khoảng thời gian giữa hai gói tin liên tiếp

Bảng 1.1 Công suất tiêu thụ của chuyển mạch ở các cấu hình khác nhau

Cofiguration Rack switch (in Watts ) Tier-2 switch (in Watts )

Trang 14

là công suất tiêu thụ của switch ở trạng thái không có lưu lượng đi qua, lúc này switch vẫn đang ở trạng thái bật

là công suất tiêu thụ của một linecard khi không có lưu lượng qua, các cổng của linecard không xử lý bất cứ lượng lưu lượng nào

là số linecard của switch

là công suất tiêu thụ của một cổng chạy ở tốc độ i

là số cổng chạy ở tốc độ i

i: có thể có các giá trị 10Mbps, 100 Mbps hay 1Gbps

Qua bảng 1.1cho thấy đối với các switch công suất xử lý thấp, do các linecard được gắn cố định, không thay đổi được nên công suất tiêu thụ của chassis chính là công suất tiêu thụ cơ bản và cố định của switch khi switch được bật mà không xử lý bất cứ một lượng lưu lượng nào, công suất tiêu thụ của linecard khi đó được bao gồm trong công suất tiêu thụ của chassis

Mặt khác đối với các switch có công suất xử lý cao hơn, số lượng các linecard

có thể thay đổi bằng cách cắm/rút, nên không thể tính gộp vào công suất tiêu thụ của chassis, mỗi linecard được cắm thêm vào, công suất tiêu thụ của switch sẽ tăng thêm 39W Tuy nhiên, trong cả hai trường hợp ta có thể thấy công suất tiêu thụ của các cổng trên switch phụ thuộc vào cấu hình tốc độ hoạt động của các cổng đó Tốc độ hoạt động tăng, công suất tiêu thụ của cổng cũng tăng lên

Ngoài ra, công suất tiêu thụ của chassis chiếm phần lớn công suất tiêu thụ của switch, nên việc tắt các cổng không sử dụng sẽ mang lại lợi ích tiết kiệm điện Lấy ví

dụ một switch thường 24 cổng, khi không có lưu lượng đi qua sẽ tiêu thụ 146W, trong khi công suất tiêu thụ tối đa khi lượng lưu lượng tối đa qua (mỗi cổng đặt ở tốc độ hoạt động 1Gbps) sẽ là: 146+0.87 *24=167W Nếu ta không tắt switch khi không có lưu lượng đi qua, switch sẽ luôn tiêu thụ một lượng công suất nền 146W

Căn cứ vào đặc tính tiêu thụ năng lượng của các switch, nội dung tiếp theo sẽ trình bày một số kỹ thuật được dùng trong tiết kiệm năng lượng tiêu thụ của các thiết

bị trong trung tâm dữ liệu

1.3 Giải pháp sử dụng mạng OpenFlow

1.3.1 Sự cần thiết cho một kiến trúc mạng mới

Công nghệ 4G và sự ra đờicủadịch vụ điện toán đám mâylà một trongnhững xu hướngthúcđẩyngành công nghiệp mạngphải cải tiếnkiếntrúcmạng truyền thống Hầu hết các mạngthông thường đều theo kiến trúcphân cấp,đượcxâydựngvới các tầngcủathiết bị chuyển mạch Ethernet, sắpxếptheo cấu trúccây Thiết kế nàythực sự hiệu quảkhimô hình tính toán client-serverchiếm ưu thế, nhưngkiến trúccố định

DUT.LRCC

Trang 15

nhưvậykhông thích hợp vớiyêu cầu tính toán đa dạng, năng độngvà nhu cầulưutrữdữ liệu ngày nay Một trong sốnhững xu hướngtính toánquan trọng dẫn tớiyêu cầu ngày càng tăng chomột mô hìnhmạngmớibao gồm:

- Sự thay đổi mô hình lưu lượng

- Hướng người dùng công nghệ thông tin

- Sự phát triển của các dịch vụ điện toán đám mây

- “Dữ liệu lớn” yêu cầu nhiều băng thông hơn

1.3.2 Mục tiêu của mạng OpenFlow

Yêu cầu thị trường hiện nay là một gánh nặng với kiến trúc mạng truyền thống Đối mặt với ngân sách không đổi hoặc giảm, các doanh nghiệp ngành CNTT đang cố gắng để tận dụng tối đa khả năng mà mạng của họ có thể đáp ứng bằng cách sử dụng các công cụ quản lý ở mức thiết bị và các quy trình thủ công Các hãng cung cấp dịch

vụ cũng phải đối mặt với những thách thức tương tự như yêu cầu về tính di động cũng như sự bùng nổ băng thông, lợi nhuận bị xói mòn bởi chi phí vốn cho thiết bị leo thang

và doanh thu không tăng hoặc suy giảm Kiến trúc mạng hiện tại không được thiết kế

để đáp ứng các yêu cầu ngày nay của người sử dụng, doanh nghiệp, và nhà cung cấp dịch vụ, những hạn chế của mạng hiện tại bao gồm:

- Độ phức tạp cao gây tắc nghẽn

- Chính sách không đồng nhất

- Khả năng quy mô kém

- Phụ thuộc vào nhà cung cấp thiết bị

Mạng điều khiển bằng phần mềm là một kiến trúc mạng mới phát triển dựa trên chuyển mạch OpenFlow, trong đó việc điều khiển mạng được tách rời khỏi việc chuyển tiếp và có thể được lập trình Khác với trước đây khi còn bị ràng buộc chặt chẽ trong từng thiết bị mạng đơn lẻ, điều khiển mạng sử dụng các thiết bị tính toán có thể truy cập (accessible computing device) cho phép cơ sở hạ tầng cơ bản được trừu tượng hóa cho các ứng dụng và dịch vụ mạng, hay là các ứng dụng và dịch vụ sẽ coi mạng như một thực thể hợp thống nhất

Thông tin về mạng được tập trung trong phần mềm điều khiển SDN có chức năng kiểm soát toàn bộ mạng Kết quả là, hình ảnh của mạng đối với các ứng dụng và các công cụ quản lý giống như là một chuyển mạch luận lý đơn nhất Với SDN, doanh nghiệp và ngưởi sử dụng có thể điều hành toàn bộ mạng từ một điểm luận lý duy nhất, không phụ thuộc vào nhà cung cấp thiết bị, điều này giúp đơn giản hóa thiết kế và hoạt động của mạng rất nhiều SDN cũng góp phần tối ưu hóa các thiết bị mạng, bởi vì các thiết bị mạng không còn cần phải hiểu và xử lý hàng ngàn các chuẩn giao thức khác nhau mà chỉ còn xử lý các lệnh từ bộ điều khiển SDN

DUT.LRCC

Trang 16

Hình 1.1 Kiến trúc mạng điều khiển bằng phần mềm (SND)

Quan trọng nhất, nhà khai thác mạng và quản trị viên có thể lập trình, cấu hình mạng được trừu tượng hóa đơn giản hơn so với việc phải lập trình hàng chục ngàn dòng cấu hình phân tán trong số hàng ngàn các thiết bị mạng đơn lẻ Ngoài ra, tận dụng các thông tin được tập trung trong tại bộ điều khiển SDN, người quản trị có thể thay đổi hoạt động mạng theo thời gian thực, triển khai các ứng dụng và dịch vụ mới mạng trong vài giờ hoặc vài ngày, chứ không còn là vài tuần hoặc vài tháng Bằng cách thu thập tình trạng của mạng trong các lớp điều khiển (control layer), SDN cung cấp cho nhà quản lý mạng các phương pháp linh hoạt để 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 phần mềm tự động SDN

Hơn nữa, các nhà quản lý có thể tự viết các chương trình này mà không phải chờ đợi các nhà cung cấp sẽ nhúng các tính năng này vào sản phẩm của họ kèm theo các công cụ phần mềm độc quyền.Ngoài việc trừu tượng hóa mạng, kiến trúc SDN hỗ trợ một tập hợp các hàm API cho phép thực hiện các dịch vụ mạng thông thường, bao gồm định tuyến, đa hướng, an ninh, kiểm soát truy cập, quản lý băng thông, quản lý giao thông, chất lượng, dịch vụ, tối ưu hóa các bộ vi xử lý và lưu trữ, sử dụng năng lượng, và các hình thức quản lý chính sách, tùy chỉnh cho phù hợp để đáp ứng các mục tiêu kinh doanh Tương tự như vậy, SDN cho phép quản lý toàn bộ mạng thông qua hệ thống dự phòng và đồng bộ thông minh Open Networking Foundation đang nghiên cứu các API mở để thúc đẩy việc quản lý đa nhà cung cấp, mở ra cánh cửa cho các tính năng phân bổ tài nguyên theo yêu cầu, cung cấp dịch vụ tự phục vụ, mạng ảo hóa thực sự và các dịch vụ đám mây an toàn

Như vậy, với các hàm API mở nằm giữa bộ điều khiển SDN và các lớp ứng dụng, các ứng dụng thực tế có thể hoạt động trên lớp trừu tượng của mạng,tận dụng

DUT.LRCC

Trang 17

các dịch vụ và khả năng của mạng mà không bị ràng buộc vào các chi tiết khi thực hiện SDN làm cho mạng không còn phải "application-aware" như là "application-customized" và các ứng dụng cũng không cần thiết "network-aware" đến mức

"network-capability-aware" Kết quả là, từ việc tính toán, lưu trữ, tài nguyên mạng có thể được tối ưu hóa

1.3.3 Giao thức OpenFlow

Giao thức OpenFlow là giao diện truyền thông đầu tiên được sử dụng giữa lớp kiểm soát và các lớp chuyển tiếp trong kiến trúc SDN OpenFlow cho phép trực tiếp truy cập và thao tác trên phần chuyển mạch của các thiết bị mạng chẳng hạn như chuyển mạchvà định tuyến, trong cả hai trường hợp luận lý và ảo Chính sự thiếu hụt của một giao diện mở cho phần chuyển mạch đã dẫn tới các đặc tính của các thiết bị mạng bây giờ như: chia thành nhiều khối riêng biệt và giống như các máy mainframe Thực tế hiện nay vẫn chưa xuất hiện một giao thức tiêu chuẩn nào có cùng chức năng như giao thức OpenFlowvà sự ra đời một giao thức giống như OpenFlow là cần thiết

để chuyển công việc điều khiển mạng chuyển mạch lên các phần mềm điều khiển tập trung hợp lý

OpenFlow có thể được so sánh với tập lệnh của CPU Như thể hiện trên hình 1.2, giao thức này xác định các thành phần cơ bản có thể được sử dụng bởi một ứng dụng phần mềm bên ngoài để lập trình cho phần chuyển mạch của các thiết bị mạng, điều này giống như tập lệnh của CPU với một hệ thống máy tính

Hình 1.2 Ví dụ về tập lệnh của OpenFlow

Các giao thứcOpenFlowđược thực hiệntrên cả hai mặtcủa giao diện giữa các thiết bị cơ sở hạ tầngmạng vàphần mềm điều khiểnSDN OpenFlow sử dụngkháiniệmvề các luồng để xác địnhlưulượngtruycậpmạngdựa trênquytắc được xác định trước (có thểđượclập trình cố định hay thay đổi trong phần mềm điều khiển

DUT.LRCC

Trang 18

SDN) Giao thức này cho phépngười sử dụng xác định cáchlưu lượng mạng được phân theo luồng thông qua các thiết bịmạng dựatrên các thông sốnhưmô hình sử dụng, ứng dụng, vàtàinguyênđiện toán đám mây.Định tuyếndựa trên IP hiện tạikhông cung cấpmức độ kiểm soát chặt chẽ đến như vậy, bởi vì tất cả cácluồnggiữa hai thiết bị đầu cuối luôn phảitheocùng một con đườngthông quamạng, bất kể chúng có yêu cầu khác nhau hay không

Giao thức OpenFlow, cho phéptrực tiếp thao tác trên phần chuyển mạchcủacác thiết bị mạng Ban đầu khi áp dụng cho các mạngEthernet-based, việc chuyển đổi sang OpenFlow có thể mở rộng đến tập hợp rộng lớn Mạng SDN dựa trên OpenFlow có thể được triển khai trên các mạng hiện có, cả vật lý và ảo Thiết bị mạng có thể hỗ trợ việc chuyển tiếp các gói tin OpenFlow cũng như chuyển tiếp gói tin truyền thống, điều này khiến cho các doanh nghiệp và người sử dụng dễ dàng tiếp cận đến mạng, ngay cả trong môi trường mạng thiết lập bởi nhiều nhà cung cấp

Tổ chức Open Networking Foundation chịu trách nhiệm tiêu chuẩn hóa OpenFlow thông qua các nhóm kỹ thuật làm việc trên nhiều mảng như giao thức, cấu hình, khả năng tương tác, và các hoạt động khác, giúp đảm bảo khả năng tương tác giữa các thiết

bị mạng và phần mềm kiểm soát từ các nhà cung cấp khác nhau OpenFlow được chấp nhận rộng rãi bởi các nhà cung cấp cơ sở hạ tầng mạng, thông qua các bản nâng cấp phần mềm hoặc firmware đơn giản Kiến trúc mạng dựa trên OpenFlow có thể được tích hợp liền mạch với cơ sở hạ tầng hiện có của một doanh nghiệp hoặc người sử dụng

1.4 Kết luận

Tóm lại, các xu hướng mới như người sử dụng ngày càng ưa chuộng tính di động, ảo hóa máy chủ, và yêu cầu đáp ứng một cách nhanh chóng với điều kiện kinh doanh luôn thay đổi đặt ra nhiều yêu cầu lên hệ thống mạngvà rất nhiều trong số

đó kiến trúc mạng thông thường hiện nay không thể đảm đương được

Tươnglai của mạng sẽ dựa rất nhiều vào phần mềm,việcnày sẽ giúp đẩy nhanh tốc độ đổi mới cho hệ thống mạng như nó đã từng xảy ra trong lĩnh vực máy tính và lưu trữ Giao thức OpenFlow hứa hẹn sẽ biến đổi mạng cố định hiện nay thành nền tảng khả trình với khả năng phân bổ nguồn lực một cách năng động, trở nên linh hoạt hơn, đủ quy mô để hỗ trợ các trung tâm dữ liệu khổng lồ với sự ảo hóa cần thiết cho một môi trường điện toán đám mây tự động hóa cao, năng động, và an toàn

DUT.LRCC

Trang 19

CHƯƠNG 2 ỨNG DỤNG MẠNG OPENFLOW TRÊN NỀN TẢNGNETFPGA

2.1.Giới thiệu

Công nghệ FPGA nếu đem so sánh với các công nghệ chế tạo chip như Custom hay Semi-Custom thì không đạt được độ tối ưu về mặt tốc độ và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ

Full-có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế, cũng có một số các hãng thứ

ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL) Nội dung chương này giới thiệu

về ứng dụng mạng OpenFlow trên nền tảng NetFPGA

2.1.1 Ứng dụng của FPGA

Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng không,

vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính

Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực

FPGA cũng được ứng dụng để chế tạo ra các thiết bị mạng máy tính như bộ định tuyến, bộ chuyển mạch Trong luận văn này là bộ chuyển mạch OpenFlow

2.1.2 Kiến trúc của FPGA

Các kiến trúc cơ bản của FPGA bao gồm ba loại thành phần: các khối logic, định tuyến, và các khối vào ra Nó bao gồm một mảng các khối logic có thể cấu hình được (CLB) có thể được kết nối với nhau cũng như các khối I/O có thể lập trình được thông qua một số loại kiến trúc định tuyến có thể lập trình được

DUT.LRCC

Trang 20

Hình 2.1 Kiến trúc chung của FPGA

Các công ty FPGA lớn cũng cung cấp nhiều thành phần dạng thô được nhúng trong các thiết bị lai của họ theo nhu cầu thị trường Ví dụ, Xilinx nhúng trong một số

họ Virtex bộ xử lý 32-bit RISC Power PC Bộ xử lý tái cấu hình trong các FPGA hiện đại, bên cạnh các nguồn tài nguyên mật độ cao có thể cấu hình lại được thông thường, còn cung cấp cho các nhà thiết kế khả năng thực hiện các bộ vi xử lý có thể cấu hình lại, có các tính năng theo các thành phần của hiệp định thương mại (COTS) Thiết bị Xilinx FPGA bao gồm hai loại bộ vi xử lý: các bộ vi xử lý lõi cứng (hard-core) nhúng sẵn (PowerPC) và các bộ vi xử lý lõi mềm (soft-core) (MicroBlaze, PicoBlaze) Altera cũng cung cấp hai loại bộ xử lý: bộ vi xử lý lõi cứng dựa trên ARM (Excalibur) và bộ

vi xử lý lõi mềm (Nios)

Phần tử chính của FPGA là các khối logic (logic block) Khối logic được cấu thành từ LUT và một phần tử nhớ đồng bộ flip-flop CLB gồm 4-logic-cell, Logic cell gồm 2 LUT giống nhau, mỗi LUT gồm 4-ngõ-vào, tín hiệu điều khiển và FF-D Mỗi CLB gồm hai bộ điều khiển ngõ ra 3 trạng thái(BUFT) Mỗi BUFT có chân điều khiển

và ngõ vào độc lập LUT (Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4 đầu vào, kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop

Việc định tuyến có thể lập trình trong một FPGA cung cấp các kết nối giữa các khối logic và khối I/O để hoàn thành một thiết kế do người dùng định nghĩa Nó bao gồm các bộ ghép kênh, các bán dẫn và bộ đệm ba trạng thái, tạo thành kết nối mong muốn

DUT.LRCC

Trang 21

Hình 2.2 Minh họa của LUT

- IOB: Tín hiệu vào qua 1 bộ đệm, tín hiệu ra qua bộ đệm 3 trạng thái, theo các chuẩn, bộ nhớ/giao tiếp Bus Mỗi IOB gồm 3 Flip-Flop chia chung 1 tín hiệu Clock và các tín hiệu CE (Clock Enable), điều khiển độc lập cho từng Flip-Flop

Hình 2.3 Minh họa của IOB

- RAM Block: Gồm nhiều khối RAM, tổchức thành hai cột, ở hai cạnh đứng của linh kiện

Bảng 2.1.BRAM trong FPGA

DUT.LRCC

Trang 22

- DLL (Delay Lock Loops): Điều khiểnxung clock, nhằm loại trừ độ lệchhoặc trì hoãn một khoảng thời giangiữa tín hiệu Clock ngõ vào và cácxung Clock ngõ vào bên trong, giảmtối đa sự trì hoãn, tạo sự đồng bộ vàtiết kiệm năng lượng Mỗi DLL nối

haimạng Clock toàn cục

Hình 2.4 Minh họa của DLL 2.2 Chuyển mạch OpenFlow trên nền tảng NetFPGA

2.2.1 Kiến trúc bộ chuyển mạch OpenFlow

Hình2.5 Cấu trúc của một OpenFlow Switch

Chuyển mạch OpenFlow chủ yếu bao gồm hai bảng luồng (bảng khớp chính xác và bảng ký tự đại diện) và giao diện để sửa đổi các mục trong bảng luồng (ví dụ: thêm, xóa) Bộ điều khiển OpenFlow quyết định đường dẫn mới cho gói (gói chưa từng có) Hình 2.5 mô tả ngắn gọn về chuyển mạch OpenFlow Cácbộ điều khiển kết nối với chuyển mạch OpenFlow thông qua lớp cổng bảo mật (SSL) và sửa đổimục nhập bảng luồng thông qua giao diện này Thủ tục liên lạc giữa chúng được hiểu dễ dàng Ví dụ, gói chưa từng có, được đóng gói vàgửi đếnbộ điều khiển qua SSL Sau

đó, bộ điều khiển kiểm tra nó, cập nhật các mục trong bảng và gửinó trở lại bộ chuyển mạch Các gói đến tiếp theo thuộc cùng một luồng sẽ chuyển tiếp qua chuyển mạch mà không hỏi ý kiến bộ điều khiển

2.2.1.1 Bộ điều khiển OpenFlow

Bộ điều khiển là thiết bị chính, chịu trách nhiệm duy trì tất cả các quy tắc mạng

và phân phối các hướng dẫn thích hợp cho các thiết bị mạng Mặt khác, bộ điều khiển

DUT.LRCC

Trang 23

OpenFlow chịu trách nhiệm xác định cách xử lý các gói không có mục luồng hợp lệ và

nó quản lý bảng luồngcủa chuyển mạch bằng cách thêm hoặc loại bỏ các mục luồng trên kênh bảo mật bằng giao thức OpenFlow Các bộ điều khiển về cơ bản tập trung trí thông minh mạng, trong khi mạng duy trì một mặt phẳng chuyển tiếp phân tán thông qua các bộ chuyển mạch OpenFlow và bộ định tuyến Lý do bộ điều khiển cung cấp giao diện để quản lý, kiểm soát và quản trị bảng luồng của chuyển mạch Bởi vì mặt phẳng điều khiển mạng được triển khai trong phần mềm thay vì phần sụn của các thiết

bị phần cứng, lưu lượng mạng có thể được quản lý năng động hơn và ở mức độ chi tiết hơn nhiều Bộ điều khiển có thể lập trình chuyển mạch thông qua hành vi phản ứng và hành vi chủ động, được thể hiện trong Hình 2.6 và Hình 2.7 Các hành vi phản ứng tận dụng bảng luồng một cách hiệu quả Nói cách khác, gói tin đầu tiên của bộ điều khiển kích hoạt luồng để chèn các mục nhập luồng và nếu mất kết nối điều khiển, tiện ích của chuyển mạch sẽ giới hạn Trong khi hành vi chủ động có nghĩa là bộ điều khiển điền trước bảng luồng trong chuyển mạch và không kiểm soát kết nối, không làm gián đoạn lưu lượng Các bộ điều khiển khác nhau hiên nay đang có, được thể hiện trong Bảng 2.2 sau đây:

Bảng 2.2.Năm bộ điều khiển hàng đầu hiện nay và các tính năng chính

Beacon A fast, cross-platform, modular, Java-based controller

supporting both event-based and threaded operation NOX Open-source, a simplified platform written in C++ or Python

Maestro scalable, written in Java which supports OpenFlow switches SNAC using a web-based policy manager to manage the network

Hình 2.6.Mô đun phản ứng OpenFlow

DUT.LRCC

Trang 24

Hình 2.7.Mô đun chủ động OpenFlow

2.2.1.2.Chuyển mạch OpenFlow

Như được hiển thị trong hình 2.5, chuyển mạch OpenFlow chủ yếu bao gồm ba phần: Flow table, secure channel and giao thức OpenFlow Chức năng cụ thể của từng thành phần trong chuyển mạch OpenFlow:

- Flow-table: Bảng này bao gồm các mục nhập luồng (flow-entry) và mỗi mục

nhập luồng có một hành động (action) đi kèm dùng để xử lý các luồng Phần này được xây dựng trên nền tảng NetFPGA

- Secure Channel: Là phần mềm dùng để kết nối bộ chuyển mạch với bộ điều

khiển Nó cho phép lệnh và gói tin được truyền qua lại giữa bộ điều khiển và bộ chuyển mạch sử dụng giao thức OpenFlow

- Giao thức OpenFlow: Giao thức cho phép chỉnh sửa bảng luồng (flow-table)

từ một bộ điều khiển từ xa, tránh được việc phải lập trình cho bộ chuyển mạch

Một luồng được định nghĩa là các gói tin trùng khớp (matching) với một tiêu đề

cụ thể bên trong bảng luồng Việc so sánh giữa tiêu đề của gói tin và tiêu đề của một mục nhập luồng để quyết định gói tin thuộc luồng nào và hành động đi kèm với nó có thể xảy ra hai trường hợp: một là so sánh trùng một cách chính xác tất cả các trường (match exactly); hai là chỉ trùng một trường nào đó (wildcard match)

Hình 2.8 Cấu tạo của một mục nhập luồng

DUT.LRCC

Trang 25

Hình 2.8 miêu tả cấu tạo của một mục nhập luồng, mỗi một mục nhập luồng sẽ

có mộthành động đi kèm với nó Đối với chuyển mạch OpenFlow chuyên dụng, có 3 loại cơ bản sau:

- Chuyển tiếp (Forward) những gói tin của luồng này tới một cổng (port) cho trước Hành động này áp dụng những gói tin được định tuyến trong mạng

- Đóng gói và chuyển tiếp những gói tin của luồng này tới một bộ điều khiển Gói tin được chuyển tới Secure Channel nơi mà nó được đóng gói và gửi tới bộ điều khiển Hành động này được sử dụng đối với gói tin đầu tiên của một luồng mới và bộ điều khiển sẽ quyết định có đưa nó vào trong bảng luồng hay không Hoặc hành động này được sử dụng trong các thí nghiệm nhằm mục đích chuyển tiếptất cả các gói tin tới

bộ điều khiển để xử lý

- Hủy bỏ (Drop) các gói tin của luồng này Hành động này được sử dụng cho mục đích an ninh mạng nhằm chống lại tình trạng tấn công DoS (Denial of Service) hoặc làm giảm các lưu lượng giả được phát tán trên mạng

Thành phần cuối cùng của một mục nhập luồng là Counters Counters dùng để theo dõi số lượng gói tin hoặc dung lượng và thời gian kể từ khi gói cuối cùng trùng với một mục nhập luồng trong bảng luồng (dùng để xóa đi những luồng không còn hoạt động)

Hình 2.9 Các bước khi một luồng mới tới bộ chuyển mạch OpenFlow

Hình 2.9 là các bước để định tuyến một luồng từ một máy tính nguồn sang một máy tính đích thông qua hai bộ chuyển mạch OpenFlow Trong sơ đồ bên trái, bảng luồng của hai bộ chuyển mạch đều không chứa gì Khi một gói tin đến trong bước 1,

nó được chuyển tiếp tới bộ điều khiển trong bước 2 Bộ điều khiển kiểm tra gói tin đến

và thêm một mục nhập luồng (flow A) vào trong bảng luồng của các bộ chuyển mạch trong bước 3 Sau đó gói tin được gửi tới máy tính đích trong bước 4 và 5 Trong các bước 6, 7, 8 bất kì gói tin mới nào thuộc về cùng một luồng (flow A của gói tin thứ 1)

DUT.LRCC

Trang 26

sẽ được định tuyến trực tiếp tới máy tính đích

2.2.1.3 Các thành phần của chuyển mạch OpenFlow

a.Giao thức Openflow

Ba loại thông báo được xác định trong giao thức OpenFlow: Tin nhắn đối xứng (xem bảng 2.3) được sử dụng để giữ kết nối giữa bộ điều khiển và chuyển mạch Tin nhắn không đối xứng (xem bảng 2.4) được gửi từ chuyển mạch đến bộ điều khiển để biểu thị gói đến, chuyển mạch thay đổi trạng thái, hoặc báo lỗi Trong khi tin nhắn điều khiển chuyển mạch(xem bảng 2.5) được gửi từ bộ điều khiển đếnchuyển mạch

Bộ điều khiển có thể quản lý và sửa đổi trạng thái của chuyển mạch OpenFlow qua

những tin nhắn đó

Bảng 2.3.Tin nhắn đối xứng

Hello Trao đổi khi khởi động kết nối

Echo Yêu cầu / trả lời tin nhắn từ chuyển mạch hoặc bộ điều khiển

Đo độ trễ hoặc băng thông của kết nối Experimenter Cung cấp chức năng bổ sung

Bảng 2.4.Tin nhắn không đối xứng

Packet-in Gửi đến bộ điều khiển cho các gói chưa từng có

Flow-Removed Xóa luồng khi hết thời gian chờ hoặc hết thời gian chờ Port-status Gửi đến bộ điều khiển khi trạng thái cổng thay đổi Error Thông báo lỗi cho bộ điều khiển

Bảng 2.5.Tin nhắn điều khiển đến chuyển mạch Tin nhắn điều khiển đến

Features Khả năng truy vấn của một chuyển mạch

Configurations Đặt tham số cấu hình và truy vấn

Modify-State Thêm/xóa và sửa đổi luồng/bảng nhóm

Đặt thuộc tính cổng chuyển đổi Read-State Thu thập số liệu thống kê

Packet-out Gửi gói ra khỏi một cổng được chỉ định

Chuyển tiếp gói tin nhận được thông qua Packet-in Barrier Đảm bảo phụ thuộc tin nhắn

DUT.LRCC

Trang 27

b Bảng luồng OpenFlow

Chuyển mạch OpenFlow có hai bảng luồng: Bảng khớp chính xác và bảng khớp

ký tự đại diện Mỗi bảng luồng bao gồm nhiều mục nhậpluồng Các thành phần chính của mục nhập luồng trong bảng luồng bao gồm các trường khớp (khớp với gói), bộ đếm (cập nhật cho gói phù hợp) và hướng dẫn (sửa đổi bộ hành động) Gói luồng qua

xử lý đường ống (pipeline) được thể hiện trong Hình 2.10 Các gói đến được tìm kiếm

có trật tự thông qua mỗi bảng luồng Nếu như gói trùng khớp với một mục nhập luồng, việc xử lý đường ống (pipeline) sẽ dừng lại và hành động tương ứng được thực thi Nếu gói không khớp, theo mặc định sẽ gửi gói đếnbộ điều khiển

Hình 2.10.Xử lý đường ống

Bảng 2.6.Các trường khớp chính

Ethernet source address Tất cả các gói trên các cổng đã bật Ethernet destination address Tất cả các gói trên các cổng đã bật

Ethernet type Tất cả các gói trên các cổng đã bật

DUT.LRCC

Trang 28

Các trường Áp dụng

IPv4 protocol/ARP opcode Các gói tin IPv4, IPv4 qua Ethernet, ARP

Transport source port/ICMP Type Các gói tin TCP, UDP,SCTP, và ICMP Transport destination port/ICMP Code Các gói tin TCP, UDP,SCTP, và ICMP

Đối với các trường khớp, nó được sử dụng để tra cứu bảng luồng tùy thuộc vào thể loại gói Mỗi mục trong bảng luồng chứa một giá trị cụ thể Bảng 2.6, bảng 2.7 và bảng 2.9 liệt kê nội dung của các trường khớp phù hợp và chi tiết về các thuộc tính của từng trường của đặc tả OpenFlow V1.1 Nó có thể được nhìn thấy từ những bảng rằng mỗi trường tiêu đề có kích thước cố định và được đặt ở vị trí cụ thể của trường khớp

Bảng 2.7.Mô tả trường khớp chính

Ethernet source address Có thể dùng mặt nạ bit tùy ý

Ethernet destination address Có thể dùng mặt nạ bit tùy ý

IPv4 source address Mặt nạ mạng conhoặc mặt nạ bit tùy ý

IPv4 destination address Mặt nạ mạng con hoặc mặt nạ bit tùy ý IPv4 protocol/ARP opcode ARP opcode (8 bits thấp)

Transport source port/ICMP Type Kiểu ICMP (8 bits thấp)

Transport destination port/ICMP Code Kiểm ICMP (8 bits thấp)

Về hướng dẫn thực thi, nó chủ yếu bao gồm các tệp hành động được liên kết

với mỗi gói Các hướng dẫn được hỗ trợ bao gồm áp dụng hành động Actions), xóa hành động (Clear-Actions), viết hành động (WriteActions), viết

(Apply-DUT.LRCC

Trang 29

siêu văn bảng (Write-Metadata) và đi đến bảng (Goto-Table) Danh sách hành

động (xem Bảng 2.9)được bao gồm Apply-Actionscũng như Packet-out message

Các gói khớp được chuyển tiếp và cũng được sửa đổi theo danh sách hành động Sau khi trường khớp tiêu đề hiển thị trong bảng 2.9 bắt buộc phải được cập nhật trong các gói Tuy nhiên, chỉ hành động đầu ra được thực hiện trong chuyển mạch OpenFlow

Bảng 2.8.Độ dài trường khớp chính

Bảng 2.9.Mô tả hành động OpenFlow

Output (Required) Chuyển tiếp đến một cổng cụ thể

Drop (Required) Loại bỏ các gói tin không có hành động đầu ra Group (Required) Xử lý các gói thông qua các nhóm chỉ định Push-Tag/Pop-Tag (Optional) Đặt vào và lấy ra các thẻ VLAN, MPLS, PBB Set-Field (optional) Sửa đồi các giá trị của trường tiêu đề gói tin

DUT.LRCC

Trang 30

Bảng 2.10.Hành động cài đặt trường

Set-field Actions

Đặt địa chỉ MAC nguồn Ethernet Đặt địa chỉ MAC đích Ethernet Đặt địa chỉ VLAN ID

Đặt ưu tiên VLAN Đặt nhãn MPLS Đặt lớp lưu lượng MPLS Đặt MPLS TTL

Giảm MPLS TTL Đặt địa chỉ nguồn IPv4 Đặt địa chỉ đich IPv4 Đặt các bit IPv4 ToS Đặt các bit IPv4 ECN Đặt IPv4 TTL

Giảm IPv4 TTL Đặt cổng nguồn truyền Đặt cổng đích truyền Sao chép TTL ra bên ngoài Sao chép TTL vào bên trong

c Kênh OpenFlow

Chuyển mạch OpenFlow kết nối với bộ điều khiển thông qua kênh OpenFlow Thông qua giaodiện này, bộ điều khiển có thể quản lý và sửa đổi bảng luồng Các kênh OpenFlow có thể đượcchạy trên TCP và thường được mã hóa Hơn thế nữa, tất cả các tin nhắn trong kênh OpenFlow giữa chuyển mạch OpenFlow và bộ điều khiển phải là được định dạng theo giao thức OpenFlow

2.2.2 Giới thiệu về NetFPGA

Phần này giới thiệu NetFPGA-10G là phiên bản thế hệ thứ hai và nó giống một bảng mạch PCI Express với Xilinx Virtex-5 FPGA và bốn cổng Ethernet 10 Gbps song công, là các thành phần chính Bộ nhớ nội bộ FPGA (được gọi là Block RAM, với 18 Kbits mỗi khối), nền tảng này cũng bao gồm hai loại memory bank để hỗ trợ các ứng dụng mạng với số lượng lớn Loại đầu tiên cung cấp 27 Mbyte RAM tĩnh tốc

độ cao, được nhắm mục tiêu cho các bảng tra cứu nhanh, trong khi loại thứ hai có 288 Mbyte độ trễ thấp RAM động, nhằm mục đích đệm gói Bo mạch có 1 kênh giao tiếp PCI Express Gen dùng để kết nối với máy tính chủ Tuy nhiên, NetFPGA 10G cũng có

DUT.LRCC

Trang 31

thể chạy hoàn toàn độc lập, nó chỉ cần một nguồn điện 12 V; khả năng này là lựa chọn tốt nhất để chạy các ứng dụng với sự tiêu thụ năng lượng rất thấp Hình 2.11 phác thảo cấu trúc của nền tảng phần cứng

Trang 32

Ba x36 QDR II (CY7C1515KV18)

Bốn x32 RLDRAM II (MT49H16M36BM-25)

Trình kết nối Mictor để gỡ lỗi

Hai nền tảng XL Flash (128Mb mỗi nền)

Bộ định tuyến và chuyển mạch cao cấp cung cấp chức năng giám sát dựa trên luồng là thực tiễn phổ biến để phân tích lưu lượng mạng (ví dụ: NetFlow trong Cisco hoặc Jflow trong Juniper) việc này sẽ ảnh hưởng đến độ chính xác vì chúng chúng không thể hoạt động ở tốc độ luồng, NetFPGA-10G sử dụng cả hai cách tiếp cận phát triển (HDL và HLL) để triển khai giám sát luồng với các đặc điểm thiết kế sau:

1) Nó hoạt động ở tốc độ dòng 10 Gbps ngay cả vớikích thước gói nhỏ nhất (14,88 Mpps - Hàng triệugói trên giây)

2) Nó chỉ sử dụng bộ nhớ FPGA bên trong (Block RAM),cho phép tạo bộ đệm

ẩn luồng đồng thời 4K

3) Các luồng được xóa khỏi bộ nhớ khi đã xuấthoặc hết thời gian chờ không hoạt động (15 giây) Hình 2.13 trình bày sơ đồ khối củaFPGA

Hình 2.13.Sơ đồ khối của FPGA

Packet Parser: Phân tích các byte trong mỗi Ethernet khung và trích xuất 5

DUT.LRCC

Trang 33

mãng kết hợp (IP nguồn và đích địa chỉ và cổng cũng như giao thức) cộng với thông tin cần thiết để tạo luồng mới hoặc cập nhật hiện có: dấu thời gian, cờ TCP và số lượng byte trong gói

Hashing Module: Tính toán hàm băm từ 5 mãng kết hợp, được sử dụng làm địa chỉ bộ nhớ nơi luồng sẽ được lưu trữ

Create/Update Flows: Cập nhật bảng luồng theo hàm băm trước đó Nếu trước đây luồng là hoạt động trong bộ nhớ nó sẽ được cập nhật, nếu không luồng sẽ được tạo ra

Flow Table: Lưu trữ các luồng mạng đang hoạt động trên liên kết được giám sát Hình 2.13 cho thấy, bảng quy trình là được truy cập bởi hai quy trình Cái đầu tiên tạo và cập nhật các luồng hoạt động; cái thứ hai loại bỏ các luồng đã hết hạn và xuất chúng theo thời gian ngừng hoạt động Bảng quy trình được triển khai với 2 Block RAMs

Timeout Monitor: Kiểm tra xem hoạt động luồng có trong bảng luồng không

Cụ thể, một luồng sẽ bị xóa khỏi bộ nhớ nếu nó đã ở trên bảng quy trình quá lâu hoặc nếu không còn gói nào thuộc luồng đó được nhận

Export Module: Nhận các bản ghi luồng được bị xóa khỏi bảng quy trình và đưa chúng ra khỏi bo mạch thông qua một trong các cổng Ethernet 10 Gbps

2.2.3 Xây dựng bộ chuyển mạch OpenFlow trên nền tảng NetFPGA

Nhiều chuyển mạch OpenFlow đã được triển khai trong các cấu hình khác nhau chẳng hạn như Linux (phần mềm), OpenWRT (phần mềm) và NetFPGA (phần cứng) Chuyển mạch phần cứng /thương mại (ví dụ: HP ProCurve, NEC IP8800) và phần mềm / kiểm tra các bộ chuyển mạch (bộ chuyển mạch NetFPGA, OpenWRT) đã được phát hành và sử dụng trong mạng thực tế,chuyển mạchlà nguồn mở và có thể được tìm thấy trên trang web

NetFPGA được sử dụng là phần cứng mạng tốc độ Gigabit, bao gồmmột thẻ PCI có đồ họa, bộ nhớ và bốn cổng Ethernet 1-Gig Việc triển khai có thể chứa hơn 32.000 mục nhập luồng khớp chính xác chạy quabốn cổng, và bảng khớp chính xác có thể được mở rộng đến hơn 65000mục Phần mềm tham chiếu OpenFlow triển khai được mở rộng bằng cách sử dụng cấu trúc dữ liệu δFA mới để tạo quy tắcthay vì hàm băm, nó có nhiều cải tiến hơn chuyển mạch được triển khai trênNetFPGA Chuyển mạch này cung cấp một kiến trúc chuyển tiếp gói linh hoạt dựa trênhoạt động đều đặn.Bên cạnh đó, nó cũng cho phép OpenFlow tuân thủ tiêu chuẩnchuyển mạch, có thể

dễ dàng cấu hình lại thông qua mặt phẳng điều khiển của nó để hỗ trợ các loại ứng dụng khác.Trong đề tài, OpenFlowSwitchđược dùng là NetFPGA-10G Các bảng khớp chính xác được triển khai trên cả Block RAM và DRAM Nó có độ trễ xử lý đường ốngthấp hơn 19 chu kỳ cho một gói tin từ khi đi vào đến khi đi ra Hơn nữa, việc

DUT.LRCC

Trang 34

chuyển đổi được thực hiện trong hai cấu hình, một là trong FPGA với bộ điều khiển qua PCIe, một bộ khác nằm trong FPGA-based Các công việc liên quan về triển khai chuyển mạch OpenFlow được triển khai trên NetFPGA.Mô hình hiệu suất của hệ thống OpenFlow, dựa trên kết quả từ lý thuyết xếp hàng và xác minh bằng cách mô phỏng và thử nghiệm đo lường với một chuyển mạch OpenFlow và bộ điều khiển

2.3 Kết luận chương 2

Qua chương này, các hiểu biết chung về công nghệ FPGA và chuyển mạch OpenFlow trên nền tảng NetFPGA đã được trình bày Nhằm cung cấp hình ảnh tổng quan về FPGA và những kiến thức về chuyển mạch OpenFlow trên nền tảng NetFPGA

DUT.LRCC

Trang 35

CHƯƠNG 3 TRIỂN KHAI HỆ THỐNG MẠNG OPENFLOW TRÊN NỀN TẢNG

KIT NETFPGATRONG THỰC TẾ

3.1 Giới thiệu mô hình thử nghiệm

Chuyển mạch OpenFlow 4 cổng 1-GigE trên NetFPGA NetFPGA là một cấu hình cho phép nghiên cứu và thử nghiệm với phần cứng mạng tốc độ Gigabit Nó bao gồm một thẻ PCI có đồ họa, bộ nhớ (SRAM vàDRAM) và bốn cổng Ethernet 1-GigE

Hình 3.1 Mô hình thử nghiệm chuyển mạch OpenFlow

Hệ thống có ba khối chức năng chính: tối ưu, định tuyến và điều khiển công suất Chức năng chính của bộ tối ưu là tính toán ra được đồ hình mạng tối ưu, tiêu thụ

ít năng lượng mà vẫn đáp ứng được nhu cầu lưu lượng trong mạng Các yêu cầu đầu vào của khối này gồm có đồ hình mạng, ma trận lưu lượng, mô hình công suất của chuyển mạch, khả năng chống lỗi muốn đạt được Đầu ra là đồ hình tối ưu với các thành phần mạng cần phải hoạt động sẽ được đưa đến bộ định tuyến và bộ điều khiển

Bộ điều khiển sẽ thay đổi trạng thái tắt bật của các thiết bị mạng trong mạng trong khi

bộ định tuyến tiến hành định tuyến cho các luồng theo đồ hình mới

3.2 Xây dựng chuyển mạch OpenFlow

Trong thiết kế của đề tài, dữ liệu OpenFlow nhận các gói thông qua các gói tin được tạo Tất cả các thiết bị ngoại vi chia sẻ cùng một xung clock (100 MHz) và thiết lập lại Tuy nhiên, chỉ có mục nhập luồng đượctrích xuất đi đến mô đun điều khiển bảng luồng.Vì chỉ có một cổng Ethernet, bốn dữ liệu được thiết kế xử lý đường ốngđể

mô phỏng nhiều cổng hơn bằng cách sử dụng hàng đợi đầu vào và đầu ra xếp hàng như một chuyển mạch cơ sở trong mô-đun cấp cao nhất Các gói đến từ mỗi gói cổng đầu vào vật lý đi qua xử lý đường ống Hình 3.2 minh họa OpenFlow kiến trúc hệ thống và khung ngắn gọn của thiết kế chuyển mạch OpenFlow Các gói được tạo và

DUT.LRCC

Trang 36

phải ở trong hàng đợi đầu ra sau khi được xử lý do chỉ có một cổng Ethernet Ba phần chính của kiến trúc OpenFlow là mô đun hàng đợi đầu vào, mô đun tra cứu cổng đầu

ra và mô đun hàng đợi đầu ra

Hình 3.2 Kiến trúc hệ thống OpenFlow

Hàng đợi đầu vào và hàng đợi đầu ra bao gồm các mô đun chung được tạo bởi hai lõi IP (bộ tạo FIFO và Block RAM) được hỗ trợ bởi công cụ thiết kế Xilinx (ISE 14.7 ) Mỗi hàng đợi đầu vào kết nối với mỗi cổng và đệm các gói tin nhận được Kích thước của cả hai, khối hàng đợi FIFO và khối đệm là 64 (width) × 1024 (depth) Mô-đun tra cứu cổng đầu ra, được hiển thị trong Hình 3.3, là phần quan trọng nhất trong khung thiết kế chuyển mạch OpenFlow, bao gồm trình soạn thảo mục nhập bảng, bộ điều khiển bảng luồng và bộ xử lý hành động

Hình 3.3.Mô đun tra cứu cổng đầu ra

DUT.LRCC

Trang 37

Khi các gói mới được tạo đi vào chuyển mạch OpenFlow, thông tin tiêu đề quan trọng được trích xuất và sau đó được thiết lập thành định dạng và so sánh với các mục trong hai bảng luồng (khớp chính xác bảng và bảng ký tự đại diện) Đồng thời, các gói đến được đệm trong đầu vào khối đệm FIFO, chờ để được chuyển Kết quả trùng khớp, liên kết với hành động chuyển tiếp được gửi đến bộ xử lý hành động

để ứng phó với gói tin Nếu gói tin là trùng khớp , nó được chuyển tiếp đến đầu ra tương ứng cổng dựa vào thông tin chuyển tiếp trong danh sách hành động Trong khi nếu không khớp, chuyển mạch OpenFlow yêu cầu bộ điều khiển đưa ra quyết định của gói chưa từng có này Biện pháp của mô đun chính sách bộ điều khiển là thêm luồng thông tin mục nhập bao gồm mục nhập luồng , mặt nạ luồng và hành động Ở đây, các gói trùng khớp và không trùng khớp được chuyển đến hàng đợi đầu ra cuối cùng Mô-đun tra cứu cổng đầu ra và mô-đun chính sách được mô tả nhiều hơn trong phần sau phần

Trang 38

CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH TIẾT KIỆM NĂNG LƯỢNG CHO

CHUYỂN MẠCH OPENFLOW

4.1 Giải pháp tiết kiệm năng lượng

Để tiết kiệm năng lượngluận văn đưa ra giảipháp sử dụng tùy chọn “LOCAL”

trong Openflow specification tích hợp một “Microprocessor” bên trong chuyển mạch OpenFlow để phân tích các hành động và các luồng dữ liệu đến/đi để bật và tắt các cổng tương ứng Phân tích lưu lượng thực (Throughput) của các cổng để thiết lập các chế độ hoạt động các cổng cụ thể gồm các mục tiêu như sau:

- Phân tích các “Action” của các luồng, hệ thống chỉ kích hoạt (Active) các cổng nào mà luồng có nhu cầu trao đổi dữ liệu Còn các cổng khác thì sẽ tắt

- Phân tích băng thông luồng dữ liệu đến của các End-User đến Port, hệ thống

sẽ thiết lập chế độ hoạt động cho cổng đó phù hợp Ví dụ End-User tốc độ 1G thì cổng

xỉ 10W (4W cho 4 port và 6W cho phần lõi)

4.2 Thiết kế các mô đun

4.2.1 Mô đunthiết lập mục nhập bảng luồng

Mục đích của mô đunthiết lập mục nhập bảng luồng là để trích xuất các tiêu đề gói và tổ chức chúng như một định dạng cố định của mục nhập bảng luồng Có thể thấy trong hình 4.1là nó được tạo thành từ khối hàng đợi FIFO đầu vào, khối trình phân tích cú pháp tiêu đề, khối tra cứu thiết lập mục nhập luồng Khi một luồng mới xuất hiện, các trường tiêu đề được trích xuất Sau khi được phân tích cú pháp, các thông tin tiêu đề đã trích xuất này được tạo thành mục nhập luồng với mẫu định dạng trong khối tra cứ thiết lập mục nhập luồng Sau đó, mục nhập luồng được gửi đến mô-đun bảng luồng để so sánh trùng khớp

DUT.LRCC

Trang 39

Hình 4.1 Mô đun thiết lập mục nhập luồng

4.2.1.1 Khối hàng đợi

Khối hàng đợi đầu vào FIFO là một khối phổ biến cho kiến trúc chuyển mạch OpenFlowđể giảm tình trạng áp lực ngược Khối FIFOvà khối đệm đầu ra được tạo bởi các lõi IP của bộ tạo FIFO Khối FIFO đầu vào đệm các gói đến để phân tích cú pháp tiêu đề Trong khi khối bộ đệm đầu ra đệm các gói đến cho bộ xử lý hành động và cũng đồng bộ với tiêu đề được phân tích cú pháp Kích thước bộ đệm (64 × 1024) là

đủ để lưu trữ dữ liệu cho đến khi hoàn thành phân tích cú pháp tiêu đề

4.2.1.2 Khối phân tích tiêu đề

Bảng 4.1 Các trường khớp

Ethernet destination address 48

Trang 40

Field Bits

IPv4 destination address 32

IPv6 destination address 128 Transport source port/ICMP Type 16 Transport destination port/ICMP Code 16

Mô-đun trình phân tích cú pháp tiêu đề trích xuất thông tin tiêu đề L2 (dl_parser block) và cả thông tin tiêu đề L3 / L4 (ip_tp_parser block, ipv6_tp_parser block, arp_parser, mpls-parser block) Mỗi trường tiêu đề có vị trí chính xác trong gói Do vậy, các trường tiêu đề quan trọng có thể được trích xuất theo vị trí chính xác của chúng trong khung Ethernet Bảng 4.1 cho thấy các trường tiêu đề được trích xuất từ gói trong thiết kế của đề tài theo các trường khớp được mô tả trong OpenFlow specification v1.1 Theo Bảng 4.1, địa chỉ nguồn / đích Ethernet, Vlan ID, mức độ ưu tiên (nếu thẻ Vlan) và loại Ethernet cần được trích xuất từ tiêu đề L2 Hình 4.2 minh họa cấu trúc của khung Ethernet có, và không có thẻ Vlan (0x8100) hoặc thẻ QinQ (0x8a88) Hình 4.3 minh họa quá trình nhận L2 trường tiêu đề Khi các gói Ethernet xuất hiện, địa chỉ Ethernet nguồn / đích được trích xuất trước tiên Đồng thời, tín hiệu phân tích cú pháp tiêu đề được gửi đến khối tra cứu thiết lập mục nhập luồng để chờ nhận các trường được trích xuất Nếu tìm thấy thẻ Vlan trong gói tin, độ ưu tiên Vlan ID và Vlan đến từ gói tin Các loại Ethernet khác nhau (xem bảng 4.2) được phát hiện thông qua các câu lệnh Nếu một trong những loại đó được tìm thấy, các trường tiêu đề tương ứng là trích thêm Khối phân tích cú pháp tiêu đề dừng lại để phân tích cú pháp nhiều hơn nữa

Hình 4.2.Cấu trúc gói tin Ethernet

DUT.LRCC

Ngày đăng: 19/03/2021, 16:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
4. Orgopenflow-switch-v1.5.1.pdf. https://www.opennetworking.orgopenflow-switch-v1.5.1.pdf Link
6. Xilinx. Designing flexible, fast CAMs with Virtex family FPGAs. http://www.xilinx.com/support/documentation/application notes/xapp203.pdf Link
7. Xilinx. An overview of multiple CAM designs in Virtex family devices. http://www.xilinx.com/support/documentation/application notes/xapp201.pdf Link
8. OpenFLow Consortium. OpenFlow switch specification. Can be accessed at http://openflowswitch.org/documents.php Link
9. OpenFlow Consortium. OpenFlow website. http://openflowswitch.org/ Link
11. Xilinx, LogiCORE IP FIFO Generator v9.2 Product Guide, July 2012. http://www.xilinx.com/support/documentation/ip_documentation/fifo_generator/v9_2/pg057-fifo-generator.pdf Link
1. B. G. Assefa and O. Ozkasap, State-of-the-art Energy Efficiency Approaches in Software Defined Networking, ICN: The Fourteenth International Conference on Networks, 2015 Khác
2. M. Erol-Kantarci and H.T. Mouftah, Energy-Efficient Information and Communication Infrastructures in the Smart Grid: A Survey on Interactions and Open Issues, IEEE Communications Surveys Tutorials, vol. 17, no. 1, pp. 179- 197, 2015 Khác
3. Ruckus FastIron SDN &onfgurDtion Guide, 08.0.61, Part Number: 53-1005205- 03, Publication Date: 28 June 2018 Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w