Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 17

DECENTRALIZED

SDN CONTROLLER
USING
BLOCKCHAIN
Theviyanthan K.
IT14004414
Introduction
Research problem
Research Question

CONTENT Solution
Methodology
S SDN Switches
App Server
Single Page Application
Smart Contract
Results
Complexity of compromising a network
Time taken
INTRODUCTION
SOFTWARE
DEFINED •The control and data plane are decoupled​

NETWORKI •This allows us to control the flow of network packets


from a single portal​
NG •A controller instructs the switches on how to handle
network traffic​
•This makes it easier to adapt the network to cater to
modern demands​
•A network can be reconfigured to fit different needs
such as providing QoS to video conferences​
•Business Applications can program the networks to
optimize performance
RESEARCH PROBLEM

Having one SDN controller leads to


Single Point of Failure.
It also allows an attacker to easily
compromise the entire network
RESEARCH QUESTION

How can the controller of an SDN can


be physically distributed while
keeping it logically centralized?
Using blockchain to distribute the
control plane of an SDN while
allowing a single portal for
configuration
SOLUTIO
N
METHODOLOGY
1. Creating a Python based controller that will communicate with the smart contract
and configure the routing table of switches.
2. An ethereum based smart contract that will hold the global routing table
3. A nodeJs server that would communicate with the smart contract and provide a
REST API service to applications.
4. A ReactJs based Single Page Application that will allow users to configure the
network.
SDN SWITCHES

1. Every switch has its own controller which is linux based


2. Switches run VyOS
3. The controller SSHs into Switches and configures their routing table
4. Python is used to communicate with the blockchain
APP SERVER

1. A server based on nodeJs communicates using JavaScript with the


blockchain
2. The node server can mutate the blockchain. This allows us to add, modify
and delete routes
SINGLE PAGE APPLICATION

1. The app was built using React Js. The app communicates with the server using
REST API service
SMART CONTRACT
•The smart contract is written using Solidity
•Smart Contract has two databases
• Switches
• Routing entries

• A user can
• Create
• Read
• Update
• Delete
Switches and routes
RESULTS

n number of controllers
hi the hash rate of a controller
H total hash rate of the block chain network
According to the bitcoin whitepaper, the probability P of an attacker compromising the network when
the probability of an authentic node mining the next block is A, and the probability of an attacker
mining the next block is Q:
COMPLEXITY OF
COMPROMISING OUR
NETWORK
The complexity of compromising a network is directly proportional to the hash rate
of the entire network. The probability of comprising a blockchain network is 100%,
if an attacker has more than 50% of the hash rate. So, to compromise a network, an
attacker needs to have a hash rate that is 50% of the network. Thus, complexity C
can be defined in terms of H as
600

500

400
Complexity

300

200

100

0
0 200 400 600 800 1000 1200

Total Hash Rate (kh/s)


TIME TAKEN
CPU: Intel Core i7-8550U 1.8GHz (when 80% of CPU is available)
The hash rate of a node could change depending on the CPU resource usage and the single core performance of the
CPU
Standard Deviation: 0.12

Time taken in ms

0 1000 2000 3000 4000 5000 6000 7000 8000

App to Server Server to Smart Contract Controller to Smart Contract Controller to Switch
CONCLUSION
Increasing the hash rate of a network will increase the complexity
of compromising the network.
The hash rate can be increased both vertically and horizontally.
However, the horizontal increase is favored over vertical increase,
since it also precludes networks being compromised by physical
attacks against blockchain controllers

You might also like