Day 47: Way Forward - Phase 3 of architecture implementation

Coming back to the architecture we have been building, let us look at what has been completed:

  • The switch can communicate with the controller for installing flows
  • This communication happens over a load balancer
  • Load balancer takes care of failover mechanism
  • Load balancer also takes care of switch-controller mapping
  • Load balancer is protected from Single point of failure through keepalived
  • Controllers are protected from crashing by limiting the number of connections they can handle - this is also the responsibility of the load balancer (could be fine tuned)
So, the major chunk of work left to complete building a highly available, reliable and secure SDN controller architecture is as follows:
  • We need to take care of assigning master controller a hierarchy 1 by forwarding all packets that enter the controller network
  • We need to protect master controller from single point of failure
Strategies to achieve the same:
  • Today, I looked at a publisher-subscriber model which you guys are pretty familiar with: Kafka and Zookeeper. I tried to implement a messaging system as explained by Swati in her post on Day 27. Observations I made:
    • I can forward tcpdump data from any of my controller to the master controller
    • But, my master controller can only view this as a text file and won't be subjected to the traffic itself. It needs to do further processing to analyze the packets
    • This is not my requirement, as I am required to multicast packets from either load balancer or the controllers in hierarchy 2
    • The master controller can listen on any other port and not on 6633 where my controller is running. So extra forwarding needs to be done from the consumer port to my ryu controller port. This leads to complicating things.
  • Another option I looked at today, is tcpreplay. Few features I thought might suit my requirements better are:
    • It has an option to collect tcpdump or wireshark packets and store it as .pcap file which can be replayed later
    • The master controller can be subjected to the stored traffic through tcpliveplay
The two features mentioned under tcpreplay seem more useful than Kafka and Zookeeper implementation. Although, I am still yet to decide how to send these .pcap files from a hierarchy 2 controller to hierarchy 1. I might be using kafka for this, if required. In case you have better suggestions, please drop them down as a comment to this post.

Coming to the second task that is yet to be done, I shall again use keepalived for protecting my master controller from Single point of failure.

You can refer to previous and next articles here.

Author: Shravanya
Co-author: Swati

Comments

Popular posts from this blog

Day 12: Master Slave SDN Controller Architecture

Day 50: Tcpreplay and tcpliveplay approach

Day 10: Mininet Simulation of a basic distributed SDN controller architeture