33

Coscup SDN workshop - mininet

  • Upload
    -

  • View
    94

  • Download
    0

Embed Size (px)

Citation preview

Page 2: Coscup SDN workshop - mininet

About Me

Hwchiu (邱渣)在 synology 當小小研替NSL @ NCTU

主要研究OpenvSwitch

Floodlight

Mininet

Floodlight Contributor

Architecture

Third-module

Page 3: Coscup SDN workshop - mininet

Outline

SDN againIntroduction to MininetMininet basic operationCustom Topology

Page 4: Coscup SDN workshop - mininet

SDN Brief

Page 5: Coscup SDN workshop - mininet

SDN Brief

Page 6: Coscup SDN workshop - mininet

SDN Brief

Page 7: Coscup SDN workshop - mininet

SDN Brief

Page 8: Coscup SDN workshop - mininet

SDN Advantage Example

Page 9: Coscup SDN workshop - mininet

Mininet Introduction

What

Why

Where

How

Page 10: Coscup SDN workshop - mininet

What

Mininet is a network emulator

Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native) - mininet.org

Page 11: Coscup SDN workshop - mininet

What (Cond’t)

Switch

Switch

Switch

Switch

Switch

Switch

Switch

Switch

Switch Switch

Page 12: Coscup SDN workshop - mininet

What (Cond’t)

Page 13: Coscup SDN workshop - mininet

What (Cond’t)

Switch

Switch

Switch

Switch

Switch

Switch

Switch

Switch

Switch Switch

Page 14: Coscup SDN workshop - mininet

Why

DeveloperTesting Controller

Testing Network Application

Testing before deploy

Compare to the real environmentFlexible

Scalable

Low Cost

Prove of Concept

Page 15: Coscup SDN workshop - mininet

Where

Official Page http://mininet.org

Githubhttps://github.com/mininet/mininet

Page 16: Coscup SDN workshop - mininet

How

Linux Server

Host

Switch

Host

Page 17: Coscup SDN workshop - mininet

How (Cont’d)

Linux Network Namespace

A network namespace is logically another copy of the network stack, with its own routes, firewall rules and network devices.

Network isolation.

Page 18: Coscup SDN workshop - mininet

How (Cont’d) - NS

Linux Server

ns-host1 ns-host2

ns-switch

Page 19: Coscup SDN workshop - mininet

How (Cont’d) - NIC

Linux Server

ns-host1 ns-host2

ns-switch

eth0 eth0

eth0 eth1

Page 20: Coscup SDN workshop - mininet

How (Cont’d) - veth

Linux Server

ns-host1 ns-host2

ns-switch

eth0 eth0

eth0 eth1

Page 21: Coscup SDN workshop - mininet

Mininet Basic Operation

OperationController

Topology

Information

MethodCommand Line

Python Script

Page 22: Coscup SDN workshop - mininet

Operation

Start upsudo mn

Clean upSudo mn -c

Page 23: Coscup SDN workshop - mininet

Controller

Connect to the controllermn --controller=<type>,,ip=<ip>,port=<port>

Type: osvc, default, remote ...etc

mn --controller=remote, ip=127.0.0.1,port=6653

Page 24: Coscup SDN workshop - mininet

Topology

Default TopologyOne switch + two hosts.

sudo mn

Host

Switch

Host

Page 25: Coscup SDN workshop - mininet

Topology (Cont’d)

mininet> net

mininet> nodes

Page 26: Coscup SDN workshop - mininet

Topology (Cont’d)

mininet> dumps

Page 27: Coscup SDN workshop - mininet

Topology (Cont’d)

Default topologysingle

One switch + <number> hosts.

mn --topo=single,5

Host

Switch

HostHost HostHost

Page 28: Coscup SDN workshop - mininet

Topology (Cont’d)

Default topologylinear

n * (switch + host)

mn --topo=linear,2

Host

Switch

Host Host

SwitchSwitch

Page 29: Coscup SDN workshop - mininet

Topology (Cont’d)

Default topologytree

Binary Tree.

mn --topo=tree,2

Host

Switch

Host HostHost

Switch

Switch

Page 30: Coscup SDN workshop - mininet

Node command

<node> <command>Mininet > h1 ifconfig

Mininet > s0 ifconfig

Mininet > h1 ps

Mininet > h1 ping h2

Mininet > h1 iperf -s &

Page 31: Coscup SDN workshop - mininet

Custom Topology

Write the custom mininet script (custom.py)

sudo python custom.py

ExampleLeaf-spine.py

Tutorial

https://github.com/mininet/mininet/wiki/Introduction-to-Mininet

Page 32: Coscup SDN workshop - mininet

Custom Topology

Get Mininet Instancenet = Mininet()

Add switchname=”s0”

sw = net.addSwitch(name)

Add hostname=”h0”

host = net.addHost(name)

Add Linknet.addLink(sw, host) <<<< instance of switch/host

Page 33: Coscup SDN workshop - mininet

Q&A