<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>EXTRACTION OF TRAFFIC FEATURES IN SOFTWARE- DEFINED NETWORKS USING AN SDN CONTROLLER</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>S.S. Volkov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>I.I. Kurochkin</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>IITP RAS</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Moscow</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Russia</string-name>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Sergey Volkov, Ilya Kurochkin</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Federal Research Center "Computer Science and Control" RAS</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Peoples' Friendship University of Russia (RUDN University)</institution>
          ,
          <addr-line>6 Miklukho-Maklaya St, Moscow, 117198, Russian Federation</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>5</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>Machine learning methods can be used to solve the problems of detecting and countering attacks on software-defined networks. For such methods, it is necessary to prepare a large amount of initial data for training. Mininet is used as a modeling environment for SDN. The main tasks of modeling a software-defined network are studying traffic within the network, as well as practicing various scenarios of attacks on network elements. The SDN controller ONOS (Open Network Operating System) is used as the network controller. Various network topologies are considered in the modeling. The possibility of analyzing information about traffic within the network using an SDN controller in real time is investigated, as well as the possibility of collecting information in the form of a set of features. Modeling of software-defined networks under different initial conditions and for different attack scenarios can be carried out on a distributed computing system. Since the computational problem to be solved can be divided according to the data into many autonomous tasks, it is possible to use desktop grid system and voluntary distributed computing to speed up the process.</p>
      </abstract>
      <kwd-group>
        <kwd>software-defined networks</kwd>
        <kwd>traffic features</kwd>
        <kwd>network modeling</kwd>
        <kwd>desktop grid</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Software-Defined Network (SDN) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is now becoming more popular technology using in
large data processing centers because it allows you to dynamically control network traffic flows. The
main feature of SDN is the separation of the network control layer from the packet transmission layer.
      </p>
      <p>This work is devoted to the issue of modeling SDN in order to obtain data for the further
operation with machine learning algorithms. The main task of the study is to select tools and develop a
complete data collection process. The work considers the following aspects of SDN modeling:
● Software-defined network emulator.
● SDN controller.
● Development of network topologies.
● Network traffic generation.
● Traffic data collection and features extraction.</p>
      <p>The study attempts to solve two tasks. The first is collecting traffic flows data within a
software-defined network using a SDN-controller. The second task is extraction of traffic features
which can be used for machine learning algorithms in intrusion detection systems.</p>
    </sec>
    <sec id="sec-2">
      <title>2. SDN Modeling</title>
      <sec id="sec-2-1">
        <title>2.1 SDN emulator</title>
        <p>
          Among the existing network emulators, the following can be distinguished:
● Mininet [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] – computer network emulator that can host SDN on a single machine (virtual or
physical). Mininet is well suited for deploying test environments. It is also suitable for testing
custom SDN topologies. The virtual network is deployed with all switches, controllers and
hosts, and then its performance can be verified using scripts.
● Ns-3 [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] – simulator for discrete-event network modeling. It is also can be used for testing
        </p>
        <p>SDN environments.
● OpenNet [5] – the SDN emulator that is based on the two previous tools (Mininet and ns-3).
● Containernet [6] – fork of Mininet for working with application containers. Docker containers
act as hosts of emulated networks.
● Tinynet [7] – A lightweight library that helps you quickly prototype SDN networks. But this
tool is not suitable for emulating large-scale networks due to limited functionality.
● MaxiNet [8] – tool that allows you to use Mininet on multiple physical machines and work
with large-scale SDN networks. Each of the machines runs Mininet and emulates its part of
the general network. Switches and hosts communicate with each other using GRE tunnels. To
manage the components of such a network, MaxiNet provides an API.</p>
        <p>Since for this task we do not need too overloaded functionality, and we also need the ability to
work with custom topologies, it was decided to use Mininet. The computer network in Mininet is
deployed within one virtual machine. A computer network means simple systems that consist of hosts,
switches and OpenFlow-controllers.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2 SDN Controller</title>
        <p>
          The study examines various network topologies. Some topologies have loops. One of the main
criteria for choosing a controller is its ability to manage a network with loops in a topology. During
the study, two controllers were selected: ONOS [9] and Open Daylight [
          <xref ref-type="bibr" rid="ref5">10</xref>
          ]. Table 1 shows a small
comparison of these controllers.
        </p>
        <p>Thus, the ONOS controller turned out to be the most suitable option for our task. The ability to
graphically display statistics in the web interface and support for loops in the topology make this
controller a more versatile solution.
2.3 Network topologies
●
●
●
●
●
●</p>
        <p>Release: 2.4.0 Uguisu (2020)
Topology Loop Support
Availability of a web interface
Ability to view data flow and connection load
in real time
Traffic analysis services
Services for viewing statistics</p>
        <p>Several topologies have been tested with the following common parameters:
●
●
●
●
●
●</p>
        <p>Number of traffic flows: 200 000
Number of switches: 40
Number of links: 100
And the following various parameters:
Links between switches
Switches throughput</p>
        <p>Start time, end time and direction of each flow</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.4 Traffic generation</title>
        <p>Mininet offers convenient functionality for simulating host activity. It is possible to execute
console commands (ping, wget, curl etc.) by any host using a global terminal, as well as from a
personal terminal of the host. Since the ability to use a global terminal is implemented, you can run
custom scripts. All hosts also have shared access to files, which is very convenient for running scripts.</p>
        <p>
          In order not to restrict traffic generation to simple commands, you can use traffic generation
