Bambil / SDNFV101

Having fun with SDN in chain of NFV with some Docker ! :hear_no_evil:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SDNFV101

Introduction

Steps

Initiation

  1. Install docker on each VM
  2. Install OVS on each VM
sudo apt install openvswitch-switch
sudo apt install ovn-common
  1. Install ONOS on each VM
sudo docker pull onosproject/onos

Connectivity test with containrs on OVS + OpenFlow

based on Open Virtual Networking With Docker.

  1. Create bridge interface
sudo ovs-vsctl add-br ovs-br1
  1. Provide ip address to host ovs-br1 bridge
sudo ifconfig ovs-br1 173.16.1.1 netmask 255.255.255.0 up
  1. Create docker instances
sudo docker run -t -i --name container1 1995parham/ubuntu-network /bin/bash
sudo docker run -t -i --name container2 1995parham/ubuntu-network /bin/bash
  1. Connect them together and VSwitch
sudo ovs-docker add-port ovs-br1 eth1 container1 --ipaddress=173.16.1.2/24
sudo ovs-docker add-port ovs-br1 eth1 container2 --ipaddress=173.16.1.3/24
  1. Turn the OpenFlow on
sudo ovs-vsctl set-controller br0 tcp:`docker-ip onos-1`:6653

Let's build tunnels between OVSs

based on Configuring VXLAN and GRE Tunnels on OpenvSwitch

  1. Create bridge interface
sudo ovs-vsctl add-br ovs-br1
  1. Create tunnels 😂
sudo ovs-vsctl add-port ovs-br1 vx1 -- set interface vx1 type=vxlan options:remote_ip=?

ONOS cluster

based on Running the published Docker ONOS images.

  1. Run your docker image
$ sudo docker run  -t -d --name onos1 onosproject/onos
<cid>
$ sudo docker run  -t -d --name onos2 onosproject/onos
<cid>
$ sudo docker run  -t -d --name onos3 onosproject/onos
<cid>
  1. Cluster-ize your instances
# Forms ONOS cluster using REST API of each separate instance.
wget https://raw.githubusercontent.com/opennetworkinglab/onos/master/tools/package/bin/onos-form-cluster

chmod u+x onos-form-cluster

./onos-form-cluster -u karaf -p karaf `docker-ip onos1` `docker-ip onos2` `docker-ip onos3`
  1. Connect to your ONOS !
ssh -p 8101 karaf@`docekr-ip onso3`
Protocol Port
SSH 8101
HTTP 8181

Service chaining based on docker

We want to create 3 containers that thier network chains together.

  1. Create docker network if necessary
sudo docker netowrk create --driver=bridge bridge-name
  1. Create a normal container in each subnet
sudo docker run -ti --rm --name=c1 ubuntu
sudo docker run -ti --rm --name=c3 --network=bridge ubuntu
  1. Create middlebox container
sudo docker build --no-cache -t middlebox containers/middlebox
sudo docker run -ti --rm --name=c2 middlebox eth0

About

Having fun with SDN in chain of NFV with some Docker ! :hear_no_evil:

License:GNU General Public License v3.0


Languages

Language:Java 100.0%