If i training Machine learning algorithm using well know dataset like NSL-KDD and then I create a detection module, how to use it to detect abnormal in SDN environment and which feature I need to collect from SDN-Controller for ML module.
Machine learning in SDN are distributed feature of traditional networks, machine learning techniques are hard to be applied and deployed to control and operate networks. Software defined networking (SDN) brings us new chances to provide intelligence inside the networks. The capabilities of SDN (e.g., logically centralized control, global view of the network, software-based traffic analysis, and dynamic updating of forwarding rules) make it easier to apply machine learning techniques. In this paper, we provide a comprehensive survey on the literature involving machine learning algorithms applied to SDN. First, the related works and background knowledge are introduced. Then, we present an overview of machine learning algorithms. In addition, we review how machine learning algorithms are applied in the realm of SDN, from the perspective of traffic classification, routing optimization, quality of service/quality of experience prediction, resource management and security.
One need to collect the flow statistics from the OpenFLow switch. Then extract features like entropy of destination address, flow duration, number of packets in a flow etc. In that features trained the model. Keep this model inside the controller. If some one good in Python, can use POX controller, but sometimes it not performs well in this respect. Otherwise try for Floodlight.