building community network using openflo · introduction: trema there are numbers of openflow...

25
Building Community Network using OpenFlow Team members: Bu-Sung Lee, Zoebir Bong, Stanley Goh Singaren, Singapore Zoebir Bong Presenter

Upload: others

Post on 21-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Building Community Network using

OpenFlow

Team members: Bu-Sung Lee, Zoebir Bong, Stanley GohSingaren, Singapore

Zoebir BongPresenter

Page 2: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Overview

● Objective

● Introduction: Openflow and Trema

● System Design

● Current works

● Future works

● Demonstration

Page 3: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Objective

● Provide a web service for user to create openflow flow rules

● Reduce complexity of flow rule creation

Page 4: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Openflow

● A new communication protocol that give access to forwarding plane of a network switch/router over a network

● Unified forwarding protocol among existing switch/router vendor such Juniper Networks, HP, Dell, Fujitsu and so on

● Enabler for Software Defined Networking

● Important terms; - datapath ID- match fields- action output

Page 5: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Openflow

Packet flow

Host

OpenflowSwitch #1

OpenflowSwitch #2

OpenflowController

Data plane

Control plane (secure channel)

Page 6: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Openflow

Packet flow

Host

OpenflowSwitch #1

OpenflowSwitch #2

OpenflowController

Firstpacket

Page 7: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Openflow

Packet flow

Host

OpenflowSwitch #1

OpenflowSwitch #2

OpenflowController

Installation Of Flow Rule

Page 8: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Openflow

Packet flow

Host

OpenflowSwitch #1

OpenflowSwitch #2

OpenflowController

subsequentpackets

Page 9: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Openflow

Packet flow

Host

OpenflowSwitch #1

OpenflowSwitch #2

OpenflowController

subsequentpackets

Page 10: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Introduction: Trema

● There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema

● Our development on openflow controller is based on Trema

● Trema supports C(C++) and Ruby API

● Compared to NOX, lines of coding is lesser for developing OFC on Ruby-based Trema

● Trema provides additional features;- Tremashark; a plug-in to Wireshark (Traffic monitor application)- Network emulator

Page 11: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

System Design

● Two space design: front-end and back-end modules

● Front-end --> Web servicesBack-end --> Openflow controller

● Utilised ZeroMQ library to provide interaction between front-end and back-end modules

● ZeroMQ is a interprocess communication (IPC) protocol with request-response messaging

Page 12: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

System DesignWebBrowser

Web Server

TopologyDiscovery

PolicyComposer

PolicyQuery

TrafficMonitor

Front-end

Back-end

Controller

TopologyManager

PolicyManager

TrafficManager

MySQL

ActualNetwork

Page 13: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

System Design

● With topology library (Trema application) to detect up-to-date network topology

● Identify host and switch node

● Update web service with latest network information to prevent invalid policy creation

TOPOLOGY MANAGER

Page 14: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

System Design

● A policy is chain of flow rules and its actions

● Store (Retrieve) policy to (from) database

● Prevent policy conflict or flow rule conflict

POLICY MANAGER

Confusion for switchto decide output port

RULE CONFLICT

Duplicate policyRedundant flow rules

POLICY CONFLICT

Policy 1

Policy 2

Policy 1

Policy 2

Page 15: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

System Design

● Provides traffic monitoring on ports of openflow switch (PortStats) and a community (FlowStats)

● Update and display traffic information on web service

TRAFFIC MANAGER

Page 16: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Current works

● Discover openflow switches and update the network topology web service

● Allow user to create a policy comprising flow rules on chosen path

Page 17: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Future works

● Update web service about changes of network topology

● Traffic monitoring and display on particular port or community

● Query on user-created policy and flow rules from database

● Modify and delete stored flow rules in database

● Allow user to create, delete, join and leave a community

Page 18: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Demonstration

● Actual openflow network connecting among Japan, Singapore and Thailand

● Two hosts connecting to singapore-pf52-1 and note-pf52-2 openflow switches

● Scenario: simple file transfer from singapore host to japan host

Page 19: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Demonstration

Page 20: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

note-mx80-2

hk-mx80-1

sg-mx80-1

bk-mx80-1

kote-mx80-1

note-pf52-2

note-pf52-1(L2 only)

kote-pf52-1(L2 only)

kote-pf52-2kote-pf52-3

sin-pf52-1

bkk-ip88-1

Host(Japan)

0/2

0/510/50

0/49

0/490/50

0/51

0/2

0/4

0/6

0/40/6

0/17

0/46vid=1999

vid=1999

vid=2004

vid=2004

0/4 0/500/4 0/50

0/490/49

* VLAN IDs1999: Control plane2004: Data plane

OpenFlow enable ports

vid=2004

0/22

vid=1999

0/21

OFC

Host(Singapore)

note-pf52-3

0/28

0/27

Demonstration: Physical Connection

Page 21: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

host(singapore)

host(japan)

ofc

note_pf2_2 note_pf2_3kote_pf2_3 kote_pf2_2

singapore_pf52_1 bkk_ip88_1

OFS-OFS connection

Japan

OFS-OFC connection

OFS-Host connection

Demonstration connection

Demonstration: Openflow connection

Sri Lanka Singapore Thailand

Page 22: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Demonstration: Testbed

host(singapore)

host(japan)

ofc

note_pf2_2 note_pf2_3kote_pf2_3 kote_pf2_2

singapore_pf52_1 bkk_ip88_1

Japan

Sri Lanka Singapore

192.168.8.220

192.168.8.200

Thailand

Page 23: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Demonstration: Testbed

Page 24: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

Demonstration: Testbed

Page 25: Building Community Network using OpenFlo · Introduction: Trema There are numbers of openflow implementation/reference codes: NOX, POX, Beacon, Maestro and trema Our development on

END