I want to have a simple multi-domain topology in mininet in which each domain is controlled by a single controller. I'm using Floodlight controller and OVS (switches).

Imagine this topology:

   c1                    c2                    c3
    |                    |                     |
    |                    |                     |
   s1                    s2                    s3
  |  |                  |  |                   |
  h1 h2                h3  h4                  h5

All these hosts have processing power. Imagine h5 is busy at the moment and can't process any new packet, so it decides to forward this packet to h3. Now my question is that what's the best way to transfer this packet to another domain. I was thinking about forwarding this packet through controllers, but I was told in my previous post that:

One of the characteristics of SDN is that the controllers are not in the forwarding path.

So what's the best way to do this?

I was thinking about a hierarchical structure of the controllers (adding c01 and c02) and providing switches among domains (s01 and s02) to forward packets to another domain. something like this:

     ----------c01-------  ----------c02--------
    |           |        |            |        |
   c1           |        c2           |        c3
    |           |        |            |        |
    |           |        |            |        |
   s1 ---------s01-------s2 ---------s02------ s3
  |  |                  |  |                   |
  h1 h2                h3  h4                  h5

So h5 sends a data request message to c3 through s3, c3 sends the message to c02, c02 sends this message to c2 and if this request is approved, this packet will be forwarded from s3 to s2 through s02.

Is this a correct way to implement multi-domain scenario? If not, how can I do it?

  • 1
    You need to provide more information. Please edit your question to include the network device models and configurations. – Ron Maupin Sep 10 '18 at 17:29
  • I edited my post in order to include the name of the controller and switches I use. Is there anything else that I should add to this post? – helen Sep 10 '18 at 17:42

In a lab scenario you can do what you want, but in a real-world scenario you will need to route between domains. If your controllers can't run routing protocols you will need routers.

  • Yes, but what I can't understand is that how this packet should be forwarded to another domain. – helen Sep 10 '18 at 18:16
  • Sorry if my question is too obvious, but I'm new to this field. In my example h5 wants to send a packet to h3. c3 would be the first controller to receive the packet and since the destination address is not in its domain, it would send a message to its leader controller c02 to find the destination host. For example c02 sends a message to c2 and finds out that h3 is in that domain. So we know the route now, but I can't understand how we should forward the packet. Controllers are not there for forwarding purposes, so should we have a gateway between domains? – helen Sep 10 '18 at 18:16
  • Your controllers already know their gateways (routers) to other networks. So the switch would forward the data to the appropriate gateway. If it helps, consider how any of your networks might connect to the Internet. The same principle applies. – Ron Trunk Sep 10 '18 at 18:22
  • The domains that I was talking about, were supposed to be isolated domains and their only way of communication was through controllers. I added s01 and s02 later and I wanted to know if it is OK to add s02 as a path for data forwarding from one domain to another. – helen Sep 10 '18 at 19:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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