Let's say we have an existing SDN network composed of several switches and a controller. Now say we connected a new switch to the network. Now how would the new switch know how to reach the controller? And how did the first switches know how to reach the controller in the first place?

The only way I can think of is there must be some routing protocol running on the switches. But if they are running a routing protocol, wouldn't that violate the concept of SDN? Because in SDN, we are removing the control plane from the switches and place it on the controller, and if switches are running a routing protocol then they still have their control plane functioning.

Please enlighten me.

  • Has any answer solved your question? Then please accept it or your question will keep popping up here forever. Please also consider voting for useful answers.
    – Zac67
    Oct 18 at 20:51

2 Answers 2


Now how would the new switch know how to reach the controller? And how did the first switches know how to reach the controller in the first place?

Most often, SDN switches are added to the controller and the controller then "consumes" or seizes control over the switches.

Depending on the controller, its configuration and the switches (brand/vendor), discovery and consumption may be an automatic process, sometimes with a certificate deployed via USB stick or similar.

And no, it has no relation to any routing protocol, as you've guessed.

  • so therefore we still have control plane in the switches. So there is no true separation of data plane and control plane. "SDN" is impossible.
    – Noob_Guy
    Jan 20 at 13:49
  • 1
    You don't have a control plane on an SDN switch. You have a separate management interface with its own IP stack that's entirely distinct of what's forwarded on the data plane.
    – Zac67
    Jan 20 at 17:08
  • does it mean switches are directly connected to the controller? as in one-hop away only?
    – Noob_Guy
    Jan 20 at 21:28
  • 1
    Not necessarily. A controller can be running on the switch itself, or in a distant datacenter. However, for optimal performance, the controller should have minimal latency to the switches it manages.
    – Ricky
    Jan 21 at 2:22
  • @Zac67 but management plane is still control plane. They both consume and process traffic that is destined to the device they are in. The difference only is the source of the traffic. The source of control plane traffic is a switch or router, while the source of management traffic is a workstation or server.
    – Noob_Guy
    Jan 21 at 11:23

Switches communicate to the controller via a protocol like OpenFlow.

But still, there is a question. How would the switches know the route to the controller if they are not directly connected to the controller because there are intermediate switches and there is no routing protocol?

Answer: there MUST be some sort of routing protocol. It's either you use already existing protocols (OSPF, RIP, etc.) or you invent your own. There is no other way unless you connect the switches directly to the controller (but of course that's unrealistic).

  • Any node using a network to communicate with another node does not need to run a routing protocol. A routing protocol exchanges and propagates routes between routers.
    – Zac67
    Jan 21 at 20:20
  • @Zac67 so how do switches determine the path to the controller? Jan 21 at 20:26
  • They don't. All they need to know is the next gateway (if there's any even), just like any other node.
    – Zac67
    Jan 21 at 20:29
  • @Zac67 wait, so you mean there are routers in an SDN? Isn't the whole idea of SDN is to eliminate the control plane from network devices and centralize it on a controller? If there are routers then how is that an SDN??
    – Noob_Guy
    Jan 22 at 4:31
  • Potentially, there could be routers between switches and controllers although that would be unusual, as you need to keep latencies low. An SDN doesn't mean that you need to run everything across it. It's not uncommon to keep some traditional management network.
    – Zac67
    Jan 22 at 7:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.