Nghiên cứu công nghệ ảo hóa mạng với openflow

72 1.1K 10
Nghiên cứu công nghệ ảo hóa mạng với openflow

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN NGỌC BÌNH NGHIÊN CỨU CÔNG NGHỆ ẢO HÓA MẠNG VỚI OPENFLOW Chuyên ngành : Kỹ thuật máy tính truyền thông LUẬN VĂN THẠC SĨ KỸ THUẬT KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS NGÔ HỒNG SƠN HÀ NỘI – 2014 Luận văn thạc sỹ kỹ thuật máy tính truyền thông LỜI CAM ĐOAN Tôi xin cam đoan đề tài nghiên cứu của hoàn toàn tự làm dưới sự hướng dẫn của Thầy giáo PGS.TS Ngô Hồng Sơn Những kết quả nghiên cứu, thử nghiệm được thực hiện phần mềm mô Các số liệu, kết quả trình bày luận văn là hoàn toàn trung thực và chưa từng được công bố bất cứ công trình nào Các tài liệu tham khảo sử dụng luận văn đều được dẫn nguồn Nếu xảy bất cứ điều không những lời cam đoan trên, xin chịu hoàn toàn trách nhiệm trước Viện và Nhà trường Hà Nội, ngày tháng năm 2014 Tác giả Nguyễn Ngọc Bình / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông LỜI CẢM ƠN Để hoàn thành khóa luận này, xin tỏ lòng biết ơn sâu sắc đến PGS.TS Ngô Hồng Sơn tận tình hướng dẫn suốt trình viết luận văn tốt nghiệp Tôi xin chân thành cảm ơn Thầy, Cô Viện Công nghệ Thông tin & Truyền thông, Trường Đại học Bách Khoa Hà Nội, đặc biệt thầy cô môn Truyền thông & Mạng máy tính tận tình truyền đạt kiến thức thời gian học tập nghiên cứu Với vốn kiến thức tiếp thu trình học tập nghiên cứu không tảng cho trình nghiên cứu khóa luận mà hành trang quí báu để bước vào đời cách vững tự tin Tôi thầm biết ơn ủng hộ đồng nghiệp, gia đình bạn bè – người thân yêu chỗ dựa vững cho Cuối cùng, xin kính chúc Thầy cô, Đồng nghiệp, Gia đình dồi sức khỏe thành công nghiệp cao quý Xin trân trọng cảm ơn! Học viên Nguyễn Ngọc Bình / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT DANH MỤC HÌNH VẼ ĐẶT VẤN ĐỀ CHƯƠNG CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ ẢO HÓA MẠNG 10 1.1 Openflow - Ảo hóa hạ tầng mạng 10 1.2 Sự cần thiết của OpenFlow 11 1.3 Kiến trúc ứng dụng của OpenFlow 11 1.4 Giải pháp sử dụng mạng OpenFlow 19 1.4.1 Sự cần thiết cho kiến trúc mạng 19 1.4.2 Mục tiêu mạng OpenFlow 20 1.4.3 Giao thức OpenFlow 22 1.4.4 Lợi ích mạng SDN dựa giao thức OpenFlow 24 1.5 Giới thiệu về NetFPGA 26 CHƯƠNG CÁC GIẢI PHÁP ỨNG DỤNG ẢO HÓA MẠNG DỰA TRÊN OPENFLOW 32 2.1 Giải pháp giới hạn giám sát QoS băng thông mạng 32 2.2 Giải pháp sử dụng Open vSwitch 35 2.3 Giải pháp điều khiển luồng dữ liệu lớn 39 2.4 Giải pháp sử dụng OpenFlow NetFPGA 39 2.5 Kết luận chương 41 CHƯƠNG CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ THU ĐƯỢC 42 3.1 Triển khai sFlow để giám sát Open vSwitch 42 3.2 Triển khai đo kiểm giới hạn lưu lượng băng thông mạng 44 3.3 Cài đặt thử nghiệm điều khiển luồng dữ liệu lớn 53 3.4 Triển khai cài đặt của dự án NetFPGA 58 3.5 Kết luận chương 64 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 64 TÀI LIỆU THAM KHẢO 65 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông PHỤ LỤC 67 Phụ lục Code của node.js 67 Phụ lục File thiết kế của NetFPGA 71 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT Từ viết tắt Thuật ngữ tiếng anh Thuật ngữ tiếng việt SNMP Simple Network Management Protocol SDN Software-Defined Network Mạng điều khiển phần mềm API Application Programming Interface Giao diện lập trình ứng dụng DRAM Dynamic Random Access Memory Bộ nhớ truy cập ngẫu nhiên động FPGA Field Programmable Gate Array Mảng cổng khả trình IP Internet Protocol MAC Media Access Control Điều khiển truy nhập thiết bị OF SW OpenFlow Switch Bộ chuyển mạch OpenFlow OSC OpenFlow Switch Controller Mạch điều khiển chuyển mạch OpenFlow DDOS Distributed Denial of Service Tấn công từ chối dịch vụ PCI Peripheral Component Inter-connect Kết nối thành phần ngoại vi PSTN Public Switched Telephone Network Mạng điện thoại chuyển mạch công cộng Bộ nhớ truy cập ngẫu nhiên tĩnh SRAM Static Random Access Memory ONF Open Networking Foundation TDM Time Division Multiplexing Ghép kênh theo thời gian ATM Asynchronous Transfer Mode Kiểu truyền không đồng / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông DANH MỤC HÌNH VẼ Hình - Kiến trúc mạng với switch router sử dụng OpenFlow 10 Hình - OpenFlow agent 12 Hình - Môi trường mạng Campus 13 Hình – Ghi dữ liệu vào Flow Table 14 Hình - OpenFlow Controller 15 Hình - Ảo hóa mạng với OpenFlow 16 Hình - Cấu trúc của OpenFlow Switch 17 Hình - Cấu tạo của flow-entry 18 Hình - Các bước flow mới tới chuyển mạch OpenFlow 19 Hình 10 - Kiến trúc mạng điều khiển phần mềm 21 Hình 11 - Ví dụ về tập lệnh của OpenFlow 23 Hình 12 - Nền tảng NetFPGA 27 Hình 13 - Sơ đồ khối chi tiết thành phần kit NetFPGA 28 Hình 14 - Cấu trúc đơn giản dự án với NetFPGA 29 Hình 15 – modules NetFPGA 29 Hình 16 - Sơ đồ tổng quát của hệ thống NetFPGA 30 Hình 17 - Triển khai giám sát lưu lượng 34 Hình 18 - Mô hình chung về Open vSwitch 35 Hình 19 - Triển khai Open vSwitch 36 Hình 20 - Open vSwitch với giao diện ảo giao diện vật lý 37 Hình 21 - Giám sát lưu lượng mạng qua interface 38 Hình 22 - Giám sát nhiều interface 39 Hình 23 - Mô hình giám sát sFlow tập trung 42 Hình 24 - Kết quả hiển thị sFlow-Trend 43 Hình 25 - Mô hình điều khiển băng thông của card mạng 44 Hình 26 - Kết nối vào máy chủ XenCitrix phần mềm XenCenter 45 Hình 27 - Kết nối SSH 47 Hình 28 - Hiển thị bridge cua Open vSwitch 47 Hình 29 - Cấu hình hsflow 47 Hình 30 - sFlow-Trend status 48 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Hình 31 - Giám sát card mạng 48 Hình 32 - Counter 48 Hình 33 - Top N 49 Hình 34 - Circles 49 Hình 35 - Host 49 Hình 36 - Theo dõi thông tin Network packets/host 50 Hình 37 - Theo dõi thông tin Network packets/host 50 Hình 38 - Show virtual interface 51 Hình 39 - Xác định vif38.0 card mạng ảo của Oracle 51 Hình 40 - Mô hình điều khiển luồng dữ liệu lớn 53 Hình 41 - Host bị flood ping 57 Hình 42 - Biểu đồ thể hiện gói tin bị drop bật node.js 58 Hình 43 - Mô hình phần chia NetFPGA thành host 61 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông ĐẶT VẤN ĐỀ Sự bùng nổ của thiết bị nội dung di động, ảo hóa máy chủ, sự đời của dịch vụ điện toán đám mây những xu hướng thúc đẩy ngành công nghiệp mạng xem xét lại kiến trúc mạng truyền thống Đáp ứng yêu cầu thị trường hiện với kiến trúc mạng truyền thống Đối mặt với ngân sách không đổi giảm, doanh nghiệp ngành Công nghệ Thông tin (CNTT) cố gắng để tận dụng tối đa khả mà mạng của họ đáp ứng cách sử dụng công cụ quản lý mức thiết bị quy trình thủ công Các hãng cung cấp dịch vụ phải đối mặt với những thách thức tương tự yêu cầu về tính di động sự bùng nổ băng thông, lợi nhuận bị xói mòn chi phí vốn cho thiết bị leo thang doanh thu không tăng suy giảm Chính vì lý trên, các nhà nghiên cứu đưa giải pháp: Mạng điều khiển phần mềm (Software-Defined Networking) Mạng điều khiển phần mềm (SDN) là kiến trúc mạng mới phát triển thời gian gần đây, việc điều khiển mạng được tách rời khỏi việc chuyển tiếp và được lập trình Khác với trước bị ràng buộc chặt chẽ 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 truy cập (accessible computing device) cho phép sở hạ tầng 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ụ coi mạng thực thể hợp thống nhất Đối với doanh nghiệp và nhà cung cấp, công nghệ của mạng SDN dựa OpenFlow cho phép các kĩ sư công nghệ thông tin giải quyết các vấn đề liên quan tới băng thông cao, tính chất thay đổi của các ứng dụng ngày nay, chuyển đổi mạng cho phù hợp với các yêu cầu làm việc thay đổi, và làm giảm đáng kể độ phức tạp của hoạt động điều hành và quản lý mạng Từ quyết định chọn đề tài: “ Nghiên cứu công nghệ ảo hóa mạng với OpenFlow ” phạm vi nghiên cứu kiểm soát QoS băng thông với mục đích: tích hợp được giải pháp ảo hóa mạng Open Flow (Open vSwitch) nền tảng ảo hóa XenCitrix Với những yêu cầu trên, thực hiện những nhiệm vụ sau luận văn: / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông  Tìm hiểu lý thuyết ảo hóa mạng, nguyên lý, mô hình, các giải pháp ảo hóa mạng, ảo hóa server hiện có  Trên sở thực tế đề xuất mô hình giám sát, điều khiển giới hạn QoS băng thông các thiết bị, phần mềm OpenFlow, Open vSwitch  Triển khai thử nghiệm  Đánh giá kết quả đạt được Luận văn được chia thành chương với các nội dung sau:  Chương 1: Cơ sở lý thuyết về ảo hóa mạng, trình bày về việc cần thiết phải có thế hệ mạng mới, các khái niệm liên quan đến OpenFlow để ảo hóa mạng  Chương 2: Các mô hình và giải pháp ảo hóa mạng, trình bày về các mô hình giám sát mạng thông dụng hiện nay, để từ thực hiện quá trình điều khiển, quản lý chất lượng dịch vụ (QoS) băng thông cách linh động với OpenFlow, Open vSwitch  Chương 3: Cài đặt triển khai thử nghiệm mô hình ảo hóa mạng với công cụ giám sát luồng dữ liệu sFlow, triển khai đánh giá Open vSwitch, OpenFlow áp dụng các card mạng ảo với nền tảng ảo hóa XenCitrix Nhờ những cố gắng, có được số kết quả nhất định Mặc dù vậy, thời gian có hạn nên số ý tưởng vẫn chưa được thực hiện kết quả nghiên cứu không tránh khỏi sai sót Vì vậy, rất mong nhận được ý kiến đóng góp của Thầy Cô giáo bạn bè Tôi xin chân thành cám ơn PGS.TS Ngô Hồng Sơn hướng dẫn, giúp đỡ trình nghiên cứu thực hiện luận văn này / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông - Trong kịch bản sử dụng Flood Ping để chứng minh bản của từ chối dịch vụ (DDOS) - Thực hiện kết nối đến host1: mininet> xterm h1 - Ping flood ping -f 10.0.0.2 Kết quả thu được Hình 41 - Host bị flood ping Các biểu dồ sFlow-RT cho thấy băng thông ổn định mức cao 6000 gói/s Để thực hiện ngăn chặn việc ta thực hiện câu lệnh nodejs mininet.js - Thực hiện test Flood ping lần nữa 57 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Hình 42 - Biểu đồ thể gói tin bị drop bật node.js Nhận xét: Biểu đồ cho thấy điều khiển đáp ứng cách nhanh chóng traffic vượt 100 packets/s Kiểm soát giảm thiểu được áp dụng vòng giây thay vì đạt peak 6000 packets/s, tấn công được giới hạn mức dưới 130 packets/s Các tấn công nhanh chóng được phát hiện bới sFlow-RT, sau thông báo cho ứng dụng Bộ điều khiển sau sử dụng OpenFlow để đẩy quy tắc Open vSwitch để lập tức drop gói tin Hiệu suất phần mềm tạo mạng mô tả sFlow OpenFlow được kết hợp tạo ứng dụng SDN để giảm nhẹ tác động của DDOS, cân tải dòng flow lớn bắt gói tin Bài thực nghiệm này để xây dựng nền phát triển ứng dụng hiệu suất của SDN 3.4 Triển khai cài đặt dự án NetFPGA Các dự án sử dụng nền tảng NetFPGA đều có một cấu trúc thư mục lưu trữ dữ liệu các file thiết kế, phần mềm Phụ lục 2: 58 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Trong đó, netfpga là thư mục gốc (base directory) nằm đường dẫn /root/netfpga Thư mục bin chứa các script để mô (nf_run_test.pl), sinh ghi (nf_register_gen.pl), chạy regress test (nf_regress_test.pl)… Thư mục bitfiles chứa những file bit dùng để nạp xuống chip FPGA Virtex Pro OpenFlow_switch.bit Thư mục lib/C chứa các chương trình C nf_download để nạp file bit xuống chip, các thư viện cho phép phần mềm viết máy tính đọc ghi ghi kit NetFPGA Thư mục lib/Makefiles chứa Makefile phục vụ mục đích tổng hợp biên dịch source code Verilog để mô tạo file bit Thư mục lib/Perl5 chứa các thư viện Perl để tạo file dữ liệu gói tin đầu vào, file dữ liệu gói tin mong muốn nhằm mục đích mô test phần cứng thật Thư mục lib/scripts chứa các file script để nạp khối PCI controller xuống chip Spartan (cpci_reprogram.pl), để chạy mô (run.pl)… Thư mục lib/verilog/contributed chứa module phần cứng (dưới dạng source code Verilog) người dùng đóng góp cho dự án NetFPGA Thư mục lib/verilog/core chứa module phần cứng được sử dụng lại nhiều dự án netFPGA module sram_arbiter, input_arbiter, output_queues, output_port_lookup… Đặc biệt tác giả quan tâm là module testbench, module chứa khối phần cứng nhằm mục đích mô thiết kế bất kì kit NetFPGA Thư mục projects chứa dự án NetFPGA Trong thư mục này, tác giả quan tâm đến thư mục OpenFlow_switch Tạo Project Một Project mới được tạo theo các bước sau: 59 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông  Tạo thư mục chưa project mới đường dẫn netfpga/projects  Cập nhật biến môi trường NF_DESIGN_DIR để tới thư mục chứa project cần tạo Ví dụ: export NF_DESIGN_DIR=$(HOME)/netfpga/projects/my_first_project  Tạo các thư sau bên thư mục project: include, src, synth, test Các thư mục khác doc, lib, sw không cần thiết (Chú ý: thư mục lib được tạo cách tự động chạy công cụ register generation)  Tạo file project.xml file inside the include directory  Thêm các module thư viện có sẵn vào file project.xml  Thêm khối riêng của project (không có thư viện có sẵn) viết ngôn ngữ Verilog vào thư mục src  Viết file mô tả chi tiết ngôn ngữ XML cho từng module mới vừa viết, đặt chúng thư mục include  Trong sở hạ tầng thử nghiệm ngôn ngữ python mới, kiểm tra mô phần cứng (trước là kiểm tra hồi quy) được thống nhất, đó, kiểm tra được viết lần chạy cho cả kiểm tra mô phần cứng, trừ cần đánh giá chức cụ thể của phần cứng Các test nên được đặt thư mục test của project Thư mục test nên được đặt tên theo kiểu both__ nếu được chạy cho cả mô phần cứng, hw__ nếu được chạy là kiểm tra phần cứng, sim__, nếu được chạy là thử nghiệm mô Cả phần major minor đều phải được đặt tên cho dấu gạch dưới dấu cách  Copy file Makefile từ thư mục synth của reference router vào thư mục synth của project vừa tạo 60 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông  Synthesize thiết kế cho project cách chạy lệnh make thư mục synth  Viết test cho phần cứng và đặt thư mục test Chạy với nf_test.py  Viết phần mềm cần thiết và đăt thư mục sw  Các tài liệu cần thiết để làm việc với project nên đặt thư mục doc Để thiết lập testbed thực tế, trước hết tìm hiểu thành phần quan trọng điều khiển, chuyển mạch OpenFlow, host (hoặc máy tính cá nhân) kết nối tới chuyển mạch Hình 43 dưới mô tả sơ đồ testbed đơn giản ban đầu gồm điều khiển (controller), chuyển mạch (switch) bốn host dùng để kiểm tra những giải pháp các chương trước đề Controller Switch Host Host Host Host Hình 43 - Mô hình phần chia NetFPGA thành host Với trường hợp có sẵn NetFPGA, cấu hình phần cứng thành NIC 4-port đóng vai trò host Reference Network Interface Card project Reference NIC project những project mẫu dùng cho người mới tìm hiểu về NetFPGA học cách tìm hiểu về Với project này, cấu hình NetFPGA card thành card mạng cổng độc lập Trong số trường hợp 61 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông coi host riêng biệt Các cổng gửi nhận bản tin cách sử dụng hàm có sẵn thư viện NetFPGA Các bước thực hiện sau (mặc định thư mục cài đặt netfpga ~/netfpga:  Cấu hình cho NetFPGA thành NIC card nf_download ~/netfpga/bitfiles/reference_nic.bit  Cấu hình địa Ip cho cổng mạng Dưới là ví dụ: /sbin/ifconfig nf2c0 192.168.1.100 /sbin/ifconfig nf2c1 192.168.1.101 /sbin/ifconfig nf2c2 192.168.1.102 /sbin/ifconfig nf2c3 192.168.1.103  Sử dụng công cụ counterdump để kiểm tra sự truyền nhận gói tin của port NetFPGA Công cụ nằm thư mục sw reference_nic project cd ~/netfpga/projects/reference_nic/sw/ make Sau build thành công, công cụ đơn giản đọc ghi đếm gói tin (phần cứng) và ghi lên terminal Để sử dụng, gõ lệnh sau: /counterdump Công cụ in màn hình sau: Found net device: nf2c0 Num pkts received on port 0: Num pkts dropped (rx queue full): 62 / 71 0 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Num Num Num Num pkts dropped (bad fcs q 0): bytes received on port 0: pkts sent from port 0: bytes sent from port 0: 0 0 Num Num Num Num Num Num pkts received on port 1: pkts dropped (rx queue full): pkts dropped (bad fcs q 1): bytes received on port 1: pkts sent from port 1: bytes sent from port 1: 0 0 0 Num Num Num Num Num Num pkts received on port 2: pkts dropped (rx queue full): pkts dropped (bad fcs q 2): bytes received on port 2: pkts sent from port 2: bytes sent from port 2: 0 0 0 Num Num Num Num Num Num pkts received on port 3: pkts dropped (rx queue full): pkts dropped (bad fcs q 3): bytes received on port 3: pkts sent from port 3: bytes sent from port 3: 0 0 0  Ngoài counterdump nhà phát triển cung cấp thêm send_pkts đề gửi gói tin qua cổng mạng bất kỳ Công cụ phiên bản mới nhất 3.0.0 đặt thư mục ~/netfpga/lib/C/tools/send_pkts cd ~/netfpga/lib/C/tools/send_pkts make Muốn gửi 10 gói tin, gói có độ dài 100 byte từ cổng mạng nf2c0 (cổng gần mainboard máy tính nhất) ta sử dụng câu lệnh sau: sudo /send_pkts -i nf2c0 -s 10 -l 100 63 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Công cụ tự động chèn header byte kiểm tra mã CRC vào gói tin gửi qua cổng mạng nf2c0 Như vậy về bản, với việc ứng dụng này, cấu hình NetFPGA card thành card mạng cổng độc lập 3.5 Kết luận chương Trong chương này, trình bày về việc cài đặt thử nghiệm công cụ giám sát mạng để nhận biết được sự thay đổi băng thông của luồng dữ liệu Trên sở đó, sử dụng OpenFlow, Open vSwitch, NetFPGA để giới hạn chia nhỏ luồng dữ liệu qua card mạng để bước đầu cho thấy vai trò của quản trị viên dễ dàng điều khiển luồng dữ liệu cho dịch vụ yêu cầu mức độ băng thông cụ thể KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Về lý thuyết : tác giả tìm hiểu và trình bày được vấn đề tổng quan lý thuyết chung về ảo hóa mạng, kiến trúc OpenFlow, Open vSwitch 64 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Về giải pháp đề xuất : Với nội dung lý thuyết nghiên cứu, sở phân tích yêu cầu đối với hệ thống, yêu cầu đối với khách hàng sử dụng dịch vụ ngày càng đòi hỏi nâng cao tính linh hoạt chất lượng của nhà cung cấp mạng, tác giả đưa được giải pháp để triển khai Open Flow, Open vSwitch để tối ưu tài nguyên mạng Các đề xuất của tác giả nhằm đáp ứng yêu cầu tăng cường tính toàn diện, an toàn, tiện lợi cho hệ thống ảo hóa mạng, rút ngắn thời gian quản trị, mang lại tính hiệu quả cho doanh nghiệp Đánh giá ưu nhược điểm: Trong khuôn khổ của luận văn, mới thực hiện cài đặt thử nghiệm được phần mềm mà chưa triển khai thiết kế được nền tảng phần cứng Để đánh giá mở rộng hiệu của việc triển khai chuẩn hóa mạng mới cần được thực hiện kiểm thử thiết bị phần cứng cụ thể để có được thiết bị chuyên dụng phục vụ sự yêu cầu ngày cao về hiệu của hệ thống mạng Hướng phát triển: việc ứng dụng OpenFlow vào ảo hóa hạ tầng mạng và đem lại hiệu quả cao rất linh hoạt tích hợp thành phần vào hệ thống OpenFlow (bất kể thiết bị là Switch hay Router), từ việc thay đổi hệ thống mạng theo hướng ảo hóa đơn giản nhiều Ngoài thiết bị tương thích với OpenFlow có khả đảm nhiệm nhiều chức hệ thống Từ khả cho phép người dùng ảo hóa hệ thống mạng hiện thành phân vùng khác để đảm nhận nhiều chức OpenFlow không chuẩn giao thức mạng bình thường mà mang tầm của kiến trúc, có ảnh hưởng lớn đến việc thiết kế, vận hành hệ thống mạng OpenFlow ứng dụng vào các môi trường khác trung tâm dữ liệu, khu vực sử dụng mạng có dây không dây, nhà cung cấp dịch vụ Đó là lý các hãng sản xuất thiết bị switch, router Cisco, HP… nghiên cứu mạnh mẽ công nghệ này cho mắt dòng sản phẩm có kiển trúc OpenFlow như: E8200/E5400 (Modular Switch), E6600/E6200, E3500… TÀI LIỆU THAM KHẢO 65 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông [1] Trần Công Hùng, NXB Thông tin & Truyền thông (2012), Chuyển mạch nhãn đa giao thức MPLS [2] Floodlight http://www.projectfloodlight.org/download/ [3] NETFPGA http://netfpga.org/ lần truy cập cuối ngày 10/3/2014 [4] NETFPGA http://en.wikipedia.org/wiki/NetFPGA lần truy cập cuối ngày 10/3/2014 [5] Open vSwitch, http://www.openvswitch.org [6] OpenFlow, http://www.openflow.org [7] OpenFlow switches, http://openflow.org/foswiki/bin/view/OpenFlow/Deployment/Components [8] Open vSwitch RPM, http://www.spenneberg.org/Openvswitch/ [9] Open networking foundation, https://www.opennetworking.org/ lần truy cập cuối 3/3/2014 [10] Sflow, http://openvswitch.org/support/config-cookbooks/sflow/ lần truy cập cuối 3/3/2014 [11] OpenFlow, March 14 2008, Enabling Innovation in Campus Networks [12] Open Networking Foundation, (2014), OpenFlow-enabled SDN and Network Functions Virtualization 66 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông PHỤ LỤC Phụ lục Code node.js var fs = require("fs"); var http = require('http'); var keys = 'inputifindex,ethernetprotocol,macsource,macdestination,ipprotocol,ipsour ce,ipdestination'; var value = 'frames'; var filter = 'sourcegroup=external&destinationgroup=internal&outputifindex!=discard'; var thresholdValue = 100; var metricName = 'ddos'; // mininet mapping between sFlow ifIndex numbers and switch/port names var ifindexToPort = {}; var nameToPort = {}; var path = '/sys/devices/virtual/net/'; var devs = fs.readdirSync(path); for(var i = 0; i < devs.length; i++) { var dev = devs[i]; var parts = dev.match(/(.*)-(.*)/); if(!parts) continue; var ifindex = fs.readFileSync(path + dev + '/ifindex'); var port = {"switch":parts[1],"port":dev}; ifindexToPort[parseInt(ifindex).toString()] = port; nameToPort[dev] = port; } var fl = { hostname: 'localhost', port: 8080 }; var var var var groups = {'external':['0.0.0.0/0'],'internal':['10.0.0.2/32']}; rt = { hostname: 'localhost', port: 8008 }; flows = {'keys':keys,'value':value,'filter':filter}; threshold = {'metric':metricName,'value':thresholdValue}; function extend(destination, source) { for (var property in source) { if (source.hasOwnProperty(property)) { destination[property] = source[property]; } } return destination; } 67 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông function jsonGet(target,path,callback) { var options = extend({method:'GET',path:path},target); var req = http.request(options,function(resp) { var chunks = []; resp.on('data', function(chunk) { chunks.push(chunk); }); resp.on('end', function() { callback(JSON.parse(chunks.join(''))); }); }); req.end(); }; function jsonPut(target,path,value,callback) { var options = extend({method:'PUT',headers:{'contenttype':'application/json'} ,path:path},target); var req = http.request(options,function(resp) { var chunks = []; resp.on('data', function(chunk) { chunks.push(chunk); }); resp.on('end', function() { callback(chunks.join('')); }); }); req.write(JSON.stringify(value)); req.end(); }; function jsonPost(target,path,value,callback) { var options = extend({method:'POST',headers:{'contenttype':'application/json'},"path":path},target); var req = http.request(options,function(resp) { var chunks = []; resp.on('data', function(chunk) { chunks.push(chunk); }); resp.on('end', function() { callback(chunks.join('')); }); }); req.write(JSON.stringify(value)); req.end(); } function lookupOpenFlowPort(agent,ifIndex) { return ifindexToPort[ifIndex]; } function blockFlow(agent,dataSource,topKey) { var parts = topKey.split(','); var port = lookupOpenFlowPort(agent,parts[0]); if(!port || !port.dpid) return; var message = {"switch":port.dpid, "name":"dos-1", 68 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông "ingress-port":port.portNumber.toString, "ether-type":parts[1], "protocol":parts[4], "src-ip":parts[5], "dst-ip":parts[6], "priority":"32767", "active":"true"}; console.log("message=" + JSON.stringify(message)); jsonPost(fl,'/wm/staticflowentrypusher/json',message, function(response) { console.log("result=" + JSON.stringify(response)); }); } function getTopFlows(event) { jsonGet(rt,'/metric/' + event.agent + '/' + event.dataSource + '.' + event.metric + '/json', function(metrics) { if(metrics && metrics.length == 1) { var metric = metrics[0]; if(metric.metricValue > thresholdValue && metric.topKeys && metric.topKeys.length > 0) { var topKey = metric.topKeys[0].key; blockFlow(event.agent,event.dataSource,topKey); } } } ); } function getEvents(id) { jsonGet(rt,'/events/json?maxEvents=10&timeout=60&eventID='+ id, function(events) { var nextID = id; if(events.length > 0) { nextID = events[0].eventID; events.reverse(); for(var i = 0; i < events.length; i++) { if(metricName == events[i].thresholdID) getTopFlows(events[i]); } } getEvents(nextID); } ); } 69 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông // use port names to link dpid and port numbers from Floodlight function getSwitches() { jsonGet(fl,'/wm/core/controller/switches/json', function(switches) { for(var i = 0; i < switches.length; i++) { var sw = switches[i]; var ports = sw.ports; for(var j = 0; j < ports.length; j++) { var port = nameToPort[ports[j].name]; if(port) { port.dpid = sw.dpid; port.portNumber = ports[j].portNumber; } } } setGroup(); } ); } function setGroup() { jsonPut(rt,'/group/json', groups, function() { setFlows(); } ); } function setFlows() { jsonPut(rt,'/flow/' + metricName + '/json', flows, function() { setThreshold(); } ); } function setThreshold() { jsonPut(rt,'/threshold/' + metricName + '/json', threshold, function() { getEvents(-1); } ); } function initialize() { getSwitches(); } initialize(); 70 / 71 Luận văn thạc sỹ kỹ thuật máy tính truyền thông Phụ lục File thiết kế NetFPGA netfpga {Base directory} bin {Scripts for simulation/synthesis/register gen} bitfiles {Compiled hardware bitfiles} lib {Libraries and software tools} C {C libraries/programs} java {Java libraries} Makefiles {Makefile templates used for sim/synth} Perl5 {Perl libraries} python {Python libraries} release {XML files for packaging} scripts {Utility scripts} verilog contributed {Contributed Verilog modules} core {Official Verilog modules} xml {XML schemas} projects {project directory} OpenFlow_switch {contributed project} doc {documentation} include {project.xml, project specific module lib {Perl and C headers} regress {Regression tests} src {non-library verilog} sw {Project-specific software} synth {Synthesis directory (contains all xco verif {Simulation tests} XML} files)} 71 / 71 ... quản lý mạng Từ quyết định chọn đề tài: “ Nghiên cứu công nghệ ảo hóa mạng với OpenFlow ” phạm vi nghiên cứu kiểm soát QoS băng thông với mục đích: tích hợp được giải pháp ảo hóa mạng. .. CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ ẢO HÓA MẠNG 10 1.1 Openflow - Ảo hóa hạ tầng mạng 10 1.2 Sự cần thiết của OpenFlow 11 1.3 Kiến trúc ứng dụng của OpenFlow 11... Hình - Ảo hóa mạng với OpenFlow Đề làm rõ về công nghệ OpenFlow ta tìm hiểu các tính mới của công nghệ Các khái niệm, định nghĩa và mô hình chung nhất về mạng giao thức OpenFlow

Ngày đăng: 25/07/2017, 21:42

Từ khóa liên quan

Mục lục

  • LỜI CAM ĐOAN

  • LỜI CẢM ƠN

  • DANH SÁCH THUẬT NGỮ VÀ VIẾT TẮT

  • DANH MỤC HÌNH VẼ

  • ĐẶT VẤN ĐỀ

  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ ẢO HÓA MẠNG

    • 1.1 Openflow - Ảo hóa hạ tầng mạng

    • 1.2 Sự cần thiết của OpenFlow

    • 1.3 Kiến trúc và ứng dụng của OpenFlow

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

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

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

      • 1.4.3 Giao thức OpenFlow

      • 1.4.4 Lợi ích của mạng SDN dựa trên giao thức OpenFlow

      • 1.5 Giới thiệu về NetFPGA

        • Phần cứng

        • Gateware

        • CHƯƠNG 2. CÁC GIẢI PHÁP ỨNG DỤNG ẢO HÓA MẠNG DỰA TRÊN OPENFLOW

          • 2.1 Giải pháp giới hạn giám sát QoS băng thông mạng

          • 2.2 Giải pháp sử dụng Open vSwitch

          • 2.3 Giải pháp điều khiển luồng dữ liệu lớn

          • 2.4 Giải pháp sử dụng OpenFlow trên NetFPGA

          • 2.5 Kết luận chương

          • CHƯƠNG 3. CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ THU ĐƯỢC

            • 3.1 Triển khai sFlow để giám sát Open vSwitch

Tài liệu cùng người dùng

Tài liệu liên quan