Giter Club home page Giter Club logo

conference-sdn-nfv-network's Introduction

Architecture

Virtual Network Diagram Physical Network Diagram

This git repo contains a network-in-a-box suitable for running tech conferences, but would easily extend to running any sort fixed network such as a enterprise LAN.

We use the following software:

  • Userspace OpenvSwitch virtual switch with DPDK
  • Faucet SDN controller
  • Bird BGP routing daemon
  • Unbound DNS resolver
  • ISC DHCP server
  • jool NAT64 kernel module
  • Libvirt + QEMU/KVM virtualization

Which runs on the following hardware:

  • Dell PowerEdge R530
  • Intel 1 gig I350 quad port NICs
  • Intel 10 gig X520 dual port NICs
  • Allied Telesis X930 OpenFlow switches

We end up with two VLANs which can be broadcast on different wireless SSIDs or physical network ports.

  • VLAN 10 is an IPv6-only network with DNS64/NAT64 for talking to legacy IPv4 networks
  • VLAN 20 is a mixed IPv4 and IPv6 network

We accomplish this by having two OpenvSwitch bridges (br-nznog and br-nznog6) for our two networks that are controlled by faucet via OpenFlow.

  • The br-nznog bridge will contain the FIB for routing to our upstream provider. The FIB is installed by faucet and calculated by bird from any routes it receives via BGP from the upstream network. The br-nznog network is exposed as VLAN 20 on a tagged port on a physical DPDK interface to our OpenFlow switches.

  • The br-nznog6 bridge is a separate layer 2 IPv6-only network and we use a VM connected to both our bridges and linux routing to join the two networks. Jool provides NAT64 translation so that our IPv6-only clients can speak to IPv4 networks. The br-nznog6 network is exposed as VLAN 10 on a tagged port on a physical DPDK interface to our OpenFlow switches.

Network setup

The network can be easily deployed with ansible which will automatically install and configure all required software.

You can find instructions on our ansible repo.

Debugging

Here are some useful debugging commands:

sudo ovs-ofctl -OOpenFlow13 dump-ports [bridge]
sudo ovs-ofctl -OOpenFlow13 dump-ports-desc [bridge]
sudo ovs-ofctl -OOpenFlow13 dump-flows [bridge]
sudo ovs-ofctl -OOpenFlow13 show [bridge]
sudo ovs-appctl dpif-netdev/pmd-stats-show

conference-sdn-nfv-network's People

Contributors

gizmoguy avatar

Stargazers

tomo avatar Craig Askings avatar Pasi Heinonen avatar  avatar Michael Fincham avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.