CISCO NETWORK SERVICES ORCHESTRATOR (NSO)
NSO là một nền tảng platform giúp việc điều phối các dịch vụ mạng, cho phép chúng ta triển khai dịch vụ end-to-end trên nhiều hạ tầng vật lý và ảo từ nhiều nhà sản xuất khác nhau.
NSO có thể được xem như một loại SDN controller ở mức dịch vụ cho nhiều nhà sản xuất khác nhau. NSO có thể được dùng cho các trung tâm dữ liệu, các doanh nghiệp và các hạ tầng mạng của các nhà cung cấp dịch vụ.
NSO tận dụng tất cả các ưu điểm của NETCONF và YANG để đưa ra một giao tiếp API và một giao diện duy nhất cho một hạ tầng mà nó quản lý. Cisco NSO là nguồn thông tin tin cậy duy nhất trong hạ tầng mạng, thường xuyên duy trì trạng thái hiện hành của các thiết bị trong cơ sở dữ liệu. NSO đảm bảo rằng các cơ sở dữ liệu cấu hình được đồng bộ với tất cả các thiết bị mạng ở mọi thời điểm.
Các thành phần chính của Cisco NSO là như sau:
Có hai giao thức chủ chốt được dùng với Cisco NSO là:
NETCONF: được dùng để chuẩn hóa và tự động hóa một cách hiệu quả các cấu hình.
YANG: Được dùng cho các dịch vụ và mô hình hóa các dữ liệu cấu hình thiết bị. Một trong những điểm thuận lợi chính của Cisco NSO là khả năng chuyển đổi từ mô hình này sang mô hình kia.
Một người quản trị mạng có thể định nghĩa các mô hình dữ liệu cho các dịch vụ đầu cuối cần phải triển khai trên mạng (ví dụ như L3 MPLS VPN, IPTV). NSO sẽ chuyển đổi tương ứng các mô hình dịch vụ này cho các thiết bị của các nhà sản xuất khác nhau.
Bởi vì phần lớn các thiết bị không hỗ trợ NETCONF và mô hình YANG, NSO sẽ dùng các trình thiết bị NED (Network Element Drivers) để mô hình hóa các giao tiếp dòng lệnh CLI vào các mô hình YANG. NSO hỗ trợ một số mức độ che dấu làm cho các thiết bị mạng “trong suốt” đối với việc quản trị các dịch vụ mạng. Bằng cách này, các dịch vụ phức tạp có thể được mô tả và triển khai theo những cách đơn giản. Dịch vụ mạng được đẩy tới thiết bị mà không phụ thuộc và nhà sản xuất, hay phụ thuộc vào các ngữ nghĩa cấu hình…
NSO cung cấp vài giao tiếp cho các dịch vụ và các nền tảng quản trị, bao gồm NETCONF, RESTCONF, JSON/RPC và giao tiếp CLI, giao diện web, SNMP. Giao tiếp NSO CLI và giao diện web thường được dùng cho tương tác với con người. SNMP và NETCONF được dùng cho giám sát. NETCONF, RESTCONF và JSON/RPC được dùng cho tích hợp tự động hóa.
Giao diện NSO CLI có hai chế độ hoạt động: chế độ hoạt động bình thường được dùng chủ yếu để giám sát và bảo trì nền tảng, chế độ cấu hình được dùng để cấu hình dịch vụ, thiết bị và máy chủ NSO. Có hai kiểu giao tiếp CLI được đưa ra bởi NSO: kiểu Cisco CLI và kiểu Juniper CLI. Các người dùng CLO có thể dễ dàng chuyển đổi giữa hai dạng này bằng câu lệnh switch CLI.
Giao tiếp hướng nam southbound với các thiết bị mạng được thực hiện thông qua các thành phần gọi là trình thiết bị mạng Network Element Drivers (NEDs), trong đó triển khai một số lượng lớn các giao diện hướng xuống, bao gồm NETCONF, CLI, SNMP và OpenFlow.
Kiến trúc login của NSO là giải pháp hai lớp: một thành phần quản lý thiết bị sẽ quản lý các tình huống cấu hình thiết bị và một thành phần quản lý dịch vụ cung cấp một giao tiếp cho người quản trị để định nghĩa các dịch vụ cần phải triển khai trong mạng.
Kho lưu trữ dữ liệu cấu hình trong NSO được gọi là Cơ sở dữ liệu cấu hình (CDB) được đồng bộ với tất cả các thiết bị trong mạng và chứa tất các các cấu hình của thiết bị và dịch vụ. Một lớp ánh xạ quản lý sự tương ứng giữa các mô hình dịch vụ và các mô hình thiết bị. Thành phần Cisco NSO Core Engine quản lý các tác vụ quan trong như các phiên giao tiếp, tính sẵn sàng cao, vấn đề nâng cấp và giảm cấp, RBAC và quản lý vấn đề rollback. Tất cả các hoạt động trong NSO được quản lý bởi trình quản lý phiên transaction manager. Thành phần CoreEngine kết nối tất cả các thành phần NSO khác lại với nhau. Nó là phần giao tiếp backbone của tất cả các thành phần khác và là tiến trình đọc file cấu hình ban đầu trong file ncs.conf.
Thành phần CDB sẽ lưu trự tất cả các dữ liệu của nền tảng trong cơ sở dữ liệu RAM, bao gồm các cấu hình của NSO, các cấu hình của tất cả các dịch vụ và các thiết bị được quản lý và tất cả các dữ liệu hoạt động của NSO. CDB được lưu trữ trong RAM nhằm gia tăng tốc độ và thời gian đáp ứng. Sẽ có một phiên bản thường trực của CDB được lưu trong bộ nhớ của máy chủ. Thành phần CDB là một cơ sở dữ liệu có cấu trúc được sắp xếp theo dạng cây và mặc dù các giải pháp cơ sở dữ liệu khác có thể dùng, chúng ta được khuyến cáo sử dụng CDB vì CDB đã được tối ưu cho NSO và tối ưu cho tính chất làm việc theo phiên của NSO.
Với trình quản lý dịch vụ NSO service, các người dùng phát triển các mô hình YANG của các dịch vụ họ muốn triển khai trên mạng, chẳng hạn như IPTV hay MPLS VPN. Ở giai đoạn này, các mô hình dịch vụ đã được đối chiếu tương ứng với các mô hình cấu hình thiết bị. Việc này được hoàn thành thông qua các mẫu cấu hình trong đó đối chiếu các thông số dịch vụ vào các thông số của cấu hình thiết bị chuyển sang định dạng lập trình thông qua các đoạn mã Python hay Java. Chu kỳ của dịch vụ được định nghĩa trong NSO được quản lý thông qua thuật toán FASTMAP. Khi dịch vụ được tạo ra, được thay đổi và xóa, FASTMAP phản ứng một cách tức thời và điều chỉnh các cấu hình của các thiết bị trong mạng để phản ánh trạng thái của mô hình dịch vụ.
Thêm vào đó, FASTMAP cho phép các chứng năng sau:
Chạy thử dịch vụ (Service dry-run): NSO tính toán các thay đổi nào trên thiết bị sẽ diễn ra nếu các mô hình dịch vụ được đẩy tới các thiết bị trong mạng.
Service check-sync: Cấu hình dịch vụ sẽ được kiểm tra để đồng bộ với các cấu hình thiết bị thực sự. Các độ lệch trong cấu hình có thể được phát hiện theo cách này.
Service re-deploy: Cấu hình thiết bị có thể được tái triển khai để khôi phục một dịch vụ trên mạng.
Trình quản lý thiết bị NSO quản lý các thiết bị bằng cách sử dụng các mô hình dữ liệu YANG và giao thức NETCONF. Các thiết bị có hỗ trợ NETCONF và YANG ngay từ đầu thì sẽ được tích hợp quản lý tự động. Các thiết bị chưa có hỗ trợ NETCONF thì được tích hợp vào nền tảng bằng các driver gọi là NED. NED hỗ trợ các giao tiếp dòng lệnh CLI, các cấu hình SNMP và các phương án tùy chọn khác. Nếu cần thiết, các NED tùy biến có thể được phát triển để giải quyết bất kỳ một giao thức quản trị thiết bị nào chưa có trong quá trình cài đặt mặc định.
Các phiên giao dịch nguyên bản được dùng cho tất cả các thay đổi cấu hình trên tất cả các thiết bị trên mạng. Nếu chúng ta áp dụng các thay đổi cấu hình và bị thất bại, một cơ chế rollback có thể được dùng để quay ngược lại tất cả những thay đổi và đưa các thiết bị trở về trạng thái ban đầu trước khi dịch vụ được triển khai. Các mẫu cấu hình có thể được sử dụng ở giai đoạn này để tạo ra các mẫu cấu hình thiết bị mới một cách dễ dàng và nhanh chóng.
Một phiên bản dùng cho dạy học của Cisco NSO có thể được tải về ở địa chỉ https://developer.cisco.com/site/nso/. Các bước cài đặt cũng có trong địa chỉ web site trên. Ví dụ sau sẽ dùng NSO phiên bản 5.1 để chạy cục bộ trên máy macOS Catalina. Cisco NSO cũng cung cấp một công cụ mô phòng được gọi là ncs-netsim. Công cụ này giúp kiểm tra dễ dàng các gói NSO đối với các thiết bị được mô phỏng và giúp học về platform mà không cần bất kỳ phần cứng nào. Các mô hình YANG được dùng cho các các thiết bị mô phỏng thật và ảo.
NSO là một nền tảng platform giúp việc điều phối các dịch vụ mạng, cho phép chúng ta triển khai dịch vụ end-to-end trên nhiều hạ tầng vật lý và ảo từ nhiều nhà sản xuất khác nhau.
NSO có thể được xem như một loại SDN controller ở mức dịch vụ cho nhiều nhà sản xuất khác nhau. NSO có thể được dùng cho các trung tâm dữ liệu, các doanh nghiệp và các hạ tầng mạng của các nhà cung cấp dịch vụ.
NSO tận dụng tất cả các ưu điểm của NETCONF và YANG để đưa ra một giao tiếp API và một giao diện duy nhất cho một hạ tầng mà nó quản lý. Cisco NSO là nguồn thông tin tin cậy duy nhất trong hạ tầng mạng, thường xuyên duy trì trạng thái hiện hành của các thiết bị trong cơ sở dữ liệu. NSO đảm bảo rằng các cơ sở dữ liệu cấu hình được đồng bộ với tất cả các thiết bị mạng ở mọi thời điểm.
Các thành phần chính của Cisco NSO là như sau:
- Quản lý dịch vụ (Service manager)
- Quản lý thiết bị (Device manager)
- Ánh xạ thuật toán (Mapping logic)
- Cơ sở dữ liệu cấu hình (Configuration database)
Có hai giao thức chủ chốt được dùng với Cisco NSO là:
NETCONF: được dùng để chuẩn hóa và tự động hóa một cách hiệu quả các cấu hình.
YANG: Được dùng cho các dịch vụ và mô hình hóa các dữ liệu cấu hình thiết bị. Một trong những điểm thuận lợi chính của Cisco NSO là khả năng chuyển đổi từ mô hình này sang mô hình kia.
Một người quản trị mạng có thể định nghĩa các mô hình dữ liệu cho các dịch vụ đầu cuối cần phải triển khai trên mạng (ví dụ như L3 MPLS VPN, IPTV). NSO sẽ chuyển đổi tương ứng các mô hình dịch vụ này cho các thiết bị của các nhà sản xuất khác nhau.
Bởi vì phần lớn các thiết bị không hỗ trợ NETCONF và mô hình YANG, NSO sẽ dùng các trình thiết bị NED (Network Element Drivers) để mô hình hóa các giao tiếp dòng lệnh CLI vào các mô hình YANG. NSO hỗ trợ một số mức độ che dấu làm cho các thiết bị mạng “trong suốt” đối với việc quản trị các dịch vụ mạng. Bằng cách này, các dịch vụ phức tạp có thể được mô tả và triển khai theo những cách đơn giản. Dịch vụ mạng được đẩy tới thiết bị mà không phụ thuộc và nhà sản xuất, hay phụ thuộc vào các ngữ nghĩa cấu hình…
NSO cung cấp vài giao tiếp cho các dịch vụ và các nền tảng quản trị, bao gồm NETCONF, RESTCONF, JSON/RPC và giao tiếp CLI, giao diện web, SNMP. Giao tiếp NSO CLI và giao diện web thường được dùng cho tương tác với con người. SNMP và NETCONF được dùng cho giám sát. NETCONF, RESTCONF và JSON/RPC được dùng cho tích hợp tự động hóa.
Giao diện NSO CLI có hai chế độ hoạt động: chế độ hoạt động bình thường được dùng chủ yếu để giám sát và bảo trì nền tảng, chế độ cấu hình được dùng để cấu hình dịch vụ, thiết bị và máy chủ NSO. Có hai kiểu giao tiếp CLI được đưa ra bởi NSO: kiểu Cisco CLI và kiểu Juniper CLI. Các người dùng CLO có thể dễ dàng chuyển đổi giữa hai dạng này bằng câu lệnh switch CLI.
Giao tiếp hướng nam southbound với các thiết bị mạng được thực hiện thông qua các thành phần gọi là trình thiết bị mạng Network Element Drivers (NEDs), trong đó triển khai một số lượng lớn các giao diện hướng xuống, bao gồm NETCONF, CLI, SNMP và OpenFlow.
Kiến trúc login của NSO là giải pháp hai lớp: một thành phần quản lý thiết bị sẽ quản lý các tình huống cấu hình thiết bị và một thành phần quản lý dịch vụ cung cấp một giao tiếp cho người quản trị để định nghĩa các dịch vụ cần phải triển khai trong mạng.
Kho lưu trữ dữ liệu cấu hình trong NSO được gọi là Cơ sở dữ liệu cấu hình (CDB) được đồng bộ với tất cả các thiết bị trong mạng và chứa tất các các cấu hình của thiết bị và dịch vụ. Một lớp ánh xạ quản lý sự tương ứng giữa các mô hình dịch vụ và các mô hình thiết bị. Thành phần Cisco NSO Core Engine quản lý các tác vụ quan trong như các phiên giao tiếp, tính sẵn sàng cao, vấn đề nâng cấp và giảm cấp, RBAC và quản lý vấn đề rollback. Tất cả các hoạt động trong NSO được quản lý bởi trình quản lý phiên transaction manager. Thành phần CoreEngine kết nối tất cả các thành phần NSO khác lại với nhau. Nó là phần giao tiếp backbone của tất cả các thành phần khác và là tiến trình đọc file cấu hình ban đầu trong file ncs.conf.
Thành phần CDB sẽ lưu trự tất cả các dữ liệu của nền tảng trong cơ sở dữ liệu RAM, bao gồm các cấu hình của NSO, các cấu hình của tất cả các dịch vụ và các thiết bị được quản lý và tất cả các dữ liệu hoạt động của NSO. CDB được lưu trữ trong RAM nhằm gia tăng tốc độ và thời gian đáp ứng. Sẽ có một phiên bản thường trực của CDB được lưu trong bộ nhớ của máy chủ. Thành phần CDB là một cơ sở dữ liệu có cấu trúc được sắp xếp theo dạng cây và mặc dù các giải pháp cơ sở dữ liệu khác có thể dùng, chúng ta được khuyến cáo sử dụng CDB vì CDB đã được tối ưu cho NSO và tối ưu cho tính chất làm việc theo phiên của NSO.
Với trình quản lý dịch vụ NSO service, các người dùng phát triển các mô hình YANG của các dịch vụ họ muốn triển khai trên mạng, chẳng hạn như IPTV hay MPLS VPN. Ở giai đoạn này, các mô hình dịch vụ đã được đối chiếu tương ứng với các mô hình cấu hình thiết bị. Việc này được hoàn thành thông qua các mẫu cấu hình trong đó đối chiếu các thông số dịch vụ vào các thông số của cấu hình thiết bị chuyển sang định dạng lập trình thông qua các đoạn mã Python hay Java. Chu kỳ của dịch vụ được định nghĩa trong NSO được quản lý thông qua thuật toán FASTMAP. Khi dịch vụ được tạo ra, được thay đổi và xóa, FASTMAP phản ứng một cách tức thời và điều chỉnh các cấu hình của các thiết bị trong mạng để phản ánh trạng thái của mô hình dịch vụ.
Thêm vào đó, FASTMAP cho phép các chứng năng sau:
Chạy thử dịch vụ (Service dry-run): NSO tính toán các thay đổi nào trên thiết bị sẽ diễn ra nếu các mô hình dịch vụ được đẩy tới các thiết bị trong mạng.
Service check-sync: Cấu hình dịch vụ sẽ được kiểm tra để đồng bộ với các cấu hình thiết bị thực sự. Các độ lệch trong cấu hình có thể được phát hiện theo cách này.
Service re-deploy: Cấu hình thiết bị có thể được tái triển khai để khôi phục một dịch vụ trên mạng.
Trình quản lý thiết bị NSO quản lý các thiết bị bằng cách sử dụng các mô hình dữ liệu YANG và giao thức NETCONF. Các thiết bị có hỗ trợ NETCONF và YANG ngay từ đầu thì sẽ được tích hợp quản lý tự động. Các thiết bị chưa có hỗ trợ NETCONF thì được tích hợp vào nền tảng bằng các driver gọi là NED. NED hỗ trợ các giao tiếp dòng lệnh CLI, các cấu hình SNMP và các phương án tùy chọn khác. Nếu cần thiết, các NED tùy biến có thể được phát triển để giải quyết bất kỳ một giao thức quản trị thiết bị nào chưa có trong quá trình cài đặt mặc định.
Các phiên giao dịch nguyên bản được dùng cho tất cả các thay đổi cấu hình trên tất cả các thiết bị trên mạng. Nếu chúng ta áp dụng các thay đổi cấu hình và bị thất bại, một cơ chế rollback có thể được dùng để quay ngược lại tất cả những thay đổi và đưa các thiết bị trở về trạng thái ban đầu trước khi dịch vụ được triển khai. Các mẫu cấu hình có thể được sử dụng ở giai đoạn này để tạo ra các mẫu cấu hình thiết bị mới một cách dễ dàng và nhanh chóng.
Một phiên bản dùng cho dạy học của Cisco NSO có thể được tải về ở địa chỉ https://developer.cisco.com/site/nso/. Các bước cài đặt cũng có trong địa chỉ web site trên. Ví dụ sau sẽ dùng NSO phiên bản 5.1 để chạy cục bộ trên máy macOS Catalina. Cisco NSO cũng cung cấp một công cụ mô phòng được gọi là ncs-netsim. Công cụ này giúp kiểm tra dễ dàng các gói NSO đối với các thiết bị được mô phỏng và giúp học về platform mà không cần bất kỳ phần cứng nào. Các mô hình YANG được dùng cho các các thiết bị mô phỏng thật và ảo.