virtualized network infrastructure_using_open_flow
DESCRIPTION
Virtualized network infrastructure_using_open_flowTRANSCRIPT
Virtualized Network Infrastructure using OpenFlow
Giảng viên hướng dẫn: TS. Ngô Hồng Sơn Sinh viên thực hiện: Nguyễn Văn Thành
Vũ Tuấn Anh
04/10/2023 BKHN – 2011 2
Nội dung
1. Giới thiệu
2. Tại sao lại ảo hóa?
3. Mô hình mạng ảo hóa
4. Định nghĩa ảo hóa mạng
5. Kiến trúc hạ tầng mạng ảo hóa sử dụng OpenFlow
6. Kết luận
04/10/2023 BKHN – 2011 3
Giới thiệu
Hạ tầng mạng hiện tại rất phức tạp và khó quản lý. Quá nhiều nhà cung cấp dịch vụ với mục tiêu và chính
sách khác nhau. Xây dựng kiến trúc mạng mới hoặc thay đổi kiến
trúc mạng hiện tại cần sự đồng thuận của tất cả. Yêu cầu: Đơn giản hóa mạng đảm bảo tính mềm dẻo
nhằm đáp ứng sự thay đổi khi các nhu cầu nghiệp vụ phát triển
Þ Vì vậy: Ảo hóa mạng => giúp đơn giản hóa và tự động hóa hạ tầng mạng
04/10/2023 BKHN – 2011 4
Thách thức Internet trong tương lai
• An toàn• Độ linh động • Quản lý mạng• Độ tin cậy và sẵn sàng• Khả năng mở rộng
04/10/2023 BKHN – 2011 5
An toàn
• Internet hiện nay không thực sự an toàn• Giải pháp
o Thêm tính bảo mật, an toàn trong mỗi giao thức• Vấn đề
o Kết hợp nhiều thành phần bảo mật không đảm bảo an toàn cho cả hệ thống
• Nguyên nhâno Các chức năng bảo mật được đặt trên các hệ thống
cuối không an toàno Được thiết kế dựa trên các hệ điều hành tin cậy
04/10/2023 BKHN – 2011 6
Tính linh động
• Yêu cầuo Cần hỗ trợ cho ứng dụng và công nghệ di động: độc lập về
địa lý, phương thức truy cập, thay đổi điểm truy cập…• Giải pháp
o Phân cấp định tuyếno Sử dụng địa chỉ khác
• Vấn đề– Phân cấp định tuyến đe dọa tính mở rộng và lọc IP– Sử dụng địa chỉ IP khác cần thiết kế lại nền tảng hoặc ảnh
hưởng hiệu năng • Nguyên nhân
– Định danh dựa theo sự phân cấp địa chỉ để giữ tính mở rộng
04/10/2023 BKHN – 2011 7
Quản lý mạng
• Độ tin cậy và tính sẵn sàng• Tính mở rộng– E.g: hệ định tuyến.
• Nguyên nhân– Thiết kế quản lý phân tán– Thiếu các công cụ tính toán hiệu năng sử dụng tài
nguyên
04/10/2023 BKHN – 2011 8
Tại sao ảo hóa mạng
• Internet ngày nay hầu như không còn xu hướng thay đổi - “ossifications”, không đáp ứng nhu cầu hiện tại
• E.g: Triển khai IPv6:o IPv6 - giải pháp cho sự cạn kiệt IPv4o Cần có nguyên bộ giao thức từ tầng mạng: DNS, HTTP,
SMTP… trở lên chạy trên IPv6: TCP6, UDP6…o Giao tiếp giữa các máy IPv6 và IPv4 hiện tại
• Trong khi mạng phát triển mạnh mẽ về tốc độ, công nghệ tầng dưới IP, các ứng dụng thì kiến trúc mạng hầu như không đổi hoặc rất khó thay đổi
• => Cần một kiến trúc mới (clean slate)
04/10/2023 BKHN – 2011 9
Tại sao ảo hóa mạng (cont’)
• Ảo hóa mạng là phương pháp đầy hứa hẹn cho phép thử nghiệm các giao thức mới (giao thức chọn đường, giải pháp thay thế IP)
• Ảo hóa mạng không giống với công nghệ hiện nay như VPNs…
• Mạng ảo non-IPtương lai có thể vận hành cùng mạng Internet hiện tại
• Điểm quan trọng: mạng ảo có thể được xây dựng theo các tiêu chí thiết kế khác nhau và vận hành như 1 mạng điều chỉnh theo dịch vụ
04/10/2023 BKHN – 2011 10
Nội dung
1. Giới thiệu
2. Tại sao lại ảo hóa?
3. Mô hình mạng ảo hóa
4. Định nghĩa ảo hóa mạng
5. Kiến trúc hạ tầng mạng ảo hóa sử dụng OpenFlow
6. Kết luận
04/10/2023 BKHN – 2011 11
Mô hình ảo hóa mạng
• Mô hình nghiệp vụ• Kiến trúc• Nguyên lý thiết kế• Mục tiêu thiết kế
04/10/2023 BKHN – 2011 12
Mô hình nghiệp vụ
Nhà cung cấp hạ tầng (InPs) Quản lý hệ thống mạng vật lý
Nhà cung cấp dịch vụ (SPs) Thiết lập và quản lý mạng ảo Triển khai các dịch vụ đầu cuối
Người dùng cuối Mua và sử dụng dịch vụ khác nhau
từ các nhà cung cấp
Trung gian
04/10/2023 BKHN – 2011 13
Kiến trúc mạng
04/10/2023 BKHN – 2011 14
Kiến trúc mạng
04/10/2023 BKHN – 2011 15
Nguyên tắc thiết kế
• Tính đồng thời (Concurrence)o Nhiều mạng tồn tại ảo độc lập
• Tính đệ quy các mạng ảo • Tính kế thừa các thuộc tính
về kiến trúc• Sự thăm lại các nút ảo
(Revisitation)o Đơn giản hóa vận hành và quản
lý mạng
04/10/2023 BKHN – 2011 16
Mục tiêu thiết kế
• Tính linh hoạt - Flexibilityo Các nhà cung cấp dịch vụ có thể chọn:
Kiến trúc mạng bất kỳ Các chức năng định tuyến và chuyển tiếp Điều khiển tùy biến và dữ liệu
o Không cần kết hợp với nhà cung cấp khác Sự thất bại IPv6 không thể xảy ra
• Khả năng quản lý - Manageabilityo Trách nghiệm của nhà cung cấp hạ tầng và dịch vụo Quản lý theo modul
04/10/2023 BKHN – 2011 17
Mục tiêu thiết kế
• Khả năng mở rộng - Scalabilityo Tối đa số mạng ảo (VN) cùng tồn tạio Tăng khả năng sử dụng tài nguyên
• An toàn, tính riêng tư và độc lậpo Sự độc lập hoàn toàn giữa các mạng ảo
Về logic và tài nguyêno Trong suốt khi có sự cố, lỗi kỹ thuật và cấu hình
sai
04/10/2023 BKHN – 2011 18
Mục tiêu thiết kế
• Khả năng lập trình được – Programmabilityo Của các phần tử hệ thống như router…o Dễ dàng và hiệu quả mà không dễ bị tấn công với
các mối đe dọa
• Tính độc lập – Heterogeneityo Giữa các công nghệ mạng: quang, vô tuyến…
04/10/2023 BKHN – 2011 19
Mục tiêu thiết kế
• Tính năng thử nghiệm và triển khaio Triển khai trực tiếp các dịch vụ trong thế giới thực
từ pha thử nghiệm trên mạng ảo
• Kế thừao Xem Internet hiện tại là một phần của tập hợp các
mạng Internet ảo
04/10/2023 BKHN – 2011 20
Nội dung
1. Giới thiệu
2. Tại sao lại ảo hóa?
3. Mô hình mạng ảo hóa
4. Định nghĩa ảo hóa mạng
5. Kiến trúc hạ tầng mạng ảo hóa sử dụng OpenFlow
6. Kết luận
04/10/2023 BKHN – 2011 21
Định nghĩa ảo hóa mạng
04/10/2023 BKHN – 2011 22
Nội dung
1. Giới thiệu
2. Tại sao lại ảo hóa?
3. Mô hình mạng ảo hóa
4. Định nghĩa ảo hóa mạng
5. Hạ tầng mạng ảo hóa sử dụng OpenFlow
6. Kết luận
04/10/2023 BKHN – 2011 23
• Ảo hóa hạ tầng và khả năng lập trình được• Tạo ra nguyên mẫu nhanh (rapid prototyping)
trên hạ tầng ảo
• OpenFlow Network– Có khả năng lập trình
• Hệ điều hành mạng
04/10/2023 BKHN – 2011 24
Mạng khả trình ( Programmable Network)
• Hạ tầng mạng được hỗ trợ công nghệ ảo hóa ( khó) cung cấp open platform
• Tính tùy biến cao người dùng tự định nghĩa và phát triển
04/10/2023 BKHN – 2011 25
Lập trình linh hoạt bằng flow
• “Flow” = kết hợp nào đó header của L1, L2, L3 và L4.
• Chuyển mạch dựa trên flow có thể chuyển tiếp gói tín tới bất kỳ tầng nào
04/10/2023 BKHN – 2011 26
OpenFlow
• OpenFlow switch• OpenFlow channel• OpenFlow protocol• OpenFlow controller
04/10/2023 BKHN – 2011 27
OpenFlow Switch
• Vận hành dựa theo flow (flow-based)o Cho phép lập trình mà không làm thay đổi mặt
bằng dữ liệu (data-plane)
04/10/2023 28
OpenFlow Switch
• Một hay nhiều flow table và một group table
• Một kênh OpenFlow channel
• Trình điều khiển quản lý Switch thông qua giao thức OpenFlow protocol (với giaothức này trình điều khiển có thể thêm, cập nhật và xóa các mục flow entry trong các bảng flowtable)
BKHN – 2011
04/10/2023 BKHN – 2011 29
Flow table
• Mỗi flow table bao gồm một tập các flow entry
• Mỗi entry này bao gồm các trường match field, các biến đếm, các lệnh điều khiển tương ứng với các packet cụ thể
04/10/2023 BKHN – 2011 30
Flow table
• Flow entry:
– Rule: định nghĩa flow– Action: cho biết các gói tin
sẽ được xử lý như thế nào– Statistics: giám sát số lượng
gói tin và số lượng byte cho mỗi flow và thời gian kể từ khi gói tin cuối cùng tương ứng với flow entry đi qua switch
04/10/2023 BKHN – 2011 31
Flow table
• Xử lý đường tin:– OpenFlow-only switch: chỉ hỗ trợ các hoạt động có
tính OpenFlow, chỉ xử lý các gói tin trên các đường tin riêng của OpenFlow
– OpenFlow-hybrid switch: hỗ trợ cho cả các hoạt động trên đường tin của OpenFlow và của các switch Ethernet hiện tại nói chung. Các switch này cung cấp một cơ chế phân biệt để có thể vừa xử lý được các gói tin trên đường tin riêng của OpenFlow vừa xử lý các gói tin trên đường tin thông thường
04/10/2023 BKHN – 2011 32
Flow table
• Các gói tin tương tác với các flow table như thế nào?
04/10/2023 BKHN – 2011 33
Flow table
04/10/2023 BKHN – 2011 34
OpenFlow channel
• Giao diện cho phép kết nối mỗi OpenFlow switch với một trình điều khiển.
• Các thông điệp (message) trên OpenFlow channel phải được định dạng phụ thuộc vào giao thức OpenFlow protocol.
• Kênh này được mã hóa sử dụng TLS, nhưng cũng có thể hoạt động trực tiếp trên nền giao thức TCP.
04/10/2023 BKHN – 2011 35
OpenFlow channel
• Thiết lập kết nối: switch phải có khả năng thiết lập kết nối đến một trình điều khiển tại một địa chỉ IP khả cấu hình), sử dụng một cổng do người dùng đặc tả.o Nếu switch biết địa chỉ IP của trình điều khiển, switch khởi
tạo một kết nối chuẩn TLS hoặc TCP tới trình điều khiển. o Lưu thông trên OpenFlow channel không thông qua
OpenFlow pipeline, do đó switch phải định danh tất cả các lưu thông qua nó trước khi đối chiếu với các mục trong bảng flow table
o Khi một kết nối OpenFlow được khởi tạo, mỗi đầu của kết nối gửi một thông điệp OFPT_HELLO tới đầu kia với chỉ số version là chỉ số version cao nhất của giao thức OpenFlow protocol mà bên gửi hiện đang được hỗ trợ
04/10/2023 BKHN – 2011 36
OpenFlow channel
• Ngắt bỏ kết nối: trong trường hợp switch mất kết nối với trình điều khiển hiện tại, chẳng hạn như echo request timeout, TLS session timeout, ... Nó sẽ cố gắng kết nối với một hay nhiều trình điều khiển sao lưu.
• Switch chuyển sang trạng thái “fail secure mode” hay “ fail standalone mode”, phụ thuộc vào cấu hình hiện tại của switch đó– Fail secure mode: tất cả các gói tin và thông điệp đang được
chuẩn bị để gửi đến trình điều khiển sẽ bị mất đi – Fail standalone mode: switch chuyển sang hoạt động như một
switch Ethernet thông thường. Xử lí tất cả các gói tin thông qua cổng OFPP_NORMAL
04/10/2023 BKHN – 2011 37
OpenFlow channel
• Mã hóa: switch và trình điều khiển có thể kết nối với nhau thông qua kết nối TLS
• Kết nối TLS được khởi tạo bởi switch, mặc định dựa trên TCP tại cổng 6633.
• switch và trình điều khiển xác thực lẫn nhau bằng việc trao đổi các chứng chỉ (certificate) được kí bởi khóa riêng của các bên.
• mỗi switch có thể được cấu hình bởi người dùng lưu giữ ít nhất hai chứng chỉ: chứng chỉ để xác thực trình điều khiển và chứng chỉ để xác thực với trình điều khiển
04/10/2023 BKHN – 2011 38
OpenFlow protocol
• 3 kiểu thông điệp ( message): – controller-to-switch: được khởi tạo bởi trình điều khiển và
mang nội dung điều khiển đến switch.• Cấu hình switch• Trao đổi dung lương giữa các switch• Quản lí bảng flow table
– asynchronous: được khởi tạo bởi switch và được dùng để cập nhật các sự kiện của mạng, trạng thái của switch đến trình điều khiển
– symmetric: khởi tạo bởi hoặc switch hoặc trình điều khiển• Gửi theo một chiều• Dự đoán các vấn đề của kết nối
04/10/2023 BKHN – 2011 39
Trình điều khiển (controller)
• Là yếu tố quyết định tạo nên tính thông minh cho mạng khả trình
• Thực thể tập trung hóa cho toàn bộ mạng OpenFlow
04/10/2023 BKHN – 2011 40
Trình điều khiển – NOX
• Hệ điều hành mã nguồn mở cho mạng OpenFlow (Linux: Debian, Red Hat, Gentoo)
• Cung cấp một platform đơn giản cho các phần mềm điều khiển mạng (ngôn ngữ C++, Python)
• Hỗ trợ cho cả mạng lớn ( hàng trăm switch) và mạng nhỏ (một vài host)
• Cho phép người quản trị theo dõi hiện trạng hoạt động của mạng ở một mức nào đó.
04/10/2023 BKHN – 2011 41
Trình điều khiển - NOX
• Có thể hoạt độngchỉ trên một PC• Luôn lắng nghecác sự kiện phát sinh từ mạng• Đưa ra các lệnh điều khiển đến cácswitch
04/10/2023 BKHN – 2011 42
Trình điều khiển - NOX
Web apps
Network apps
Core apps
Funtionalities for Network apps and Web apps
Discovery Topology
Authenticator
Routing
Monitoring
WebserviceWebserver
Webserviceclient
04/10/2023 BKHN – 2011 43
Cài đặt hệ điều hành mạng
04/10/2023 BKHN – 2011 44
Kết luận
• Công nghệ OpenFlow cho phép xây dựng mạng khả trình linh hoạt
• Hệ điều hành mạng cung cấp nền phần mềm cho việc tích hợp tính năng điều khiển vào hạ tầng mạng
04/10/2023 BKHN – 2011 45
Tài liệu tham khảo
1. Network Virtualization Architecture: Proposal and Initial Prototype, Gr.Schaffrath et al. 2009
2. NOX: Towards an Operating System for Networks, Natasha Gude et al.
3. OpenFlow: Enabling Innovation in Campus Network, Nick McKeown at al. 2008
4. OpenFlow Switch Specification, www.openflow.org 2004
5. www.
04/10/2023 BKHN – 2011 46
CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE