Những tồn tại của kiến trúc mạng truyền thống
Công nghệ ảo hóa server hiện nay đang được áp dụng rộng rãi và mang lại nhiều lợi ích so với công nghệ server vật lý Trong kiến trúc mạng truyền thống, mỗi thiết bị mạng đều có hai cơ chế: Control Plane (điều khiển luồng thông tin) và Data Plane (chuyển tiếp dữ liệu), hoạt động độc lập và chính sách chuyển tiếp lưu lượng nằm riêng trên từng thiết bị Điều này dẫn đến khó khăn trong việc hiển thị toàn bộ mạng và tối ưu hóa chính sách chuyển tiếp Đặc biệt, với mạng lớn và nhiều thiết bị, kiến trúc truyền thống trở nên phức tạp, gây khó khăn cho quản trị viên trong việc vận hành và điều khiển hệ thống.
Hầu hết các mạng thông thường sử dụng kiến trúc phân cấp với thiết bị chuyển mạch Ethernet sắp xếp theo cấu trúc cây, hiệu quả cho mô hình tính toán khách – chủ Tuy nhiên, kiến trúc này không phù hợp với yêu cầu tính toán đa dạng và nhu cầu lưu trữ dữ liệu tại các trung tâm dữ liệu của doanh nghiệp, trường học và nhà cung cấp dịch vụ Sự thay đổi mô hình lưu thông, gia tăng dịch vụ đám mây và nhu cầu phát triển của các nhà khai thác băng thông dịch vụ đòi hỏi giải pháp mới Công nghệ mạng truyền thống không đáp ứng được những nhu cầu này và vẫn tồn tại nhiều vấn đề, trong đó phức tạp là một trong những thách thức lớn nhất.
Các kỹ thuật mạng hiện đại sử dụng các bộ giao thức rời rạc để kết nối các host một cách tin cậy, bất kể khoảng cách, tốc độ hay topo Trong hơn một thập kỷ qua, các giao thức này đã phát triển để nâng cao hiệu suất, độ tin cậy và bảo mật, mặc dù chúng thường được tạo ra một cách cô lập để giải quyết các vấn đề cụ thể Tuy nhiên, điều này dẫn đến sự phức tạp trong quản lý mạng, khi người quản trị cần can thiệp vào nhiều thiết bị như bộ chuyển mạch, định tuyến và tường lửa, đồng thời cập nhật danh sách ACL, VLANs và QoS Sự phức tạp này khiến mạng hiện tại trở nên “tĩnh”, làm tăng nguy cơ gián đoạn dịch vụ, điều này mâu thuẫn với tính “động” cần thiết trong môi trường server hiện đại, nơi mà ảo hóa ngày càng trở nên quan trọng.
Sự phát triển của ảo hóa đã làm tăng số lượng host một cách nhanh chóng và thay đổi quan điểm về vị trí vật lý của các host Trước đây, các ứng dụng đều nằm trên một server và trao đổi traffic với các client, nhưng hiện nay, chúng được phân bố trên nhiều máy ảo (VM) và trao đổi dữ liệu với nhau Các VM này được "tái định cư" để tối ưu hóa và cân bằng tải Nhiều công ty đã chuyển sang sử dụng mạng hội tụ IP để truyền tải dữ liệu, thoại và video, nhưng mạng hiện tại chỉ hỗ trợ các mức độ QoS khác nhau cho từng ứng dụng một cách thủ công Quá trình cấu hình mạng hiện tại rất phức tạp, yêu cầu người quản trị phải thiết lập từng thiết bị riêng lẻ và điều chỉnh các tham số như băng thông và QoS cho mỗi ứng dụng, dẫn đến việc khó khăn trong việc điều chỉnh linh hoạt với lưu lượng traffic thay đổi Chính sách mạng không nhất quán cũng gây khó khăn, vì người quản trị phải cấu hình hàng ngàn thiết bị, tốn nhiều thời gian cho mỗi lần thêm máy ảo mới Điều này làm cho khả năng mở rộng quy mô của mạng trở nên kém hiệu quả.
Với sự gia tăng nhanh chóng của nhu cầu đối với các Data Center, mạng lưới cũng cần mở rộng tương ứng, dẫn đến sự phức tạp với hàng trăm, hàng ngàn thiết bị cần cấu hình và điều khiển Các nhà quản trị phải dựa vào dự báo traffic để mở rộng mạng, nhưng trong môi trường ảo hóa hiện nay, traffic trở thành một khái niệm động và khó dự đoán Các công ty lớn như Google, Yahoo và Facebook đã gặp nhiều khó khăn trong việc mở rộng mạng lưới của họ Họ sử dụng các thuật toán xử lý song song quy mô lớn để đối phó với sự gia tăng khối lượng dữ liệu, có thể đạt đến hàng Petabyte Để duy trì hiệu suất cao và giảm chi phí kết nối giữa các thiết bị, các công ty này không thể chỉ dựa vào cấu hình thủ công Họ cần cung cấp nhiều dịch vụ khác biệt cho khách hàng, đồng thời phục vụ nhiều nhóm người dùng với các ứng dụng và nhu cầu hiệu suất khác nhau, điều này làm cho việc quản lý traffic trở nên khó khăn hơn.
Các nhà mạng và công ty đang nỗ lực áp dụng các dịch vụ mới để đáp ứng nhu cầu kinh doanh và người dùng, nhưng khả năng của họ bị giới hạn bởi chu kỳ cập nhật firmware của nhà sản xuất, có thể kéo dài đến 3 năm hoặc hơn Việc thiếu chuẩn hóa và giao diện mở cũng hạn chế khả năng điều chỉnh mạng Sự không tương ứng giữa nhu cầu thị trường và khả năng mạng dẫn đến “điểm gãy khúc” Để khắc phục những vấn đề này, mạng điều khiển bằng phần mềm (SDN) đã được phát triển.
Mạng điều khiển bằng phần mềm SDN
Kiến trúc của SDN
Kiến trúc SDN bao gồm ba lớp chính: Lớp ứng dụng, Lớp điều khiển và Lớp hạ tầng cơ sở Các lớp này liên kết với nhau thông qua giao thức hoặc API, tạo nên một hệ thống mạng linh hoạt và hiệu quả.
Hình 1.2 Cấu trúc của SDN [14] a) Application layer:
Lớp ứng dụng là những ứng dụng được triển khai trên mạng, kết nối với lớp điều khiển thông qua API Chúng cung cấp khả năng lập trình lại và cấu hình mạng, cho phép điều chỉnh các tham số như độ trễ, băng thông và định tuyến.
…) thông qua lớp điều khiển lập trình giúp cho hệ thống mạng để tối ưu hoạt động theo một yêu cầu nhất định b) Control layer:
Lớp điều khiển là nơi tập hợp các controller chịu trách nhiệm điều chỉnh cấu hình mạng dựa trên yêu cầu từ lớp ứng dụng và khả năng của mạng Những controller này có thể là các phần mềm được lập trình để thực hiện nhiệm vụ này.
Controller (bộ điều khiển) là ứng dụng quản lý kiểm soát lưu lượng trong môi trường mạng, sử dụng các cơ chế như OpenFlow, ONOS, ForCES, PCEP, NETCONF và SNMP để truyền thông điều khiển lớp cơ sở hạ tầng Hiện nay, hầu hết các SDN controller đều dựa trên giao thức OpenFlow.
Controller SDN hoạt động như hệ điều hành cho mạng, quản lý toàn bộ thông tin liên lạc giữa ứng dụng và thiết bị Nó sử dụng giao thức OpenFlow để cấu hình thiết bị mạng và tối ưu hóa đường đi cho lưu lượng ứng dụng Ngoài chức năng chính, controller còn có khả năng mở rộng để thực hiện các nhiệm vụ quan trọng như định tuyến và truy cập mạng.
- Cung cấp API để có thể xây dựng các ứng dụng cho hệ thống mạng;
- Thu nhận thông tin từ hệ thống mạng vật lý, điều khiển hệ thống mạng vật lý c) Infrastructure layer:
Lớp vật lý của hệ thống mạng bao gồm các thiết bị mạng thực tế, cả vật lý lẫn ảo hóa, thực hiện việc chuyển tiếp gói tin dưới sự điều khiển của lớp điều khiển Một thiết bị mạng có thể được điều khiển bởi nhiều controller khác nhau, điều này không chỉ tăng cường khả năng ảo hóa mà còn nâng cao tính dự phòng và bảo mật, giúp mạng hoạt động ổn định và hiệu quả hơn.
So sánh với kiến trúc mạng truyền thống:
Trong hệ thống mạng truyền thống, các thiết bị mạng như Layer 2 và Layer 3 phải đảm nhận nhiều chức năng để duy trì hoạt động hiệu quả, chẳng hạn như VLAN, Spanning Tree, Quality of Service và Security Tuy nhiên, hầu hết các thiết bị và giao thức này hoạt động độc lập, do mỗi nhà sản xuất cung cấp các giải pháp mạng khác nhau, dẫn đến sự phân mảnh trong hệ thống mạng và giảm hiệu suất hoạt động.
Với SDN, việc điều khiển được tập trung tại Controller Layer, giúp các thiết bị mạng chỉ cần chuyển tiếp gói tin mà không bị ảnh hưởng bởi sự khác biệt giữa các nhà sản xuất Tương tự như sự phát triển của máy tính hiện nay, các máy tính từ nhiều nhà sản xuất khác nhau (như Dell, HP, IBM, Apple, Google) vẫn có thể truy cập Internet thông qua giao thức mạng TCP/IP, bất kể hệ điều hành mà chúng sử dụng (Windows, MacOS, Linux, Unix).
Người dùng không cần có mặt trực tiếp tại các thiết bị mạng để cấu hình, mà chỉ cần sử dụng API và kiến thức về TCP/IP để phát triển ứng dụng cho hệ thống mạng Với công nghệ SDN, việc quản lý được thực hiện tập trung, mang lại nhiều lợi ích nhưng cũng đồng thời tiềm ẩn nguy cơ bảo mật cao hơn so với hệ thống mạng truyền thống.
Mặt bằng dữ liệu SDN
Mặt bằng dữ liệu SDN, hay lớp tài nguyên theo ITUT Y.3300, thường được gọi là lớp cơ sở hạ tầng Đây là nơi mà các thiết bị chuyển tiếp mạng thực hiện vận chuyển và xử lý dữ liệu theo các quyết định đã định.
Các thiết bị mạng trong kiến trúc SDN có đặc điểm nổi bật là thực hiện chức năng chuyển tiếp đơn giản mà không cần phần mềm nhúng để tự quản lý quyết định Điều này cho phép mặt bằng dữ liệu hoạt động hiệu quả, tối ưu hóa quá trình truyền tải thông tin trong mạng.
Hình 1.3 minh họa các chức năng của thiết bị mạng trong mặt bằng dữ liệu, thường được gọi là các thành phần mạng mặt bằng dữ liệu hoặc Switches Các chức năng chính của thiết bị mạng bao gồm việc quản lý và chuyển tiếp dữ liệu, tối ưu hóa hiệu suất mạng và đảm bảo tính an toàn cho thông tin truyền tải.
Hình 1.3 Mặt bằng dữ liệu thiết bị mạng SDN [15]
Chức năng hỗ trợ điều khiển cho phép tương tác với lớp điều khiển SDN, giúp nâng cao khả năng lập trình thông qua các giao diện kiểm soát tài nguyên Switch giao tiếp với bộ điều khiển, và bộ điều khiển quản lý Switch thông qua giao thức OpenFlow.
Chức năng chuyển tiếp dữ liệu trong mạng SDN cho phép tiếp nhận luồng dữ liệu từ các thiết bị mạng và hệ thống đầu cuối, sau đó chuyển tiếp chúng theo các đường dữ liệu đã được tính toán và thiết lập dựa trên các quy tắc do các ứng dụng SDN xác định.
Các quy tắc chuyển tiếp được sử dụng bởi thiết bị mạng, được thể hiện trong các bảng chuyển tiếp, xác định loại gói tin và các bước truyền kế tiếp trong tuyến đường Ngoài việc chuyển tiếp gói tin, thiết bị mạng có khả năng thay đổi tiêu đề gói hoặc hủy bỏ gói tin Các gói dữ liệu đến được xếp vào hàng đợi đầu vào chờ xử lý, trong khi gói tin chuyển tiếp thường nằm trong hàng đợi đầu ra chờ truyền đi Thiết bị mạng, như được mô tả trong hình 1.3, có ba cổng I/O: một cổng kết nối với bộ điều khiển SDN và hai cổng cho đầu vào và đầu ra gói dữ liệu Thiết bị mạng có thể có nhiều cổng để giao tiếp với nhiều bộ điều khiển SDN và có thể có nhiều hơn hai cổng I/O cho các luồng gói tin vào và ra.
7 b) Các giao thức trong mặt bằng dữ liệu
Hình 1.3 minh họa các giao thức mà thiết bị mạng hỗ trợ, trong đó luồng dữ liệu gói bao gồm các gói tin IP Luồng này đóng vai trò quan trọng trong bảng chuyển tiếp, giúp xác định các mục dựa trên các trường trong tiêu đề của các giao thức cấp trên như TCP, UDP và các giao thức truyền tải, ứng dụng khác Thiết bị mạng sẽ kiểm tra tiêu đề IP và có thể xem xét thêm các tiêu đề khác trong mỗi gói để đưa ra quyết định chuyển tiếp chính xác.
Một luồng lưu lượng quan trọng khác là thông qua giao diện lập trình ứng dụng (API), bao gồm các đơn vị dữ liệu giao thức OpenFlow (PDU).
Mặt bằng điều khiển SDN
Bộ điều khiển SDN thực hiện nhiều chức năng quan trọng, như được mô tả trong Hình 1.4 Hình ảnh này minh họa các chức năng cốt yếu mà mọi bộ điều khiển cần cung cấp, bao gồm các chức năng thiết yếu cho việc quản lý mạng hiệu quả.
Giao thức và cơ chế hướng Đông/Tây
Chuyển tiếp đường đi ngắn nhất
Giao diện hướng Nam Giao diện hướng Đông/Tây
Hình 1.4 Các giao diện và chức năng mặt bằng điều khiển SDN
- Chuyển tiếp đường đi ngắn nhất: Sử dụng thông tin định tuyến thu thập được từ các thiết bị chuyển mạch để thiết lập các tuyến ưu tiên
Quản lý thông báo là quá trình nhận, xử lý và chuyển tiếp các sự kiện quan trọng đến ứng dụng, bao gồm thông báo cảnh báo, cảnh báo bảo mật và các thay đổi trạng thái diễn ra.
- Cơ chế bảo mật: Cung cấp cách ly và thực thi bảo mật giữa các ứng dụng và dịch vụ
- Quản lý topology: Xây dựng và duy trì thông tin cấu hình liên kết
- Quản lý thống kê: Thu thập dữ liệu về lưu lượng truy cập thông qua các thiết bị chuyển mạch
- Quản lý thiết bị: Cấu hình các thông số và thuộc tính chuyển đổi, quản lý các flow table
Bộ điều khiển SDN hoạt động như một hệ điều hành mạng (NOS), cung cấp các dịch vụ cốt yếu và giao diện lập trình ứng dụng chung (APIs) Nó cũng giúp trừu tượng hóa các phần tử lớp dưới, tạo điều kiện thuận lợi cho các nhà phát triển trong việc xây dựng và quản lý mạng.
Năng lực của một NOS SDN cho phép các nhà phát triển xác định chính sách mạng và quản lý mạng mà không cần quan tâm đến các đặc tính thiết bị mạng không đồng nhất và linh động Giao diện hướng Bắc cung cấp phương pháp thống nhất cho các nhà phát triển ứng dụng và quản lý mạng để truy cập dịch vụ SDN và thực hiện nhiệm vụ quản lý mạng Hơn nữa, các giao diện hướng Bắc được xác định rõ ràng giúp các nhà phát triển tạo ra phần mềm độc lập, không chỉ quản lý các mặt bằng dữ liệu mà còn có khả năng tương tác với nhiều máy chủ điều khiển SDN.
Các bước triển khai SDN
Triển khai SDN đánh dấu sự chuyển đổi từ hệ thống mạng có thể cấu hình sang hệ thống mạng có thể lập trình Để thực hiện điều này, doanh nghiệp cần tuân theo một số bước quan trọng Bước đầu tiên trong quá trình này là
Doanh nghiệp cần tích hợp tất cả thiết bị như bộ cân bằng tải, tường lửa, hệ thống truyền thông, thiết bị không dây và hệ thống lưu trữ vào các SDN controller Các nhà sản xuất SDN cung cấp công cụ để di dời cấu hình hiện tại sang các SDN controller Tất cả thiết bị trong mạng phải hỗ trợ SDN, điều này rất quan trọng vì doanh nghiệp đang xây dựng một chức năng mạng SDN đồng nhất cho mọi thiết bị và nền tảng Nhà quản trị cần đảm bảo rằng tất cả thiết bị được chuyển đổi thông qua cập nhật phần mềm IOS hoặc bằng cách mua thiết bị mới hỗ trợ SDN.
Khi trang bị thiết bị mới, doanh nghiệp cần chú ý đến công nghệ SDN mà nhà sản xuất hỗ trợ, cũng như xác định công nghệ SDN phù hợp cho từng loại triển khai hệ thống, như OpenFlow hay OpenStack Việc lựa chọn giữa OpenFlow và OpenStack nên dựa trên hạ tầng hiện tại và loại mạng SDN mà doanh nghiệp yêu cầu.
Khi thực hiện việc di dời và chuyển đổi cấu hình thiết bị, cần chú ý định nghĩa các chính sách di dời một cách toàn diện, đảm bảo đầy đủ các chính sách bảo mật và tích hợp chúng vào bộ điều khiển SDN một cách hoàn chỉnh.
Để đảm bảo việc triển khai các SDN controller hiệu quả, cần thực hiện các thử nghiệm cẩn thận trong một môi trường kiểm tra Môi trường này nên bao gồm các thiết bị mạng có khả năng giao tiếp với SDN controller, đảm bảo mọi thứ hoạt động trơn tru Tất cả các thiết bị phải sử dụng cùng một giao thức, như OpenFlow hoặc OpenStack, và doanh nghiệp cần xác minh rằng các thiết bị trong mạng và controller có thể giao tiếp thành công.
Cấu hình SDN là bước quan trọng nhất để tương tác với ứng dụng, giúp ứng dụng tận dụng tối đa mạng SDN Để đạt được điều này, cần áp dụng các chính sách phù hợp.
9 sách như ưu tiên lệnh thực thi cao hơn lệnh báo cáo để cho luồng dữ liệu quan trọng nhất chạy mượt mà trong hệ thống mạng
Khi SDN đã sẵn sàng, các ứng dụng có thể gửi các bộ nhận diện bổ sung vào header, không chỉ giới hạn ở giao thức TCP/UDP và cổng dữ liệu Các controller SDN cần nhận diện các gói dữ liệu thông qua header mà không cần phải đọc toàn bộ dữ liệu để xác định loại dữ liệu.
Doanh nghiệp cần thiết lập bảo mật ở lớp ứng dụng thứ 7 bằng cách nhận diện các tương tác ứng dụng thích hợp và không thích hợp, sau đó áp dụng các quy tắc bổ sung dựa trên hành vi Sau khi thiết lập mạng SDN, việc giám sát mạng qua các SDN controller là rất quan trọng Nhiều công ty chọn tách chức năng giám sát ra khỏi controller, như giám sát ứng dụng và giám sát gói dữ liệu riêng biệt Việc tách này yêu cầu sử dụng các công cụ giám sát ở cấp cao hơn và có giao diện kết nối với controller, mạng và ứng dụng SDN Ngoài ra, doanh nghiệp cũng cần theo dõi các chính sách bảo mật để đảm bảo an toàn cho hệ thống.
Lợi ích của SDN
Mạng được định nghĩa bằng phần mềm (SDN) là một kiến trúc mạng cho phép điều khiển mạng một cách thông minh và tập trung thông qua các ứng dụng phần mềm Phương pháp này giúp các nhà khai thác quản lý mạng một cách nhất quán và toàn diện, không cần lo lắng về công nghệ mạng nền tảng.
Với SDN, quản trị viên mạng có khả năng điều chỉnh quy tắc chuyển mạch linh hoạt, cho phép ưu tiên, loại bỏ hoặc chặn các gói tin cụ thể Tính năng này mang lại mức độ kiểm soát và bảo mật cao, đặc biệt trong kiến trúc điện toán đám mây, giúp quản lý lưu lượng hiệu quả hơn giữa nhiều bên thuê dịch vụ Nhờ đó, quản trị viên có thể tối ưu hóa việc sử dụng thiết bị chuyển mạch và kiểm soát lưu lượng mạng một cách toàn diện hơn.
SDN cung cấp khả năng quản lý và hiển thị rõ ràng các thành phần mạng, cho phép quản trị viên tương tác với một bộ điều khiển tập trung duy nhất để phân phối chính sách cho các bộ chuyển mạch Điều này giúp tiết kiệm thời gian và công sức so với việc cấu hình từng thiết bị riêng lẻ Ngoài ra, khả năng giám sát lưu lượng và triển khai chính sách bảo mật một cách tập trung cũng là một lợi thế lớn, giúp tăng cường an ninh mạng Khi phát hiện lưu lượng đáng ngờ, bộ điều khiển có thể nhanh chóng định tuyến lại hoặc loại bỏ các gói mà không cần chuyển tiếp đến các thành phần khác.
SDN mang lại khả năng ảo hóa phần cứng và dịch vụ mà không cần sử dụng phần cứng chuyên dụng, giúp giảm thiểu các dấu hiệu phức tạp trong quản lý mạng.
10 định danh phần cứng giúp hạn chế khả năng của hacker trong việc tìm kiếm dấu hiệu tấn công vào hệ thống, đồng thời giảm chi phí vận hành và triển khai mạng.
SDN đã đóng vai trò quan trọng trong sự phát triển của công nghệ mạng diện rộng định nghĩa bằng phần mềm (SD-WAN) Công nghệ SD-WAN tận dụng lớp phủ ảo của SDN để trừu tượng hóa các kết nối trong toàn bộ mạng LAN, từ đó tạo ra một mạng ảo linh hoạt và hiệu quả cho tổ chức.
Các vấn đề đặt ra với SDN
Bảo mật trong công nghệ SDN không chỉ là một lợi thế mà còn là một thách thức lớn Với việc SDN được quản lý qua một bộ điều khiển tập trung, nó trở thành mục tiêu hấp dẫn cho các hacker Nếu kẻ tấn công thành công trong việc xâm nhập vào bộ điều khiển này, họ có khả năng chiếm quyền kiểm soát toàn bộ mạng.
Một thách thức thú vị của SDN là sự thiếu hụt định nghĩa thống nhất và tiêu chuẩn chung, mặc dù tên gọi của nó gợi ý điều đó Các nhà cung cấp khác nhau đưa ra nhiều cách tiếp cận khác nhau cho SDN, từ mô hình tập trung vào phần cứng, nền tảng ảo hóa, đến thiết kế mạng siêu hội tụ và các phương thức không cần bộ điều khiển Sự đa dạng trong thiết kế và định hướng khiến SDN thường bị nhầm lẫn với nhiều khái niệm khác như kết nối mạng hộp trắng, phân hoạch mạng, tự động hóa mạng và mạng có thể lập trình Tuy nhiên, SDN vẫn là một công nghệ độc lập, mặc dù có thể tương tác với các công nghệ và quy trình này.
Công nghệ SDN nổi lên rất sớm và nhận được nhiều sự chú ý khoảng năm
Năm 2011, công nghệ SDN được giới thiệu cùng với giao thức OpenFlow, nhưng việc áp dụng thực tế diễn ra chậm, đặc biệt trong các doanh nghiệp nhỏ với kiến trúc mạng hạn chế Chi phí triển khai SDN cao cũng là một yếu tố khiến nhiều doanh nghiệp ngần ngại trong việc áp dụng công nghệ này.
SDN đã được áp dụng rộng rãi trong hệ thống mạng của các nhà cung cấp dịch vụ, nhà khai thác viễn thông và các công ty lớn như Facebook và Google, nhờ vào nguồn lực mạnh mẽ để phát triển công nghệ mới Tuy nhiên, sự phổ biến của SDN vẫn còn hạn chế do nhiều vấn đề, đặc biệt là chi phí triển khai ban đầu và cấu trúc của hệ thống mạng hiện tại.
Ứng dụng của SDN
SDN mang lại nhiều lợi ích, cho phép triển khai trong doanh nghiệp hoặc nhà cung cấp hạ tầng và dịch vụ viễn thông, nhằm đáp ứng nhu cầu của các nhà cung cấp trong từng phân khúc thị trường.
SDN (Mạng định nghĩa phần mềm) hỗ trợ môi trường đám mây riêng hoặc tích hợp, cho phép cấp phát tài nguyên mạng một cách linh hoạt, giúp dự phòng nhanh chóng các dịch vụ đám mây và chuyển giao dễ dàng với các nhà cung cấp bên ngoài Với công cụ quản lý an toàn cho các mạng ảo, doanh nghiệp sẽ tin tưởng hơn vào các dịch vụ đám mây Phạm vi các nhà cung cấp hạ tầng và dịch vụ viễn thông cũng được mở rộng, tạo điều kiện thuận lợi cho sự phát triển của công nghệ này.
SDN cung cấp khả năng mở rộng và tự động hóa cho các nhà mạng, nhà cung cấp đám mây công cộng và dịch vụ, giúp triển khai mô hình IT-as-a-Service (ITaaS) Bằng cách đơn giản hóa việc triển khai các dịch vụ tùy chọn và theo yêu cầu, SDN chuyển đổi sang mô hình tự phục vụ Mô hình tập trung và điều khiển tự động của SDN hỗ trợ cho thuê linh hoạt tài nguyên, tối ưu hóa việc triển khai tài nguyên mạng, giảm chi phí đầu tư (CapEx) và chi phí vận hành (OpEx), đồng thời nâng cao giá trị và tốc độ dịch vụ.
Tương lai của SDN
SDN vẫn chưa được ứng dụng rộng rãi do nhiều thách thức, nhưng sự phát triển nhanh chóng của nội dung đa phương tiện, điện toán đám mây, và sự gia tăng sử dụng điện thoại di động đang tạo ra áp lực cho các doanh nghiệp trong việc giảm chi phí Điều này sẽ thúc đẩy sự bùng nổ của SDN trong tương lai Để bắt kịp xu hướng và phát triển, nhiều doanh nghiệp và tổ chức đang chuyển dịch sang công nghệ SDN nhằm cách mạng hóa thiết kế và vận hành mạng của mình.
SDN cho phép quản lý mạng một cách tập trung thông qua ứng dụng phần mềm sử dụng API mở Việc tạo giao diện mở cho các nền tảng mạng truyền thống và triển khai lớp điều khiển SDN chung giúp các nhà khai thác quản lý toàn bộ mạng và thiết bị một cách nhất quán, giảm bớt sự phức tạp của công nghệ mạng nền tảng.
Công nghệ SDN mang lại bốn lĩnh vực quan trọng giúp tổ chức tạo ra sự khác biệt Đầu tiên, khả năng lập trình cho mạng cho phép kiểm soát hành vi mạng thông qua phần mềm bên ngoài thiết bị vật lý, giúp nhà khai thác dễ dàng điều chỉnh mạng để hỗ trợ dịch vụ mới và khách hàng cá nhân Thứ hai, SDN tập trung vào kiểm soát thông minh, xây dựng trên cấu trúc mạng tập trung logic, cho phép quản lý tài nguyên mạng hiệu quả hơn so với phương pháp điều khiển phân tán truyền thống.
SDN (Mạng định nghĩa bằng phần mềm) giải quyết vấn đề nhận thức hạn chế của các thiết bị trong mạng bằng cách cung cấp khả năng điều khiển tập trung, cho phép quản lý băng thông, khôi phục và bảo mật hiệu quả Điều này giúp xây dựng các chính sách thông minh và tối ưu dựa trên trạng thái toàn diện của mạng Bên cạnh đó, SDN trừu tượng hóa các dịch vụ và ứng dụng khỏi công nghệ và phần cứng cơ bản, cho phép tương tác thông qua các API thay vì giao diện quản lý cứng nhắc Kiến trúc SDN còn thúc đẩy tính mở, cho phép khả năng tương tác giữa nhiều nhà cung cấp, tạo ra một hệ sinh thái trung lập Các API mở hỗ trợ nhiều ứng dụng như điều phối dịch vụ đám mây và các ứng dụng kết nối quan trọng, trong khi phần mềm thông minh có thể kiểm soát phần cứng từ nhiều nhà cung cấp thông qua giao diện lập trình mở như OpenFlow Cuối cùng, SDN cho phép các ứng dụng và dịch vụ mạng thông minh hoạt động trong môi trường phần mềm chung.
Một trong những lợi ích nổi bật của công nghệ SDN là khả năng cho phép các nhà khai thác mạng phát triển các ứng dụng thông qua API của SDN, từ đó kiểm soát hành vi mạng một cách hiệu quả Công nghệ này giúp người dùng xây dựng các ứng dụng nhận biết mạng, theo dõi trạng thái hoạt động của mạng một cách thông minh và tự động điều chỉnh cấu hình mạng khi cần thiết.
Tổng quan về OpenFlow
Các đặc trưng của OpenFlow
OpenFlow cho phép các ứng dụng phần mềm bên ngoài điều khiển mặt phẳng chuyển tiếp của thiết bị mạng, tương tự như cách mà tập lệnh của CPU quản lý một hệ thống máy tính.
- Giao thức OpenFlow được triển khai trên cả hai giao diện kết nối giữa các thiết bị cơ sở hạ tầng mạng và phần mềm điều khiển SDN
OpenFlow sử dụng khái niệm "flow" để nhận diện lưu lượng mạng dựa trên các quy tắc đã được định nghĩa trước, cho phép lập trình tĩnh hoặc động qua phần mềm điều khiển SDN Giao thức này định nghĩa cách lưu lượng được truyền qua các thiết bị mạng dựa trên các tham số như mô hình lưu lượng, ứng dụng và tài nguyên đám mây Nhờ đó, OpenFlow cho phép mạng được lập trình theo luồng lưu lượng, cung cấp khả năng kiểm soát chi tiết và cho phép mạng phản hồi nhanh chóng với sự thay đổi trong thời gian thực của ứng dụng, người dùng và mức phiên Trong khi đó, mạng định tuyến IP hiện tại không đạt được mức độ kiểm soát này, vì tất cả các luồng lưu lượng giữa hai điểm cuối phải đi qua cùng một đường, mặc dù yêu cầu của chúng có thể khác nhau.
Giao thức OpenFlow đóng vai trò quan trọng trong việc cho phép mạng định nghĩa bằng phần mềm và là giao thức SDN tiêu chuẩn duy nhất cho phép điều khiển mặt phẳng chuyển tiếp của thiết bị mạng OpenFlow có thể được triển khai trên các mạng hiện có, bao gồm cả mạng vật lý và ảo hóa, bắt đầu từ Ethernet Hiện nay, OpenFlow đang nhận được sự hỗ trợ rộng rãi từ các nhà cung cấp cơ sở hạ tầng thông qua việc nâng cấp firmware hoặc phần mềm đơn giản Kiến trúc SDN dựa trên OpenFlow có khả năng tích hợp dần dần vào hạ tầng hiện tại của doanh nghiệp hoặc nhà khai thác mạng, cung cấp phương thức tích hợp dễ dàng cho các phần mạng cần chức năng SDN.
Cấu tạo của Switch OpenFlow
Switch OpenFlow bao gồm nhiều bảng flow và bảng group, cho phép Switch thực hiện tra cứu hiệu quả Nó cũng kết nối với một hoặc nhiều bộ điều khiển để quản lý lưu lượng mạng.
14 từ xa Giao thức được sử dụng để giao tiếp giữa bộ điều khiển và Switch OpenFlow là giao thức OpenFlow
Bằng cách sử dụng giao thức OpenFlow, bộ điều khiển quản lý các mục flow trong mạng Mỗi bảng flow chứa nhiều mục flow, trong đó mỗi mục flow bao gồm nhiều trường quan trọng Trường match fields là yếu tố chính để so khớp thông tin trong gói tin, trong khi trường instruction xác định các xử lý cho các gói tin đã được so khớp.
Hình 1.5 Các thành phần của một OpenFlow Switch [15]
Quá trình so khớp bắt đầu từ bảng flow đầu tiên trong pipeline, nơi các mục flow được tra cứu theo thứ tự ưu tiên Nếu gói tin khớp với các trường trong match fields, các instruction tương ứng sẽ được thực hiện Trong trường hợp không có mục flow nào khớp sau khi kiểm tra toàn bộ bảng flow, gói tin sẽ được xử lý bởi mục flow table-miss, mà mỗi bảng flow phải có Các action của mục table-miss có thể bao gồm đưa lên bộ điều khiển, hủy gói tin hoặc chuyển tiếp đến bảng flow khác.
Khi gói tin được so khớp với một mục flow, các action trong trường instructions sẽ được thực thi, bao gồm việc chuyển gói tin đến cổng khác, bảng khác hoặc bảng group để xử lý Mục flow có thể yêu cầu chuyển gói tin tới một cổng, bảng flow khác hoặc bảng group, trong khi bảng group chứa các mục group với nhiều bucket Các gói tin chuyển tiếp đến group sẽ được xử lý bởi các action trong các bucket nếu thỏa mãn điều kiện so khớp.
Cấu trúc Flow table
Khối cơ bản trong kiến trúc logic của Switch là flow table, nơi mỗi gói tin đi vào Switch sẽ được xử lý qua một trong nhiều flow table Mỗi flow table chứa một tập hợp các flow entry, và mỗi entry bao gồm bảy thành phần được xác định rõ ràng.
Hình 1.6 Cấu trúc của một OpenFlow table entry [15] a) Match fields: Sử dụng để chọn các gói tin phù hợp với các giá trị trong các trường
Ingress port là định danh của cổng trên Switch nơi gói tin được nhận Cổng này có thể là cổng vật lý hoặc cổng ảo và rất quan trọng trong các bảng vào.
- Egress port: Định danh của cổng ra Cần thiết trong các bảng ra
Ethernet source and destination addresses can be defined as precise addresses, bitmasked values for certain bits being checked, or wildcard values.
- Ethernet type field: Cho biết loại tải tin Ethernet
Each entry can represent an exact IPv4 or IPv6 source or destination address, a bitmasked value, a subnet mask, or a wildcard value.
Cổng nguồn và đích TCP và UDP đại diện cho các giá trị ký tự Trường ưu tiên, với kích thước 16 bit, cho phép xác định mức độ ưu tiên cho các gói tin, từ 0 (ưu tiên thấp nhất) đến 65536 mức khác nhau Các bộ đếm được sử dụng để theo dõi số lượng gói tin hợp lệ Hướng dẫn cho phép chỉnh sửa các hành động hoặc xử lý lệnh Thời gian chờ tối đa trước khi luồng hết hạn do Switch quy định bao gồm idle_timeout và hard_timeout Nếu hard_timeout khác 0, flow-entry sẽ bị gỡ bỏ sau một khoảng thời gian nhất định, trong khi idle_timeout sẽ loại bỏ flow-entry khi không có gói dữ liệu nào khớp trong thời gian quy định.
Cookie là giá trị dữ liệu 64bit do bộ điều khiển lựa chọn, dùng để lọc thống kê lưu lượng, điều chỉnh và xóa luồng, nhưng không áp dụng trong xử lý các gói Cờ (Flags) thay đổi cách quản lý flow-entry; ví dụ, cờ OFPFF_SEND_FLOW_REM kích hoạt việc gửi thông điệp cho các flow-entry đã bị xóa.
OpenFlow có khả năng xử lý lưu lượng mạng từ nhiều giao thức và dịch vụ khác nhau Tuy nhiên, ở lớp MAC, nó chỉ hỗ trợ Ethernet, điều này có nghĩa là OpenFlow hiện tại không thể quản lý lưu lượng lớp 2 trên mạng không dây.
Hoạt động của OpenFlow
Trong các router và switch truyền thống, quá trình chuyển tiếp gói tin (data path) và quyết định định tuyến (control path) diễn ra trên cùng một thiết bị Tuy nhiên, OpenFlow Switch tách biệt hai chức năng này, giữ data path trên switch và chuyển control path đến một controller riêng biệt, thường là máy chủ tiêu chuẩn Giao tiếp giữa OpenFlow Switch và Controller được thực hiện qua giao thức OpenFlow, xác định các tin nhắn như nhận gói, gửi gói, sửa đổi bảng chuyển tiếp và thu thập số liệu thống kê Các data path của OpenFlow Switch được tổ chức trong flow table, với mỗi mục chứa các trường gói tin và hành động tương ứng Khi nhận gói tin mới không có trong flow table, OpenFlow Switch sẽ gửi gói tin đến controller, nơi quyết định xử lý có thể là hủy bỏ hoặc thêm flow entry để hướng dẫn chuyển tiếp các gói tin tương tự trong tương lai.
Lợi ích khi sử dụng OpenFlow
Công nghệ SDN dựa trên OpenFlow giúp nhân viên IT xử lý hiệu quả các ứng dụng băng thông cao và biến đổi động, cho phép mạng linh hoạt thích ứng với nhu cầu kinh doanh thay đổi Điều này không chỉ giảm thiểu các hoạt động phức tạp mà còn tối ưu hóa quản lý mạng Các doanh nghiệp và nhà khai thác mạng có thể thu được nhiều lợi ích từ kiến trúc SDN dựa trên OpenFlow.
Phần mềm điều khiển SDN cho phép tập trung hóa điều khiển trong môi trường đa nhà cung cấp thiết bị, có khả năng quản lý mọi thiết bị mạng hỗ trợ OpenFlow, bao gồm switch, router và các switch ảo.
- Giảm sự phức tạp thông qua việc tự động hóa: kiến trúc SDN trên cơ sở OpenFlow cung cấp một framework quản lý mạng tự động và linh hoạt
Từ framework này có thể phát triển các công cụ tự động hóa các nhiệm vụ hiện đang được thực hiện bằng tay
Việc áp dụng OpenFlow giúp các nhà khai thác mạng có khả năng lập trình lại mạng trong thời gian thực, từ đó đáp ứng nhanh chóng các nhu cầu kinh doanh và yêu cầu của người dùng khi có sự thay đổi Tốc độ đổi mới cao hơn là một lợi thế quan trọng trong việc tối ưu hóa hiệu suất mạng.
Gia tăng độ tin cậy và an ninh mạng là ưu tiên hàng đầu cho các nhân viên IT, nhờ vào khả năng định nghĩa cấu hình và chính sách ở mức cao thông qua OpenFlow Kiến trúc SDN dựa trên OpenFlow cung cấp khả năng kiểm soát và tầm nhìn toàn diện về mạng, giúp đảm bảo việc thực thi nhất quán các chính sách như kiểm soát truy cập, định hình lưu lượng, QoS và an ninh trên toàn bộ cơ sở hạ tầng mạng, bao gồm cả văn phòng chi nhánh và các cơ sở chính.
Mô hình điều khiển mạng dựa trên flow của OpenFlow cho phép nhân viên IT áp dụng các chính sách chi tiết, bao gồm phiên, người dùng, thiết bị và các mức ứng dụng, với khả năng tự động điều chỉnh cao Kiến trúc SDN dựa trên OpenFlow tập trung hóa điều khiển mạng, tạo ra trạng thái thông tin sẵn có cho các ứng dụng cấp cao hơn, từ đó cải thiện trải nghiệm người dùng và đáp ứng tốt hơn các nhu cầu thay đổi.
CÔNG CỤ MÔ PHỎNG VÀ ĐIỀU KHIỂN MẠNG SDN
BÀI TOÁN QUẢN LÝ MẠNG TẠI CÔNG TY VNH
Hệ thống mạng hiện tại của công ty VNH
3.1.1 Giới thiệu về công ty VNH
Tổng công ty Trực thăng Việt Nam (VNH) là một trong những nhà cung cấp dịch vụ trực thăng hàng đầu tại Đông Nam Á, nổi bật với chất lượng dịch vụ xuất sắc và cam kết đảm bảo an toàn cho khách hàng và đối tác.
Với hơn 30 năm phát triển, VNH tự hào sở hữu đội ngũ phi công dày dạn kinh nghiệm và được cấp phép bởi Cục Hàng không Việt Nam, cùng với các trung tâm kỹ thuật hàng không đạt tiêu chuẩn bảo trì AMO Đội máy bay trực thăng hiện đại của VNH đáp ứng đầy đủ các tiêu chuẩn khắt khe của Hiệp hội các nhà sản xuất dầu khí quốc tế (OGP) Hiện tại, VNH cung cấp dịch vụ trực thăng cho hơn 50 hãng dầu trong và ngoài nước, phục vụ các hoạt động như tìm kiếm người Mỹ mất tích (MIA), du lịch, cứu hộ, cấp cứu y tế, chuyên cơ, vận chuyển hành khách và hàng hóa, cũng như quay phim chụp ảnh Dịch vụ trực thăng của VNH đã có mặt tại nhiều quốc gia trên thế giới, bao gồm Na-uy, Malaysia, Indonesia, Ấn Độ, Đông Timor và Campuchia.
Tổng công ty Trực thăng Việt Nam bao gồm các đơn vị như VNH South, VNH North, VNH Central, VNH Training, Helitechco và Haiau TIC, cung cấp đa dạng dịch vụ như cho thuê máy bay, phi công, kỹ thuật viên hàng không, đào tạo phi công và kỹ thuật viên, khai thác máy bay cho tổ chức và cá nhân, sửa chữa và đại tu máy bay trực thăng, cung cấp phụ tùng, cùng với kinh doanh bất động sản và vận tải xăng dầu.
3.1.2 Mô hình mạng hiện tại của công ty VNH
Mô hình mạng của công ty VNH hiện tại được thiết lập theo cấu trúc truyền thống, bao gồm vùng server, máy tính khối hành chính và khối tài chính, kết nối qua các Switch lớp 2 Trung tâm của mạng là Switch lớp 3, kết nối ra Internet thông qua router Vùng server chứa hai máy chủ: Server Điều hành doanh nghiệp (DNDN) và Server Tài chính.
Bài toàn quản lý mạng tại công ty VNH
3.2.1 Các chính sách trong mạng
Hệ thống mạng được chia Vlan, trong đó có các Vlan chính như sau:
Bảng 3.1 Các Vlan trong hệ thống mạng công ty VNH
Vlan Tên Vlan Dải IP Chức năng
1 Manage 192.168.1.0/24 Quản lý thiết bị
2 Hành chính 192.168.2.0/24 Dùng cho máy tính người dùng các phòng ban
3 Tài chính 192.168.3.0/24 Dùng cho máy tính người dùng phòng Tài chính
14 Server TC 192.168.14.0/24 Dùng cho Server Tài chính
DN 192.168.15.0/24 Dùng cho Server Điều hành doanh nghiệp Các chính sách trong hệ thống mạng công ty VNH: a) Kết nối client/server:
- Khối Hành chính và Khối Tài chính được truy cập vào Server Điều hành doanh nghiệp;
- Chỉ Khối Tài chính được truy cập vào Server Tài chính; Khối Hành chính không được truy cập vào Server Tài chính b) An toàn các phòng ban:
- Khối Hành chính và Khối Tài chính không được thông với nhau c) An toàn vùng Server:
- Các máy chủ không được truy cập vào nhau d) An toàn truy cập Internet:
- Chỉ máy tính người dùng thuộc Khối Hành chính và Khối Tài chính được truy cập ra Internet, các server không được phép kết nối Internet
3.2.2 Giải quyết bài toán quản lý mạng tại công ty VNH với kiến trúc mạng truyền thống hiện tại
Mô hình cấu hình, quản lý mạng tại công ty VNH:
Hình 3.2 Mô hình cấu hình, quản lý mạng truyền thống
Sử dụng công cụ Packet Tracer của Cisco để mô phỏng việc cấu hình cho hệ thống mạng công ty VNH với kiến trúc mạng truyền thống hiện tại
Cấu hình các thiết bị:
- Cấu hình các Vlan trên Switch layer 3 Cisco 3650
- Cấu hình các access-list trên Switch layer 3 Cisco 3650 thỏa mãn các chính sách trong hệ thống mạng công ty VNH
- Cấu hình VTP Server trên Switch layer 3 Cisco 3650
- Cấu hình VTP Client trên các Switch layer 2
- Cấu hình access Vlan các port trên Switch layer 2
- Cấu hình các port của Router
- Cấu hình NAT trên Router để Lan ra được Internet
Hình 3.3 Mô phỏng giải quyết bài toán quản lý hệ thống mạng truyền thống tại VNH bằng Cisco Packet Tracer
Những khó khăn trong việc quản lý hệ thống mạng công ty VNH 29 CHƯƠNG 4 MÔ PHỎNG TRIỂN KHAI SDN VÀ ĐÁNH GIÁ HIỆU QUẢ
- Hệ thống mạng hoạt động hầu như dựa trên việc triển khai các thiết bị chuyên dụng Trong trường hợp này, thiết bị chuyên dụng là Switch lớp 3, router
- Hầu hết các tính năng trong các thiết bị mạng cần triển khai đều nằm trong các phần cứng chuyên dụng
Kiến trúc mạng truyền thống đã không thay đổi trong hơn 50 năm, mặc dù vẫn đáp ứng nhu cầu điều hành công ty và người dùng cuối Tuy nhiên, với sự gia tăng độ phức tạp của nghiệp vụ và sự đa dạng trong ứng dụng của người dùng, nhu cầu về mạng kết nối cũng ngày càng cao Trong tương lai, mạng cần phải linh hoạt để đáp ứng nhanh chóng các yêu cầu về độ trễ, băng thông, định tuyến và bảo mật theo yêu cầu của các ứng dụng.
Kế hoạch ứng dụng công nghệ ảo hóa của công ty VNH đang khiến các công nghệ mạng truyền thống trở nên lỗi thời Hệ thống này mang lại nhiều lợi ích, giúp tối ưu hóa hiệu suất và nâng cao khả năng quản lý mạng.
Các thiết bị mạng truyền thống thường là những thiết bị đóng kín và đắt tiền, với phần mềm điều khiển và cấu hình gắn liền với phần cứng Mỗi nhà sản xuất cung cấp một giao diện kết nối riêng, dẫn đến sự phức tạp trong việc quản lý mạng và khả năng tích hợp ngày càng khó khăn Do đó, việc ảo hóa phụ thuộc vào công nghệ, làm cho cấu trúc hệ thống mạng trở nên phức tạp và thiếu đồng bộ.
Việc độc quyền công nghệ mạng gây khó khăn trong việc thay thế và cập nhật tính năng mới cho thiết bị, dẫn đến sự phức tạp và nguy cơ lỗ hổng bảo mật Các phần mềm điều khiển routers với hơn 20 triệu dòng code dễ dàng chứa nhiều lỗ hổng nghiêm trọng Quá trình cập nhật hoặc vá lỗi yêu cầu thực hiện trên từng thiết bị, tạo ra thách thức lớn cho quản trị viên, và trong một số trường hợp, có thể khiến họ bỏ sót thiết bị có lỗ hổng, từ đó gia tăng điểm yếu và rủi ro an toàn cho mạng.
Các công nghệ mạng truyền thống đang gặp khó khăn trong việc quản lý và vận hành, đặc biệt tại các trung tâm dữ liệu với nhiều thiết bị mạng tốc độ cao Việc quản trị từng thiết bị riêng lẻ là không khả thi, vì quản trị viên phải thay đổi cấu hình thủ công cho từng thiết bị khi điều chỉnh chính sách truy cập mạng Sự gia tăng số lượng thiết bị càng làm cho việc này trở nên khó khăn hơn, dẫn đến nhu cầu cấp thiết về một sự thay đổi cách mạng trong công nghệ mạng thông qua việc tập trung hóa quản trị.
- Tách biệt phần điều khiển và phần xử lý dữ liệu
- Biến phần điều khiển trở nên mềm dẻo và cho phép lập trình được để tự động hóa và đơn giản hóa việc quản trị
MÔ PHỎNG TRIỂN KHAI SDN VÀ ĐÁNH GIÁ HIỆU QUẢ
Sử dụng SDN cho bài toán quản lý mạng công ty VNH
Hình 4.1 Mô hình triển khai hệ thống mạng SDN cho công ty VNH
Vào Mininet, tạo file Python vnh.py với nội dung như sau:
This article presents a Python script utilizing the Mininet network emulator, specifically importing essential modules such as Topo, Mininet, CPULimitedHost, TCLink, and utility functions It defines a custom topology class, MyTopo, which is crucial for simulating network environments The script also includes a function to set the logging level, enhancing the clarity of the output during network testing.
"Simple topology example." def init ( self ):
In this article, we demonstrate how to add hosts in a network configuration using specific IP and MAC addresses The hosts are defined as follows: Host h1 is assigned the IP address 192.168.15.1 and MAC address 2e:03:73:7e:c3:92; Host h2 has IP 192.168.14.1 and MAC 2e:03:73:7e:c3:14; Host h3 is set with IP 192.168.2.3 and MAC 2e:03:73:7e:c3:23; Host h4 is configured with IP 192.168.2.4 and MAC 2e:03:73:7e:c3:24; Host h5 uses IP 192.168.2.5 and MAC 2e:03:73:7e:c3:25; Host h6 is assigned IP 192.168.3.6 and MAC 2e:03:73:7e:c3:36; Host h7 has IP 192.168.3.7 and MAC 2e:03:73:7e:c3:37; and finally, Host h8 is configured with IP 192.168.11.254 and MAC 2e:03:73:7e:c3:11.
# add Switch s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') s3 = self.addSwitch('s3') s4 = self.addSwitch('s4') s5 = self.addSwitch('s5')
# add connection self.addLink(s1, s2) self.addLink(s1, s3) self.addLink(s1, h8) self.addLink(s2, h1) self.addLink(s2, h2) self.addLink(s3, s4) self.addLink(s3, s5) self.addLink(s4, h3) self.addLink(s4, h4) self.addLink(s4, h5) self.addLink(s5, h6) self.addLink(s5, h7)
# sudo mn controller=remote,ip2.168.56.105,portf33 custom vnh.py topo tp topos = { 'tp': ( lambda: MyTopo() ) }
Chạy lệnh tạo topo từ file vnh.py: sudo mn controller=remote,ip2.168.56.105,portf33 custom vnh.py topo tp
Hình 4.2 Sử dụng Mininet tạo topo mạng của công ty VNH theo kiến trúc SDN
Trong OpenDaylight, mạng công ty VNH được xây dựng theo kiến trúc SDN, nơi các server và máy tính người dùng kết nối với nhau thông qua các Switch OpenFlow Host h8 với địa chỉ MAC 2e:03:73:7e:c3:11 hoạt động như một Router, giúp kiểm tra khả năng kết nối Internet của các máy tính và server trong mạng.
Hình 4.3 Topo mạng qua giao diện ODL Truy cập vào OpenFlow Manager qua link: http://192.168.56.105:9000/
Hình 4.4 Topo mạng qua giao diện OpenFlow manager
Thông tin chi tiết các thiết bị host được mô phỏng trong topo:
Bảng 4.1 Bảng thông tin các host trong mô phỏng
1 Server Điều hành doanh nghiệp
8 Mô phỏng 1 port của Router
Kiểm tra kết nối của các thiết bị, ta thấy tất cả các thiết bị đều ping được đến nhau
Kiểm tra kết nối giữa các host trong mạng bằng cách xem các luồng ban đầu của từng Switch qua giao diện OFM Chọn lọc thông tin theo thiết bị để có cái nhìn rõ ràng hơn, như minh họa trong hình 4.5.
Hình 4.6 Các Flows của Switch 1 xem trên OpenFlow manager
Dùng lệnh sudo ovs-ofctl dump-flows s1 trên mininet để xem bảng flows của Switch openflow s1 Tương tự trên các Switch còn lại
Hình 4.7 Các Flows của các Switch xem trên mininet
4.1.2 Xử lý các bài toán quản lý mạng công ty VNH
Các chính sách trong hệ thống mạng công ty VNH: a) Kết nối client/server:
Khối Hành chính và Khối Tài chính đã truy cập thành công vào Server Điều hành doanh nghiệp Các flows trên các Switch đảm bảo tất cả thiết bị được kết nối, giúp máy tính người dùng dễ dàng truy cập vào các server, như được chứng minh qua kết quả kiểm tra ping trong hình 4.4.
- Chỉ Khối Tài chính được truy cập vào Server Tài chính; Khối Hành chính không được truy cập vào Server Tài chính:
Để chặn các máy tính khối Hành chính kết nối với Switch 3 qua cổng s3-eth2 vào máy chủ Tài chính có địa chỉ MAC 2e:03:73:7e:c3:14, hãy thêm flow ID #UF$TABLE*0-500 trên Switch 3.
Hình 4.8 Thêm Flow chặn Khối Hành chính kết nối Server Tài chính
Ping thử thấy rằng, các host thuộc khối Hành chính (h3, h4, h5) không còn ping đến được Server Tài chính (h2) nữa
Hình 4.9 Kết quả chặn khối Hành chính kết nối Server Tài chính b) An toàn các phòng ban:
- Khối Hành chính và Khối Tài chính không được truy cập đến nhau
Sửa cấu hình flow ID: "#UF$TABLE*0-444" trên Switch 3
Port eth-2 kết nối với Switch 4 : Khối Hành chính
Port eth-3 kết nối với Switch 5 : Khối Tài chính
Cấu hình ban đầu cho phép lưu lượng từ cổng eth-3 được chuyển tiếp ra cổng eth-1 và eth-2, tạo điều kiện cho Khối Tài chính truy cập vào Khối Hành chính.
Cấu hình cần được điều chỉnh: Flow hiện tại chỉ cho phép lưu lượng dữ liệu từ cổng eth-3 sang cổng eth-1, dẫn đến việc Khối Tài chính không thể truy cập vào Khối Hành chính.
Hình 4.10 Cấu hình Flow đảm bảo an toàn các phòng ban - 1
Và sửa cấu hình flow ID: "#UF$TABLE*0-446" trên Switch 3 như sau:
Cấu hình ban đầu cho phép lưu lượng từ cổng eth-2 được chuyển tiếp ra cổng eth-1 và eth-3, giúp Khối Hành chính truy cập vào Khối Tài chính một cách hiệu quả.
Cấu hình Flow này chỉ cho phép lưu lượng từ cổng eth-2 sang cổng eth-1, dẫn đến việc Khối Hành chính không thể truy cập vào Khối Tài chính Cần lưu ý rằng priority của Flow UF$TABLE*0-446 phải thấp hơn priority của Flow UF$TABLE*0-500 để đảm bảo hoạt động hiệu quả của Flow UF$TABLE*0-.
Cấu hình Flow đảm bảo an toàn cho các phòng ban, kết quả cho thấy các host thuộc Khối Hành chính không còn khả năng ping qua lại với các host thuộc Khối Tài chính (h6, h7).
Hình 4.12 Kết quả cấu hình an toàn giữa các phòng ban c) An toàn vùng Server:
- Các máy chủ không được truy cập vào nhau
Thêm flow ID: #UF$TABLE*0-600 trên Switch 3 như sau để chặn 2 máy chủ không thông được nhau qua địa chỉ MAC của 2 máy chủ
Hình 4.13 Cấu hình an toàn vùng server theo địa chỉ MAC
Hoặc chặn thông qua qua địa chỉ IP của 2 máy chủ:
Hình 4.14 Cấu hình an toàn vùng server qua địa chỉ IP Kết quả: 2 server không còn ping được đến nhau
Hình 4.15 Kết quả chặn kết nối giữa 2 server d) An toàn truy cập Internet:
- Chỉ máy tính người dùng thuộc Khối Hành chính và Khối Tài chính được truy cập ra Internet, các server không được phép kết nối Internet
Port eth-1: Kết nối với Switch 2: Vùng Server
Port eth-2: Kết nối với Switch3: Vùng mạng máy tính người dùng
Port eth-3: Kết nối ra Host h8 tượng trưng cho cổng Lan của Router Sửa cấu hình flow của Switch 1 có ID: #UF$TABLE*0-459
Cấu hình hiện tại: Lưu lượng từ Port eth-3 được truyền sang cả 2 Port trên Switch 1
Sửa cấu hình: Lưu lượng từ Port eth-3 chỉ sang được Port eth-2
Hình 4.16 Cấu hình an toàn truy cập Internet
Tương tự, sửa Flow trên Switch 1 từ Port eth-1 chỉ chuyển sang Port eth-
2, không được chuyển sang Port eth-3
Kết quả kết nối các host sau khi cấu hình:
Hình 4.17 Kiểm tra kết nối các host sau khi cấu hình Xem Flows của các Switch trên Mininet:
Các bài toán mở rộng: Quản lý theo Vlan
4.2.1 Mô hình thử nghiệm bài toán quản lý theo Vlan
Mô hình mạng hình sao nhiều cấp gồm 13 Switch (s10 s22) và 27 host
Hình 4.19 Mô hình mạng các Switch hình sao nhiều cấp
Các PC thuộc 3 Vlan và kết nối rải rác trên các Switch:
- Vlan 2 bao gồm: Host 21 (h21) Host 29 (h29)
- Vlan 3 bao gồm: Host 31 (h31) Host 39 (h39)
- Vlan 4 bao gồm: Host 41 (h41) Host 49 (h49)
Chi tiết thông tin các host trong bảng sau:
Bảng 4.2 Bảng thông tin chi tiết các host trong bài toán Vlan
Switch-Port Vlan IP MAC
Switch-Port Vlan IP MAC c3:39
49 s22-eth4 4 192.168.4.9/24 2e:03:73:7e: c3:49 Vào Mininet, tạo file Python mytopo2.py với nội dung như sau:
This article introduces a custom topology in Mininet, a network emulator, by importing necessary modules such as Topo, Mininet, and various node and link classes The script begins with the definition of the MyTopo class, which inherits from Topo, allowing users to create and manipulate network topologies efficiently By setting the log level and utilizing CPULimitedHost and TCLink, the script enables enhanced control over host resources and link characteristics, making it a valuable tool for network simulation and testing.
"Simple topology example." def init ( self ):
To add hosts in a network, the following configurations are implemented: Host h21 is assigned the IP address 192.168.2.1 and MAC address 2e:03:73:7e:c3:21; host h22 is set with IP 192.168.2.2 and MAC 2e:03:73:7e:c3:22; host h23 uses IP 192.168.2.3 and MAC 2e:03:73:7e:c3:23; host h24 is configured with IP 192.168.2.4 and MAC 2e:03:73:7e:c3:24; host h25 has IP 192.168.2.5 and MAC 2e:03:73:7e:c3:25; host h26 is assigned IP 192.168.2.6 and MAC 2e:03:73:7e:c3:26; host h27 is set with IP 192.168.2.7 and MAC 2e:03:73:7e:c3:27; host h28 uses IP 192.168.2.8 and MAC 2e:03:73:7e:c3:28; and host h29 is configured with IP 192.168.2.9 and MAC 2e:03:73:7e:c3:29.
In this article, we outline the process of adding hosts and switches in a network simulation environment A series of hosts are created with unique IP addresses and MAC addresses, ranging from h31 to h49, with IPs assigned from the 192.168.3.x and 192.168.4.x ranges Additionally, multiple switches, labeled from s10 to s22, are introduced to facilitate network connectivity This setup is crucial for creating a structured and efficient network topology for testing and development purposes.
The article outlines a systematic approach to establishing connections between various elements, denoted as s10 through s22 and h21 through h44 Each connection is made using the method `self.addLink`, which links pairs of elements, facilitating a structured network The connections include linking s10 to s11, s15, and s19, as well as creating subsequent links between s11 and its related elements, s12 through s14 Further connections extend from s15 to s16, s17, and s18, and from s19 to s20, s21, and s22 Additionally, s12, s13, and s14 connect to various h elements, establishing a comprehensive framework of interrelations This methodical linking enhances the overall connectivity within the system.
52 self.addLink(s18, h36) self.addLink(s18, h45) self.addLink(s18, h46) self.addLink(s20, h27) self.addLink(s20, h28) self.addLink(s20, h47) self.addLink(s21, h37) self.addLink(s21, h38) self.addLink(s21, h39) self.addLink(s22, h29) self.addLink(s22, h48) self.addLink(s22, h49)
# sudo mn controller=remote,ip2.168.56.105,portf33 custom mytopo2.py topo ovsk,protocols=OpenFlow13 topos = { 'tp': ( lambda: MyTopo() ) }
Chạy lệnh tạo topo từ file mytopo2.py: sudo mn controller=remote,ip2.168.56.105,portf33 custom mytopo2.py topo ovsk,protocols=OpenFlow13
To create a VLAN test topology, check the connectivity of devices using the command: "mininet> net" This command verifies the connections between hosts, such as h21 connected to s12-eth2, h22 to s12-eth3, and so forth, ensuring that all devices from h21 to h45 are properly linked to their respective switches.
The network topology consists of various hosts and links, each identified by unique labels For instance, host h46 connects to eth0 and has multiple connections to other hosts, such as s18-eth4 Similarly, host h47 connects through eth0 to s20-eth4, while h48 links through s22-eth3 and s22-eth4 The structure continues with hosts h49, s10, s11, and others, each having distinct connections to local and external interfaces This configuration illustrates a complex interconnection of devices, demonstrating the intricate relationships within the network.
Ping kiểm tra kết nối giữa các host, ta thấy tất cả các host đều ping được cho nhau
Hình 4.21 Kết nối giữa các host khi chưa chia Vlan
Sử dụng Wireshark bắt gói tin ping giữa các host, ta thấy răng gói tin không hề có thông tin về VLAN
Hình 4.22 Gói tin trước khi cấu hình Vlan
Vào OpenDaylight và OpenFlows Manager xem topo mạng và kiểm tra đấu nối các host với các port trên Switch
Hình 4.23 Topo mạng thử nghiệm Vlan trên giao diện OFM
4.2.2 Giải quyết bài toán quản lý theo Vlan
Sử dụng OpenFlows Manager cấu hình gán tag Vlan trên Switch S12:
Ta có thể sử dụng những cách sau: a) Gán tag Vlan theo cổng Switch (In port):
Cấu hình gói tin đi vào từ cổng eth2 của Switch S12 (openflow:12:2) sẽ được gán tag Vlan 2
Hình 4.24 Cấu hình gán tag Vlan theo In port b) Gán tag Vlan theo địa chỉ IP nguồn gói tin gửi đến:
Cấu hình gói tin gửi đến có nguồn IP từ thuộc dải 192.168.2.2/24 sẽ được gán tag Vlan 2
Hình 4.25 Cấu hình gán tag Vlan theo địa chỉ IP nguồn c) Gán tag Vlan theo địa chỉ MAC nguồn:
Cấu hình gói tin có nguồn gửi đến từ địa chỉ MAC là 2e:03:73:7e:c3:31 sẽ được gán tag Vlan 3
Hình 4.26 Cấu hình gán tag Vlan theo địa chỉ MAC nguồn Kiểm tra kết quả cấu hình:
Hình 4.27 Kiểm tra việc cấu hình trên Switch S12
Ta thấy host h21 và h22 chỉ còn ping được đến nhau, vì host h31 đã thuộc Vlan khác
To configure trunk connections for various switches, use the following commands: For switch s12, set trunk ports to 2 and 3, and add a normal flow with OpenFlow 1.3 Similarly, configure switch s13 with trunk ports 2 and 3 and add a normal flow For switch s11, set trunk ports for eth1 to 2, 3, and 4; eth2 and eth3 to 2 and 3; and eth4 to 2, 3, and 4, followed by adding a normal flow Switch s14 should have trunk ports set to 2, 3, and 4 with a normal flow added For switch s10, configure all three eth ports to trunk ports 2, 3, and 4, then add a normal flow Switch s15 requires trunk ports set for eth1 to 2, 3, and 4; eth2 to 2, 3, and 4; eth3 to 2 and 4; and eth4 to 3 and 4, followed by adding a normal flow Continue configuring switches s16, s17, s18, s19, s20, and s22 with their respective trunk ports and normal flow actions as specified.
Cấu hình Vlan cho nhánh Switch s11 đã hoàn tất và kết quả cho thấy các host trong cùng Vlan có thể ping được với nhau Tuy nhiên, các host trong vùng mạng này không thể ping đến các vùng mạng khác do chưa được cấu hình Vlan cho các vùng mạng đó.
Hình 4.28 Vùng Switch S11, S12, S13, S14 Cấu hình vùng Switch S11, S12, S13, S14 và kiểm tra:
Hình 4.29 Kiểm tra việc cấu hình vùng Switch S11, S12, S13, S14
Sau khi hoàn tất việc cấu hình tất cả các Switch thông qua OpenFlows Manager, cần kiểm tra kết nối giữa các host sau khi đã cấu hình Vlan Những host thuộc cùng Vlan có thể ping được nhau, trong khi các host thuộc khác Vlan sẽ không ping được.
Hình 4.30 Kết quả sau khi gán tag Vlan
Sử dụng Wireshark để bắt gói tin ping giữa các host, như ví dụ dưới đây cho thấy chi tiết gói tin ping từ nguồn h27 đến đích h22 Gói tin này chứa thông tin quan trọng về quá trình truyền dữ liệu giữa hai địa chỉ IP.
“802.1Q Virtual LAN, ID: 2” cho thấy đã được gán tag Vlan 2.