Introduction to OpenDaylight
OpenDaylight is a powerful and flexible open source SDN controller. It is a project of the Linux Foundation, and it has a large and active community of developers. OpenDaylight is designed to be a modular and extensible platform for network automation. It can be used to manage a wide range of network devices, from physical switches and routers to virtual switches and firewalls.
This article will provide a technical deep dive into the OpenDaylight SDN Controller, exploring its architecture, key components, and how it can be used to build a programmable network.
OpenDaylight Architecture
The OpenDaylight architecture is based on the concept of a Model-Driven Service Abstraction Layer (MD-SAL). The MD-SAL is a data-centric middleware that provides a common data model for all of the components of the controller. This allows the different components of the controller to communicate with each other in a standardized way.
The OpenDaylight architecture is also highly modular. It is made up of a number of different components, each of which provides a specific function. Some of the most important components of the OpenDaylight architecture include:
- The MD-SAL: The MD-SAL is the heart of the OpenDaylight controller. It provides a common data model for all of the components of the controller.
- The Network Abstraction Layer (NAL): The NAL is responsible for abstracting the details of the underlying network devices. This allows the controller to manage a wide range of network devices in a consistent way.
- The Service Abstraction Layer (SAL): The SAL is responsible for providing a common set of services to the applications that run on top of the controller. These services include things like topology management, inventory management, and policy management.
- The Application Layer: The application layer is where the network applications run. These applications can be used to perform a wide range of tasks, such as network virtualization, security, and traffic engineering.
The Model-Driven Service Abstraction Layer (MD-SAL)
The MD-SAL is the key to the flexibility and extensibility of the OpenDaylight controller. It is a data-centric middleware that provides a common data model for all of the components of the controller. The MD-SAL is based on the YANG data modeling language. YANG is a standardized language for modeling configuration and state data.
The MD-SAL provides two main types of data stores:
- The Configuration Data Store: The configuration data store contains the desired state of the network. This is the state that the controller will try to achieve.
- The Operational Data Store: The operational data store contains the actual state of the network. This is the state that is reported by the network devices.
The MD-SAL also provides a notification service that allows components to be notified of changes to the data stores.
The Network Abstraction Layer (NAL)
The NAL is responsible for abstracting the details of the underlying network devices. This allows the controller to manage a wide range of network devices in a consistent way. The NAL is made up of a number of different southbound plugins. Each southbound plugin is responsible for communicating with a particular type of network device.
OpenDaylight supports a wide range of southbound plugins, including:
- OpenFlow: OpenDaylight has a robust OpenFlow plugin that can be used to manage OpenFlow-enabled switches.
- NETCONF: OpenDaylight has a NETCONF plugin that can be used to manage devices that support the NETCONF protocol.
- OVSDB: OpenDaylight has an OVSDB plugin that can be used to manage Open vSwitch databases.
The Service Abstraction Layer (SAL)
The SAL is responsible for providing a common set of services to the applications that run on top of the controller. These services include things like topology management, inventory management, and policy management. The SAL is made up of a number of different service modules. Each service module provides a specific service.
Some of the most important service modules in the SAL include:
- The Topology Manager: The topology manager is responsible for discovering and maintaining a map of the network.
- The Inventory Manager: The inventory manager is responsible for keeping track of all of the devices in the network.
- The Policy Manager: The policy manager is responsible for enforcing policies on the network.
Conclusion
OpenDaylight is a powerful and flexible open source SDN controller. It is a modular and extensible platform that can be used to build a programmable network. The OpenDaylight architecture is based on the MD-SAL, which provides a common data model for all of the components of the controller. This allows the different components of the controller to communicate with each other in a standardized way. As SDN continues to gain traction in the networking industry, the importance of the OpenDaylight controller will only continue to grow.