In SDN, controllers are used to provide the functionality of openflow switches (dumb).
Consider these two parts,
1) Controllers: These are programs that work on any device with logic, can be l2 / l3 and connect switches to them in accordance with the algorithms defined in the controller. There are some controllers, such as POX, NOX, PYRETIC, FLOODLIGHT in different languages, on the market, which you can implement to write your own controller.
2) Switches: Controllers control the switches. Excellent! But how? There must be some kind of protocol that is used to provide communication between them, this is what we call the OpenFlow protocol. The controller implements functionality, for example, OSPF / BGP, using the controller API and the OpenFlow API.
Finally, it is a structure that comes in the imagination.
A controller (on some IP it says 192.168.56.101) that provides OSPF / firewall / URL filtering or any function for openflow switches β OpenFlow Switch or switches (dumb) used to connect hosts β that is / there is Host (s): this is usually linux if you use mininet emulator.
source share