utilities. One of the most suitable utilities for generating dissimilar network traffic is D-ITG [
          <xref ref-type="bibr" rid="ref6">11</xref>
          ]. It
implements the following features:
●
●
●
●
        </p>
        <p>Single-flow, Multi-flow, Daemon modes
Detailed setting (generation time, delay, size / number of packets)
Different types of protocols (UDP, TCP, ICMP, SCTP, DCCP)
Traffic emulation
○ Telnet - Telnet traffic emulator
○ DNS - DNS traffic emulator
○ Quake3 – Quake 3 traffic emulator
○ Csa – Counter strike traffic emulator of active player
○ Csi – Counter strike traffic emulator of inactive player
○ VoIP – Voice-over-IP traffic emulator</p>
        <p>Using this functionality, you can implement the generation of different traffic for each host.</p>
      </sec>
      <sec id="sec-2-4">
        <title>2.5 Traffic capture and feature extraction</title>
        <p>
          To solve the task of capturing traffic, one of the most popular utilities was used – Wireshark
[
          <xref ref-type="bibr" rid="ref7">12</xref>
          ]. It provides the ability to monitor all network traffic passing through the host. Since the main idea
is to monitor traffic at the controller level, this utility is deployed in a separate virt ual machine along
with the SDN-controller as shown on figure 2.
        </p>
        <p>Thus, the controller receives only information about the network using the OpenFlow
protocol. Host-to-host packet transfer information remains inside the Mininet virtual machine. In this
case, the OpenFlow 1.3 protocol was used to transfer information. Table 2 shows a list of features that
can be captured. They contain key information about traffic flows for further analysis. Wireshark
documentation contains a complete list of the parameters available for capturing [13].
3. Conclusion
flow_removed.hard_timeout
flow_removed.table_id
match.length
oxm.hm
type
match.pad
oxm.length
version
oxm.class
match.type
oxm.value_etheraddr
Xid
oxm.value_ethertype</p>
        <p>As a result of this work, we have formed an approach to modeling software-defined networks
to solve the problem of collecting data on traffic flows within the network. In the course of the
research, the most convenient and compatible tools were identified. The presented set of tools is
suitable for modeling within a single physical machine, as well as on desktop grid systems to create
larger scale network models. However, for modeling large networks, it is worth using modeling tools
with broader functionality (e. g., MaxiNet). Future work in this direction will be related to the
development of a large-scale software-defined network and generating network traffic.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>4. Acknowledgement</title>
      <p>The reported study was funded by RFBR according to the research project No. 18-29-03264.
–</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Casado</surname>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
          </string-name>
          , et al.
          <article-title>"SANE: A Protection Architecture for Enterprise Networks." USENIX Security Symposium</article-title>
          . Vol.
          <volume>49</volume>
          .
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>McKeown</surname>
          </string-name>
          ,
          <string-name>
            <surname>Nick</surname>
          </string-name>
          , et al.
          <article-title>"OpenFlow: enabling innovation in campus networks</article-title>
          .
          <source>" ACM SIGCOMM Computer Communication Review 38.2</source>
          (
          <year>2008</year>
          ):
          <fpage>69</fpage>
          -
          <lpage>74</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>[3] Mininet - An Instant Virtual Network on your Laptop - www</article-title>
          .mininet.
          <source>org (accessed 16 september</source>
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4] Ns-3
          <string-name>
            <surname>Network</surname>
          </string-name>
          Simulator - https://www.nsnam.org/ (accessed 16 september
          <year>2021</year>
          ) [5]
          <string-name>
            <given-names>OpenNet</given-names>
            <surname>SDN</surname>
          </string-name>
          emulator - https://github.com/dlinknctu/OpenNet (accessed 16 september
          <year>2021</year>
          ) [6]
          <string-name>
            <surname>Containernet</surname>
            <given-names>SDN</given-names>
          </string-name>
          emulator - https://containernet.github.
          <source>io (accessed 16 september</source>
          <year>2021</year>
          ) [7]
          <string-name>
            <surname>Tinynet</surname>
            <given-names>SDN</given-names>
          </string-name>
          emulator - https://github.com/John-Lin/tinynet (accessed 16 september
          <year>2021</year>
          ) [8]
          <string-name>
            <given-names>MaxiNet</given-names>
            <surname>SDN</surname>
          </string-name>
          emulator - http://maxinet.github.io/ (accessed 16 september
          <year>2021</year>
          ) [9]
          <string-name>
            <given-names>Open</given-names>
            <surname>Network Operating System (ONOS) SDN Controller for</surname>
          </string-name>
          <string-name>
            <surname>SDN</surname>
          </string-name>
          /NFV Solutions - https://opennetworking.org/onos/ (accessed 16 september
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [10]
          <string-name>
            <surname>OpenDaylight</surname>
          </string-name>
          Documentation - https://docs.opendaylight.org/en/latest/ (accessed 16 september
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Distributed</given-names>
            <surname>Internet Traffic</surname>
          </string-name>
          Generator - http://traffic.comics.unina.it/software/ITG/ (accessed 16 september
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [12] Wireshark - https://www.wireshark.org/ (accessed 16 september
          <year>2021</year>
          ) [13]
          <string-name>
            <surname>Wireshark</surname>
          </string-name>
          . Display Filter Reference: OpenFlow https://www.wireshark.org/docs/dfref/o/openflow_v4.
          <source>html (accessed 16 september</source>
          <year>2021</year>
          )
          <volume>1</volume>
          .
          <fpage>3</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>