This blog post is the third in our series explaining the main improvements of 6WINDGate 5.0. Today, we will detail the 6WINDGate management architecture and how this architecture can be leveraged to quickly extend the management plane to integrate customer features in a consistent manner.
6WINDGate Management Plane comprises three main building blocks:
- Management Engine and Data Store: YAMS, a Python-based engine configuring and monitoring all network components. The YAMS engine uses a YANG model data store. The YAMS engine configures and monitors the Linux kernel and daemons and benefits from the Linux – Fast Path synchronization described in the two first posts of this series, here and here.
- Configuration: A NETCONF server providing a standard API to interface with NETCONF-based configuration tools. 6WIND has developed its own CLI tool as a NETCONF client to configure 6WINDGate features.
- Monitoring / Analytics: Traditional SNMP and sFlow monitoring services as well as advanced services through a KPI agent collecting all statistics ready for streaming.
Management Engine And Data Store
NETCONF is a network management protocol standardized by the IETF. It defines mechanisms to install, manipulate and delete the configuration of network devices. It uses Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. YANG is a language used to model data for the NETCONF protocol. A YANG module defines a hierarchy of data that can be used for NETCONF-based operations, including configuration, state data, Remote Procedure Calls (RPCs), and notifications for network management protocols.
The 6WINDGate management engine comprises a YANG-based datastore and a NETCONF server. It supports all the required protocol operations to read and write the configuration: <get>, <get-config>, <edit-config>, <copy-config> and so on.
The management engine stores separate configuration and state data for each feature. The state part includes additional runtime information compared to the configuration part; typically, statistics.
The CLI is the common user interface to interact with 6WINDGate. It can be used to configure, monitor and troubleshoot. The CLI provides help and completion, as well as the management of configuration files to save and restore a complete and consistent configuration in one command. The 6WINDGate CLI is a NETCONF client that communicates with 6WINDGate’s YANG-based configuration engine. Its command names and statements follow the syntax and the hierarchical organization of the 6WINDGate YANG models. Data consistency is checked against the YANG model, so that syntax errors are detected early. The configuration engine supports transactions and rollback on error.
The CLI comes with traditional features, such as completion, history and contextual help. Users can walk the configuration tree as they would browse a file system. Relative and absolute paths can be used to refer to configuration data, making browsing very efficient.
The NETCONF API can be used from any NETCONF client to configure and monitor the router remotely, therefore enabling automation and orchestration.
Monitoring / Analytics
6WINDGate provides a complete portfolio of services for network monitoring and analytics.
SNMP (Simple Network Management Protocol) is an Internet-standard protocol for collecting and organizing information about managed devices on IP networks. It exposes management data in the form of variables on the managed systems organized in a MIB (Management Information Base) that describes the system status. These variables can then be remotely queried by management applications.
6WINDGate supports SNMPv1, SNMPv2c (basic authentication with community strings) and SNMPv3 (authentication with SNMP users). Supported MIBS include standard system and networking MIBs (interface, IP, IPv6, IP forward, etc.), routing MIBs (BGP, OSPF, RIP), VRRP MIBs and 6WIND-developed IPsec MIB.
Data Plane Analytics: sflow
sFlow is a technology for monitoring traffic in data networks containing switches and routers. In particular, it defines the traffic sampling mechanisms implemented in sFlow Agents and the format of the sFlow Datagram that carries traffic measurement data from sFlow Agents to an sFlow Collector.
Next Gen Monitoring
In addition to traditional monitoring, 6WINDGate provides an advanced monitoring solution based on time series collection and visualization of Key Performance Indicators (KPIs). With such a solution, it is much easier to understand problems that happened in the past and to correlate them to past events. And it may even be used to predict the future as the user directly visualizes the dynamics of the system.
6WINDGate KPIs are pre-integrated with the InfluxDB time-series database and the Grafana analytics frontend. Integration with other TSDB or analytics front-ends is possible. Telegraf is used to collect KPIs and export them to InfluxDB. KPIs are modelized using YANG and exposed using NETCONF or a local API.
6WINDGate management architecture can be customized to extend the 6WINDGate management services.
YANG Model And Configuration
As 6WINDGate configuration services rely on a NETCONF API, all tools including automation and orchestration platforms based on a NETCONF client can be easily integrated with 6WINDGate.
The 6WINDGate CLI can also be extended to develop new commands for an existing 6WINDGate feature; for instance adding a new CLI command for routing configuration or routing information display.
Users can also leverage the 6WINDGate configuration framework to integrate the configuration of a user feature in a consistent manner with all existing services. For instance, a user can develop a 6WINDGate management extension for a user GTP module integrated with 6WINDGate.
Extensions of the 6WINDGate CLI are automatically available with the extension of the corresponding YANG models. The CLI documentation (command reference) is also automatically generated.
Examples of extensions of YANG models and CLI are provided in 6WINDGate management documentation.
Monitoring / Analytics
The 6WINDGate open architecture can be used in different ways to extend monitoring and analytics services.
First of all, users can extend the services and data available in 6WINDGate to:
- Add or extend the 6WINDGate available KPIs,
- Create new KPIs for user features integrated with 6WINDGate,
- Customize the Grafana dashboards available under 6WIND github for displaying 6WINDGate or user features.
It is also possible to use different tools:
- The Telegraf agent can be integrated with another Time Series Data Base tool like ElasticSearch instead of Influxdb,
- Influxdb can be integrated with another graphical front-end like Kabana instead of Grafana,
- The Telegraf agent can be replaced by another KPI agent such as collectd.
6WINDGate 5.0 customers can quickly extend the management plane to integrate customer features using their Linux networking architecture. Contact us today for more information on 6WINDGate 5.0.
For further information:
- 6WINDGate management presentation
- vRouter webinar introducing the NETCONF/YANG-based management engine
- 6WINDGate management module datasheets
Yann Rapaport is 6WIND’s VP of Product Management.